~ubuntu-branches/ubuntu/hardy/avidemux/hardy

« back to all changes in this revision

Viewing changes to avidemux/ADM_editor/ADM_Video.h

  • Committer: Bazaar Package Importer
  • Author(s): Matvey Kozhev
  • Date: 2007-12-18 13:53:04 UTC
  • mfrom: (1.1.7 upstream)
  • Revision ID: james.westby@ubuntu.com-20071218135304-cdqec2lg2bglyz15
Tags: 1:2.4~preview3-0.0ubuntu1
* Upload to Ubuntu. (LP: #163287, LP: #126572)
* debian/changelog: re-added Ubuntu releases.
* debian/control:
  - Require debhelper >= 5.0.51 (for dh_icons) and imagemagick.
  - Build-depend on libsdl1.2-dev instead of libsdl-dev.
  - Build against newer libx264-dev. (LP: #138854)
  - Removed libamrnb-dev, not in Ubuntu yet.
* debian/rules:
  - Install all icon sizes, using convert (upstream installs none).
  - Added missing calls to dh_installmenu, dh_installman, dh_icons and
    dh_desktop.
* debian/menu, debian/avidemux-qt.menu:
  - Corrected package and executable names.
* debian/avidemux-common.install: Install icons.
* debian/avidemux.common.manpages: Install man/avidemux.1.
* debian/links, debian/avidemux-cli.links, debian/avidemux-gtk.links:
  - Link manpages to avidemux.1.gz.
* debian/install, debian/avidemux-qt.install, debian/avidemux-gtk.desktop,
  debian/avidemux-qt.desktop: Install desktop files.

Show diffs side-by-side

added added

removed removed

Lines of Context:
24
24
#include "avifmt.h"
25
25
#include "avifmt2.h"
26
26
 
27
 
#include "ADM_audio/aviaudio.hxx"
28
 
 
29
 
typedef struct audioInfo
 
27
#include "../ADM_audio/aviaudio.hxx"
 
28
#include "ADM_compressedImage.h"
 
29
typedef struct 
30
30
{
31
31
    uint32_t encoding;  // Same as in wavheader
32
32
    uint32_t bitrate;   // In kbits
33
33
    uint32_t channels;  //
34
34
    uint32_t frequency; // In hertz
35
35
    int32_t  av_sync;   // in ms
36
 
};
 
36
} audioInfo;
37
37
 
38
 
typedef struct aviInfo
 
38
typedef struct 
39
39
{
40
40
        uint32_t   width,height;
41
41
        uint32_t   fps1000;
42
42
        uint32_t   nb_frames;
43
43
        uint32_t   fcc; 
44
 
}  ;
 
44
        uint32_t   bpp;
 
45
} aviInfo;
45
46
 
46
47
uint8_t WAV2AudioInfo(WAVHeader *hdr,audioInfo *info);
47
 
 
 
