Commit Graph

93 Commits

Author SHA1 Message Date
Anton Khirnov 83548fe894 lavf: fix usage of AVIOContext.seekable
It is supposed to be a flag. The only currently defined value is
AVIO_SEEKABLE_NORMAL, but other ones may be added in the future.
However all the current lavf code treats this field as a bool (mainly
for historical reasons).
Change all those cases to properly check for AVIO_SEEKABLE_NORMAL.
2016-09-30 16:54:33 +02:00
Vittorio Giovara 41ed7ab45f cosmetics: Fix spelling mistakes
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2016-05-04 18:16:21 +02:00
Anton Khirnov 9200514ad8 lavf: replace AVStream.codec with AVStream.codecpar
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.
2016-02-23 17:01:58 +01:00
Clément Bœsch 7308439158 lavf: Don't explicitly flush after each written packet in muxers
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>
2013-09-16 22:17:33 +03:00
Alexandra Khirnova f369b9356c avformat: Use av_reallocp_array() where suitable
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-09-10 12:38:32 +02:00
Justin Ruggles bfe5454cd2 lavf: move ff_codec_get_tag() and ff_codec_get_id() definitions to internal.h 2012-11-28 11:18:49 -05:00
Anton Khirnov 716d413c13 Replace PIX_FMT_* -> AV_PIX_FMT_*, PixelFormat -> AVPixelFormat 2012-10-08 07:13:26 +02:00
Anton Khirnov 36ef5369ee Replace all CODEC_ID_* with AV_CODEC_ID_* 2012-08-07 16:00:24 +02:00
Diego Biurrun 0177b7d23a Improve descriptiveness of a number of codec and container long names 2012-07-30 20:46:55 +02:00
Diego Biurrun 70be4dddc8 gxfenc: remove disabled half-implemented MJPEG tag 2012-05-14 15:38:42 +02:00
Anton Khirnov a6733202cc lavf: make av_interleave_packet_per_dts() private.
There is no reason for it to be public, it's only meant to be used
internally.
2012-03-20 20:12:16 +01:00
Anton Khirnov df0bb26aca lavf: remove disabled FF_API_TIMESTAMP cruft 2012-01-27 10:52:42 +01:00
Mans Rullgard 3383a53e7d lavu: replace int/float punning functions
The existing functions defined in intfloat_readwrite.[ch] are
both slow and incorrect (infinities are not handled).

This introduces a new header with fast, inline conversion
functions using direct union punning assuming an IEEE-754
system, an assumption already made throughout the code.

The one use of Intel/Motorola extended 80-bit format is
replaced by simpler code sufficient under the present
constraints (positive normal values).

