Commit Graph
100 Commits
Author SHA1 Message Date
Janne Grunau 91d4823f70 avpacket: copy side data type and size in av_dup_packet 2013-03-13 11:34:47 +01:00
Janne Grunau a2816230c5 avframe: call release_buffer only if it is set
AVCodecContext release_buffer() shall be NULL for audio codecs using
get_buffer. The backward compatibility code hence have to check before
calling it.
2013-03-11 18:58:47 +01:00
Janne Grunau fc8406d01e avframe: copy reordered_opaque in copy_props
Fixes video playback in applications still using reordered_opaque.
2013-03-11 13:29:39 +01:00
Janne Grunau 684e3d2e1c ra144: check buffer size before requesting a buffer
Return an error on incomplete frames.
2013-03-10 22:34:43 +01:00
Janne Grunau 08149b2b39 wmapro: unref skipped frames 2013-03-10 22:34:43 +01:00
Janne Grunau e3232f3431 svq1: use av_frame_free to free refcounted frame
Fixes a memleak due to avcodec_free_frame not freeing the frame data.
2013-03-10 22:28:18 +01:00
Janne Grunau 15ea1ac695 fate: remove last incomplete frame from mpeg2-field-enc test 2013-03-04 11:22:21 +01:00
Janne Grunau c5c2060cf5 x86: h264qpel: add cpu flag checks for init function
The code was copied from per cpu extension init function so the checks
for supported extensions was overlooked.
2013-01-24 19:03:59 +01:00
Janne Grunau 6bdb841b46 h264: copy h264qpel dsp context to slice thread copies 2013-01-24 17:06:52 +01:00
Janne Grunau 8e148b8742 arm: h264qpel: use neon h264 qpel functions only if supported 2013-01-24 17:06:52 +01:00
Janne Grunau 68f18f0351 videodsp_armv5te: remove #if HAVE_ARMV5TE_EXTERNAL
libavutil/arm/asm.S sets '.arch' depending on HAVE_ARMV5TE so that
assembling armv5te code will always succeed even if the default -march
flag does not support it. HAVE_ARMV5TE_EXTERNAL tests assembling code
with the default arch.
Fixes the missing symbol ff_prefetch_arm with --cpu= not including
armv5te.

CC: libav-stable@libav.org
2013-01-20 15:20:00 +01:00
Janne Grunau 9ac44ad9d0 h264: check SPS entries directly to detect pixel format changes
Comparing AVCodecContext.pix_fmt against the get_pixel_format() return
value has the side effect of calling the get_format() callback on each
slice. Users of the callback will probably handle hardware accelerator
initialization in the callback.
2013-01-03 11:09:00 +01:00
Janne Grunau 1f4ea4e068 mpegvideo: initialize videodsp with correct pixel depth
Fixes decoding of 9/10 bit per pixel h264 videos as reported in
https://bugzilla.libav.org/show_bug.cgi?id=404 .
2012-12-26 00:24:21 +01:00
Janne Grunau bb2bab92e7 mov: handle h263 and flv1 for codec_tag 'H','2','6','3'
The sample in https://bugzilla.libav.org/show_bug.cgi?id=393 and
samples/F4V/H263_NM_f.mp4 both have codec_tag H263 for different
codecs. H263 is apparently used by Flash Media Server for Sorensen
Spark videos.

Patch based on commit 5442083b1c by
Carl Eugen Hoyos. Fixes bug 393.
2012-12-19 14:50:14 +01:00
Janne Grunau 45635885e4 mpegvideo: increase edge_emu_buffer size for VC1
The VC1 decoder uses edge_emu_buffer simultaneously for luma and chroma
and needs more space. That was not a problem before f1d8763a02
since the size for edge_emu_buffer was always calculated with 2 byte per
pixel since the linesize was not known.

