| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
It will in general not be available. Use block_align if known or fall
back to av_get_audio_frame_duration().
|
|
|
|
|
|
|
|
|
|
| |
Some codecs use the codec_tag to signal specific information and
picking the first one would lead to a broken file.
Bug-Id: 883
CC: libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
|
|
|
|
| |
Signed-off-by: Martin Storsjö <martin@martin.st>
|
|
|
|
|
| |
It is unreliable, especially when the stream codec context is not the
encoding context. Use the codec descriptor properties instead.
|
|
|
|
|
| |
CC: libav-stable@libav.org
Bug-Id: CID 703721
|
|
|
|
|
|
| |
It will be useful in the following commits.
Also, rename the AVCodecContext pointer name from 'stream' to 'codec'.
|
|
|
|
|
|
|
| |
Add the low overhead pipe mode and the extended broadcast mode.
Export the options as 'syncponts' since it impacts only that.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
|
| |
|
|
|
|
|
| |
CC: libav-stable@libav.org
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
|
| |
|
|
|
|
| |
Ease switching version in the future and make evident why that value.
|
| |
|
|
|
|
| |
Additionally use the correct error number.
|
| |
|
|
|
|
|
|
| |
Raw audio does not provide valid audio tags while rawvideo does.
The fate refs have to be updated because it undoes the previous tag
change.
|
|
|
|
|
| |
Use native tags instead of avi ones, simplifies a lot raw video codecs
handling.
|
|
|
|
| |
statements
|
| |
|
|
|
|
|
|
|
| |
This is consistent with stdio and is what we want to do in all cases.
Fixes a bug in the voc muxer which didn't flush in write_trailer()
previously. This is the cause of the change in the test results.
|
| |
|
| |
|
|
|
|
|
| |
This removes the use of macro nesting in these code constructs, which
makes it easier to parse in pre-processors.
|
|
|
|
|
|
|
| |
Also add missing trailing commas, break long codec_tag lines and
add spaces in codec_tag declarations.
Signed-off-by: Martin Storsjö <martin@martin.st>
|
|
|
|
| |
It's supposed to be called only from (de)muxers.
|
|
|
|
|
| |
Specifically, ff_mpa_freq_tab, ff_mpa_bitrate_tab, ff_mpa_decode_header,
ff_mpegaudio_decode_header.
|
|
|
|
|
| |
Rename write_{header,packet,trailer} to nut_write_{header,packet,trailer}
in order to make easier debugging them.
|
|
|
|
| |
It's more readable and less prone to breakage.
|
|
|
|
| |
Signed-off-by: Mans Rullgard <mans@mansr.com>
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Signed-off-by: Mans Rullgard <mans@mansr.com>
|
|
|
|
|
|
| |
This fixes a minor memory leak introduced in 073f8b1.
Signed-off-by: Mans Rullgard <mans@mansr.com>
|
|
|
|
| |
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
|
|
|
|
| |
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
|
|
|
|
| |
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
In the name of consistency:
put_byte -> avio_w8
put_<type> -> avio_w<type>
put_buffer -> avio_write
put_nbyte will be made private
put_tag will be merged with avio_put_str
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
|
|
|
|
| |
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
|
|
|
|
|
| |
This also lists the objects from those two libraries as internal (by adding
the ff_ prefix) so that they can then be hidden via linker scripts.
|
|
|
|
|
|
| |
patch by Anton Khirnov anton _at_ khirnov _dot_ net
Originally committed as revision 25493 to svn://svn.ffmpeg.org/ffmpeg/trunk
|
|
|
|
| |
Originally committed as revision 25095 to svn://svn.ffmpeg.org/ffmpeg/trunk
|
|
|
|
|
|
| |
patch by Micheal Chinen < mchinen gmail >
Originally committed as revision 24140 to svn://svn.ffmpeg.org/ffmpeg/trunk
|
|
|
|
|
|
| |
patch by Michael Chinen < mchinen gmail >
Originally committed as revision 24139 to svn://svn.ffmpeg.org/ffmpeg/trunk
|
|
|
|
| |
Originally committed as revision 23904 to svn://svn.ffmpeg.org/ffmpeg/trunk
|