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