7 years agodsputil: Move MMX/SSE2-optimized IDCT bits to the x86 subdirectory
Diego Biurrun [Thu, 23 Jan 2014 16:25:16 +0000 (17:25 +0100)]
dsputil: Move MMX/SSE2-optimized IDCT bits to the x86 subdirectory

7 years agofate: Add dependencies for dct/fft/mdct/rdft tests
Diego Biurrun [Thu, 26 Jun 2014 00:09:13 +0000 (17:09 -0700)]
fate: Add dependencies for dct/fft/mdct/rdft tests

7 years agoindeo4: B-frames decoding
Dirk Ausserhaus [Sun, 8 Jun 2014 11:44:17 +0000 (13:44 +0200)]
indeo4: B-frames decoding

Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
7 years agoindeo2: rename stride to pitch for consistency with other Indeo decoders
Kostya Shishkov [Wed, 25 Jun 2014 18:28:22 +0000 (20:28 +0200)]
indeo2: rename stride to pitch for consistency with other Indeo decoders

7 years agooutput example: free the muxing format context properly
Anton Khirnov [Tue, 24 Jun 2014 09:10:57 +0000 (11:10 +0200)]
output example: free the muxing format context properly

7 years agooutput example: rewrite encoding logic
Anton Khirnov [Tue, 24 Jun 2014 08:52:26 +0000 (10:52 +0200)]
output example: rewrite encoding logic

Properly generate pts for the frames sent to the encoder, avoid
using private and deprecated AVStream.pts.

7 years agooutput example: store the scaling context in the stream context
Anton Khirnov [Tue, 24 Jun 2014 08:21:07 +0000 (10:21 +0200)]
output example: store the scaling context in the stream context

7 years agooutput example: use a macro instead of a static variable
Anton Khirnov [Tue, 24 Jun 2014 07:28:41 +0000 (09:28 +0200)]
output example: use a macro instead of a static variable

7 years agooutput example: allocate the audio frame only once
Anton Khirnov [Tue, 24 Jun 2014 07:02:25 +0000 (09:02 +0200)]
output example: allocate the audio frame only once

7 years agooutput example: use OutputStream for audio streams as well
Anton Khirnov [Tue, 24 Jun 2014 06:56:27 +0000 (08:56 +0200)]
output example: use OutputStream for audio streams as well

7 years agooutput example: use the new AVFrame API to allocate audio frames
Anton Khirnov [Tue, 24 Jun 2014 05:51:18 +0000 (07:51 +0200)]
output example: use the new AVFrame API to allocate audio frames

7 years agooutput example: set output channel layout
Anton Khirnov [Mon, 23 Jun 2014 19:38:37 +0000 (21:38 +0200)]
output example: set output channel layout

7 years agooutput example: use a struct to bundle the video stream variables together
Anton Khirnov [Sat, 21 Jun 2014 15:17:40 +0000 (17:17 +0200)]
output example: use a struct to bundle the video stream variables together

7 years agooutput example: use the new AVFrame API for allocating the video frame
Anton Khirnov [Mon, 16 Jun 2014 11:20:51 +0000 (13:20 +0200)]
output example: use the new AVFrame API for allocating the video frame

7 years agodump_stream: print the timebase as is, do not reduce it
Anton Khirnov [Tue, 24 Jun 2014 05:39:35 +0000 (07:39 +0200)]
dump_stream: print the timebase as is, do not reduce it

It makes more sense to print the timebase exactly as it is set. Also,
this avoids a divide by zero when av_dump_format() is called on a format
context before writing the header.

7 years agolavc: do not allocate edges in the default get_buffer2()
Anton Khirnov [Fri, 20 Dec 2013 15:00:07 +0000 (16:00 +0100)]
lavc: do not allocate edges in the default get_buffer2()

7 years agohevc: remove unused array min_cb_addr_zs
Gildas Cocherel [Wed, 25 Jun 2014 19:08:12 +0000 (21:08 +0200)]
hevc: remove unused array min_cb_addr_zs

