demux_viv: fix unsafe code
[mplayer.git] / codec-cfg.h
blob995386f53c96690b6f610985f90dac544c901cb2
1 /*
2 * This file is part of MPlayer.
4 * MPlayer is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
9 * MPlayer is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License along
15 * with MPlayer; if not, write to the Free Software Foundation, Inc.,
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19 #ifndef MPLAYER_CODEC_CFG_H
20 #define MPLAYER_CODEC_CFG_H
22 #include <stdbool.h>
24 #define CODECS_MAX_FOURCC 92
25 #define CODECS_MAX_OUTFMT 16
26 #define CODECS_MAX_INFMT 16
28 // Global flags:
29 #define CODECS_FLAG_SEEKABLE (1<<0)
30 #define CODECS_FLAG_ALIGN16 (1<<1)
32 // Outfmt flags:
33 #define CODECS_FLAG_FLIP (1<<0)
34 #define CODECS_FLAG_NOFLIP (1<<1)
35 #define CODECS_FLAG_YUVHACK (1<<2)
36 #define CODECS_FLAG_QUERY (1<<3)
37 #define CODECS_FLAG_STATIC (1<<4)
39 #define CODECS_STATUS__MIN 0
40 #define CODECS_STATUS_NOT_WORKING -1
41 #define CODECS_STATUS_PROBLEMS 0
42 #define CODECS_STATUS_WORKING 1
43 #define CODECS_STATUS_UNTESTED 2
44 #define CODECS_STATUS__MAX 2
47 #if !defined(GUID_TYPE) && !defined(GUID_DEFINED)
48 #define GUID_TYPE 1
49 #define GUID_DEFINED 1
50 typedef struct {
51 unsigned long f1;
52 unsigned short f2;
53 unsigned short f3;
54 unsigned char f4[8];
55 } GUID;
56 #endif
59 typedef struct codecs {
60 unsigned int fourcc[CODECS_MAX_FOURCC];
61 unsigned int fourccmap[CODECS_MAX_FOURCC];
62 unsigned int outfmt[CODECS_MAX_OUTFMT];
63 unsigned char outflags[CODECS_MAX_OUTFMT];
64 unsigned int infmt[CODECS_MAX_INFMT];
65 unsigned char inflags[CODECS_MAX_INFMT];
66 char *name;
67 char *info;
68 char *comment;
69 char *dll;
70 char* drv;
71 GUID guid;
72 short flags;
73 short status;
74 bool anyinput;
75 } codecs_t;
77 struct MPOpts;
78 int parse_codec_cfg(const char *cfgfile, struct MPOpts *opts);
79 codecs_t* find_video_codec(unsigned int fourcc, unsigned int *fourccmap,
80 codecs_t *start, int force);
81 codecs_t* find_audio_codec(unsigned int fourcc, unsigned int *fourccmap,
82 codecs_t *start, int force);
83 codecs_t* find_codec(unsigned int fourcc, unsigned int *fourccmap,
84 codecs_t *start, int audioflag, int force);
85 void list_codecs(int audioflag);
86 void codecs_uninit_free(void);
88 typedef char ** stringset_t;
89 void stringset_init(stringset_t *set);
90 void stringset_free(stringset_t *set);
91 void stringset_add(stringset_t *set, const char *str);
92 int stringset_test(stringset_t *set, const char *str);
94 #endif /* MPLAYER_CODEC_CFG_H */