5 years agoavconv: use new encode API
wm4 [Tue, 22 Mar 2016 18:09:55 +0000 (19:09 +0100)]
avconv: use new encode API

The flushing case is a bit strange; not simplifying it so the change is
less noisy.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
5 years agoavconv: use new decode API
wm4 [Tue, 22 Mar 2016 18:09:54 +0000 (19:09 +0100)]
avconv: use new decode API

Signed-off-by: Anton Khirnov <anton@khirnov.net>
5 years agolavc: introduce a new decoding/encoding API with decoupled input/output
wm4 [Tue, 22 Mar 2016 18:09:53 +0000 (19:09 +0100)]
lavc: introduce a new decoding/encoding API with decoupled input/output

Until now, the decoding API was restricted to outputting 0 or 1 frames
per input packet. It also enforces a somewhat rigid dataflow in general.

This new API seeks to relax these restrictions by decoupling input and
output. Instead of doing a single call on each decode step, which may
consume the packet and may produce output, the new API requires the user
to send input first, and then ask for output.

For now, there are no codecs supporting this API. The API can work with
codecs using the old API, and most code added here is to make them
interoperate. The reverse is not possible, although for audio it might.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
5 years agoopt-test: Merge struct declaration and initialization
Diego Biurrun [Mon, 21 Mar 2016 18:27:49 +0000 (19:27 +0100)]
opt-test: Merge struct declaration and initialization

5 years agoopt-test: Move some variable declarations to avoid block braces
Diego Biurrun [Mon, 21 Mar 2016 18:26:29 +0000 (19:26 +0100)]
opt-test: Move some variable declarations to avoid block braces

5 years agoparseutils-test: Move some variable declarations to avoid block braces
Diego Biurrun [Mon, 21 Mar 2016 15:55:42 +0000 (16:55 +0100)]
parseutils-test: Move some variable declarations to avoid block braces

5 years agodes-test: Move a variable declaration to avoid an ifdef
Diego Biurrun [Mon, 21 Mar 2016 18:22:26 +0000 (19:22 +0100)]
des-test: Move a variable declaration to avoid an ifdef

5 years agobuild: Add component for the SRTP common code
Diego Biurrun [Fri, 18 Mar 2016 14:52:30 +0000 (15:52 +0100)]
build: Add component for the SRTP common code

This allows expressing the SRTP test code dependencies more clearly.

5 years agotimefilter-test: Only compile timefilter-test if JACK is enabled
Diego Biurrun [Fri, 18 Mar 2016 11:07:19 +0000 (12:07 +0100)]
timefilter-test: Only compile timefilter-test if JACK is enabled

5 years agodoc: Update paths to match new examples location
Diego Biurrun [Fri, 18 Mar 2016 11:41:47 +0000 (12:41 +0100)]
doc: Update paths to match new examples location

5 years agoMove const qualifier before type name
Diego Biurrun [Tue, 22 Mar 2016 14:33:28 +0000 (15:33 +0100)]
Move const qualifier before type name

5 years agovc1dec: wmv2dec: Validate ff_intrax8_common_init return value
Vittorio Giovara [Fri, 19 Feb 2016 22:43:24 +0000 (17:43 -0500)]
vc1dec: wmv2dec: Validate ff_intrax8_common_init return value

5 years agointrax8: Check and propagate errors from ff_intrax8_common_init
Vittorio Giovara [Fri, 19 Feb 2016 22:37:11 +0000 (17:37 -0500)]
intrax8: Check and propagate errors from ff_intrax8_common_init

This allows dropping an afterwards redundant assert.

5 years agointrax8: Move documentation from implementation to header file
Vittorio Giovara [Sat, 20 Feb 2016 06:34:18 +0000 (01:34 -0500)]
intrax8: Move documentation from implementation to header file

5 years agointrax8: K&R formatting cosmetics
Vittorio Giovara [Wed, 24 Feb 2016 22:45:11 +0000 (17:45 -0500)]
intrax8: K&R formatting cosmetics