Fixes occasionally fate errors in vc1_sa10143.
2012-12-19 07:57:22 +01:00
Janne Grunau acb571c89a avcodec: bump minor for adaptive h264 frame-mt
Also adds forgotten Changelog entry.
2012-12-18 20:26:53 +01:00
Janne Grunau 9e696d2e5f h264: support frame parameter changes during frame-mt
Fixes CVE-2012-2782.
2012-12-18 19:55:10 +01:00
Janne Grunau f1d8763a02 mpegvideo: allocate scratch buffers after linesize is known
Since we can't know which stride a custom get_buffer() implementation is
going to use we have to allocate this scratch buffers after the linesize
is known. It was pretty safe for 8 bit per pixel pixel formats since we
always allocated memory for up to 16 bits per pixel. It broke hoever
with cmdutis.c's alloc_buffer() and high pixel bit depth since it
allocated larger edges than mpegvideo expected.

Fixes fuzzed sample nasa-8s2.ts_s244342.
2012-12-18 19:48:30 +01:00
Janne Grunau 73ad2c2fa7 h264: increase dist_scale_factor for up to 32 references
Compute dist_scale_factor_field only for MBAFF since that is the only
case in which it is used.
2012-12-18 19:36:58 +01:00
Janne Grunau 61c6eef545 h264: prevent decoding of slice NALs in extradata
It is not posible to call get_buffer during frame-mt codec
initialization. Libavformat might pass huge amounts of data as
extradata after parsing broken files. The 'extradata' for the fuzzed
sample sample_varPAR_s5374_r001-02.avi is 2.8M large and contains
multiple slices.
2012-12-18 11:01:14 +01:00
Janne Grunau a421bbfe83 h264: fix memleak on error during SPS parsing
Introduced in d7d6efe42b.
2012-12-15 19:16:39 +01:00
Janne Grunau 27c8337e59 h264-mt: handle NAL_DPAs before calling ff_thread_finish_setup
Since a NAL_DPA can start a new frame it has to be handled before
ff_thread_finish_setup is called.
2012-12-15 19:06:37 +01:00
Janne Grunau 0995ad8db4 x86inc: fully concatenate tokens to fix macro expansion for nasm
Fixes build errors with nasm introduced in 6f40e9f070 for stack
memory alignment. Noticed by BugMaster.
2012-12-13 23:57:09 +01:00
Janne Grunau 0eae920c3c h264: initialize frame-mt context copies properly 2012-12-13 21:02:42 +01:00
Janne Grunau 6a27ae28f9 mpegvideo: treat delayed pictures as used
This requires to move the avcodec_default_free_buffers() call to
ff_MPV_common_end() since otherwise delayed pictures would get freed
during a size change.
2012-12-13 21:02:42 +01:00
Janne Grunau bd255f9feb lavc: set frame parameters after decoding only if necessary
Direct rendering capable decoders call get_buffer() which will set the
frame parameters.

Prevents frames with wrong parameters when a decoder outputs delayed
frames after a resolution or pixel format change.
2012-12-13 21:02:42 +01:00
Janne Grunau 072be3e896 h264: set parameters from SPS whenever it changes
Fixes a crash in the fuzzed sample sample_varPAR.avi_s26638 with
alternating bit depths.
2012-12-13 21:02:42 +01:00
Janne Grunau 288bb3da16 svq3: make slice type value unsigned to match svq3_get_ue_golomb return type 2012-12-09 15:51:45 +01:00
Janne Grunau 6a1aa5cb26 mjpeg: initialize input padding after unescaped buffer to zero
Fixes valgrind --undef-value-errors=yes warnings caused by valid
overreads in the fate vsynth jpegls, cover-art-ape and cover-art-wv
tests.
2012-12-08 17:05:45 +01:00
Janne Grunau 9a2e79116d golomb: use unsigned arithmetics in svq3_get_ue_golomb()
This prevents undefined behaviour of signed left shift if the coded
value is larger than 2^31. Large values are most likely invalid and
caused errors or by feeding random.

