opt.c 3.5 KB
Newer Older
M
Michael Niedermayer 已提交
1
/*
2 3
 * AVOptions ABI compatibility wrapper
 * Copyright (c) 2010 Michael Niedermayer <michaelni@gmx.at>
M
Michael Niedermayer 已提交
4
 *
5 6 7
 * This file is part of FFmpeg.
 *
 * FFmpeg is free software; you can redistribute it and/or
M
Michael Niedermayer 已提交
8 9
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
10
 * version 2.1 of the License, or (at your option) any later version.
M
Michael Niedermayer 已提交
11
 *
12
 * FFmpeg is distributed in the hope that it will be useful,
M
Michael Niedermayer 已提交
13 14 15 16 17
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
18
 * License along with FFmpeg; if not, write to the Free Software
19
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
M
Michael Niedermayer 已提交
20
 */
21

M
Michael Niedermayer 已提交
22
#include "avcodec.h"
23
#include "opt.h"
M
Michael Niedermayer 已提交
24

25
#if LIBAVCODEC_VERSION_MAJOR < 53 && CONFIG_SHARED && HAVE_SYMVER
26

27 28
FF_SYMVER(const AVOption *, av_find_opt, (void *obj, const char *name, const char *unit, int mask, int flags), "LIBAVCODEC_52"){
    return av_find_opt(obj, name, unit, mask, flags);
M
Michael Niedermayer 已提交
29
}
30 31
FF_SYMVER(int, av_set_string3, (void *obj, const char *name, const char *val, int alloc, const AVOption **o_out), "LIBAVCODEC_52"){
    return av_set_string3(obj, name, val, alloc, o_out);
32
}
33 34
FF_SYMVER(const AVOption *, av_set_double, (void *obj, const char *name, double n), "LIBAVCODEC_52"){
    return av_set_double(obj, name, n);
35
}
36 37
FF_SYMVER(const AVOption *, av_set_q, (void *obj, const char *name, AVRational n), "LIBAVCODEC_52"){
    return av_set_q(obj, name, n);
M
Michael Niedermayer 已提交
38
}
39 40
FF_SYMVER(const AVOption *, av_set_int, (void *obj, const char *name, int64_t n), "LIBAVCODEC_52"){
    return av_set_int(obj, name, n);
41
}
42 43 44 45 46 47 48 49 50 51 52 53 54 55
FF_SYMVER(double, av_get_double, (void *obj, const char *name, const AVOption **o_out), "LIBAVCODEC_52"){
    return av_get_double(obj, name, o_out);
}
FF_SYMVER(AVRational, av_get_q, (void *obj, const char *name, const AVOption **o_out), "LIBAVCODEC_52"){
    return av_get_q(obj, name, o_out);
}
FF_SYMVER(int64_t, av_get_int, (void *obj, const char *name, const AVOption **o_out), "LIBAVCODEC_52"){
    return av_get_int(obj, name, o_out);
}
FF_SYMVER(const char *, av_get_string, (void *obj, const char *name, const AVOption **o_out, char *buf, int buf_len), "LIBAVCODEC_52"){
    return av_get_string(obj, name, o_out, buf, buf_len);
}
FF_SYMVER(const AVOption *, av_next_option, (void *obj, const AVOption *last), "LIBAVCODEC_52"){
    return av_next_option(obj, last);
S
Stefano Sabatini 已提交
56
}
57 58 59 60 61 62 63 64 65 66
FF_SYMVER(int, av_opt_show2, (void *obj, void *av_log_obj, int req_flags, int rej_flags), "LIBAVCODEC_52"){
    return av_opt_show2(obj, av_log_obj, req_flags, rej_flags);
}
FF_SYMVER(void, av_opt_set_defaults, (void *s), "LIBAVCODEC_52"){
    return av_opt_set_defaults(s);
}
FF_SYMVER(void, av_opt_set_defaults2, (void *s, int mask, int flags), "LIBAVCODEC_52"){
    return av_opt_set_defaults2(s, mask, flags);
}
#endif
S
Stefano Sabatini 已提交
67

68
#if LIBAVCODEC_VERSION_MAJOR < 53
S
Stefano Sabatini 已提交
69 70 71 72
const AVOption *av_set_string2(void *obj, const char *name, const char *val, int alloc){
    const AVOption *o;
    if (av_set_string3(obj, name, val, alloc, &o) < 0)
        return NULL;
M
Michael Niedermayer 已提交
73
    return o;
M
Michael Niedermayer 已提交
74 75
}

76
const AVOption *av_set_string(void *obj, const char *name, const char *val){
77 78 79 80
    const AVOption *o;
    if (av_set_string3(obj, name, val, 0, &o) < 0)
        return NULL;
    return o;
81
}
82
#endif
83

84 85 86 87 88 89
#if FF_API_OPT_SHOW
int av_opt_show(void *obj, void *av_log_obj){
    return av_opt_show2(obj, av_log_obj,
                        AV_OPT_FLAG_ENCODING_PARAM|AV_OPT_FLAG_DECODING_PARAM, 0);
}
#endif