Mercurial > mplayer.hg
annotate libmpcodecs/ad.c @ 29269:4d9de809b174
Add a hack to detect when we are writing into a Windows pipe since the fseek
incorrectly does not fail like it should.
This ensures we will not incorrectly append the file header at the end.
Based on patch by Zhou Zongyi [zhouzongyi at pset.suntec.net]
author | reimar |
---|---|
date | Sat, 16 May 2009 13:59:53 +0000 |
parents | d5d66bff938a |
children | 5ba6784f6574 |
rev | line source |
---|---|
28924
d5d66bff938a
cosmetics: Remove file names from file header, it only causes trouble.
diego
parents:
27363
diff
changeset
|
1 /* audio decoder interface */ |
5344 | 2 |
3 #include <stdio.h> | |
4 #include <stdlib.h> | |
5 #include <string.h> | |
6 | |
7 #include "config.h" | |
8 | |
22599
4faee1254928
Add explicit location for headers from the stream/ directory.
diego
parents:
18765
diff
changeset
|
9 #include "stream/stream.h" |
22601
ed8f90096c65
Add explicit location for headers from the libmpdemux/ directory.
diego
parents:
22599
diff
changeset
|
10 #include "libmpdemux/demuxer.h" |
ed8f90096c65
Add explicit location for headers from the libmpdemux/ directory.
diego
parents:
22599
diff
changeset
|
11 #include "libmpdemux/stheader.h" |
5344 | 12 #include "ad.h" |
13 | |
14 /* Missed vorbis, mad, dshow */ | |
15 | |
16 //extern ad_functions_t mpcodecs_ad_null; | |
17 extern ad_functions_t mpcodecs_ad_mp3lib; | |
18 extern ad_functions_t mpcodecs_ad_ffmpeg; | |
19 extern ad_functions_t mpcodecs_ad_liba52; | |
20 extern ad_functions_t mpcodecs_ad_hwac3; | |
17397
2e20dd653147
ad_hwmpa: pass-through fake audio codec for hardware mpeg decoders
nicodvb
parents:
17151
diff
changeset
|
21 extern ad_functions_t mpcodecs_ad_hwmpa; |
5344 | 22 extern ad_functions_t mpcodecs_ad_pcm; |
23 extern ad_functions_t mpcodecs_ad_dvdpcm; | |
24 extern ad_functions_t mpcodecs_ad_alaw; | |
25 extern ad_functions_t mpcodecs_ad_imaadpcm; | |
26 extern ad_functions_t mpcodecs_ad_msadpcm; | |
27 extern ad_functions_t mpcodecs_ad_dk3adpcm; | |
5519 | 28 extern ad_functions_t mpcodecs_ad_dk4adpcm; |
5344 | 29 extern ad_functions_t mpcodecs_ad_dshow; |
8326 | 30 extern ad_functions_t mpcodecs_ad_dmo; |
5344 | 31 extern ad_functions_t mpcodecs_ad_acm; |
5345 | 32 extern ad_functions_t mpcodecs_ad_msgsm; |
5356
739cad21c32c
Port dec_audio.c faad aac decoder to libmpcodecs, cleaned up code, improved buffering scheme.
atmos4
parents:
5345
diff
changeset
|
33 extern ad_functions_t mpcodecs_ad_faad; |
7174 | 34 extern ad_functions_t mpcodecs_ad_libvorbis; |
16915
6b1d1e4adaea
Speex support. Seeking and pts generation does not work.
reimar
parents:
15958
diff
changeset
|
35 extern ad_functions_t mpcodecs_ad_speex; |
5479
22b289d7f87f
libmad support, rewritten from scratch using Xine decoder as sample
arpi
parents:
5454
diff
changeset
|
36 extern ad_functions_t mpcodecs_ad_libmad; |
7174 | 37 extern ad_functions_t mpcodecs_ad_realaud; |
6927 | 38 extern ad_functions_t mpcodecs_ad_libdv; |
8008 | 39 extern ad_functions_t mpcodecs_ad_qtaudio; |
14276 | 40 extern ad_functions_t mpcodecs_ad_twin; |
15958
087142ef3a2d
musepack demuxing and decoding support (demuxing is v7 bitstream only).
reimar
parents:
14276
diff
changeset
|
41 extern ad_functions_t mpcodecs_ad_libmusepack; |
23821 | 42 extern ad_functions_t mpcodecs_ad_libdca; |
5344 | 43 |
44 ad_functions_t* mpcodecs_ad_drivers[] = | |
45 { | |
46 // &mpcodecs_ad_null, | |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
26206
diff
changeset
|
47 #ifdef CONFIG_MP3LIB |
5344 | 48 &mpcodecs_ad_mp3lib, |
8026
b465ba5897a3
usage of libmpeg2, liba52, mp3lib & svq1 can be disabled
arpi
parents:
8008
diff
changeset
|
49 #endif |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
26206
diff
changeset
|
50 #ifdef CONFIG_LIBA52 |
5344 | 51 &mpcodecs_ad_liba52, |
52 &mpcodecs_ad_hwac3, | |
8026
b465ba5897a3
usage of libmpeg2, liba52, mp3lib & svq1 can be disabled
arpi
parents:
8008
diff
changeset
|
53 #endif |
17397
2e20dd653147
ad_hwmpa: pass-through fake audio codec for hardware mpeg decoders
nicodvb
parents:
17151
diff
changeset
|
54 &mpcodecs_ad_hwmpa, |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
26206
diff
changeset
|
55 #ifdef CONFIG_LIBAVCODEC |
5344 | 56 &mpcodecs_ad_ffmpeg, |
57 #endif | |
58 &mpcodecs_ad_pcm, | |
59 &mpcodecs_ad_dvdpcm, | |
60 &mpcodecs_ad_alaw, | |
61 &mpcodecs_ad_imaadpcm, | |
62 &mpcodecs_ad_msadpcm, | |
63 &mpcodecs_ad_dk3adpcm, | |
5345 | 64 &mpcodecs_ad_msgsm, |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
26206
diff
changeset
|
65 #ifdef CONFIG_WIN32DLL |
5344 | 66 &mpcodecs_ad_dshow, |
8326 | 67 &mpcodecs_ad_dmo, |
5344 | 68 &mpcodecs_ad_acm, |
14276 | 69 &mpcodecs_ad_twin, |
8160 | 70 #endif |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
26206
diff
changeset
|
71 #ifdef CONFIG_QTX_CODECS |
8008 | 72 &mpcodecs_ad_qtaudio, |
5344 | 73 #endif |
27363
40057010b1fa
Change a bunch of codec-specific preprocessor directives from a HAVE_
diego
parents:
27341
diff
changeset
|
74 #ifdef CONFIG_FAAD |
5454 | 75 &mpcodecs_ad_faad, |
76 #endif | |
27363
40057010b1fa
Change a bunch of codec-specific preprocessor directives from a HAVE_
diego
parents:
27341
diff
changeset
|
77 #ifdef CONFIG_OGGVORBIS |
7174 | 78 &mpcodecs_ad_libvorbis, |
5356
739cad21c32c
Port dec_audio.c faad aac decoder to libmpcodecs, cleaned up code, improved buffering scheme.
atmos4
parents:
5345
diff
changeset
|
79 #endif |
27363
40057010b1fa
Change a bunch of codec-specific preprocessor directives from a HAVE_
diego
parents:
27341
diff
changeset
|
80 #ifdef CONFIG_SPEEX |
16915
6b1d1e4adaea
Speex support. Seeking and pts generation does not work.
reimar
parents:
15958
diff
changeset
|
81 &mpcodecs_ad_speex, |
6b1d1e4adaea
Speex support. Seeking and pts generation does not work.
reimar
parents:
15958
diff
changeset
|
82 #endif |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
26206
diff
changeset
|
83 #ifdef CONFIG_LIBMAD |
5479
22b289d7f87f
libmad support, rewritten from scratch using Xine decoder as sample
arpi
parents:
5454
diff
changeset
|
84 &mpcodecs_ad_libmad, |
22b289d7f87f
libmad support, rewritten from scratch using Xine decoder as sample
arpi
parents:
5454
diff
changeset
|
85 #endif |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
26206
diff
changeset
|
86 #ifdef CONFIG_REALCODECS |
7174 | 87 &mpcodecs_ad_realaud, |
6367 | 88 #endif |
27363
40057010b1fa
Change a bunch of codec-specific preprocessor directives from a HAVE_
diego
parents:
27341
diff
changeset
|
89 #ifdef CONFIG_LIBDV095 |
6927 | 90 &mpcodecs_ad_libdv, |
91 #endif | |
27363
40057010b1fa
Change a bunch of codec-specific preprocessor directives from a HAVE_
diego
parents:
27341
diff
changeset
|
92 #ifdef CONFIG_MUSEPACK |
15958
087142ef3a2d
musepack demuxing and decoding support (demuxing is v7 bitstream only).
reimar
parents:
14276
diff
changeset
|
93 &mpcodecs_ad_libmusepack, |
087142ef3a2d
musepack demuxing and decoding support (demuxing is v7 bitstream only).
reimar
parents:
14276
diff
changeset
|
94 #endif |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
26206
diff
changeset
|
95 #ifdef CONFIG_LIBDCA |
23821 | 96 &mpcodecs_ad_libdca, |
97 #endif | |
5344 | 98 NULL |
99 }; |