Validate every use of svq3_get_ue_golomb() and changed the place there
the return value was compared with negative numbers. dirac.c was clean,
fixed rv30 and svq3.
2012-12-08 12:55:10 +01:00
Janne Grunau a394959bbe h264: add a pointer for weighted prediction temporary buffer
Reusing MpegEncContext's obmc_scratchpad for this becomes a mess with
adaptive frame-mt.
2012-12-07 11:43:28 +01:00
Janne Grunau d7d6efe42b h264: check sps.log2_max_frame_num for validity
Fixes infinite or long taking loop in frame num gap code in
the fuzzed sample bipbop234.ts_s223302.

CC: libav-stable@libav.org
2012-12-07 11:43:28 +01:00
Janne Grunau 8cc2fa1e5d mov: validate number of DataReferenceBox entries against box size
Avoids a 2G memory allocation and parsing of random data in
mov_read_dref(). The fuzzed sample sample.mp4_s224424 triggers this.
2012-12-07 11:43:28 +01:00
Janne Grunau 80b6b31417 mov: compute avg_frame_rate only if duration is known
Fixes an assert in fuzzed sample sample.mp4_s265930.
2012-12-07 11:43:28 +01:00
Janne Grunau 480be07a96 flac: change minimum and default of lpc_passes option to 1
Avoid use of uninitialized and uncomputed linear least square models
during ff_lpc_calc_coefs() for FF_LPC_TYPE_CHOLESKY. Fixes running
make fate-flac-16-lpc-cholesk with valgrind --undef-value-errors=yes.
2012-12-07 11:43:28 +01:00
Janne Grunau 5945c7b35d h264: slice-mt: check master context for valid current_picture_ptr
Fixes errors in slice based multithreading introduced in 0b300daad2.

CC: libav-stable@libav.org
2012-12-05 23:16:37 +01:00
Janne Grunau a8cb1746c5 h264: slice-mt: get last_pic_dropable from master context
Fixes fate-h264-conformance-cvnlfi2_sony_h and smllwebdl.mkv from
https://github.com/OpenELEC/OpenELEC.tv/issues/1557 .

CC: libav-stable@libav.org
2012-12-05 23:16:37 +01:00
Janne Grunau c15fea7933 mimic: initialize padding of swap_buf through av_fast_padded_malloc 2012-12-05 00:02:44 +01:00
Janne Grunau 42060c7030 eamad: initialize padding of bitstream_buf through av_fast_padded_malloc() 2012-12-05 00:02:44 +01:00
Janne Grunau 54c7fe6d68 raw demuxer: initialize end of partial packets 2012-12-05 00:02:43 +01:00
Janne Grunau e816034a5f fate-seek: remove use of gnu make 3.82 only private modifier 2012-12-03 00:37:07 +01:00
Janne Grunau c8148e5c93 fate: move vsynth reference files to their own directory 2012-12-03 00:36:10 +01:00
Janne Grunau 337dbe2adb fate: move fate-acodec reference files to their own dir 2012-12-03 00:29:35 +01:00
Janne Grunau abab0435d4 fate: split dependencies for fate-seek tests
Each fate-seek test depends now only on the corresponding fate-acodec,
fate-vsynth2 or fate-lavf test which creates the file seek-tests
operates on. The tests and references are renamed to match the test they
depend on.
2012-12-02 23:25:41 +01:00
Janne Grunau 0b300daad2 h264: error out on unset current_picture_ptr for h->current_slice > 0
Fixes a segfault with fuzzed sample sample_varPAR_s11622_r001-02.avi.

CC: libav-stable@libav.org
2012-12-02 23:24:53 +01:00
Janne Grunau 89a4465bd9 avprobe: report per stream bit rate if set by the decoder 2012-12-02 23:23:34 +01:00
Janne Grunau c1fcf563b1 h264: check context state before decoding slice data partitions
Fixes mov_h264_aac__Demo_FlagOfOurFathers.mov.SIGSEGV.4e9.656.

Found-by: Mateusz "j00ru" Jurczyk
CC: libav-stable@libav.org
2012-11-29 14:40:05 +01:00
Janne Grunau 3ae69b9166 flashsv: make sure data for zlib priming is available
Fixes a segfault in the fuzzed sample resolutionchange.flv_s314809.

