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

Track.h

00001 /********************************************************************\
00002 *****   Basisblasse für Audio- und Video-Tracks                  *****
00003 \********************************************************************/
00004 
00005 #ifndef _TRACK_H_
00006 #define _TRACK_H_
00007 
00008 #include <sys/types.h>
00009 #include "String.h"
00010 
00011 
00012 class VideoFile;
00013 class Codec;
00014 class CodecPlugins;
00015 
00020 class Track {
00021     friend class Codec;
00022     friend class CodecPlugins;
00023 public:
00024     Track( VideoFile *File, int track=0 );
00025     Track( VideoFile *File, double rate, const char *Codec_name );
00026     virtual ~Track();
00027 
00030     inline const String CodecName( void ) { return codec_name; }
00031 
00034     virtual int Number(void) { return nummer; }
00035 
00038     virtual long long Position(void) { return pos; }
00039 
00042     virtual double CurrentTime( void ) { return (double)pos / block_rate; }
00043 
00046     virtual long long BytesWritten(void) { return bytes; }
00047 
00052     virtual double Rate( void ) { return block_rate; }
00053 
00056     virtual long Frames( void ) { return total_blocks; }
00057 
00060     virtual double TotalTime( void ) { return (double)total_blocks / block_rate; }
00061     
00067     virtual int SeekTime( double seconds ) { return Seek( seconds * block_rate ); }
00068 
00074     virtual int Seek( long block );
00075 
00076 protected:
00077     VideoFile *file;            // übergeordnete Klasse
00078     int nummer;
00079     String codec_name;
00080     long pos;                   // aktuelles Position ( Bild / Sample )
00081     long long bytes;            // Anzahl der Bytes, die bisher geschrieben wurden
00082     double block_rate;          // Daten werden in Blöcken gespeichert
00083                                 // 1 Block = 1 Bild bei Videotracks
00084     long total_blocks;          // Gesamtanzahl der Blöcke im Track
00085     VideoFile::IO_Mode iomode;
00086 
00087     CodecPlugins *AV_Codecs;    // Plugin-Loader
00088 };
00089 
00090 #endif

Erzeugt am Tue Dec 31 22:54:54 2002 für av_convert von doxygen1.2.9.1 geschrieben von Dimitri van Heesch, © 1997-2001