1 /*************************************************************************** 2 ADM_vs 3 ------------------- 4 begin : Mon Jun 3 2002 5 copyright : (C) 2002 by mean 6 email : fixounet@free.fr 7 ***************************************************************************/ 8 9 /*************************************************************************** 10 * * 11 * This program is free software; you can redistribute it and/or modify * 12 * it under the terms of the GNU General Public License as published by * 13 * the Free Software Foundation; either version 2 of the License, or * 14 * (at your option) any later version. * 15 * * 16 ***************************************************************************/ 17 #pragma once 18 19 #include "VSScript.h" 20 #include "VSHelper.h" 21 #include "ADM_Video.h" 22 #include "ADM_audioStream.h" 23 24 /** 25 \Class vsHeader 26 \brief Flash demuxer 27 28 */ 29 class vsHeader :public vidHeader 30 { 31 protected: 32 33 FILE *_fd; 34 char *_filename; 35 public: 36 37 38 virtual void Dump(void); 39 40 vsHeader( void ); 41 virtual ~vsHeader( ) ; 42 // AVI io 43 virtual uint8_t open(const char *name); 44 virtual uint8_t close(void) ; 45 //__________________________ 46 // Info 47 //__________________________ 48 49 //__________________________ 50 // Audio 51 //__________________________ 52 virtual WAVHeader *getAudioInfo(uint32_t i ) ; 53 virtual uint8_t getAudioStream(uint32_t i,ADM_audioStream **audio); 54 virtual uint8_t getNbAudioStreams(void); 55 // Frames 56 //__________________________ 57 // video 58 //__________________________ 59 60 virtual uint8_t setFlag(uint32_t frame,uint32_t flags); 61 virtual uint32_t getFlags(uint32_t frame,uint32_t *flags); 62 virtual uint8_t getFrame(uint32_t framenum,ADMCompressedImage *img); 63 virtual uint64_t getTime(uint32_t frame); 64 uint8_t getExtraHeaderData(uint32_t *len, uint8_t **data); 65 virtual uint64_t getVideoDuration(void); 66 67 virtual bool getPtsDts(uint32_t frame,uint64_t *pts,uint64_t *dts); 68 virtual bool setPtsDts(uint32_t frame,uint64_t pts,uint64_t dts); 69 uint8_t getFrameSize (uint32_t frame, uint32_t * size); 70 71 protected: 72 int inited; 73 VSScript *_script; 74 int _outputIndex; 75 VSNodeRef *_node; 76 int _nbFrames; 77 uint64_t getTimeForFrame(int frame); 78 }; 79 80 81