annotate libmpcodecs/ve.c @ 32282:606e4157cd4c

Split alloc and init of context so that parameters can be set in the context instead of requireing being passed through function parameters. This also makes sws work with AVOptions.
author michael
date Sun, 26 Sep 2010 19:33:57 +0000
parents 4614728cab25
children af9ef007bec6
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
30421
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 27363
diff changeset
1 /*
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 27363
diff changeset
2 * This file is part of MPlayer.
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 27363
diff changeset
3 *
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 27363
diff changeset
4 * MPlayer is free software; you can redistribute it and/or modify
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 27363
diff changeset
5 * it under the terms of the GNU General Public License as published by
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 27363
diff changeset
6 * the Free Software Foundation; either version 2 of the License, or
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 27363
diff changeset
7 * (at your option) any later version.
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 27363
diff changeset
8 *
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 27363
diff changeset
9 * MPlayer is distributed in the hope that it will be useful,
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 27363
diff changeset
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 27363
diff changeset
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 27363
diff changeset
12 * GNU General Public License for more details.
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 27363
diff changeset
13 *
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 27363
diff changeset
14 * You should have received a copy of the GNU General Public License along
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 27363
diff changeset
15 * with MPlayer; if not, write to the Free Software Foundation, Inc.,
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 27363
diff changeset
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 27363
diff changeset
17 */
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 27363
diff changeset
18
5550
7d1dfb59c6c0 encoders
arpi
parents:
diff changeset
19 #include <stdio.h>
7d1dfb59c6c0 encoders
arpi
parents:
diff changeset
20 #include <stdlib.h>
7d1dfb59c6c0 encoders
arpi
parents:
diff changeset
21 #include <string.h>
7d1dfb59c6c0 encoders
arpi
parents:
diff changeset
22
17012
6ff3379a0862 Unify include path handling, -I.. is in CFLAGS.
diego
parents: 15453
diff changeset
23 #include "config.h"
6ff3379a0862 Unify include path handling, -I.. is in CFLAGS.
diego
parents: 15453
diff changeset
24 #include "mp_msg.h"
5550
7d1dfb59c6c0 encoders
arpi
parents:
diff changeset
25
5607
1972c3475d93 mp_image.h and img_format.h moved to libmpcodecs
arpi
parents: 5577
diff changeset
26 #include "img_format.h"
1972c3475d93 mp_image.h and img_format.h moved to libmpcodecs
arpi
parents: 5577
diff changeset
27 #include "mp_image.h"
5550
7d1dfb59c6c0 encoders
arpi
parents:
diff changeset
28 #include "vf.h"
7d1dfb59c6c0 encoders
arpi
parents:
diff changeset
29
32033
c42345605c7a Mark video encoder vf_info_t structs as const.
diego
parents: 30633
diff changeset
30 extern const vf_info_t ve_info_lavc;
c42345605c7a Mark video encoder vf_info_t structs as const.
diego
parents: 30633
diff changeset
31 extern const vf_info_t ve_info_vfw;
c42345605c7a Mark video encoder vf_info_t structs as const.
diego
parents: 30633
diff changeset
32 extern const vf_info_t ve_info_raw;
c42345605c7a Mark video encoder vf_info_t structs as const.
diego
parents: 30633
diff changeset
33 extern const vf_info_t ve_info_libdv;
c42345605c7a Mark video encoder vf_info_t structs as const.
diego
parents: 30633
diff changeset
34 extern const vf_info_t ve_info_xvid;
c42345605c7a Mark video encoder vf_info_t structs as const.
diego
parents: 30633
diff changeset
35 extern const vf_info_t ve_info_qtvideo;
c42345605c7a Mark video encoder vf_info_t structs as const.
diego
parents: 30633
diff changeset
36 extern const vf_info_t ve_info_nuv;
c42345605c7a Mark video encoder vf_info_t structs as const.
diego
parents: 30633
diff changeset
37 extern const vf_info_t ve_info_x264;
5550
7d1dfb59c6c0 encoders
arpi
parents:
diff changeset
38
25876
edfe8baed49f copy note on new demuxers and codecs to the top of the array as well to be
ivo
parents: 25872
diff changeset
39 /* 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
40 * 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
41 * 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
42
32035
bc01ea7a6322 Mark encoder_list declaration as const pointers to const data, fixes:
diego
parents: 32033
diff changeset
43 static const vf_info_t * const encoder_list[] = {
32142
4614728cab25 build system: Merge all FFmpeg library checks into a single FFmpeg check.
diego
parents: 32035
diff changeset
44 #ifdef CONFIG_FFMPEG
5550
7d1dfb59c6c0 encoders
arpi
parents:
diff changeset
45 &ve_info_lavc,
7d1dfb59c6c0 encoders
arpi
parents:
diff changeset
46 #endif
27341
e7c989f7a7c9 Start unifying names of internal preprocessor directives.
diego
parents: 26513
diff changeset
47 #ifdef CONFIG_WIN32DLL
5550
7d1dfb59c6c0 encoders
arpi
parents:
diff changeset
48 &ve_info_vfw,
27341
e7c989f7a7c9 Start unifying names of internal preprocessor directives.
diego
parents: 26513
diff changeset
49 #ifdef CONFIG_QTX_CODECS_WIN32
8471
0b7839c27be9 Sorenson 1/3 encoding just for fun :)
arpi
parents: 7456
diff changeset
50 &ve_info_qtvideo,
5550
7d1dfb59c6c0 encoders
arpi
parents:
diff changeset
51 #endif
15453
d7a2ffc6e694 compilation/link fix with --disable-qtx --disable-dshow
diego
parents: 13166
diff changeset
52 #endif
27363
40057010b1fa Change a bunch of codec-specific preprocessor directives from a HAVE_
diego
parents: 27341
diff changeset
53 #ifdef CONFIG_LIBDV095
5577
80eedd3ef6d3 RGB24/YUY2 -> DV encoding, using libdv
arpi
parents: 5550
diff changeset
54 &ve_info_libdv,
80eedd3ef6d3 RGB24/YUY2 -> DV encoding, using libdv
arpi
parents: 5550
diff changeset
55 #endif
11966
b58fdd5d8e8d remove raw nonsense and replace it by one ovc
attila
parents: 11581
diff changeset
56 &ve_info_raw,
27363
40057010b1fa Change a bunch of codec-specific preprocessor directives from a HAVE_
diego
parents: 27341
diff changeset
57 #ifdef CONFIG_XVID4
7456
dacc262f41ba Support for XviD encoding
kmkaplan
parents: 5607
diff changeset
58 &ve_info_xvid,
dacc262f41ba Support for XviD encoding
kmkaplan
parents: 5607
diff changeset
59 #endif
27341
e7c989f7a7c9 Start unifying names of internal preprocessor directives.
diego
parents: 26513
diff changeset
60 #ifdef CONFIG_LIBLZO
9520
2860f7c9d9ca A new nuppel video encoder. Mainly for RT encoding on slow box.
albeu
parents: 8471
diff changeset
61 &ve_info_nuv,
22244
675574bebb04 Make liblzo conditional to the appropriate #defines.
diego
parents: 20984
diff changeset
62 #endif
27363
40057010b1fa Change a bunch of codec-specific preprocessor directives from a HAVE_
diego
parents: 27341
diff changeset
63 #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
64 &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
65 #endif
25872
3eeaf9d4c65a note on new demuxers and codecs, add them to lav* instead of libmp*
ivo
parents: 22244
diff changeset
66 /* 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
67 * 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
68 * libraries and encoders requiring binary support. */
5550
7d1dfb59c6c0 encoders
arpi
parents:
diff changeset
69 NULL
7d1dfb59c6c0 encoders
arpi
parents:
diff changeset
70 };
7d1dfb59c6c0 encoders
arpi
parents:
diff changeset
71
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
72 vf_instance_t* vf_open_encoder(vf_instance_t* next, const char *name, char *args){
9595
6bf482d797b1 1000L i forgot mencoder
albeu
parents: 9520
diff changeset
73 char* vf_args[] = { "_oldargs_", args, NULL };
6bf482d797b1 1000L i forgot mencoder
albeu
parents: 9520
diff changeset
74 return vf_open_plugin(encoder_list,next,name,vf_args);
5550
7d1dfb59c6c0 encoders
arpi
parents:
diff changeset
75 }