Commit Graph

57 Commits

Author SHA1 Message Date
Diego Biurrun 5afb94c817 Mark read-only tables as static 2016-05-05 10:48:34 +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
Luca Barbato ce70f28a17 avpacket: Replace av_free_packet with av_packet_unref
`av_packet_unref` matches the AVFrame ref-counted API and can be used as
a drop in replacement.

Deprecate `av_free_packet`.
2015-10-26 18:00:55 +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
Martin Storsjö 4f373a5111 vfwcap: Unbreak building after c201069fa
These headers can't be included in any arbitrary order.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-04-11 00:15:47 +03:00
Diego Biurrun c201069fac avdevice: Add missing header for NULL_IF_CONFIG_SMALL
Also reshuffle headers into canonical order where appropriate.
2015-04-09 16:40:12 +02:00
Diego Biurrun ab56fabe62 vfwcap: Add fallback define for HWND_MESSAGE
Some obsolete versions of the MinGW32 runtime (<4.0.0) lack the definition.
2014-08-25 16:41:22 -07:00
Diego Biurrun 8bc52dbd9d vfwcap: Drop fallback VfW defines
The defines were added long ago when MinGW still lacked them.
2014-08-19 06:22:07 -07:00
Diego Biurrun a6a27fede9 vfwcap: Replace deprecated av_destruct_packet() by av_free_packet() 2014-08-15 09:53:02 +02: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
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 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 145f741e11 AVOptions: rename FF_OPT_TYPE_* => AV_OPT_TYPE_* 2011-10-12 16:51:16 +02:00
Diego Biurrun 30b4ee7901 Use explicit struct initializers for AVOutputFormat/AVInputFormat declarations. 2011-09-24 12:11:17 +02:00
Anton Khirnov c14fe6bc99 lavf,lavd: remove all usage of AVFormatParameters from demuxers.
AVFormatParameters are converted into corresponding private options in
av_open_input_file/stream() compat wrappers, so accessing them from
demuxers is redundant.
2011-08-15 19:59:48 +02:00
Stefano Sabatini a4bda40544 vfwcap: prefer "framerate_q" over "fps" in vfw_read_header()
The variable is used for containing the parsed value of framerate,
using a lexically consistent name eases readability/understanding.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-06-23 08:49:49 +02:00
Anton Khirnov 367732832f lavf,lavc: free avoptions in a generic way.
It's simpler and less error-prone.

Fixes some memleaks along the way.
2011-06-05 15:01:36 +02:00
Diego Biurrun f190f676bc Replace custom DEBUG preprocessor trickery by the standard one. 2011-06-03 00:44:06 +02:00
Anton Khirnov 4078ed2631 vfwcap: add a framerate private option. 2011-06-02 21:52:15 +02:00
Anton Khirnov 3e15ea2150 vfwcap: add video_size private option. 2011-05-27 06:52:51 +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
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
Ramiro Polla 1973e1018e vfwcap: add option to print list of supported drivers
Originally committed as revision 25552 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-23 02:11:30 +00:00
Ramiro Polla faa2989e0f vfwcap: flip RGB rawvideo.
Originally committed as revision 22989 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-29 13:05:27 +00:00
Stefano Sabatini 2874c81cc8 Replace all remaining occurrences of AVERROR_NOMEM with
AVERROR(ENOMEM).

AVERROR_NOMEM is deprecated and will be dropped at the next libavutil
major bump.

Originally committed as revision 22791 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-03 14:15:00 +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
Ramiro Polla ad8eede7b1 vfwcap: Free remaining packets on vfw_read_close().
Originally committed as revision 22575 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-17 04:36:06 +00:00
Ramiro Polla ce03ed4df1 Do not store a copy of AVFormatContext *s in vfw_ctx.
Save *s directly in SetWindowLongPtr instead.

Originally committed as revision 22574 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-17 04:24:43 +00:00
Stefano Sabatini 5ae092ee34 Replace all the occurrences of AVERROR_EIO with AVERROR(EIO), and mark
AVERROR_EIO for deletion at the next major bump.

Originally committed as revision 22513 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-13 19:19:44 +00:00
Ramiro Polla e24080f00e vfwcap: Add support for UYVY pixel format.
Originally committed as revision 22424 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-10 05:25:06 +00:00
Nash Tsai d7a4961e53 vfwcap: support MJPG compressed streams.
Patch by Nash Tsai <nash dot tsai at gmail dot com>

Originally committed as revision 22004 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-23 16:49:16 +00:00
kemuri 420755dd28 vfwcap: Include windows.h before vfw.h since the latter requires defines
from the former.
Patch by kemuri <kemuri9 at gmail dot com>

Originally committed as revision 21411 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-23 20:58:29 +00:00
Ramiro Polla 315fa33f29 Indent.
Originally committed as revision 19757 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-09-04 16:32:06 +00:00
Ramiro Polla a9decf0041 Use if(0){} instead of #if 0 to prevent debug code to rot.
Originally committed as revision 19756 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-09-04 16:31:21 +00:00
Diego Biurrun c959c6ee3d vfwcap: Move vfw_read_close to avoid forward declaration.
Patch by Diego.

Originally committed as revision 19567 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-08-02 17:39:10 +00:00
Ramiro Polla 155b0f00d4 vfwcap: Indent.
Originally committed as revision 19545 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-07-30 17:31:28 +00:00
Ramiro Polla 1c0b9215ac vfwcap: Support compressed streams.
Originally committed as revision 19544 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-07-30 17:29:24 +00:00
Ramiro Polla 42477de59e vfwcap: Reorder some code to simplify next patch.
Originally committed as revision 19543 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-07-30 17:25:15 +00:00
Ramiro Polla d40b45e8b0 vfwcap: Return PIX_FMT_NONE instead of -1 on error.
Originally committed as revision 19542 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-07-30 16:18:33 +00:00
Ramiro Polla 189230ad67 vfwcap: Update error message:
- Verbose debug information is at max -v 9 now;
- Add an empty space for readability.

Originally committed as revision 19541 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-07-30 16:16:43 +00:00
Diego Biurrun 406792e7b0 cosmetics: Remove pointless period after copyright statement non-sentences.
Originally committed as revision 16684 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-19 15:46:40 +00:00
Ramiro Polla bc4b722143 mingw: update w32api to 3.13
Originally committed as revision 16029 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-07 05:17:57 +00:00
Aurelien Jacobs 37d3e0667a uses FF_ARRAY_ELEMS() where appropriate
Originally committed as revision 15662 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-10-21 21:40:24 +00:00
Baptiste Coudurier a3250d073d sync to latest mingw api, remove unneeded struct definitions
Originally committed as revision 15423 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-09-26 03:20:35 +00:00
Baptiste Coudurier 00adc1e5dc set bits_per_coded_sample according to new lavc api
Originally committed as revision 15289 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-09-09 18:32:50 +00:00
Stefano Sabatini bde15e74de Make long_names in lavf/lavdev optional depending on CONFIG_SMALL.
patch by Stefano Sabatini, stefano.sabatini-lala poste.it
along with some spelling/consistency fixes for the long names by me

Originally committed as revision 13649 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-06-03 16:20:54 +00:00
Diego Biurrun 245976da2a Use full path for #includes from another directory.
Originally committed as revision 13098 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-09 11:56:36 +00:00
Ramiro Polla 4b1131a075 typo
Originally committed as revision 12823 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-04-14 16:20:58 +00:00