6 years agofate: Avoid unnecessary pixel format conversions
Martin Storsjö [Tue, 30 Jun 2015 19:35:44 +0000 (22:35 +0300)]
fate: Avoid unnecessary pixel format conversions

Most of the fate-dds-* and fate-txd-* tests already
output into the same pixel format regardless of
platform endianness, so there's no need to force
conversion to another format.

This fixes the tests fate-txd-16bpp, fate-txd-odd,
fate-dds-rgb16, fate-dds-rgb24 and fate-dds-xrgb on
big endian, where the tests seem to fail due to issues
with certain conversion codepaths in swscale.

Those conversion codepaths should of course be fixed, but
the individual decoder tests should use as little extra
conversion steps as possible.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agoh264: Parse registered data SEI message and AFD value
Vittorio Giovara [Sun, 28 Jun 2015 10:13:05 +0000 (12:13 +0200)]
h264: Parse registered data SEI message and AFD value

Partially based on code by Marton Balint and Kieran Kunhya.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
6 years agoh264_sei: Group error check outside the switch block
Vittorio Giovara [Sun, 28 Jun 2015 00:05:04 +0000 (02:05 +0200)]
h264_sei: Group error check outside the switch block

6 years agoh263: Always check both dimensions
Luca Barbato [Fri, 26 Jun 2015 13:57:16 +0000 (15:57 +0200)]
h263: Always check both dimensions

CC: libav-stable@libav.org
Found-By: ago@gentoo.org
6 years agocosmetic: Reformat ff_h263_decode_mba
Luca Barbato [Fri, 26 Jun 2015 13:57:15 +0000 (15:57 +0200)]
cosmetic: Reformat ff_h263_decode_mba

6 years agomov: Preserve the metadata even when bit-exactness is requested
Luca Barbato [Mon, 15 Jun 2015 18:40:46 +0000 (20:40 +0200)]
mov: Preserve the metadata even when bit-exactness is requested

Make sure to not write the custom `encoder` string in that case.

Bug-Id: 845
CC: libav-stable@libav.org
6 years agoaic: Fix slice size computation for widths multiples of 32 macroblocks
Vittorio Giovara [Sun, 28 Jun 2015 08:50:42 +0000 (10:50 +0200)]
aic: Fix slice size computation for widths multiples of 32 macroblocks

CC: libav-stable@libav.org
6 years agoh264: Allow stream and container cropping at the same time
Vittorio Giovara [Sun, 8 Mar 2015 04:06:32 +0000 (04:06 +0000)]
h264: Allow stream and container cropping at the same time

The container cropping is applied only when difference is within 16
pixels, and the smallest value between the two is chosen.

Bug-Id: 383
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
6 years agofate: Update ac3 test to the new request_channel_layout option
Vittorio Giovara [Sat, 27 Jun 2015 21:36:33 +0000 (23:36 +0200)]
fate: Update ac3 test to the new request_channel_layout option

6 years agompegts: Add jpeg2000 stream type
John Högberg [Mon, 29 Jun 2015 12:57:20 +0000 (14:57 +0200)]
mpegts: Add jpeg2000 stream type

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
6 years agoriff: Validate the wav header size before trying to parse it
Luca Barbato [Sun, 28 Jun 2015 15:32:40 +0000 (17:32 +0200)]
riff: Validate the wav header size before trying to parse it

6 years agoasf: Do not skip data streams
Luca Barbato [Sun, 28 Jun 2015 15:03:02 +0000 (17:03 +0200)]
asf: Do not skip data streams

6 years agompjpeg: Check stream allocation
Luca Barbato [Sat, 27 Jun 2015 21:19:36 +0000 (23:19 +0200)]
mpjpeg: Check stream allocation

Bug-Id: CID 1308152

6 years agolavf: Replace the ASF demuxer
Alexandra Hájková [Mon, 15 Jun 2015 12:54:45 +0000 (14:54 +0200)]
lavf: Replace the ASF demuxer

The old one is the result of the reverse engineering and guesswork.
The new one has been written following the now-available specification.

This work is part of Outreach Program for Women Summer 2014 activities
for the Libav project.

The fate references had to be changed because the old demuxer truncates
the last frame in some cases, the new one handles it properly.
The seek-test reference is changed because seeking works differently
in the new demuxer. When seeking, the packet is not read from the stream
directly, but it is rather constructed by the demuxer. That is why
position is -1 now in the reference.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
6 years agoFATE: drop the last truncated frame from the wmapro tests
Anton Khirnov [Sat, 27 Jun 2015 09:46:35 +0000 (11:46 +0200)]
FATE: drop the last truncated frame from the wmapro tests

