7 years agomatroskaenc: base DefaultDuration on the framerate, not the codec timebase
Anton Khirnov [Sun, 18 May 2014 11:49:46 +0000 (13:49 +0200)]
matroskaenc: base DefaultDuration on the framerate, not the codec timebase

This results in DefaultDuration not being written when the framerate is
not known, but as this field is purely informative, this should not
break any sane demuxers.

7 years agoframe: fix the error path in av_frame_copy_props()
Roman Savchenko [Wed, 28 May 2014 20:16:56 +0000 (22:16 +0200)]
frame: fix the error path in av_frame_copy_props()

First free metadata, then the side data it is contained in.

Signed-off-by: Anton Khirnov <>
7 years agoaf_resample: Use avresample_get_out_samples
Luca Barbato [Mon, 26 May 2014 19:30:30 +0000 (21:30 +0200)]
af_resample: Use avresample_get_out_samples

7 years agoavresample: Add avresample_get_out_samples
Luca Barbato [Wed, 30 Apr 2014 17:56:05 +0000 (19:56 +0200)]
avresample: Add avresample_get_out_samples

Utility function to get the upper bound on the number of samples the
resampler would output.

7 years agonut: Support experimental NUT 4 features
Luca Barbato [Thu, 6 Mar 2014 16:58:34 +0000 (17:58 +0100)]
nut: Support experimental NUT 4 features

Add the low overhead pipe mode and the extended broadcast mode.
Export the options as 'syncponts' since it impacts only that.

Signed-off-by: Luca Barbato <>
7 years agoavformat: Provide a standard compliance flag
Luca Barbato [Thu, 6 Mar 2014 16:58:33 +0000 (17:58 +0100)]
avformat: Provide a standard compliance flag

Provide f_strict for avconv usage.

Signed-off-by: Luca Barbato <>
7 years agooggenc: Fix the EOS flag
Michael Niedermayer [Wed, 28 May 2014 17:27:40 +0000 (10:27 -0700)]
oggenc: Fix the EOS flag

This corrects the bug that caused the checksums to change in

It caused the EOS flag to be set incorrectly; the ogg spec does not
allow it to be set in the middle of a logical bitstream.

Signed-off-by: Andrew Kelley <>
Signed-off-by: Martin Storsjö <>
7 years agoppc: Move vec_unaligned_load macro to util_altivec
Diego Biurrun [Wed, 28 May 2014 10:29:33 +0000 (03:29 -0700)]
ppc: Move vec_unaligned_load macro to util_altivec

This allows reusing it from multiple files.

7 years agoppc: util_altivec: Drop unused macros
Diego Biurrun [Wed, 28 May 2014 10:11:24 +0000 (03:11 -0700)]
ppc: util_altivec: Drop unused macros

7 years agomatroskaenc: write the channel mask for FLAC
Anton Khirnov [Mon, 26 May 2014 11:53:13 +0000 (13:53 +0200)]
matroskaenc: write the channel mask for FLAC

7 years agovorbiscomment: simplify API by using av_dict_count()
Anton Khirnov [Mon, 26 May 2014 11:30:10 +0000 (13:30 +0200)]
vorbiscomment: simplify API by using av_dict_count()

7 years agomatroskadec: parse the channel layout mask for FLAC
Anton Khirnov [Mon, 26 May 2014 10:48:56 +0000 (12:48 +0200)]
matroskadec: parse the channel layout mask for FLAC

It is commonly stored in a vorbiscomment block in codec private data.

7 years agomatroskadec: export just the STREAMINFO block as FLAC extradata
Anton Khirnov [Sun, 25 May 2014 12:05:51 +0000 (14:05 +0200)]
matroskadec: export just the STREAMINFO block as FLAC extradata

It contains all information that is used by the decoder and the other
FLAC-capable demuxers (flacdec, ogg) export only STREAMINFO as well.

7 years agomatroskadec: split parsing tracks into a separate function
Anton Khirnov [Sun, 25 May 2014 07:07:32 +0000 (09:07 +0200)]
matroskadec: split parsing tracks into a separate function

7 years agoflac: make avpriv_flac_parse_block_header() inline
Anton Khirnov [Mon, 26 May 2014 07:43:50 +0000 (09:43 +0200)]
flac: make avpriv_flac_parse_block_header() inline