CC: libav-stable@libav.org
2012-11-29 14:15:05 +01:00
Janne Grunau d5e83122bd h264: set Picture.owner2 to the current thread
This does not seem to have an effect currently. Fate-h264 passes with
THREADS=1..16 and both threading types as before. It fixes however a
segfault during error resilience with my adaptive-frame-mt patchset.
A picture in use during error resilience gets realloced in another
thread in the fuzzed sample sample_varPAR.avi_s226019.
2012-11-27 12:26:33 +01:00
Janne Grunau 6e5cdf2628 h264: check ref_count validity for num_ref_idx_active_override_flag
Fixes segfault in the fuzzed sample bipbop234.ts_s226407.

CC: libav-stable@libav.org
2012-11-27 12:26:33 +01:00
Janne Grunau 150b2361ca h264: add missing new line to log message 2012-11-27 12:26:33 +01:00
Janne Grunau 7709ce029a lavf: avoid integer overflow in ff_compute_frame_duration()
Scaling the denominator instead of the numerator if it is too large
loses precision. Fixes an assert caused by a negative frame duration in
the fuzzed sample nasa-8s2.ts_s202310.

CC: libav-stable@libav.org
2012-11-26 10:26:08 +01:00
Janne Grunau 5ae72f5453 flashsv: check for keyframe before using differential coding
Fixes a segfault in te fuzzed sample resolutionchange.flv_s211713.

CC: libav-stable@libav.org
2012-11-26 10:26:01 +01:00
Janne Grunau 706acb558a h264: enable low delay only if no delayed frames were seen
Dropping frames is undesirable but that is the only way by which the
decoder could return to low delay mode. Instead emit a warning and
continue with delayed frames.
Fixes a crash in fuzzed sample nasa-8s2.ts_s20033 caused by a larger
than expected has_b_frames value. Low delay keeps getting re-enabled
from a presumely broken SPS.

CC: libav-stable@libav.org
2012-11-26 10:25:39 +01:00
Janne Grunau e96d90eed6 remove #defines to prevent use of discouraged external functions
Preventing the use of discouraged or 'insecure' external functions
through defines in an internal header is not a good solution. The
header is not guaranteed to be included universally which makes
overlooking bad use of said functions during review more likely.

There are cases were those functions either are the most straight
forward solution or even have to be used. Using malloc or free is
required if the allocation or release is done by other libraries.
2012-11-25 23:02:04 +01:00
Janne Grunau 80716953c2 libswscale: remove unnecessary direct #if LIBSWSCALE_VERSION_MAJOR
SWS_CPU_CAPS are deprecated and slated to removed with libswscale major
version 3. No need to provide a SWS_CPU_CAPS_MMX2 as backward
compatibility define under the same explicit condition.
2012-11-16 15:04:57 +01:00
Janne Grunau 8f5587c3d0 cpu.h: define AV_CPU_FLAG_MMX2 for libavutil major 52 2012-11-16 15:04:48 +01:00
Janne Grunau e6160bda98 h264: Fix parameters to ff_er_add_slice() call
s->mb_x is reset to zero a couple of lines above. It does not make
sense to call ff_er_add_slice() with 0 as endx when the end of the
macroblock row was reached. Fixes unnecessary and counterproductive
error resilience in https://bugzilla.libav.org/show_bug.cgi?id=394.

CC: libav-stable@libav.org
2012-11-16 13:18:28 +01:00
Janne Grunau 60b6b8c019 h264: always check ref_count for validity
Fixes a crash with zuffed files.
2012-11-16 13:18:28 +01:00
Janne Grunau 566de8cde2 avserver: replace av_read_packet with av_read_frame 2012-11-15 18:04:53 +01:00
Janne Grunau 39c4afd926 avserver: fix constness casting warnings
Use a different char* for extracting info string from the URL. The
other pointer can be made const then which elimates the need for a
cast and fixes the following warnings:
warning: to be safe all intermediate pointers in cast from ‘char **’ to
‘const char **’ must be ‘const’ qualified [-Wcast-qual]
2012-11-15 18:04:53 +01:00
Janne Grunau bf5f46b4cc APIChanges: add entry for av_read_packet deprecation 2012-11-15 17:49:53 +01:00
Janne Grunau c84cce5a99 mxfdec: fix typo in mxf_read_seek()
Check the number of index tables before using byte offset based seeking
instead of the index_tables pointer.

