Commit Graph

49 Commits

Author SHA1 Message Date
Anton Khirnov ec4c483976 lavf: add a protocol whitelist/blacklist for file opened internally
Should make the default behaviour safer for careless callers that open
random untrusted files.

Bug-Id: CVE-2016-1897
Bug-Id: CVE-2016-1898
2016-02-22 11:48:30 +01:00
Anton Khirnov 9f61abc811 lavf: allow custom IO for all files
Some (de)muxers open additional files beyond the main IO context.
Currently, they call avio_open() directly, which prevents the caller
from using custom IO for such streams.

This commit adds callbacks to AVFormatContext that default to
avio_open2()/avio_close(), but can be overridden by the caller. All
muxers and demuxers using AVIO are switched to using those callbacks
instead of calling avio_open()/avio_close() directly.

(de)muxers that use the URLProtocol layer directly instead of AVIO
remain unconverted for now. This should be fixed in later commits.
2016-01-24 16:45:32 +01:00
Vittorio Giovara f046c3b5ac lavc: Move deprecation warning disabling to files including the table
Unbreak build from 7a5902c556.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-07-03 21:02:50 +02:00
Martin Storsjö c86d8aed74 avio: Rename avclass symbols relating to avio
Don't prefix them ffio_url, which is misleading, sounding too
much like the urlprotocol layer (like ffurl_*).

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-28 22:07:04 +02:00
wm4 9deaec7828 lavf: move internal fields from public to internal context
This is not an API change; the fields were explicitly declared private
before.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-02-10 21:45:04 +01:00
Martin Storsjö 9257692ac1 lavf: Only initialize s->offset once when using avoid_negative_ts make_zero
When given a stream starting at dts=0, it would previously consider
s->offset as uninitialized and set an offset when the second packet
was written, ending up writing two packets with dts=0. By initializing
this field to AV_NOPTS_VALUE, we make sure that we only initialize it
once, on the first packet.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-17 23:18:55 +02:00
Anton Khirnov 33c859c142 lavf: ignore attachment streams for interleaving purposes
Those streams should never get any packets by definition.
2014-02-04 11:17:06 +01:00
Diego Biurrun b5a138652f Give less generic names to global library option arrays 2013-08-02 19:19:02 +02:00
Anton Khirnov 5626697104 Move AVFormatContext/AVCodecContext option tables to separate files.
This will allow us to automatically generate manpages for them.
2012-03-20 07:09:18 +01:00
Anton Khirnov f0cb13958d lavf: remove disabled FF_API_MUXRATE cruft 2012-01-27 10:52:43 +01:00
Anton Khirnov 2d70912cc2 lavf: remove disabled FF_API_FLAG_RTP_HINT cruft 2012-01-27 10:52:42 +01:00
Anton Khirnov 2439f2ca82 lavf: remove disabled FF_API_OLD_AVIO cruft 2012-01-27 10:52:42 +01:00
Dustin Brody 5124423ec3 lavf: rename fer option and document resulting (f_)err_detect options
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-01-21 08:33:05 +01:00
Luca Barbato caf27e37b6 lavf: simplify format_child_class_next()
And fix the error introduced when adding private option to avio.
See 32caa7b13c
2011-11-14 16:16:32 +01:00
Anton Khirnov 32caa7b13c lavf: pass options from AVFormatContext to avio. 2011-11-13 13:21:46 +01:00
Anton Khirnov 5a9ee3152b mpegenc/mpegtsenc: add muxrate private options.
Deprecate AVFormatContext.mux_rate.
2011-10-17 08:39:53 +02:00
Anton Khirnov 145f741e11 AVOptions: rename FF_OPT_TYPE_* => AV_OPT_TYPE_* 2011-10-12 16:51:16 +02:00
Anton Khirnov 641c7afe3c AVOptions: add new API for enumerating children.
This will allow the caller to enumerate child contexts in a generic way
and since the API is recursive, it also allows for deeper nesting (e.g.
AVFormatContext->AVIOContext->URLContext)