The old functions are marked deprecated and retained for
compatibility.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-11 18:47:19 +00:00
Anton Khirnov c3f9ebf743 lavf: make av_set_pts_info private.
It's supposed to be called only from (de)muxers.
2011-11-30 20:34:45 +01:00
Diego Biurrun 6eaaf8da88 gxfenc: place variable declarations before statements
libavformat/gxfenc.c:409: warning: ISO C90 forbids mixed declarations and code
2011-07-17 23:59:20 +02:00
Anton Khirnov dfc2c4d900 lavf: use designated initialisers for all (de)muxers.
It's more readable and less prone to breakage.
2011-07-17 06:58:37 +02:00
Anton Khirnov 001d668d40 lavf: factor out conversion of ISO8601 string to unix time 2011-07-13 12:14:25 +02:00
Anton Khirnov 5f847bf61d lavf: deprecate AVFormatContext.timestamp
It's replaced by 'creation_time' metadata tag.
2011-07-12 15:30:10 +02:00
Mans Rullgard 0ebcdf5cda Do not include mathematics.h in avutil.h
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-07-03 21:42:06 +01:00
Mans Rullgard ee8aecd23a Do not include intfloat_readwrite.h in avutil.h
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-07-03 21:42:06 +01:00
Stefano Sabatini 975a1447f7 Replace deprecated FF_*_TYPE symbols with AV_PICTURE_TYPE_*.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2011-05-02 12:18:44 +02:00
Anton Khirnov 8978fedaee avio: introduce an AVIOContext.seekable field
Use it instead of url_is_streamed and AVIOContext.is_streamed.
2011-04-03 22:46:40 +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
Anton Khirnov b7f2fdde74 avio: rename put_flush_packet -> avio_flush
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-03-16 22:59:39 -04:00
Anton Khirnov 76aa876e69 avio: avio_ prefix for url_fsize
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-03-07 11:03:39 -05:00
Anton Khirnov a2704c9712 avio: add avio_tell macro as a replacement for url_ftell
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-03-04 11:26:57 -05:00
Anton Khirnov 6b4aa5dac8 avio: avio_ prefix for url_fseek
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-03-01 12:12:33 -05:00
Anton Khirnov bbc413f943 lavf: replace remaining uses of put_tag with avio_write
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-25 14:38:56 -05:00
Anton Khirnov 77eb5504d3 avio: avio: avio_ prefixes for put_* functions
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>
2011-02-21 14:25:15 -05:00
Anton Khirnov ae628ec1fd avio: rename ByteIOContext to AVIOContext.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-20 08:37:15 -05:00
Diego Elio Pettenò c6610a216e Prefix all _demuxer, _muxer, _protocol from libavformat and libavdevice.
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.
2011-01-26 22:10:09 +00:00
Baptiste Coudurier 8a451afe7d In gxf muxer, round up number of lines mod 16 in mpeg umf data, based patch by Reuben Martin, reuben dot m at gmail dot com
Originally committed as revision 25401 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-07 19:41:04 +00:00
Baptiste Coudurier c6d04addf6 In gxf muxer, fix number of flt entries based on patch by Reuben Martin, reuben dot m at gmail dot com
Originally committed as revision 25399 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-07 19:35:55 +00:00
Reuben Martin 82ae56b3fa In gxf muxer, write umf media for mpeg1video, patch by Reuben Martin, reuben dot m at gmail dot com
Originally committed as revision 25396 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-07 19:17:06 +00:00
Reuben Martin ad4c3c6840 In gxf muxer, fix flt entry offset, patch by Reuben Martin, reuben dot m at gmail dot com
Originally committed as revision 25395 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-07 19:15:35 +00:00
Baptiste Coudurier eeeae2bf05 gxf muxer only accepts pal or ntsc resolutions currently, so fail if resolution is something else
Originally committed as revision 25014 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-09-01 00:04:47 +00:00
Thierry Foucu 591db22dff gxfenc: Fix ES name in the UMF media description, by using strlen instead of sizeof
Patch by Thierry Foucu, tfoucu at gmail

Originally committed as revision 24379 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-21 07:46:02 +00:00
Stefano Sabatini 72415b2adb Define AVMediaType enum, and use it instead of enum CodecType, which
is deprecated and will be dropped at the next major bump.

Originally committed as revision 22735 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-30 23:30:55 +00:00
Carl Eugen Hoyos bc2d2a07d5 Make AVCodecTag.id enum CodecID and use CODEC_ID_NONE instead of 0.
Originally committed as revision 20250 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-16 14:46:06 +00:00
Daniel Verkamp 1a40491ef2 Add ff_ prefixes to exported symbols in libavformat/riff.h.
patch by Daniel Verkamp, aniel drv nu

Originally committed as revision 19254 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-22 23:09:34 +00:00
Baptiste Coudurier c43accabd3 remove useless include
Originally committed as revision 18906 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-05-23 03:05:56 +00:00
Baptiste Coudurier af79f1ae78 reindent
Originally committed as revision 17898 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-09 04:17:12 +00:00
Baptiste Coudurier 6b4fab72df change path pattern to be similar to existing files, and remove useless buffer
Originally committed as revision 17896 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-09 03:34:15 +00:00
Baptiste Coudurier 4070629dfa merge struct declaration and definition
Originally committed as revision 17895 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-09 02:49:47 +00:00
Baptiste Coudurier 0c8f772791 write map packet every 100 packets according to specs
Originally committed as revision 17894 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-09 02:47:32 +00:00
Baptiste Coudurier aaa43de31a write flt packet, might need some tweaking but it works
Originally committed as revision 17893 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-09 01:35:00 +00:00
Baptiste Coudurier a96b1a903a correctly interleave audio and video according to specs
Originally committed as revision 17892 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-09 01:10:28 +00:00
Baptiste Coudurier 46a7e3ec14 write timecode track in gxf
Originally committed as revision 17890 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-09 00:14:55 +00:00
Baptiste Coudurier 33605366ee compute media info in write_header
Originally committed as revision 17889 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-08 22:23:44 +00:00
Baptiste Coudurier cd34fd9c8c factorize write packet
Originally committed as revision 17888 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-08 22:14:26 +00:00