Found by Måns Rullgård <mans@mansr.com>.
2012-11-15 17:37:09 +01:00
Janne Grunau a4cd2ad89a avserver: use freopen to redirect stdin/out/err to /dev/null 2012-11-15 17:36:38 +01:00
Janne Grunau 116ae7285e doxygen: remove obsolete options from Doxyfile
The options USE_INLINE_TREES, SHOW_DIRECTORIES and HTML_ALIGN_MEMBERS
became obsolete with doxygen 1.8.1 (releaded 2012-05-19). The generated
outpu for older doxygen versions should not change since they were set
to the default value.
2012-11-15 17:18:37 +01:00
Janne GrunauandAnton Khirnov b3fab1f2cd doc: add apidoc target for doxygen API documentation
Documentation includes only the externally visible API of the installed
headers.

Based on a patch by Anton Khirnov <anton@khirnov.net>.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-11-02 18:28:56 +01:00
Janne Grunau 6b07830a77 fate: add ac3/eac3 tests to FATE_SAMPLES_AVCONV
Fixes typo in 2cbdd7c929.
2012-10-31 20:01:08 +01:00
Janne Grunau 154ff81870 h263: avoid memcpys over array bound in motion vector caching for obmc
Fixes CID602232.
2012-10-26 17:38:07 +02:00
Janne Grunau dcdfb8ede3 pcmdec: change default of channels parameter to 1
This was previously implicitly done in ff_raw_read_header().
Fixes fate tests with pcm input.
2012-10-25 15:14:40 +02:00
Janne Grunau 1b891d17c5 avconv: fix bitrate report when writing to /dev/null
avio_size() reports the filesize which returns 0 for /dev/null.
avio_tell() reports the current position.

Also handle errors from avio_tell().
2012-10-25 15:00:15 +02:00
Janne Grunau 285b706b55 avfilter: fix graphparser memleaks on error paths
Fixes CID700635, CID700636 and CID732274.
2012-10-25 15:00:15 +02:00
Janne Grunau e578f8f468 prepare 9_beta1 release 2012-10-11 18:36:40 +02:00
Janne Grunau 1a2c7880aa averror: make error values proper negative values
Fixes stupid mistake in 25227c3a78.
2012-10-11 01:07:57 +02:00
Janne Grunau b404c66056 fate: add h263 obmc vsynth tests 2012-10-10 21:24:32 +02:00
Janne Grunau 8d09d39a4b avconv: remove bogus warning when using avconv -h without parameter 2012-10-10 21:24:32 +02:00
Janne Grunau 25227c3a78 averror: explicitly define AVERROR_* values 2012-10-10 21:24:32 +02:00
Janne Grunau c466eb1746 flashsv: propagate inflateReset() errors
Fixes CID717493.
2012-10-10 21:24:32 +02:00
Janne Grunau 6d556e8327 indeo4/5: remove constant parameter num_bands from wavelet recomposition
Fixes bogus uninitialized value compiler and coverity warnings.
2012-10-10 21:24:32 +02:00
Janne Grunau bd141f5ec9 mxfdec: return error if no segments are available in mxf_get_sorted_table_segments
Fixes CID732275.
2012-10-10 21:24:32 +02:00
Janne Grunau 706a559b30 a64multienc: change mc_frame_counter to unsigned
GCC cannot proof that c->mc_frame_counter is always >- 0, changing the
type from int to unsigned fixes following warning:

