00001
00002
00003
00004
00005 #ifndef _VIDEO_TRACK_H_
00006 #define _VIDEO_TRACK_H_
00007
00008 #include <sys/types.h>
00009
00010 #include "Track.h"
00011 #include "V_Format.h"
00012
00013 class VideoFile;
00014
00022 class V_Track: public Track, public V_Format {
00023 friend class V_Codec;
00024 public:
00025 V_Track( VideoFile *File, int track=0 );
00026
00027 V_Track( VideoFile *File,
00028 double Rate,
00029 int x, int y,
00030 const char *Codec_name = NULL );
00031
00032 virtual ~V_Track();
00033
00034
00037 virtual long GetKeyFrame( long bild ) { return bild; }
00038
00041 virtual bool IsKeyFrame( void );
00042
00045 virtual int readData( unsigned char *&data, long &bytes );
00046
00049 virtual int writeData( unsigned char *data, long bytes, int keyframe=0 );
00050
00051 static const int IS_KEYFRAME=1;
00052
00055 inline V_Codec *Codec( void ) { return codec; }
00056
00057
00058 protected:
00061 virtual int readRaw( unsigned char *&data, long &bytes );
00062
00065 virtual int writeRaw( unsigned char *data, long bytes, int keyframe=0 );
00066
00067 V_Codec *codec;
00068
00069 unsigned char *frame_daten;
00070 long frame_daten_bytes;
00071 };
00072
00073 #endif