- 04 Mar, 2016 1 commit
-
-
Anton Khirnov authored
This bitrate might not be known otherwise. Bug-Id: 926
-
- 23 Feb, 2016 1 commit
-
-
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.
-
- 22 Feb, 2016 1 commit
-
-
Anton Khirnov authored
There is no real reason to treat them differently.
-
- 24 Jan, 2016 1 commit
-
-
Anton Khirnov authored
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.
-
- 18 Nov, 2015 1 commit
-
-
John Stebbins authored
Signed-off-by: Anton Khirnov <anton@khirnov.net>
-
- 09 Nov, 2015 1 commit
-
-
Anton Khirnov authored
All encoders set pts and dts properly now (and have been doing that for a while), so there is no good reason to do any timestamp guessing in the muxer. The newly added AVStreamInternal will be later used for storing all the private fields currently living in AVStream.
-
- 08 Nov, 2015 2 commits
-
-
Anton Khirnov authored
It will be needed in other functions.
-
Anton Khirnov authored
The reasoning for setting it to zero only applies to demuxing.
-
- 26 Oct, 2015 3 commits
-
-
Luca Barbato authored
Make it return an error and check its return value when it is used. Simplify the usage by calling `av_packet_ref` internally when needed.
-
Luca Barbato authored
`av_packet_unref` matches the AVFrame ref-counted API and can be used as a drop in replacement. Deprecate `av_free_packet`.
-
Luca Barbato authored
And drop the av_dup_packet from the input_thread.
-
- 29 Sep, 2015 1 commit
-
-
wm4 authored
Note that convergence_duration had another meaning, one which was in practice never used. The only real use for it was a 64 bit replacement for the duration field. It's better just to make duration 64 bits, and to get rid of it. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
-
- 28 Aug, 2015 1 commit
-
-
Vittorio Giovara authored
Deprecated in 10/2012.
-
- 27 Jul, 2015 2 commits
-
-
Vittorio Giovara authored
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
-
Vittorio Giovara authored
Express bitfields more simply. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
-
- 20 Apr, 2015 1 commit
-
-
Vittorio Giovara authored
warning: assigning to 'char *' from 'const char *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
-
- 19 Apr, 2015 1 commit
-
-
Vittorio Giovara authored
This applies to every library where performance is not critical.
-
- 07 Apr, 2015 1 commit
-
-
Luca Barbato authored
And use it in libavformat. Based on a similar patch by Stefano Sabatini <stefasab@gmail.com>.
-
- 10 Feb, 2015 1 commit
-
-
wm4 authored
This is not an API change; the fields were explicitly declared private before. Signed-off-by: Anton Khirnov <anton@khirnov.net>
-
- 27 Jan, 2015 1 commit
-
-
Anton Khirnov authored
-
- 04 Jan, 2015 1 commit
-
-
Martin Storsjö authored
CC: libav-stable@libav.org Signed-off-by: Martin Storsjö <martin@martin.st>
-
- 17 Oct, 2014 1 commit
-
-
Luca Barbato authored
Work as the other free()-like functions. Bug-Id: CID 1087081 CC: libav-stable@libav.org
-
- 15 Oct, 2014 1 commit
-
-
Anton Khirnov authored
-
- 11 Oct, 2014 1 commit
-
-
Michael Niedermayer authored
In these cases, only drop dts. Because if we drop both we have no timestamps at all for some files. This improves playback of HLS streams from GoPro cameras. Signed-off-by: Martin Storsjö <martin@martin.st>
-
- 29 Sep, 2014 1 commit
-
-
Justin Ruggles authored
When AVFMT_FLAG_NOBUFFER is set, the packets are not added to the AVFormatContext packet list, so they need to be freed when they are no longer needed. Signed-off-by: Anton Khirnov <anton@khirnov.net>
-
- 25 Aug, 2014 1 commit
-
-
Anton Khirnov authored
It allows to configure how long will avformat_find_stream_info() wait to get the first timestamp.
-
- 13 Aug, 2014 2 commits
-
-
Anton Khirnov authored
It is basically a wrapper around av_get_audio_frame_duration(), with a fallback to AVCodecContext.frame_size. However, that field is set only when the stream codec context is actually used for encoding or decoding, which is discouraged. For muxing, it is generally the responsibility of the caller to set the packet duration. For demuxing, if the duration is not stored at the container level, it should be set by the parser. Therefore, removing the frame_size fallback should not break any important case.
-
Andrew Stone authored
If any option named "metadata" is set inside the context, it is pulled up to the context and then the option is cleared. Signed-off-by: Anton Khirnov <anton@khirnov.net>
-
- 29 Jul, 2014 1 commit
-
-
Luca Barbato authored
-
- 26 Jul, 2014 1 commit
-
-
Diego Biurrun authored
-
- 08 Jul, 2014 1 commit
-
-
Roman Savchenko authored
Signed-off-by: Anton Khirnov <anton@khirnov.net>
-
- 22 Jun, 2014 1 commit
-
-
Diego Biurrun authored
-
- 18 Jun, 2014 1 commit
-
-
Anton Khirnov authored
Previously, AVStream.codec.time_base was used for that purpose, which was quite confusing for the callers. This change also opens the path for removing AVStream.codec. The change in the lavf-mkv test is due to the native timebase (1/1000) being used instead of the default one (1/90000), so the packets are now sent to the crc muxer in the same order in which they are demuxed (previously some of them got reordered because of inexact timestamp conversion).
-
- 14 Jun, 2014 1 commit
-
-
Vittorio Giovara authored
-
- 19 May, 2014 1 commit
-
-
Janne Grunau authored
-
- 03 May, 2014 1 commit
-
-
Luca Barbato authored
-
- 28 Apr, 2014 1 commit
-
-
Anton Khirnov authored
If framerate estimation is enabled, it makes sense to always apply it, instead of limiting it to a few specific cases.
-
- 22 Apr, 2014 1 commit
-
-
Anton Khirnov authored
The parser has no way of knowing video duration, and therefore no video parsers set it.
-
- 24 Mar, 2014 1 commit
-
-
Anton Khirnov authored
-
- 11 Mar, 2014 1 commit
-
-
Luca Barbato authored
-