This will also allow the new setting/reading API to transparently apply
to children contexts.
2011-10-12 16:51:16 +02:00
Anton Khirnov fb4ca26bdb lavf,lavc,sws: add {avcodec,avformat,sws}_get_class() functions. 2011-09-03 20:53:35 +02:00
Anton Khirnov c11fb8288d AVOptions: add AV_OPT_SEARCH_FAKE_OBJ flag for av_opt_find().
It allows to search for options only with AVClass, without allocating
the corresponding context.
2011-09-03 20:52:21 +02:00
Dustin Brody 2f63440c59 lavf: add support for error_recognition, use it in avidec, and bump minor API version
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-08-12 19:10:22 +02:00
Zohar Kelrich 73e8e8dbf9 lavf: Add an option to discard corrupted frames
Signed-off-by: Zohar Kelrich <lumimies@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2011-08-02 02:52:41 +02:00
Anton Khirnov 05e84c95c7 lavf: add avformat_open_input() as a replacement for av_open_input_*
Add support for demuxer private options.
2011-06-16 20:24:56 +02:00
Diego Biurrun 5bd6ec6d59 options: Add missing braces around struct initializer.
This fixes the warning:
libavformat/options.c:62:1: warning: missing braces around initializer [-Wmissing-braces]
2011-06-08 15:01:02 +02:00
Martin Storsjö 28734ac995 movenc: Deprecate the global RTP hinting flag, use a private AVOption instead
Instead of -fflags rtphint, set -movflags rtphint instead.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-05-27 19:56:44 +03:00
Alex Converse 30315a8d9c avformat: Add fpsprobesize as an AVOption. 2011-05-25 12:34:46 -07:00
Anton Khirnov 29e3489602 lavf: remove duplicate assignment in avformat_alloc_context.
AVClass is already initialized in  avformat_get_context_defaults.
2011-05-17 23:01:42 +02:00
Anton Khirnov f0029cbcf6 lavf: use designated initializers for AVClasses. 2011-05-17 23:01:42 +02:00
Anton Khirnov b66752790a AVOptions: make default_val a union, as proposed in AVOption2.
This breaks API and ABI.
2011-05-10 20:22:06 +02:00
Anton Khirnov 4df001d77f lavf: remove FF_API_ALLOC_FORMAT_CONTEXT cruft 2011-04-19 18:28:38 +02:00
Anton Khirnov 575c18da1b lavf: remove FF_API_OLD_METADATA cruft 2011-04-19 18:28:38 +02:00
Mans Rullgard 2912e87a6c Replace FFmpeg with Libav in licence headers
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-03-19 13:33:20 +00:00
Aurelien Jacobs ca51d86c96 add FF_API_ALLOC_FORMAT_CONTEXT define to disable the deprecated
av_alloc_format_context() public function

Originally committed as revision 25483 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-15 12:59:45 +00:00
Michael Niedermayer 6ed040408b Move AVOptions from libavcodec to libavutil
Originally committed as revision 25210 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-09-26 14:25:22 +00:00
Martin Storsjö 6df4029549 Add an AVOption max_delay for AVFormatContext->max_delay
This can currently also be set via -muxdelay in ffmpeg for muxers,
but not for demuxers (nor for demuxers in ffplay) - this patch
allows it to be set in all those cases.

Originally committed as revision 25180 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-09-24 18:04:21 +00:00
Aurelien Jacobs 54036be11a rename LAVF_API_* defines to FF_API_* to clarify that it is not public API
Originally committed as revision 24825 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-18 20:34:31 +00:00
Aurelien Jacobs dd872bf49f add LAVF_API_OLD_METADATA define to disable the deprecated metadata API
Originally committed as revision 24818 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-17 20:23:19 +00:00
Luca Barbato 1f563bfa15 Remove typo: s/ingore/ignore/
Originally committed as revision 23758 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-24 17:59:49 +00:00
Martin Storsjö 796ac2335d Add a flag for enabling RTP hinting
Originally committed as revision 23161 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-05-18 19:34:21 +00:00
Michael Niedermayer 2308b6c19a Add version to AVClass so we can add to and use fields of AVClass without ABI issues.
Originally committed as revision 22987 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-28 20:00:23 +00:00
Diego Biurrun ba87f0801d Remove explicit filename from Doxygen @file commands.
Passing an explicit filename to this command is only necessary if the
documentation in the @file block refers to a file different from the
one the block resides in.

Originally committed as revision 22921 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-20 14:45:34 +00:00
Michael Niedermayer fe8344a276 Add AVFMT_FLAG_NOFILLIN and AVFMT_FLAG_NOPARSE.
Originally committed as revision 22745 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-31 12:55:16 +00:00
Michael Niedermayer c55806e3a2 Flag to ignore dts on frames that contain pts.
This works around common issues with mpeg-ps files with broken timestamps.
Also allows playing the broken sample from issue1024.

Originally committed as revision 21562 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-30 22:55:12 +00:00
Carl Eugen Hoyos 66ddc150f0 Increase default value for max_analyze_duration, fixes issue 1506, a regression.
Originally committed as revision 20483 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-09 01:10:55 +00:00
Baptiste Coudurier 57011a13d6 use AVFormatContext->probesize in av_find_stream_info and raise default to 5M
Originally committed as revision 19274 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-25 19:10:27 +00:00
Aurelien Jacobs 827f7e285b deprecate old metadata API
Originally committed as revision 17690 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-01 16:35:25 +00:00
Stefano Sabatini 88a2896520 Deprecate av_malloc_format_context() in favor of
avformat_alloc_context(), and drop the old symbol at the next major
bump.

Originally committed as revision 17047 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-08 08:16:40 +00:00
Diego Biurrun bad5537e2c Use full internal pathname in doxygen @file directives.
Otherwise doxygen complains about ambiguous filenames when files exist
under the same name in different subdirectories.

Originally committed as revision 16912 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-01 02:00:19 +00:00
Stefano Sabatini 708ec8fb31 Move the AVFormatContext options definition to a dedicated file,
reduce the utils.c clutter.

Originally committed as revision 16516 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-10 09:56:07 +00:00