Hauptseite   Klassenhierarchie   Alphabetische Liste   Übersicht   Auflistung der Dateien   Elementübersicht  

AVI.h

00001 /********************************************************************\
00002 *****   Methoden für IO in AVI Dateien                           *****
00003 \********************************************************************/
00004 
00005 #ifndef _AVI_H_
00006 #define _AVI_H_
00007 
00008 #include "avilib.h"
00009 
00010 #include "VideoFile.h"
00011 
00012 #define GET_INDEX 1
00013 
00014 class AviVtr;
00015 class AviAtr;
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 /****************************************************************************************/
00024 /***** Quicktime - Klasse ***************************************************************/
00025 /****************************************************************************************/
00026 
00027 class AviIO:public VideoFile {
00028     friend class AviV;
00029     friend class AviVtr;
00030     friend class AviA;
00031     friend class AviAtr;
00032 public:
00033     AviIO( const char *Dateiname, IO_Mode mode=write );
00034     ~AviIO();
00035 
00036     // Quicktime Datei-Descriptor
00037     avi_t *AviDatei( void );
00038 
00039 
00040     /*** Videofunktionen ***/
00041     // Video codec initialisieren
00042     //    Codec: Name des internen Videocodecs des Backends
00043     V_Track *initVideoCodec( float Rate,
00044                              int x, int y,
00045                              const char *Codec = NULL );
00046 
00047 
00048 
00049 
00050 
00051     /*** Audiofunktionen ***/
00052     // Audio codec initialisieren
00053     A_Track *initAudioCodec( int Sample_rate,
00054                              int Bits,
00055                              int Channels,
00056                              const char *Codec = NULL );
00057 
00058 
00059 
00060 
00061 protected:
00062     // Video-Track öffnen
00063     V_Track *openVideoTrack( int track );
00064     // Audio-Track öffnen
00065     A_Track *openAudioTrack( int track=0 );
00066 
00067     avi_t *Datei;               // Quicktime Datei
00068 };
00069 
00070 
00071 
00072 
00073 
00074 
00075 
00076 
00077 
00078 /****************************************************************************************/
00079 /***** AVI - Videotrack *****************************************************************/
00080 /****************************************************************************************/
00081 class AviVtr:public V_Track {
00082 public:
00083     AviVtr( AviIO *File, int track );
00084 
00085     AviVtr( AviIO *File,
00086             double Rate,
00087             int x, int y,
00088             const char *Codec = NULL );
00089 
00090     ~AviVtr();
00091 
00092 
00093     // Bild-Position setzen
00094     int Seek( long bild );
00095 
00096 private:
00097     AviIO *file;          // übergeordnete Klasse
00098     avi_t *Datei;         // Quicktime Datei
00099     char* FrameBuf;       // Speicher für die Daten eines Bildes
00100     long BufGr;           // Größe von FrameBuf
00101 
00102 protected:
00103     // Rohdaten lesen und schreiben
00104     virtual int readRaw( unsigned char *&data, long &bytes );
00105     virtual int writeRaw( unsigned char *data, long bytes, int keyframe=0 );
00106 };
00107 
00108 
00109 
00110 
00111 
00112 
00113 
00114 
00115 
00116 
00117 
00118 /****************************************************************************************/
00119 /***** Avi - Audiotrack *****************************************************************/
00120 /****************************************************************************************/
00121 class AviAtr:public A_Track {
00122 public:
00123     AviAtr( AviIO *File, int track );
00124     AviAtr( AviIO *File,
00125             int Sample_rate,
00126             int Bits,
00127             int Channels,
00128             const char *Codec_name = NULL );
00129 
00130     ~AviAtr();
00131 
00132     // Audio-Position setzen
00133     int Seek( long long samples );
00134 
00135 protected:
00136     int readRaw( unsigned char *data, long bytes );
00137     int writeRaw( unsigned char *data, long bytes );
00138 
00139 private:
00140     AviIO *file;            // übergeordnete Klasse
00141     avi_t *Datei;           // Avi Datei
00142     short format;           // Audiocodec
00143     u_int64_t data_len;     // Anzahl der Audiobytes
00144 };
00145 
00146 
00147 
00148 
00149 
00150 #endif

Erzeugt am Mon Jan 7 19:15:12 2002 für av_convert von doxygen1.2.9.1 geschrieben von Dimitri van Heesch, © 1997-2001