annotate codec-cfg.h @ 30915:8b78430a1249

Don't try to delete the global memory mutex in the Win32 loader code, since it's now statically allocated and will not be reallocated if a new allocation comes along. This also fixes an issue where the mutex would not always be properly unlocked, leading to deadlocks. I thought I'd committed that ages ago, but obviously not, and it broke CineForm initialization.
author sesse
date Thu, 25 Mar 2010 12:58:41 +0000
parents c6524b71a9da
children dd7f15a3fb1b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
30429
c1a3f1bbba26 Add license header to all top-level files missing them.
diego
parents: 27334
diff changeset
1 /*
c1a3f1bbba26 Add license header to all top-level files missing them.
diego
parents: 27334
diff changeset
2 * This file is part of MPlayer.
c1a3f1bbba26 Add license header to all top-level files missing them.
diego
parents: 27334
diff changeset
3 *
c1a3f1bbba26 Add license header to all top-level files missing them.
diego
parents: 27334
diff changeset
4 * MPlayer is free software; you can redistribute it and/or modify
c1a3f1bbba26 Add license header to all top-level files missing them.
diego
parents: 27334
diff changeset
5 * it under the terms of the GNU General Public License as published by
c1a3f1bbba26 Add license header to all top-level files missing them.
diego
parents: 27334
diff changeset
6 * the Free Software Foundation; either version 2 of the License, or
c1a3f1bbba26 Add license header to all top-level files missing them.
diego
parents: 27334
diff changeset
7 * (at your option) any later version.
c1a3f1bbba26 Add license header to all top-level files missing them.
diego
parents: 27334
diff changeset
8 *
c1a3f1bbba26 Add license header to all top-level files missing them.
diego
parents: 27334
diff changeset
9 * MPlayer is distributed in the hope that it will be useful,
c1a3f1bbba26 Add license header to all top-level files missing them.
diego
parents: 27334
diff changeset
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
c1a3f1bbba26 Add license header to all top-level files missing them.
diego
parents: 27334
diff changeset
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
c1a3f1bbba26 Add license header to all top-level files missing them.
diego
parents: 27334
diff changeset
12 * GNU General Public License for more details.
c1a3f1bbba26 Add license header to all top-level files missing them.
diego
parents: 27334
diff changeset
13 *
c1a3f1bbba26 Add license header to all top-level files missing them.
diego
parents: 27334
diff changeset
14 * You should have received a copy of the GNU General Public License along
c1a3f1bbba26 Add license header to all top-level files missing them.
diego
parents: 27334
diff changeset
15 * with MPlayer; if not, write to the Free Software Foundation, Inc.,
c1a3f1bbba26 Add license header to all top-level files missing them.
diego
parents: 27334
diff changeset
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
c1a3f1bbba26 Add license header to all top-level files missing them.
diego
parents: 27334
diff changeset
17 */
c1a3f1bbba26 Add license header to all top-level files missing them.
diego
parents: 27334
diff changeset
18
26029
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25661
diff changeset
19 #ifndef MPLAYER_CODEC_CFG_H
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25661
diff changeset
20 #define MPLAYER_CODEC_CFG_H
297
9b00ddddc0b2 imported codec-cfg, small fixes
arpi_esp
parents:
diff changeset
21
22915
1cbc0d439cf3 qdrw changed output format in ffmpeg r8630, sync codecs.conf and require
rtogni
parents: 20362
diff changeset
22 #define CODEC_CFG_MIN 20070407
6200
e604be87613d codecs.conf versioning - patch by Joey Parrish <joey@yunamusic.com>
arpi
parents: 6103
diff changeset
23
27334
a0fe67fe194b change arbitrary CODECS_MAX_FOURCC limit to larger arbitrary limit
compn
parents: 26029
diff changeset
24 #define CODECS_MAX_FOURCC 92
4675
d8a577a52437 added informat support (for encoding)
alex
parents: 4656
diff changeset
25 #define CODECS_MAX_OUTFMT 16
d8a577a52437 added informat support (for encoding)
alex
parents: 4656
diff changeset
26 #define CODECS_MAX_INFMT 16
297
9b00ddddc0b2 imported codec-cfg, small fixes
arpi_esp
parents:
diff changeset
27
303
828ec81e0d64 codecs.conf support
arpi_esp
parents: 300
diff changeset
28 // Global flags:
328
fc98b6c3a3dc lots of changes again
szabii
parents: 319
diff changeset
29 #define CODECS_FLAG_SEEKABLE (1<<0)
6565
1075fe5fc8c3 new global codec flag: align16
arpi
parents: 6561
diff changeset
30 #define CODECS_FLAG_ALIGN16 (1<<1)
297
9b00ddddc0b2 imported codec-cfg, small fixes
arpi_esp
parents:
diff changeset
31
303
828ec81e0d64 codecs.conf support
arpi_esp
parents: 300
diff changeset
32 // Outfmt flags:
299
3343fb3e4f49 outflags[] reading fixed
arpi_esp
parents: 297
diff changeset
33 #define CODECS_FLAG_FLIP (1<<0)
3343fb3e4f49 outflags[] reading fixed
arpi_esp
parents: 297
diff changeset
34 #define CODECS_FLAG_NOFLIP (1<<1)
3343fb3e4f49 outflags[] reading fixed
arpi_esp
parents: 297
diff changeset
35 #define CODECS_FLAG_YUVHACK (1<<2)
5249
eafaa705a354 query flag added
arpi
parents: 5235
diff changeset
36 #define CODECS_FLAG_QUERY (1<<3)
6103
595743379480 'static' outfmt-flag added
arpi
parents: 5478
diff changeset
37 #define CODECS_FLAG_STATIC (1<<4)
299
3343fb3e4f49 outflags[] reading fixed
arpi_esp
parents: 297
diff changeset
38
5177
fc5f42c4d088 status numbers changed to fit our detection order
arpi
parents: 5029
diff changeset
39 #define CODECS_STATUS__MIN 0
fc5f42c4d088 status numbers changed to fit our detection order
arpi
parents: 5029
diff changeset
40 #define CODECS_STATUS_NOT_WORKING -1
fc5f42c4d088 status numbers changed to fit our detection order
arpi
parents: 5029
diff changeset
41 #define CODECS_STATUS_PROBLEMS 0
fc5f42c4d088 status numbers changed to fit our detection order
arpi
parents: 5029
diff changeset
42 #define CODECS_STATUS_WORKING 1
fc5f42c4d088 status numbers changed to fit our detection order
arpi
parents: 5029
diff changeset
43 #define CODECS_STATUS_UNTESTED 2
fc5f42c4d088 status numbers changed to fit our detection order
arpi
parents: 5029
diff changeset
44 #define CODECS_STATUS__MAX 2
316
589a93489054 status added
szabii
parents: 303
diff changeset
45
299
3343fb3e4f49 outflags[] reading fixed
arpi_esp
parents: 297
diff changeset
46
12358
133e0ebde74d Make it compile on mingw again. Now it is finally possible to include windows.h in mplayer.c
faust3
parents: 10467
diff changeset
47 #if !defined(GUID_TYPE) && !defined(GUID_DEFINED)
13591
ba6b9cc1b3d0 fix compilation on mingw
faust3
parents: 12358
diff changeset
48 #define GUID_TYPE 1
ba6b9cc1b3d0 fix compilation on mingw
faust3
parents: 12358
diff changeset
49 #define GUID_DEFINED 1
297
9b00ddddc0b2 imported codec-cfg, small fixes
arpi_esp
parents:
diff changeset
50 typedef struct {
300
df3f7a25584c audio format support, realloc() cleanup
arpi_esp
parents: 299
diff changeset
51 unsigned long f1;
df3f7a25584c audio format support, realloc() cleanup
arpi_esp
parents: 299
diff changeset
52 unsigned short f2;
df3f7a25584c audio format support, realloc() cleanup
arpi_esp
parents: 299
diff changeset
53 unsigned short f3;
df3f7a25584c audio format support, realloc() cleanup
arpi_esp
parents: 299
diff changeset
54 unsigned char f4[8];
297
9b00ddddc0b2 imported codec-cfg, small fixes
arpi_esp
parents:
diff changeset
55 } GUID;
1836
7c1671842ee7 GUID fix
arpi
parents: 1828
diff changeset
56 #endif
7c1671842ee7 GUID fix
arpi
parents: 1828
diff changeset
57
297
9b00ddddc0b2 imported codec-cfg, small fixes
arpi_esp
parents:
diff changeset
58
30710
c6524b71a9da cosmetics: Rename "codecs_st" struct to just plain "codecs".
diego
parents: 30429
diff changeset
59 typedef struct codecs {
316
589a93489054 status added
szabii
parents: 303
diff changeset
60 unsigned int fourcc[CODECS_MAX_FOURCC];
589a93489054 status added
szabii
parents: 303
diff changeset
61 unsigned int fourccmap[CODECS_MAX_FOURCC];
589a93489054 status added
szabii
parents: 303
diff changeset
62 unsigned int outfmt[CODECS_MAX_OUTFMT];
589a93489054 status added
szabii
parents: 303
diff changeset
63 unsigned char outflags[CODECS_MAX_OUTFMT];
4675
d8a577a52437 added informat support (for encoding)
alex
parents: 4656
diff changeset
64 unsigned int infmt[CODECS_MAX_INFMT];
d8a577a52437 added informat support (for encoding)
alex
parents: 4656
diff changeset
65 unsigned char inflags[CODECS_MAX_INFMT];
297
9b00ddddc0b2 imported codec-cfg, small fixes
arpi_esp
parents:
diff changeset
66 char *name;
9b00ddddc0b2 imported codec-cfg, small fixes
arpi_esp
parents:
diff changeset
67 char *info;
9b00ddddc0b2 imported codec-cfg, small fixes
arpi_esp
parents:
diff changeset
68 char *comment;
316
589a93489054 status added
szabii
parents: 303
diff changeset
69 char *dll;
7180
28677d779205 -afm/-vfm migration from ID (int) to NAME (string) - simplifies code and makes dlopen()'ing possible
arpi
parents: 6935
diff changeset
70 char* drv;
316
589a93489054 status added
szabii
parents: 303
diff changeset
71 GUID guid;
7180
28677d779205 -afm/-vfm migration from ID (int) to NAME (string) - simplifies code and makes dlopen()'ing possible
arpi
parents: 6935
diff changeset
72 // short driver;
297
9b00ddddc0b2 imported codec-cfg, small fixes
arpi_esp
parents:
diff changeset
73 short flags;
316
589a93489054 status added
szabii
parents: 303
diff changeset
74 short status;
361
3e0c68209600 dunno :)
szabii
parents: 332
diff changeset
75 short cpuflags;
297
9b00ddddc0b2 imported codec-cfg, small fixes
arpi_esp
parents:
diff changeset
76 } codecs_t;
9b00ddddc0b2 imported codec-cfg, small fixes
arpi_esp
parents:
diff changeset
77
18980
ed69754aa58d Marks several string parameters as const when they are not modified in the function, Patch by Stefan Huehner, stefan AT huehner-org
reynaldo
parents: 18581
diff changeset
78 int parse_codec_cfg(const char *cfgfile);
16321
efbfac98cab1 Allow forcing of demuxers and codecs by prepending '+'
reimar
parents: 16132
diff changeset
79 codecs_t* find_video_codec(unsigned int fourcc, unsigned int *fourccmap,
efbfac98cab1 Allow forcing of demuxers and codecs by prepending '+'
reimar
parents: 16132
diff changeset
80 codecs_t *start, int force);
efbfac98cab1 Allow forcing of demuxers and codecs by prepending '+'
reimar
parents: 16132
diff changeset
81 codecs_t* find_audio_codec(unsigned int fourcc, unsigned int *fourccmap,
efbfac98cab1 Allow forcing of demuxers and codecs by prepending '+'
reimar
parents: 16132
diff changeset
82 codecs_t *start, int force);
efbfac98cab1 Allow forcing of demuxers and codecs by prepending '+'
reimar
parents: 16132
diff changeset
83 codecs_t* find_codec(unsigned int fourcc, unsigned int *fourccmap,
efbfac98cab1 Allow forcing of demuxers and codecs by prepending '+'
reimar
parents: 16132
diff changeset
84 codecs_t *start, int audioflag, int force);
1983
72f0648df475 -ac help / -vc help
arpi
parents: 1948
diff changeset
85 void list_codecs(int audioflag);
17566
f580a7755ac5 Patch by Stefan Huehner / stefan % huehner ! org \
rathann
parents: 16321
diff changeset
86 void codecs_uninit_free(void);
297
9b00ddddc0b2 imported codec-cfg, small fixes
arpi_esp
parents:
diff changeset
87
25661
293aeec83153 Replace the persistent CODECS_FLAG_SELECTED by a local "stringset" with
reimar
parents: 23870
diff changeset
88 typedef char ** stringset_t;
293aeec83153 Replace the persistent CODECS_FLAG_SELECTED by a local "stringset" with
reimar
parents: 23870
diff changeset
89 void stringset_init(stringset_t *set);
293aeec83153 Replace the persistent CODECS_FLAG_SELECTED by a local "stringset" with
reimar
parents: 23870
diff changeset
90 void stringset_free(stringset_t *set);
293aeec83153 Replace the persistent CODECS_FLAG_SELECTED by a local "stringset" with
reimar
parents: 23870
diff changeset
91 void stringset_add(stringset_t *set, const char *str);
293aeec83153 Replace the persistent CODECS_FLAG_SELECTED by a local "stringset" with
reimar
parents: 23870
diff changeset
92 int stringset_test(stringset_t *set, const char *str);
293aeec83153 Replace the persistent CODECS_FLAG_SELECTED by a local "stringset" with
reimar
parents: 23870
diff changeset
93
26029
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25661
diff changeset
94 #endif /* MPLAYER_CODEC_CFG_H */