Since it's truncated, the result depends on how specifically the demuxer
and the decoder handle errors.

6 years agoFATE: drop the last truncated frame from the wma lossless test
Anton Khirnov [Sat, 27 Jun 2015 09:46:35 +0000 (11:46 +0200)]
FATE: drop the last truncated frame from the wma lossless test

Since it's truncated, the result depends on how specifically the demuxer
and the decoder handle errors.

6 years agoh264: do not update the context fields copied between threads after finish_setup()
Anton Khirnov [Sat, 9 May 2015 19:54:47 +0000 (21:54 +0200)]
h264: do not update the context fields copied between threads after finish_setup()

Should fix a large number of possible races with frame threading.

6 years agoh264: make sure the current picture is not made a long ref multiple times
Anton Khirnov [Fri, 8 May 2015 17:07:10 +0000 (19:07 +0200)]
h264: make sure the current picture is not made a long ref multiple times

Fixes possible invalid reads, once one of those refs is freed, but the
others remain.
CC: libav-stable@libav.org
6 years agoavconv: do not stop processing the input packet on decoding error
Anton Khirnov [Wed, 6 May 2015 11:55:38 +0000 (13:55 +0200)]
avconv: do not stop processing the input packet on decoding error

We still want to flush the filters on EOF and possibly apply streamcopy.

6 years agoavconv: factor out flushing the filters
Anton Khirnov [Wed, 6 May 2015 11:51:43 +0000 (13:51 +0200)]
avconv: factor out flushing the filters

This also ensures this is always done, avoiding infinite loops if an
error occurs at the end of the input.

6 years agoh264: make sure the slices do not overlap during slice threading
Anton Khirnov [Wed, 6 May 2015 09:12:55 +0000 (11:12 +0200)]
h264: make sure the slices do not overlap during slice threading

Based on a patch by Michael Niedermayer <michaelni@gmx.at>.
CC: libav-stable@libav.org
Found-by: Kieran Kunhya <kierank@obe.tv>
6 years agoconfigure: Check for x265_api_get
Derek Buitenhuis [Fri, 26 Jun 2015 13:05:00 +0000 (14:05 +0100)]
configure: Check for x265_api_get

Any other x265 symbol may not exported, e.g. if the build is a
multilib (10-bit and 8-bit in one) build.

This is the only symbol we directly call, and is available in the
build number we check for.

Fixes the configure check on multilib x265 builds.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
6 years agonvenc: Fix NV12 input
Luca Barbato [Thu, 25 Jun 2015 23:08:42 +0000 (02:08 +0300)]
nvenc: Fix NV12 input

6 years agovc1dec: use get_bits_long and limit the read bits to 32
Andreas Cadhalpun [Thu, 25 Jun 2015 20:54:17 +0000 (22:54 +0200)]
vc1dec: use get_bits_long and limit the read bits to 32

get_bits should not be used with more than 25 bits.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
6 years agoTextureDSP: fix erroneous condition which produced blocky output for DXT
Tom Butterworth [Tue, 23 Jun 2015 16:40:11 +0000 (17:40 +0100)]
TextureDSP: fix erroneous condition which produced blocky output for DXT

6 years agodds: Fix palette mode on big endian
Luca Barbato [Tue, 23 Jun 2015 12:48:10 +0000 (13:48 +0100)]
dds: Fix palette mode on big endian

Found-By: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
6 years agosegafilm: Remove deplanarization hack
Paul B Mahol [Tue, 23 Jun 2015 12:48:08 +0000 (13:48 +0100)]
segafilm: Remove deplanarization hack

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
6 years agoPCM signed 16-bit big-endian planar decoder
Paul B Mahol [Tue, 23 Jun 2015 12:48:07 +0000 (13:48 +0100)]
PCM signed 16-bit big-endian planar decoder

Signed-off-by: Paul B Mahol <onemda@gmail.com>
6 years agolibvpx: fix test for VPX_IMAGE_ABI_VERSION
Janne Grunau [Wed, 24 Jun 2015 06:39:40 +0000 (08:39 +0200)]
libvpx: fix test for VPX_IMAGE_ABI_VERSION