Signed-off-by: Anton Khirnov <anton@khirnov.net>
7 years agohevc: Allow out of bound values for num_reorder_pics
Kieran Kunhya [Sun, 15 Jun 2014 21:44:15 +0000 (23:44 +0200)]
hevc: Allow out of bound values for num_reorder_pics

This fixes decoding for a sample that cannot be shared

Signed-off-by: Anton Khirnov <anton@khirnov.net>
7 years agodv: Replace a magic number by sizeof()
Diego Biurrun [Fri, 7 Feb 2014 09:42:35 +0000 (10:42 +0100)]
dv: Replace a magic number by sizeof()

7 years agox86: h264dsp: Fix link failure with optimizations disabled
Diego Biurrun [Wed, 25 Jun 2014 11:35:30 +0000 (04:35 -0700)]
x86: h264dsp: Fix link failure with optimizations disabled

With optimzations disabled compilers have trouble doing dead code
elimination on 'if (foo && 0)' expressions, while 'if (0 && foo)'
still works, so use the latter to avoid problems.

Bug-Id: 707

7 years agomjpegdec: Properly set the context colorspace info
Derek Buitenhuis [Tue, 24 Jun 2014 16:38:54 +0000 (17:38 +0100)]
mjpegdec: Properly set the context colorspace info

The JPEG spec requires it to be this.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
7 years agoh264: error out from decode_nal_units() when AV_EF_EXPLODE is set
Vittorio Giovara [Fri, 7 Feb 2014 14:13:40 +0000 (15:13 +0100)]
h264: error out from decode_nal_units() when AV_EF_EXPLODE is set

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
7 years agojpeg2000: fix dereferencing invalid pointers during cleanup
Vittorio Giovara [Sun, 9 Mar 2014 17:52:40 +0000 (18:52 +0100)]
jpeg2000: fix dereferencing invalid pointers during cleanup

CC: libav-stable@libav.org
Found-by: Laurent Butti <laurentb@gmail.com>
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
7 years agopixfmt: mark the reserved values
Vittorio Giovara [Mon, 23 Jun 2014 21:39:03 +0000 (17:39 -0400)]
pixfmt: mark the reserved values

7 years agodsputil: Split off global motion compensation bits into a separate context
Diego Biurrun [Fri, 24 Jan 2014 09:41:12 +0000 (01:41 -0800)]
dsputil: Split off global motion compensation bits into a separate context

7 years agoh264: avoid using uninitialized memory in NEON chroma mc
Janne Grunau [Wed, 18 Jun 2014 15:10:42 +0000 (17:10 +0200)]
h264: avoid using uninitialized memory in NEON chroma mc

Adapt commit 982b596ea6640bfe218a31f6c3fc542d9fe61c31 for the arm and
aarch64 NEON asm. 5-10% faster on Cortex-A9.

7 years agolzo: Handle integer overflow
Luca Barbato [Thu, 19 Jun 2014 21:26:58 +0000 (23:26 +0200)]
lzo: Handle integer overflow

get_len can overflow for specially crafted payload.

Reported-By: Don A. Baley <donb@securitymouse.com>
CC: libav-stable@libav.org
7 years agoindeo45: use is_indeo4 context flag instead of checking codec ID
Dirk Ausserhaus [Fri, 20 Jun 2014 18:15:20 +0000 (20:15 +0200)]
indeo45: use is_indeo4 context flag instead of checking codec ID

Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
7 years agodsputil: Split bswap*_buf() off into a separate context
Diego Biurrun [Thu, 13 Feb 2014 16:57:05 +0000 (17:57 +0100)]
dsputil: Split bswap*_buf() off into a separate context

7 years agompeg: Split error resilience bits off into a separate file
Diego Biurrun [Fri, 20 Jun 2014 13:05:45 +0000 (06:05 -0700)]
mpeg: Split error resilience bits off into a separate file

7 years agoCheck mp3 header before calling avpriv_mpegaudio_decode_header().
Justin Ruggles [Sun, 22 Jun 2014 17:19:36 +0000 (13:19 -0400)]
Check mp3 header before calling avpriv_mpegaudio_decode_header().