This avoids all the ABI troubles associated with avpriv_.
Since this function is very small and does not depend on any tables,
making it inline should have no adverse effects.

7 years agoflac muxer: write WAVEFORMATEXTENSIBLE_CHANNEL_MASK tag for multichannel files
Anton Khirnov [Sun, 25 May 2014 09:34:32 +0000 (11:34 +0200)]
flac muxer: write WAVEFORMATEXTENSIBLE_CHANNEL_MASK tag for multichannel files

7 years agoflac demuxer: parse the WAVEFORMATEXTENSIBLE_CHANNEL_MASK tag
Anton Khirnov [Sun, 25 May 2014 09:14:14 +0000 (11:14 +0200)]

It is used to store the channel mask for non-standard layouts.

7 years agoflacdec: do not overwrite a channel layout set by the caller
Anton Khirnov [Sun, 25 May 2014 09:12:33 +0000 (11:12 +0200)]
flacdec: do not overwrite a channel layout set by the caller

The channel layout mask for non-standard layouts is typically stored at
the container level (as a vorbiscomment tag) for FLAC.

7 years agooggenc: Flush after writing headers
Andrew Kelley [Mon, 26 May 2014 04:04:19 +0000 (21:04 -0700)]
oggenc: Flush after writing headers

Before, header information for ogg format files was sent with the
first encoded packet.

This patch makes it so that it is possible for API users to
differentiate between headers and encoded audio. This is useful, for
example, when creating an audio stream where you want to send one set
of headers for every client that connects and then the encoded stream
of audio.

Signed-off-by: Martin Storsjö <>
7 years agooggenc: Move ogg_write_pages up above ogg_write_header
Andrew Kelley [Mon, 26 May 2014 04:04:19 +0000 (21:04 -0700)]
oggenc: Move ogg_write_pages up above ogg_write_header

Signed-off-by: Martin Storsjö <>
7 years agodsputil: Split off HuffYUV encoding bits into their own context
Diego Biurrun [Mon, 23 Dec 2013 17:42:11 +0000 (18:42 +0100)]
dsputil: Split off HuffYUV encoding bits into their own context

Also shorten HuffYUV context member names to avoid clutter.

7 years agodsputil: Split off HuffYUV decoding bits into their own context
Diego Biurrun [Tue, 7 Jan 2014 11:23:13 +0000 (12:23 +0100)]
dsputil: Split off HuffYUV decoding bits into their own context

Also shorten HuffYUV context member names to avoid clutter.

7 years agoh264_picture: Remove pointless dsputil.h #include
Diego Biurrun [Fri, 23 May 2014 14:20:58 +0000 (07:20 -0700)]
h264_picture: Remove pointless dsputil.h #include

7 years agoon2avc: Remove pointless dsputil.h #include
Diego Biurrun [Fri, 23 May 2014 14:20:24 +0000 (07:20 -0700)]
on2avc: Remove pointless dsputil.h #include

7 years agolavfi/formats: avoid using AV_{PIX,SAMPLE}_FMT_NB
Anton Khirnov [Sat, 24 May 2014 09:15:15 +0000 (11:15 +0200)]
lavfi/formats: avoid using AV_{PIX,SAMPLE}_FMT_NB

Thatt hardcodes the number of formats into lavfi and will break when a
shared lavu is updated, adding new formats.

7 years agobuffersrc: avoid using AV_PIX_FMT_NB
Anton Khirnov [Sat, 24 May 2014 09:15:15 +0000 (11:15 +0200)]
buffersrc: avoid using AV_PIX_FMT_NB

That hardcodes the number of pixel formats into lavfi and will break
when a shared lavu is updated, adding new pixel formats.

7 years agovf_fieldorder: avoid using AV_PIX_FMT_NB
Anton Khirnov [Sat, 24 May 2014 09:15:15 +0000 (11:15 +0200)]
vf_fieldorder: avoid using AV_PIX_FMT_NB

That hardcodes the number of pixel formats into lavfi and will break
when a shared lavu is updated, adding new pixel formats.

7 years agovf_scale: use the pixfmt descriptor API
Anton Khirnov [Sat, 24 May 2014 09:15:15 +0000 (11:15 +0200)]
vf_scale: use the pixfmt descriptor API