6 years agoFix missing symbols when libvpx has only vp8 enabled
Mark Webster [Wed, 24 Jun 2015 05:14:50 +0000 (06:14 +0100)]
Fix missing symbols when libvpx has only vp8 enabled

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
6 years agoarm64: constify src in h264qpel dsp function definitions
Janne Grunau [Sun, 14 Jun 2015 18:53:56 +0000 (20:53 +0200)]
arm64: constify src in h264qpel dsp function definitions

6 years agoDirectDraw Surface image decoder
Vittorio Giovara [Tue, 26 May 2015 23:30:51 +0000 (00:30 +0100)]
DirectDraw Surface image decoder

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
6 years agoHap decoder and encoder
Vittorio Giovara [Sat, 25 Apr 2015 22:58:57 +0000 (23:58 +0100)]
Hap decoder and encoder

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
6 years agotxd: Use the TextureDSP module for decoding
Vittorio Giovara [Tue, 19 May 2015 22:54:16 +0000 (23:54 +0100)]
txd: Use the TextureDSP module for decoding

Using the internal DXTC routines brings support for non multiple of 4
textures. A new test is added to cover this feature. Hashes differ
since the decoding algorithm is different, though no visual changes
have been spotted.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
6 years agoIntroduce a TextureDSP module
Vittorio Giovara [Tue, 19 May 2015 23:01:37 +0000 (00:01 +0100)]
Introduce a TextureDSP module

This module implements generic texture decompression from different
families (DXTC, RGTC, BCn) and texture compression DXTC 1, 3, and 5.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
6 years agoImplement Snappy decompression
Luca Barbato [Sun, 24 May 2015 14:20:26 +0000 (16:20 +0200)]
Implement Snappy decompression

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
6 years agoudp: Fix local_port management
Luca Barbato [Sun, 29 Mar 2015 13:19:35 +0000 (15:19 +0200)]
udp: Fix local_port management

The default value for unset is -1, not 0.

Problem introduced in 66028b7ba6b411ba12ef553e9c8f1f4a4fe27710

6 years agolibvpx: Support the vp9 extended profiles
Luca Barbato [Thu, 11 Jun 2015 14:56:31 +0000 (16:56 +0200)]
libvpx: Support the vp9 extended profiles

Bump the minimum libvpx version to 1.3.0 and rework the configure logic
to fail only if no decoders and encoders are found.

Based on the original patch from Vittorio.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
6 years agolibvpx: Do not set vp8 only parameters when encoding in vp9
Luca Barbato [Tue, 16 Jun 2015 01:48:00 +0000 (03:48 +0200)]
libvpx: Do not set vp8 only parameters when encoding in vp9

6 years agoaf_resample: Set the number of samples in the last frame
Luca Barbato [Fri, 1 Aug 2014 23:58:07 +0000 (01:58 +0200)]
af_resample: Set the number of samples in the last frame

Otherwise trailing zeroes would appear.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
6 years agomp3: enable packed main_data decoding in MP4
nu774 [Fri, 9 May 2014 14:05:42 +0000 (23:05 +0900)]
mp3: enable packed main_data decoding in MP4

14496-3 suggests packing main_data of MP3 that is usually scattered
into multiple frames due to bit reservoir.

However, after packing main_data into a access unit, bitrate index
in the MPEG audio frame header doesn't match with actual frame size.

In order to accept this, this patch removes unnecessary frame size
checking on mp3 decoder.

Also, mov demuxer was changed to use MP3 parser only on special cases
(QT MOV with specific sample description) to avoid re-packetizing.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
6 years agolibwebpenc: use WebPMemoryWriterClear()
James Almer [Tue, 16 Jun 2015 16:27:20 +0000 (17:27 +0100)]
libwebpenc: use WebPMemoryWriterClear()

WebPMemoryWriterClear() must be used instead of free() when
libwebp ABI version is > 0x0203.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
6 years agoaic: Improve error reporting
Vittorio Giovara [Mon, 15 Jun 2015 17:27:53 +0000 (18:27 +0100)]
aic: Improve error reporting

6 years agoh264: er: Copy from the previous reference only if compatible
Andreas Cadhalpun [Sun, 14 Jun 2015 10:40:18 +0000 (12:40 +0200)]
h264: er: Copy from the previous reference only if compatible

