| 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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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).
|
|
|
|
|
|
| |
It will be useful in the following commits.
Also, rename the AVCodecContext pointer name from 'stream' to 'codec'.
|
|
|
|
|
|
| |
Do not call an AVCodecContext 'stream', that is highly confusing.
Also, add a local variable for the current AVStream in the loop over all
streams.
|
|
|
|
| |
Signed-off-by: Diego Biurrun <diego@biurrun.de>
|
|
|
|
|
| |
AVI does not really support vfr properly, only by padding with null
packets.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
failures
When av_reallocp fails, the associated variables that keep track of
the number of elements in the array (and in some cases, the
separate number of allocated elements) need to be reset.
Not all of these might technically be needed, but it's better to
reset them if in doubt, to make sure variables don't end up
conflicting.
Signed-off-by: Martin Storsjö <martin@martin.st>
|
|
|
|
| |
Signed-off-by: Diego Biurrun <diego@biurrun.de>
|
|
|
|
|
|
|
|
| |
Since 596e5d4783, this is not necessary anymore. It also allows to
actually disable the flushing, improving write performance (but
possibly giving worse latency in real-time streaming).
Signed-off-by: Martin Storsjö <martin@martin.st>
|
|
|
|
|
|
| |
It will be useful in the wav muxer.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
|
|
|
|
| |
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.
|
|
|
|
| |
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
|
|
|
|
| |
libmp3lame if available, ac3 otherwise.
|
|
|
|
| |
It's more readable and less prone to breakage.
|
| |
|
|
|
|
| |
Use it instead of url_is_streamed and AVIOContext.is_streamed.
|
|
|
|
| |
Signed-off-by: Mans Rullgard <mans@mansr.com>
|
|
|
|
| |
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
|
|
|
|
| |
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
|
|
|
|
| |
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
|
|
|
|
| |
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
|
|
|
|
| |
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
|
|
|
|
| |
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
|
|
|
|
| |
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
|
|
|
|
|
|
| |
Fixes issue 2563.
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.
|
|
|
|
| |
Signed-off-by: Mans Rullgard <mans@mansr.com>
|
|
|
|
|
|
| |
patch by Anton Khirnov anton _at_ khirnov _dot_ net
Originally committed as revision 25505 to svn://svn.ffmpeg.org/ffmpeg/trunk
|
|
|
|
|
|
| |
patch by Anton Khirnov anton _at_ khirnov _dot_ net
Originally committed as revision 25493 to svn://svn.ffmpeg.org/ffmpeg/trunk
|
|
|
|
|
|
| |
other than XSUB.
Originally committed as revision 23766 to svn://svn.ffmpeg.org/ffmpeg/trunk
|
|
|
|
|
|
| |
Patch by Jean-Daniel Dupas, devlists shadowlab org
Originally committed as revision 22744 to svn://svn.ffmpeg.org/ffmpeg/trunk
|
|
|
|
|
|
| |
is deprecated and will be dropped at the next major bump.
Originally committed as revision 22735 to svn://svn.ffmpeg.org/ffmpeg/trunk
|
|
|
|
|
|
|
|
|
| |
than inside the muxers. Remove special handling of "encoder" tags from
AVI and MP3 muxers.
Patch by Anton Khirnov <wyskas gmail com>.
Originally committed as revision 21850 to svn://svn.ffmpeg.org/ffmpeg/trunk
|
|
|
|
|
|
| |
Patch by Anton Khirnov (gmail{wyskas}).
Originally committed as revision 21653 to svn://svn.ffmpeg.org/ffmpeg/trunk
|
|
|
|
|
|
| |
untested as ffmpeg.c has no means to set AVStream metadata (patchwelcome)
Originally committed as revision 21644 to svn://svn.ffmpeg.org/ffmpeg/trunk
|
|
|
|
| |
Originally committed as revision 21500 to svn://svn.ffmpeg.org/ffmpeg/trunk
|
|
|
|
|
|
| |
This removes all but one MAX_STREAM from avienc.c.
Originally committed as revision 21498 to svn://svn.ffmpeg.org/ffmpeg/trunk
|
|
|
|
|
|
| |
patch by Daniel Verkamp, aniel drv nu
Originally committed as revision 19254 to svn://svn.ffmpeg.org/ffmpeg/trunk
|
|
|
|
| |
Originally committed as revision 19223 to svn://svn.ffmpeg.org/ffmpeg/trunk
|
|
|
|
| |
Originally committed as revision 18349 to svn://svn.ffmpeg.org/ffmpeg/trunk
|
|
|
|
| |
Originally committed as revision 17554 to svn://svn.ffmpeg.org/ffmpeg/trunk
|