As indicated in the function documentation, the header MUST be
checked prior to calling it because no consistency check is done


7 years agoCheck if an mp3 header is using a reserved sample rate.
Justin Ruggles [Sun, 22 Jun 2014 17:11:32 +0000 (13:11 -0400)]
Check if an mp3 header is using a reserved sample rate.

Fixes an invalid read past the end of avpriv_mpa_freq_tab.
Fixes divide-by-zero due to sample_rate being set to 0.

Bug-Id: 705


7 years agoDifferentiate assembler and assembly in documentation and comments
Diego Biurrun [Wed, 18 Jun 2014 14:21:00 +0000 (16:21 +0200)]
Differentiate assembler and assembly in documentation and comments

The language and the program that consumes the language are not the same.

7 years agolibx264: Correctly manage constant rate factor params
Luca Barbato [Sat, 21 Jun 2014 10:46:19 +0000 (12:46 +0200)]
libx264: Correctly manage constant rate factor params

By default they are set to -1.

7 years agoReplace av_malloc() and memset(0) by av_mallocz()
Diego Biurrun [Thu, 19 Jun 2014 22:04:36 +0000 (00:04 +0200)]
Replace av_malloc() and memset(0) by av_mallocz()

7 years agoape: Replace memset(0) by zero initialization
Diego Biurrun [Thu, 19 Jun 2014 22:04:00 +0000 (00:04 +0200)]
ape: Replace memset(0) by zero initialization

7 years agompeg: Mark ff_mpeg_set_erpic() static
Diego Biurrun [Fri, 20 Jun 2014 12:25:12 +0000 (05:25 -0700)]
mpeg: Mark ff_mpeg_set_erpic() static

It is not used outside of the file.

7 years agoconfigure: Drop stray error resilience dependencies
Diego Biurrun [Thu, 19 Jun 2014 15:15:50 +0000 (08:15 -0700)]
configure: Drop stray error resilience dependencies

7 years agobuild: Record explicit dependency of intrax8 on error resilience
Diego Biurrun [Fri, 20 Jun 2014 12:53:53 +0000 (05:53 -0700)]
build: Record explicit dependency of intrax8 on error resilience

7 years agobuild: Have the eatqi decoder depend on the MPEG-1 decoder
Diego Biurrun [Fri, 20 Jun 2014 12:55:11 +0000 (05:55 -0700)]
build: Have the eatqi decoder depend on the MPEG-1 decoder

eatqi uses more than just the shared mpegvideo bits.

7 years agobuild: Add missing object files for webm muxer
Diego Biurrun [Fri, 20 Jun 2014 10:31:32 +0000 (03:31 -0700)]
build: Add missing object files for webm muxer

7 years agobuild: Add missing object files for Matroska demuxer
Diego Biurrun [Fri, 20 Jun 2014 10:22:10 +0000 (03:22 -0700)]
build: Add missing object files for Matroska demuxer

7 years agobuild: Add missing replaygain object file for CAF demuxer
Diego Biurrun [Fri, 20 Jun 2014 10:15:38 +0000 (03:15 -0700)]
build: Add missing replaygain object file for CAF demuxer

7 years agodsputil: Split audio operations off into a separate context
Diego Biurrun [Thu, 16 Jan 2014 16:30:19 +0000 (17:30 +0100)]
dsputil: Split audio operations off into a separate context

7 years agoh264: fix build when error resilience is disabled
Vittorio Giovara [Fri, 20 Jun 2014 16:48:06 +0000 (12:48 -0400)]
h264: fix build when error resilience is disabled

7 years agoAdd av_image_check_sar() and use it to validate SAR
Justin Ruggles [Mon, 28 Apr 2014 20:08:33 +0000 (16:08 -0400)]
Add av_image_check_sar() and use it to validate SAR

7 years agodv: cosmetics, reindent
Anton Khirnov [Wed, 18 Jun 2014 09:02:24 +0000 (11:02 +0200)]
dv: cosmetics, reindent