Also use the frame pixel format instead of the one from the codec
context, which is more robust.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
6 years agolavc: Clarify the behaviour of dimension and format context fields
Luca Barbato [Sun, 14 Jun 2015 09:45:54 +0000 (11:45 +0200)]
lavc: Clarify the behaviour of dimension and format context fields

The AVCodecContext width, height, coded_width, coded_height and format
are used mainly as decoding hints and they get internally overwritten
during the data parsing stage.

Do not assume they match the last AVFrame provided by
avcodec_decode_video2 and assimilated functions since multi-threading
and other frame reordering might make those values to refer to frames
that will be outputted in the future.

CC: libav-stable@libav.org
6 years agox264: Factor out the reconfiguration code
Luca Barbato [Thu, 11 Jun 2015 22:08:49 +0000 (00:08 +0200)]
x264: Factor out the reconfiguration code

6 years agonut: Drop doxygen markers
Luca Barbato [Thu, 11 Jun 2015 00:40:34 +0000 (02:40 +0200)]
nut: Drop doxygen markers

6 years agoriff: Add MNM4 FourCC as mpeg4
Vittorio Giovara [Fri, 12 Jun 2015 18:12:05 +0000 (19:12 +0100)]
riff: Add MNM4 FourCC as mpeg4

6 years agotls_gnutls: fix hang on disconnection
wm4 [Sun, 14 Jun 2015 15:12:53 +0000 (17:12 +0200)]
tls_gnutls: fix hang on disconnection

GNUTLS_SHUT_RDWR means GnuTLS will keep waiting for the server's
termination reply. But since we don't shutdown the TCP connection at
this point yet, GnuTLS will just keep skipping actual data from the
server, which basically is perceived as hang.

Use GNUTLS_SHUT_WR instead, which doesn't have this problem.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agofft-test: Use the float fabs() version
Vittorio Giovara [Fri, 12 Jun 2015 16:04:20 +0000 (17:04 +0100)]
fft-test: Use the float fabs() version

Fixes clang warning "absolute value function 'fabsf' given an argument
of type 'double' but has parameter of type 'float' which may cause
truncation of value [-Wabsolute-value]".

6 years agoon2avc: Use the integer abs() version
Vittorio Giovara [Fri, 12 Jun 2015 11:32:38 +0000 (12:32 +0100)]
on2avc: Use the integer abs() version

Fixes clang warning "floating point absolute value function 'fabsf'
when argument is of integer type [-Wabsolute-value]".

6 years agoflv: Name an enum and use its type
Vittorio Giovara [Thu, 11 Jun 2015 13:27:27 +0000 (14:27 +0100)]
flv: Name an enum and use its type

6 years agocws2fws: Close file handles on error
Vittorio Giovara [Fri, 12 Jun 2015 13:01:22 +0000 (14:01 +0100)]
cws2fws: Close file handles on error

Reported-By: infer
6 years agoavconv_opt: Check localtime() return value
Vittorio Giovara [Fri, 12 Jun 2015 12:39:17 +0000 (13:39 +0100)]
avconv_opt: Check localtime() return value

Reported-By: infer
6 years agosegment: Check open_null_ctx() return value
Vittorio Giovara [Fri, 12 Jun 2015 12:39:16 +0000 (13:39 +0100)]
segment: Check open_null_ctx() return value

Reported-By: infer
6 years agoh264_qpel: Use the correct header
Vittorio Giovara [Fri, 12 Jun 2015 11:29:07 +0000 (12:29 +0100)]
h264_qpel: Use the correct header

6 years agoh264_weight: Fix SSSE3 biweight code with weights of 128
Michael Niedermayer [Fri, 12 Jun 2015 11:58:42 +0000 (12:58 +0100)]
h264_weight: Fix SSSE3 biweight code with weights of 128

CC: libav-stable@libav.org
Sample-Id: test_bref.mp4

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
6 years agoeamad: Use the correct headers
Luca Barbato [Wed, 10 Jun 2015 13:29:09 +0000 (14:29 +0100)]
eamad: Use the correct headers

Untangle eamad from the mpeg12.h header and speed up rebuilding.

6 years agompeg12: Move the vlc bits to a stand alone file
Luca Barbato [Wed, 10 Jun 2015 13:29:08 +0000 (14:29 +0100)]
mpeg12: Move the vlc bits to a stand alone file

6 years agompegvideo: Expand macro
Vittorio Giovara [Wed, 10 Jun 2015 13:29:07 +0000 (14:29 +0100)]
mpegvideo: Expand macro