libavcodec/a64multienc.c: In function ‘a64multi_encode_frame’:
libavcodec/a64multienc.c:342:17: warning: ‘buf’ may be used uninitialized in this function[-Wuninitialized]

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-10-10 15:33:06 +02:00
Janne Grunau d5ef9354ce rtspdec: use av_strlcpy for writing into fixed size buffer
Fixes CID231347.
2012-10-09 21:05:15 +02:00
Janne Grunau f1de23faaa g722enc: fix size argument in memset
Fixes CID700725.
2012-10-09 21:05:15 +02:00
Janne Grunau 4a7c0c4555 http: use av_strlcpy instead of strcpy() without size checks
Fixes CID700730.
2012-10-09 21:05:14 +02:00
Janne Grunau 79e6e8eba2 avfilter: correct memcpy size avfilter_copy_buf_props()
Does not make a difference in this case since sizeof(uint8_t*) ==
sizeof(uint8_t**). Fixes CID703814.
2012-10-09 21:05:14 +02:00
Janne Grunau b94e4acb48 cmdutils_read_file: increment *size after writing the trailing \0
Fixes CID732166.
2012-10-09 18:43:30 +02:00
Janne Grunau ac9a89562a af_resample: unref out_buf when avresample_convert returns 0
Fixes CID732273.
2012-10-09 18:43:30 +02:00
Janne Grunau 8501c09868 af_amix: prevent memory leak on error path
Fixes CID732272.
2012-10-09 16:15:15 +02:00
Janne Grunau 6f8ef5320f vc1dec: prevent memory leak in error path
Fixes CID732271.
2012-10-09 16:09:41 +02:00
Janne Grunau 714f5ab597 vc1dec: prevent memory leak on av_realloc error 2012-10-09 16:07:12 +02:00
Janne Grunau 1afd7a118f af_channelmap: free old extended_data on reallocation
Prevents writes to freed memory and the leak of the old extended data.
Fixes CID732303.
2012-10-09 15:41:24 +02:00
Janne Grunau 18ff4d2020 avconv: simplify memory allocation in copy_chapters
Make just a single reallocation per call instead of one reallocation
per copied chapters. This fixes possible memory leaks on realloc
failures. Also correct the allocation since it needs multiples of
sizeof(AVChapter*) and not sizeof(AVChapter).

Fixes CID700633 and CID700719.
2012-10-09 15:39:05 +02:00
Janne Grunau 4ffbe3f3a5 matroskaenc: check cue point validity before reallocation
Prevents memory leak and possible access to freed memory.
Fixes CID605744.
2012-10-09 15:39:05 +02:00
Janne Grunau 53e122dd4a swfenc: error out for more than 1 audio or video stream
Prevents CID602000.
2012-10-09 15:39:05 +02:00
Janne Grunau 8dd0650fe6 rtpdec_mpeg4: au_headers is a single array, simple av_free is enough
Fixes CID700204.
2012-10-09 14:24:36 +02:00
Janne Grunau 3fbda309e5 avcodec: free extended_data instead address of it
Fixes CID732173.
2012-10-09 14:04:46 +02:00
Janne Grunau ea14a655f7 avutil: skip old_pix_fmts.h since it is just a list 2012-10-08 12:09:16 +02:00
Janne Grunau 7e522859fc x86: vc1: call ff_vc1dsp_init_x86() under if (ARCH_X86) 2012-10-08 11:54:05 +02:00
Janne Grunau cb36febcbc x86: cavs: call ff_cavsdsp_init_x86() under if (ARCH_X86) 2012-10-08 11:54:05 +02:00
Janne Grunau f101eab1be x86: call most of the x86 dsp init functions under if (ARCH_X86)
Rename the called dsp init functions to *_init_x86.
2012-10-08 11:54:05 +02:00
Janne Grunau 1481e19825 mpegvideo: set extended_data in ff_update_duplicate_context()
AVFrame.extended_data has to reset to the AVFrame.data of the current
thread context after copying the frame contents.
Fixes crashes with frame-threading after 2bc0de3858.
2012-10-03 22:08:49 +02:00