Mercurial > mplayer.hg
annotate libmpcodecs/ve.c @ 29385:f9ae25067fe0
Fix 24bit audio playback.
The reordering channels code had reoccurring bug
where in switch(samplesize) block the
case 3 (3 bytes) doesn't end with break;
leading to execution of the next case 4 too.
This mangles the already processed data and
causes massive memory corruption.
author | iive |
---|---|
date | Sun, 19 Jul 2009 09:55:29 +0000 |
parents | 40057010b1fa |
children | bbb6ebec87a0 |
rev | line source |
---|---|
5550 | 1 #include <stdio.h> |
2 #include <stdlib.h> | |
3 #include <string.h> | |
4 | |
17012 | 5 #include "config.h" |
6 #include "mp_msg.h" | |
5550 | 7 |
5607 | 8 #include "img_format.h" |
9 #include "mp_image.h" | |
5550 | 10 #include "vf.h" |
11 | |
12 extern vf_info_t ve_info_lavc; | |
13 extern vf_info_t ve_info_vfw; | |
11966 | 14 extern vf_info_t ve_info_raw; |
5577 | 15 extern vf_info_t ve_info_libdv; |
7456 | 16 extern vf_info_t ve_info_xvid; |
8471 | 17 extern vf_info_t ve_info_qtvideo; |
9520
2860f7c9d9ca
A new nuppel video encoder. Mainly for RT encoding on slow box.
albeu
parents:
8471
diff
changeset
|
18 extern vf_info_t ve_info_nuv; |
13166
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
11966
diff
changeset
|
19 extern vf_info_t ve_info_x264; |
5550 | 20 |
25876
edfe8baed49f
copy note on new demuxers and codecs to the top of the array as well to be
ivo
parents:
25872
diff
changeset
|
21 /* Please do not add any new encoders here. If you want to implement a new |
25880
4df11ac927fc
clarify comments/docs about lav* being the preferred place to implement new
ivo
parents:
25876
diff
changeset
|
22 * encoder, add it to libavcodec, except for wrappers around external |
4df11ac927fc
clarify comments/docs about lav* being the preferred place to implement new
ivo
parents:
25876
diff
changeset
|
23 * libraries and encoders requiring binary support. */ |
25876
edfe8baed49f
copy note on new demuxers and codecs to the top of the array as well to be
ivo
parents:
25872
diff
changeset
|
24 |
5550 | 25 static vf_info_t* encoder_list[]={ |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
26513
diff
changeset
|
26 #ifdef CONFIG_LIBAVCODEC |
5550 | 27 &ve_info_lavc, |
28 #endif | |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
26513
diff
changeset
|
29 #ifdef CONFIG_WIN32DLL |
5550 | 30 &ve_info_vfw, |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
26513
diff
changeset
|
31 #ifdef CONFIG_QTX_CODECS_WIN32 |
8471 | 32 &ve_info_qtvideo, |
5550 | 33 #endif |
15453
d7a2ffc6e694
compilation/link fix with --disable-qtx --disable-dshow
diego
parents:
13166
diff
changeset
|
34 #endif |
27363
40057010b1fa
Change a bunch of codec-specific preprocessor directives from a HAVE_
diego
parents:
27341
diff
changeset
|
35 #ifdef CONFIG_LIBDV095 |
5577 | 36 &ve_info_libdv, |
37 #endif | |
11966 | 38 &ve_info_raw, |
27363
40057010b1fa
Change a bunch of codec-specific preprocessor directives from a HAVE_
diego
parents:
27341
diff
changeset
|
39 #ifdef CONFIG_XVID4 |
7456 | 40 &ve_info_xvid, |
41 #endif | |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
26513
diff
changeset
|
42 #ifdef CONFIG_LIBLZO |
9520
2860f7c9d9ca
A new nuppel video encoder. Mainly for RT encoding on slow box.
albeu
parents:
8471
diff
changeset
|
43 &ve_info_nuv, |
22244
675574bebb04
Make liblzo conditional to the appropriate #defines.
diego
parents:
20984
diff
changeset
|
44 #endif |
27363
40057010b1fa
Change a bunch of codec-specific preprocessor directives from a HAVE_
diego
parents:
27341
diff
changeset
|
45 #ifdef CONFIG_X264 |
13166
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
11966
diff
changeset
|
46 &ve_info_x264, |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
11966
diff
changeset
|
47 #endif |
25872
3eeaf9d4c65a
note on new demuxers and codecs, add them to lav* instead of libmp*
ivo
parents:
22244
diff
changeset
|
48 /* Please do not add any new encoders here. If you want to implement a new |
25880
4df11ac927fc
clarify comments/docs about lav* being the preferred place to implement new
ivo
parents:
25876
diff
changeset
|
49 * encoder, add it to libavcodec, except for wrappers around external |
4df11ac927fc
clarify comments/docs about lav* being the preferred place to implement new
ivo
parents:
25876
diff
changeset
|
50 * libraries and encoders requiring binary support. */ |
5550 | 51 NULL |
52 }; | |
53 | |
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:
17012
diff
changeset
|
54 vf_instance_t* vf_open_encoder(vf_instance_t* next, const char *name, char *args){ |
9595 | 55 char* vf_args[] = { "_oldargs_", args, NULL }; |
56 return vf_open_plugin(encoder_list,next,name,vf_args); | |
5550 | 57 } |
58 |