annotate libmpcodecs/ad.c @ 15978:c8dc500e078e

memcpy and memmove both copy memory, but when using memcpy the source and destination must not overlap, but here, they did overlap. Committed with the kind blessing of Richard, patch by uau
author gpoirier
date Fri, 15 Jul 2005 22:09:30 +0000
parents 087142ef3a2d
children 6b1d1e4adaea
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_dshow;
8326
4849a0cfc2aa DMO audio support (including 6ch support too)
arpi
parents: 8160
diff changeset
31 extern ad_functions_t mpcodecs_ad_dmo;
5344
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
32 extern ad_functions_t mpcodecs_ad_acm;
5345
81071ffb7b22 ad_msgsm added
arpi
parents: 5344
diff changeset
33 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
34 extern ad_functions_t mpcodecs_ad_faad;
7174
7672615cc811 sync driver names with codec-cfg
arpi
parents: 6927
diff changeset
35 extern ad_functions_t mpcodecs_ad_libvorbis;
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
7672615cc811 sync driver names with codec-cfg
arpi
parents: 6927
diff changeset
37 extern ad_functions_t mpcodecs_ad_realaud;
6927
0145bba6e201 native DV audio/video decoders using libdv
arpi
parents: 6367
diff changeset
38 extern ad_functions_t mpcodecs_ad_libdv;
8008
35d663ad0d95 qtaudio - audio decoder using win32 quicktime 5 dlls
arpi
parents: 7174
diff changeset
39 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
40 extern ad_functions_t mpcodecs_ad_ra1428;
14276
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents: 12827
diff changeset
41 extern ad_functions_t mpcodecs_ad_twin;
15958
087142ef3a2d musepack demuxing and decoding support (demuxing is v7 bitstream only).
reimar
parents: 14276
diff changeset
42 extern ad_functions_t mpcodecs_ad_libmusepack;
5344
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
43
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
44 ad_functions_t* mpcodecs_ad_drivers[] =
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
45 {
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
46 // &mpcodecs_ad_null,
8026
b465ba5897a3 usage of libmpeg2, liba52, mp3lib & svq1 can be disabled
arpi
parents: 8008
diff changeset
47 #ifdef USE_MP3LIB
5344
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
48 &mpcodecs_ad_mp3lib,
8026
b465ba5897a3 usage of libmpeg2, liba52, mp3lib & svq1 can be disabled
arpi
parents: 8008
diff changeset
49 #endif
b465ba5897a3 usage of libmpeg2, liba52, mp3lib & svq1 can be disabled
arpi
parents: 8008
diff changeset
50 #ifdef USE_LIBA52
5344
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
51 &mpcodecs_ad_liba52,
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
52 &mpcodecs_ad_hwac3,
8026
b465ba5897a3 usage of libmpeg2, liba52, mp3lib & svq1 can be disabled
arpi
parents: 8008
diff changeset
53 #endif
5344
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
54 #ifdef USE_LIBAVCODEC
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
55 &mpcodecs_ad_ffmpeg,
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
56 #endif
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
57 &mpcodecs_ad_pcm,
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
58 &mpcodecs_ad_dvdpcm,
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
59 &mpcodecs_ad_alaw,
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
60 &mpcodecs_ad_imaadpcm,
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
61 &mpcodecs_ad_msadpcm,
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
62 &mpcodecs_ad_dk3adpcm,
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,
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
5479
22b289d7f87f libmad support, rewritten from scratch using Xine decoder as sample
arpi
parents: 5454
diff changeset
81 #ifdef USE_LIBMAD
22b289d7f87f libmad support, rewritten from scratch using Xine decoder as sample
arpi
parents: 5454
diff changeset
82 &mpcodecs_ad_libmad,
22b289d7f87f libmad support, rewritten from scratch using Xine decoder as sample
arpi
parents: 5454
diff changeset
83 #endif
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents: 5519
diff changeset
84 #ifdef USE_REALCODECS
7174
7672615cc811 sync driver names with codec-cfg
arpi
parents: 6927
diff changeset
85 &mpcodecs_ad_realaud,
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents: 5519
diff changeset
86 #endif
6927
0145bba6e201 native DV audio/video decoders using libdv
arpi
parents: 6367
diff changeset
87 #ifdef HAVE_LIBDV095
0145bba6e201 native DV audio/video decoders using libdv
arpi
parents: 6367
diff changeset
88 &mpcodecs_ad_libdv,
0145bba6e201 native DV audio/video decoders using libdv
arpi
parents: 6367
diff changeset
89 #endif
10261
05a50c0ce239 RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders.
rtognimp
parents: 9502
diff changeset
90 &mpcodecs_ad_ra1428,
15958
087142ef3a2d musepack demuxing and decoding support (demuxing is v7 bitstream only).
reimar
parents: 14276
diff changeset
91 #ifdef HAVE_MUSEPACK
087142ef3a2d musepack demuxing and decoding support (demuxing is v7 bitstream only).
reimar
parents: 14276
diff changeset
92 &mpcodecs_ad_libmusepack,
087142ef3a2d musepack demuxing and decoding support (demuxing is v7 bitstream only).
reimar
parents: 14276
diff changeset
93 #endif
5344
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
94 NULL
7198d3eba09f ok, use ad_* stuff
arpi
parents:
diff changeset
95 };