48
/*
 
49
 
 
50
    The base class for all demuxers
 
51
 
 
52
*/
48
53
class vidHeader
49
54
{
50
55
protected:
51
 
                MainAVIHeader           _mainaviheader;
52
 
                uint8_t                 _isvideopresent;
53
 
                AVIStreamHeader         _videostream;
54
 
                BITMAPINFOHEADER        _video_bih;
55
 
                uint8_t                 _isaudiopresent;
56
 
                AVIStreamHeader         _audiostream;
57
 
                void                    *_audiostreaminfo;
58
 
                char                    *_name;
59
 
                uint32_t                _videoExtraLen;
60
 
                uint8_t                 *_videoExtraData;
61
 
                          
 
56
          MainAVIHeader         _mainaviheader;
 
57
          uint8_t               _isvideopresent;
 
58
          AVIStreamHeader       _videostream;
 
59
          BITMAPINFOHEADER      _video_bih;
 
60
          uint8_t               _isaudiopresent;
 
61
          AVIStreamHeader       _audiostream;
 
62
          void                  *_audiostreaminfo;
 
63
          char                  *_name;
 
64
          uint32_t              _videoExtraLen;
 
65
          uint8_t               *_videoExtraData;
 
66
                    
62
67
public:
63
68
//  static int checkFourCC(uint8_t *in, uint8_t *fourcc);
64
69
         vidHeader();
65
70
virtual   ~vidHeader() ;
66
 
virtual   void                          Dump(void)=0;
67
 
virtual   uint32_t                      getNbStream(void)=0;
68
 
virtual   uint8_t                       needDecompress(void)=0;
69
 
virtual   uint8_t                       getExtraHeaderData(uint32_t *len, uint8_t **data);
 
71
virtual   uint8_t               hasPtsDts(void) {return 0;}; // Return 1 if the container gives PTS & DTS info
 
72
virtual   uint32_t              ptsDtsDelta(uint32_t framenum) ;
 
73
virtual   void                  Dump(void)=0;
 
74
virtual   uint8_t               getExtraHeaderData(uint32_t *len, uint8_t **data);
70
75
// AVI io
71
 
virtual         uint8_t                 open(char *name)=0;
72
 
virtual         uint8_t                 close(void)=0;
 
76
virtual         uint8_t         open(char *name)=0;
 
77
virtual         uint8_t         close(void)=0;
73
78
virtual uint8_t                 reorder( void ) { return 0;} // by default we don"t do frame re-ordering
74
79
virtual uint8_t                 isReordered( void ) { return 0;} // by default we don"t do frame re-ordering
75
80
  //__________________________
76
81
  //                             Info
77
82
  //__________________________
78
 
  uint8_t                                       getVideoInfo(aviInfo *info);
79
 
  uint32_t                              getWidth( void ) { return _mainaviheader.dwWidth;};
80
 
  uint32_t                              getHeight( void ) { return _mainaviheader.dwHeight;};
81
 
  uint8_t                                       setMyName( char *name);
82
 
  char                                          *getMyName( void);
 
83
  uint8_t                       getVideoInfo(aviInfo *info);
 
84
  uint32_t                      getWidth( void ) { return _mainaviheader.dwWidth;};
 
85
  uint32_t                      getHeight( void ) { return _mainaviheader.dwHeight;};
 
86
  uint8_t                       setMyName( char *name);
 
87
  char                          *getMyName( void);
83
88
  //__________________________
84
89
  //                             Audio
85
90
  //__________________________
86
91
 
87
92
virtual         WAVHeader              *getAudioInfo(void ) =0 ;
88
 
virtual         uint8_t                 getAudioStream(AVDMGenericAudioStream **audio)=0;
 
93
virtual         uint8_t                 getAudioStream(AVDMGenericAudioStream **audio)=0;
89
94
virtual         uint8_t                 getAudioStreamsInfo(uint32_t *nbStreams, audioInfo **info);
90
95
virtual         uint8_t                 changeAudioStream(uint32_t newstream);
91
96
virtual         uint32_t                getCurrentAudioStreamNumber(void) { return 0;}
97
102
virtual         uint8_t  setFlag(uint32_t frame,uint32_t flags)=0;
98
103
virtual         uint8_t  getFrameSize(uint32_t frame,uint32_t *size);
99
104
virtual         uint32_t getFlags(uint32_t frame,uint32_t *flags)=0;                    
100
 
virtual         uint8_t  getFrameNoAlloc(uint32_t framenum,uint8_t *ptr,uint32_t* framelen,
101
 
                                                                                                uint32_t *flags)=0;
102
 
virtual         uint8_t         getFrameNoAlloc(uint32_t framenum,uint8_t *ptr,uint32_t* framelen)=0    ;
103
 
virtual         uint8_t         getRaw(uint32_t framenum,uint8_t *ptr,uint32_t* framelen)                                                                                                       
104
 
                                                {
105
 
                                                         return getFrameNoAlloc(framenum,ptr,framelen)  ;
106
 
                                                }
 
105
virtual         uint8_t  getFrameNoAlloc(uint32_t framenum,ADMCompressedImage *img)=0   ;
 
106
virtual         uint8_t  getRaw(uint32_t framenum,uint8_t *ptr,uint32_t* framelen)                              
 
107
                            {
 
108
                                    ADMCompressedImage img;
 
109
                                    uint8_t r;
 
110
                                    img.data=ptr;
 
111
                                    r=getFrameNoAlloc(framenum,&img)    ;
 
112
                                    *framelen=img.dataLength;
 
113
                                    return r;
 
114
                            }
107
115
virtual         uint8_t   getRawStart(uint8_t *ptr,uint32_t *len);
108
 
uint32_t                                                getTime(uint32_t frame);
 
116
                uint32_t  getTime(uint32_t frame);
109
117
 
110
118
 
111
119
// index and stuff
112
120
 
113
121
// New write avi engine
114
 
         AVIStreamHeader *getVideoStreamHeader(void ) { return &_videostream;}
115
 
         MainAVIHeader          *getMainHeader(void ) { return &_mainaviheader;}
116
 
         BITMAPINFOHEADER               *getBIH(void ) { return &_video_bih;}
117
 
                                
 
122
          AVIStreamHeader           *getVideoStreamHeader(void ) { return &_videostream;}
 
123
          MainAVIHeader             *getMainHeader(void ) { return &_mainaviheader;}
 
124
          BITMAPINFOHEADER          *getBIH(void ) { return &_video_bih;}
 
125
 
118
126
};
119
127
#endif