Having this macro in an header only facilitates the use of such header.
The code increase is minimal and files have one less dependency
on mpegvideo.h.

6 years agompegvideo: rv10: Move function declaration to a separate header
Vittorio Giovara [Wed, 10 Jun 2015 13:29:06 +0000 (14:29 +0100)]
mpegvideo: rv10: Move function declaration to a separate header

6 years agompegvideo: h263: Move all tables to a single file
Vittorio Giovara [Wed, 10 Jun 2015 13:29:05 +0000 (14:29 +0100)]
mpegvideo: h263: Move all tables to a single file

6 years agompegvideo: Move ER functions to a separate file
Vittorio Giovara [Wed, 10 Jun 2015 13:29:04 +0000 (14:29 +0100)]
mpegvideo: Move ER functions to a separate file

6 years agompegvideo: Mark one function as static
Vittorio Giovara [Mon, 8 Jun 2015 12:00:52 +0000 (13:00 +0100)]
mpegvideo: Mark one function as static

6 years agompegvideo: Move block permutation function where is used
Vittorio Giovara [Mon, 8 Jun 2015 12:00:51 +0000 (13:00 +0100)]
mpegvideo: Move block permutation function where is used

Mark it as static.

6 years agompegvideo: Drop release_unused_pictures() function
Vittorio Giovara [Mon, 8 Jun 2015 12:00:50 +0000 (13:00 +0100)]
mpegvideo: Drop release_unused_pictures() function

It is only used in one place, and it is small enough that it might be
called directly.

6 years agompegvideo: Move Picture-related functions to a separate file
Vittorio Giovara [Mon, 8 Jun 2015 12:00:49 +0000 (13:00 +0100)]
mpegvideo: Move Picture-related functions to a separate file

6 years agomovenc: fixes a questionable valgrind uninitialized value warning
Janne Grunau [Tue, 9 Jun 2015 10:27:47 +0000 (12:27 +0200)]
movenc: fixes a questionable valgrind uninitialized value warning

display_matrix_size is only initialized when av_stream_get_side_data()
returns a side data pointer. The code is safe since the only effect this
has is setting the display_matrix pointer to NULL which it was already

6 years agomkv: Correctly report the latest packet had been flushed
Luca Barbato [Tue, 9 Jun 2015 08:47:11 +0000 (10:47 +0200)]
mkv: Correctly report the latest packet had been flushed

Bug-Id: 865
CC: libav-stable@libav.org
6 years agompjpegdec: don't try to alloc an AVIOContext when probe is guaranteed to fail
James Almer [Mon, 8 Jun 2015 20:19:25 +0000 (17:19 -0300)]
mpjpegdec: don't try to alloc an AVIOContext when probe is guaranteed to fail

The first check is done without the AVIOContext, so alloc it only if said check succeeds

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
6 years agoimc: add required padding for GetBitContext buffer
Janne Grunau [Mon, 8 Jun 2015 12:48:54 +0000 (14:48 +0200)]
imc: add required padding for GetBitContext buffer

Fixes stack buffer overflow errors detected by address sanitizer in

CC: libav-stable@libav.org
6 years agoac3_parser: add required padding for GetBitContext buffer
Janne Grunau [Mon, 8 Jun 2015 12:48:26 +0000 (14:48 +0200)]
ac3_parser: add required padding for GetBitContext buffer

Fixes stack buffer overflow errors detected by address sanitizer in
various fate tests.

CC: libav-stable@libav.org
6 years agoaac_parser: add required padding for GetBitContext buffer
Janne Grunau [Mon, 8 Jun 2015 12:45:12 +0000 (14:45 +0200)]
aac_parser: add required padding for GetBitContext buffer

Fixes stack buffer overflow errors detected by address sanitizer in
various fate tests.

CC: libav-stable@libav.org
6 years agortpdec_asf: Check memory allocation and free memory on error
Vittorio Giovara [Wed, 3 Jun 2015 13:16:50 +0000 (14:16 +0100)]
rtpdec_asf: Check memory allocation and free memory on error

CC: libav-stable@libav.org
Bug-Id: CID 1257774

6 years agomov: Check memory allocation
Vittorio Giovara [Wed, 3 Jun 2015 13:16:49 +0000 (14:16 +0100)]
mov: Check memory allocation

CC: libav-stable@libav.org
Bug-Id: CID 1292518