5 years agointrax8: Adjust printf conversion specifier for sizeof expression
Diego Biurrun [Tue, 22 Mar 2016 20:51:47 +0000 (21:51 +0100)]
intrax8: Adjust printf conversion specifier for sizeof expression

5 years agointrax8: Move a comment to the place it corresponds
Vittorio Giovara [Tue, 23 Feb 2016 16:29:38 +0000 (11:29 -0500)]
intrax8: Move a comment to the place it corresponds

5 years agointrax8: Wrap multiline macros in do{}while(0) clauses
Vittorio Giovara [Fri, 19 Feb 2016 23:26:24 +0000 (18:26 -0500)]
intrax8: Wrap multiline macros in do{}while(0) clauses

These macros are treated like functions, the wrapping simplifies error
checking and avoids deeply nested ifs in the following commit.

5 years agointrax8: Move error resilience out of intrax8
Vittorio Giovara [Sat, 20 Feb 2016 01:51:44 +0000 (20:51 -0500)]
intrax8: Move error resilience out of intrax8

The intrax8 decoding process does not imply any kind of error
resilience, and the only call present is more related to how mpegvideo
works rather than anything else.

Therefore have the parent decoders carry out er when actually needed.

5 years agonuv: Use the correct context for av_image_check_size
Vittorio Giovara [Sun, 20 Mar 2016 01:38:27 +0000 (21:38 -0400)]
nuv: Use the correct context for av_image_check_size

5 years agoindeo4: Consistently initialize variables
Vittorio Giovara [Sat, 19 Mar 2016 22:07:21 +0000 (18:07 -0400)]
indeo4: Consistently initialize variables

Avoid using multiple variables for the same purpose.

5 years agoindeo4: Rework stream analysis report
Vittorio Giovara [Sat, 19 Mar 2016 21:07:37 +0000 (17:07 -0400)]
indeo4: Rework stream analysis report

* Change log level from error to debug
* Print report after the first decoded frame, not at the end of decoding
* Drop macro guard and use a context variable instead

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
5 years agoavconv: switch to the new BSF API
Anton Khirnov [Thu, 25 Feb 2016 14:41:45 +0000 (15:41 +0100)]
avconv: switch to the new BSF API

5 years agolavc: add a new bitstream filtering API
Anton Khirnov [Sat, 23 Nov 2013 10:43:13 +0000 (11:43 +0100)]
lavc: add a new bitstream filtering API

Deprecate the current bitstream filtering API.

5 years agotakdec: ensure chan2 is a valid channel index
Andreas Cadhalpun [Tue, 9 Jun 2015 22:12:38 +0000 (00:12 +0200)]
takdec: ensure chan2 is a valid channel index

If chan2 is not smaller than the number of channels, it can cause
segmentation faults due to dereferencing a NULL pointer.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
5 years agompegts: Forward the errors on mpeg4 objects parsing
Luca Barbato [Wed, 17 Feb 2016 01:23:02 +0000 (02:23 +0100)]
mpegts: Forward the errors on mpeg4 objects parsing

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
5 years agolavfi: generic hardware surface upload and download filters
Mark Thompson [Thu, 25 Feb 2016 00:21:40 +0000 (00:21 +0000)]
lavfi: generic hardware surface upload and download filters

Signed-off-by: Anton Khirnov <anton@khirnov.net>
5 years agolavu: VAAPI hwcontext implementation
Mark Thompson [Mon, 15 Feb 2016 19:32:45 +0000 (19:32 +0000)]
lavu: VAAPI hwcontext implementation

Signed-off-by: Anton Khirnov <anton@khirnov.net>
5 years agolavu: deprecate AV_PIX_FMT_VAAPI_*, replace with AV_PIX_FMT_VAAPI
Mark Thompson [Mon, 7 Mar 2016 22:34:59 +0000 (22:34 +0000)]
lavu: deprecate AV_PIX_FMT_VAAPI_*, replace with AV_PIX_FMT_VAAPI