Avoid using AV_PIX_FMT_NB, since that hardcodes the number of pixel
formats into lavfi and will break when a shared lavu is updated, adding
new pixel formats.

7 years agovf_format: rework format list parsing
Anton Khirnov [Sat, 24 May 2014 09:15:15 +0000 (11:15 +0200)]
vf_format: rework format list parsing

Avoid using AV_PIX_FMT_NB, since that hardcodes the number of pixel
formats into lavfi and will break when a shared lavu is updated, adding
new pixel formats.

7 years agoimgutils: make systematic palette opaque.
Carl Eugen Hoyos [Fri, 23 Dec 2011 10:43:29 +0000 (11:43 +0100)]
imgutils: make systematic palette opaque.

Signed-off-by: Anton Khirnov <>
7 years agosmoothstream: check malloc calls
Nidhi Makhijani [Thu, 22 May 2014 10:50:05 +0000 (16:20 +0530)]
smoothstream: check malloc calls

Signed-off-by: Anton Khirnov <>
7 years agordt: check malloc calls
Nidhi Makhijani [Fri, 23 May 2014 13:42:02 +0000 (19:12 +0530)]
rdt: check malloc calls

Signed-off-by: Anton Khirnov <>
7 years agoavcodec: bump version after rotation api
Vittorio Giovara [Tue, 20 May 2014 15:13:12 +0000 (11:13 -0400)]
avcodec: bump version after rotation api

Signed-off-by: Kostya Shishkov <>
7 years agodca: Convert dca_dmixtable to integers
Niels Möller [Tue, 6 May 2014 07:41:05 +0000 (09:41 +0200)]
dca: Convert dca_dmixtable to integers

Also include zero in the table, eliminating a special case in the

Signed-off-by: Niels Möller <>
Signed-off-by: Anton Khirnov <>
7 years agolavf: add av_stream_get_side_data
Janne Grunau [Mon, 19 May 2014 14:29:30 +0000 (16:29 +0200)]
lavf: add av_stream_get_side_data

7 years agobuild: export library dependencies in ${name}_FFLIBS
Janne Grunau [Thu, 15 May 2014 16:11:19 +0000 (18:11 +0200)]
build: export library dependencies in ${name}_FFLIBS

Removes an ugly $(if) to avoid conflicts with $(FFLIBS-) in the
top-level MAkefile.

7 years agocheck: add libavcodec/vda_internal.h to SKIPHEADERS-$(CONFIG_VDA)
Janne Grunau [Thu, 15 May 2014 15:57:16 +0000 (17:57 +0200)]
check: add libavcodec/vda_internal.h to SKIPHEADERS-$(CONFIG_VDA)

7 years agodisplay: Include mathematics.h for fallback definition of NAN
Martin Storsjö [Mon, 19 May 2014 14:41:05 +0000 (17:41 +0300)]
display: Include mathematics.h for fallback definition of NAN

This fixes compilation with MSVC.

Signed-off-by: Martin Storsjö <>
7 years agomov: store display matrix in a stream side data
Vittorio Giovara [Fri, 16 May 2014 02:06:50 +0000 (22:06 -0400)]
mov: store display matrix in a stream side data

Signed-off-by: Anton Khirnov <>
7 years agoAdd transformation matrix API.
Vittorio Giovara [Fri, 16 May 2014 02:06:49 +0000 (22:06 -0400)]
Add transformation matrix API.

frame side data (respectively) to describe a display transformation matrix
for linear transformation operations on the decoded video.

Add functions to easily extract a rotation angle from a matrix and
conversely to setup a matrix for a given rotation angle.

Signed-off-by: Anton Khirnov <>
7 years agopthread_frame: simplify the code by using new AVPacket API
Anton Khirnov [Sun, 18 May 2014 19:20:25 +0000 (21:20 +0200)]
pthread_frame: simplify the code by using new AVPacket API

This also handles side data properly.

7 years agoavpacket: fix copying side data in av_packet_copy_props()
Anton Khirnov [Sun, 18 May 2014 19:16:47 +0000 (21:16 +0200)]
avpacket: fix copying side data in av_packet_copy_props()

Side data count is incremented by by calling av_packet_new_side_data()
in the following loop, setting it explicitly results in the resulting
value being twice what it should be.

7 years agolavf: deprecate now unused AVStream.pts
Anton Khirnov [Sun, 18 May 2014 10:36:00 +0000 (12:36 +0200)]
lavf: deprecate now unused AVStream.pts

