~akirad/cinecutie/trunk

« back to all changes in this revision

Viewing changes to quicktime/ffmpeg/libavcodec/opt.h

  • Committer: Paolo Rampino
  • Date: 2010-02-17 19:46:21 UTC
  • Revision ID: git-v1:c39ff77ffa6ae08441c12e7d7f54e3897ddde7f1
Initial Merge

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * AVOptions
 
3
 * copyright (c) 2005 Michael Niedermayer <michaelni@gmx.at>
 
4
 *
 
5
 * This file is part of FFmpeg.
 
6
 *
 
7
 * FFmpeg is free software; you can redistribute it and/or
 
8
 * modify it under the terms of the GNU Lesser General Public
 
9
 * License as published by the Free Software Foundation; either
 
10
 * version 2.1 of the License, or (at your option) any later version.
 
11
 *
 
12
 * FFmpeg is distributed in the hope that it will be useful,
 
13
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
14
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 
15
 * Lesser General Public License for more details.
 
16
 *
 
17
 * 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
 
20
 */
 
21
 
 
22
#ifndef FFMPEG_OPT_H
 
23
#define FFMPEG_OPT_H
 
24
 
 
25
/**
 
26
 * @file opt.h
 
27
 * AVOptions
 
28
 */
 
29
 
 
30
#include "libavutil/rational.h"
 
31
 
 
32
enum AVOptionType{
 
33
    FF_OPT_TYPE_FLAGS,
 
34
    FF_OPT_TYPE_INT,
 
35
    FF_OPT_TYPE_INT64,
 
36
    FF_OPT_TYPE_DOUBLE,
 
37
    FF_OPT_TYPE_FLOAT,
 
38
    FF_OPT_TYPE_STRING,
 
39
    FF_OPT_TYPE_RATIONAL,
 
40
    FF_OPT_TYPE_BINARY,  ///< offset must point to a pointer immediately followed by an int for the length
 
41
    FF_OPT_TYPE_CONST=128,
 
42
};
 
43
 
 
44
/**
 
45
 * AVOption.
 
46
 */
 
47
typedef struct AVOption {
 
48
    const char *name;
 
49
 
 
50
    /**
 
51
     * short English text help.
 
52
     * @todo what about other languages
 
53
     */
 
54
    const char *help;
 
55
    int offset;             ///< offset to context structure where the parsed value should be stored
 
56
    enum AVOptionType type;
 
57
 
 
58
    double default_val;
 
59
    double min;
 
60
    double max;
 
61
 
 
62
    int flags;
 
63
#define AV_OPT_FLAG_ENCODING_PARAM  1   ///< a generic parameter which can be set by the user for muxing or encoding
 
64
#define AV_OPT_FLAG_DECODING_PARAM  2   ///< a generic parameter which can be set by the user for demuxing or decoding
 
65
#define AV_OPT_FLAG_METADATA        4   ///< some data extracted or inserted into the file like title, comment, ...
 
66
#define AV_OPT_FLAG_AUDIO_PARAM     8
 
67
#define AV_OPT_FLAG_VIDEO_PARAM     16
 
68
#define AV_OPT_FLAG_SUBTITLE_PARAM  32
 
69
//FIXME think about enc-audio, ... style flags
 
70
    const char *unit;
 
71
} AVOption;
 
72
 
 
73
 
 
74
const AVOption *av_find_opt(void *obj, const char *name, const char *unit, int mask, int flags);
 
75
const AVOption *av_set_string(void *obj, const char *name, const char *val);
 
76
const AVOption *av_set_double(void *obj, const char *name, double n);
 
77
const AVOption *av_set_q(void *obj, const char *name, AVRational n);
 
78
const AVOption *av_set_int(void *obj, const char *name, int64_t n);
 
79
double av_get_double(void *obj, const char *name, const AVOption **o_out);
 
80
AVRational av_get_q(void *obj, const char *name, const AVOption **o_out);
 
81
int64_t av_get_int(void *obj, const char *name, const AVOption **o_out);
 
82
const char *av_get_string(void *obj, const char *name, const AVOption **o_out, char *buf, int buf_len);
 
83
const AVOption *av_next_option(void *obj, const AVOption *last);
 
84
int av_opt_show(void *obj, void *av_log_obj);
 
85
void av_opt_set_defaults(void *s);
 
86
void av_opt_set_defaults2(void *s, int mask, int flags);
 
87
 
 
88
#endif /* FFMPEG_OPT_H */