7 years agodv: get rid of global non-const tables
Anton Khirnov [Wed, 18 Jun 2014 08:59:37 +0000 (10:59 +0200)]
dv: get rid of global non-const tables

Instead, store them in the context and compute on each parameter change.

7 years agodvenc: initialize the profile only once, at init
Anton Khirnov [Wed, 18 Jun 2014 08:39:13 +0000 (10:39 +0200)]
dvenc: initialize the profile only once, at init

We do not allow the frame parameters to change during encoding, so there
is no need to do this for each frame.

7 years agoUse av_packet_rescale_ts() to simplify code.
Anton Khirnov [Wed, 18 Jun 2014 07:43:27 +0000 (09:43 +0200)]
Use av_packet_rescale_ts() to simplify code.

7 years agolavc: add a convenience function for rescaling timestamps in a packet
Anton Khirnov [Wed, 18 Jun 2014 07:39:32 +0000 (09:39 +0200)]
lavc: add a convenience function for rescaling timestamps in a packet

7 years agostereo3d: add missing include guards
Vittorio Giovara [Mon, 21 Apr 2014 00:33:35 +0000 (02:33 +0200)]
stereo3d: add missing include guards

7 years agoconfigure: Drop duplicate pkg-config entry from help output
Diego Biurrun [Wed, 18 Jun 2014 14:45:45 +0000 (16:45 +0200)]
configure: Drop duplicate pkg-config entry from help output

7 years agoi263: skip dummy frames
Dirk Ausserhaus [Wed, 18 Jun 2014 08:01:52 +0000 (10:01 +0200)]
i263: skip dummy frames

Intel i263 codec has special 8-byte dummy frames that should not be decoded,
so do not even attempt to decode them and skip them instead.

Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
7 years agodsputil: Split clear_block*/fill_block* off into a separate context
Diego Biurrun [Tue, 14 Jan 2014 09:33:47 +0000 (10:33 +0100)]
dsputil: Split clear_block*/fill_block* off into a separate context

7 years agohevc: Mark num_bins_in_se as unused
Luca Barbato [Wed, 18 Jun 2014 14:20:48 +0000 (16:20 +0200)]
hevc: Mark num_bins_in_se as unused

Only its size is actually used. Silence a clang warning.

7 years agortsp: Support misordered fmtp rtpmap
Joshua Kordani [Tue, 17 Jun 2014 00:49:46 +0000 (02:49 +0200)]
rtsp: Support misordered fmtp rtpmap

Issue present in Avigilon IP cameras.

7 years agortsp: Factor out fmtp parsing
Luca Barbato [Tue, 17 Jun 2014 00:36:55 +0000 (02:36 +0200)]
rtsp: Factor out fmtp parsing

7 years agodoc: Document segment_list_type
Luca Barbato [Mon, 16 Jun 2014 11:56:08 +0000 (13:56 +0200)]
doc: Document segment_list_type

7 years agolavf: switch to AVStream.time_base as the hint for the muxer timebase
Anton Khirnov [Sun, 18 May 2014 10:12:59 +0000 (12:12 +0200)]
lavf: switch to AVStream.time_base as the hint for the muxer timebase

Previously, AVStream.codec.time_base was used for that purpose, which
was quite confusing for the callers. This change also opens the path for
removing AVStream.codec.