7 years agomux: drop one of the hacks comprising compute_pkt_fields2()
Anton Khirnov [Sun, 18 May 2014 10:25:29 +0000 (12:25 +0200)]
mux: drop one of the hacks comprising compute_pkt_fields2()

All encoders should output proper timestamps now.

7 years agoavconv: do not use poorly defined and undocumented AVStream.pts
Anton Khirnov [Sun, 18 May 2014 10:21:32 +0000 (12:21 +0200)]
avconv: do not use poorly defined and undocumented AVStream.pts

Use OutputStream.last_mux_dts as an approximation of 'current' output
time instead.

7 years agohevc/intra_pred: simplify neighboring sample derivation
Anton Khirnov [Sat, 17 May 2014 20:30:42 +0000 (22:30 +0200)]
hevc/intra_pred: simplify neighboring sample derivation

7 years agohevc/intra_pred: drop unnecessary conditions in loops
Mickaël Raulet [Sat, 17 May 2014 19:59:08 +0000 (21:59 +0200)]
hevc/intra_pred: drop unnecessary conditions in loops

Signed-off-by: Anton Khirnov <>
7 years agohevc/intra_pred: optimize EXTEND_()*
Mickaël Raulet [Sat, 17 May 2014 19:59:08 +0000 (21:59 +0200)]
hevc/intra_pred: optimize EXTEND_()*

Process 4 pixels at once.

Signed-off-by: Anton Khirnov <>
7 years agohevc: templatize intra_pred
Anton Khirnov [Sat, 17 May 2014 18:41:22 +0000 (20:41 +0200)]
hevc: templatize intra_pred

7 years agohevc: templatize pred_planar
Mickaël Raulet [Sat, 17 May 2014 18:32:05 +0000 (20:32 +0200)]
hevc: templatize pred_planar

Signed-off-by: Anton Khirnov <>
7 years agomovenc: use the "encoder" metadata tag to write stsd Compressorname
Anton Khirnov [Tue, 29 Apr 2014 15:40:57 +0000 (17:40 +0200)]
movenc: use the "encoder" metadata tag to write stsd Compressorname

This mirrors the demuxer behaviour and avoids accessing
AVCodecContext.codec, which should not be done in muxers.

7 years agoavconv: set the "encoder" tag when transcoding
Anton Khirnov [Tue, 29 Apr 2014 15:23:49 +0000 (17:23 +0200)]
avconv: set the "encoder" tag when transcoding

7 years agowavenc: use codec descriptors to get the codec name
Anton Khirnov [Tue, 29 Apr 2014 15:01:17 +0000 (17:01 +0200)]
wavenc: use codec descriptors to get the codec name

Also, return a proper error code.

7 years agodoc/APIchanges: mark the release 10 branch point
Anton Khirnov [Sun, 18 May 2014 08:53:00 +0000 (10:53 +0200)]
doc/APIchanges: mark the release 10 branch point

7 years agodoc/APIchanges: fill in missing hashes and dates
Anton Khirnov [Sun, 18 May 2014 08:52:41 +0000 (10:52 +0200)]
doc/APIchanges: fill in missing hashes and dates

7 years agodv: do not set codec timebase
Anton Khirnov [Sun, 17 Nov 2013 17:42:02 +0000 (18:42 +0100)]
dv: do not set codec timebase

It is not supposed to be set from outside of libavcodec.
Set average framerate instead.

7 years agoavconv: set output avg_frame_rate when known
Anton Khirnov [Sun, 11 May 2014 16:00:48 +0000 (18:00 +0200)]
avconv: set output avg_frame_rate when known

7 years agolavf: extend avg_frame_rate documentation.
Anton Khirnov [Sun, 11 May 2014 15:58:05 +0000 (17:58 +0200)]
lavf: extend avg_frame_rate documentation.

7 years agoavienc: sanitize variable naming in write_header()
Anton Khirnov [Sun, 11 May 2014 08:07:35 +0000 (10:07 +0200)]
avienc: sanitize variable naming in write_header()

Do not call an AVCodecContext 'stream', that is highly confusing.
Also, add a local variable for the current AVStream in the loop over all

