annotate options.c @ 5330:936a03bbd757 libavformat

Suppress ?params in the rtsp uri Right now rtsp demuxer receives it's ffmpeg specific params encoded in the url That made the server receiving requests with the url ending with "?udp", "?multicast" and "?tcp". That may or may not cause problems to servers with overly strict or overly simple uri parsers Patch from Armand Bendanan (name.surnameATfreeDOTfr)
author lu_zero
date Sat, 24 Oct 2009 15:18:21 +0000 (2009-10-24)
parents b2aa396484d4
children ce002ddccf1b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4188
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
1 /*
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
2 * Copyright (c) 2000, 2001, 2002 Fabrice Bellard
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
3 *
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
4 * This file is part of FFmpeg.
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
5 *
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
6 * FFmpeg is free software; you can redistribute it and/or
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
7 * modify it under the terms of the GNU Lesser General Public
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
8 * License as published by the Free Software Foundation; either
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
9 * version 2.1 of the License, or (at your option) any later version.
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
10 *
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
11 * FFmpeg is distributed in the hope that it will be useful,
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
14 * Lesser General Public License for more details.
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
15 *
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
16 * You should have received a copy of the GNU Lesser General Public
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
17 * License along with FFmpeg; if not, write to the Free Software
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
19 */
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
20 #include "avformat.h"
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
21 #include "libavcodec/opt.h"
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
22
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
23 /**
4331
49c1d3b27727 Use full internal pathname in doxygen @file directives.
diego
parents: 4188
diff changeset
24 * @file libavformat/options.c
4188
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
25 * Options definition for AVFormatContext.
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
26 */
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
27
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
28 static const char* format_to_name(void* ptr)
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
29 {
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
30 AVFormatContext* fc = (AVFormatContext*) ptr;
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
31 if(fc->iformat) return fc->iformat->name;
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
32 else if(fc->oformat) return fc->oformat->name;
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
33 else return "NULL";
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
34 }
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
35
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
36 #define OFFSET(x) offsetof(AVFormatContext,x)
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
37 #define DEFAULT 0 //should be NAN but it does not work as it is not a constant in glibc as required by ANSI/ISO C
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
38 //these names are too long to be readable
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
39 #define E AV_OPT_FLAG_ENCODING_PARAM
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
40 #define D AV_OPT_FLAG_DECODING_PARAM
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
41
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
42 static const AVOption options[]={
5071
b2aa396484d4 use AVFormatContext->probesize in av_find_stream_info and raise default to 5M
bcoudurier
parents: 4626
diff changeset
43 {"probesize", "set probing size", OFFSET(probesize), FF_OPT_TYPE_INT, 5000000, 32, INT_MAX, D},
4188
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
44 {"muxrate", "set mux rate", OFFSET(mux_rate), FF_OPT_TYPE_INT, DEFAULT, 0, INT_MAX, E},
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
45 {"packetsize", "set packet size", OFFSET(packet_size), FF_OPT_TYPE_INT, DEFAULT, 0, INT_MAX, E},
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
46 {"fflags", NULL, OFFSET(flags), FF_OPT_TYPE_FLAGS, DEFAULT, INT_MIN, INT_MAX, D|E, "fflags"},
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
47 {"ignidx", "ignore index", 0, FF_OPT_TYPE_CONST, AVFMT_FLAG_IGNIDX, INT_MIN, INT_MAX, D, "fflags"},
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
48 {"genpts", "generate pts", 0, FF_OPT_TYPE_CONST, AVFMT_FLAG_GENPTS, INT_MIN, INT_MAX, D, "fflags"},
4626
166d293b44fa deprecate old metadata API
aurel
parents: 4405
diff changeset
49 #if LIBAVFORMAT_VERSION_INT < (53<<16)
4188
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
50 {"track", " set the track number", OFFSET(track), FF_OPT_TYPE_INT, DEFAULT, 0, INT_MAX, E},
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
51 {"year", "set the year", OFFSET(year), FF_OPT_TYPE_INT, DEFAULT, INT_MIN, INT_MAX, E},
4626
166d293b44fa deprecate old metadata API
aurel
parents: 4405
diff changeset
52 #endif
4188
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
53 {"analyzeduration", "how many microseconds are analyzed to estimate duration", OFFSET(max_analyze_duration), FF_OPT_TYPE_INT, 3*AV_TIME_BASE, 0, INT_MAX, D},
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
54 {"cryptokey", "decryption key", OFFSET(key), FF_OPT_TYPE_BINARY, 0, 0, 0, D},
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
55 {"indexmem", "max memory used for timestamp index (per stream)", OFFSET(max_index_size), FF_OPT_TYPE_INT, 1<<20, 0, INT_MAX, D},
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
56 {"rtbufsize", "max memory used for buffering real-time frames", OFFSET(max_picture_buffer), FF_OPT_TYPE_INT, 3041280, 0, INT_MAX, D}, /* defaults to 1s of 15fps 352x288 YUYV422 video */
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
57 {"fdebug", "print specific debug info", OFFSET(debug), FF_OPT_TYPE_FLAGS, DEFAULT, 0, INT_MAX, E|D, "fdebug"},
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
58 {"ts", NULL, 0, FF_OPT_TYPE_CONST, FF_FDEBUG_TS, INT_MIN, INT_MAX, E|D, "fdebug"},
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
59 {NULL},
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
60 };
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
61
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
62 #undef E
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
63 #undef D
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
64 #undef DEFAULT
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
65
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
66 static const AVClass av_format_context_class = { "AVFormatContext", format_to_name, options };
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
67
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
68 static void avformat_get_context_defaults(AVFormatContext *s)
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
69 {
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
70 memset(s, 0, sizeof(AVFormatContext));
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
71
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
72 s->av_class = &av_format_context_class;
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
73
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
74 av_opt_set_defaults(s);
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
75 }
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
76
4405
61319d92bc36 Deprecate av_malloc_format_context() in favor of
stefano
parents: 4331
diff changeset
77 AVFormatContext *avformat_alloc_context(void)
4188
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
78 {
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
79 AVFormatContext *ic;
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
80 ic = av_malloc(sizeof(AVFormatContext));
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
81 if (!ic) return ic;
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
82 avformat_get_context_defaults(ic);
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
83 ic->av_class = &av_format_context_class;
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
84 return ic;
d2093f4132df Move the AVFormatContext options definition to a dedicated file,
stefano
parents:
diff changeset
85 }
4405
61319d92bc36 Deprecate av_malloc_format_context() in favor of
stefano
parents: 4331
diff changeset
86
61319d92bc36 Deprecate av_malloc_format_context() in favor of
stefano
parents: 4331
diff changeset
87 #if LIBAVFORMAT_VERSION_MAJOR < 53
61319d92bc36 Deprecate av_malloc_format_context() in favor of
stefano
parents: 4331
diff changeset
88 AVFormatContext *av_alloc_format_context(void)
61319d92bc36 Deprecate av_malloc_format_context() in favor of
stefano
parents: 4331
diff changeset
89 {
61319d92bc36 Deprecate av_malloc_format_context() in favor of
stefano
parents: 4331
diff changeset
90 return avformat_alloc_context();
61319d92bc36 Deprecate av_malloc_format_context() in favor of
stefano
parents: 4331
diff changeset
91 }
61319d92bc36 Deprecate av_malloc_format_context() in favor of
stefano
parents: 4331
diff changeset
92 #endif