The change in the lavf-mkv test is due to the native timebase (1/1000)
being used instead of the default one (1/90000), so the packets are now
sent to the crc muxer in the same order in which they are demuxed
(previously some of them got reordered because of inexact timestamp

7 years agoriffenc: take an AVStream instead of an AVCodecContext
Anton Khirnov [Fri, 30 May 2014 05:17:28 +0000 (07:17 +0200)]
riffenc: take an AVStream instead of an AVCodecContext

It will be useful in the following commits.

Also, rename the AVCodecContext pointer name from 'stream' to 'codec'.

7 years agolavf: add the notimestamps flag to the muxers missing it
Anton Khirnov [Thu, 29 May 2014 05:06:52 +0000 (07:06 +0200)]
lavf: add the notimestamps flag to the muxers missing it

7 years agortpenc: base max_frames_per_packet on avg_frame_rate, not codec timebase
Anton Khirnov [Thu, 29 May 2014 05:58:35 +0000 (07:58 +0200)]
rtpenc: base max_frames_per_packet on avg_frame_rate, not codec timebase

Fall back to 1 (which is what is used for most cases anyway) when the
framerate is not set.

7 years agoRemove avserver.
Anton Khirnov [Mon, 9 Jun 2014 12:21:56 +0000 (14:21 +0200)]
Remove avserver.

It has not been properly maintained for years and there is little hope
of that changing in the future.
It appears simpler to write a new replacement from scratch than
unbreaking it.

7 years agodcadec: replace ldexpf with a multiplication by a constant
Niels Möller [Wed, 18 Jun 2014 06:23:15 +0000 (08:23 +0200)]
dcadec: replace ldexpf with a multiplication by a constant

Signed-off-by: Anton Khirnov <anton@khirnov.net>
7 years agoAVFrame: factor out freeing the side data
Roman Savchenko [Wed, 18 Jun 2014 06:11:05 +0000 (08:11 +0200)]
AVFrame: factor out freeing the side data

Signed-off-by: Anton Khirnov <anton@khirnov.net>
7 years agovp9 encoder: use a decent default speed setting
Rafaël Carré [Fri, 6 Jun 2014 18:06:43 +0000 (11:06 -0700)]
vp9 encoder: use a decent default speed setting

Signed-off-by: Anton Khirnov <anton@khirnov.net>
7 years agoflvenc: Don't over-count metadata.
Josh Allmann [Wed, 11 Jun 2014 01:45:07 +0000 (18:45 -0700)]
flvenc: Don't over-count metadata.

Over-counting occurs if framerate is not set.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
7 years agotiffenc: fix packet size calculation
Tristan Matthews [Fri, 13 Jun 2014 14:57:12 +0000 (10:57 -0400)]
tiffenc: fix packet size calculation

Signed-off-by: Anton Khirnov <anton@khirnov.net>
7 years agojpeg2000: Mark static data init functions as av_cold
Diego Biurrun [Fri, 13 Jun 2014 12:38:44 +0000 (05:38 -0700)]
jpeg2000: Mark static data init functions as av_cold

7 years agoavconv: use the correct variable in comparison
Anton Khirnov [Sat, 14 Jun 2014 19:43:36 +0000 (21:43 +0200)]
avconv: use the correct variable in comparison

7 years agoconfigure: Directly support Android as target OS
Luca Barbato [Fri, 13 Jun 2014 13:14:10 +0000 (15:14 +0200)]
configure: Directly support Android as target OS

7 years agogitignore: add dylib and swp entries
Vittorio Giovara [Mon, 16 Jun 2014 05:31:37 +0000 (01:31 -0400)]
gitignore: add dylib and swp entries

7 years agolavf: dump stream side data when probing
Vittorio Giovara [Tue, 15 Apr 2014 14:55:23 +0000 (16:55 +0200)]
lavf: dump stream side data when probing

7 years agolavf: group dump functions together
Vittorio Giovara [Tue, 15 Apr 2014 14:08:58 +0000 (16:08 +0200)]
lavf: group dump functions together

7 years agovf_showinfo: print display transformation values
Vittorio Giovara [Mon, 24 Mar 2014 17:12:35 +0000 (18:12 +0100)]
vf_showinfo: print display transformation values

7 years agoac3: Only initialize float_dsp for the float encoder variant
Diego Biurrun [Wed, 11 Jun 2014 12:32:01 +0000 (05:32 -0700)]
ac3: Only initialize float_dsp for the float encoder variant

7 years agoRename tpel_template.c ---> pel_template.c
Diego Biurrun [Thu, 12 Jun 2014 14:05:49 +0000 (07:05 -0700)]
Rename tpel_template.c ---> pel_template.c

The new name more accurately describes what the file is about.

7 years agoconfigure: use pkg-config for libx264
Vittorio Giovara [Tue, 10 Jun 2014 21:46:57 +0000 (17:46 -0400)]
configure: use pkg-config for libx264

7 years agolibx265: Remove unneeded bit depth check
Derek Buitenhuis [Wed, 11 Jun 2014 20:20:43 +0000 (21:20 +0100)]
libx265: Remove unneeded bit depth check

This is no longer needed since the version bump.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
7 years agolibx265: Add 4:2:2 support
Derek Buitenhuis [Wed, 11 Jun 2014 20:19:42 +0000 (21:19 +0100)]
libx265: Add 4:2:2 support

It is also not final yet, so require -strict experimental.

Requires a bump to version 17.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
7 years agolibx265: Actually use X265_API_IMPORTS
Derek Buitenhuis [Wed, 11 Jun 2014 19:51:52 +0000 (20:51 +0100)]
libx265: Actually use X265_API_IMPORTS

It obvously needs to be above the include statement.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
7 years agoRemove some unnecessary CONFIG_FOO_COMPONENT ifdefs
Diego Biurrun [Wed, 11 Jun 2014 12:48:30 +0000 (05:48 -0700)]
Remove some unnecessary CONFIG_FOO_COMPONENT ifdefs

The files are only ever compiled if that condition is true.

7 years agoavconv: make -shortest work with streamcopy
Anton Khirnov [Tue, 10 Jun 2014 15:41:57 +0000 (17:41 +0200)]
avconv: make -shortest work with streamcopy

CC: libav-stable@libav.org
7 years agolibx264: Support bitrate reconfiguration
Luca Barbato [Tue, 10 Jun 2014 12:31:48 +0000 (14:31 +0200)]
libx264: Support bitrate reconfiguration

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
7 years agoh263enc: keep block_last_index always valid during advanced intra coding
Janne Grunau [Tue, 10 Jun 2014 18:50:13 +0000 (20:50 +0200)]
h263enc: keep block_last_index always valid during advanced intra coding

Prevents a triggered assert during fate-vsynth{1,2}-rv20 in

7 years agompegvideo: synchronize AVFrame pointers in ERContext fully
Janne Grunau [Wed, 11 Jun 2014 17:40:28 +0000 (19:40 +0200)]
mpegvideo: synchronize AVFrame pointers in ERContext fully

Since error resilience uses AVFrame pointers instead of references it
has to copy NULL pointers too. After a codec flush the last/next frame
pointers in MpegEncContext are NULL and the old pointers remaining in
ERContext are invalid. Fixes a crash in vlc for android thumbnailer.
Reported and debugged by Adrien Maglo <magsoft@videolan.org>.

7 years agofate: add on2avc audio test
Vittorio Giovara [Fri, 23 May 2014 22:16:50 +0000 (18:16 -0400)]
fate: add on2avc audio test

7 years agompegvideoenc: check color_range
Vittorio Giovara [Fri, 23 May 2014 16:39:51 +0000 (12:39 -0400)]
mpegvideoenc: check color_range

Rework the comparison into something simpler to understand.

7 years agoppc: Consistently use convenience macro for runtime CPU detection
Diego Biurrun [Thu, 5 Jun 2014 15:46:47 +0000 (08:46 -0700)]
ppc: Consistently use convenience macro for runtime CPU detection

7 years agoppc: Fix runtime CPU detection for apedsp, huffyuvdsp, svq1enc
Diego Biurrun [Thu, 5 Jun 2014 15:45:59 +0000 (08:45 -0700)]
ppc: Fix runtime CPU detection for apedsp, huffyuvdsp, svq1enc

7 years agompegts: Provide an option to override the pcr period
Luca Barbato [Fri, 6 Jun 2014 13:59:25 +0000 (15:59 +0200)]
mpegts: Provide an option to override the pcr period

Certain hardware demuxer have specific restrictions for PCR periodicity.

7 years agompegts: Move the option section to the bottom
Luca Barbato [Tue, 10 Jun 2014 09:57:17 +0000 (11:57 +0200)]
mpegts: Move the option section to the bottom

Makes it consistent with the rest of the formats and ease usage
of macros constants for the defaults.

7 years agodoc: Document mpegts muxrate
Luca Barbato [Tue, 10 Jun 2014 09:53:44 +0000 (11:53 +0200)]
doc: Document mpegts muxrate

7 years agox86: h264: Don't keep data in the redzone across function calls on 64 bit unix
Martin Storsjö [Mon, 20 Feb 2012 09:24:35 +0000 (11:24 +0200)]
x86: h264: Don't keep data in the redzone across function calls on 64 bit unix

We know that the called function (ff_chroma_inter_body_mmxext)
doesn't touch the redzone, and thus will be kept intact - thus,
this doesn't fix any bug per se.

However, valgrind's memcheck tool intentionally assumes that the
redzone is clobbered on every function call and function return
(see a long comment in valgrind/memcheck/mc_main.c). This avoids
false positives in that tool, at the cost of an extra stack pointer

The other alternative would be a valgrind suppression for this issue,
but that's an extra burden for everybody that wants to run libavcodec
within valgrind.

Signed-off-by: Martin Storsjö <martin@martin.st>
7 years agoadpcm: Write the proper predictor in trellis mode in IMA QT
Martin Storsjö [Thu, 5 Jun 2014 11:49:14 +0000 (14:49 +0300)]
adpcm: Write the proper predictor in trellis mode in IMA QT

The actual predictor value, set by the trellis code, never
was written back into the variable that was written into
the block header. This was accidentally removed in b304244b.

This significantly improves the audio quality of the trellis
case, which was plain broken since b304244b.

Encoding IMA QT with trellis still actually gives a slightly
worse quality than without trellis, since the trellis encoder
doesn't use the exact same way of rounding as in
adpcm_ima_qt_compress_sample and adpcm_ima_qt_expand_nibble.

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
7 years agoav_dict_set: fix potential memory leak with AV_DICT_DONT_OVERWRITE
Janne Grunau [Sun, 8 Jun 2014 15:53:31 +0000 (17:53 +0200)]
av_dict_set: fix potential memory leak with AV_DICT_DONT_OVERWRITE

av_dict_set leaks it key/value arguments if AV_DICT_DONT_OVERWRITE is
combined with AV_DICT_DONT_STRDUP_{KEY,VAL} and the key exists.

7 years agoconfigure: use .altmacro for gnu as check on arm
Janne Grunau [Thu, 29 May 2014 15:04:57 +0000 (17:04 +0200)]
configure: use .altmacro for gnu as check on arm

Clang's integrated assembler (after 3.4) does not yet support the
'.altmacro' directive which is only used in arm asm. Support is planned:

7 years agoadpcm: Avoid reading out of bounds in the IMA QT trellis encoder
Martin Storsjö [Thu, 5 Jun 2014 08:48:53 +0000 (11:48 +0300)]
adpcm: Avoid reading out of bounds in the IMA QT trellis encoder

This was broken in 095be4fb - samples+ch (for the previous
non-planar case) equals &samples_p[ch][0]. The confusion
probably stemmed from the IMA WAV case where it originally
was &samples[avctx->channels + ch], which was correctly
changed into &samples_p[ch][1].

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
7 years agooggenc: Set the right AVOption size for the pref_duration option
Martin Storsjö [Fri, 6 Jun 2014 10:59:14 +0000 (13:59 +0300)]
oggenc: Set the right AVOption size for the pref_duration option

On big endian machines, the default value set via the faulty
AVOption ended up as 2^32 times too big.

This fixes the fate-lavf-ogg test which currently is broken on
big endian machines, broken since 3831362. Since that commit,
a final zero-sized packet is written to the ogg muxer in that test,
which caused different flushing behaviour on little and big endian
depending on whether the pref_duration option was handled as it
should or not.

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>