1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-12 19:18:44 +02:00
Commit Graph

43 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
Vittorio Giovara
059a934806 lavc: Consistently prefix input buffer defines
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-27 15:24:59 +01:00
Diego Biurrun
daf8cf358a avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
Diego Biurrun
d92024f18f lavf: more correct printf format specifiers 2014-03-11 13:13:41 +01:00
Anton Khirnov
9ec8971060 bink demuxer: set framerate. 2013-02-01 12:42:17 +01:00
Anton Khirnov
1730ca2eca bink demuxer: check malloc return value 2013-02-01 12:41:38 +01:00
Justin Ruggles
2fe804f316 bink: set channel layout 2012-11-12 10:33:18 -05:00
Anton Khirnov
36ef5369ee Replace all CODEC_ID_* with AV_CODEC_ID_* 2012-08-07 16:00:24 +02:00
Joakim Plate
3371e89640 bink: Check return value of avio_seek and avoid modifying state if it fails
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-10 15:27:49 -05:00
Anton Khirnov
6e9651d106 lavf: remove AVFormatParameters from AVFormatContext.read_header signature 2012-01-27 10:51:57 +01: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
Anton Khirnov
84ad31ff18 lavf: replace av_new_stream->avformat_new_stream part II.
Manual replacements are done in this commit.

In many cases, the id is some constant made up number (e.g. 0 for video
and 1 for audio), which is then not used in the demuxer for anything.
Those ids are removed.
2011-10-19 17:02:11 +02:00
Anton Khirnov
3b3bbdd3e6 lavf,lavd: replace av_new_stream->avformat_new_stream part I.
Trivial replacements with sed are done in this commit:
sed 's/av_new_stream(\([^)]*\), 0)/avformat_new_stream(\1, NULL)/'
2011-10-19 17:02:11 +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
Kostya
df64da3b1e bink: pass Bink version to audio decoder through extradata instead of codec_tag.
This is needed because not all players (e.g. MPlayer) are able to distinguish
two different Bink audio decoders when codec_tag is set.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-07-06 14:52:02 +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
45a8a02a41 lavf: replace avio_seek(SEEK_CUR) with avio_skip where it makes sense
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-03-16 22:24:51 -04:00
Anton Khirnov
e356fc57a2 lavf: replace all uses of url_fskip with avio_seek
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-03-01 12:22:16 -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
Peter Ross
588a3ffd96 bink: decode audio track identifiers into AVStream.id
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-25 15:24:35 -05:00
Peter Ross
f0ca29eb5f bink: set audio stream codec_tag such that binkaudio decoder can identify bitstream version
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-25 15:24:35 -05:00
Anton Khirnov
b7effd4e83 avio: avio_ prefixes for get_* functions
In the name of consistency:
get_byte           -> avio_r8
get_<type>         -> avio_r<type>
get_buffer         -> avio_read

get_partial_buffer will be made private later

get_strz is left out becase I want to change it later to return
something useful.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-21 11:23:22 -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
Diego Biurrun
ba87f0801d Remove explicit filename from Doxygen @file commands.
Passing an explicit filename to this command is only necessary if the
documentation in the @file block refers to a file different from the
one the block resides in.

Originally committed as revision 22921 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-20 14:45:34 +00:00
Jean-Daniel Dupas
cc947f04cc Replace all occurences of PKT_FLAG_KEY with AV_PKT_FLAG_KEY.
Patch by Jean-Daniel Dupas, devlists shadowlab org

Originally committed as revision 22744 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-31 12:29:58 +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
Peter Ross
70b462cc29 Prevent memory leak introduced in r22389 in Bink demuxer: pass partial packets to decoder.
Originally committed as revision 22468 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-11 12:29:02 +00:00
Peter Ross
cc4e8b1267 Ensure Bink demuxer returns AVERROR code when av_get_packet() fails
Originally committed as revision 22389 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-09 12:32:08 +00:00
Peter Ross
6c88dc3dbf handle errors reported by av_get_packet() in Bink demuxer
Originally committed as revision 22208 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-04 13:27:53 +00:00
Peter Ross
4ffa6e78c2 Guard against invalid memory read
Originally committed as revision 22207 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-04 13:26:01 +00:00
Peter Ross
a27998010c Support demuxing of streamed Bink files
Originally committed as revision 22166 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-03 09:44:30 +00:00
Peter Ross
dd80be5bfc low-complexity Bink file seeking
Originally committed as revision 22022 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-24 11:43:33 +00:00
Peter Ross
7e276c85b1 set AVINDEX_KEYFRAME correctly for bink
Originally committed as revision 22021 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-24 11:30:38 +00:00
Peter Ross
02cd6f5426 Set video stream duration for Bink demuxer
Originally committed as revision 21996 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-23 11:15:18 +00:00
Peter Ross
b62c65f23e Bink audio pts starts at 0, not reported_size
Originally committed as revision 21994 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-23 11:01:51 +00:00
Kostya Shishkov
a45972a806 Make Bink demuxer pass video flags to decoder
Originally committed as revision 21978 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-23 06:36:26 +00:00
Kostya Shishkov
8cdfa4747b Make Bink demuxer skip all zero audio tracks, not only the first one
Originally committed as revision 21908 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-19 22:10:04 +00:00
Kostya Shishkov
971c55f186 Bink video codec id is there, demuxer can use it
Originally committed as revision 21574 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-31 16:21:49 +00:00
Peter Ross
2e375df5b2 Bink demuxer
Originally committed as revision 21569 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-31 12:35:09 +00:00