Merge svn changes up to r29134
[mplayer.git] / codec-cfg.h
blobd964ef74db2f8a6ffbe87c81a335b8d0c401e2c7
1 #ifndef MPLAYER_CODEC_CFG_H
2 #define MPLAYER_CODEC_CFG_H
4 #define CODEC_CFG_MIN 20070407
6 #define CODECS_MAX_FOURCC 92
7 #define CODECS_MAX_OUTFMT 16
8 #define CODECS_MAX_INFMT 16
10 // Global flags:
11 #define CODECS_FLAG_SEEKABLE (1<<0)
12 #define CODECS_FLAG_ALIGN16 (1<<1)
14 // Outfmt flags:
15 #define CODECS_FLAG_FLIP (1<<0)
16 #define CODECS_FLAG_NOFLIP (1<<1)
17 #define CODECS_FLAG_YUVHACK (1<<2)
18 #define CODECS_FLAG_QUERY (1<<3)
19 #define CODECS_FLAG_STATIC (1<<4)
21 #define CODECS_STATUS__MIN 0
22 #define CODECS_STATUS_NOT_WORKING -1
23 #define CODECS_STATUS_PROBLEMS 0
24 #define CODECS_STATUS_WORKING 1
25 #define CODECS_STATUS_UNTESTED 2
26 #define CODECS_STATUS__MAX 2
29 #if !defined(GUID_TYPE) && !defined(GUID_DEFINED)
30 #define GUID_TYPE 1
31 #define GUID_DEFINED 1
32 typedef struct {
33 unsigned long f1;
34 unsigned short f2;
35 unsigned short f3;
36 unsigned char f4[8];
37 } GUID;
38 #endif
41 typedef struct codecs {
42 unsigned int fourcc[CODECS_MAX_FOURCC];
43 unsigned int fourccmap[CODECS_MAX_FOURCC];
44 unsigned int outfmt[CODECS_MAX_OUTFMT];
45 unsigned char outflags[CODECS_MAX_OUTFMT];
46 unsigned int infmt[CODECS_MAX_INFMT];
47 unsigned char inflags[CODECS_MAX_INFMT];
48 char *name;
49 char *info;
50 char *comment;
51 char *dll;
52 char* drv;
53 GUID guid;
54 // short driver;
55 short flags;
56 short status;
57 short cpuflags;
58 } codecs_t;
60 int parse_codec_cfg(const char *cfgfile);
61 codecs_t* find_video_codec(unsigned int fourcc, unsigned int *fourccmap,
62 codecs_t *start, int force);
63 codecs_t* find_audio_codec(unsigned int fourcc, unsigned int *fourccmap,
64 codecs_t *start, int force);
65 codecs_t* find_codec(unsigned int fourcc, unsigned int *fourccmap,
66 codecs_t *start, int audioflag, int force);
67 void list_codecs(int audioflag);
68 void codecs_uninit_free(void);
70 typedef char ** stringset_t;
71 void stringset_init(stringset_t *set);
72 void stringset_free(stringset_t *set);
73 void stringset_add(stringset_t *set, const char *str);
74 int stringset_test(stringset_t *set, const char *str);
76 #endif /* MPLAYER_CODEC_CFG_H */