6 years agojack: Check memory allocation
Vittorio Giovara [Wed, 3 Jun 2015 13:16:48 +0000 (14:16 +0100)]
jack: Check memory allocation

CC: libav-stable@libav.org
Bug-Id: CID 1292520

6 years agoaudiointerleave: Always initialize new_pkt
Vittorio Giovara [Wed, 3 Jun 2015 13:16:47 +0000 (14:16 +0100)]
audiointerleave: Always initialize new_pkt

CC: libav-stable@libav.org
Bug-Id: CID 609333

6 years agosctp: Always initialize outmsg struct
Vittorio Giovara [Wed, 3 Jun 2015 13:16:45 +0000 (14:16 +0100)]
sctp: Always initialize outmsg struct

CC: libav-stable@libav.org
Bug-Id: CID 1302711

6 years agompjpgdec: free AVIOContext leak on early probe fail
Janne Grunau [Mon, 8 Jun 2015 11:31:04 +0000 (13:31 +0200)]
mpjpgdec: free AVIOContext leak on early probe fail

6 years agompegvideo: Move OutFormat enum to mpegutils.h
Vittorio Giovara [Sun, 31 May 2015 13:49:55 +0000 (15:49 +0200)]
mpegvideo: Move OutFormat enum to mpegutils.h

It is necessary to avoid circular header dependencies.

6 years agompegvideo: Split picture allocation for encoding and decoding
Vittorio Giovara [Sun, 31 May 2015 13:49:54 +0000 (15:49 +0200)]
mpegvideo: Split picture allocation for encoding and decoding

The main ff_alloc_picture() function is made more generic with all the
parameters necessary as arguments. This will allows to move most of the
related functions to a separate file later.

Right now wrappers are provided to try and minimize the number of
changes in the code.

6 years agompegvideo: Rework frame_size_alloc function
Vittorio Giovara [Sun, 31 May 2015 13:49:53 +0000 (15:49 +0200)]
mpegvideo: Rework frame_size_alloc function

Use more generic arguments and remove its static attribute since it will
be moved to a separate file.

6 years agompegvideo: Move various temporary buffers to a separate context
Vittorio Giovara [Sun, 31 May 2015 13:49:52 +0000 (15:49 +0200)]
mpegvideo: Move various temporary buffers to a separate context

6 years agoconfigure: Support MSVC 2015
Luca Barbato [Fri, 5 Jun 2015 13:07:06 +0000 (15:07 +0200)]
configure: Support MSVC 2015

The C runtime C99 compatibility had been improved a lot and it now
rejects some of the compatibility defines provided for the older

Many thanks to Ray for the time spent testing.

Bug-Id: 864
CC: libav-stable@libav.org
6 years agoaac: Wait to know the channels before allocating frame
Luca Barbato [Thu, 4 Jun 2015 08:19:50 +0000 (10:19 +0200)]
aac: Wait to know the channels before allocating frame

The channel configuration can be delivered only by the PCE,
try to parse it first and not try to decode until a channel
configuration is set.

CC: libav-stable@libav.org
6 years agoaac: Support channel configurations 11 and 12
Sebastian Dröge [Thu, 4 Jun 2015 13:35:51 +0000 (15:35 +0200)]
aac: Support channel configurations 11 and 12

These are defined in ISO/IEC 14496-3:2009/PDAM 4 for 6.1 and 7.1.
It also defines another 7.1 layout with configuration 14, that one
is not added here for now.

11: 3/3.1    FC FL+FR BL+BR BC LFE
12: 3/2/2.1  FC FL+FR SiL+SiR BL+BR LFE

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
6 years agoaac: correctly map 7.1ch-wide AAC from FDK AAC encoder
nu774 [Thu, 4 Jun 2015 05:42:08 +0000 (14:42 +0900)]
aac: correctly map 7.1ch-wide AAC from FDK AAC encoder

FDK AAC encoder outputs SCE(front)+CPE(front)+CPE(back)+CPE(back) on
MODE_7_1_REAR_SURROUND configuration.
Since decoder couldn't properly map 4 back channels, decoding failed
unless -request_channel_layout 0x8000000000000000 has been specified.
Now we treat first CPE(back) as CPE(side) on channel mapping.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
6 years agoavio: Add avio_put_str16be
Luca Barbato [Fri, 5 Jun 2015 21:21:18 +0000 (23:21 +0200)]
avio: Add avio_put_str16be