7 years agoyop: only set extradata size after it has been successfully allocated
Anton Khirnov [Sat, 3 May 2014 08:48:03 +0000 (10:48 +0200)]
yop: only set extradata size after it has been successfully allocated

Do not leave a non-zero extradata_size set on failure

7 years agoyuv4mpegdec: do not set coded_frame properties
Anton Khirnov [Sat, 3 May 2014 09:08:25 +0000 (11:08 +0200)]
yuv4mpegdec: do not set coded_frame properties

coded_frame is not meant to be changed from outside of lavc, and is not
used for decoding.
Set AVCodecContext.field_order instead.

7 years agoyuv4mpeg: split the demuxer and muxer into separate files
Anton Khirnov [Sat, 3 May 2014 09:04:50 +0000 (11:04 +0200)]
yuv4mpeg: split the demuxer and muxer into separate files

7 years agoa64: check that extradata exists before reading from it
Anton Khirnov [Sat, 3 May 2014 08:44:17 +0000 (10:44 +0200)]
a64: check that extradata exists before reading from it

7 years agoa64: remove unneeded struct qualifier
Anton Khirnov [Sat, 3 May 2014 08:43:27 +0000 (10:43 +0200)]
a64: remove unneeded struct qualifier

7 years ago4xm: allocate extradata properly.
Anton Khirnov [Sat, 3 May 2014 06:50:41 +0000 (08:50 +0200)]
4xm: allocate extradata properly.

Pad it with the required amount of zeros, check for malloc failure.

7 years agolavc: add avcodec_free_context().
Anton Khirnov [Sat, 5 Apr 2014 06:36:00 +0000 (08:36 +0200)]
lavc: add avcodec_free_context().

Right now, the caller has to manually manage some allocated
AVCodecContext fields, like extradata or subtitle_header. This is
fragile and prone to leaks, especially if we want to add more such
fields in the future.

The only reason for this behaviour is so that the AVStream codec context
can be reused for decoding. Such reuse is discouraged anyway, so this
commit is the first step to deprecating it.

7 years agolavc: remove the locking code in avcodec_close()
Anton Khirnov [Sat, 5 Apr 2014 05:09:44 +0000 (07:09 +0200)]
lavc: remove the locking code in avcodec_close()

This function should not modify any global state, so there should be no
reason for any locking.

7 years agoriff: Pass block_align to estimate frame duration
nu774 [Fri, 16 May 2014 11:25:46 +0000 (20:25 +0900)]
riff: Pass block_align to estimate frame duration

Fix incorrect wSamplesPerBlock(=0) written for ADPCM_IMA_WAV

Signed-off-by: Luca Barbato <>
7 years agohlsenc: Set the default codecs to AAC and H264
Martin Storsjö [Thu, 15 May 2014 18:43:46 +0000 (21:43 +0300)]
hlsenc: Set the default codecs to AAC and H264

Most HLS implementation only support these codecs.

Signed-off-by: Martin Storsjö <>
7 years agobuild: Support building using clang-usan and disable-optimization
Katerina Barone-Adesi [Fri, 16 May 2014 16:07:34 +0000 (18:07 +0200)]
build: Support building using clang-usan and disable-optimization

Clang Undefined Behaviour Sanitizer seems to make non-constant constant
expressions, making the compilation fail when they are used within
inline assembly if no optimization is requested.

Add -O1 to the cflags to hide the misbehaviour.

Bug-Id: 683

7 years agoavisynth: set duration of audio streams
Hendrik Leppkes [Thu, 8 May 2014 13:51:15 +0000 (09:51 -0400)]
avisynth: set duration of audio streams

Signed-off-by: Anton Khirnov <>
7 years agoFATE/opus: increase fuzz for the celt tests
Anton Khirnov [Thu, 15 May 2014 06:02:59 +0000 (08:02 +0200)]
FATE/opus: increase fuzz for the celt tests

This seems to be needed on some 32bit arches.

7 years agoaarch64: opus NEON iMDCT and FFT
Janne Grunau [Mon, 28 Apr 2014 15:56:43 +0000 (17:56 +0200)]
aarch64: opus NEON iMDCT and FFT

Opus celt decoding 11% faster and the iMDCT over 2.5 times faster on
Apple's A7.

7 years agoconfigure: fix enable-libopus help string
Tristan Matthews [Wed, 14 May 2014 16:13:49 +0000 (16:13 +0000)]
configure: fix enable-libopus help string

