annotate libmpcodecs/ad.c @ 23510:a6c619ee9d30

Teletext support for tv:// (v4l and v4l2 only) modified patch from Otvos Attila oattila at chello dot hu Module uses zvbi library for all low-level VBI operations (like I/O with vbi device, converting vbi pages into usefull vbi_page stuctures, rendering them into RGB32 images). All teletext related stuff (except properties, slave commands and rendering osd in text mode or RGB32 rendered teletext pages in spu mode) is implemented in tvi_vbi.c New properties: teletext_page - switching between pages teletext_mode - switch between on/off/opaque/transparent modes teletext_format - (currently read-only) allows to get format info (black/white,gray,text) teletext_half_page - trivial zooming (displaying top/bottom half of teletext page) New slave commands: teletext_add_dec - user interface for jumping to any page by editing page number interactively teletext_go_link - goes though links, specified on current page
author voroshil
date Sun, 10 Jun 2007 00:06:12 +0000
parents ed8f90096c65
children 46b21d6fb61d
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
22599
4faee1254928 Add explicit location for headers from the stream/ directory.
diego
parents: 18765
diff changeset
11 #include "stream/stream.h"
22601
ed8f90096c65 Add explicit location for headers from the libmpdemux/ directory.
diego
parents: 22599
diff changeset
12 #include "libmpdemux/demuxer.h"
ed8f90096c65 Add explicit location for headers from the libmpdemux/ directory.
diego
parents: 22599
diff changeset
13 #include "libmpdemux/stheader.h"
5344
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;
17397
2e20dd653147 ad_hwmpa: pass-through fake audio codec for hardware mpeg decoders
nicodvb
parents: 17151
diff changeset
23 extern ad_functions_t mpcodecs_ad_hwmpa;
5344
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
24 extern ad_functions_t mpcodecs_ad_pcm;
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
25 extern ad_functions_t mpcodecs_ad_dvdpcm;
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
26 extern ad_functions_t mpcodecs_ad_alaw;
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
27 extern ad_functions_t mpcodecs_ad_imaadpcm;
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
28 extern ad_functions_t mpcodecs_ad_msadpcm;
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
29 extern ad_functions_t mpcodecs_ad_dk3adpcm;
5519
868c13f78f08 vf control codes added, autoq support
arpi
parents: 5479
diff changeset
30 extern ad_functions_t mpcodecs_ad_dk4adpcm;
5344
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;
16915
6b1d1e4adaea Speex support. Seeking and pts generation does not work.
reimar
parents: 15958
diff changeset
37 extern ad_functions_t mpcodecs_ad_speex;
5479
22b289d7f87f libmad support, rewritten from scratch using Xine decoder as sample
arpi
parents: 5454
diff changeset
38 extern ad_functions_t mpcodecs_ad_libmad;
7174
7672615cc811 sync driver names with codec-cfg
arpi
parents: 6927
diff changeset
39 extern ad_functions_t mpcodecs_ad_realaud;
6927
0145bba6e201 native DV audio/video decoders using libdv
arpi
parents: 6367
diff changeset
40 extern ad_functions_t mpcodecs_ad_libdv;
8008
35d663ad0d95 qtaudio - audio decoder using win32 quicktime 5 dlls
arpi
parents: 7174
diff changeset
41 extern ad_functions_t mpcodecs_ad_qtaudio;
14276
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents: 12827
diff changeset
42 extern ad_functions_t mpcodecs_ad_twin;
15958
087142ef3a2d musepack demuxing and decoding support (demuxing is v7 bitstream only).
reimar
parents: 14276
diff changeset
43 extern ad_functions_t mpcodecs_ad_libmusepack;
5344
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
44
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
45 ad_functions_t* mpcodecs_ad_drivers[] =
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
46 {
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
47 // &mpcodecs_ad_null,
8026
b465ba5897a3 usage of libmpeg2, liba52, mp3lib & svq1 can be disabled
arpi
parents: 8008
diff changeset
48 #ifdef USE_MP3LIB
5344
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
49 &mpcodecs_ad_mp3lib,
8026
b465ba5897a3 usage of libmpeg2, liba52, mp3lib & svq1 can be disabled
arpi
parents: 8008
diff changeset
50 #endif
b465ba5897a3 usage of libmpeg2, liba52, mp3lib & svq1 can be disabled
arpi
parents: 8008
diff changeset
51 #ifdef USE_LIBA52
5344
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
52 &mpcodecs_ad_liba52,
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
53 &mpcodecs_ad_hwac3,
8026
b465ba5897a3 usage of libmpeg2, liba52, mp3lib & svq1 can be disabled
arpi
parents: 8008
diff changeset
54 #endif
17397
2e20dd653147 ad_hwmpa: pass-through fake audio codec for hardware mpeg decoders
nicodvb
parents: 17151
diff changeset
55 &mpcodecs_ad_hwmpa,
5344
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
56 #ifdef USE_LIBAVCODEC
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
57 &mpcodecs_ad_ffmpeg,
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
58 #endif
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
59 &mpcodecs_ad_pcm,
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
60 &mpcodecs_ad_dvdpcm,
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
61 &mpcodecs_ad_alaw,
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
62 &mpcodecs_ad_imaadpcm,
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
63 &mpcodecs_ad_msadpcm,
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
64 &mpcodecs_ad_dk3adpcm,
5345
81071ffb7b22 ad_msgsm added
arpi
parents: 5344
diff changeset
65 &mpcodecs_ad_msgsm,
5344
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
66 #ifdef USE_WIN32DLL
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
67 &mpcodecs_ad_dshow,
8326
4849a0cfc2aa DMO audio support (including 6ch support too)
arpi
parents: 8160
diff changeset
68 &mpcodecs_ad_dmo,
5344
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
69 &mpcodecs_ad_acm,
14276
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents: 12827
diff changeset
70 &mpcodecs_ad_twin,
8160
2be30233c532 qt video dll codecs support
arpi
parents: 8026
diff changeset
71 #endif
9502
241bba8f60e8 MACOSX support patch, based on Dan Christiansens work
alex
parents: 8326
diff changeset
72 #if defined(USE_QTX_CODECS) || defined(MACOSX)
8008
35d663ad0d95 qtaudio - audio decoder using win32 quicktime 5 dlls
arpi
parents: 7174
diff changeset
73 &mpcodecs_ad_qtaudio,
5344
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
74 #endif
5356
739cad21c32c Port dec_audio.c faad aac decoder to libmpcodecs, cleaned up code, improved buffering scheme.
atmos4
parents: 5345
diff changeset
75 #ifdef HAVE_FAAD
5454
c6252cfb68e2 ehh. vorbis support...
arpi
parents: 5408
diff changeset
76 &mpcodecs_ad_faad,
c6252cfb68e2 ehh. vorbis support...
arpi
parents: 5408
diff changeset
77 #endif
c6252cfb68e2 ehh. vorbis support...
arpi
parents: 5408
diff changeset
78 #ifdef HAVE_OGGVORBIS
7174
7672615cc811 sync driver names with codec-cfg
arpi
parents: 6927
diff changeset
79 &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
80 #endif
16915
6b1d1e4adaea Speex support. Seeking and pts generation does not work.
reimar
parents: 15958
diff changeset
81 #ifdef HAVE_SPEEX
6b1d1e4adaea Speex support. Seeking and pts generation does not work.
reimar
parents: 15958
diff changeset
82 &mpcodecs_ad_speex,
6b1d1e4adaea Speex support. Seeking and pts generation does not work.
reimar
parents: 15958
diff changeset
83 #endif
5479
22b289d7f87f libmad support, rewritten from scratch using Xine decoder as sample
arpi
parents: 5454
diff changeset
84 #ifdef USE_LIBMAD
22b289d7f87f libmad support, rewritten from scratch using Xine decoder as sample
arpi
parents: 5454
diff changeset
85 &mpcodecs_ad_libmad,
22b289d7f87f libmad support, rewritten from scratch using Xine decoder as sample
arpi
parents: 5454
diff changeset
86 #endif
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents: 5519
diff changeset
87 #ifdef USE_REALCODECS
7174
7672615cc811 sync driver names with codec-cfg
arpi
parents: 6927
diff changeset
88 &mpcodecs_ad_realaud,
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents: 5519
diff changeset
89 #endif
6927
0145bba6e201 native DV audio/video decoders using libdv
arpi
parents: 6367
diff changeset
90 #ifdef HAVE_LIBDV095
0145bba6e201 native DV audio/video decoders using libdv
arpi
parents: 6367
diff changeset
91 &mpcodecs_ad_libdv,
0145bba6e201 native DV audio/video decoders using libdv
arpi
parents: 6367
diff changeset
92 #endif
15958
087142ef3a2d musepack demuxing and decoding support (demuxing is v7 bitstream only).
reimar
parents: 14276
diff changeset
93 #ifdef HAVE_MUSEPACK
087142ef3a2d musepack demuxing and decoding support (demuxing is v7 bitstream only).
reimar
parents: 14276
diff changeset
94 &mpcodecs_ad_libmusepack,
087142ef3a2d musepack demuxing and decoding support (demuxing is v7 bitstream only).
reimar
parents: 14276
diff changeset
95 #endif
5344
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
96 NULL
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
97 };