6 years agompjpeg: Initial implementation
Luca Barbato [Sat, 16 May 2015 15:03:28 +0000 (17:03 +0200)]
mpjpeg: Initial implementation

Support only streams with Content-Length.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
6 years agoaac: Correctly map multichannel ADTS AAC with non-zero channel_config + PCE
nu774 [Wed, 3 Jun 2015 05:01:32 +0000 (14:01 +0900)]
aac: Correctly map multichannel ADTS AAC with non-zero channel_config + PCE

The decoder assigns channels using default channel configuration
for 5.1ch when it parses an ADTS frame header using consecutive
channel ids.

When a PCE comes, it reassigns channels using PCE configuration
using directly the ids provided. They can be arbitrary.

Always use consecutive channel ids to avoid decoding glitches due
spurious reconfigurations due the channel ids mismatch between the
two otherwise-identical channel maps.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
6 years agobink: Factorize bink put_pixel
Luca Barbato [Wed, 3 Jun 2015 00:09:31 +0000 (02:09 +0200)]
bink: Factorize bink put_pixel

And make sure to check INTER_BLOCK as had been fixed by Michael

Reported-By: Andreas Cadhalpun
CC: libav-stable@libav.org
6 years agoconfigure: Check for DXVA2_ConfigPictureDecode instead of LPDIRECT3DSURFACE9
Martin Storsjö [Tue, 2 Jun 2015 07:15:57 +0000 (10:15 +0300)]
configure: Check for DXVA2_ConfigPictureDecode instead of LPDIRECT3DSURFACE9

Checking this struct is a bit more natural for this dependency.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agoconfigure: Remove unnecessary tests for d3d11va
Martin Storsjö [Tue, 2 Jun 2015 07:12:51 +0000 (10:12 +0300)]
configure: Remove unnecessary tests for d3d11va

These are only necessary once/if avconv gets support for this hwaccel.
While that obviously is desireable, we don't have it yet, and they
currently only are a distraction.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agoconfigure: Don't run "export $e" for an empty string
Martin Storsjö [Tue, 2 Jun 2015 19:55:52 +0000 (22:55 +0300)]
configure: Don't run "export $e" for an empty string

This fixes the side effect of printing the whole environment,
if no --env parameter was provided.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agoconfigure: don't enable tls protocols if network is disabled
James Almer [Tue, 2 Jun 2015 16:24:21 +0000 (13:24 -0300)]
configure: don't enable tls protocols if network is disabled

This was a regression introduced with d8ffb2055f0e0fcb5d025bab72eb19c2a886c125.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agoconfigure: Use pkg-config for fdk-aac
Luca Barbato [Sun, 10 May 2015 18:52:30 +0000 (20:52 +0200)]
configure: Use pkg-config for fdk-aac

Makes the life of the people already setting PKG_CONFIG_PATH simpler.

6 years agoconfigure: Provide an option to override the environment
Luca Barbato [Wed, 6 May 2015 11:37:31 +0000 (13:37 +0200)]
configure: Provide an option to override the environment

Useful to have `make config` work with custom pkgconf path.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
6 years agoconfigure: Support the extended pkgconf syntax
Luca Barbato [Sun, 31 May 2015 14:47:46 +0000 (16:47 +0200)]
configure: Support the extended pkgconf syntax

Make possible to require a combination of
packages and/or pin specific versions.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
6 years agoconfigure: Remove some unnecessary exported config items
Martin Storsjö [Mon, 1 Jun 2015 10:46:40 +0000 (13:46 +0300)]
configure: Remove some unnecessary exported config items

The only need to be listed if they are to be used in ifdefs from
within the code - config items used as dependencies only within
configure don't need to be exported.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agoconfigure: Require LPDIRECT3DSURFACE9 for dxva2
Martin Storsjö [Mon, 1 Jun 2015 09:06:08 +0000 (12:06 +0300)]
configure: Require LPDIRECT3DSURFACE9 for dxva2

This fixes dxva2 detection (i.e. correctly realizes that it isn't
available) for WinRT, where dxva2api.h does exist, but these definitions
are omitted (when targeting the API subsets).

Ideally we should rather check for e.g. DXVA2_ConfigPictureDecode,
but configure might fail to find that definition due to _WIN32_WINNT
not being set to the right value during configure. (libavcodec/dxva2.h
manually overrides the _WIN32_WINNT define.)

This allows removing hardcoded --disable-dxva2 from such build

Signed-off-by: Martin Storsjö <martin@martin.st>