7 years agobuild: add avresample after avcodec to FFLIBS
Janne Grunau [Thu, 15 May 2014 12:53:30 +0000 (14:53 +0200)]
build: add avresample after avcodec to FFLIBS

avcodec might depend on avresample and with --as-needed required symbols
might be get removed if avresample is linked before avcodec.
Fixes link failures of avprobe and avplay on aarch64 with

7 years agolavc: properly handle subtitle_header in avcodec_copy_context()
Anton Khirnov [Sat, 5 Apr 2014 05:40:49 +0000 (07:40 +0200)]
lavc: properly handle subtitle_header in avcodec_copy_context()

7 years agolavc: preserve the original private data in avcodec_copy_context()
Anton Khirnov [Sat, 5 Apr 2014 05:38:16 +0000 (07:38 +0200)]
lavc: preserve the original private data in avcodec_copy_context()

If a non-NULL codec was passed to avcodec_alloc_context3(), private data
will be already allocated in dest.

7 years agolavf: drop the zero-sized packets hack
Anton Khirnov [Thu, 1 May 2014 11:11:57 +0000 (13:11 +0200)]
lavf: drop the zero-sized packets hack

There should not be any valid reason anymore for passing completely
empty packets to lavf.
OTOH side data-only packets can be useful.

7 years agolavf: add AVFMT_FLAG_BITEXACT.
Anton Khirnov [Thu, 1 May 2014 08:43:10 +0000 (10:43 +0200)]

Use it instead of checking CODEC_FLAG_BITEXACT in the first stream's
codec context.

Using codec options inside lavf is fragile and can easily break when the
muxing codec context is not the encoding context.

7 years agolavc: add a native Opus decoder.
Anton Khirnov [Thu, 17 Apr 2014 10:51:03 +0000 (12:51 +0200)]
lavc: add a native Opus decoder.

Initial implementation by Andrew D'Addesio <> during
GSoC 2012.

Completion by Anton Khirnov <>, sponsored by the
Mozilla Corporation.

Further contributions by:
Christophe Gisquet <>
Janne Grunau <>
Luca Barbato <>

7 years agobuild: do not append $(FFLIBS-) to $(FFLIBS) if $(NAME) is not defined
Janne Grunau [Tue, 13 May 2014 22:05:27 +0000 (00:05 +0200)]
build: do not append $(FFLIBS-) to $(FFLIBS) if $(NAME) is not defined

Avoids including disabled library Makefiles.

7 years agolavf: properly document the distinction between flags and ctx_flags
Anton Khirnov [Thu, 1 May 2014 08:03:54 +0000 (10:03 +0200)]
lavf: properly document the distinction between flags and ctx_flags

7 years agobuild: handle library dependencies in configure
Janne Grunau [Thu, 1 May 2014 11:18:57 +0000 (13:18 +0200)]
build: handle library dependencies in configure

Instead of setting FFLIBS in each library Makefile configure
exports FFLIBS-$library in config.mak.

7 years agoaarch64: assembler in clang-3.4 ignores the division by two
Janne Grunau [Tue, 13 May 2014 13:47:51 +0000 (15:47 +0200)]
aarch64: assembler in clang-3.4 ignores the division by two

Values are positive powers of two, so just replace it with right shift.

7 years agoavconv: Support VDA hwaccel
Anton Khirnov [Mon, 24 Mar 2014 01:02:33 +0000 (02:02 +0100)]
avconv: Support VDA hwaccel

Signed-off-by: Luca Barbato <>
7 years agolavc: Add new VDA hwaccel
Anton Khirnov [Mon, 24 Mar 2014 00:59:02 +0000 (01:59 +0100)]
lavc: Add new VDA hwaccel

It leverages the new hwaccel 1.2 features:

- get_buffer2 is never called
- the internal context is automatically initialized/deinitialized

Signed-off-by: Luca Barbato <>
7 years agovda: use hwaccel private data for internal bitstream buffer
Anton Khirnov [Thu, 6 Mar 2014 18:02:29 +0000 (19:02 +0100)]
vda: use hwaccel private data for internal bitstream buffer

7 years agolavu: Add a pixel format for new VDA hwaccel
Anton Khirnov [Thu, 6 Mar 2014 13:07:42 +0000 (14:07 +0100)]
lavu: Add a pixel format for new VDA hwaccel

