annotate opt.c @ 12530:63edd10ad4bc libavcodec tip

Try to fix crashes introduced by r25218 r25218 made assumptions about the existence of past reference frames that weren't necessarily true.
author darkshikari
date Tue, 28 Sep 2010 09:06:22 +0000
parents 776789af0304
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2862
f4aea2c316cc AVOption first try
michael
parents:
diff changeset
1 /*
12522
776789af0304 Move AVOptions from libavcodec to libavutil
michael
parents: 12509
diff changeset
2 * AVOptions ABI compatibility wrapper
776789af0304 Move AVOptions from libavcodec to libavutil
michael
parents: 12509
diff changeset
3 * Copyright (c) 2010 Michael Niedermayer <michaelni@gmx.at>
2862
f4aea2c316cc AVOption first try
michael
parents:
diff changeset
4 *
3947
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3788
diff changeset
5 * This file is part of FFmpeg.
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3788
diff changeset
6 *
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3788
diff changeset
7 * FFmpeg is free software; you can redistribute it and/or
2862
f4aea2c316cc AVOption first try
michael
parents:
diff changeset
8 * modify it under the terms of the GNU Lesser General Public
f4aea2c316cc AVOption first try
michael
parents:
diff changeset
9 * License as published by the Free Software Foundation; either
3947
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3788
diff changeset
10 * version 2.1 of the License, or (at your option) any later version.
2862
f4aea2c316cc AVOption first try
michael
parents:
diff changeset
11 *
3947
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3788
diff changeset
12 * FFmpeg is distributed in the hope that it will be useful,
2862
f4aea2c316cc AVOption first try
michael
parents:
diff changeset
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
f4aea2c316cc AVOption first try
michael
parents:
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
f4aea2c316cc AVOption first try
michael
parents:
diff changeset
15 * Lesser General Public License for more details.
f4aea2c316cc AVOption first try
michael
parents:
diff changeset
16 *
f4aea2c316cc AVOption first try
michael
parents:
diff changeset
17 * You should have received a copy of the GNU Lesser General Public
3947
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3788
diff changeset
18 * License along with FFmpeg; if not, write to the Free Software
3036
0b546eab515d Update licensing information: The FSF changed postal address.
diego
parents: 2967
diff changeset
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
2862
f4aea2c316cc AVOption first try
michael
parents:
diff changeset
20 */
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2962
diff changeset
21
2862
f4aea2c316cc AVOption first try
michael
parents:
diff changeset
22 #include "avcodec.h"
2880
4d91f38477ee dont include opt.h in avcodec.h
michael
parents: 2877
diff changeset
23 #include "opt.h"
2862
f4aea2c316cc AVOption first try
michael
parents:
diff changeset
24
12522
776789af0304 Move AVOptions from libavcodec to libavutil
michael
parents: 12509
diff changeset
25 #if LIBAVCODEC_VERSION_MAJOR < 53 && CONFIG_SHARED && HAVE_SYMVER
6034
72bb141d9c05 Add FF_OPT_TYPE_BINARY and use it to add a cryptokey option
reimar
parents: 6015
diff changeset
26
12522
776789af0304 Move AVOptions from libavcodec to libavutil
michael
parents: 12509
diff changeset
27 FF_SYMVER(const AVOption *, av_find_opt, (void *obj, const char *name, const char *unit, int mask, int flags), "LIBAVCODEC_52"){
776789af0304 Move AVOptions from libavcodec to libavutil
michael
parents: 12509
diff changeset
28 return av_find_opt(obj, name, unit, mask, flags);
776789af0304 Move AVOptions from libavcodec to libavutil
michael
parents: 12509
diff changeset
29 }
776789af0304 Move AVOptions from libavcodec to libavutil
michael
parents: 12509
diff changeset
30 FF_SYMVER(int, av_set_string3, (void *obj, const char *name, const char *val, int alloc, const AVOption **o_out), "LIBAVCODEC_52"){
776789af0304 Move AVOptions from libavcodec to libavutil
michael
parents: 12509
diff changeset
31 return av_set_string3(obj, name, val, alloc, o_out);
776789af0304 Move AVOptions from libavcodec to libavutil
michael
parents: 12509
diff changeset
32 }
776789af0304 Move AVOptions from libavcodec to libavutil
michael
parents: 12509
diff changeset
33 FF_SYMVER(const AVOption *, av_set_double, (void *obj, const char *name, double n), "LIBAVCODEC_52"){
776789af0304 Move AVOptions from libavcodec to libavutil
michael
parents: 12509
diff changeset
34 return av_set_double(obj, name, n);
776789af0304 Move AVOptions from libavcodec to libavutil
michael
parents: 12509
diff changeset
35 }
776789af0304 Move AVOptions from libavcodec to libavutil
michael
parents: 12509
diff changeset
36 FF_SYMVER(const AVOption *, av_set_q, (void *obj, const char *name, AVRational n), "LIBAVCODEC_52"){
776789af0304 Move AVOptions from libavcodec to libavutil
michael
parents: 12509
diff changeset
37 return av_set_q(obj, name, n);
776789af0304 Move AVOptions from libavcodec to libavutil
michael
parents: 12509
diff changeset
38 }
776789af0304 Move AVOptions from libavcodec to libavutil
michael
parents: 12509
diff changeset
39 FF_SYMVER(const AVOption *, av_set_int, (void *obj, const char *name, int64_t n), "LIBAVCODEC_52"){
776789af0304 Move AVOptions from libavcodec to libavutil
michael
parents: 12509
diff changeset
40 return av_set_int(obj, name, n);
776789af0304 Move AVOptions from libavcodec to libavutil
michael
parents: 12509
diff changeset
41 }
776789af0304 Move AVOptions from libavcodec to libavutil
michael
parents: 12509
diff changeset
42 FF_SYMVER(double, av_get_double, (void *obj, const char *name, const AVOption **o_out), "LIBAVCODEC_52"){
776789af0304 Move AVOptions from libavcodec to libavutil
michael
parents: 12509
diff changeset
43 return av_get_double(obj, name, o_out);
8356
0030146fc2ba Implement av_set_string3().
stefano
parents: 8344
diff changeset
44 }
12522
776789af0304 Move AVOptions from libavcodec to libavutil
michael
parents: 12509
diff changeset
45 FF_SYMVER(AVRational, av_get_q, (void *obj, const char *name, const AVOption **o_out), "LIBAVCODEC_52"){
776789af0304 Move AVOptions from libavcodec to libavutil
michael
parents: 12509
diff changeset
46 return av_get_q(obj, name, o_out);
776789af0304 Move AVOptions from libavcodec to libavutil
michael
parents: 12509
diff changeset
47 }
776789af0304 Move AVOptions from libavcodec to libavutil
michael
parents: 12509
diff changeset
48 FF_SYMVER(int64_t, av_get_int, (void *obj, const char *name, const AVOption **o_out), "LIBAVCODEC_52"){
776789af0304 Move AVOptions from libavcodec to libavutil
michael
parents: 12509
diff changeset
49 return av_get_int(obj, name, o_out);
776789af0304 Move AVOptions from libavcodec to libavutil
michael
parents: 12509
diff changeset
50 }
776789af0304 Move AVOptions from libavcodec to libavutil
michael
parents: 12509
diff changeset
51 FF_SYMVER(const char *, av_get_string, (void *obj, const char *name, const AVOption **o_out, char *buf, int buf_len), "LIBAVCODEC_52"){
776789af0304 Move AVOptions from libavcodec to libavutil
michael
parents: 12509
diff changeset
52 return av_get_string(obj, name, o_out, buf, buf_len);
776789af0304 Move AVOptions from libavcodec to libavutil
michael
parents: 12509
diff changeset
53 }
776789af0304 Move AVOptions from libavcodec to libavutil
michael
parents: 12509
diff changeset
54 FF_SYMVER(const AVOption *, av_next_option, (void *obj, const AVOption *last), "LIBAVCODEC_52"){
776789af0304 Move AVOptions from libavcodec to libavutil
michael
parents: 12509
diff changeset
55 return av_next_option(obj, last);
776789af0304 Move AVOptions from libavcodec to libavutil
michael
parents: 12509
diff changeset
56 }
776789af0304 Move AVOptions from libavcodec to libavutil
michael
parents: 12509
diff changeset
57 FF_SYMVER(int, av_opt_show2, (void *obj, void *av_log_obj, int req_flags, int rej_flags), "LIBAVCODEC_52"){
776789af0304 Move AVOptions from libavcodec to libavutil
michael
parents: 12509
diff changeset
58 return av_opt_show2(obj, av_log_obj, req_flags, rej_flags);
776789af0304 Move AVOptions from libavcodec to libavutil
michael
parents: 12509
diff changeset
59 }
776789af0304 Move AVOptions from libavcodec to libavutil
michael
parents: 12509
diff changeset
60 FF_SYMVER(void, av_opt_set_defaults, (void *s), "LIBAVCODEC_52"){
776789af0304 Move AVOptions from libavcodec to libavutil
michael
parents: 12509
diff changeset
61 return av_opt_set_defaults(s);
776789af0304 Move AVOptions from libavcodec to libavutil
michael
parents: 12509
diff changeset
62 }
776789af0304 Move AVOptions from libavcodec to libavutil
michael
parents: 12509
diff changeset
63 FF_SYMVER(void, av_opt_set_defaults2, (void *s, int mask, int flags), "LIBAVCODEC_52"){
776789af0304 Move AVOptions from libavcodec to libavutil
michael
parents: 12509
diff changeset
64 return av_opt_set_defaults2(s, mask, flags);
776789af0304 Move AVOptions from libavcodec to libavutil
michael
parents: 12509
diff changeset
65 }
776789af0304 Move AVOptions from libavcodec to libavutil
michael
parents: 12509
diff changeset
66 #endif
8356
0030146fc2ba Implement av_set_string3().
stefano
parents: 8344
diff changeset
67
8407
8903ad65c412 Put under #if LIBAVCODEC_VERSION_MAJOR < 53 the deprecated functions
stefano
parents: 8406
diff changeset
68 #if LIBAVCODEC_VERSION_MAJOR < 53
8356
0030146fc2ba Implement av_set_string3().
stefano
parents: 8344
diff changeset
69 const AVOption *av_set_string2(void *obj, const char *name, const char *val, int alloc){
0030146fc2ba Implement av_set_string3().
stefano
parents: 8344
diff changeset
70 const AVOption *o;
0030146fc2ba Implement av_set_string3().
stefano
parents: 8344
diff changeset
71 if (av_set_string3(obj, name, val, alloc, &o) < 0)
0030146fc2ba Implement av_set_string3().
stefano
parents: 8344
diff changeset
72 return NULL;
2873
55809f38eb63 AVOption API improvments
michael
parents: 2865
diff changeset
73 return o;
2862
f4aea2c316cc AVOption first try
michael
parents:
diff changeset
74 }
f4aea2c316cc AVOption first try
michael
parents:
diff changeset
75
7224
d5a52b28c9de Fix the av_set_string() free / alloc issue.
michael
parents: 7129
diff changeset
76 const AVOption *av_set_string(void *obj, const char *name, const char *val){
8406
ea27308fa023 Remove calls to deprecated av_set_string2() with calls to
stefano
parents: 8356
diff changeset
77 const AVOption *o;
ea27308fa023 Remove calls to deprecated av_set_string2() with calls to
stefano
parents: 8356
diff changeset
78 if (av_set_string3(obj, name, val, 0, &o) < 0)
ea27308fa023 Remove calls to deprecated av_set_string2() with calls to
stefano
parents: 8356
diff changeset
79 return NULL;
ea27308fa023 Remove calls to deprecated av_set_string2() with calls to
stefano
parents: 8356
diff changeset
80 return o;
7224
d5a52b28c9de Fix the av_set_string() free / alloc issue.
michael
parents: 7129
diff changeset
81 }
8407
8903ad65c412 Put under #if LIBAVCODEC_VERSION_MAJOR < 53 the deprecated functions
stefano
parents: 8406
diff changeset
82 #endif
7224
d5a52b28c9de Fix the av_set_string() free / alloc issue.
michael
parents: 7129
diff changeset
83
12509
7220936dc29c Deprecate av_opt_show() in favor of a new function av_opt_show2(),
stefano
parents: 11832
diff changeset
84 #if FF_API_OPT_SHOW
7220936dc29c Deprecate av_opt_show() in favor of a new function av_opt_show2(),
stefano
parents: 11832
diff changeset
85 int av_opt_show(void *obj, void *av_log_obj){
7220936dc29c Deprecate av_opt_show() in favor of a new function av_opt_show2(),
stefano
parents: 11832
diff changeset
86 return av_opt_show2(obj, av_log_obj,
7220936dc29c Deprecate av_opt_show() in favor of a new function av_opt_show2(),
stefano
parents: 11832
diff changeset
87 AV_OPT_FLAG_ENCODING_PARAM|AV_OPT_FLAG_DECODING_PARAM, 0);
7220936dc29c Deprecate av_opt_show() in favor of a new function av_opt_show2(),
stefano
parents: 11832
diff changeset
88 }
7220936dc29c Deprecate av_opt_show() in favor of a new function av_opt_show2(),
stefano
parents: 11832
diff changeset
89 #endif