00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef CODECINFO_H
00019 #define CODECINFO_H
00020
00021 #include <String.h>
00022 #include <vector.h>
00023
00024 class V_Codec;
00025 class A_Codec;
00026 class V_Track;
00027 class A_Track;
00028
00029
00034 class CodecInfo {
00035 public:
00036 CodecInfo();
00037 ~CodecInfo();
00038
00041 void CodecKonstruktor( V_Codec *(*konstruktor)(V_Track *) );
00042
00045 void CodecKonstruktor( A_Codec *(*konstruktor)(A_Track *) );
00046
00049 void Libname( const char *name );
00050
00051
00054 void AddFormat( const char *Dateityp, const char *Codecname );
00055
00058 V_Codec *CreateVCodec( V_Track *track, const char *Dateityp, const char *Codecname );
00059
00062 A_Codec *CreateACodec( A_Track *track, const char *Dateityp, const char *Codecname );
00063
00066 CodecInfo &operator += ( const CodecInfo &liste );
00067
00068
00069 protected:
00070 struct format_info {
00071 String Dateityp;
00072 String Codecname;
00073 V_Codec *(*v_konstr)( V_Track *track );
00074 A_Codec *(*a_konstr)( A_Track *track );
00075 String Libname;
00076 };
00077
00078 vector<format_info*> format_liste;
00079
00080 V_Codec *(*v_konstr)( V_Track *track );
00081 A_Codec *(*a_konstr)( A_Track *track );
00082 String libname;
00083
00084 format_info *SucheEintrag( const char *Dateityp, const char *Codecname );
00085 };
00086
00087 #endif