Signed-off-by: Anton Khirnov <anton@khirnov.net>
5 years agolavu: add a way to query hwcontext frame constraints
Mark Thompson [Thu, 18 Feb 2016 23:25:52 +0000 (23:25 +0000)]
lavu: add a way to query hwcontext frame constraints

Signed-off-by: Anton Khirnov <anton@khirnov.net>
5 years agosvq3: Use a separate buffer for decoding the slices
Luca Barbato [Sat, 12 Mar 2016 16:46:36 +0000 (17:46 +0100)]
svq3: Use a separate buffer for decoding the slices

The AVPacket.data should be considered read-only.

5 years agocmdutils: update copyright year to 2016
Sean McGovern [Sat, 12 Mar 2016 19:38:10 +0000 (14:38 -0500)]
cmdutils: update copyright year to 2016

CC: libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
5 years agomatroska: Support V_QUICKTIME as written in the specification
Luca Barbato [Sat, 12 Mar 2016 12:46:13 +0000 (13:46 +0100)]
matroska: Support V_QUICKTIME as written in the specification

Check if the size is written the first 4 bytes and read the next 4
as fourcc candidate, fallback checking the initial for 4 bytes.

"The CodecPrivate contains all additional data that is stored in the
'stsd' (sample description) atom in the QuickTime file after the
mandatory video descriptor structure (starting with the size and FourCC

CC: libav-stable@libav.org
5 years agoqsv: Fix loading multiple plugins
Luca Barbato [Tue, 15 Mar 2016 13:10:05 +0000 (14:10 +0100)]
qsv: Fix loading multiple plugins

av_get_token does not strip the trailing separator.

5 years agomov: Check the entries value when parsing dref boxes
Luca Barbato [Tue, 8 Mar 2016 10:57:16 +0000 (11:57 +0100)]
mov: Check the entries value when parsing dref boxes

And properly reset the entries count when resetting the entries.

CC: libav-stable@libav.org
Bug-Id: 929
Bug-Id: CVE-2016-3062

5 years agoconfigure: Add support for clang llvm-cov
Luca Barbato [Sun, 6 Mar 2016 21:52:04 +0000 (22:52 +0100)]
configure: Add support for clang llvm-cov

5 years agoconfigure: Support msan as toolchain
Luca Barbato [Sun, 6 Mar 2016 21:48:20 +0000 (22:48 +0100)]
configure: Support msan as toolchain

5 years agobuffer: drop a reference to a non-existing function from the docs
Anton Khirnov [Sat, 9 Jan 2016 08:08:14 +0000 (09:08 +0100)]
buffer: drop a reference to a non-existing function from the docs

This function only ever existed in the draft versions of the API.

5 years agopixfmt: fix the AV_PIX_FMT_VAAPI_VLD doxy
Anton Khirnov [Sat, 9 Jan 2016 18:46:26 +0000 (19:46 +0100)]
pixfmt: fix the AV_PIX_FMT_VAAPI_VLD doxy

5 years agompegvideo: Refactor emulated_edge_mc calls
Luca Barbato [Fri, 4 Mar 2016 15:57:30 +0000 (16:57 +0100)]
mpegvideo: Refactor emulated_edge_mc calls

5 years agompegvideo: Fix undefined negative shifts in mpeg_motion_internal
Luca Barbato [Fri, 4 Mar 2016 15:57:29 +0000 (16:57 +0100)]
mpegvideo: Fix undefined negative shifts in mpeg_motion_internal

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
5 years agompegvideo: Fix undefined negative shifts in ff_init_block_index
Luca Barbato [Wed, 2 Mar 2016 23:52:23 +0000 (18:52 -0500)]
mpegvideo: Fix undefined negative shifts in ff_init_block_index

Found-by: gcc5-ubsan.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
5 years agoidct8x8: Fix undefined negative shifts
Katerina Barone-Adesi [Wed, 2 Mar 2016 23:52:25 +0000 (18:52 -0500)]
idct8x8: Fix undefined negative shifts

The original code left-shifts negative values, which is undefined
in the C99 specification (the one used during normal Libav compilation).
This change multiplies by (1 << shift), which is functionally equivalent,
but has defined behavior.

With this change, fate-idct8x8 compiled with --fsanitize=undefined works.

Bug-Id: 686

5 years agovdpau: Add missing deprecation guards
Vittorio Giovara [Tue, 1 Mar 2016 20:34:23 +0000 (15:34 -0500)]
vdpau: Add missing deprecation guards

5 years agomov: Trim dref absolute path
Vittorio Giovara [Tue, 16 Feb 2016 02:44:07 +0000 (21:44 -0500)]
mov: Trim dref absolute path

Samples produced by Omneon (Harmonic) store external references with
paths ending with 0s. Such movs cannot be loaded properly since every
0 is converted to '/', to keep the same parsing code for dref type 2
and type 18: this makes the external reference point to a non-existing
direactory, rather than to the actual referenced file.

Add a brief trimming loop that drops all ending 0s before trying to
parse the external reference path.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
5 years agoavconv: remove sub-frame warning
wm4 [Mon, 29 Feb 2016 21:48:14 +0000 (22:48 +0100)]
avconv: remove sub-frame warning

It's not practical to keep this with the new decode API.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
5 years agolavc: factor apply_param_change() AV_EF_EXPLODE handling
wm4 [Mon, 29 Feb 2016 21:48:12 +0000 (22:48 +0100)]
lavc: factor apply_param_change() AV_EF_EXPLODE handling

Remove the duplicated code for handling failure of apply_param_change().

Signed-off-by: Anton Khirnov <anton@khirnov.net>
5 years agolavu: improve documentation of some AVFrame functions
wm4 [Mon, 29 Feb 2016 21:48:11 +0000 (22:48 +0100)]
lavu: improve documentation of some AVFrame functions

Signed-off-by: Anton Khirnov <anton@khirnov.net>
5 years agoasfenc: remove an unused variable
Anton Khirnov [Fri, 4 Mar 2016 15:39:29 +0000 (16:39 +0100)]
asfenc: remove an unused variable

5 years agoasfenc: fix some possible integer overflows
Anton Khirnov [Fri, 4 Mar 2016 15:32:07 +0000 (16:32 +0100)]
asfenc: fix some possible integer overflows

Store the file duration in the same timebase it arrives (i.e.
milliseconds) and only convert it to the file duration units (100ns)
when it's actually written, thus simplifying some calculations. Also,
store the duration as unsigned, since it cannot be negative.

CC: libav-stable@libav.org
Bug-ID: CVE-2016-2326

5 years agoavformat_find_stream_info: move duration guessing after updating codec parameters
Anton Khirnov [Thu, 3 Mar 2016 09:07:55 +0000 (10:07 +0100)]
avformat_find_stream_info: move duration guessing after updating codec parameters

This bitrate might not be known otherwise.

Bug-Id: 926

5 years agofate: Add separate target for all indeo3 tests
Diego Biurrun [Thu, 25 Feb 2016 16:13:26 +0000 (17:13 +0100)]
fate: Add separate target for all indeo3 tests

5 years agofate: Add test for indeo2 with delta frames
Vittorio Giovara [Wed, 24 Feb 2016 20:45:49 +0000 (15:45 -0500)]
fate: Add test for indeo2 with delta frames

Signed-off-by: Diego Biurrun <diego@biurrun.de>
5 years agoindeo2: Fix banding artefacts
Luca Barbato [Tue, 23 Feb 2016 00:58:19 +0000 (19:58 -0500)]
indeo2: Fix banding artefacts

Rename luma table to delta table and change how it is used.

CC: libav-stable@libav.org
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
5 years agoindeo2data: K&R formatting cosmetics
Luca Barbato [Tue, 23 Feb 2016 00:58:18 +0000 (19:58 -0500)]
indeo2data: K&R formatting cosmetics

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
5 years agofft: Split MDCT bits off from FFT
Diego Biurrun [Sat, 30 Jan 2016 13:45:28 +0000 (14:45 +0100)]
fft: Split MDCT bits off from FFT

5 years agosdp: fix opus sprop-stereo fmtp syntax
Mark Harris [Tue, 1 Mar 2016 04:09:53 +0000 (20:09 -0800)]
sdp: fix opus sprop-stereo fmtp syntax

Signed-off-by: Martin Storsjö <martin@martin.st>
5 years agofate: fft: Split DCT/FFT/MDCT/RDFT tests into separate targets
Diego Biurrun [Tue, 16 Feb 2016 11:05:19 +0000 (12:05 +0100)]
fate: fft: Split DCT/FFT/MDCT/RDFT tests into separate targets

5 years agordft: arm: Split RDFT initialization into a separate file
Diego Biurrun [Sat, 30 Jan 2016 12:44:38 +0000 (13:44 +0100)]
rdft: arm: Split RDFT initialization into a separate file

5 years agofft: arm: Drop unnecessary #include, add missing ones
Diego Biurrun [Sat, 30 Jan 2016 13:54:35 +0000 (14:54 +0100)]
fft: arm: Drop unnecessary #include, add missing ones

5 years agofft: x86: cosmetics: Drop silly comments, add comment, whitespace
Diego Biurrun [Sat, 30 Jan 2016 16:11:41 +0000 (17:11 +0100)]
fft: x86: cosmetics: Drop silly comments, add comment, whitespace

5 years agoqsv: Move down the implementation query
Luca Barbato [Wed, 24 Feb 2016 14:13:58 +0000 (15:13 +0100)]
qsv: Move down the implementation query

The plugin loaded may not match the general implementation capability

5 years agoavpacket: properly reset data/size in av_packet_move_ref()
Anton Khirnov [Thu, 25 Feb 2016 14:53:17 +0000 (15:53 +0100)]
avpacket: properly reset data/size in av_packet_move_ref()

It currently just calls av_init_packet(), which does not touch those

5 years agoavprobe: switch to codecpar
Anton Khirnov [Wed, 24 Feb 2016 15:32:19 +0000 (16:32 +0100)]
avprobe: switch to codecpar

5 years agoavprobe: add local per-stream state
Anton Khirnov [Wed, 24 Feb 2016 14:02:48 +0000 (15:02 +0100)]
avprobe: add local per-stream state

This will be useful in the following commits.

5 years agoavprobe: add local per-file state
Anton Khirnov [Wed, 24 Feb 2016 13:56:15 +0000 (14:56 +0100)]
avprobe: add local per-file state

Do not pass just a bare AVFormatContext pointer around, wrap it in
struct. This will be useful in the following commits.

5 years agompegvideo_enc: use avcodec_free_context() instead of av_free()
Anton Khirnov [Wed, 24 Feb 2016 10:10:30 +0000 (11:10 +0100)]
mpegvideo_enc: use avcodec_free_context() instead of av_free()

5 years agoavprobe: print information from the codec descriptor
Anton Khirnov [Thu, 21 Jan 2016 15:40:59 +0000 (16:40 +0100)]
avprobe: print information from the codec descriptor

avprobe is not doing any decoding, so this is more correct than printing
information from a random codec implementation.

5 years agoavprobe: remove a pointless condition and a dead branch
Anton Khirnov [Thu, 21 Jan 2016 15:35:32 +0000 (16:35 +0100)]
avprobe: remove a pointless condition and a dead branch

AVStream.codec is always non-NULL

5 years agoAPIchanges: add missing hashes and dates
Anton Khirnov [Wed, 24 Feb 2016 09:59:57 +0000 (10:59 +0100)]
APIchanges: add missing hashes and dates

Also, remove a stray line (apparently fallout from conflict resolution).

5 years agolavf: add a missing bump and APIchanges for the codecpar switch
Anton Khirnov [Wed, 24 Feb 2016 09:47:58 +0000 (10:47 +0100)]
lavf: add a missing bump and APIchanges for the codecpar switch

5 years agovc1dec: Check group allocations separatedly
Vittorio Giovara [Wed, 24 Feb 2016 19:40:19 +0000 (14:40 -0500)]
vc1dec: Check group allocations separatedly

This avoids accessing NULL pointers in case of error.

5 years agovc1dec: Fix leak on error for array allocations
Vittorio Giovara [Wed, 24 Feb 2016 19:40:18 +0000 (14:40 -0500)]
vc1dec: Fix leak on error for array allocations

The deinit function in the 'error' section will correctly free

5 years agovc1dec: Properly call deinit function on error
Vittorio Giovara [Wed, 24 Feb 2016 19:40:17 +0000 (14:40 -0500)]
vc1dec: Properly call deinit function on error

5 years agovc1dec: Drop commented out cruft
Vittorio Giovara [Wed, 24 Feb 2016 19:40:16 +0000 (14:40 -0500)]
vc1dec: Drop commented out cruft

5 years agoimg2: Drop av_ prefix for a static function
Vittorio Giovara [Wed, 24 Feb 2016 00:44:18 +0000 (19:44 -0500)]
img2: Drop av_ prefix for a static function

This prefix is reserved for public functions only.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
5 years agoidct: Only build prores IDCT if ProRes decoder is enabled
Diego Biurrun [Tue, 23 Feb 2016 08:51:07 +0000 (09:51 +0100)]
idct: Only build prores IDCT if ProRes decoder is enabled

5 years agoqsvdec: store the sync point in heap memory
Anton Khirnov [Mon, 22 Feb 2016 09:48:34 +0000 (10:48 +0100)]
qsvdec: store the sync point in heap memory

The reasoning is the same as for the corresponding qsvenc patch.

5 years agoqsvenc: store the sync point in heap memory
Maxym Dmytrychenko [Mon, 22 Feb 2016 09:39:02 +0000 (10:39 +0100)]
qsvenc: store the sync point in heap memory

The QSV runtime expects the sync point address passed to
MFXVideoENCODE_EncodeFrameAsync() to be valid until

Signed-off-by: Anton Khirnov <anton@khirnov.net>
5 years agovsrc_movie: convert to codecpar
Anton Khirnov [Wed, 10 Feb 2016 13:17:21 +0000 (14:17 +0100)]
vsrc_movie: convert to codecpar

5 years agoexamples/transcode_aac: convert to codecpar
Anton Khirnov [Wed, 10 Feb 2016 13:17:21 +0000 (14:17 +0100)]
examples/transcode_aac: convert to codecpar

5 years agoexamples/qsvdec: convert to codecpar
Anton Khirnov [Wed, 10 Feb 2016 13:17:21 +0000 (14:17 +0100)]
examples/qsvdec: convert to codecpar

5 years agoexamples/output: convert to codecpar
Anton Khirnov [Wed, 10 Feb 2016 13:13:39 +0000 (14:13 +0100)]
examples/output: convert to codecpar

5 years agoavplay: convert do codecpar
Anton Khirnov [Tue, 9 Feb 2016 13:23:30 +0000 (14:23 +0100)]
avplay: convert do codecpar

5 years agoavplay: do not use AVStream.codec for decoding
Anton Khirnov [Tue, 9 Feb 2016 11:36:13 +0000 (12:36 +0100)]
avplay: do not use AVStream.codec for decoding

AVStream.codec is now deprecated. Allocate a separate codec context

5 years agoavconv: convert to codecpar
Anton Khirnov [Wed, 6 Jan 2016 08:18:21 +0000 (09:18 +0100)]
avconv: convert to codecpar

The switch is not yet complete because the parsers and the bistream
filters do not have a new AVCodecParam-based API yet.

5 years agoavconv: switch opening decoders and encoders
Anton Khirnov [Mon, 18 Jan 2016 19:00:23 +0000 (20:00 +0100)]
avconv: switch opening decoders and encoders

Open decoders first, next encoders. This makes sure that that
subtitle_header is always set properly, without relying on
avformat_find_stream_info() setting it.

5 years agolavf: replace AVStream.codec with AVStream.codecpar
Anton Khirnov [Wed, 18 Jun 2014 18:42:52 +0000 (20:42 +0200)]
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.

5 years agolavc: add a variant of av_get_audio_frame_duration working with AVCodecParameters
Anton Khirnov [Sun, 1 Jun 2014 07:38:22 +0000 (09:38 +0200)]
lavc: add a variant of av_get_audio_frame_duration working with AVCodecParameters

5 years agolavc: add codec parameters API
Anton Khirnov [Wed, 18 Jun 2014 18:42:13 +0000 (20:42 +0200)]
lavc: add codec parameters API

This API is intended to allow passing around codec parameters without
using full AVCodecContext (which also contains codec options and
encoder/decoder state).

5 years agox86: hevc: Fix linking with both yasm and optimizations disabled
Diego Biurrun [Sun, 21 Feb 2016 13:04:40 +0000 (14:04 +0100)]
x86: hevc: Fix linking with both yasm and optimizations disabled

Some optimized functions reference optimized symbols, so the functions
must be explicitly disabled when those symbols are unavailable.

5 years agofate: Ignore errors from concatenating report files
Diego Biurrun [Sun, 21 Feb 2016 11:12:26 +0000 (12:12 +0100)]
fate: Ignore errors from concatenating report files

Some files may be missing for valid reasons, e.g. on compile failure.

5 years agofate: Be silent when fetching Git updates
Diego Biurrun [Sat, 20 Feb 2016 17:34:20 +0000 (18:34 +0100)]
fate: Be silent when fetching Git updates

5 years agompeg12enc: always write closed gops for intra only outputs
Marton Balint [Mon, 8 Dec 2014 14:27:03 +0000 (14:27 +0000)]
mpeg12enc: always write closed gops for intra only outputs

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Marton Balint <cus@passwd.hu>
5 years agoh264: Add an AVClass pointer to H264Context
Michael Niedermayer [Tue, 9 Feb 2016 22:25:49 +0000 (17:25 -0500)]
h264: Add an AVClass pointer to H264Context

Sample-Id: asan_heap-uaf_3660f67_757_cov_1257014655_Hi422FR1_SONY_A.jsv
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
5 years agolibx264: Fix noise_reduction option assignment
Vittorio Giovara [Tue, 16 Feb 2016 17:12:23 +0000 (12:12 -0500)]
libx264: Fix noise_reduction option assignment

First check the context, then check internal option. Drop the ! typo.
Introduced in 60f0fde3092d18d4d36555962c192af8691a099c.

5 years agolavf: add a protocol whitelist/blacklist for file opened internally
Anton Khirnov [Wed, 20 Jan 2016 10:11:38 +0000 (11:11 +0100)]
lavf: add a protocol whitelist/blacklist for file opened internally

Should make the default behaviour safer for careless callers that open
random untrusted files.

Bug-Id: CVE-2016-1897
Bug-Id: CVE-2016-1898

5 years agourlprotocol: receive a list of protocols from the caller
Anton Khirnov [Fri, 19 Feb 2016 17:02:45 +0000 (18:02 +0100)]
urlprotocol: receive a list of protocols from the caller

This way, the decisions about which protocols are available for use in
any given situations can be delegated to the caller.

5 years agoaviobuf: add a private data struct for avio_open()ed contexts
Anton Khirnov [Fri, 19 Feb 2016 13:29:10 +0000 (14:29 +0100)]
aviobuf: add a private data struct for avio_open()ed contexts

It will be useful in the following commits.

5 years agoprotocols: make the list of protocols static
Anton Khirnov [Fri, 19 Feb 2016 10:17:22 +0000 (11:17 +0100)]
protocols: make the list of protocols static

Disallow other code to touch it directly, now it's only accessible
through a blacklisting/whitelisting function.