00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef CODECINFO_ENTRY_H
00019 #define CODECINFO_ENTRY_H
00020
00021 #include "String.h"
00022 #include "PluginInfo.h"
00023
00024
00025 class V_Codec;
00026 class A_Codec;
00027 class V_Track;
00028 class A_Track;
00029
00030 class CodecPlugins;
00031
00032
00037 class Codec_Info: public PluginInfo {
00038 friend class CodecPlugins;
00039 public:
00040 Codec_Info( const String Dateityp, const String Codecname, V_Codec *(*konstruktor)(V_Track *), const String Real_Codecname = "", const String InfoTxt = "", bool read=true, bool write=true );
00041 Codec_Info( const String Dateityp, const String Codecname, A_Codec *(*konstruktor)(A_Track *), const String Real_Codecname = "", const String InfoTxt = "", bool read=true, bool write=true );
00042 Codec_Info( const Codec_Info &entry );
00043 Codec_Info();
00044
00045 ~Codec_Info();
00046
00049 String CodecName( void );
00050
00053 String AliasName( void );
00054
00057 V_Codec *CreateVCodec( V_Track *track );
00058
00061 A_Codec *CreateACodec( A_Track *track );
00062
00065 String InfoText( void ) { return info_txt; }
00066
00069 bool Video( void ) { return v_konstr != NULL; }
00070
00073 bool Audio( void ) { return a_konstr != NULL; }
00074
00077 String FileTyp( void ) { return datei_typ; }
00078
00079 private:
00080 String datei_typ;
00081 String codec_name;
00082 String real_name;
00083 V_Codec *(*v_konstr)( V_Track *track );
00084 A_Codec *(*a_konstr)( A_Track *track );
00085
00086
00087 String info_txt;
00088
00089
00090 bool can_read, can_write;
00091 };
00092
00093 #endif