- 23 Feb, 2016 10 commits
-
-
Anton Khirnov authored
Open decoders first, next encoders. This makes sure that that subtitle_header is always set properly, without relying on avformat_find_stream_info() setting it.
-
Anton Khirnov authored
Currently, AVStream contains an embedded AVCodecContext instance, which is used by demuxers to export stream parameters to the caller and by muxers to receive stream parameters from the caller. It is also used internally as the codec context that is passed to parsers. In addition, it is also widely used by the callers as the decoding (when demuxer) or encoding (when muxing) context, though this has been officially discouraged since Libav 11. There are multiple important problems with this approach: - the fields in AVCodecContext are in general one of * stream parameters * codec options * codec state However, it's not clear which ones are which. It is consequently unclear which fields are a demuxer allowed to set or a muxer allowed to read. This leads to erratic behaviour depending on whether decoding or encoding is being performed or not (and whether it uses the AVStream embedded codec context). - various synchronization issues arising from the fact that the same context is used by several different APIs (muxers/demuxers, parsers, bitstream filters and encoders/decoders) simultaneously, with there being no clear rules for who can modify what and the different processes being typically delayed with respect to each other. - avformat_find_stream_info() making it necessary to support opening and closing a single codec context multiple times, thus complicating the semantics of freeing various allocated objects in the codec context. Those problems are resolved by replacing the AVStream embedded codec context with a newly added AVCodecParameters instance, which stores only the stream parameters exported by the demuxers or read by the muxers.
-
Anton Khirnov authored
-
Anton Khirnov authored
This API is intended to allow passing around codec parameters without using full AVCodecContext (which also contains codec options and encoder/decoder state).
-
Diego Biurrun authored
Some optimized functions reference optimized symbols, so the functions must be explicitly disabled when those symbols are unavailable.
-
Diego Biurrun authored
Some files may be missing for valid reasons, e.g. on compile failure.
-
Diego Biurrun authored
-
Marton Balint authored
Reviewed-by: Michael Niedermayer <michaelni@gmx.at> Signed-off-by: Marton Balint <cus@passwd.hu>
-
Michael Niedermayer authored
Sample-Id: asan_heap-uaf_3660f67_757_cov_1257014655_Hi422FR1_SONY_A.jsv Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Michael Niedermayer <michaelni@gmx.at> Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
-
Vittorio Giovara authored
First check the context, then check internal option. Drop the ! typo. Introduced in 60f0fde3.
-
- 22 Feb, 2016 14 commits
-
-
Anton Khirnov authored
Should make the default behaviour safer for careless callers that open random untrusted files. Bug-Id: CVE-2016-1897 Bug-Id: CVE-2016-1898
-
Anton Khirnov authored
This way, the decisions about which protocols are available for use in any given situations can be delegated to the caller.
-
Anton Khirnov authored
It will be useful in the following commits.
-
Anton Khirnov authored
Disallow other code to touch it directly, now it's only accessible through a blacklisting/whitelisting function.
-
Anton Khirnov authored
It needs to access the list of protocols directly, so it more properly belongs there.
-
Anton Khirnov authored
It's a more appropriate place for it.
-
Anton Khirnov authored
Instead of a linked list constructed at av_register_all(), store them in a constant array of pointers. Since no registration is necessary now, this removes some global state from lavf. This will also allow the urlprotocol layer caller to limit the available protocols in a simple and flexible way in the following commits.
-
Anton Khirnov authored
-
Anton Khirnov authored
They are only written to, never read.
-
Anton Khirnov authored
Now all IO should go through the IO callbacks and be interceptable by the caller.
-
Anton Khirnov authored
There is no real reason to treat them differently.
-
Anton Khirnov authored
avio_close() can only be called on AVIOContexts created by avio_open(2).
-
Anton Khirnov authored
It will in general not be available. Use block_align if known or fall back to av_get_audio_frame_duration().
-
Luca Barbato authored
Reported-By: Maxim Koitsov <maksbotan@gentoo.org>
-
- 20 Feb, 2016 1 commit
-
-
Diego Biurrun authored
-
- 19 Feb, 2016 10 commits
-
-
Diego Biurrun authored
-
Diego Biurrun authored
-
Diego Biurrun authored
-
Diego Biurrun authored
-
Diego Biurrun authored
-
Diego Biurrun authored
-
Diego Biurrun authored
-
Luca Barbato authored
Some muxer might or might not fit incomplete mp3 frames in their packets. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
-
Luca Barbato authored
Some muxer might or might not fit incomplete mp3 frames in their packets. Bug-Id: 899 CC: libav-stable@libav.org Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
-
Diego Biurrun authored
This reverts commits 2edc7187, a2bb771a, 21c750f2, 8e7bea6d.
-
- 18 Feb, 2016 5 commits
-
-
Diego Biurrun authored
-
Diego Biurrun authored
-
Diego Biurrun authored
-
Diego Biurrun authored
The WTV demuxer depends on large parts of the MPEG-TS demuxer internals anyway and fails to build without it.
-
Diego Biurrun authored
-