annotate libmpcodecs/ad.c @ 10560:11826d9f90c7

this patch fixes 1) some bugs introduced in the tuner autodetection and in the channel-parsing functions, 3) retries reading when the mplayer/mencoder don't read fast enough (sooner it exited) but especially 4) makes the stream compliant with the new, modular stream api (the one currently in CVS is not and is totally unreachable). [and maybe more, next time please include cvslog in patch! -- A'rpi] patch by Nico <nsabbi@libero.it>
author arpi
date Mon, 11 Aug 2003 00:02:46 +0000
parents 05a50c0ce239
children d48eccbbb984
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5344
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
1 /*
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
2 ad.c - audio decoder interface
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
3 */
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
4
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
5 #include <stdio.h>
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
6 #include <stdlib.h>
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
7 #include <string.h>
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
8
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
9 #include "config.h"
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
10
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
11 #include "stream.h"
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
12 #include "demuxer.h"
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
13 #include "stheader.h"
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
14 #include "ad.h"
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
15
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
16 /* Missed vorbis, mad, dshow */
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
17
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
18 //extern ad_functions_t mpcodecs_ad_null;
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
19 extern ad_functions_t mpcodecs_ad_mp3lib;
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
20 extern ad_functions_t mpcodecs_ad_ffmpeg;
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
21 extern ad_functions_t mpcodecs_ad_liba52;
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
22 extern ad_functions_t mpcodecs_ad_hwac3;
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
23 extern ad_functions_t mpcodecs_ad_pcm;
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
24 extern ad_functions_t mpcodecs_ad_dvdpcm;
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
25 extern ad_functions_t mpcodecs_ad_alaw;
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
26 extern ad_functions_t mpcodecs_ad_imaadpcm;
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
27 extern ad_functions_t mpcodecs_ad_msadpcm;
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
28 extern ad_functions_t mpcodecs_ad_dk3adpcm;
5519
868c13f78f08 vf control codes added, autoq support
arpi
parents: 5479
diff changeset
29 extern ad_functions_t mpcodecs_ad_dk4adpcm;
5344
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
30 extern ad_functions_t mpcodecs_ad_roqaudio;
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
31 extern ad_functions_t mpcodecs_ad_dshow;
8326
4849a0cfc2aa DMO audio support (including 6ch support too)
arpi
parents: 8160
diff changeset
32 extern ad_functions_t mpcodecs_ad_dmo;
5344
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
33 extern ad_functions_t mpcodecs_ad_acm;
5345
81071ffb7b22 ad_msgsm added
arpi
parents: 5344
diff changeset
34 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
35 extern ad_functions_t mpcodecs_ad_faad;
7174
7672615cc811 sync driver names with codec-cfg
arpi
parents: 6927
diff changeset
36 extern ad_functions_t mpcodecs_ad_libvorbis;
5479
22b289d7f87f libmad support, rewritten from scratch using Xine decoder as sample
arpi
parents: 5454
diff changeset
37 extern ad_functions_t mpcodecs_ad_libmad;
7174
7672615cc811 sync driver names with codec-cfg
arpi
parents: 6927
diff changeset
38 extern ad_functions_t mpcodecs_ad_realaud;
6927
0145bba6e201 native DV audio/video decoders using libdv
arpi
parents: 6367
diff changeset
39 extern ad_functions_t mpcodecs_ad_libdv;
8008
35d663ad0d95 qtaudio - audio decoder using win32 quicktime 5 dlls
arpi
parents: 7174
diff changeset
40 extern ad_functions_t mpcodecs_ad_qtaudio;
10261
05a50c0ce239 RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders.
rtognimp
parents: 9502
diff changeset
41 extern ad_functions_t mpcodecs_ad_ra1428;
5344
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
42
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
43 ad_functions_t* mpcodecs_ad_drivers[] =
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
44 {
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
45 // &mpcodecs_ad_null,
8026
b465ba5897a3 usage of libmpeg2, liba52, mp3lib & svq1 can be disabled
arpi
parents: 8008
diff changeset
46 #ifdef USE_MP3LIB
5344
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
47 &mpcodecs_ad_mp3lib,
8026
b465ba5897a3 usage of libmpeg2, liba52, mp3lib & svq1 can be disabled
arpi
parents: 8008
diff changeset
48 #endif
b465ba5897a3 usage of libmpeg2, liba52, mp3lib & svq1 can be disabled
arpi
parents: 8008
diff changeset
49 #ifdef USE_LIBA52
5344
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
50 &mpcodecs_ad_liba52,
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
51 &mpcodecs_ad_hwac3,
8026
b465ba5897a3 usage of libmpeg2, liba52, mp3lib & svq1 can be disabled
arpi
parents: 8008
diff changeset
52 #endif
5344
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
53 #ifdef USE_LIBAVCODEC
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
54 &mpcodecs_ad_ffmpeg,
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
55 #endif
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
56 &mpcodecs_ad_pcm,
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
57 &mpcodecs_ad_dvdpcm,
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
58 &mpcodecs_ad_alaw,
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
59 &mpcodecs_ad_imaadpcm,
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
60 &mpcodecs_ad_msadpcm,
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
61 &mpcodecs_ad_dk3adpcm,
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
62 &mpcodecs_ad_roqaudio,
5345
81071ffb7b22 ad_msgsm added
arpi
parents: 5344
diff changeset
63 &mpcodecs_ad_msgsm,
5344
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
64 #ifdef USE_WIN32DLL
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
65 #ifdef USE_DIRECTSHOW
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
66 &mpcodecs_ad_dshow,
8326
4849a0cfc2aa DMO audio support (including 6ch support too)
arpi
parents: 8160
diff changeset
67 &mpcodecs_ad_dmo,
5344
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
68 #endif
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
69 &mpcodecs_ad_acm,
8160
2be30233c532 qt video dll codecs support
arpi
parents: 8026
diff changeset
70 #endif
9502
241bba8f60e8 MACOSX support patch, based on Dan Christiansens work
alex
parents: 8326
diff changeset
71 #if defined(USE_QTX_CODECS) || defined(MACOSX)
8008
35d663ad0d95 qtaudio - audio decoder using win32 quicktime 5 dlls
arpi
parents: 7174
diff changeset
72 &mpcodecs_ad_qtaudio,
5344
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
73 #endif
5356
739cad21c32c Port dec_audio.c faad aac decoder to libmpcodecs, cleaned up code, improved buffering scheme.
atmos4
parents: 5345
diff changeset
74 #ifdef HAVE_FAAD
5454
c6252cfb68e2 ehh. vorbis support...
arpi
parents: 5408
diff changeset
75 &mpcodecs_ad_faad,
c6252cfb68e2 ehh. vorbis support...
arpi
parents: 5408
diff changeset
76 #endif
c6252cfb68e2 ehh. vorbis support...
arpi
parents: 5408
diff changeset
77 #ifdef HAVE_OGGVORBIS
7174
7672615cc811 sync driver names with codec-cfg
arpi
parents: 6927
diff changeset
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
5479
22b289d7f87f libmad support, rewritten from scratch using Xine decoder as sample
arpi
parents: 5454
diff changeset
80 #ifdef USE_LIBMAD
22b289d7f87f libmad support, rewritten from scratch using Xine decoder as sample
arpi
parents: 5454
diff changeset
81 &mpcodecs_ad_libmad,
22b289d7f87f libmad support, rewritten from scratch using Xine decoder as sample
arpi
parents: 5454
diff changeset
82 #endif
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents: 5519
diff changeset
83 #ifdef USE_REALCODECS
7174
7672615cc811 sync driver names with codec-cfg
arpi
parents: 6927
diff changeset
84 &mpcodecs_ad_realaud,
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents: 5519
diff changeset
85 #endif
6927
0145bba6e201 native DV audio/video decoders using libdv
arpi
parents: 6367
diff changeset
86 #ifdef HAVE_LIBDV095
0145bba6e201 native DV audio/video decoders using libdv
arpi
parents: 6367
diff changeset
87 &mpcodecs_ad_libdv,
0145bba6e201 native DV audio/video decoders using libdv
arpi
parents: 6367
diff changeset
88 #endif
10261
05a50c0ce239 RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders.
rtognimp
parents: 9502
diff changeset
89 &mpcodecs_ad_ra1428,
5344
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
90 NULL
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
91 };