The current hwaccel is broken and cannot be fixed in a compatible
way. It will be deprecated and replaced with a new one.

7 years agolavc: Add hwaccel private data and init/uninit callbacks
Anton Khirnov [Thu, 6 Mar 2014 17:37:42 +0000 (18:37 +0100)]
lavc: Add hwaccel private data and init/uninit callbacks

7 years agohwaccel: Support specific frame allocators
Luca Barbato [Thu, 8 May 2014 12:43:23 +0000 (14:43 +0200)]
hwaccel: Support specific frame allocators

It would reduce the boilerplate code users have to write.

7 years agohwaccel: Rename priv_data_size to frame_priv_data_size
Anton Khirnov [Thu, 6 Mar 2014 17:19:52 +0000 (18:19 +0100)]
hwaccel: Rename priv_data_size to frame_priv_data_size

This describes more accurately what this field is for.

7 years agolavc: document which parts of AVHWAccel are private.
Anton Khirnov [Thu, 6 Mar 2014 17:15:31 +0000 (18:15 +0100)]
lavc: document which parts of AVHWAccel are private.

7 years agolavc: set AVCodecContext.hwaccel in ff_get_format()
Anton Khirnov [Thu, 6 Mar 2014 17:01:05 +0000 (18:01 +0100)]
lavc: set AVCodecContext.hwaccel in ff_get_format()

This way each decoder does not have to do the same thing manually.

7 years agolavc: Add an internal wrapper around get_format()
Anton Khirnov [Thu, 6 Mar 2014 16:48:18 +0000 (17:48 +0100)]
lavc: Add an internal wrapper around get_format()

It will be useful in the following commits.

7 years agopcm-dvd: Fix 20bit decoding
nu774 [Fri, 9 May 2014 12:47:41 +0000 (21:47 +0900)]
pcm-dvd: Fix 20bit decoding

Increment the pointer as needed.

Bug-Id: 592

Signed-off-by: Luca Barbato <>
7 years agortmpproto: Check the buffer sizes when copying app/playpath strings
Martin Storsjö [Thu, 8 May 2014 12:12:23 +0000 (15:12 +0300)]
rtmpproto: Check the buffer sizes when copying app/playpath strings

As pointed out by Reimar Döffinger.

Signed-off-by: Martin Storsjö <>
7 years agortmpproto: Support alternative slist parameter in rtmp URLs
Uwe L. Korn [Mon, 5 May 2014 20:47:05 +0000 (21:47 +0100)]
rtmpproto: Support alternative slist parameter in rtmp URLs

Support the URL scheme where the playpath is in an RTMP URL is
passed as the slist argument and the app is given infront of the
query part of the URL:


(other arguments in the query part are stripped as they are not used)

Signed-off-by: Martin Storsjö <>
7 years agolibfdk-aac: Relicense the library wrappers to 2-clause BSD
Martin Storsjö [Wed, 30 Apr 2014 06:44:31 +0000 (09:44 +0300)]
libfdk-aac: Relicense the library wrappers to 2-clause BSD

This should make it possible for Fraunhofer to contribute to these
wrappers - they didn't want to contribute to code under LGPL2.1 with
the "or any later version" clause (which allowed using the code
under the LGPL3 license).

Signed-off-by: Martin Storsjö <>
7 years agolibfdk-aacenc: Enable 7.1 channel encoding
Jean First [Sun, 26 Jan 2014 00:31:53 +0000 (01:31 +0100)]
libfdk-aacenc: Enable 7.1 channel encoding

7.1(wide) and 7.1(wide-side) channel layouts are supported in
fdk-aac since the 0.1.3 release.

The earlier versions of fdk-aac didn't include any library
version defines in the public headers, thus checking for
the AACENCODER_LIB_VL0 define is enough to know that we're
building against a new enough version of fdk-aac.

This change includes contributions by Tim Walker,
Michael Niedermayer and Timothy Gu.

Signed-off-by: Martin Storsjö <>
7 years agoavconv: rename OutputStream.opts to OutputStream.encoder_opts
Anton Khirnov [Fri, 4 Apr 2014 17:38:04 +0000 (19:38 +0200)]
avconv: rename OutputStream.opts to OutputStream.encoder_opts

This makes it more clear what is this variable for exactly.