Compare commits

...

2362 Commits

Author SHA1 Message Date
Michael Niedermayer
cc8d20e345 Update for FFmpeg 1.2.7
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 18:32:54 +02:00
Michael Niedermayer
c2b72eac6c avformat/mpc: attempt to allocate a packet that is not smaller than the data inside it
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 86a9370e2b)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 18:17:43 +02:00
Michael Niedermayer
9d77a62936 avcodec/alsdec: Clear MPEG4AudioConfig so that no use of uninitialized memory is possible
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 6e6bd5481c)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 18:17:43 +02:00
Michael Niedermayer
f2aaee49b2 avformat/flvenc: Do not allow creating h263/mpeg4 in flv without unofficial format extensions being enabled.
Found-by: Jean-Baptiste Kempf <jb@videolan.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 74760883fc)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 18:17:43 +02:00
Michael Niedermayer
d13cf32099 avcodec/mss4: Fix () in MKVAL() macro
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit cf7ff0146c)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 18:17:42 +02:00
Michael Niedermayer
5626e11bd5 avcodec/mss34dsp: fix () in SOP* macros
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 6e720c5c81)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 18:17:42 +02:00
Michael Niedermayer
8d1f38c4b1 avcodec/mlpdec: fix () in MSB_MASK() macro
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit fa160af08b)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 18:17:42 +02:00
Michael Niedermayer
ea7fbd0b16 avcodec/golomb-test: fix () in EXTEND() macro
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 97e6b5ee3a)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 18:17:42 +02:00
Michael Niedermayer
b2b4df8d51 avcodec/aac: fix () in IS_CODEBOOK_UNSIGNED macro
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit fa915d4193)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 18:17:42 +02:00
Michael Niedermayer
5691d9a6c1 avcodec/libvorbisenc: dont add the duration to AV_NOPTS_VALUE
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 19e66c7232)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 18:17:42 +02:00
Michael Niedermayer
2b8490b762 avutil/cpu: force mmx on selection of higher x86 SIMD features
Fixes various runtime failures with manually set flags that represent no
existing CPU

Fixes Ticket3653

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 6310eb8010)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 18:17:42 +02:00
Michael Niedermayer
4b638ea42d avcodec/diracdec: move mc buffer allocation to per frame
Fixes out of array accesses for non default buffers with large strides

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 4a30f08505)
(cherry picked from commit 9c9fc79d9237d28e33161cb2e75082d8ad232b2e)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 18:17:42 +02:00
Michael Niedermayer
4ecd718285 avfilter/graphdump: Fix pointer to local outside scope
Fixes CID1194435
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 18af0ce62d)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 18:17:42 +02:00
Michael Niedermayer
0607c8af2b avcodec/mjpegdec: Fix undefined shift
Fixes CID1194388

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit b432960528)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 18:17:42 +02:00
Michael Niedermayer
3c385ea24c ffmpeg_filter: fix pointer to local outside scope
Fixes CID1206652
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 09b16619d3)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 18:17:42 +02:00
Michael Niedermayer
c7e9626b7b swresample: fix AV_CH_LAYOUT_STEREO_DOWNMIX input
Fixes Ticket 3542

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 291d464161)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 18:17:42 +02:00
Michael Niedermayer
26d7253441 avformat/h263dec: Fix h263 probe
The code was missing 1 bit in the src format

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit fc145e576a)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 18:17:42 +02:00
Michael Niedermayer
c75a915f66 avformat/mux: Check for and remove invalid packet durations
Fixes assertion failure
Fixes Ticket3575

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit dc6a17cf74)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 18:17:42 +02:00
Michael Niedermayer
ecd30280f5 avutil/lzo: add asserts to be double sure against overflows
These asserts cannot fail since d6af26c55c

Based-on: ccda51b14c
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit cf2b7c01f8)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 18:17:42 +02:00
Michael Niedermayer
eada99a854 avutil/lzo: Fix integer overflow
Embargoed-till: 2014-06-27 requested by researcher, but embargo broken by libav today (git and mailing list)

Fixes: LMS-2014-06-16-4
Found-by: "Don A. Bailey" <donb@securitymouse.com>
See: ccda51b14c
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit d6af26c55c)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 18:17:42 +02:00
Xi Wang
9ade5b804e lzo: fix overflow checking in copy_backptr()
The check `src > dst' in the form `&c->out[-back] > c->out' invokes
pointer overflow, which is undefined behavior in C.

Remove the check.  Also replace `&c->out[-back] < c->out_start' with
a safe form `c->out - c->out_start < back' to avoid overflow.

CC: libav-stable@libav.org

Signed-off-by: Xi Wang <xi.wang@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
(cherry picked from commit ca6c3f2c53)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 18:17:42 +02:00
Michael Niedermayer
753f0738ca avfilter/filtfmts: Support dynamically allocated in/outputs
Fixes crash
Fixes Ticket3468

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 59c7615d58)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 18:16:21 +02:00
Michael Niedermayer
85b00d798f iavcodec/vc1dec: Fix missing {}
Fixes part of Ticket3466
Found-by: Andrey_Karpov / PVS-Studio
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit cb53beb81a)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 18:16:21 +02:00
Michael Niedermayer
8d60d8bef2 avfilter/vf_deshake: fix loss of precission with odd resolutions
Fixes part of Ticket3466
Found-by: Andrey_Karpov / PVS-Studio
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 73734282e0)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 18:16:21 +02:00
Michael Niedermayer
53c02d04e4 avcodec/g723_1: add assert to help static code analyzers
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 1457f3fd90)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 18:16:21 +02:00
Michael Niedermayer
90c7dfb907 avcodec/diracdec: fix undefined behavior with shifts
Fixes part of Ticket3466
Found-by: Andrey_Karpov / PVS-Studio
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit b8598f6ce6)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 18:16:21 +02:00
Michael Niedermayer
424b00a300 avformat/mpegts: Remove redundant check
Fixes part of Ticket3466
Found-by: Andrey_Karpov / PVS-Studio
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit ff6fa0b4b9)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 18:16:21 +02:00
Michael Niedermayer
7b38ea4003 avcodec/mjpegen: Fix declared argument size
Fixes part of Ticket3466
Found-by: Andrey_Karpov / PVS-Studio
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 256f530603)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 18:16:20 +02:00
Michael Niedermayer
71104f7cb0 swscale/swscale: fix srcStride/srcSlice typo
Fixes part of Ticket3466
Found by: Andrey_Karpov / PVS-Studio
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 14fa7fc6a8)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 18:16:20 +02:00
Michael Niedermayer
98fe429ba5 avcodec/x86/idct_sse2_xvid: fix non C99 inline function
Found-by: Matt Oliver <protogonoi@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 46d5625f44)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 18:16:20 +02:00
Anthoine Bourgeois
90cf672d7a avcodec/dirac_arith: Fix build with PIC and stack-check options
Fixes Ticket3540

The function dirac_get_arith_bit in libavcodec/dirac_arith.h can't be
built with PIC and check-stack because the asm code needs 6 registers
and PIC and check-stack options take 1 each and x86 is quite limited
in this area.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit d8ab7f31dd)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 18:16:20 +02:00
Michael Niedermayer
4af56488c8 swscale/x86/swscale_template: loose hardcoded dstw_offset
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit f6759d9ad4)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 18:16:20 +02:00
Michael Niedermayer
4065e55759 swresample/resample: use av_malloc_array() where appropriate
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 5027f39712)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 18:16:20 +02:00
Michael Niedermayer
fe97363c38 swresample/dither: use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit a5290cb1ac)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 18:16:20 +02:00
Michael Niedermayer
ce95904013 swresample/resample: Limit filter length
Related to CID1197063

The limit choosen is arbitrary and much larger than what makes sense.
It avoids the need for checking arithmetic operations with the length for overflow

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit f9158b01d0)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 18:16:20 +02:00
Michael Niedermayer
a61998e4f4 avcodec/msrle: check return code for success before use
The check is possibly redundant, but better to check for errors
that dont occur than to skip the check and crash

Fixes CID1197060

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 754f84663e)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 18:16:20 +02:00
Michael Niedermayer
e5546d4871 avcodec/wma: use av_freep(), do not leave stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit d167faafe9)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 18:16:20 +02:00
Lukasz Marek
8f7ebb88b8 lavu/opt: validate range before dereference
This change make error handling simplier.
av_opt_freep_ranges may be called when some ranges are NULL,
for example after memory allocation fail.

Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 3aac5fcfa9)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 18:16:20 +02:00
Michael Niedermayer
e897eb108b avcodec/libx264: move where x264opts is applied down so it isnt overridden by avctx & defaults
fixes x264opts opengop=1

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 64b79141bd)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 18:16:20 +02:00
Michael Niedermayer
2af3a04164 avcodec/h264_mp4toannexb_bsf: prepend global headers before any in stream parameter sets
Fixes h264_mp4toannexb_bsf_failure.mkv

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 289b149cec)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 18:16:20 +02:00
Michael Niedermayer
92ca3578bf avcodec/x86/mpegvideoenc_template: fix integer overflow
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 18:16:20 +02:00
Michael Niedermayer
1be06c8531 swscale/swscale: fix integer overflow
Should fix fate failure with clang ftrapv

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit c9c0451224)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 18:16:20 +02:00
Carl Eugen Hoyos
6011b806dd Show duration for large asf files as written in the file header.
Fixes ticket #3428.
(cherry picked from commit e3fd263f0b)
2014-06-21 23:08:55 +02:00
Carl Eugen Hoyos
3ac85d70f0 Revert two backports to release/1.2 that broke fate.
Revert "ff_id3v2_read: add option to limit ID3 magic number search"
Revert "ff_id3v2_free_extra_meta: set the pointer pointing to extra_meta to NULL"

This reverts commit 7f8aa37bc3.
This reverts commit 5219e20d58.
2014-06-20 01:58:14 +02:00
Martin Storsjö
401b3dafd9 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.

Fixes part of Ticket3701

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit fa8f060b75)

Conflicts:
	tests/ref/acodec/adpcm-ima_qt-trellis
2014-06-10 00:24:30 +02:00
Martin Storsjö
71516ac175 adpcm: Fix trellis encoding of IMA QT
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].

Fixes part of Ticket3701

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit a32765c425)
2014-06-10 00:24:22 +02:00
Carl Eugen Hoyos
0983720cf2 avcodec/utvideodec: Increase vlc len
Fixes a regression since fb3e380 similar to ticket #2661,
reported by fluffrabbit at aol dot com.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 673716c54b)

Conflicts:
	libavcodec/utvideodec.c
2014-06-10 00:21:05 +02:00
Michael Niedermayer
9e9d92bbcc avformat/avidec: allow rounding errors between scale/rate and timebase
Fixes Ticket3670

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 571ab8344a)

Conflicts:
	libavformat/avidec.c
2014-06-10 00:18:22 +02:00
Michael Niedermayer
3d79041f85 sws: dont use the optimized 410->420 unscaled conversion when height%4
Fixes Ticket3594
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 421b21ca8a)
2014-05-01 18:32:45 +02:00
Michael Niedermayer
2c71734d9e avcodec/vorbisdec: try to workaround libvorbisenc bug
Fixes Ticket3590

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 0a266cb55a)

Conflicts:
	libavcodec/vorbisdec.c
2014-05-01 18:32:13 +02:00
Stefano Sabatini
0759bdc315 ffprobe: fix scaling of vali in value_string() in case -prefix is selected
Fix trac ticket #3523.
(cherry picked from commit 1ba59b1cbe)
2014-04-23 17:22:49 +02:00
Michael Niedermayer
1530fbccac avformat/avidec: Speed up keyframe detection code
Fixes Ticket3531

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 57fb570908)

Conflicts:
	libavformat/avidec.c
2014-04-23 17:22:06 +02:00
Peter Ross
7f8aa37bc3 ff_id3v2_read: add option to limit ID3 magic number search
Several chunked formats (AIFF, IFF,DSF) store ID3 metadata within an 'ID3 '
chunk tag. If such chunks are stored sequentially, it is possible for the
ID3v2 parser to confuse the chunk tag for the ID3 magic number. e.g.

[1st chunk tag ('ID3 ') | chunk size] [ID3 magic number | metadata ...]
[2nd chunk tag ('ID3 ') | chunk size] [ID3 magic number | metadata ...]

Fixes ticket #3530.

Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 5331773cc3)

Conflicts:
	libavformat/dsfdec.c
	libavformat/id3v2.c
2014-04-19 13:28:22 +02:00
Peter Ross
5219e20d58 ff_id3v2_free_extra_meta: set the pointer pointing to extra_meta to NULL
Fixes ticket #3530.

Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit c94305ae23)
2014-04-19 13:20:04 +02:00
Michael Niedermayer
8ee704c392 avformat/matroskadec: support SVQ3 as generated by mkvtoolnix-6.6.0
Fixes part of Ticket3256

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 5800b08572)

Conflicts:
	libavformat/matroskadec.c
2014-04-16 19:51:51 +02:00
Michael Niedermayer
9060c10c65 avformat/matroskaenc: wrap V_QUICKTIME codec private in something that looks like its part of quicktime stsd
This is needed for matroska spec compliance
Fixes playback of SVQ3 in matroska with vlc
Fixes Ticket 3256

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 8456bd2c0f)
2014-04-16 19:46:38 +02:00
Michael Niedermayer
5202621ac4 avformat/mov: fix keyframe flags for sample from chromium Issue 340865
Fixes ticket #3362.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit a0911b0597)
2014-03-24 23:30:34 +01:00
Hendrik Leppkes
da6a8c9cfd avformat/mov: only force parsing for video tracks if stss is empty
Fixes playback of some AAC streams, which are otherwise mangled by the
parser, and stss is typically only valid for video anyway.

Fixes a regression since e41ea866.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 019247bdc3)
2014-03-24 23:30:09 +01:00
Michael Niedermayer
f07cebcd91 avcodec/h263dec: Fix use of uninitialized memory from the bitstream buffer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-18 18:06:17 +01:00
Michael Niedermayer
d0ba12fa0c swscale/x86/swscale: fix missing xmm clobbers in yuv2yuvX_sse3()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 6c47a4e972)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-18 17:07:58 +01:00
Michael Niedermayer
a58053dc24 avutil/timestamp: Warn about missing __STDC_FORMAT_MACROS for C++ use
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 8b02dfd37c)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-18 17:07:58 +01:00
Peter Ross
b1a960cc83 avcodec/adpcm: squelch 'mismatch in coded sample count' warning for AV_CODEC_ID_ADPCM_EA_R2/3
These ADPCM codecs include a per-frame flag that enables a raw 16-bit mode. Therefore
the the number of samples returned by get_nb_samples() is only ever approximate.

Fixes ticket #3460.

Signed-off-by: Peter Ross <pross@xvid.org>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 7380201451)
2014-03-17 16:06:20 +01:00
Peter Ross
620d80d572 avcodec/adpcm: ADPCM_IMA_DK3 packets are padded to 16-bit packet boundary
Fixes ticket #3461.

Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit d1bb17940d)
2014-03-17 16:06:09 +01:00
Michael Niedermayer
e3ce3d373c avcodec/h264: be more tolerant on what pixel format changes trigger reinits
Fixes Ticket3260

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 8e92ff2546)

Conflicts:
	libavcodec/h264.c
2014-03-17 16:06:04 +01:00
Michael Niedermayer
f31682f2f2 avformat/flvdec: discard inconsistent timestamps
Fixes Ticket3425

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit dbc3e1109c)

Conflicts:
	libavformat/flvdec.c
2014-03-13 07:37:58 +01:00
Michael Niedermayer
fb44a3e4a3 avcodec/vorbisdec: use the stored previous window type only when the actual previous is not known
Fixes Ticket3432

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 5171ae781a)
2014-03-13 07:35:17 +01:00
Michael Niedermayer
6ee47bd008 Merge remote-tracking branch 'TimothyGu/release/1.2' into release/1.2
* TimothyGu/release/1.2:
  configure: use pkg-config to detect libbluray

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-10 13:15:42 +01:00
Luca Barbato
7819750157 avidec: Let the inner dv demuxer take care of discarding
Fixes ticket #1796.
(cherry picked from commit c8f0b20b4a)

Conflicts:
	libavformat/avidec.c
2014-03-09 14:05:17 +01:00
Timothy Gu
0d819ed318 configure: use pkg-config to detect libbluray
The current configure fails when static libbluray is compiled with libxml2
support.

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit baa650cc79)
Signed-off-by: Timothy Gu <timothygu99@gmail.com>

Conflicts:
	configure
2014-03-06 17:55:46 -08:00
Michael Niedermayer
e63346f7e8 update for 1.2.6
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-05 03:55:25 +01:00
Michael Niedermayer
ddcccababe avcodec/utvideoenc: fix slice_bits size
Fixes assertion failure

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 0a8c90202b)

Conflicts:

	libavcodec/utvideoenc.c
(cherry picked from commit 57522ca79cc38c279123596d3288ddbf56fa8903)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-05 03:06:10 +01:00
Michael Niedermayer
b580bae53a avcodec/snow: split block clipping checks
Fixes out of array read
Fixes: d4476f68ca1c1c57afbc45806f581963-asan_heap-oob_2266b27_8607_cov_4044577381_snow_chroma_bug.avi
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 61d59703c9)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-05 03:06:10 +01:00
Michael Niedermayer
9085cdd677 avcodec/ansi: fix integer overflow
Fixes out of array read
Fixes: 5f9698e86d92f19bb08d54ff0d57027f-signal_sigsegv_b30756_3795_cov_2693691257_ansi256.ans
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit d42ec8433c)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-05 03:06:10 +01:00
Michael Niedermayer
ab31a9ee4a avcodec/msrle: use av_image_get_linesize() to calculate the linesize
Fixes out of array access
Fixes: 14a74a0a2dc67ede543f0e35d834fbbe-asan_heap-oob_49572c_556_cov_215466444_44_001_engine_room.mov
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit c919e1ca2e)

Conflicts:

	libavcodec/msrle.c
(cherry picked from commit bc1c8ec5e6)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-05 03:06:10 +01:00
Michael Niedermayer
a57d29a50c avformat/mpegtsenc: Check data array size in mpegts_write_pmt()
Prevents out of array writes

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 842b6c14bc)

Conflicts:

	libavformat/mpegtsenc.c
(cherry picked from commit e87de3f50b765134588d0b048c32ed4b8acc16fb)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-05 03:06:10 +01:00
Michael Niedermayer
11b14d0e63 avcodec/wmalosslessdec: fix mclms_coeffs* array size
Fixes corruption of context
Fixes: 8835659dde6a4f7dcdf341de6a45c6c8-signal_sigsegv_1dce67b_4564_cov_2504444599_classical_22_16_1_14000_v3c_0_extend_0_29.wma
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit ec9578d54d)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-05 03:06:10 +01:00
Justin Ruggles
bb683ebdba samplefmt: avoid integer overflow in av_samples_get_buffer_size()
CC:libav-stable@libav.org
(cherry picked from commit 0e830094ad)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-05 03:06:10 +01:00
Michael Niedermayer
b3cc4bd18f avcodec/vc1: reset fcm/field_mode in non advanced header parsing
Fixes NULL pointer dereference
Fixes: signal_sigsegv_1ab8bf4_2847_cov_4254117347_SA10091.vc1
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit b51e935477)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-05 03:06:10 +01:00
Michael Niedermayer
ca9d302519 avcodec/takdec: always check bits_per_raw_sample
Fixes out of array access
Fixes: asan_heap-oob_19c7a94_6470_cov_1453611734_luckynight-partial.tak
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit f58eab1512)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-05 03:06:10 +01:00
Michael Niedermayer
e925fd215f avcodec/vmnc: Check that rectangles are within the picture
Prevents out of array accesses with CODEC_FLAG_EMU_EDGE

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 6ba02602aa)

Conflicts:

	libavcodec/vmnc.c

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 7c17207ab9)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-05 03:06:10 +01:00
Michael Niedermayer
5e01cd3b69 dnxhdenc: fix mb_rc size
Fixes out of array access with RC_VARIANCE set to 0

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit f1caaa1c61)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-05 03:06:10 +01:00
Anton Khirnov
2256b2a3c1 pthread_frame: flush all threads on flush, not just the first one
avcodec_flush_buffers() must release all internally held references
according to its documentation, for which all the threads need to be
flushed.

Bug-Id: vlc/9665
(cherry picked from commit d1f9563d50)

Conflicts:
	libavcodec/pthread_frame.c
2014-03-04 01:39:11 +01:00
Martin Storsjö
89c917fcd9 rtpdec_asf: Copy the need_parsing field from the chained demuxer
This fixes playback of mp3 streams in rtp/asf. This used to work
until 950482bf, but mostly by coincidence.

Signed-off-by: Martin Storsjö <martin@martin.st>
(cherry picked from commit 2aec9e228c)

Fixes ticket #3223
2014-01-27 15:48:27 +01:00
Reimar Döffinger
8a38deb789 Fix compilation on ARM with android gcc 4.7
With the current code it fails due to running out
of registers.
So code the store offsets manually into the assembler
instead.
Passes "make fate-dts".

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
(cherry picked from commit 8067f55edf)

Fixes ticket #2756.
2014-01-26 16:23:58 +01:00
Carl Eugen Hoyos
4fdcb1e1b7 Allow decoding of slightly broken Nikon avi files.
Fixes ticket #3330.
(cherry picked from commit f9c2d4d17e)

Conflicts:
	libavformat/avidec.c
2014-01-20 22:40:36 +01:00
Michael Niedermayer
b902ba478c avcodec/mjpegdec: Dont skip picture allocation if theres no picture allocated
Fixes Ticket 3245
(cherry picked from commit ad8d063f23)
2014-01-20 22:39:50 +01:00
Michael Niedermayer
f0fabcc6ed avcodec/mjpegdec: Dont treat the lack of a startcode differently from end of the bitstream
Fixes Ticket3303

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 31e703e899)

Conflicts:
	libavcodec/mjpegdec.c
2014-01-19 14:43:47 +01:00
Michael Niedermayer
bd29764c61 avcodec/aacdec: Dont fail if channels arent known yet
Fixes Ticket3312

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 676a395ab9)

Conflicts:
	libavcodec/aacdec.c
2014-01-19 14:41:05 +01:00
Michael Niedermayer
d81ccf1fb2 avcodec/mjpegdec: only run EOI emulation code when there was a scan
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 361e27a3d8)
2014-01-19 14:38:03 +01:00
Michael Niedermayer
67d20495f5 avcodec/mjpegdec: update cur_scan also for non-LS jpeg
This should make no difference but the variable will be used in a subsequent commit

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 8893f31e20)

Conflicts:
	libavcodec/mjpegdec.c
2014-01-19 14:37:32 +01:00
Michael Niedermayer
5a0a156e88 cmdutils: update year
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 02:53:32 +01:00
Michael Niedermayer
884094deba Update for 1.2.5
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 02:52:53 +01:00
Michael Niedermayer
db20610c49 wmaprodec: Fix null pointer dereference in decode_frame()
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit c7a7605656)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 01:58:13 +01:00
Michael Niedermayer
15a736483e h264: check mb_width/height
Fixes inconsistency that leads to out of array accesses with threads

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 5a9e376049)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 00:52:56 +01:00
Michael Niedermayer
c8b90c7cd5 h264: Always decode MMCOs into temprary array
When decoding succeeded the array is copied into the permanent one.
This prevents inconsistencies
Fixes assertion failure

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit c40f51e15b)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 00:52:56 +01:00
Michael Niedermayer
97978b7ae8 h264: move the default_ref_list_done check down after its inputs have been written
Fixes out of array read

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 11c3381ce3)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 00:52:56 +01:00
Michael Niedermayer
3f2efac0fe h264: Move slice_table clean out of frame_start
Fixes inconsistency ultimately leading to an out of array read

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 746016598d)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 00:52:56 +01:00
Michael Niedermayer
b9058f58bd h264_refs: Check for attempts to assign pictures to short & long.
Fixes null pointer dereference

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 92002db3eb)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 00:49:11 +01:00
Michael Niedermayer
47faf347a0 h264_cavlc: fix assertion failure due to reading too long vlc
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 10ece44d09)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 00:48:58 +01:00
Michael Niedermayer
3d1e4b7ca5 avcodec/aacps: fix number of bands used with ipd/opd
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f861d16355f_1664_File1_fixed.aac
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 6433b393ba)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 00:47:25 +01:00
Michael Niedermayer
a2bea0df0e aacps: correct opdipd code to match spec
This fixes out of array reads

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 66e9716a36)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 00:47:18 +01:00
Michael Niedermayer
483b2016bb avcodec/ansi: Fix right/bottom end checks
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 6021615bbe)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 00:45:22 +01:00
Michael Niedermayer
271f5d68b9 avcodec/ansi: Check x/y
This prevents out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit e91fd754c6)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 00:45:07 +01:00
Michael Niedermayer
dee327b0e7 shorten: fix "off by padding" bug
Fixes array overread

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit ad22767cb6)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 00:42:23 +01:00
Michael Niedermayer
e438fd3be9 avcodec/lcldec: Check that dimensions are a multiple of the subsample factors
Other dimensions would not work correctly currently,
also ask for a sample for files that fail this check.

This fixes an integer overflow leading to out of array
accesses.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 1e00bbb10c)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 00:35:12 +01:00
Michael Niedermayer
3d380ffde9 avformat/vqf: check number of channels before use.
Fixes division by zero

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit a527e69259)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 00:35:12 +01:00
Michael Niedermayer
84b100396e dxa: check vectors of 2x2 motion blocks
Fixes out of array reads

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit ead590c256)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 00:35:12 +01:00
Michael Niedermayer
7855083443 dxa: check vectors of 4x4 motion blocks
Fixes out of array reads

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit f96e0eb238)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 00:35:12 +01:00
Michael Niedermayer
ca7f64e0ac shorten: allocate space for padding
Fixes array overread

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 89d998f1c1)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 00:35:12 +01:00
Michael Niedermayer
2b26f8c6bf evrcdec: fix sign error
The specification wants round(abs(x))) * sign(x) which is
equivakent to round(x)

Fixes out of array access

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit f18d2dff11)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 00:35:12 +01:00
Michael Niedermayer
6e3697b985 eamad: Check against minimum supported dimensions
Fixes out of array reads

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit e756635964)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 00:35:12 +01:00
Michael Niedermayer
c93501687c xan: Check for overlapping copies
No valid samples i found use such copies

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit bdfe60c769)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 00:35:12 +01:00
Michael Niedermayer
bb6f466794 avcodec/bitstream: check codes in ff_init_vlc_sparse()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 6998af4a40)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 00:35:12 +01:00
Michael Niedermayer
08a319549a avcodec/bitstream: Check bits in ff_init_vlc_sparse()
Fixes out of array reads

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit fb3e3808ae)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 00:35:12 +01:00
Michael Niedermayer
d1da1c8384 avcodec/mpegvideo_motion: Use a field from the current frame if the last is unavailable in DMV & 16x8
Fixes null pointer dereference

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 42bcc4082d)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 00:35:12 +01:00
Michael Niedermayer
8ded3738d1 avcodec/c93: Check for block overlap.
Fixes overlapping memcpy()

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 6b657ac788)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 00:35:12 +01:00
Michael Niedermayer
a2186a8054 avcodec/mpegvideo_motion: Check P field references
If a reference is unavailable use a field from the current
picture
Fixes null pointer dereference

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 23daee0dcc)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 00:35:12 +01:00
Michael Niedermayer
a92b73da99 svq3: use memmove to avoid overlap in memcpy.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 4c8ce750ab)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 00:35:12 +01:00
Michael Niedermayer
ab38b39059 evrcdec: use memmove() instead of memcpy() when regions can overlap.
This occurs also with valid files.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 5ae484e350)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 00:35:12 +01:00
Michael Niedermayer
5dde8ba59e avutil/log: skip IO calls on empty strings
These occur when no context is set for example, thus they are common

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit a044a183a3)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 00:35:12 +01:00
Michael Niedermayer
b841869477 avcodec/error_resilience: check that er is supported before attempting to read the status of the previous slice
Fixes incorrectly set error_occured and improves speed

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 90539cea33)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 00:35:12 +01:00
Michael Niedermayer
3488e9e269 avcodec/error_resilience: factor er_supported() check out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit afb18c5578)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 00:35:12 +01:00
Paul B Mahol
5a8d78ab7f avcodec/libopusenc: change default frame duration to 20 ms
20 ms is used by libopus encoder.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
(cherry picked from commit 74906d3727)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 00:35:12 +01:00
Michael Niedermayer
dea7f1c62e avcodec: move end zeroing code from av_packet_split_side_data() to avcodec_decode_subtitle2()
This code changes the input packet, which is read only and can in
rare circumstances lead to decoder errors. (i run into one of these in
the audio decoder, which corrupted the packet during av_find_stream_info()
so that actual decoding that single packet failed later)
Until a better fix is implemented, this commit limits the problem.
A better fix might be to make the subtitle decoders not depend on
data[size] = 0 or to copy their input when this is not the case.
(cherry picked from commit 01923bab98)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 00:35:12 +01:00
Michael Niedermayer
c7027ae738 h264: Do not treat the initial frame special in handling of frame gaps
The not handling of frame gaps has lead to the lack of a dummy reference
frame, which has lead to the failure of decode_slice_header() which has
lead to one SEI recovery message being skiped which had introduced a
slightly suboptimal recovery point for at least 1 h264 file compared to
JM.

Found-by: Carl & BugMaster
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 9e5ef1c5c3)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 00:35:12 +01:00
Michael Niedermayer
971b13752d avformat/thp: force moving forward
Fixes infinite loop
Fixes Ticket3098

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 6c4b87d3d6)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 00:35:12 +01:00
Michael Niedermayer
d0ed672484 avformat/thp: fix variable types to avoid overflows
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 2b1056e4e2)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 00:35:12 +01:00
Michael Niedermayer
751e684aae avcodec/jpeglsdec: check err value for ls_get_code_runterm()
Fixes infinite loop
Fixes Ticket3086

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit cc0e47b550)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 00:35:12 +01:00
Michael Niedermayer
803ca5c349 avutil/opt: initialize ret
Fixes CID1108610
Fixes use of uninitialized variable

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 2d8ccf0adc)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 00:35:12 +01:00
Michael Niedermayer
252002aec1 avcodec/utils: add some saftey checks to add_metadata_from_side_data()
This fixes potential overreads with crafted files.

Found-by: wm4
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 838f461b07)

Conflicts:

	libavcodec/utils.c
2014-01-16 00:35:12 +01:00
Michael Niedermayer
d805a51713 avcodec/avpacket/av_packet_split_side_data: ensure that side data padding is initialized
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 240fd8c96f)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 00:35:12 +01:00
Michael Niedermayer
45dd7df83b avfilter/ff_insert_pad: fix order of operations
Fixes out of bounds access
Fixes CID732170
Fixes CID732169

No filter is known to use this function in a way so the issue can be reproduced.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit ab2bfb85d4)

Conflicts:

	libavfilter/avfilter.c
(cherry picked from commit 86591b244f3a27293153896813f5569b49b2f5c0)

Conflicts:

	libavfilter/avfilter.c
2014-01-16 00:35:12 +01:00
Michael Niedermayer
da82be0cc0 ffserver: strip odd chars from html error messages before sending them back
Fixes Ticket3034

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 885739f3b4)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 00:35:12 +01:00
Paul B Mahol
b8b77aefe8 avcodec/ffv1dec: fix format detection
Fixes crash with carefuly designed files.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
(cherry picked from commit a27227d401)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 00:35:12 +01:00
Carl Eugen Hoyos
30147f14d4 Do not read mkv audio bit_depth if bits_per_coded_sample is already set.
This allows decoding broken mkv files containing G.726 audio.
(cherry picked from commit 1132937077)
2014-01-16 00:28:49 +01:00
Carl Eugen Hoyos
d6a705d778 Do not set mkv bit_depth to av_get_bytes_per_sample() for G.726.
The value is wrong and leads to broken files.
(cherry picked from commit 565102dcac)
2014-01-16 00:28:15 +01:00
Michael Niedermayer
e24b33cd68 avcodec/msvideo1enc: fix SKIPS_MAX
Fixes Ticket3270

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit fb8f5d0510)
2014-01-09 11:45:45 +01:00
Carl Eugen Hoyos
6f7fd2f589 Use the h264 parser when decoding VSSH in avi.
Fixes ticket #3261 visually.

Analyzed-by: Michael Doilnitsyn
(cherry picked from commit 94cf4f8bac)

Conflicts:
	libavformat/avidec.c
2014-01-08 10:24:03 +01:00
Michael Niedermayer
f974c54909 avformat/mxfdec: detect loops during header parsing
The header parser uses forward and backward parsing, making the
bulletproof prevention of loops difficult, thus this simple
detection code.
If someone improves the forward/backward parsing so it cannot loop
then this commit should be reverted

Fixes Ticket3278

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 1c010fd035)
2014-01-08 10:22:31 +01:00
Michael Niedermayer
71b3235cea avformat/oggdec: dont read timestamps from EOS pages of ogm videos
Some muxers store invalid timestamps there, which breaks seeking
Fixes Ticket2739

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 5e0c7eab2a)
2014-01-05 17:27:29 +01:00
Alexander Strasser
dcd1acce1a configure: Special case libfreetype test
Include the freetype header, in-directly through a macro, like it
is done in the drawtext filter. Do not break if the header is moved.

Unfortunately the drawtext filter included the file where the include
macros are defined in a wrong way. This is not needed and breaks the
build. Remove that #include line too.

(cherry picked from commit cea5812fa7)

Signed-off-by: Alexander Strasser <eclipse7@gmx.net>

Conflicts:
	configure
2013-12-29 11:37:29 +01:00
Michael Niedermayer
5c502e5d41 nutenc/write_index: warn if 2 consecutive keyframes have the same PTS and discard the 2nd
This fixes an assertion failure and regression and restores previous behaviour
Fixes Ticket3197

An alternative would be to fail hard in this case and refuse to mux such data.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit de2a2caf4d)
2013-12-24 08:06:42 +01:00
Peter Ross
fa45feefad wtvenc: populate VIDEOINFOHEADER2
Fixes ticket #2835.

Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 6da21c1f81)

Conflicts:
	tests/ref/lavf/wtv
	tests/ref/seek/lavf-wtv
2013-12-24 07:59:01 +01:00
Peter Ross
9f3135b30b avformat/riffenc: indent
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit f93b0abe40)

Conflicts:
	libavformat/riffenc.c
2013-12-24 07:53:52 +01:00
Peter Ross
7ba102d008 riffenc: add option to ff_put_bmp_header to ignore extradata
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit fcbb94712d)

Conflicts:
	libavformat/riffenc.c
2013-12-24 07:52:36 +01:00
Martin Storsjö
3e65caf5bc arm: Don't clobber callee saved registers in scalarproduct
q4-q7/d8-d15 are supposed to not be clobbered by the callee.

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
(cherry picked from commit d307e408d4)
2013-12-21 09:55:05 +01:00
Michael Niedermayer
af7cbdf470 swscale/utils: check chroma width for fast bilinear scaler
Fixes artifacts where fast bilinear was used for downscaling chroma

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 037fc3b054)
2013-12-16 02:26:24 +01:00
Michael Niedermayer
414b377462 swscale/utils: remove useless ()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 554e913fd7)
2013-12-16 02:26:22 +01:00
Michael Niedermayer
86d4d4b011 avcodec/cabac: force get_cabac to be not inlined
works around bug in gccs inline asm register assignment
Fixes Ticket3177

gcc from 4.4 to 4.6 is affected at least, no non affected gccs known
clang seems not affected

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 0538b29ae8)
2013-12-09 10:36:54 +01:00
Michael Niedermayer
14f31df2cc ffmpeg: Fix forcing of the framerate for stream copy on input
Fixes Ticket2211

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 356363c898)
2013-11-29 11:27:12 +01:00
Clément Bœsch
d04e78805a build: avoid stdin stall with GNU AS probing.
a758c5e added probing for various tools, such as AS. Unfortunately, GNU
AS is reading stdin with -v, and thus configure is stalled with
configure arguments such as --as=as.

Fixes Ticket #1898.
(cherry picked from commit dbb41f93c1)
2013-11-18 14:49:08 +01:00
Michael Niedermayer
25c67b2165 avformat/utils: dont count attached pics toward the probesize
Such pics behave more like headers which we also dont count.
Fixes Ticket3146

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit a8dec360c5)
2013-11-18 14:48:53 +01:00
Michael Niedermayer
fd8af75109 avcodec/bink: fix seeking to frame 0
Fixes Ticket3088

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit cb52d6da0a)

Conflicts:
	libavcodec/bink.c
2013-10-31 01:01:52 +01:00
Michael Niedermayer
93d720b040 avformat/utils: do not override pts in h264 when they are provided from the demuxer
Fixes Ticket2143

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 1e5271a9fd)
2013-10-27 19:43:26 +01:00
Michael Niedermayer
720e2d4143 h264: make flush_change() set mmco_reset
This ensures that frames do not get mixed on context reinits

Fixes Ticket2836

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 3c9dd93faa)
2013-10-26 02:42:40 +02:00
Michael Niedermayer
9195ef6f65 avcodec/h264: reduce noisiness of "mmco: unref short failure"
Do not consider it an error if we have no frames and should discard one.
This condition can easily happen when decoding is started from an I frame

Fixes Ticket2811

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 08a8976196)

Conflicts:
	libavcodec/h264_refs.c
2013-10-26 01:06:43 +02:00
Michael Niedermayer
833dce3818 avformat/mp3dec: perform seek resync in the correct direction
Fixes seeking to the last frame in CBR files
Fixes Ticket2773

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit ba8716df7f)
2013-10-26 01:05:12 +02:00
Michael Niedermayer
a8b6721bed avcodec/h264: do not trust last_pic_droppable when marking pictures as done
This simplifies the code and fixes a deadlock

Fixes Ticket2927
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 29ffeef5e7)

Conflicts:
	libavcodec/h264.c
2013-10-26 01:03:53 +02:00
Michael Niedermayer
1fe734f4d3 avcodec/h264_refs: modify key frame detection heuristic to detect more cases
Fixes Ticket2968

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 5ac6b6028f)
2013-10-24 11:07:37 +02:00
mrlika
311e58e478 lavd/v4l2: do not fail when VIDIOC_ENUMSTD returns EINVAL without a valid match
With some (buggy) drivers, the VIDIOC_G_STD ioctl returns a std_id that cannot
be matched with any of the enumerated v4l2_standard structures (for example
std_id = 0 or std_id = 0xffffff). Do not fail when we reach the end of the
enumeration without a valid match.

Fixes ticket #2370

Note: This commit message has been modified by Giorgio Vazzana, the original
commit message was:

"Fixed regression for mandatory VIDIOC_ENUMSTD support by v4l2"

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit ed72542539)
2013-10-24 11:02:35 +02:00
Michael Niedermayer
970109deaf avformat/wavdec: Dont trust the fact chunk for PCM
Fixes Ticket3033

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 83fc6c822b)

Conflicts:
	libavformat/wavdec.c
2013-10-24 11:01:33 +02:00
Michael Niedermayer
eff0bf7def avformat/matroskadec: only set r_frame_rate if the value is within reasonable limits
Fixes Ticket2451

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 6853e40106)
2013-10-24 10:57:14 +02:00
Michael Niedermayer
6559bb893f avformat/mov: force parsing of headers if stts is absent
Fixes Ticket2991

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit e41ea866fc)
2013-10-24 10:54:46 +02:00
Michael Niedermayer
14e258d847 update for 1.2.4
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-03 01:28:06 +02:00
Michael Niedermayer
ca47aec665 Merge remote-tracking branch 'TimothyGu/release/1.2' into release/1.2
* TimothyGu/release/1.2:
  doc/encoders: add doc for AAC encoder
  doc/encoders: improve libvo-aacenc doc
  doc/ffmpeg-formats: Add documentation for 3 parameters that have been missing
  doc/encoders: Remove options that were not there when branch was cut from master
  doc/encoders: reformat and add some clarification in libtwolame doc
  doc/encoders: reformat libmp3lame doc

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-03 01:18:26 +02:00
Michael Niedermayer
95e26d33d7 avcodec/parser: reset indexes on realloc failure
Fixes Ticket2982

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit f31011e9ab)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-03 01:04:19 +02:00
Michael Niedermayer
f32051cd73 avcodec/ffv1enc: update buffer check for 16bps
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 3728603f18)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-03 01:04:19 +02:00
Michael Niedermayer
c3ee5b4c36 avcodec/truemotion2: Fix av_freep arguments
Fixes null pointer dereference
Fixes Ticket2944

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit c54aa2fb0f)

Conflicts:

	libavcodec/truemotion2.c

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-03 01:04:19 +02:00
Michael Niedermayer
c17fd9f9ce avcodec/mjpegdec: Add some sanity checks to ljpeg_decode_rgb_scan()
These prevent the rgb ljpeg code from being run on parameters that it doesnt
support. No testcase available but it seems possible to trigger these.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 61c68000ed)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-03 01:04:18 +02:00
Michael Niedermayer
0f3cdddf38 avfilter/vf_fps: make sure the fifo is not empty before using it
Fixes Ticket2905

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit cdd5df8189)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-03 01:04:18 +02:00
Michael Niedermayer
a0d13f578b avcodec/dsputil: fix signedness in sizeof() comparissions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 454a11a1c9)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-03 01:04:18 +02:00
Michael Niedermayer
91e19ab930 ffv1dec: Check bits_per_raw_sample and colorspace for equality in ver 0/1 headers
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit b05cd1ea7e)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-03 01:04:18 +02:00
Michael Niedermayer
bb4126e250 ffv1dec: check that global parameters dont change in version 0/1
Such changes are not allowed nor supported

Fixes Ticket2906

Found-by: ami_stuff
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 547d690d67)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-03 01:04:18 +02:00
Michael Niedermayer
9902eef0f5 avcodec/ffv1dec: check global header version
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 20b965a1a4)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-03 01:04:18 +02:00
Timothy Gu
6db67ac2a4 doc/encoders: add doc for AAC encoder
Thanks-to: Kostya Shishkov <kostya.shishkov@gmail.com>
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
(cherry picked from commit 0e11790cf7)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-09-22 15:18:16 -07:00
Timothy Gu
85eeab4d22 doc/encoders: improve libvo-aacenc doc
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
(cherry picked from commit 81bbe49a0e)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-09-22 15:16:23 -07:00
Timothy Gu
4431ee1896 doc/ffmpeg-formats: Add documentation for 3 parameters that have been missing
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit b7dd459863)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>

Conflicts:
	doc/formats.texi
2013-09-22 15:14:57 -07:00
Timothy Gu
d2feaf2ba6 doc/encoders: Remove options that were not there when branch was cut from master
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-09-22 14:58:21 -07:00
Timothy Gu
0f73cb454d doc/encoders: reformat and add some clarification in libtwolame doc
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
(cherry picked from commit e45e72f5f8)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-09-22 14:58:21 -07:00
Timothy Gu
82cfb8c2db doc/encoders: reformat libmp3lame doc
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
(cherry picked from commit 40b8350b57)

Conflicts:
	doc/encoders.texi
2013-09-22 14:58:21 -07:00
Clément Bœsch
0a55c882cb avcodec/srtdec: fix potential overread.
(cherry picked from commit 3a54c221d5)

Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
2013-09-16 21:39:34 +02:00
Clément Bœsch
c09acf9882 avformat/subtitles: add a next line jumper and use it.
This fixes a bunch of possible overread in avformat with the idiom p +=
strcspn(p, "\n") + 1 (strcspn() can focus on the trailing '\0' if no
'\n' is found, so the +1 leads to an overread).

Note on lavf/matroskaenc: no extra subtitles.o Makefile dependency is
added because only the header is required for ff_subtitles_next_line().

Note on lavf/mpsubdec: code gets slightly complex to avoid an infinite
loop in the probing since there is no more forced increment.

NOTE:
Code of function ff_subtitles_next_line fixed by Alexander Strasser.

The original code from master did test the wrong character, but was
corrected by a subsequent commit. That commit however is not backported,
so it had to be fixed in this commit for the backport.

Conflicts:
	libavformat/mpl2dec.c

(cherry picked from commit 90fc00a623)

Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
2013-09-16 21:39:34 +02:00
Clément Bœsch
a0779a2ee5 avformat/srtdec: skip initial random line breaks.
I found a bunch of (recent) SRT files in the wild with 3 to 10 line
breaks at the beginning.

(cherry picked from commit cfcd55db16)

Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
2013-09-16 21:39:33 +02:00
Carl Eugen Hoyos
b4f90013ab Use rc_max_rate if no video bit_rate was specified when muxing mxf_d10.
Fixes ticket #2945.

Reviewed-by: Matthieu Bouron
(cherry picked from commit d73565d5dd)
2013-09-12 23:15:49 +02:00
Carl Eugen Hoyos
3a6fbb0c8e Store the video bit_rate in the context when muxing mxf.
This will allow using rc_max_rate if no bit_rate is specified (on remuxing).

Reviewed-by: Matthieu Bouron
(cherry picked from commit 52cf08b4c8)
2013-09-12 23:15:44 +02:00
Clément Bœsch
6a782e20d7 avformat/subtitles: check lower bound for duration overlap seeking.
(cherry picked from commit 1ca4bf930b)
2013-09-10 21:39:16 +02:00
Clément Bœsch
8cea63c48a avformat/vobsub: fix seeking.
(cherry picked from commit f8678dcef3)
2013-09-10 21:39:12 +02:00
Paul B Mahol
8f87e75c6c avformat/matroskaenc: remove bogus prores tag
Fixes: ffmpeg -i input -c:v prores output.mkv

Signed-off-by: Paul B Mahol <onemda@gmail.com>
(cherry picked from commit 14851ca5f5)

Conflicts:
	libavformat/matroskaenc.c
2013-09-08 22:12:31 +02:00
Carl Eugen Hoyos
06a927a6b5 Read h264 headers from v4l2 to allow stream-copying.
Fixes ticket #2882.
Analyzed and tested by William C Bonner.
(cherry picked from commit e337c9d564)
2013-09-05 22:55:33 +02:00
Paul B Mahol
3c523bdda8 w64dec: fix end position of summarylist guid
Noticed-by: James Almer

Signed-off-by: Paul B Mahol <onemda@gmail.com>
(cherry picked from commit 3e36dc8626)
2013-09-05 22:55:25 +02:00
Paul B Mahol
ece54c7085 w64dec: fix skipping of unknown guids
Regression since 14d50c1.
Fixes #2932.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
(cherry picked from commit 79b70e47a4)
2013-09-05 22:55:15 +02:00
Carl Eugen Hoyos
7eee79ea2f Avoid a deadlock when decoding wma.
Fixes ticket #2925.
(cherry picked from commit ec8a4841f7)
2013-09-02 08:56:32 +02:00
Michael Niedermayer
458933fdb8 avformat/lxfdec: use a parser to parse video frame headers
lxf needs a parser (or would need to set a few fields explicitly).
Fixes Ticket2917

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 8349be852b)
2013-09-01 10:01:25 +02:00
Michael Niedermayer
95d0baa952 avcodec/h264: set er.ref_count earlier
Fixes Ticket2910

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 93cf7b0195)
2013-09-01 10:01:22 +02:00
Michael Niedermayer
32cff0d3f0 avformat/avidec: match first index and first packet size=0 handling
Fixes Ticket2861

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 227a0eb5a9)

Conflicts:
	libavformat/avidec.c
2013-08-31 09:45:14 +02:00
Michael Niedermayer
ddce97c7b0 avcodec/pngdsp: fix (un)signed type in end comparission
Fixes out of array accesses
Fixes Ticket2919

Found_by: ami_stuff
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 86736f59d6)
2013-08-30 23:37:31 +02:00
Stefano Sabatini
26617b47fa doc/codecs: fix dangling reference to codec-options chapter
(cherry picked from commit b4bd21b7fe)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>

Conflicts:
	doc/codecs.texi
2013-08-27 01:21:34 +02:00
Michael Niedermayer
b3fb651a8a update for 1.2.3
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-27 00:26:24 +02:00
Stefano Sabatini
2da5b69020 doc/filters: review introductory example and explanation
In particular, fix wrong vertical mirroring command, and clarify
and extend explanation.

Based on a patch by littlebat <dashing.meng@gmail.com>.

Should fix trac ticket #2413.
(cherry picked from commit 215ca86475)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>

Conflicts:
	doc/filters.texi
2013-08-26 12:00:03 -07:00
Timothy Gu
b23642aa7e doc/encoders: add libxvid doc
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
(cherry picked from commit 6b255e5e70)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>

Conflicts:
	doc/encoders.texi
2013-08-26 11:29:32 -07:00
Timothy Gu
eae4dfd4e8 doc/encoders: partially rewrite and reformat libx264 docs
Format is based on the thread:
"[PATCH] doc/encoders: Add libopus encoder doc" (06-28-2013)
http://thread.gmane.org/gmane.comp.video.ffmpeg.devel/165368/

Also merge the two option sections (Mapping and Private options).

Patch partially edited by Stefano Sabatini.

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
(cherry picked from commit 11cb697501)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-08-26 11:29:16 -07:00
Timothy Gu
6fb2c03e1a doc/encoders: add libopus encoder doc
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
(cherry picked from commit 561e05136f)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-08-26 11:29:14 -07:00
Timothy Gu
1d6b261a24 doc/muxers: Add AIFF doc
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
(cherry picked from commit 4ec46b1160)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-08-26 11:28:25 -07:00
Timothy Gu
02f1ae5406 doc/decoders: document libopus decoder
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
(cherry picked from commit 7eb5288f17)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-08-26 11:28:25 -07:00
Timothy Gu
aaac34f5e6 doc/encoders: alphabetically list the encoders
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
(cherry picked from commit 934df3b037)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-08-26 11:27:39 -07:00
Timothy Gu
7858d261aa doc/decoders: Add libopencore-amrwb decoder doc
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
(cherry picked from commit 83647ace73)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-08-26 11:27:08 -07:00
Timothy Gu
f85c44264b doc/decoders: Document libopencore-amrnb decoder
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit b43860ee0c)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-08-26 11:27:08 -07:00
Timothy Gu
025e286757 doc/decoders: Document libilbc decoder
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 8cdea50f6e)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-08-26 11:27:08 -07:00
Timothy Gu
79ec45a455 doc/decoders: Document libgsm decoder
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit c16496c377)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-08-26 11:27:08 -07:00
Timothy Gu
09653c5444 doc/encoders: Add libopencore-amrnb doc
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 9ead06057a)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-08-26 11:27:01 -07:00
Timothy Gu
c788713589 doc/decoders: Document libcelt
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit e358044922)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-08-26 09:26:22 -07:00
Timothy Gu
f637fa5d33 doc/general: Make the license status of the Android libraries clearer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 6fe419bf73)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-08-26 09:25:53 -07:00
Timothy Gu
dc1881ee11 doc/encoders: Add libvo-amrwbenc doc
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 0ec65aa104)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>

Conflicts:
	doc/encoders.texi
2013-08-26 09:20:30 -07:00
Timothy Gu
24187a96ee doc/encoders: Add libvo-aacenc doc
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit ba7cb4807f)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-08-26 09:19:42 -07:00
Timothy Gu
c87f3c3ab4 doc/encoders: add documentation for libtwolame
(cherry picked from commit ea038b996d)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-08-26 09:19:35 -07:00
Timothy Gu
8f07c09b20 doc/encoders: Add documentation for libmp3lame
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 4703a345fb)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-08-26 09:19:29 -07:00
Timothy Gu
8e3581ab03 doc/filters: fix width/height typo in crop filter.
Signed-off-by: Clément Bœsch <ubitux@gmail.com>
(cherry picked from commit 874173002e)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-08-26 09:19:19 -07:00
Michael Niedermayer
5d3cd041fc avformat/matroskadec: check out_samplerate before using it in av_rescale()
Prevent assertion failure with damaged input

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 338f8b2eaf)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-26 04:51:06 +02:00
James Almer
9865f19f15 matroskadec: Improve TTA duration calculation
Calculate the duration as accurately as possible to improve decoding of samples
where the last frame is smaller than the rest.

Signed-off-by: James Almer <jamrial@gmail.com>
Approved-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit af248fa117)
2013-08-26 04:51:06 +02:00
Michael Niedermayer
90ed770192 matroskaenc: simplify mkv_check_tag()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 066111bf19)
2013-08-26 04:51:06 +02:00
James Almer
f9fa321734 lavf/matroskaenc: Check for valid metadata before creating tags
Tags must have at least one SimpleTag element to be spec conformant.
Updated lavf-mkv and seek-lavf-mkv FATE references as the tests were affected by
this.

Fixes ticket #2785

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 088ed53146)
2013-08-26 04:51:06 +02:00
Michael Niedermayer
a0e328d28b matroska_read_seek: Fix used streams for subtitle index compensation
Might fix Ticket1907 (I have no testcase so i cant test)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 4758e32a6c)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-26 04:51:06 +02:00
Michael Niedermayer
848e5cfc0f jpeg2000: check log2_cblk dimensions
Fixes out of array access
Fixes Ticket2895

Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 9a271a9368)

Conflicts:

	libavcodec/jpeg2000dec.c

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-25 20:23:53 +02:00
Michael Niedermayer
9d8795e598 avcodec/rpza: Perform pointer advance and checks before using the pointers
Fixes out of array accesses
Fixes Ticket2850

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 3819db745d)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-25 19:50:54 +02:00
Michael Niedermayer
64d440a3b4 avcodec/flashsv: check diff_start/height
Fixes out of array accesses
Fixes Ticket2844

Found-by: ami_stuff
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 880c73cd76)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-25 19:50:54 +02:00
Michael Niedermayer
42586c8754 avformat/paf: Fix integer overflow and out of array read
Found-by:  Laurent Butti <laurentb@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit f58cd2867a)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-25 19:50:54 +02:00
Michael Niedermayer
64d362fce7 avfilter: fix plane validity checks
Fixes out of array accesses

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit e43a0a232d)

Conflicts:

	libavfilter/vf_delogo.c
	libavfilter/vf_fieldmatch.c
	libavfilter/vf_fieldorder.c
	libavfilter/vf_hflip.c
	libavfilter/vf_kerndeint.c
	libavfilter/vf_lut.c
	libavfilter/vf_pad.c
	libavfilter/vf_showinfo.c
	libavfilter/vf_vignette.c

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-25 19:50:54 +02:00
Michael Niedermayer
c55a09a8b6 swr/rematrix: Fix handling of AV_CH_LAYOUT_STEREO_DOWNMIX output
Fixes Ticket2859

Note, testcases related to the downmix channels are welcome.
(id like to make sure this is working correctly now, as obviously it didnt
 work before ...)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit c56d4dab03)
2013-08-20 18:42:44 +02:00
Michael Niedermayer
a94404457b swr: clean layouts before checking sanity
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 6dfffe9200)
2013-08-20 18:42:40 +02:00
Michael Niedermayer
364495a351 movenc: ilbc needs audio_vbr set.
Without this the block_align or bitrate value is not available to the decoder

Fixes Ticket2858

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 3d64845600)
2013-08-20 18:42:13 +02:00
Michael Niedermayer
f9c872622e avcodec/kmvc: fix MV checks
Fixes Ticket2813
Fixes regression since 70b5583

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 3cd8aaa2b2)
2013-07-31 02:56:15 +02:00
Paul B Mahol
9f2d73168f Revert "pnm: remove nonsense code"
Breaks decoding pgms with 255 < maxval < 65535.

Found-by: Carl Eugen Hoyos <cehoyos@ag.or.at>.

This reverts commit a0348d0966.
(cherry picked from commit 768e40b451)
2013-07-29 00:02:59 +02:00
Michael Niedermayer
930d035e72 update for 1.2.2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-28 00:24:46 +02:00
Michael Niedermayer
875649bfae avformat/dtsdec: Improve probe, reject things looking like analog signals
Fixes Ticket2810

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 6663205338)

Conflicts:
	libavformat/dtsdec.c
2013-07-26 12:16:29 +02:00
Rémi Denis-Courmont
70127070dd mpeg12: Ignore slice threading if hwaccel is active
Slice threading does not work with hardware acceleration, as decoding
is per-picture.  This fixes Bugzilla #542.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
(cherry picked from commit 93a51984a2)

Conflicts:
	libavcodec/mpeg12dec.c
2013-07-26 11:43:38 +02:00
Michael Niedermayer
d83ab33715 swscale/input: fix 16bit gbrp input
Fixes Ticket2793

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit a4b55bbb6f)

Conflicts:
	libswscale/input.c
2013-07-19 14:59:58 +02:00
Michael Niedermayer
06190d75d0 avformat/matroskadec: Detect conflicting sample rate/default_duration
Fixes Ticket2508

Thanks-to: Moritz Bunkus
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 6158a3bcdf)
2013-07-16 11:47:52 +02:00
Michael Niedermayer
c9ea1f7fc5 Merge remote-tracking branch 'jamrial/release/1.2' into release/1.2
* jamrial/release/1.2:
  oggparseskeleton: avoid header parsing failure
  oggparseskeleton: Replace avpriv_report_missing_feature() with a normal av_log() call
  oggparseskeleton: Fix fisbone header parsing

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-15 01:20:44 +02:00
Michael Niedermayer
47de8ccf42 avfilter/af_earwax: Fix out of array accesses on odd packets
Found-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 0a3a0edd52)

Conflicts:

	libavfilter/af_earwax.c

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-10 19:07:10 +02:00
Michael Niedermayer
72c1de649a avcodec/qdm2: initialize sign_bits
Fixes non deterministic output

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 8f09957194)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-10 19:05:23 +02:00
Michael Niedermayer
5e3e67f977 avcodec/qdm2: store bits in an integer instead of float variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit fbe159e850)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-10 19:05:21 +02:00
Luca Barbato
221bbd002c atrac3: fix error handling
decode_tonal_components returns a proper AVERROR.

Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 5eaed6d336)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-10 18:56:45 +02:00
Luca Barbato
fffc9316da indeo: Properly forward the error codes
If the tile data size does not match the buffer size it did not
return an AVERROR_INVALIDDATA causing futher corruption later.

Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
(cherry picked from commit 7388c0c586)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-10 18:51:42 +02:00
Michael Niedermayer
9a87ba0933 update all trac links to use the trac subdomain
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-10 18:46:35 +02:00
Dale Curtis
d8538a1002 avformat/utils: Keep internal and external av_read_frame() packets in sync.
Otherwise, during error conditions, the caller will be left with
dangling pointers to a destructed packet => boom.

BUG=242786
TEST=ffmpeg_regression_tests

Commit slightly simplified by commiter
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit c54a1565f5)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-10 18:46:35 +02:00
Michael Niedermayer
6cb33e0763 mpeg12dec: avoid reinitialization on PS changes when possible.
Fixes Ticket2574

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 970c8df735)

Conflicts:
	libavcodec/mpeg12dec.c
2013-07-09 00:21:03 +02:00
Michael Niedermayer
2e75c45593 mp3dec: detect CBR and use CBR axiom to seek
This should also work reasonable with truncated and growing mp3s.
Fixes Ticket2590

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit e096283ea5)

Conflicts:
	libavformat/mp3dec.c
2013-07-09 00:20:37 +02:00
Michael Niedermayer
ba4cb43f0b oggparseskeleton: avoid header parsing failure
Based on description by James Almer and the xiph wiki

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 9a6e814be7)
2013-07-07 21:42:01 -03:00
James Almer
dc73774792 oggparseskeleton: Replace avpriv_report_missing_feature() with a normal av_log() call
since there should not be more than one fisbone for a given stream.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 63d7684fef)

Conflicts:
	libavformat/oggparseskeleton.c
2013-07-07 21:41:37 -03:00
James Almer
ce11d9490c oggparseskeleton: Fix fisbone header parsing
start_granule should be applied to the stream referenced in the fisbone packet, not to the
Skeleton stream.
This was broken in d1f05dd183 and produced bogus warnings about
multiple fisbone in the same stream on files with more than one stream.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 3960992f0a)
2013-07-07 21:41:16 -03:00
Michael Niedermayer
430ef8a716 mmsh: dont close context on seeking failure
Fixes Ticket2581

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit b4579a29c7)
2013-07-07 21:32:19 +02:00
Michael Niedermayer
627772d988 avformat/mov: Fix duration of fragmented mov
Fixes Ticket2757

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit dc2a13aa80)
2013-07-07 18:25:25 +02:00
Michael Niedermayer
5ce57e0248 libavcodec/x86/mpegvideo: Move mmx functions under HAVE_MMX_INLINE
should fix ticket2755

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 707b2135fd)
2013-07-07 18:24:18 +02:00
Michael Niedermayer
5effd65312 avcodec/x86/vp3dsp_init: move mmx functions under HAVE_MMX_INLINE
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit abce6dfd9e)
2013-07-07 18:23:59 +02:00
Michael Niedermayer
cb340ecd7d mpegts: only reopen pmt_cb filter if its different from the previous.
Fixes Ticket2632

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit b009267910)
2013-07-07 18:20:18 +02:00
Michael Niedermayer
b88bea1d6c rmdec: Pass AVIOContext to rm_read_metadata()
Fix null pointer dereference
Fixes Ticket2588

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit bf87908cd8)
2013-07-07 18:15:57 +02:00
Michael Niedermayer
99036565ca avcodec/x86/dsputil_init: only use xvid idct for lowres=0
Fixes crash
Fixes Ticket2714

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit b791a0831b)

Conflicts:
	libavcodec/x86/dsputil_init.c
2013-07-07 18:14:55 +02:00
Nigel Touati-Evans
fcc6460dbf Fix copying extradata to codec in mxfdec.c
The code that copies any extradata from the MXFDescriptor to the codec does
not set the size, which it should otherwise the copied data is useless.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 42bd0cd21a)

Conflicts:
	libavformat/mxfdec.c
2013-06-27 14:15:12 +02:00
Hendrik Leppkes
1065d4197e mathops/x86: work around inline asm miscompilation with GCC 4.8.1
The volatile is not required here, and prevents a miscompilation with GCC
4.8.1 when building on x86 with --cpu=i686

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 659df32a9d)
2013-06-24 08:44:24 +02:00
Michael Niedermayer
fbb1af39e4 avdevice/x11grab: allocate just one Cursor
Fixes resource leak and Ticket2450

Reviewed-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 1ee8fadb81)
2013-06-21 16:45:36 +02:00
Michael Niedermayer
073bde2b1f avformat/iff: Byte seek is unsupported
Fixes Ticket2194

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 03cd3bec6e)
2013-06-21 01:11:56 +02:00
Michael Niedermayer
e4bb67bc50 avformat/libmodplug: Reduce the probe score for small input
This ensures that theres enough data for mpeg_probe() to recognize mpeg-ps
Fixes Ticket2583

Based on code by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit c605adbf56)
2013-06-21 01:11:45 +02:00
Carl Eugen Hoyos
59549b5ab7 Autodetect idcin only if audio properties allow decoding.
Fixes ticket #2688.
(cherry picked from commit 06bede95fc)
2013-06-19 23:45:18 +02:00
Michael Niedermayer
c0445df5b3 ff_gen_search: fix infinite loop
Fixes Ticket2639

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit f8ca8138f0)
2013-06-18 23:46:14 +02:00
Michael Niedermayer
c77b3737b9 ff_gen_search: fix limit
The limit value could become slightly wrong in the last iteration

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit b3dd50cd0d)
2013-06-18 23:46:05 +02:00
Michael Niedermayer
04d6946600 ff_gen_search: make step 64 bit to prevent hypothetical integer overflow
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 9d73e30253)
2013-06-18 23:45:37 +02:00
Michael Niedermayer
ae93d3405e swresample/x86/audio_convert: add emms to CONV
Fixes ticket #1874

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit ca2818b881)
2013-06-18 02:52:30 +02:00
Janne Grunau
054779625f vaapi: return early from ff_vaapi_render_picture() without picture
Fixes an assertion when called on uninitialized frame. Spotted after
seeking in vlc.
Fixes ticket #2461.

Tested-by: Timo
Reviewed-by: Joakim Plate
Signed-off-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
(cherry picked from commit 2ee380aefb)
2013-06-18 02:12:18 +02:00
Michael Niedermayer
e22dd7fbd0 alacenc: Fix missing sign_extend()
Fixes ticket #2497

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 8aea2f05dc)
2013-06-13 00:01:13 +02:00
Michael Niedermayer
376a9f8e6e avcodec/utils: Fix encoder allocation size
Fixes Ticket2645
Found-by: Darrell Walisser
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 175e916fa2)

Conflicts:
	libavcodec/utils.c
2013-06-11 09:49:56 +02:00
Claudio Freire
9af68f8d1f AAC encoder: Fix rate control on twoloop.
Fixes a case where multichannel bitrate isn't accurately
targetted by psy model alone, never achieving the target bitrate.
Now fixed.

Fixes ticket #2625.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
2013-06-02 16:18:09 +02:00
Michael Niedermayer
f2361593ca mpegvideo: implement ff_put_h264_chroma_mc1 & ff_avg_h264_chroma_mc2
These are needed for lowres 3

Fixes Ticket2538

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit c2625c26c5)

Signed-off-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
2013-06-02 16:17:09 +02:00
Michael Niedermayer
96e6d4da37 h264_cavlc: fix reading skip run
Fixes Ticket2606

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 826b3a75cd)
2013-05-30 22:33:03 +02:00
Michael Niedermayer
735deda2cf avienc: Disallow the first frame to be skiped
Fixes Ticket2386

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit cc0db8cf30)
2013-05-27 23:52:08 +02:00
Michael Niedermayer
5f64a7a625 smacker: remove av_clip_int16()
Fixes Ticket2425

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 2211c76287)
2013-05-20 23:56:53 +02:00
Michael Niedermayer
ffd28de388 ffmpeg: free threads on error conditions.
Fixes Ticket2562

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 1a36c756d8)
2013-05-17 23:21:43 +02:00
Carl Eugen Hoyos
af589dd5e9 configure: Autodetect VA-API
This fixes a regression (reproducible since 1.2) and restores the
behaviour of 0.6, 0.7, 0.8, 0.9, 0.10, 0.11, 1.0 and 1.1.
(cherry picked from commit 17989dcf54)
2013-05-17 23:02:19 +02:00
Michael Niedermayer
fd60aeb55b avidec: dont randomly skip packets for offseting the index
Fixes Ticket2490

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 6c593f1b67)
2013-05-17 22:51:37 +02:00
Carl Eugen Hoyos
79a3f364dd Do not read strd chunk in avi files as H264 extradata.
Fixes ticket #2561.
(cherry picked from commit 231b331718)
2013-05-13 14:25:11 +02:00
Carl Eugen Hoyos
33d699a4e7 Fix configure --help output for some autodetected features.
(cherry picked from commit 0f05b72f19)
2013-05-10 10:53:08 +02:00
Michael Niedermayer
f166a02b67 exr: silence warning "libavcodec/exr.c:351:9: warning: variable ret set but not used"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 7ff3bfd584)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-09 22:22:26 +02:00
Michael Niedermayer
c5948b472b update for 1.2.1
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-09 22:17:06 +02:00
Michael Niedermayer
7ee5e97c46 gifdec: reset previous Graphic Control Extension disposal type
This fixes out of array accesses.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit d23b8462b5)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-09 22:16:23 +02:00
Michael Niedermayer
7ef2dbd239 avcodec/cdgraphics: check buffer size before use
Fixes out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit ad002e1a13)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-09 22:16:23 +02:00
Michael Niedermayer
524d0d2cfc sanm: Check dimensions before use
Fixes integer overflow and out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 9dd04f6d8c)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-09 22:16:23 +02:00
Clément Bœsch
91f04e7410 cmdutils: avtool -> fftool
(cherry picked from commit 7d8ad6c1fa)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-09 22:16:23 +02:00
Michael Niedermayer
9f7baf139f avutil/intfloat_readwrite: include common.h for isinf()
Solution based on rational.c, which uses isinf() too

This should fix compilation with msvc

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit c25224737c)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-09 22:16:23 +02:00
Michael Niedermayer
ec89046fa1 avutil/intfloat_readwrite: avoid comparission with INFINITY, use isinf()
Should fix pgc warning

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit cc6f848dba)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-09 22:16:23 +02:00
Michael Niedermayer
cc0dd86580 avutil/log: Fix context pointer used for get_category()
Fixes calling a random pointer

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 7edb984dd0)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-09 22:02:15 +02:00
Michael Niedermayer
0baa0a5a02 vmdav: Try to fix unpack_rle()
This fixes out of array accesses
The code prior to this commit could not have worked, thus obviously
was untested. I was also not able to find a valid sample that uses this
code.
This fix is thus only based on the description of the format

If someone has a sample that uses unpack_rle(), please mail me.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit c1f2c4c3b4)

Conflicts:

	libavcodec/vmdav.c

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-09 22:01:55 +02:00
Michael Niedermayer
039f6921c2 mmvideo/mm_decode_intra: check horizontal coordinate too
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit ae2132ac90)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-09 21:44:08 +02:00
Michael Niedermayer
7fa6db2545 mmvideo/mm_decode_inter: check horizontal coordinate too
Fixes out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 8d3c99e825)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-09 21:44:03 +02:00
Michael Niedermayer
840931e766 mjpegdec: fix overlapping memcpy with upscale_v
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit b39fd7d63648442c20671c3e4b357268ec5c49f2)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-09 21:42:40 +02:00
Michael Niedermayer
1ce3f736d2 src_movie: fix scanf string
Fixes out of array accesses

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit adaa7743f5)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-09 21:01:03 +02:00
Michael Niedermayer
4d0090f90a xbmdec: fix off by one error in scanf()
Fixes out of array access

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-09 21:01:02 +02:00
Dale Curtis
f8d5f3dff5 Fix heap-buffer-overflow in matroska_parse_block
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 81e85bc95c)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-09 21:01:02 +02:00
ArnoB
298e03d102 dpxenc: fix data offset
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 361319d0f4)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-09 21:01:02 +02:00
Michael Niedermayer
54f3902393 rmdec: flush audio packet on seeking
Fixes Ticket1605

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 519ebb5ee5)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-09 21:01:02 +02:00
Michael Niedermayer
3ca6253beb avcodec/mpegvideo: Fix edge emu with lowres
Fixes a few green artifacts at the top
Fixes rest of Ticket 2535

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit c67bca2b5a)
2013-05-09 17:21:12 +02:00
Michael Niedermayer
84df0dc40b avcodec/mpegvideo: Fix block height for lowres 3 interlaced blocks
Fixes green trash
Fixes part of Ticket2535

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit bca50e5cd5)
2013-05-09 17:20:52 +02:00
Reimar Döffinger
a857811c75 matroska: set "done" only during resync fail.
Fixes playback of test7.mkv validation test file.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
(cherry picked from commit 762d4335ae)
2013-05-09 17:19:37 +02:00
Clément Bœsch
3d6219b6db lavfi/subtitles: zero-init AVSubtitle.
This avoids invalid free when the stream id doesn't match the packet
stream index.

Ticket #2501
(cherry picked from commit 035a3792c2)
2013-05-09 17:05:02 +02:00
Carl Eugen Hoyos
0a53c7016f Fix type of shared flac table ff_flac_blocksize_table[].
Fixes ticket #2533.
(cherry picked from commit a07ac1f788)
2013-05-05 20:39:56 +02:00
Janne Grunau
f0dc5c0419 vaapi: fix argument for ff_vaapi_common_end_frame call
(cherry picked from commit b066d90211)
2013-04-13 10:09:50 +02:00
Nicolas George
df8c36265a lavc: fix recoded subtitles end.
Text subtitles packets are not 0-terminated (and if they are,
it is handled by the recoding process since 0 is a valid
Unicode code point). The terminating 0 would overwrite the
last payload octet.

OTOH, packets must be 0-padded.

Fix a problem reported in trac ticket #2431.
2013-04-07 15:36:10 +02:00
Carl Eugen Hoyos
c351d8781d Skip padding in an id3 tag in aiff files.
Fixes ticket #2430.

Reviewed-by: Matthieu Bouron
(cherry picked from commit db2d3a9082)
2013-04-03 23:22:11 +02:00
Paul B Mahol
d553a522b9 smacker: fix off by one error
Regression since a93b572ae4.

Fixes #2426.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
(cherry picked from commit e3cc92a623)
2013-04-03 15:16:06 +02:00
Carl Eugen Hoyos
0b6d5f27c8 Write broken aac frames to mov files instead of skipping them.
Fixes decoding with picky media players.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit b448c0a68d)
2013-04-02 12:50:05 +02:00
Carl Eugen Hoyos
9ecfd7daa3 Only test the first frame for missing aac_adtstoasc bistream filter.
Many players ignore broken aac frames, so don't abort mov or flv
muxing when encountering one, just print a warning instead.

Fixes ticket #2380.
(cherry picked from commit 1741fece70)
2013-03-27 00:50:39 +01:00
Diego Biurrun
90f1aa38b6 configure: Enable hwaccels without external dependencies by default.
Fixes ticket #2368.
(cherry picked from commit 2e2ec66741)
2013-03-22 13:24:16 +01:00
Carl Eugen Hoyos
fc5c81ce0a Do not (re-)set libx264 parameter b_tff if interlaced encoding was not requested.
Reconfiguring can break x264 lossless encoding.

Fixes ticket #2165.
(cherry picked from commit 75c7e4583f)
2013-03-18 02:11:30 +01:00
Fabrizio Gennari
e820e3a259 mem: Fix usage of memalign() on DJGPP.
Credits to Khusraw of bttr-software.de forum.
Signed-off-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
(cherry picked from commit 91b747ac78)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-14 23:30:35 +01:00
Michael Niedermayer
17911d0a96 release_notes: update
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-14 23:30:35 +01:00
Michael Niedermayer
2ed7f5a670 Changelog: update version
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-14 23:30:35 +01:00
Michael Niedermayer
7c6c5767eb jpegdec: be less picky on padding
Fixes Ticket2353

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 3c24fbbf65)
2013-03-14 21:59:42 +01:00
Michael Niedermayer
0ec869527c mpegts: clear avprograms only for removed programs
Fixes Ticket2186

Requested-by: carl
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 806a66fd08)
2013-03-10 09:55:39 +01:00
Carl Eugen Hoyos
0b198e38c5 Revert "build: disable iconv by default."
This reverts commit 9ad3cd5b5f.

The misdetection on OS X should be fixed, we will only get
problem reports if auto-detection is enabled.
(cherry picked from commit 3f78f0904b)
2013-03-10 09:55:25 +01:00
Michael Niedermayer
1ea3248290 Update for FFmpeg 1.2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-09 14:31:52 +01:00
Michael Niedermayer
bdd2db60c2 MAINTAINERS: update for 1.2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-08 14:45:46 +01:00
Michael Niedermayer
eab49f4fb5 Revert "aacdec: Reconfigure output as needed, disable pop_output_configuration()"
This reverts commit 60dbf2eff9.

This is not needed anymore, Ticket 1694 has been fixed differently
2013-03-08 14:21:40 +01:00
Michael Niedermayer
8978c743fb aacsbr: Check for envelope scalefactors overflowing
This prevents various values from becoming stuck at NAN and
output to become silent
If someone knows a cleaner solution, thats welcome!

Fixes Ticket2335

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-08 14:21:40 +01:00
Carl Eugen Hoyos
199db97fbd Close output codecs if input codec initialisation fails.
Fixes ticket #1546 and the remaining part of ticket #1244.
2013-03-08 02:46:46 +01:00
Carl Eugen Hoyos
a21fd66027 Add dependencies for the voice fate tests. 2013-03-08 02:45:27 +01:00
Carl Eugen Hoyos
0edfda7977 Add dependencies for the flac encoding fate tests. 2013-03-08 02:44:46 +01:00
Carl Eugen Hoyos
53e3bc3024 Add dependencies for the aac encoding fate tests. 2013-03-08 02:44:07 +01:00
Carl Eugen Hoyos
de4811e910 Force using a 64bit intermediate when calculating calendar time with av_timegm().
Fixes a fate failure with icc 13.1
2013-03-08 02:42:33 +01:00
Alexander Kojevnikov
d30ee5ef59 mpegaudio_parser: Don't ignore information from the first frame
Signed-off-by: Alexander Kojevnikov <alexander@kojevnikov.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-07 23:07:04 +01:00
Michael Niedermayer
60dbf2eff9 aacdec: Reconfigure output as needed, disable pop_output_configuration()
Fixes Ticket1694

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-07 19:50:31 +01:00
Michael Niedermayer
fee5da6b0a psymodel: dont apply lowpass filters with a cutoff close to the nyquist
The IIR filter numerically diverges in such cases, this could easily be
fixed but would make the filter slower on some platforms

Fixes Ticket2246

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-07 19:28:30 +01:00
Michael Niedermayer
cada996528 avformat: Fix apics with aac
Fixes Ticket2318

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-07 13:55:43 +01:00
Michael Niedermayer
a12a618aa9 hls: fix timebase
Fixes Ticket1733

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-07 13:42:12 +01:00
Michael Niedermayer
8cc5481d51 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  lavc: Deprecate the deinterlace functions in libavcodec
  h264: Integrate draw_horiz_band into ff_h264_draw_horiz_band

Conflicts:
	configure
	ffmpeg_opt.c
	libavcodec/avcodec.h
	libavcodec/h264.c
	libavcodec/imgconvert.c
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-07 11:50:17 +01:00
Michael Niedermayer
47f1af47b6 Merge commit '70762508ec5919474edb92a5b1f266fd06640f9c'
* commit '70762508ec5919474edb92a5b1f266fd06640f9c':
  lavc: Prettify printing of codec tags containing non alphanumeric characters
  h264: Rename the jpeg_420 pixfmt list to match the common naming structure

Conflicts:
	libavcodec/h264.c
	libavcodec/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-07 11:29:11 +01:00
Ronald S. Bultje
54b298fe56 lavc: Deprecate the deinterlace functions in libavcodec
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-03-07 09:35:24 +02:00
Ronald S. Bultje
64e4386974 h264: Integrate draw_horiz_band into ff_h264_draw_horiz_band
This makes the decoder independent of mpegvideo.

This copy of the draw_horiz_band code is simplified compared to
the "generic" mpegvideo one which still has a number of special
cases for different codecs.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-03-07 09:31:44 +02:00
Stefano Sabatini
70762508ec lavc: Prettify printing of codec tags containing non alphanumeric characters
Make av_get_codec_tag_string() show codec tag string characters in a more
intelligible ways. For example the ascii char "@" is used as a number, so
should be displayed like "[64]" rather than as a printable character.

Apart alphanumeric chars, only the characters ' ' and '.' are used
literally in codec tags, all the other characters represent numbers.

This also avoids relying on locale-dependent character class functions.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-03-07 08:50:29 +02:00
Martin Storsjö
d65522e826 h264: Rename the jpeg_420 pixfmt list to match the common naming structure
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-03-07 08:40:04 +02:00
Bojan Zivkovic
1f5b5b8062 libavcodec: changed mathematical functions in aacpsy.c
This patch changes existing mathematical functions with faster
ones. Speeds up encoding more than 10%. Tested on x86 and
MIPS platforms.

Signed-off-by: Bojan Zivkovic <bojan@mips.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-07 03:23:33 +01:00
Stefano Sabatini
d95143ec82 lavf/segment: add support to ffconcat segment list 2013-03-07 01:44:59 +01:00
Stefano Sabatini
9167db3829 doc/texi2pod: fix @ref substitution rule, disallow "}" within the fields
Fix potential spurious substitution.
2013-03-07 01:44:59 +01:00
Stefano Sabatini
9767ec6b86 lavu: add escape API
The escape API will be useful to perform escaping programmatically, which
is required when crafting argument strings, and will be used for context
printing as well.

This is based on the ffescape tool code, with a few extensions and fixes.
2013-03-07 01:12:04 +01:00
Michael Niedermayer
38d40ac18a Merge remote-tracking branch 'qatar/master'
* qatar/master:
  avconv: Make sure the encoder exists before inspecting supported_list

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-07 00:28:15 +01:00
Michael Niedermayer
fa3a7b55ec Merge commit '5da51284937649a8ebb84fa951c235438fcbf8ae'
* commit '5da51284937649a8ebb84fa951c235438fcbf8ae':
  cavs: Add a dependency on h264chroma
  lavc: Split out ff_hwaccel_pixfmt_list_420[] over individual codecs

Conflicts:
	libavcodec/h263dec.c
	libavcodec/h264.c
	libavcodec/mpeg12.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-07 00:18:22 +01:00
Michael Niedermayer
ff9b607489 Merge commit '5a4e9fe855282a99586050a507d0a486ad39df5b'
* commit '5a4e9fe855282a99586050a507d0a486ad39df5b':
  avcodec/internal: Fix #if DECODE_AUDIO / ENCODE_AUDIO name mismatch
  shorten: use the unsigned type where needed

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-07 00:01:32 +01:00
Michael Niedermayer
90f8b2ce48 Merge commit '4c364eb2b856fc33cf7b42f7c7b979e69fde5f3a'
* commit '4c364eb2b856fc33cf7b42f7c7b979e69fde5f3a':
  shorten: report meaningful errors

Conflicts:
	libavcodec/shorten.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-06 23:47:10 +01:00
Michael Niedermayer
09131ebb56 Merge commit 'a2ad554def214d2d03b7c16f68dc081a8622f9ca'
* commit 'a2ad554def214d2d03b7c16f68dc081a8622f9ca':
  shorten: K&R formatting cosmetics

Conflicts:
	libavcodec/shorten.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-06 23:39:52 +01:00
Michael Niedermayer
be493ca2a8 Merge commit 'c10da30d8426a1f681d99a780b6e311f7fb4e5c5'
* commit 'c10da30d8426a1f681d99a780b6e311f7fb4e5c5':
  shorten: set invalid channels count to 0
  vorbisdec: check memory allocations
  h264: check for luma and chroma bit dept being equal

Conflicts:
	libavcodec/shorten.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-06 23:27:09 +01:00
James Zern
bcaf64b605 normalize calls to ff_alloc_packet2
- check ret < 0
- remove excessive error log

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-06 22:11:46 +01:00
Martin Storsjö
e760e1d408 avconv: Make sure the encoder exists before inspecting supported_list
This fixes crashes when there is no encoder for the default codec of
selected format.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-03-06 21:56:10 +02:00
Carl Eugen Hoyos
5da5128493 cavs: Add a dependency on h264chroma
This fixes standalone building of this decoder.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-03-06 21:55:51 +02:00
Ronald S. Bultje
8d061989dd lavc: Split out ff_hwaccel_pixfmt_list_420[] over individual codecs
Not all hwaccels implement all codecs, so using one single list for
multiple such codecs means some codecs will be represented in the list,
even though they don't actually handle that codec. Copying specific
lists in each codec fixes that.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-03-06 21:18:50 +02:00
Ronald S. Bultje
c257fe1fde Move ff_cropTbl and ff_zigzag_direct from dsputil to mathtables.
These are widely used throughout libavcodec, nothing dsputil-specific.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-06 19:28:11 +01:00
Michael Niedermayer
a3e0fc9803 snowenc: fix indention
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-06 19:28:11 +01:00
Michael Niedermayer
70a2a4934a snowenc: add forgotten emms_c()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-06 19:28:11 +01:00
Nicolas George
87a954d6f4 lavf/concat: document the use of the files durations.
Address trac ticket #2319.
2013-03-06 16:58:38 +01:00
Diego Biurrun
5a4e9fe855 avcodec/internal: Fix #if DECODE_AUDIO / ENCODE_AUDIO name mismatch 2013-03-06 16:48:03 +01:00
Michael Niedermayer
188c082477 snowenc: initialize edges
This fixes a regression caused by changes to the buffer initialization code.
Fixes valgrind warnings

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-06 16:35:47 +01:00
Michael Niedermayer
2dd2ee96eb vc1dec: use av_log_ask_for_sample for odd sprites
Suggested-by: Reimar
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-06 13:51:18 +01:00
Paul B Mahol
037adf589a libilbc: use ff_alloc_packet2
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-03-06 10:52:28 +00:00
James Zern
1811f1d840 libopusenc: use ff_alloc_packet2
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-03-06 10:31:56 +00:00
Michael Niedermayer
baf10ad186 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  hwaccel: consistent name prefixes for start_frame/end_frame/decode_slice

Conflicts:
	libavcodec/vda_h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-06 10:34:14 +01:00
Michael Niedermayer
28adecf0fa Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Move the iconv test to the bottom of configure.
  Make 32bit zmbv colour-space opaque.
  Use uint8_t instead of uint16_t pointer in kega decoder.
  kgv1dec: Simplify kega decoding by using memcpy instead of loops

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-06 05:37:14 +01:00
Michael Niedermayer
a3541896c6 qdm2: check "AC" codewords
Fixes out of array reads

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-06 05:04:39 +01:00
Michael Niedermayer
5c8ffbaa7f qdm2: simplify arithmetic coder tables generation
Someone should rename the variables, theres nothing random in there

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-06 04:56:33 +01:00
Michael Niedermayer
bb01be8046 rv20: Fix handling of frame skip.
Fixes division by zero

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-06 04:06:45 +01:00
Michael Niedermayer
7bab631f7d mss2dsp/upsample_plane: fix 0x0 handling
Fixes invalid memcpy and out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-06 01:38:26 +01:00
Luca Barbato
4c364eb2b8 shorten: report meaningful errors 2013-03-06 01:04:02 +01:00
Luca Barbato
a2ad554def shorten: K&R formatting cosmetics 2013-03-06 01:04:02 +01:00
Luca Barbato
5cf7c72757 shorten: use the unsigned type where needed
get_uint returns an unsigned value, use an unsigned to store
blocksize to make sure the comparison logic is correct and report
correctly the error for the channel count not supported.
2013-03-06 01:04:02 +01:00
Michael Niedermayer
c10da30d84 shorten: set invalid channels count to 0
Prevent the loop shorten_decode_close from writing and freeing out of
the array boundary.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-03-06 01:04:01 +01:00
Luca Barbato
02055b6d40 vorbisdec: check memory allocations 2013-03-06 01:04:01 +01:00
Carl Eugen Hoyos
34e7a3d74c Move the iconv test to the bottom of configure.
This fixes a possible mis-detection of iconv on OS X.
OS X with macports often has two version of libiconv.2.dylib
installed, one with symbols like "_iconv_open" and one with
"_libiconv_open", so test for iconv with all flags to make
sure the detection uses the same library as the actual
compilation / linking.

Tested-by: Paul Sturbaum
2013-03-06 00:57:51 +01:00
Carl Eugen Hoyos
b45e85ab7e Make 32bit zmbv colour-space opaque. 2013-03-06 00:38:12 +01:00
Carl Eugen Hoyos
96d2e4d61a Use uint8_t instead of uint16_t pointer in kega decoder.
This change allows to remove a few casts and avoids
a potential pointer aliasing violation.
2013-03-06 00:35:08 +01:00
Reimar Döffinger
940b06aeb8 kgv1dec: Simplify kega decoding by using memcpy instead of loops
Fixes decoding errors with icc 13.1

Signed-off-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
2013-03-06 00:25:18 +01:00
Michael Niedermayer
058e1f8dd7 vc1dec: odd sized sprites are unsupported
It should be easy to add support but without a sample we would
not know if they work.

Fixes out of array reads

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-06 00:09:54 +01:00
Michael Niedermayer
d929364814 asfdec: dont truncate type 2-5 values
Fixes use of uninitialized variables and possible out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-05 22:29:57 +01:00
Michael Niedermayer
4c56b79a16 vf_stereo3d: Add AVOption table terminator
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-05 22:29:57 +01:00
Luca Barbato
4987faee78 h264: check for luma and chroma bit dept being equal
The decoder assumes a single bit depth for all the planes
while the specification allows different bit depths for luma
and chroma.

Avoid the possible problems described in CVE-2013-2277

CC: libav-stable@libav.org
2013-03-05 22:18:02 +01:00
Clément Bœsch
34d0ea5247 lavfi/deshake: support named options. 2013-03-05 21:16:54 +01:00
Clément Bœsch
c0bfc2b90d doc/filters: make examples a bit more consistent.
Create dedicated subsection and itemize. Not done for every filters, but
a large part is done.
2013-03-05 21:08:19 +01:00
Clément Bœsch
72d2e9437d doc/showspectrum: add some examples. 2013-03-05 20:37:58 +01:00
Stefano Sabatini
8d9509377e lavfi/overlay: improve log message warning in case of clipped overlay 2013-03-05 20:09:50 +01:00
Stefano Sabatini
f164228fd7 lavfi/overlay: add support for partial overlaying
Partially rework the iteration logic, in order to limit iteration only
for the clipped overlay region.
2013-03-05 20:09:21 +01:00
Paul B Mahol
1c808943b8 lavfi/mp: drop mp=stereo3d filter
The filter has been natively integrated into libavfilter.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-03-05 18:45:35 +00:00
Paul B Mahol
3f35f36a2e lavfi: port MP stereo3d filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-03-05 18:36:40 +00:00
Nicolas George
c31458c334 lavf/concat: compute duration if possible. 2013-03-05 16:44:51 +01:00
Nicolas George
9b211c43dc examples/muxing: fix memory leak.
Do not re-call avcodec_get_context_defaults3(), it is already
called by avformat_new_stream() and it leaks the codec
priv_data that was already allocated.

Use avformat_free_context() instead of freeing (not)
everything manually.

Fix trac ticket #2322.
2013-03-05 15:43:32 +01:00
Stefano Sabatini
ad48556135 lavu/eval: add native support to lte and lt functions 2013-03-05 15:15:45 +01:00
Nicolas George
622a6f6f3b doc/muxers: specify that tee needs -map.
Address trac ticket #2311.
2013-03-05 14:20:18 +01:00
Nicolas George
3ab25e4574 Revert "lavf/concatdec: define "ffcat" and "ffconcat" extensions"
This reverts commit 6cc12353a8.

Conflicts:
	libavformat/version.h

Allowing to automatically select the concat demuxer raises
security concerns, as it allows a possibly hostile file to
access any file on the system. Guessing the format based on
the file name extension does not allow to enable the safe
mode designed to avoid it.
2013-03-05 14:10:10 +01:00
Stefano Sabatini
b1a2684936 lavu/opt: fix weird align 2013-03-05 13:20:14 +01:00
Stefano Sabatini
7b9a3df5d7 lavu/opt-test: do not explicitly set default value in test_ctx
Let av_opt_set_defaults() set the value, which is simpler and more
idiomatic.
2013-03-05 13:20:14 +01:00
Stefano Sabatini
aba18c5af9 tests: add overlay rgb and yuv444 tests
Also rename overlay test to overlay_yuv420 accordingly.
2013-03-05 13:20:13 +01:00
Alexander Kojevnikov
29d8cd265a mp3dec: Fix VBR bit rate parsing
When parsing the Xing/Info tag, don't set the bit rate if it's an Info tag.

When parsing the stream, don't override the bit rate if it's already set,
otherwise calculate the mean bit rate from parsed frames. This way, the bit
rate will be set correctly both for CBR and VBR streams.

Signed-off-by: Alexander Kojevnikov <alexander@kojevnikov.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-05 13:06:01 +01:00
Paul B Mahol
d2b0b839b9 fate: add dependency for xface
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-03-05 11:44:58 +00:00
Michael Niedermayer
1567095acf Merge remote-tracking branch 'qatar/master'
* qatar/master:
  configure: Use check_builtin() where appropriate

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-05 12:37:15 +01:00
Michael Niedermayer
1cb3ca2a67 Merge commit '9c7d85b3b45a77742b1e69c48ab33f9c8a2e6f35'
* commit '9c7d85b3b45a77742b1e69c48ab33f9c8a2e6f35':
  configure: Add check_builtin convenience function

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-05 12:23:48 +01:00
Michael Niedermayer
890b9c5c46 Merge commit 'f868b24d0f280bb966e5c352028a343e45d20a02'
* commit 'f868b24d0f280bb966e5c352028a343e45d20a02':
  configure: Add sanitize_var_name convenience function

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-05 12:17:15 +01:00
Michael Niedermayer
06ad309ab4 Merge commit '813b82b927b19532e3bc3397b972c8a27b9f6326'
* commit '813b82b927b19532e3bc3397b972c8a27b9f6326':
  configure: Fix silly typo in logging command of check_struct()
  fate: remove last incomplete frame from mpeg2-field-enc test

Conflicts:
	tests/fate/video.mak
	tests/ref/fate/mpeg2-field-enc

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-05 12:11:48 +01:00
Paul B Mahol
d7f9f34dc6 zmbv: stop doing colorspace conversion
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-03-05 10:27:09 +00:00
Diego Biurrun
c57a593670 hwaccel: consistent name prefixes for start_frame/end_frame/decode_slice
Some hwaccels use name prefixes, some do not, others only use them for
some codecs.  Add prefixes everywhere for consistency.
2013-03-05 11:22:45 +01:00
Paul B Mahol
f5ce359ce4 doc/filters: fix short options for noise filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-03-05 10:18:21 +00:00
Diego Biurrun
2a7ab2dfaa configure: Use check_builtin() where appropriate 2013-03-05 11:04:37 +01:00
Diego Biurrun
9c7d85b3b4 configure: Add check_builtin convenience function 2013-03-05 11:04:37 +01:00
Diego Biurrun
f868b24d0f configure: Add sanitize_var_name convenience function
This is useful in all the places where special characters in
variable names are manually translated to underscores.
2013-03-05 11:04:37 +01:00
Diego Biurrun
813b82b927 configure: Fix silly typo in logging command of check_struct() 2013-03-05 11:04:37 +01:00
Michael Niedermayer
715c230811 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Add h264chroma dependency for mpegvideo / lowres to configure.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-05 04:25:01 +01:00
Michael Niedermayer
e398990eb8 msrledec: fix output_end checks
Fixes out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-05 03:29:04 +01:00
Michael Niedermayer
3dbc0ff9c3 iff: fix integer overflow
Fixes out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-05 01:39:50 +01:00
Carl Eugen Hoyos
d043461344 Add h264chroma dependency for mpegvideo / lowres to configure.
Fix building for some unusual configurations.
2013-03-05 01:07:12 +01:00
Michael Niedermayer
7992bdbeb4 update_stream_timings: check bitrate for being in range.
Fixes numerical overflow
Fixes Ticket2089

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-04 18:54:00 +01:00
Michael Niedermayer
dae38a66eb dnxhddec: return the correct number of bytes from decode_frame
Fixes Ticket2022

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-04 18:17:47 +01:00
Michael Niedermayer
faa0068a87 avformat: Make duration estimation from pts more robust
Ignore durations which differ significantly from the previous
Fixes Ticket2018

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-04 18:01:32 +01:00
Michael Niedermayer
9bb54bb685 nutdec: more specific return codes for decode_syncpoint()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-04 16:51:21 +01:00
Michael Niedermayer
7ccc0ed6a0 nutdec: print error on invalid/unsupported fourcc style
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-04 16:49:17 +01:00
Michael Niedermayer
144da7eeca Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  buildsys: only include log2_tab per library for shared builds
  Add h264chroma dependency for cavs decoder to configure.
  Add h264qpel dependency for snow codec to configure.
  Add h264chroma dependency for vp5 and vp6 decoder to configure.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-04 14:45:52 +01:00
Clément Bœsch
53ca0cb8d4 build: [autodetect] -> [no] in iconv help. 2013-03-04 13:12:45 +01:00
Michael Niedermayer
03148fd174 buildsys: only include log2_tab per library for shared builds
Fix linking failures with -all_load due to multiple log2_tabs

Signed-off-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
2013-03-04 12:25:02 +01:00
Carl Eugen Hoyos
523b12affc Add h264chroma dependency for cavs decoder to configure.
Fix building for some unusual configurations.
2013-03-04 11:43:55 +01:00
Carl Eugen Hoyos
9051e297d2 Add h264qpel dependency for snow codec to configure.
Fix building for some unusual configurations.
2013-03-04 11:43:09 +01:00
Carl Eugen Hoyos
2b09078a61 Add h264chroma dependency for vp5 and vp6 decoder to configure.
Fix building for some unusual configurations.
2013-03-04 11:39:44 +01:00
Janne Grunau
15ea1ac695 fate: remove last incomplete frame from mpeg2-field-enc test 2013-03-04 11:22:21 +01:00
Clément Bœsch
393dcbf079 compat/strtod: isspace -> av_isspace.
This should fix build after 88d55b8.
2013-03-04 03:37:36 +01:00
Clément Bœsch
9ad3cd5b5f build: disable iconv by default.
It seems to break a lot on MacOS because of a mixup between multiple
iconv libraries. The issue is that the configure check link with no
particular library path (so it uses /usr/lib/libiconv.dylib where all
the symbols are defined). OTOH, the final build might link with extra
library paths, such as the ports lib directory (typically you get
-L/opt/local/lib because of an extra library such as SDL). Whatever this
option position (before or after -liconv), it will try to link with
/opt/local/lib/libiconv.dylib, and the issue is that this version has
the same symbols as the ones in /usr/lib/libiconv.dylib except that they
all start with 'lib' (libiconv_open, libiconv_close, ...). I don't plan
to try to workaround this mess, so any better solution is welcome.
2013-03-03 23:50:31 +01:00
Clément Bœsch
16ed6a6bf7 doc/filters: fix degrees/radians copy/paste fail. 2013-03-03 23:49:46 +01:00
Michael Niedermayer
e2427f04b7 ffmpeg_opt: Ask for overwrite in single image2 files too
Fixes Ticket1637

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-03 22:09:01 +01:00
Clément Bœsch
14e240cb4a lavfi/opencv: isgraph -> av_isgraph.
Fix build after 88d55b8.
2013-03-03 22:06:48 +01:00
Reimar Döffinger
88d55b827d Remove incorrect use of ctype.h functions.
As far as I can tell the code should not change behaviour
depending on locale in any of these places.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2013-03-03 21:44:10 +01:00
Ronald S. Bultje
2cffe38df3 Deprecate deinterlaced in libavcodec.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-03 21:11:48 +01:00
Michael Niedermayer
9af8179cdb ffmpeg: fix -stats -v 0
Fixes Ticket1687

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-03 19:38:13 +01:00
Michael Niedermayer
f2cb993139 avformat: gather aspect ratio from rv30/40 in find_stream_info
Fixes Ticket1550

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-03 18:41:16 +01:00
Michael Niedermayer
d210e9741e rv34: fix aspect ratio
Fixes part of Ticket1550

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-03 18:40:57 +01:00
Michael Niedermayer
6c6dc8ccea wmadec: check nb_frames
Improves error message for Ticket968

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-03 16:50:47 +01:00
Michael Niedermayer
3fac99cd9d Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  movenc: Do not flag secondary audio and subtitle tracks as enabled.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-03 14:05:09 +01:00
Ronald S. Bultje
d98aa7cdc1 h264: put call to ff_print_debug_info2 under CONFIG_MPEGVIDEO.
The code is located in mpegvideo, and it's likely that in a minimal
config, we don't want to include debug info anyway.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-03 12:19:29 +01:00
Ronald S. Bultje
d4e649cca6 h264: make it possible to compile without error_resilience.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-03 12:19:15 +01:00
Michael Niedermayer
981cf0c300 movenc: Do not flag secondary audio and subtitle tracks as enabled.
Fixes ticket #468 and ticket #1174.

Signed-off-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
2013-03-03 12:09:38 +01:00
Michael Niedermayer
fd464d4d01 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  rtpdec: Initialize some variables to silence compiler warnings

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-03 11:40:37 +01:00
Ronald S. Bultje
454c5d10b2 h264: add a copy of draw_horiz_band.
This makes the decoder independent of mpegvideo.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-03 00:45:45 +01:00
Michael Niedermayer
4f0d4acc70 libxvid: cleanup on error pathes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-02 20:39:38 +01:00
Michael Niedermayer
667bf15652 libxvid: check & clear encoder_handle
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-02 20:32:21 +01:00
Michael Niedermayer
8fe59240a1 libxvid: use av_freep() for saftey
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-02 20:31:07 +01:00
Michael Niedermayer
6a8f6c773d libxvid: remove temporary files at the end
Fixes Ticket924

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-02 20:30:28 +01:00
Martin Storsjö
8fbab7a6c8 rtpdec: Initialize some variables to silence compiler warnings
The warnings are false positives, older gcc versions (such as 4.5)
think the variables can be used uninitialized while they in
practice can't, while newer (4.6) gets it right.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-03-02 21:23:52 +02:00
Michael Niedermayer
03bc7a004e mjpegdec: fix endiansoup
Fixes Ticket2175

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-02 19:12:06 +01:00
Carl Eugen Hoyos
6091a8d92d Avoid huge memory allocations from asf demuxer.
Fixes ticket #1888.
2013-03-02 18:37:55 +01:00
James Almer
1d5b35cc07 lavc/flacdec: Add frame CRC calculation
Fixes ticket #2266

Signed-off-by: James Almer <jamrial@gmail.com>
2013-03-02 17:22:18 +00:00
Michael Niedermayer
4ae74c6312 ffmpeg: print maxrss "-benchmark" data even on errors
Fixes Ticket2297

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-02 16:04:49 +01:00
Michael Niedermayer
5167bb2e8e er: Fix slice threading check
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-02 14:28:20 +01:00
Michael Niedermayer
547042a8cd Merge remote-tracking branch 'qatar/master'
* qatar/master:
  h264: set ref_count to 0 for intra slices.

Conflicts:
	libavcodec/h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-02 12:10:52 +01:00
Michael Niedermayer
2d2e6db7cf Merge commit '668e16a0dd1ff56d4beeff5c658d8a2a08dbfac8'
* commit '668e16a0dd1ff56d4beeff5c658d8a2a08dbfac8':
  h264: on reference overflow, reset the reference count to 0, not 1.

Conflicts:
	libavcodec/h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-02 11:53:19 +01:00
Michael Niedermayer
ec203cd69b Merge commit 'e671d3ad6cd7fe1d02e9b35b889a25d8c059fce9'
* commit 'e671d3ad6cd7fe1d02e9b35b889a25d8c059fce9':
  h264: do not copy ref count/ref2frm when updating per-frame context
  flvdec: Check the return value of a malloc

Conflicts:
	libavformat/flvdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-02 11:41:31 +01:00
Michael Niedermayer
973dc110ba Merge commit 'c91c63b5380bf79655c09320774a022f84d76fd5'
* commit 'c91c63b5380bf79655c09320774a022f84d76fd5':
  flvdec: Don't read the VP6 header byte when setting codec type based on metadata

Conflicts:
	libavformat/flvdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-02 11:27:58 +01:00
Anton Khirnov
437211ae73 h264: set ref_count to 0 for intra slices.
CC:libav-stable@libav.org
2013-03-02 10:27:13 +01:00
Anton Khirnov
668e16a0dd h264: on reference overflow, reset the reference count to 0, not 1.
Since decode_slice_header() returns before the reference lists are
constructed, there are zero valid references.

CC:libav-stable@libav.org
2013-03-02 10:27:03 +01:00
Anton Khirnov
e671d3ad6c h264: do not copy ref count/ref2frm when updating per-frame context
They are filled in decode_slice_header() anyway.
2013-03-02 10:26:50 +01:00
Michael Niedermayer
3827734591 v4l2: fix regression that caused ffmpeg to occasionally get stuck
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-02 01:55:08 +01:00
Giorgio Vazzana
0d66268e15 lavd/v4l2: copy frames into normally allocated packets whenever there is just one buffer left available
This will avoid the possibility that we dequeue more buffers than we
have obtained from the v4l2 driver.

Fixes ticket #1570

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-02 00:50:17 +01:00
Martin Storsjö
c5a738ca4e flvdec: Check the return value of a malloc
The callers of this function can't report errors sanely. If this
one malloc fails, don't write the extradata byte, make sure we
try to malloc it the next time we're called instead, and make sure
we still consume the input data byte.

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-03-02 00:39:37 +02:00
Martin Storsjö
c91c63b538 flvdec: Don't read the VP6 header byte when setting codec type based on metadata
This header byte is only present when actually reading a VP6 frame,
not when reading the codec type field in the metadata. This
potential bug has been present since 5b54a90c.

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-03-02 00:39:36 +02:00
Michael Niedermayer
ec1d2e2fb0 ffplay: use AVFrame accessor functions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-01 23:22:08 +01:00
Michael Niedermayer
cc38ca6748 avcodec/utils: use AVFrame accessor functions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-01 23:18:23 +01:00
Michael Niedermayer
30806ddcbc avcodec/rawdec: use AVFrame accessor functions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-01 23:18:22 +01:00
Michael Niedermayer
f59ff8faa2 pngdec: use AVFrame accessor functions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-01 23:18:22 +01:00
Michael Niedermayer
ff080346c6 gifdec: use AVFrame accessor functions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-01 23:18:22 +01:00
Michael Niedermayer
7d7fb70129 cpia: use AVFrame accessor functions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-01 23:18:22 +01:00
Michael Niedermayer
f232659130 tiff: use AVFrame accessor functions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-01 23:18:22 +01:00
Michael Niedermayer
e0f716a9d9 ac3dec: use AVFrame accessor functions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-01 23:18:22 +01:00
Michael Niedermayer
3ded235f59 ffprobe: use AVFrame accessor functions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-01 23:18:22 +01:00
Michael Niedermayer
5ade6bfb03 doc/examples/demuxing: use AVFrame accessor functions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-01 22:40:50 +01:00
Michael Niedermayer
bf90ef0314 avcodec: add ff_frame_get_metadatap()
This is needed for av_dict_*

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-01 22:40:50 +01:00
Paul B Mahol
5b802cf567 lavc/codec_desc: add/fix .props for SGI/DPX/X-face/BRender PIX image
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-03-01 15:22:02 +00:00
Joseph Artsimovich
4a6bd34637 Handle an invalid extra mpeg2 picture header following a frame-encoded picture.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-01 16:04:31 +01:00
Paul B Mahol
6c7d1608dd sgidec: use unchecked bytestream2 functions where it makes sense
Overreads can not happen as header size of 512 bytes is required.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-03-01 14:59:33 +00:00
Rob Sykes
dc666d360b soxr: libsoxr 0.1.1 support
Libsoxr 0.1.1 will be out very soon; no changes planned beyond what's currently in git.
It includes a couple of fixes (not affecting FFmpeg's current usage) and a minor API change (but remains ABI compatible).

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-01 14:38:02 +01:00
Paul B Mahol
5a232e5078 exr: use bytestream functions in pxr24_uncompress()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-03-01 13:16:29 +00:00
Michael Niedermayer
4b335e73da Merge remote-tracking branch 'qatar/master'
* qatar/master:
  lls: Do not return from void functions

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-01 13:50:19 +01:00
Michael Niedermayer
7da1b235e8 Merge commit '4da950c0ae224b9b8ef952dadf614be2c050023e'
* commit '4da950c0ae224b9b8ef952dadf614be2c050023e':
  lls: #ifndef --> #if in FF_API_ version guard

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-01 13:44:46 +01:00
Michael Niedermayer
1a7166a58d Merge commit 'e8c52271c45ec27d783e74238dcfad0c2008731c'
* commit 'e8c52271c45ec27d783e74238dcfad0c2008731c':
  Revert "Move H264/QPEL specific asm from dsputil.asm to h264_qpel_*.asm."

Conflicts:
	libavcodec/x86/dsputil.asm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-01 13:39:47 +01:00
Michael Niedermayer
28bb17ca36 Merge commit '399663be9d4a839b894c48a21b62926eb8497d72'
* commit '399663be9d4a839b894c48a21b62926eb8497d72':
  lls: mark max_order as unsigned short

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-01 13:32:16 +01:00
Michael Niedermayer
76f8d3c8d9 Merge commit '9d4da474f5f40b019cb4cb931c8499deee586174'
* commit '9d4da474f5f40b019cb4cb931c8499deee586174':
  lls: move to the private namespace

Conflicts:
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-01 13:19:00 +01:00
Michael Niedermayer
fb4b160756 Merge commit '7ac6d2423e9bf0f40c67be9a0ca7600b516b0282'
* commit '7ac6d2423e9bf0f40c67be9a0ca7600b516b0282':
  lls: K&R formatting cosmetics

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-01 13:03:03 +01:00
Michael Niedermayer
41401773d3 Merge commit 'df0229a7caa124dcfb84c34b48d316744c467311'
* commit 'df0229a7caa124dcfb84c34b48d316744c467311':
  avconv: Apply codec options to streams that are copied as well

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-01 12:57:17 +01:00
Michael Niedermayer
46f4b468e2 Merge commit 'cb6f8245aed2c26fe95c30cd68c45983277a945a'
* commit 'cb6f8245aed2c26fe95c30cd68c45983277a945a':
  cmdutils: Allow calling filter_codec_opts without a set encoder
  pnm: Use av_pix_fmt_desc_get instead of accessing the array directly

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-01 12:48:55 +01:00
Diego Biurrun
0b31129389 lls: Do not return from void functions 2013-03-01 01:44:35 +01:00
Diego Biurrun
4da950c0ae lls: #ifndef --> #if in FF_API_ version guard 2013-03-01 01:44:35 +01:00
Michael Niedermayer
e20f2dc048 ffmpeg: fix variable name in psnr printing code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-01 00:25:03 +01:00
Michael Niedermayer
1d178710b4 libvpxenc: dont redundantly zero fields, the whole context is zeroed on init
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-01 00:11:53 +01:00
Pascal Massimino
3c3a8c1489 libvpxenc: add psnr support
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-28 23:29:53 +01:00
Diego Biurrun
e8c52271c4 Revert "Move H264/QPEL specific asm from dsputil.asm to h264_qpel_*.asm."
This reverts commit f90ff772e7.

The code should be put back in h264_qpel_8bit.asm, but unfortunately
it is unconditionally used from dsputil_mmx.c since 71155d7.
2013-02-28 21:50:02 +01:00
Michael Niedermayer
b56e029bdc avformat/lavfi: force probesize to cover at least 30 frames
This ensures that fps and other values are estimated correctly,
the probesize also is intended to limit disk/protocol reads which
does not apply to lavfi inputs at all.

Fixes Ticket1051

Something similar could be usefull to other input devices

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-28 20:28:59 +01:00
Paul B Mahol
33240dfa9a exr: pxr24 decompression
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-28 18:38:15 +00:00
Paul B Mahol
9f3c90a366 exr: fix error message when pixel type is not set
This only happens with missing chlist attribute from header.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-28 18:38:15 +00:00
Paul B Mahol
4751c6c270 exr: s/bits_per_color_id/pixel_type
Previous naming was misleading.

Also fix wrong message about missing
support for 32-bit unsigned int pixel type.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-28 18:38:15 +00:00
Paul B Mahol
a71926a548 exr: track channels properties
Needed for proper decoding of channels with subsampling
and also for remaining compression methods.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-28 18:38:14 +00:00
Nicolas George
d9fad53f4b lavf/avio: check for : in filenames for protocols.
If the first "special" character in a filename is a comma,
it can introduce protocol options, but only if there is a
colon at the end. Otherwise, it is just a filename with a
comma.

Fix trac ticket #2303.
2013-02-28 19:30:56 +01:00
Nicolas George
3d2adeb6f8 lavfi/af_aresample: fix info log for unknown layouts. 2013-02-28 19:23:12 +01:00
Nicolas George
2bd104c72a lavfi/af_aresample: fix layout consistency check.
If the channel layout is unknown, lswr will internally use
the default one for the corresponding number of channels.
2013-02-28 19:23:12 +01:00
Nicolas George
89f9f69e3f lavf: rescale duration for chained muxers.
Fix trac ticket #2300 because the duration of the segments
was computed using the timestamp of the last packet plus its
duration using the 1/90000 default time base instead of using
the chained muxer time base.
2013-02-28 19:20:25 +01:00
Nicolas George
bf63a474ca lavc/exr: use size_t instead of int for sizes.
Fix a segfault on 64-bits archs.
2013-02-28 19:13:58 +01:00
Michael Niedermayer
c4735eef03 loco: silence warning: decoded may be used uninitialized in this function
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-28 18:10:49 +01:00
Luca Barbato
399663be9d lls: mark max_order as unsigned short
The value is within 0 and 32.

Remove an `array subscript is below array bounds` warning.
2013-02-28 17:39:24 +01:00
Luca Barbato
9d4da474f5 lls: move to the private namespace
The functions are private.
2013-02-28 17:39:24 +01:00
Luca Barbato
7ac6d2423e lls: K&R formatting cosmetics 2013-02-28 17:39:24 +01:00
Martin Storsjö
df0229a7ca avconv: Apply codec options to streams that are copied as well
This allows setting/overriding e.g. the bitrate parameter, which
is required for the smoothstreaming muxer. Normally, the bitrate
is set by the demuxer in these cases, but not all demuxers can
provide it. This allows stream copy of data to the smoothstreaming
muxer from such inputs.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-02-28 18:30:42 +02:00
Martin Storsjö
cb6f8245ae cmdutils: Allow calling filter_codec_opts without a set encoder
In this case, no encoder specific options are filtered, only
options specific to that codec type in general.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-02-28 18:30:40 +02:00
Martin Storsjö
86611ff123 pnm: Use av_pix_fmt_desc_get instead of accessing the array directly
This fixes boken fate tests with MSVC with DLLs, broken since
b5f536d24.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-02-28 18:29:03 +02:00
Michael Niedermayer
03678a32bc Merge remote-tracking branch 'qatar/master'
* qatar/master:
  lavf: Add a fate test for the noproxy pattern matching
  lavf: Handle the environment variable no_proxy more properly

Conflicts:
	libavformat/Makefile
	libavformat/internal.h
	libavformat/tls.c
	libavformat/utils.c
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-28 13:13:04 +01:00
Michael Niedermayer
085bd039bb Merge commit 'e2c272eb3660d7f4f1d7720980e30f6a617e7eb3'
* commit 'e2c272eb3660d7f4f1d7720980e30f6a617e7eb3':
  LICENSE: Move (L)GPLv3 explanation block to a more suitable place
  swscale: Add support for unscaled 8-bit Packed RGB -> Planar RGB

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-28 12:49:25 +01:00
Carl Eugen Hoyos
a791b62f5f Improve dump_attachment documentation.
Fixes ticket #2299
2013-02-28 08:57:10 +01:00
Michael Niedermayer
e54a1bdc21 Merge remote-tracking branch 'cus/stable'
* cus/stable:
  ffplay: do not cycle through unavailable show modes
  ffplay: add option to disable subtitling
  ffplay: use NAN to signal invalid external clock
  ffplay: if audio or video clock is invalid return NAN
  ffplay: allow frame dropping if we redisplay an already displayed frame
  ffplay: return true for pictq_prev_picture if it was successful
  ffplay: only quit from audio_decode_frame before decoding when paused
  ffplay: drop remaining frames in current audio avpacket when seeking
  ffplay: signal seek event to read thread

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-28 01:47:34 +01:00
Michael Niedermayer
1c6477f30f Revert "lavf/utils: add support for special characters encoding in URL"
This reverts commit 4a8fc1d83b.

The commit caused null pointer derefernces when using udp://
after i fixed that it caused ffmpeg to get stuck and remapped
arguments like ?ttl=255 -> ?ttl%3d255

I dont want to leave this broken thus temporary revert so we all
have some time to look at this without half the network protocols
being broken in the meantime
2013-02-28 01:29:12 +01:00
Clément Bœsch
7b2d50f81e build: make iconv build configurable. 2013-02-28 01:23:24 +01:00
Senthilnathan M
4a8fc1d83b lavf/utils: add support for special characters encoding in URL
In particular, fix trac ticket #2031.

Signed-off-by: Senthilnathan M <senthilnathan.maadasamy@gmail.com>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2013-02-28 00:39:17 +01:00
Stefano Sabatini
6cc12353a8 lavf/concatdec: define "ffcat" and "ffconcat" extensions 2013-02-28 00:16:33 +01:00
Marton Balint
ac37d21f49 ffplay: do not cycle through unavailable show modes
Fixes ticket #2200.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-02-27 21:34:13 +01:00
Marton Balint
d0c6ed7da0 ffplay: add option to disable subtitling
Fixes ticket #2201.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-02-27 21:34:13 +01:00
Marton Balint
daece4c674 ffplay: use NAN to signal invalid external clock
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-02-27 21:34:12 +01:00
Marton Balint
26c208cf0f ffplay: if audio or video clock is invalid return NAN
This helps us not to make bad decision (frame dropping, audio compensation)
right after seeking when we do not know yet the recent audio or video clock.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-02-27 21:34:12 +01:00
Marton Balint
38f649662c ffplay: allow frame dropping if we redisplay an already displayed frame
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-02-27 21:34:12 +01:00
Marton Balint
36dc476f83 ffplay: return true for pictq_prev_picture if it was successful
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-02-27 21:34:12 +01:00
Marton Balint
3070600d9b ffplay: only quit from audio_decode_frame before decoding when paused
This way the audio clock is updated to a proper value even when the video is
paused.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-02-27 21:34:12 +01:00
Marton Balint
48e43a1999 ffplay: drop remaining frames in current audio avpacket when seeking
Fixes ticket #1928.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-02-27 21:34:12 +01:00
Marton Balint
4be7d578a3 ffplay: signal seek event to read thread
Improves seek delay.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-02-27 21:34:12 +01:00
Clément Bœsch
2ecf564f94 build: fix iconv detection on some systems.
This at least fix the build on CentOS.
2013-02-27 21:00:38 +01:00
Martin Storsjö
5c8696555a lavf: Add a fate test for the noproxy pattern matching
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-02-27 21:32:14 +02:00
Martin Storsjö
de9cd1b173 lavf: Handle the environment variable no_proxy more properly
The handling of the environment variable no_proxy, present since
one of the initial commits (de6d9b6404), is inconsistent with
how many other applications and libraries interpret this
variable. Its bare presence does not indicate that the use of
proxies should be skipped, but it is some sort of pattern for
hosts that does not need using a proxy (e.g. for a local network).

As investigated by Rudolf Polzer, different libraries handle this
in different ways, some supporting IP address masks, some supporting
arbitrary globbing using *, some just checking that the pattern matches
the end of the hostname without regard for whether it actually is
the right domain or a domain that ends in the same string.

This simple logic should be pretty similar to the logic used by
lynx and curl.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-02-27 21:32:13 +02:00
Diego Biurrun
e2c272eb36 LICENSE: Move (L)GPLv3 explanation block to a more suitable place 2013-02-27 19:51:10 +01:00
Nicolas George
13811b19d6 lavc/libopusenc: report an error if global_quality is set. 2013-02-27 19:01:34 +01:00
Nicolas George
f102c24d90 ffmpeg: free last sub when using -fix_sub_duration.
Fix trac ticket #2242.

Note: under valid circumstances, when using -fix_sub_duration,
the last subtitle is a dummy termination packet, with no
allocated memory.
2013-02-27 18:57:33 +01:00
Michael Niedermayer
1fd04cac00 Merge remote-tracking branch 'fredjean/master'
* fredjean/master:
  Include fix for building ismindex under MinGW

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-27 18:26:16 +01:00
Frederic Jean
c53e8d9029 Include fix for building ismindex under MinGW
Include cmdutils.h so we can build under windows. 

Based on fix for https://ffmpeg.org/trac/ffmpeg/ticket/256
2013-02-27 10:13:09 -07:00
Paul B Mahol
9774145fe5 exr: simplify decompression path
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-27 16:28:32 +00:00
Michael Niedermayer
5c924c9b7d dv: Correctly identify CDVC profile
Fixes Ticket2177

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-27 17:19:51 +01:00
Michael Niedermayer
21c2e201f6 vf_lut: correct color/comp permutation
Fixes Ticket2225

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-27 17:09:21 +01:00
Derek Buitenhuis
c87c2d0d02 swscale: Add support for unscaled 8-bit Packed RGB -> Planar RGB
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2013-02-27 09:51:43 -05:00
Derek Buitenhuis
57c4c25596 swscale: Add support for unscaled 8-bit Packed RGB -> Planar RGB
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2013-02-27 09:46:39 -05:00
Michael Niedermayer
50c2738883 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  x86: dsputil: Drop some unused function #defines

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-27 12:35:18 +01:00
Michael Niedermayer
cdb9752a0f Merge commit '845cfc92f908791714b8c4c8a49c91b8c64b685e'
* commit '845cfc92f908791714b8c4c8a49c91b8c64b685e':
  x86: dsputil: Drop aliasing of ff_put_pixels8_mmx to ff_put_pixels8_mmxext

Conflicts:
	libavcodec/x86/dsputil_mmx.c

Note, the commit message is wrong, there are no mmxext instructions as
claimed in the function. The change should do no harm though

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-27 12:22:10 +01:00
Michael Niedermayer
04ec796bda Merge commit '096cc11ec102701a18951b4f0437d609081ca1dd'
* commit '096cc11ec102701a18951b4f0437d609081ca1dd':
  x86: vc1dsp: Move ff_avg_vc1_mspel_mc00_mmxext out of dsputil_mmx.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-27 11:59:31 +01:00
Michael Niedermayer
f2bbc2ffc3 Merge commit '31a23a0dc663bd42bf593275971b4277a479b73d'
* commit '31a23a0dc663bd42bf593275971b4277a479b73d':
  x86: dsputil_mmx: Remove leftover inline assembly fragments

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-27 11:50:51 +01:00
Michael Niedermayer
5d2f2c7643 oggdec: chained oggs have timestamp discontinuities
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-27 03:46:12 +01:00
Michael Niedermayer
0dcecf45d8 avcodec: mbd has a range of 0..2
Fixes Ticket2219

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-27 03:04:04 +01:00
Michael Niedermayer
1672624ddc mpegvideo_enc: fix gray flag with 444 jpeg
Fixes Ticket2155

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-27 02:56:06 +01:00
Jean First
2d7044683f ffmpeg_opt: add -to option to specify stop time
Signed-off-by: Jean First <jeanfirst@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-27 02:17:42 +01:00
Diego Biurrun
ebc701993f x86: dsputil: Drop some unused function #defines 2013-02-26 23:36:24 +01:00
Diego Biurrun
845cfc92f9 x86: dsputil: Drop aliasing of ff_put_pixels8_mmx to ff_put_pixels8_mmxext
The external assembly function uses mmxext instructions and should not be
masqueraded as an mmx-only function. Instead, use the mmx-only inline
assembly function.
2013-02-26 23:36:24 +01:00
Diego Biurrun
096cc11ec1 x86: vc1dsp: Move ff_avg_vc1_mspel_mc00_mmxext out of dsputil_mmx.c 2013-02-26 23:36:24 +01:00
Martin Storsjö
31a23a0dc6 x86: dsputil_mmx: Remove leftover inline assembly fragments
These became unused in 71155d7b.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-02-27 00:17:05 +02:00
Michael Niedermayer
997a36238f mpeg12: Detect MXF essence stuff at the end of frames
Fixes some of the issues with segment.mov

See: 0226 15:16 Joseph Artsimov (2.1K) [FFmpeg-devel] Two problems with MPEG2 decoder
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-26 18:56:32 +01:00
Michael Niedermayer
e4eedb983d swscale-test: fix 3 pointer type warnings
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-26 16:50:32 +01:00
Michael Niedermayer
c6d3b3be15 aacsbr: Silence warning: max_qmf_subbands may be used uninitialized in this function
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-26 16:36:29 +01:00
Michael Niedermayer
e907aa98cd Merge remote-tracking branch 'qatar/master'
* qatar/master:
  configure: icc: Drop nonsense adding of cpuflags to LDFLAGS

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-26 13:13:10 +01:00
Michael Niedermayer
a984efd104 Merge commit 'c242bbd8b6939507a1a6fb64101b0553d92d303f'
* commit 'c242bbd8b6939507a1a6fb64101b0553d92d303f':
  Remove unnecessary dsputil.h #includes

Conflicts:
	libavcodec/ffv1.c
	libavcodec/h261dec.c
	libavcodec/h261enc.c
	libavcodec/h264pred.c
	libavcodec/lpc.h
	libavcodec/mjpegdec.c
	libavcodec/rectangle.h
	libavcodec/x86/idct_sse2_xvid.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-26 13:05:10 +01:00
Michael Niedermayer
9b1a0c2ee8 Merge commit '76b19a3984359b3be44d4f7e4e69b7b86729a622'
* commit '76b19a3984359b3be44d4f7e4e69b7b86729a622':
  Fix a number of incorrect intmath.h #includes.
  avconv: remove an unused variable

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-26 12:56:55 +01:00
Michael Niedermayer
6fbddc80d6 Merge commit 'e8da807537e314d74cb6d93598f1dcfb891fa655'
* commit 'e8da807537e314d74cb6d93598f1dcfb891fa655':
  cmdutils: only use libavresample when it is enabled
  libschroedinger: cosmetics: rename variable avccontext to avctx
  vorbisenc: cosmetics: rename variable avccontext to avctx

Conflicts:
	cmdutils.c
	libavcodec/libschroedinger.c
	libavcodec/libschroedingerenc.c
	libavcodec/vorbisenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-26 12:50:34 +01:00
Michael Niedermayer
13fa074173 Merge commit 'e951b6d94c441d46b396ef12da1428297d77251d'
* commit 'e951b6d94c441d46b396ef12da1428297d77251d':
  vorbisdec: cosmetics: rename variable avccontext to avctx
  configure: Identify icc compiler with a less ambiguous pattern

Conflicts:
	libavcodec/vorbisdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-26 12:39:26 +01:00
Michael Niedermayer
2b277f2992 Merge commit 'b58b00aeca21de00ab6da2944684f784d9d6bc47'
* commit 'b58b00aeca21de00ab6da2944684f784d9d6bc47':
  configure: Separate "ln" command line arguments

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-26 12:32:17 +01:00
Michael Niedermayer
f6fff8e546 ac3enc_template: silence may be used uninitialized in this function warnings
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-26 02:49:14 +01:00
Michael Niedermayer
5bcb379ffe motion-test: fix warning: dsp_mask is deprecated
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-26 02:49:05 +01:00
Michael Niedermayer
bfcc21a472 libavcodec/motion-test: set the bitexact flag
this is needed for testing mmx2 functions

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-26 02:48:18 +01:00
Diego Biurrun
3a02b6884c configure: icc: Drop nonsense adding of cpuflags to LDFLAGS
This fixes many icc warnings when not setting the CPU type.
2013-02-26 00:51:34 +01:00
Diego Biurrun
c242bbd8b6 Remove unnecessary dsputil.h #includes 2013-02-26 00:51:34 +01:00
Diego Biurrun
76b19a3984 Fix a number of incorrect intmath.h #includes. 2013-02-26 00:51:34 +01:00
Justin Ruggles
d925cca95f avconv: remove an unused variable 2013-02-25 15:15:22 -05:00
Justin Ruggles
e8da807537 cmdutils: only use libavresample when it is enabled
avprobe and avserver use cmdutils and do not strictly require libavresample.
2013-02-25 15:15:21 -05:00
Justin Ruggles
e951b6d94c vorbisdec: cosmetics: rename variable avccontext to avctx
This is consistent with the rest of libavcodec.
2013-02-25 15:15:21 -05:00
Justin Ruggles
699d02b839 libschroedinger: cosmetics: rename variable avccontext to avctx
This is consistent with the rest of libavcodec.
2013-02-25 15:15:21 -05:00
Justin Ruggles
09031b4639 vorbisenc: cosmetics: rename variable avccontext to avctx
This is consistent with the rest of libavcodec.
2013-02-25 15:15:21 -05:00
slhck
bfcc38ef48 libvpx: check if CQ level is in correct bounds
Check whether CQ level is within qmin..qmax and abort on error. If this isn't properly
set, encoding will fail at the first frame.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-25 20:13:10 +01:00
slhck
188947c32a libvpx: allow 0 as min quantizer value
Allow setting the min quantizer to 0 instead of 1 (libvpx allows 0); fixes #2136

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-25 20:10:14 +01:00
Jean First
af0e8144cd ffmpeg_opt: cosmetics
Signed-off-by: Jean First <jeanfirst@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-25 18:36:21 +01:00
Michael Niedermayer
e6f27346b7 pmpdec: make i unsigned, avoid undefined behavior of i++
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-25 18:36:21 +01:00
Michael Niedermayer
a960f3b918 pmpdec: fix integer overflow
Its unlikely this affects any valid files.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-25 18:36:21 +01:00
Diego Biurrun
b2d688ea9f configure: Identify icc compiler with a less ambiguous pattern 2013-02-25 18:15:41 +01:00
Diego Biurrun
b58b00aeca configure: Separate "ln" command line arguments
This is more compatible and not more complicated.
2013-02-25 18:15:17 +01:00
Paul B Mahol
b8f6912816 fate: update pixfmts_hflip
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-25 13:16:44 +00:00
Paul B Mahol
e0ccb5fa38 lavfi/hflip: support more formats
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-25 13:07:29 +00:00
Paul B Mahol
eac93932b0 lavfi/geq: improve support for formats with alpha plane
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-25 12:54:40 +00:00
Michael Niedermayer
875f883185 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  vorbisdec: Accept 0 amplitude_bits

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-25 12:58:31 +01:00
Michael Niedermayer
f7dc6aa5fe Merge commit '5b47c19bfda92273ae49e83db26a565afcaed80a'
* commit '5b47c19bfda92273ae49e83db26a565afcaed80a':
  vorbisdec: Add missing checks

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-25 12:52:45 +01:00
Michael Niedermayer
a0312a2e85 Merge commit 'fc386f2eea8d93ecd4f81e1646c835d1645c56a0'
* commit 'fc386f2eea8d93ecd4f81e1646c835d1645c56a0':
  vorbisdec: cosmetics

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-25 12:30:41 +01:00
Michael Niedermayer
cb72f698fe Merge commit '11dcecfcca0eca1a571792c4fa3c21fb2cfddddc'
* commit '11dcecfcca0eca1a571792c4fa3c21fb2cfddddc':
  vorbisdec: Error on bark_map_size equal to 0.
  dsputil_alpha.h: Add missing stddef.h header to fix standalone compilation

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-25 12:22:18 +01:00
Luca Barbato
23bd9ef4b2 vorbisdec: Accept 0 amplitude_bits
The specification does not prevent an encoder to write the amplitude 0
as 0 amplitude_bits.

Our get_bits() implementation might not support a zero sized read
properly, thus the additional branch.
2013-02-25 07:34:00 +01:00
Luca Barbato
5b47c19bfd vorbisdec: Add missing checks
Rate and order must not be 0 even if the specification does not say that
explicitly.
2013-02-25 07:34:00 +01:00
Luca Barbato
fc386f2eea vorbisdec: cosmetics
Use the commonly used "if (!var)" instead of "if (var == 0)".
2013-02-25 07:34:00 +01:00
Michael Niedermayer
11dcecfcca vorbisdec: Error on bark_map_size equal to 0.
The value is used to calculate output LSP curve and a division by zero
and out of array accesses would occur.

CVE-2013-0894

CC: libav-stable@libav.org

Reported-by: Dale Curtis <dalecurtis@chromium.org>
Found-by: inferno@chromium.org
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-02-25 07:33:59 +01:00
Michael Niedermayer
bb7bc3443d af_biquads: memset(0) cache
Fixes valgrind warnings

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-25 04:39:26 +01:00
Michael Niedermayer
35aaa306ac swr: make the default of nopts for first_pts actually work
Fixes Ticket2210

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-25 04:39:26 +01:00
Michael Niedermayer
7f2ab129b1 fate: force a first_pts=0 for the aresample test
This is needed to prevent the next commit from breaking fate

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-25 04:39:26 +01:00
Michael Niedermayer
e42028925b ffmpeg: Force a first_pts of 0 for the first configuration of -async use
This is very close to what the default does currently

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-25 04:39:26 +01:00
Stefano Sabatini
394130efe3 ffplay: reindent and remove pointless cast in audio_decode_frame() code 2013-02-24 23:29:42 +01:00
Stefano Sabatini
a3fa27e366 ffplay: set type for channel_layout AudioParams field to int64_t
Reflect the type of the corresponding field in lavc/lavfi.
2013-02-24 23:26:43 +01:00
Stefano Sabatini
566560b85c lavfi/abuffersink: fix weird indent and spacing 2013-02-24 23:22:23 +01:00
Stefano Sabatini
b59cd089ff lavfi/abuffersink: add sample_rates field to AVABufferSinkParams
Allow to select sample rates.
2013-02-24 23:21:28 +01:00
Stefano Sabatini
5085b46496 lavc: change type of AVFrame.channels field from int64_t to int
"channels" is an int in all the other places in the libraries, and the
av_frame_*_channels() accessors return and set an int, so this should not
implicate ABI breaks.
2013-02-24 23:14:46 +01:00
Michael Niedermayer
ad899522ff ffmpeg: use a AVDictionary instead of the context to move swr parameters around
This avoids per parameter changes in ffmpeg at the cost of making access
somewhat more annoying.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-24 20:31:56 +01:00
Michael Niedermayer
f3abdf4392 cmdutils: fix null pointer dereference
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-24 20:31:56 +01:00
Michael Niedermayer
8b3affda87 swr: support a seperate output sample bits.
This avoids user apps having to mangle dither scale. for pcm24

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-24 20:31:56 +01:00
Michael Niedermayer
c4c702b6d3 avfilter/avfiltergraph.h: Move public field out of the private fields
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-24 20:31:56 +01:00
Michael Niedermayer
2abbe6d07a swr: add duplicate cutoff for compatibility
Based on
	commit 50f4337a2f
	Author: Justin Ruggles <justin.ruggles@gmail.com>

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-24 20:31:56 +01:00
Paul B Mahol
8a7d177cf6 fate: add animated gif decoder tests
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-24 19:27:26 +00:00
Paul B Mahol
bc980d57ca fate: add animated gif demuxer test
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-24 19:27:26 +00:00
Reimar Döffinger
c65eb7907c mpeg12: Fix non-hwaccel VDPAU decode.
Previously avctx->hwaccel would have been set to a dummy value,
now an explicit check is necessary instead.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2013-02-24 19:49:06 +01:00
Reimar Döffinger
db6e2e848b hls: do not access pb->opaque for custom IO.
As the name indicates we can't just assume what the
"opaque" field contains.
This fixes a crash in third-party applications see e.g.:
http://bugzilla.mplayerhq.hu/show_bug.cgi?id=2126

This fixes also FFmpeg trac #2293, which is a different
third-party application.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2013-02-24 19:49:06 +01:00
Diego Biurrun
3d035d5a6a dsputil_alpha.h: Add missing stddef.h header to fix standalone compilation 2013-02-24 18:51:40 +01:00
Michael Niedermayer
036df234fb Merge remote-tracking branch 'qatar/master'
* qatar/master:
  configure: List external libs used using print_enabled()

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-24 18:02:37 +01:00
Michael Niedermayer
214cb30b72 Merge commit '3fc09b0081184f26edbb62d2d72ae89bf9e21768'
* commit '3fc09b0081184f26edbb62d2d72ae89bf9e21768':
  configure: Move list of external libs to a separate variable

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-24 17:55:31 +01:00
Michael Niedermayer
5f8f9dc436 Merge commit '45235ac488363e3360bf2f2275102d1ec66eba0f'
* commit '45235ac488363e3360bf2f2275102d1ec66eba0f':
  configure: Move x11grab option to a more suitable place in the help output
  lavr: allow setting internal_sample_fmt option by string
  lavr: Add "resample_cutoff" option as a duplicate of "cutoff"

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-24 17:45:06 +01:00
Michael Niedermayer
6db37c9468 Merge commit '5c7db097ebe1fb5c233cedd8846615074e7d6044'
* commit '5c7db097ebe1fb5c233cedd8846615074e7d6044':
  avconv: pass libavresample options to AVFilterGraph

Conflicts:
	cmdutils.c
	cmdutils.h
	ffmpeg_filter.c
	ffmpeg_opt.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-24 17:41:31 +01:00
Michael Niedermayer
71cf094e1b Merge commit '9f1223562e134bac6345a465870b9d56ff7d60cf'
* commit '9f1223562e134bac6345a465870b9d56ff7d60cf':
  lavfi: connect libavresample options to af_resample via AVFilterGraph

Conflicts:
	doc/APIchanges
	libavfilter/avfiltergraph.c
	libavfilter/avfiltergraph.h
	libavfilter/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-24 17:10:55 +01:00
Michael Niedermayer
f7c4b76c48 Merge commit 'd7c450436fcb9d3ecf59884a574e7684183e753d'
* commit 'd7c450436fcb9d3ecf59884a574e7684183e753d':
  ac3dec: validate channel output mode against channel count

Conflicts:
	libavcodec/ac3dec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-24 16:53:09 +01:00
Michael Niedermayer
dbabea2f23 configure: hwaccel autodetection has been removed in 82ca17ac7a
If you want it back (yeah i want it back too)
then you just need to volunteer to maintain the code in configure
thats related to hwaccel autodetection.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-24 16:40:46 +01:00
Diego Biurrun
fdd392ed27 configure: Simplify VDPAU header check
Conflicts:

	configure
2013-02-24 16:33:55 +01:00
Michael Niedermayer
8cf9253aef Merge commit '82ca17ac7a0a08784cb6808384ee237ac28e8334'
* commit '82ca17ac7a0a08784cb6808384ee237ac28e8334':
  configure: Fix vaapi/vda/vdpau dependency declarations

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-24 16:18:21 +01:00
Michael Niedermayer
60cc4a32b5 Merge commit '215cdd35efd625ec28ef5846f1692b18f7c2c230'
* commit '215cdd35efd625ec28ef5846f1692b18f7c2c230':
  configure: Refactor dxva2api.h dependency declarations

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-24 15:37:11 +01:00
Paul B Mahol
7b12554c5a exr: make sure that data_size is not bigger than expected
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-24 14:27:39 +00:00
Paul B Mahol
74a78bfe6c exr: simplify filling channel_buffer[]
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-24 14:27:39 +00:00
Paul B Mahol
645f96f129 exr: check color channel subsampling too
If there is unsupported subsampling encountered abort
early instead of failing decoding later.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-24 14:27:39 +00:00
Paul B Mahol
1a08758e7c exr: slice threading
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-24 14:27:39 +00:00
Michael Niedermayer
845bf99312 Merge commit '4cc4b33f71d3982df404fceb4405d656c538bc74'
* commit '4cc4b33f71d3982df404fceb4405d656c538bc74':
  build: Add proper infrastructure for adding and checking host CPPFLAGS

Conflicts:
	Makefile
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-24 15:24:38 +01:00
Michael Niedermayer
42b411995c Merge commit '2aac411fd4c74e22b978525206f3b8257de1842b'
* commit '2aac411fd4c74e22b978525206f3b8257de1842b':
  configure: Simplify VDPAU header check

Conflicts:
	configure

Not merged as the code seems not to work

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-24 15:21:13 +01:00
Michael Niedermayer
56c245f921 Merge commit '9840130edf3a969ec06dd0faa61dcf8d90c5f67a'
* commit '9840130edf3a969ec06dd0faa61dcf8d90c5f67a':
  configure: Simplify VDA header and extralibs check

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-24 14:58:06 +01:00
Michael Niedermayer
74c9245254 Merge commit '0a8da1a3e5f0b9329dfb89d17356ff5444c02351'
* commit '0a8da1a3e5f0b9329dfb89d17356ff5444c02351':
  configure: Do not redundantly list enabled hwaccel libs

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-24 14:50:19 +01:00
Michael Niedermayer
409890ca2f Merge commit '7432e872066d6960a9fbd31c51a94ebe6183389e'
* commit '7432e872066d6960a9fbd31c51a94ebe6183389e':
  configure: Add print_3_columns helper function and use where appropriate

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-24 14:37:54 +01:00
Michael Niedermayer
2fc662ae63 Merge commit '040c565e51985477a8fa5e42d2ddfb26ebde6608'
* commit '040c565e51985477a8fa5e42d2ddfb26ebde6608':
  doc: developer: Allow tabs in the vim configuration for Automake files
  Remove pointless av_cold attributes in header files

Conflicts:
	libavcodec/h264.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-24 14:32:55 +01:00
Michael Niedermayer
5ecf8189c6 pnm: use av_pix_fmt_desc_get()
Using the table directly may cause problems on some platforms like msvc

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-24 14:27:39 +01:00
Michael Niedermayer
198ea7a96f Merge commit 'b5f536d24b5ae360503935c34d5d59fa5181b94d'
* commit 'b5f536d24b5ae360503935c34d5d59fa5181b94d':
  pnm: add high-bitdepth PGMYUV support for both encoder and decoder

Conflicts:
	libavcodec/pnm.c
	libavcodec/pnmdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-24 14:14:28 +01:00
Michael Niedermayer
a77a27a24b Merge commit '2f325a6fd4421c4dd4e26d7065e5d4bf26ed52f2'
* commit '2f325a6fd4421c4dd4e26d7065e5d4bf26ed52f2':
  libx264: change i_qfactor to use x264cli's default
  qtrle: use AV_LOG_ERROR in an error message.

Conflicts:
	libavcodec/libx264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-24 14:05:16 +01:00
Michael Niedermayer
6f5f0671f3 Merge commit '7b4f91155bd4ef5a8d4e9af65c48b42bfa5b52c6'
* commit '7b4f91155bd4ef5a8d4e9af65c48b42bfa5b52c6':
  qtrle: cosmetics, reformat CHECK_PIXEL_PTR() macro

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-24 13:55:44 +01:00
Michael Niedermayer
9ba38e6273 Merge commit 'e10659244782b26061e7d52c06437de32a43a7af'
* commit 'e10659244782b26061e7d52c06437de32a43a7af':
  qtrle: add more checks against pixel_ptr being negative.

Conflicts:
	libavcodec/qtrle.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-24 13:49:37 +01:00
Michael Niedermayer
9748cac565 Merge commit '4f3b058c84f570e261d743c7c22f865617fd28ac'
* commit '4f3b058c84f570e261d743c7c22f865617fd28ac':
  cavs: initialize various context tables to 0
  mlpdec: do not try to allocate a zero-sized output buffer.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-24 13:24:43 +01:00
Michael Niedermayer
663ebae79a Merge commit '56daf10e0313c5e36f43e773f457d2a99ff0df10'
* commit '56daf10e0313c5e36f43e773f457d2a99ff0df10':
  mov: use the format context for logging.
  flicvideo: avoid an infinite loop in byte run compression

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-24 13:15:59 +01:00
Nicolas George
ea2de3d096 lavf/concatdec: add the "duration" directive. 2013-02-24 13:12:46 +01:00
Nicolas George
b92c7a8f4b tools: add seek_print.
Useful for testing seek implementations.
2013-02-24 13:12:46 +01:00
Michael Niedermayer
33796645dc loco: check the last plane too
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-24 13:08:52 +01:00
Michael Niedermayer
714ff44858 Merge commit '067432c1c95882c7221e694f33d9f3bdbe46de7f'
* commit '067432c1c95882c7221e694f33d9f3bdbe46de7f':
  loco: check that there is data left after decoding a plane.
  lagarith: avoid infinite loop in lag_rac_refill()

Conflicts:
	libavcodec/loco.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-24 13:08:42 +01:00
Michael Niedermayer
4ba35194a9 Merge commit 'f935aca44c674d30e3ed940ef73bbad1228a5855'
* commit 'f935aca44c674d30e3ed940ef73bbad1228a5855':
  av_memcpy_backptr: avoid an infinite loop for back = 0
  4xm: check the return value of read_huffman_tables().

Conflicts:
	libavcodec/4xm.c
	libavutil/mem.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-24 12:22:51 +01:00
Nicolas George
ccc7bcc4fc lavc: check return values consistency when decoding subtitles. 2013-02-24 12:18:57 +01:00
Nicolas George
e568d432b1 lavfi/formats: reindent after last commit. 2013-02-24 12:05:06 +01:00
Nicolas George
2d98dd3d14 lavfi: fix merging of formats and clarify exception.
The following commit:
b97d61f avfilter/ff_merge_formats: only merge if doing so does not loose chroma or alpha
introduced an exception to avoid lossy conversions.
Add a comment to explain the logic.
Fix the call to avoid applying it on audio formats.
2013-02-24 11:58:52 +01:00
Nicolas George
3d7f4f8726 lavf/avio: check that the protocol supports the open mode.
Fix trac ticket #2139.
2013-02-24 11:51:16 +01:00
Nicolas George
bf0712c2f8 libavfilter/af_amerge: fix segfault if init fails. 2013-02-24 11:23:51 +01:00
Mans Rullgard
04cccb5fc1 configure: List external libs used using print_enabled()
This cuts some lines from the script as well as the output and
simplifies maintenance.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2013-02-24 00:19:36 +01:00
Mans Rullgard
3fc09b0081 configure: Move list of external libs to a separate variable
Signed-off-by: Mans Rullgard <mans@mansr.com>
2013-02-24 00:19:36 +01:00
Diego Biurrun
45235ac488 configure: Move x11grab option to a more suitable place in the help output 2013-02-24 00:19:36 +01:00
Michael Niedermayer
066739f6bc pmpdec: check packet sizes
Reviewed-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-24 00:13:54 +01:00
Michael Niedermayer
7276e9ea95 pmpdec: fix signedness
Reviewed-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-24 00:13:54 +01:00
Michael Niedermayer
b0bc0eb978 pmpdec: read index before creating audio streams
This allows more complete checks

Reviewed-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-24 00:13:54 +01:00
Reimar Döffinger
50a37f9202 pmpdec: check for EOF while reading index.
Otherwise even a tiny file can trigger a huge memory allocation.

Related to ticket #2298.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2013-02-24 00:01:56 +01:00
Michael Niedermayer
82d79289db avformat: Allocate duration_error separately
This significantly reduces the memory needed per AVStream when the
array is not needed.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-23 23:15:09 +01:00
Justin Ruggles
5c7db097eb avconv: pass libavresample options to AVFilterGraph 2013-02-23 17:07:54 -05:00
Justin Ruggles
9f1223562e lavfi: connect libavresample options to af_resample via AVFilterGraph 2013-02-23 17:07:54 -05:00
Justin Ruggles
b2eea615c0 lavr: allow setting internal_sample_fmt option by string 2013-02-23 17:07:54 -05:00
Justin Ruggles
50f4337a2f lavr: Add "resample_cutoff" option as a duplicate of "cutoff"
Avoids an option name conflict with libavcodec, which is needed in order
to work properly with avconv.
2013-02-23 17:07:54 -05:00
Michael Niedermayer
285485ac5f matroskaenc: fix cue tracknum off by 1 error
Fixes out of array accesses

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-23 23:06:27 +01:00
Justin Ruggles
d7c450436f ac3dec: validate channel output mode against channel count
Damaged frames can lead to a mismatch, which can cause a segfault
due to using an incorrect channel mapping.

CC:libav-stable@libav.org
2013-02-23 16:59:39 -05:00
Diego Biurrun
82ca17ac7a configure: Fix vaapi/vda/vdpau dependency declarations 2013-02-23 21:08:40 +01:00
Diego Biurrun
215cdd35ef configure: Refactor dxva2api.h dependency declarations 2013-02-23 21:08:40 +01:00
Diego Biurrun
4cc4b33f71 build: Add proper infrastructure for adding and checking host CPPFLAGS 2013-02-23 20:23:45 +01:00
Diego Biurrun
2aac411fd4 configure: Simplify VDPAU header check 2013-02-23 20:13:48 +01:00
Diego Biurrun
9840130edf configure: Simplify VDA header and extralibs check 2013-02-23 20:13:48 +01:00
Mans Rullgard
0a8da1a3e5 configure: Do not redundantly list enabled hwaccel libs
The enabled hwaccels are listed later anyway.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2013-02-23 20:13:47 +01:00
Diego Biurrun
7432e87206 configure: Add print_3_columns helper function and use where appropriate 2013-02-23 20:13:47 +01:00
Diego Biurrun
040c565e51 doc: developer: Allow tabs in the vim configuration for Automake files
While we do not use Automake in libav, this allows our config to be
used more globally without introducing unwanted breakage.
2013-02-23 20:13:47 +01:00
Diego Biurrun
94ee7da08d Remove pointless av_cold attributes in header files
The init functions marked as av_cold have to be executed in any case,
so there is no gain from trying to mark paths leading to such functions
as unlikely.
2013-02-23 20:13:47 +01:00
Michael Niedermayer
73fce258b7 vf_mp: Set pseudo pal
Fixes ticket2140
Fixes null pointer dereference

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-23 19:32:24 +01:00
Michael Niedermayer
da8ef5ac2f rtmpproto: increase APP_MAX_LENGTH
Fixes second part of Ticket2292

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-23 17:24:15 +01:00
Michael Niedermayer
02ac3398eb rtmpproto: Check APP_MAX_LENGTH
Fixes Ticket2292

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-23 17:18:22 +01:00
Kostya Shishkov
b5f536d24b pnm: add high-bitdepth PGMYUV support for both encoder and decoder 2013-02-23 16:49:22 +01:00
Paul B Mahol
df63e0c8bb doc/filters: add forgotten sentence for blend filter examples
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-23 14:26:21 +00:00
Michael Niedermayer
c10c2aed47 h264: Silence warning: comparison of distinct pointer types lacks a cast
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-23 14:09:04 +01:00
Michael Niedermayer
5270cb39ba bmp: Fix warning X may be used uninitialized in this function
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-23 14:03:18 +01:00
John Van Sickle
2f325a6fd4 libx264: change i_qfactor to use x264cli's default
This also allows libx264 to modify its i_qfactor value
when using the "-tune" setting. Previously it had a static
value of 1.25

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-02-23 13:34:52 +01:00
Anton Khirnov
d8a74d1d95 qtrle: use AV_LOG_ERROR in an error message. 2013-02-23 13:06:12 +01:00
Anton Khirnov
7b4f91155b qtrle: cosmetics, reformat CHECK_PIXEL_PTR() macro 2013-02-23 13:06:08 +01:00
Anton Khirnov
e106592447 qtrle: add more checks against pixel_ptr being negative.
CC:libav-stable@libav.org
2013-02-23 13:05:54 +01:00
Anton Khirnov
4f3b058c84 cavs: initialize various context tables to 0
Avoids crashes with corrupted files.

CC:libav-stable@libav.org
2013-02-23 13:05:43 +01:00
Anton Khirnov
0dff40bfb9 mlpdec: do not try to allocate a zero-sized output buffer.
CC:libav-stable@libav.org
2013-02-23 13:05:31 +01:00
Anton Khirnov
56daf10e03 mov: use the format context for logging.
CC:libav-stable@libav.org
2013-02-23 13:05:16 +01:00
Michael Niedermayer
23c9180c00 aacdec: Fix warning: initialization from incompatible pointer type
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-23 12:16:28 +01:00
Michael Niedermayer
cfcab4c507 vf_overlay: silence warning: X may be used uninitialized in this function
Also ensure that format is valid in query_formats

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-23 12:10:35 +01:00
Michael Niedermayer
3c14c82b7e avfilter: Silence warning: passing argument 3 of av_image_copy from incompatible pointer type
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-23 12:08:05 +01:00
Anton Khirnov
ddfe1246d9 flicvideo: avoid an infinite loop in byte run compression
When byte_run is 0, pixel_countdown is not touched and the loop will run
forever.

CC:libav-stable@libav.org
2013-02-23 09:22:30 +01:00
Anton Khirnov
067432c1c9 loco: check that there is data left after decoding a plane.
CC:libav-stable@libav.org
2013-02-23 09:20:42 +01:00
Anton Khirnov
de6dfa2bb8 lagarith: avoid infinite loop in lag_rac_refill()
range == 0 happens with corrupted files

CC:libav-stable@libav.org
2013-02-23 09:16:32 +01:00
Anton Khirnov
f935aca44c av_memcpy_backptr: avoid an infinite loop for back = 0
CC:libav-stable@libav.org
2013-02-23 09:16:15 +01:00
Anton Khirnov
8097fc9a2d 4xm: check the return value of read_huffman_tables().
CC:libav-stable@libav.org
2013-02-23 09:13:08 +01:00
Clément Bœsch
0ac71f9a32 fate/subtitles: add character encoding conversion test. 2013-02-23 00:24:02 +01:00
Stefano Sabatini
e95637841c tests: fix parseutils test after 12a269a522
"12:34" is now valid syntax.
2013-02-23 00:18:34 +01:00
Stefano Sabatini
160def32da doc/muxers: fix reference to @anchor defined in another manual
In particular, fix warnings:
*** Undefined node `quoting_and_escaping' in @ref (in doc/muxers.texi l. 767)
*** Undefined node `quoting_and_escaping' in @ref (in doc/muxers.texi l. 772)
2013-02-22 23:48:55 +01:00
Stefano Sabatini
ce84c14ab1 lavu/parseutils: remove spurious "]]" in date format specification 2013-02-22 23:45:31 +01:00
Senthilnathan M
12a269a522 lavu/parseutils: allow MM:SS format for duration in av_parse_time()
Fix trac ticket #2258.

Signed-off-by: Senthilnathan M <senthilnathan.maadasamy@gmail.com>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2013-02-22 23:43:46 +01:00
Malcolm Bechard
239b88c284 Improve QTRLE encoding performance, no change to output file size/content.
Avoid searching for the lowest bulk cost for each pixel that isn't a repeat/skip. Instead store the lowest cost as we go along each pixel, and use it as needed.

Signed-off-by: Malcolm Bechard <malcolm.bechard@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-22 21:41:54 +01:00
Michael Niedermayer
2c21d34ea4 avutil/mem: do a small set of checks for memalign hack before freeing.
These can detect some kinds of memory and or pointer corruptions

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-22 20:42:33 +01:00
Paul B Mahol
89c77b6b15 exr: shorter channel buffer names
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-22 19:31:00 +00:00
Paul B Mahol
7a930f310a exr: remove superfluous check
get_header_variable_length() already check for
out of array read and returns 0 in such case.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-22 18:59:55 +00:00
Paul B Mahol
fefd4b0924 exr: cosmetics: reindent
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-22 18:59:55 +00:00
Paul B Mahol
9c75c24de4 exr: check if line offset table is complete only once per frame
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-22 18:59:54 +00:00
Paul B Mahol
cc0bd78413 exr: support more line orders
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-22 18:59:54 +00:00
Paul B Mahol
1178868683 exr: fix overflow check in lineoffset processing
Also read data size for raw compressions too and
make sure its value is sane.

Remove code that fills missing blocks with zeroes.
It is marginally useful and make implementation
of actually useful features harder.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-22 18:59:54 +00:00
Paul B Mahol
88d7259fd2 exr: merge multiple if () blocks
Remove useless comments.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-22 18:59:54 +00:00
Paul B Mahol
3456891291 exr: check version too
Separate version from flags.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-22 18:59:54 +00:00
Stefano Sabatini
8902f5b89c doc/filters: apply minor spacing fixes to boxblur docs 2013-02-22 19:57:54 +01:00
Stefano Sabatini
f30979e095 lavfi/boxblur: add support to named options 2013-02-22 19:57:20 +01:00
Michael Niedermayer
6f77122bf5 aac: reconfigure output on pop
Fixes Ticket1918

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-22 18:19:42 +01:00
Paul B Mahol
c46400ddec cafenc: do not leak caf->pkt_sizes
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-22 13:52:43 +00:00
Michael Niedermayer
21f68528e3 aacdec: dont pop random configurations
Fixes out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-22 14:46:17 +01:00
Paul B Mahol
a72b41035c mxg: do not leak mxg->buffer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-22 13:37:35 +00:00
Michael Niedermayer
db05f7ab16 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  x86: h264: Don't use redzone in AVX h264_deblock on Win64

No code change, as the commit has been already integrated
merge just for metadata

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-22 10:59:05 +01:00
Michael Niedermayer
b16bf913d8 dxva2: move _WIN32_WINNT handling to public header
This removes duplicate code

Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-22 01:37:14 +01:00
Michael Niedermayer
29436c1ab2 libavcodec/mips/aacsbr_mips: fix ;;
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-21 23:06:30 +01:00
Mirjana Vulin
46d52a0b09 mips: optimization for float aac decoder (ps module)
Signed-off-by: Mirjana Vulin <mvulin@mips.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-21 22:43:26 +01:00
Mirjana Vulin
8d2eb5fe58 mips: optimization for float aac decoder (sbr module)
Signed-off-by: Mirjana Vulin <mvulin@mips.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-21 22:43:08 +01:00
James Almer
67b3fcf655 configure: Use libiconv on systems that lack built-in iconv
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-21 22:41:19 +01:00
Matt Wolenetz
82a4a4e7ca Fix Win64 AVX h264_deblock by not using redzone on Win64
Thanks-to: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-21 22:38:56 +01:00
Michael Niedermayer
04220b473e h264: ensure that get_format() is called when changing format but not otherwise.
Fixes Ticket2288

Tested-by: Stefano Pigozzi <stefano.pigozzi@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-21 22:36:33 +01:00
Andrea3000
8d8c59480e matroska: fix missing ,
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-21 22:24:26 +01:00
Michael Niedermayer
8a6449167a avcodec_decode_audio4: check got_frame_ptr before handling initial skip
Fixes out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-21 22:01:14 +01:00
Paul B Mahol
47619e41c4 blend filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-21 20:16:23 +00:00
Michael Niedermayer
8036ba299d h264: move next/last picture init to decode_slice_header
This is a regression introduced from the h264/mpegvideo split
Fixes out of array reads

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-21 20:24:31 +01:00
Michael Niedermayer
669d50b445 ec: check that reference pictures have matching parameters before using them.
Fixes out of array reads

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-21 16:38:24 +01:00
Michael Niedermayer
bdeb61ccc6 h264: check that luma and chroma depth match
Fixes out of array access

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-21 15:02:09 +01:00
Matt Wolenetz
311443f6c7 x86: h264: Don't use redzone in AVX h264_deblock on Win64
This fixes crashes in chromium on win64 on machines with AVX
(crashes that apparently aren't triggered by fate).

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-02-21 15:02:16 +02:00
Paul B Mahol
59015c1118 exr: constify s in rle_uncompress()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-21 12:02:18 +00:00
Paul B Mahol
a3d890527e exr: reset compression in decode_frame()
This fixes decoding of images if compression changes.
Regression since b040ffc84c.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-21 12:02:18 +00:00
Michael Niedermayer
6b8f21190d Merge remote-tracking branch 'qatar/master'
* qatar/master:
  dxva2: Add missing #define to make header compile standalone
  arm: vp8: Add missing #includes for header to compile standalone
  doc: filters: Correct BNF FILTER description

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-21 12:59:38 +01:00
Nicolas George
9fa5a47197 ffmpeg: set resample_pix_fmt for sub2video.
Forgotten when the resample_* fields were added.
Fix assert failures.
2013-02-21 12:41:30 +01:00
Nicolas George
01649c79c8 lavfi/buffersrc: set channel layout if it is known.
If buffersrc was configured for frames with an unknown layout,
the incoming frames will have channel_layout = 0.
If the format negotiation has selected a known (and compatible)
channel layout for the link, the frame is assumed to have
that layout, the field must be set before injecting the frame
in the filters.
2013-02-21 12:36:35 +01:00
Carl Eugen Hoyos
d714576037 Use SMPTE standard notation when showing mxf Universal Labels. 2013-02-21 09:11:22 +01:00
Michael Niedermayer
cdb7a1ac63 vf_idet: adapt default scores due to bugfix
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-21 01:58:07 +01:00
Michael Niedermayer
dc9edb06b0 vf_idet: Fix macro arguments sideeffect
Fixes valgrind errors
should improve detection scores

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-21 01:58:07 +01:00
Clément Bœsch
9ed6af4be2 fate/subtitles: add MicroDVD remux test. 2013-02-21 00:59:32 +01:00
Clément Bœsch
7346354b55 lavf/microdvd: fix muxing.
This was broken since 1f265f52.
2013-02-21 00:59:32 +01:00
Clément Bœsch
580e228557 lavf/swfdec: remove 8-bit audio FIXME.
Implemented since 624fb5f9.
2013-02-21 00:59:31 +01:00
Michael Niedermayer
551d8b58eb brender_pix: use a grayscale palette as fallback instead of a uninitialized one.
Improves: 3-0-CORPSE.PIX

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-21 00:26:50 +01:00
Michael Niedermayer
47e92153b6 mjpegdec: check for packed rgb mjpeg.
Fixes null pointer dereference

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-21 00:03:36 +01:00
Carl Eugen Hoyos
c4dc6c4c86 Fix bits_per_coded_sample when encoding png with frame-level multithreading.
Fixes ticket #2290.
2013-02-20 22:54:21 +01:00
Clément Bœsch
624fb5f965 lavf/swfdec: support 8-bits PCM audio. 2013-02-20 21:49:23 +01:00
Clément Bœsch
9a0076f50c lavf/swfdec: factorize the creation of a new stream.
This also makes the changes of a3949fe11 applicable in both cases.
2013-02-20 21:49:23 +01:00
Michael Niedermayer
da7672b20a h264: Fix handling of changing reference counts between slices
Fixes out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-20 19:53:54 +01:00
Michael Niedermayer
039f55c803 h264: call alloc_scratch_buffers() only once linesize is known
Fixes out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-20 19:53:54 +01:00
Clément Bœsch
9b9d996b34 lavfi/subtitles: fix recently introduced warning about discarded const qualifier. 2013-02-20 19:47:32 +01:00
Stefano Sabatini
22b06103f0 lavfi/overlay: add format option
In particular, fix misbehavior in case main and overlay input formats
mismatch (e.g. YUV420 and YUV444).
2013-02-20 19:39:40 +01:00
Stefano Sabatini
2db0056f96 lavfi/overlay: apply minor consistency fixes 2013-02-20 19:18:17 +01:00
Stefano Sabatini
3d77a27548 lavfi/overlay: implement shortest option
Force termination when the overlay stream ends. Simplify scripting logic,
for example when an infinite source is used to generate a background for
a composite video.
2013-02-20 19:17:11 +01:00
Stefano Sabatini
7f07c61c2f doc/filters: rework introductory description for decimate
In particular, dedicate first paragraph to deliver a short description of
the filter.
2013-02-20 19:11:19 +01:00
Stefano Sabatini
a2a1e20fa2 lavfi/decimate: use named options 2013-02-20 19:07:48 +01:00
Stefano Sabatini
49c8fe304f doc/filters: apply misc fixes to drawbox documentation 2013-02-20 19:01:48 +01:00
Michael Niedermayer
2ccaab9709 mov: fix self referencing timecode tracks
Fixes read after free.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-20 15:46:33 +01:00
Diego Biurrun
a0a1ac0f09 dxva2: Add missing #define to make header compile standalone 2013-02-20 14:24:07 +01:00
Diego Biurrun
3e85b46ecf arm: vp8: Add missing #includes for header to compile standalone 2013-02-20 14:24:07 +01:00
Michael Niedermayer
951d39fecd avfilter: fix segfault with setsar/dar
Reported-by: durandal_1707
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-20 12:34:05 +01:00
Michael Niedermayer
f7b46d86de Merge remote-tracking branch 'qatar/master'
* qatar/master:
  intreadwrite: tomi: Add missing attributes.h #include for av_always_inline

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-20 12:04:50 +01:00
Stefano Sabatini
271f411267 lavf/matroskaenc: avoid assert failure in case of cuepoints with duplicated PTS
Avoid to write more than one cuepoint per track and PTS in
mkv_write_cues(). This avoids a later assertion failure on "(bytes >=
needed_bytes)" in put_ebml_num() called from end_ebml_master(), in case
there are several cuepoints per track with the same PTS.

This may happen with files containing packets with duplicated PTS in the
same track.
2013-02-20 12:01:21 +01:00
Michael Niedermayer
39b03932c2 Merge commit '8a11ce43d08352f7a290355ebb5b29c495ad9609'
* commit '8a11ce43d08352f7a290355ebb5b29c495ad9609':
  build: Ensure that output directories for header objects are created
  h264: Get rid of unnecessary casts

Conflicts:
	common.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-20 11:54:06 +01:00
Michael Niedermayer
8c6d9ca638 Merge commit 'fae6fd5b873911cfcd7f7b3d72de6598af5e003a'
* commit 'fae6fd5b873911cfcd7f7b3d72de6598af5e003a':
  h264/svq3: Stop using draw_edges

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-20 11:50:12 +01:00
Michael Niedermayer
98f63e1f34 Merge commit '7ebfb466aec2c4628fcd42a72b29034efcaba4bc'
* commit '7ebfb466aec2c4628fcd42a72b29034efcaba4bc':
  h264: Don't store intra pcm samples in h->mb
  get_bits: Return pointer to buffer that is the result of the alignment

Conflicts:
	libavcodec/h264_mb_template.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-20 11:47:32 +01:00
Vicente Jimenez Aguilar
b5ad422bf4 doc: filters: Correct BNF FILTER description
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-02-20 11:34:05 +01:00
Stefano Sabatini
dd37326345 lavfi/hue: reindent after previous commit 2013-02-20 11:29:12 +01:00
Stefano Sabatini
d709a18ac2 lavfi/hue: simplify parsing by making use of option shorthands 2013-02-20 11:28:59 +01:00
Michael Niedermayer
088f20a332 Merge commit '2ed008204d5467be03a0a3af1e293b2f7038d0a0'
* commit '2ed008204d5467be03a0a3af1e293b2f7038d0a0':
  h264: Add add_pixels4/8() to h264dsp, and remove add_pixels4 from dsputil

Conflicts:
	libavcodec/dsputil.c
	libavcodec/h264.c
	libavcodec/h264_mb_template.c
	libavcodec/h264addpx_template.c
	libavcodec/h264dsp.c
	libavcodec/h264dsp.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-20 11:17:32 +01:00
Michael Niedermayer
536d1ed793 Merge commit 'e5ffffe48d20642acc079166f0fa7d93a6a9f594'
* commit 'e5ffffe48d20642acc079166f0fa7d93a6a9f594':
  h264chroma: Remove duplicate 9/10 bit functions
  x86: Use simple nop codes for <= sse (rather than <= mmx)
  vp56: Remove clear_blocks call, and clear alpha plane U/V DC only

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-20 10:57:47 +01:00
u-bo1b@0w.se
8d1dd5bd50 cinepak: More correct Cinepak decoder.
change the treatment of the strip y coordinates which previously did
not follow the description (nor did it behave like the binary decoder
on files with absolute strip offsets).

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-20 04:14:04 +01:00
Michael Niedermayer
a3adbedf9b cinepak: simplify
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-20 04:14:04 +01:00
u-bo1b@0w.se
4e635e10e2 cinepak: Use correct colorspace.
The new code is also faster and more robust.

As for the performance:

old decoder + conversion to rgb:         fps = 2618
old decoder, without converting to rgb:  fps = 4012

new decoder, producing rgb:              fps = 4502

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-20 04:13:33 +01:00
Michael Niedermayer
f5c00b347d avcodec_align_dimensions2: Ensure cinepak has large enough buffers.
This is partly redundant with the following patches, but its safer

Found-by: u-bo1b@0w.se
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-20 03:54:36 +01:00
Ronald S. Bultje
2b10d41464 h264: add videodsp dependency.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-20 02:12:26 +01:00
Diego Biurrun
c9ad5f59aa intreadwrite: tomi: Add missing attributes.h #include for av_always_inline 2013-02-20 00:45:30 +01:00
Diego Biurrun
8a11ce43d0 build: Ensure that output directories for header objects are created 2013-02-20 00:45:30 +01:00
Michael Niedermayer
c69315a5de cook: check js_subband_start for validity
Fixes out of array read

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-20 00:20:03 +01:00
Martin Storsjö
26ee5ca03d h264: Get rid of unnecessary casts
This gets rid of a number of warnings about casts discarding
qualifiers from the pointer target, present since 7ebfb466a.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-02-20 00:25:29 +02:00
Michael Niedermayer
a5153b1d16 shorten: Fix signedness of comparission
Fixes out of array accessed

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-19 23:08:19 +01:00
Michael Niedermayer
ce153eef8f vc1dec: dont decode slices when the slice header failed to decode.
Fixes assertion failure

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-19 21:40:44 +01:00
Ronald S. Bultje
fae6fd5b87 h264/svq3: Stop using draw_edges
Instead, only extend edges on-demand when the motion vector actually
crosses the visible decoded area using ff_emulated_edge_mc(). This
changes decoding time for cathedral from 8.722sec to 8.706sec, i.e.
0.2% faster overall. More generally (VP8 uses this also), low-motion
content gets significant speed improvements, whereas high-motion content
tends to decode in approximately the same time.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-02-19 22:34:33 +02:00
Ronald S. Bultje
7ebfb466ae h264: Don't store intra pcm samples in h->mb
Instead, keep them in the bitstream buffer until we read them verbatim,
this saves a memcpy() and a subsequent clearing of the target buffer.
decode_cabac+decode_mb for a sample file (CAPM3_Sony_D.jsv) goes from
6121.4 to 6095.5 cycles, i.e. 26 cycles faster.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-02-19 22:34:14 +02:00
Ronald S. Bultje
9918f57dcf get_bits: Return pointer to buffer that is the result of the alignment
This allows more transparent mixing of get_bits and whole-byte access
without having to touch get_bits internals.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-02-19 22:33:52 +02:00
Ronald S. Bultje
2ed008204d h264: Add add_pixels4/8() to h264dsp, and remove add_pixels4 from dsputil
These functions are mostly H264-specific (the only other user I can
spot is bink), and this allows us to special-case some functionality
for H264. Also remove the 16-bit-coeff with >8bpp versions (unused)
and merge the duplicate 32-bit-coeff for >8bpp (identical).

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-02-19 22:33:29 +02:00
Ronald S. Bultje
e5ffffe48d h264chroma: Remove duplicate 9/10 bit functions
These functions do the same thing in 16 bit space and don't need
any depth specific clipping.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-02-19 22:33:19 +02:00
Ronald S. Bultje
0c0828ecc5 x86: Use simple nop codes for <= sse (rather than <= mmx)
The "CentaurHauls family 6 model 9 stepping 8" family of CPUs
(flags: fpu vme de pse tsc msr cx8 sep mtrr pge mov pat mmx fxsr sse
up rng rng_en ace ace_en) SIGILLs on long nop codes.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-02-19 22:33:19 +02:00
Ronald S. Bultje
f859678f3f vp56: Remove clear_blocks call, and clear alpha plane U/V DC only
The non-alpha and alpha-Y planes are cleared in the idct_put/add()
calls. For the alpha U/V planes, we only care about the DC for entropy
context prediction purposes, the rest of the data is unused.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-02-19 22:33:11 +02:00
Paul B Mahol
76415a9420 configure: fix libavfilter pkgconfig description
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-19 18:17:27 +00:00
Michael Niedermayer
a34418c28e tiff: check bppcount
Fixes division by 0

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-19 17:57:36 +01:00
Michael Niedermayer
633f997479 bmp: check available space when reading palette
Fixes out of array read

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-19 17:00:04 +01:00
Ronald S. Bultje
1acd7d594c h264: integrate clear_blocks calls with IDCT.
The non-intra-pcm branch in hl_decode_mb (simple, 8bpp) goes from 700
to 672 cycles, and the complete loop of decode_mb_cabac and hl_decode_mb
(in the decode_slice loop) goes from 1759 to 1733 cycles on the clip
tested (cathedral), i.e. almost 30 cycles per mb faster.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-19 16:25:50 +01:00
Ronald S. Bultje
a1f1ca96b4 svq3: fix decoding residual blocks of b-frames.
The residual block data of 16x16 blocks was ignored for b-frames, which
leads to easy-to-identify artifacts. After this patch, the artifacts are
gone. Sample video: svq3_watermark.mov. (Fate results unaffected.)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-19 15:59:53 +01:00
Michael Niedermayer
b97d61f924 avfilter/ff_merge_formats: only merge if doing so does not loose chroma or alpha
Fixes Ticket1280

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-19 15:00:01 +01:00
Michael Niedermayer
b9237aa7b0 x86/h263_loopfilter: Fix author attribution after code has been moved/splited around
Reference:
    commit 3615e2be84
    Author: Michael Niedermayer <michaelni@gmx.at>
    Date:   Tue Dec 2 22:02:57 2003 +0000

        h263_h_loop_filter_mmx

        Originally committed as revision 2553 to svn://svn.ffmpeg.org/ffmpeg/trunk

    commit 359f98ded9
    Author: Michael Niedermayer <michaelni@gmx.at>
    Date:   Tue Dec 2 20:28:10 2003 +0000

        h263_v_loop_filter_mmx

        Originally committed as revision 2552 to svn://svn.ffmpeg.org/ffmpeg/trunk
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-19 12:51:00 +01:00
Michael Niedermayer
fa09ad5c9e Merge remote-tracking branch 'qatar/master'
* qatar/master:
  x86: dsputil: Fix h263 loop filter link error in some configurations

Conflicts:
	libavcodec/x86/dsputil.asm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-19 12:41:27 +01:00
Michael Niedermayer
cf10616cc0 Merge commit '7a03145ed7cb4f1ce794b5126559dd6f38029243'
* commit '7a03145ed7cb4f1ce794b5126559dd6f38029243':
  x86: dsputil: int --> ptrdiff_t for ff_put_pixels16_mmxext line_size param

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-19 12:32:12 +01:00
Michael Niedermayer
4e469842b5 Merge commit '202b5f6deb65e405b07b9b5c20f97c8cb925cf49'
* commit '202b5f6deb65e405b07b9b5c20f97c8cb925cf49':
  doc: Fix some obsolete references to av* tools as ff* tools

Conflicts:
	doc/demuxers.texi

No code changes, merge for metadata only

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-19 12:23:45 +01:00
Paul B Mahol
03b711d95e tmv: initialize unused pallete entries with 0
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-19 11:11:42 +00:00
Paul B Mahol
f2d200d460 lavfi/overlay: yuv444p & yuva444p support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-19 11:11:42 +00:00
Michael Niedermayer
d41efc1f26 h264: put visualization and debug support back
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-19 02:56:31 +01:00
Michael Niedermayer
a3a97129e7 mpegvideo: make ff_print_debug_info independant of mpegvideo
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-19 02:46:05 +01:00
Ronald S. Bultje
e2789d3e33 split out ff_hwaccel_pixfmt_list_420[] over individual codecs.
Not all hwaccels implement all codecs, so using one single list for
multiple such codecs means some codecs will be represented in the list,
even though they don't actually handle that codec. Copying specific
lists in each codec fixes that.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-18 21:44:22 +01:00
Paul B Mahol
480ddf2bc9 lavfi/histogram: overlay display mode for levels histogram mode
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-18 20:13:07 +00:00
Michael Niedermayer
e39821a65e nutenc: only write an index if there are syncpoints
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-18 20:51:54 +01:00
Michael Niedermayer
6cd650dbd2 ff_gen_search: Fix finding the maximum timestamp in a really small file
Fixes Assertion failure

Found-by: durandal_1707
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-18 20:37:17 +01:00
Michael Niedermayer
695a766bff ff_read_timestamp: check stream_index before using it as array index
Fixes out of array read

Found-by: durandal_1707
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-18 20:37:17 +01:00
Paul B Mahol
85921499c7 cdgraphics: set palette to zero too
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-18 16:38:06 +00:00
Paul B Mahol
1f4ab61b74 lavc/cdxl: clear palette before reading it
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-18 16:19:27 +00:00
Daniel Kang
9acd23d655 x86: dsputil: Fix h263 loop filter link error in some configurations
This was caused by unconditionally referencing a conditionally compiled
table. Now the code is also compiled conditionally.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-02-18 17:09:00 +01:00
Daniel Kang
7a03145ed7 x86: dsputil: int --> ptrdiff_t for ff_put_pixels16_mmxext line_size param
This avoids SIMD-optimized functions having to sign-extend their
line size argument manually to be able to do pointer arithmetic.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-02-18 15:23:03 +01:00
Ronald S. Bultje
71ae8d50b2 x86/dsputil: fix compilation when h263 decoder/encoder are disabled.
The symbol "ff_h263_loop_filter_strength" is defined in h263.c, but
the h263 loopfilter functions (in the .asm file) are not optimized
out (even though their function pointers are never assigned).

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-18 15:18:56 +01:00
Ronald S. Bultje
51513b98d6 h264/svq3: stop using draw_edges.
Instead, only extend edges on-demand when the motion vector actually
crosses the visible decoded area using ff_emulated_edge_mc(). This
changes decoding time for cathedral from 8.722sec to 8.706sec, i.e.
0.2% faster overall. More generally (VP8 uses this also), low-motion
content gets significant speed improvements, whereas high-motion content
tends to decode in approximately the same time.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-18 15:18:56 +01:00
Clément Bœsch
f894246304 lavf/showspectrum: add divVerent in the (c) for his recent work on the filter. 2013-02-18 13:34:37 +01:00
Vicente Jimenez Aguilar
202b5f6deb doc: Fix some obsolete references to av* tools as ff* tools
Signed-off-by: Diego Biurrun <diego@biurrun.de>

CC: libav-stable@libav.org
2013-02-18 13:04:29 +01:00
Michael Niedermayer
0789374ed3 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  svq3: unbreak decoding

No change to the code as this fix was already part of FFmpeg

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-18 13:03:38 +01:00
Michael Niedermayer
82e82fa2e5 Merge commit 'aa11cb79318baa3415d553424ba378f6c62e1f9b'
* commit 'aa11cb79318baa3415d553424ba378f6c62e1f9b':
  build: make audio_frame_queue a stand-alone component

Conflicts:
	configure
	libavcodec/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-18 12:55:31 +01:00
Michael Niedermayer
4b7c81c3e0 Merge commit '870a0c669e536d56c6325d84f65e34c53792398e'
* commit '870a0c669e536d56c6325d84f65e34c53792398e':
  build: The libopencore-amrnb encoder depends on audio_frame_queue

Conflicts:
	libavcodec/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-18 12:29:31 +01:00
Michael Niedermayer
2220f13d82 Merge commit '8837f4396a1a458a0efb07fe7daba7b847755a7a'
* commit '8837f4396a1a458a0efb07fe7daba7b847755a7a':
  libopencore-amrwb: Make AMR-WB ifdeffery more precise

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-18 12:20:16 +01:00
Michael Niedermayer
ab213b5360 Merge commit 'e6bda9a9fd86505927a2e095e495eae104860701'
* commit 'e6bda9a9fd86505927a2e095e495eae104860701':
  libopencore-amr: Conditionally compile decoder and encoder bits

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-18 12:15:12 +01:00
Michael Niedermayer
4ff0e63a01 Merge commit '56632fef65c0cb6946ed3648ded3d7b82e5c5c17'
* commit '56632fef65c0cb6946ed3648ded3d7b82e5c5c17':
  libopencore-amrnb: cosmetics: Group all encoder-related code together

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-18 12:10:57 +01:00
Michael Niedermayer
f88f7b86a9 Merge commit '0b70fb1d518cbd796545fd6eef02772cd0d892c7'
* commit '0b70fb1d518cbd796545fd6eef02772cd0d892c7':
  dsputil: convert remaining op_pixels_func

No changes to the code as all these fixes already existed in FFmpeg.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-18 12:03:55 +01:00
Michael Niedermayer
96008082db Merge commit '488f87be873506abb01d67708a67c10a4dd29283'
* commit '488f87be873506abb01d67708a67c10a4dd29283':
  roqvideodec: check dimensions validity
  vqavideo: check chunk sizes before reading chunks
  qdm2: check array index before use, fix out of array accesses

Conflicts:
	libavcodec/qdm2.c
	libavcodec/roqvideodec.c
	libavcodec/vqavideo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-18 11:26:53 +01:00
Matti Hamalainen
7f3624dc81 svq3: unbreak decoding
a7d2861d36 removed necessary braces.
2013-02-18 02:55:07 +01:00
Ronald S. Bultje
c63f9fb37a h264: don't store intra pcm samples in h->mb.
Instead, keep them in the bitstream buffer until we read them verbatim,
this saves a memcpy() and a subsequent clearing of the target buffer.
decode_cabac+decode_mb for a sample file (CAPM3_Sony_D.jsv) goes from
6121.4 to 6095.5 cycles, i.e. 26 cycles faster.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-18 01:21:23 +01:00
Michael Niedermayer
54b2bddd22 v4l2: try to fix build on BSD
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-18 00:53:17 +01:00
Paul B Mahol
f4e29c408c lavfi/noise: switch to AVLFG noise generator
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-17 21:45:21 +00:00
Carl Eugen Hoyos
259603b917 h264: don't initialize missing pictures when using VDPAU.
This fixes an assertion failure when running mplayer -vc ffh264vdpau.

Reported by irc user ioni.
2013-02-17 22:33:40 +01:00
Michael Niedermayer
dece584a63 h264: avoid calling get_format() multiple times
Some applications do not like that.
Fixes VDA
Reduces noise for VDPAU

Tested-by: Guillaume POIRIER <poirierg@gmail.com>
Tested-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-17 22:26:33 +01:00
Luca Barbato
aa11cb7931 build: make audio_frame_queue a stand-alone component
Encoders requiring it have the dependency expressed in the
configure.
2013-02-17 22:05:18 +01:00
Carl Eugen Hoyos
8d0757e107 Revert "swfenc: use av_get_audio_frame_duration() instead of AVCodecContext.frame_size"
This reverts commit 620b88a302.

Fixes ticket #2272.

Conflicts:
	libavformat/swfenc.c
2013-02-17 19:56:09 +01:00
Carl Eugen Hoyos
fdbe7628a9 Add yvu410 as a supported v4l2 input format. 2013-02-17 19:45:58 +01:00
Carl Eugen Hoyos
fdec49cbe8 Add gray16 as a supported v4l2 input format. 2013-02-17 19:44:13 +01:00
Michael Niedermayer
29c8619a49 fate: add print() to the tests of eval
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-17 17:36:27 +01:00
Michael Niedermayer
09ece9fa6c eval: print() support
This allows printing values via av_log from expressions.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-17 17:36:27 +01:00
Carl Eugen Hoyos
cf36180143 Only set accelerated arm fft functions if fft is enabled.
Fixes lavc compilation (linking) for configurations without fft.

Reported-by: tyler wear
Tested-by: Gavin Kinsey
2013-02-17 17:29:55 +01:00
Clément Bœsch
1e860f1668 doc/codecs: simple sub_charenc option documentation. 2013-02-17 16:58:19 +01:00
Nicolas George
dcc73aaaa9 doc/examples: do not allocate AVFrame directly.
The size of the AVFrame structure is not part of the ABI;
it can grow with later versions. Therefore, applications
are not supposed to allocate AVFrame directly, they are
supposed to use avcodec_alloc_frame() instead.
2013-02-17 15:51:50 +01:00
Michael Niedermayer
59e46ef63a Merge remote-tracking branch 'qatar/master'
* qatar/master:
  error_resilience: add required headers.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-17 14:24:09 +01:00
Clément Bœsch
f3147917bf lavf/subtitles: error out in case of bitmap subtitles. 2013-02-17 13:35:35 +01:00
Clément Bœsch
fe150a48a7 lavc: fix codec_descriptor and pkt_timebase doxy. 2013-02-17 13:35:32 +01:00
Stefano Sabatini
894ed8fbb7 tests: fix values for the unsharp test
Set odd size for unsharp matrices, even values are not accepted.
2013-02-17 13:29:46 +01:00
Clément Bœsch
b1e6b144ed lavc/utils: reindent in avcodec_decode_subtitle2() after f7963993. 2013-02-17 13:08:30 +01:00
Clément Bœsch
90fb3e9bee lavfi/subtitles: set a different description between ass and subtitles. 2013-02-17 12:58:20 +01:00
Clément Bœsch
2a14b23484 lavfi: rename vf_ass.c to vf_subtitles.c 2013-02-17 12:58:20 +01:00
Clément Bœsch
08d149d688 lavfi/subtitles: support charenc option. 2013-02-17 12:58:20 +01:00
Clément Bœsch
3a0a959dcb lavfi/subtitles: split options between ass and subtitles. 2013-02-17 12:58:20 +01:00
Clément Bœsch
f796399344 lavc: support subtitles character encoding conversion. 2013-02-17 12:57:56 +01:00
Diego Biurrun
870a0c669e build: The libopencore-amrnb encoder depends on audio_frame_queue
CC: libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-02-17 12:03:25 +01:00
Diego Biurrun
8837f4396a libopencore-amrwb: Make AMR-WB ifdeffery more precise
The library might provide an encoder in the future, so it's better to
check for the presence of the decoder rather than just the library.

CC: libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-02-17 12:03:25 +01:00
Diego Biurrun
e6bda9a9fd libopencore-amr: Conditionally compile decoder and encoder bits
CC: libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-02-17 12:03:25 +01:00
Diego Biurrun
56632fef65 libopencore-amrnb: cosmetics: Group all encoder-related code together
CC: libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-02-17 12:03:24 +01:00
Luca Barbato
0b70fb1d51 dsputil: convert remaining op_pixels_func
Convert to diffptr_t the line_size parameters still int.

Remove all the warnings in dsputil.c
2013-02-17 12:03:24 +01:00
Clément Bœsch
8732271e40 lavc: mark bitmap based subtitles codecs as such. 2013-02-17 11:59:24 +01:00
Stefano Sabatini
7ca2f8b113 lavfi/mp: drop mp=kerndeint filter
The filter has been natively integrated into libavfilter.
2013-02-17 11:48:45 +01:00
Stefano Sabatini
8c85a9f046 lavfi/mp: drop mp=unsharp filter
The native filter is equivalent from the point of view of the features
and of performances.
2013-02-17 11:48:37 +01:00
Stefano Sabatini
89505f2c3f lavfi/unsharp: add missing NULL check 2013-02-17 11:48:31 +01:00
Stefano Sabatini
64e592eef2 lavfi/unsharp: merge definition and declaration in init_filter_param() 2013-02-17 11:48:24 +01:00
Stefano Sabatini
d2cadea3f0 lavfi/unsharp: directly access in-loop variables in apply_unsharp()
Increase performance, to match mp=unsharp.
2013-02-17 11:48:12 +01:00
Stefano Sabatini
ef4c71e8f8 lavfi/unsharp: add check on matrix x/y size values oddity 2013-02-17 11:47:39 +01:00
Michael Niedermayer
488f87be87 roqvideodec: check dimensions validity
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 3ae6104511)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit fee26d352a)

CC: libav-stable@libav.org

Signed-off-by: Reinhard Tartler <siretart@tauware.de>
2013-02-17 11:31:20 +01:00
Michael Niedermayer
f7d18deb73 vqavideo: check chunk sizes before reading chunks
Fixes out of array writes

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit ab6c9332bf)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 13093f9767)

CC: libav-stable@libav.org

Signed-off-by: Reinhard Tartler <siretart@tauware.de>
2013-02-17 11:31:20 +01:00
Michael Niedermayer
39bec05ed4 qdm2: check array index before use, fix out of array accesses
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>

(cherry picked from commit a7ee6281f7)

CC: libav-stable@libav.org

Signed-off-by: Reinhard Tartler <siretart@tauware.de>
2013-02-17 11:31:20 +01:00
Anton Khirnov
1f8f43a5b5 error_resilience: add required headers. 2013-02-17 06:46:43 +01:00
James Almer
b8bb661dab Changelog: Add entry for encrypted TTA stream decoding
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-17 00:37:12 +01:00
James Almer
2e988fd689 lavc/tta: Use a safer check for encrypted streams
The user can provide a password even when the stream
is not encrypted, so check the value of s->format
instead of s->pass in ttafilter_init().

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-17 00:34:38 +01:00
Hendrik Leppkes
1d6f6ff4d9 h264: don't initialize missing pictures when using a hwaccel
Writing into uninitialized hw surfaces is not supported and triggers an assert inside avpriv_color_frame

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-17 00:28:42 +01:00
James Almer
a56fd9edab lavu: Fix checkheaders for x86/emms.h
internal.h doesn't need to include cpu.h anymore since
the relevant code was moved to x86/emms.h

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-17 00:18:16 +01:00
Michael Niedermayer
b7fe35c9e5 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  h264: deMpegEncContextize

Conflicts:
	libavcodec/dxva2_h264.c
	libavcodec/h264.c
	libavcodec/h264.h
	libavcodec/h264_cabac.c
	libavcodec/h264_cavlc.c
	libavcodec/h264_loopfilter.c
	libavcodec/h264_mb_template.c
	libavcodec/h264_parser.c
	libavcodec/h264_ps.c
	libavcodec/h264_refs.c
	libavcodec/h264_sei.c
	libavcodec/svq3.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-16 23:30:09 +01:00
Michael Niedermayer
ddbbfd95be Merge commit '1d0feb5d1ac04d187b335f0e8d411c9f40b3a885'
* commit '1d0feb5d1ac04d187b335f0e8d411c9f40b3a885':
  mpegvideo: split ff_draw_horiz_band().

Conflicts:
	libavcodec/vc1dec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-16 19:00:39 +01:00
Michael Niedermayer
1fad547cef Merge commit '54974c62982ae827becdbdb9b620b7ba75d079a0'
* commit '54974c62982ae827becdbdb9b620b7ba75d079a0':
  error_resilience: decouple ER from MpegEncContext

Conflicts:
	libavcodec/error_resilience.c
	libavcodec/h263dec.c
	libavcodec/h264.c
	libavcodec/mpegvideo.c
	libavcodec/vc1dec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-16 18:54:56 +01:00
Stefano Sabatini
2bac1535db Changelog: add missing empty line after the version line 2013-02-16 16:08:06 +01:00
Michael Niedermayer
8b7568cc34 Merge commit 'd9ebb00dcbaac3812b8b1fbc3d6e027506c11cbc'
* commit 'd9ebb00dcbaac3812b8b1fbc3d6e027506c11cbc':
  svq3: remove a pointless if()
  h264: remove a pointless if()

Conflicts:
	libavcodec/h264.c
	libavcodec/svq3.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-16 14:30:21 +01:00
Michael Niedermayer
131b9c924d Merge commit '68f930d2188aba5b32624887dcbf688c23482834'
* commit '68f930d2188aba5b32624887dcbf688c23482834':
  h264: simplify calls to ff_er_add_slice().

Conflicts:
	libavcodec/h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-16 14:13:20 +01:00
Michael Niedermayer
0a707da37b cinepack: print an error if cinepak_decode() failed
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-16 13:49:04 +01:00
Michael Niedermayer
b4bb996d6f yadif: remove unused variable
Found by: durandal_1707
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-16 13:24:43 +01:00
Michael Niedermayer
bb29ee62e9 Merge commit 'd2a25c4032ce6ceabb0f51b5c1e6ca865395a793'
* commit 'd2a25c4032ce6ceabb0f51b5c1e6ca865395a793':
  get_buffer(): do not initialize the data.

Conflicts:
	libavcodec/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-16 13:13:42 +01:00
Michael Niedermayer
1c5b8b916d h264: color frames gray
This prevents a regression from the removial of the buffer
initialization

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-16 13:13:18 +01:00
Michael Niedermayer
a53b144ec0 avcodec: add avpriv_color_frame()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-16 13:13:18 +01:00
Paul B Mahol
af882e1819 lavfi: port MP noise filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-16 11:42:41 +00:00
Michael Niedermayer
1e78679768 mpegvideo_enc: draw edges on input
Improves Motion estimation, avoids using out of picture areas for %16 != 0

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-16 11:08:21 +01:00
Michael Niedermayer
446f7c62a2 Merge commit '64ed397635ef2666b0ca0c8d8c60a8bc44581d82'
* commit '64ed397635ef2666b0ca0c8d8c60a8bc44581d82':
  vf_yadif: fix out-of line reads

Conflicts:
	libavfilter/vf_yadif.c
	tests/ref/fate/filter-yadif-mode0
	tests/ref/fate/filter-yadif-mode1

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-16 09:09:38 +01:00
Michael Niedermayer
fab8a89abe Merge commit 'ccd70d9c1689990e5aef2de383199bbc7cf60d13'
* commit 'ccd70d9c1689990e5aef2de383199bbc7cf60d13':
  vf_yadif: factorize initializing the filtering callbacks

Conflicts:
	libavfilter/vf_yadif.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-16 08:48:45 +01:00
Michael Niedermayer
b9c544891b Merge remote-tracking branch 'cus/stable'
* cus/stable:
  ffplay: only display frames if there are no pending events
  ffplay: remove remains of video_clock
  ffplay: remove refresh thread to achieve more precise frame delay

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-16 03:03:34 +01:00
James Darnley
87d359ff8f lavfi/yadif: support 9, 12, and 14 bits per pixel
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-16 00:32:02 +01:00
James Darnley
724061888b lavfi/yadif: remove unnecessary cast
Finish what 99162f8 started

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-16 00:32:02 +01:00
Stefano Sabatini
f84ef19f3f lavfi/kerndeint: move is_rgb_packed definition to the internal context
No need to recompute it for each new frame.
2013-02-16 00:08:31 +01:00
Clément Bœsch
51ba843f19 lavfi/kerndeint: use aligned linesizes for the temporary buffer.
This improves the performances just enough to match mp=kerndeint.

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2013-02-16 00:08:31 +01:00
Stefano Sabatini
2042cd3769 lavfi/unsharp: extend range for amount values, to reflect the behavior of mp=unsharp
Also update the documentation accordingly, and suggest a meaningful range.
2013-02-16 00:08:31 +01:00
Stefano Sabatini
37b42bcb7d doc/filters: itemize unsharp examples
Also drop pointless example.
2013-02-16 00:08:31 +01:00
Stefano Sabatini
fbcc584d3a lavfi/unsharp: use named options, and add missing checks on matrix size values
In particular, avoid out-of-buffer access and crashes with too big
values, and rework documentation accordingly.
2013-02-16 00:08:31 +01:00
Michael Niedermayer
5e947aeb59 sws/x86: improve rounding for yuv2yuvX
This tries to compensate for the errors introduced by
the rounding of pmulhw

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-15 23:33:04 +01:00
Hendrik Leppkes
5ad43af9a6 lavfi/kerndeint: use av_pix_fmt_desc_get instead of directly accessing the table
Fixes FATE in MSVC DLL builds.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-15 19:07:37 +01:00
Stefano Sabatini
0018221c03 doc: fix reference to ffmpeg-bitstream-filters.html page 2013-02-15 18:56:27 +01:00
sedacca@comcast.net
b64de24fd7 lavfi/ebur128: advance pointer to samples
Correct the advancement of a pointer to skip over LFE samples as
intended in the loudness computation.

This suggested patch is 3 of 3 for Ticket #2144 "libavfilter ebur128
loudness inaccuracy, irregular time interval, LFE interference".
This suggested patch supersedes the contribution of January 15, 2013
in the thread “[PATCH] lavfi: EBU R.128 irreg time, ch weights, skip
LFE” which combined multiple fixes in one batch.
2013-02-15 16:39:25 +01:00
David A. Sedacca
de21e6736e lavfi/ebur128: fix channel weights
Correct the recognition of channel layouts for good channel weight
in the loudness computation.
This suggested patch is 2 of 3 for Ticket #2144 "libavfilter ebur128
loudness inaccuracy, irregular time interval, LFE interference".

Signed-off-by: David A. Sedacca <sedacca at comcast.net>
2013-02-15 16:38:58 +01:00
Anton Khirnov
2c54155407 h264: deMpegEncContextize
Most of the changes are just trivial are just trivial replacements of
fields from MpegEncContext with equivalent fields in H264Context.
Everything in h264* other than h264.c are those trivial changes.

The nontrivial parts are:
1) extracting a simplified version of the frame management code from
   mpegvideo.c. We don't need last/next_picture anymore, since h264 uses
   its own more complex system already and those were set only to appease
   the mpegvideo parts.
2) some tables that need to be allocated/freed in appropriate places.
3) hwaccels -- mostly trivial replacements.
   for dxva, the draw_horiz_band() call is moved from
   ff_dxva2_common_end_frame() to per-codec end_frame() callbacks,
   because it's now different for h264 and MpegEncContext-based
   decoders.
4) svq3 -- it does not use h264 complex reference system, so I just
   added some very simplistic frame management instead and dropped the
   use of ff_h264_frame_start(). Because of this I also had to move some
   initialization code to svq3.

Additional fixes for chroma format and bit depth changes by
Janne Grunau <janne-libav@jannau.net>

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-02-15 16:35:16 +01:00
Anton Khirnov
1d0feb5d1a mpegvideo: split ff_draw_horiz_band().
Split out dependency on MpegEncContext.
2013-02-15 16:10:19 +01:00
Anton Khirnov
54974c6298 error_resilience: decouple ER from MpegEncContext 2013-02-15 16:10:11 +01:00
Anton Khirnov
d9ebb00dcb svq3: remove a pointless if()
The H264 context is always uninitialized at this point.
2013-02-15 16:09:52 +01:00
Anton Khirnov
2491f9ee29 h264: remove a pointless if()
!encoding is always true, we do not have a H.264 encoder
2013-02-15 16:09:45 +01:00
Anton Khirnov
68f930d218 h264: simplify calls to ff_er_add_slice().
partitioned_frame is never set for h264 (as easily seen from git grep).
2013-02-15 16:09:37 +01:00
Anton Khirnov
d2a25c4032 get_buffer(): do not initialize the data.
There may be more decoders that rely on this. Those should be found and
fixed.
2013-02-15 16:08:44 +01:00
Anton Khirnov
64ed397635 vf_yadif: fix out-of line reads
Some changes in the border pixels, visually indistinguishable.
2013-02-15 16:08:33 +01:00
Anton Khirnov
ccd70d9c16 vf_yadif: factorize initializing the filtering callbacks
Do it all in config_props().
2013-02-15 16:08:00 +01:00
Marton Balint
77ab702a84 ffplay: only display frames if there are no pending events
Otherwise events could just pile up if displaying a frame takes more time than
the duration of the frame.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-02-15 13:12:10 +01:00
Michael Niedermayer
f98598942f Merge remote-tracking branch 'qatar/master'
* qatar/master:
  sparc: dsputil: Simplify high_bit_depth checks

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-15 12:30:21 +01:00
Michael Niedermayer
048ecbd3f8 Merge commit '49fe280753e0f167ac3d9f227f0c0f7744501fc1'
* commit '49fe280753e0f167ac3d9f227f0c0f7744501fc1':
  h264idct: Replace duplicate scan8 table by appropriate #include

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-15 12:18:42 +01:00
Michael Niedermayer
61fbb4cd57 Merge commit '4db96649ca700db563d9da4ebe70bf9fc4c7a6ba'
* commit '4db96649ca700db563d9da4ebe70bf9fc4c7a6ba':
  avutil: Ensure that emms_c is always defined, even on non-x86
  configure: Move MinGW CPPFLAGS setting to libc section, where it belongs
  avutil: Move emms code to x86-specific header

Conflicts:
	configure
	libavutil/internal.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-15 12:10:08 +01:00
Cyrille Faucheux
75758f84de build: fixes a "can't cd to..." issue when installing shared libraries.
The problem is reproducible with a relative prefix path.
2013-02-15 08:39:35 +01:00
Michael Niedermayer
4a6fa7963b lavf: dont try to find fps for attached pictures
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-15 03:19:18 +01:00
Diego Biurrun
3594554a06 sparc: dsputil: Simplify high_bit_depth checks 2013-02-15 02:13:42 +01:00
Stefano Sabatini
7ac3ccc5f2 lavfi/unsharp: use the same macros used in the original MP filter
Remove possibly pointless inconsistency with the ported code.

Also specify parameter value ranges consistent with those of the ported
filter.
2013-02-15 01:06:56 +01:00
Stefano Sabatini
772b949d8e examples/scaling_video: fix typo 2013-02-15 00:28:53 +01:00
Michael Niedermayer
8102a097a5 doc/APIchanges: List merge commit hashes and version numbers
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-15 00:25:16 +01:00
Diego Biurrun
49fe280753 h264idct: Replace duplicate scan8 table by appropriate #include 2013-02-15 00:14:15 +01:00
Marton Balint
5534d8f75e ffplay: remove remains of video_clock
We are now using a pts based approach, libavutil/libavcodec should provide the
correct pts-es anyway. This also fixes an issue when seeking to a frame with a
pts set to zero.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-02-15 00:10:46 +01:00
Marton Balint
b853cfe7ea ffplay: remove refresh thread to achieve more precise frame delay
We use a refresh loop which displays the frames and also does the polling for
pending events in a non-blocking way. If we know the required delay until the
next frame, then exactly that amount of sleeping will be done. After each
handled event we check if we have to display a frame which kind of makes
displaying the frame a high priority event.

This improves greatly the smoothness of the video output especially with 50fps
content.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-02-15 00:10:46 +01:00
rogerdpack
12c71f648c dshow: Fix MSVC support, remove av_export, which was apparently unneeded anyway.
Also cleanup exported symbols

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-15 00:08:12 +01:00
Vignesh Venkatasubramanian
003be0a9c3 Removing network.h from matroskadec.c
Removing accidentally added include file.

Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-14 23:59:41 +01:00
Michael Niedermayer
c3fb20bab4 ffmpeg: Check for parameter changes at the output of the audio filter graph
It is currently possible that such changes leak through from the decoder as
well as a filter could generate such changes itself.
This commit blocks such changed packets unless the encoder declares support.

Fixes out of array reads

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-14 23:56:51 +01:00
Clément Bœsch
d5ce725cb3 Fix a few "its" vs "it's" typo. 2013-02-14 23:45:48 +01:00
Clément Bœsch
35a995f451 doc/resampler: fix two typo. 2013-02-14 23:43:08 +01:00
Clément Bœsch
0224375180 lavfi/showspectrum: simplify intensity_color_table declaration. 2013-02-14 23:10:01 +01:00
Clément Bœsch
cf8dec7d64 lavfi/showspectrum: pretty-align constants.
Binary object unchanged.
2013-02-14 23:04:20 +01:00
Vignesh Venkatasubramanian
ce6a8e5947 Adding AlphaMode element to Matroska Parser
Adding support for parsing AlphaMode element in the Track header
and export that information as a metadata tag. This flag indicates
presence of alpha channel data in BlockAdditional element.

Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-14 21:34:47 +01:00
Michael Niedermayer
2f3bc51228 apichanges: fix 2 wrong hashes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-14 21:13:32 +01:00
Michael Niedermayer
33d6330652 apichanges: Use , instead of / to seperate multiple hashes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-14 20:34:10 +01:00
Michael Niedermayer
ad6802f975 apichanges: fix date
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-14 20:32:24 +01:00
Diego Biurrun
4db96649ca avutil: Ensure that emms_c is always defined, even on non-x86 2013-02-14 19:29:04 +01:00
James Almer
8c95d177df fate: Add encrypted tta stream test
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-14 17:48:08 +01:00
Michael Niedermayer
405cc0d905 movenc: hotfix, dont store fiel for h264 / mpeg4-asp / dnxhd
Other software does not store it in this case, and the information
is provided by the codec stream

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-14 17:48:08 +01:00
Diego Biurrun
759a3a2177 configure: Move MinGW CPPFLAGS setting to libc section, where it belongs 2013-02-14 17:37:42 +01:00
Diego Biurrun
ab441e20ff avutil: Move emms code to x86-specific header 2013-02-14 17:37:34 +01:00
Nicolas George
c557a5b08e lavfi/vf_ass: reindent after last commit. 2013-02-14 16:36:03 +01:00
Nicolas George
bb3303b94c lavfi/vf_ass: ignore subtitles decoding errors.
A broken packet with invalid data in the middle of the stream
should not prevent from decoding the rest of the file.

Work around trac ticket #2264.
2013-02-14 16:33:53 +01:00
Carl Eugen Hoyos
7d0e3b197c Write the fiel atom to mov files independently of the used video coded.
The QuickTime specification does not contain any hint that the atom
must not be written in some cases and both the QuickTime and the
AVID decoders do not fail if the atom is present.

This change allows to signal (visually) interlaced streams with
a codec different from uncompressed video.

As a side-effect, this fixes ticket #2202
2013-02-14 15:08:37 +01:00
Paul B Mahol
41ae43cade lavfi: remove softskip libmpcodecs wrapper
It is supposed to be used with mencoder only and does
nothing when used with ffmpeg.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-14 12:51:56 +00:00
Paul B Mahol
968f8acec8 lavfi: remove dsize libmpcodecs wrapper
Filter does nothing, and supposed funcionality
is already available with native filter(s).

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-14 12:51:56 +00:00
Michael Niedermayer
8bbb487e44 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  doc/platform: Fix 10l typo
  dsputil: Move STRIDE_ALIGN macro to the only place it is used

Conflicts:
	libavcodec/dsputil.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-14 11:00:22 +01:00
Michael Niedermayer
9f16cb9e50 doc/APIchanges: fix odd .01 versions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-14 03:33:59 +01:00
Michael Niedermayer
a08ebf04b1 matroskadec: simplify additional_id writing code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-14 00:55:25 +01:00
Vignesh Venkatasubramanian
30c5c45b12 Adding support for parsing BlockAdditional
Matroska specification lists support for BlockAdditional element
which is not supported by ffmpeg's matroska parser. This patch
adds grammar definitions for parsing that element (and few other
related elements) and then puts the data in AVPacket.side_data
with new AVPacketSideDataType AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL.

Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-14 00:46:28 +01:00
Michael Niedermayer
701e9b8254 h264: Use mb itself as memcpy anchor and assert the other anchors position
This makes the code more robust against reordering or fields.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-14 00:42:20 +01:00
Derek Buitenhuis
130cefc9dc doc/platform: Fix 10l typo
This error was somehow missed for months.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2013-02-13 18:41:37 -05:00
Ronald S. Bultje
faf8eca08d h264: remove clear_blocks call in threading init.
Init code in that if statement goes down from 26716 cycles to 26047
cycles, i.e. the removal of the clear_blocks and smaller memcpy()
together save around 670 cycles.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-14 00:15:02 +01:00
Michael Niedermayer
c230af9bcc h264: Reset last_pocs in case of reference or frame number inconsistencies
This prevents faulty increasing of has_b_frames
Should fix Ticket 2062

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-13 23:19:51 +01:00
Diego Biurrun
c6507946d4 dsputil: Move STRIDE_ALIGN macro to the only place it is used 2013-02-13 20:23:39 +01:00
Clément Bœsch
15e7533ca1 doc/dev: clarify public symbols prefixes. 2013-02-13 20:19:32 +01:00
Daniel Verkamp
5dd78ef34e WAV muxer: reindent 2013-02-13 17:36:55 +00:00
Michael Niedermayer
21cd905cd4 swr: check channel layouts before using them.
Fixes out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-13 17:50:24 +01:00
Paul B Mahol
34126cd090 lavfi/transpose: support more pix fmts
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-13 16:29:47 +00:00
Paul B Mahol
cf73e0bff3 lavu/intreadwrite: add AV_[RW][BLN]48
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-13 15:35:54 +00:00
Michael Niedermayer
324d96644b libvorbisdec: Remove AVFrame from context
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-13 16:07:07 +01:00
Michael Niedermayer
fe84577273 libvorbisdec: set sample type
Fixes regression

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-13 15:42:36 +01:00
Nicolas George
a17ececcc7 libcelt: decode directly to the user-provided AVFrame. 2013-02-13 15:05:16 +01:00
Nicolas George
b68dd8a161 lavf/concatdec: allow probing. 2013-02-13 14:58:50 +01:00
Nicolas George
db9dc5154d lavf/concatdec: add signature directive. 2013-02-13 14:58:50 +01:00
Nicolas George
6d680d20ad lavf/concatdec: add safe option. 2013-02-13 14:58:50 +01:00
Michael Niedermayer
b2e57eb5a3 mjpegdec: pass nb_components into ljpeg_decode_yuv_scan
Fixes null pointer dereference

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-13 14:20:46 +01:00
Paul B Mahol
8f7c7ff2d6 evrcdec: decode directly to the user-provided AVFrame
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-13 12:33:48 +00:00
Paul B Mahol
2cced2a854 paf: decode directly to the user-provided AVFrame
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-13 12:33:48 +00:00
Paul B Mahol
9145818ecd vima: decode directly to the user-provided AVFrame
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-13 12:33:48 +00:00
Michael Niedermayer
845fa2f5c9 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  lavr: fix mixing matrix reduction when normalization is disabled
  lavr: fix matrix reduction for upmixing in certain cases
  lavr: cosmetics: reindent

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-13 12:58:29 +01:00
Michael Niedermayer
91043de825 Merge commit '1647da89dd8ac09a55c111589f7a30d7e6b87d90'
* commit '1647da89dd8ac09a55c111589f7a30d7e6b87d90':
  lavr: make sure that the mix function is reset even if no mixing will be done
  lavr: print out the mix matrix in ff_audio_mix_set_matrix()
  ws-snd1: decode directly to the user-provided AVFrame
  wmavoice: decode directly to the user-provided AVFrame

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-13 12:54:08 +01:00
Michael Niedermayer
0dff771f31 Merge commit '205a95f7b5178362874bc1e65eae9866723491c1'
* commit '205a95f7b5178362874bc1e65eae9866723491c1':
  wmaenc: alloc/free coded_frame instead of keeping it in the WMACodecContext
  wma: decode directly to the user-provided AVFrame
  wmapro: decode directly to the user-provided AVFrame
  wavpack: decode directly to the user-provided AVFrame

Conflicts:
	libavcodec/wavpack.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-13 12:49:48 +01:00
Michael Niedermayer
dca6fb08a7 Merge commit 'ee6ca11b657515ad736ec0d2b8635e098d0a2680'
* commit 'ee6ca11b657515ad736ec0d2b8635e098d0a2680':
  vorbis: decode directly to the user-provided AVFrame
  vmdaudio: decode directly to the user-provided AVFrame
  twinvq: decode directly to the user-provided AVFrame
  tta: decode directly to the user-provided AVFrame
  truespeech: decode directly to the user-provided AVFrame

Conflicts:
	libavcodec/tta.c
	libavcodec/twinvq.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-13 12:42:14 +01:00
Michael Niedermayer
2becf21d9f Merge commit '4a2b26fc1b1ad123eba473a20e270f2b0ba92bca'
* commit '4a2b26fc1b1ad123eba473a20e270f2b0ba92bca':
  tak: decode directly to the user-provided AVFrame
  smackaud: decode directly to the user-provided AVFrame
  sipr: decode directly to the user-provided AVFrame
  shorten: decode directly to the user-provided AVFrame

Conflicts:
	libavcodec/shorten.c
	libavcodec/takdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-13 12:35:37 +01:00
Michael Niedermayer
08059f6150 Merge commit '5d5c248c3df30fa91a8dde639618c985b9a11c53'
* commit '5d5c248c3df30fa91a8dde639618c985b9a11c53':
  s302m: decode directly to the user-provided AVFrame
  ra288: decode directly to the user-provided AVFrame
  ra144: decode directly to the user-provided AVFrame
  ralf: decode directly to the user-provided AVFrame
  qdm2: decode directly to the user-provided AVFrame

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-13 12:28:27 +01:00
Michael Niedermayer
65da700704 Merge commit '1b9b6d6e5ea556b6d307f9d473f54f6406fdc3c8'
* commit '1b9b6d6e5ea556b6d307f9d473f54f6406fdc3c8':
  qcelp: decode directly to the user-provided AVFrame
  pcm-bluray: decode directly to the user-provided AVFrame
  nellymoser: decode directly to the user-provided AVFrame
  mpc7/8: decode directly to the user-provided AVFrame
  mpegaudio: decode directly to the user-provided AVFrame
  mlp/truehd: decode directly to the user-provided AVFrame

Conflicts:
	libavcodec/mpc7.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-13 12:22:35 +01:00
Michael Niedermayer
afe30fe060 Merge commit '86bfcfcf2364bc837b7bb582c66a8a15a332414f'
* commit '86bfcfcf2364bc837b7bb582c66a8a15a332414f':
  mace: decode directly to the user-provided AVFrame
  libspeex: decode directly to the user-provided AVFrame
  libopus: decode directly to the user-provided AVFrame
  libopencore-amr: decode directly to the user-provided AVFrame
  libgsm: decode directly to the user-provided AVFrame

Conflicts:
	libavcodec/libopusdec.c
	libavcodec/mace.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-13 12:14:46 +01:00
Michael Niedermayer
5459cf4114 Merge commit 'a8ea936a0a00570f61a16a588821b52f6a3115c2'
* commit 'a8ea936a0a00570f61a16a588821b52f6a3115c2':
  libilbc: decode directly to the user-provided AVFrame
  dpcm: decode directly to the user-provided AVFrame
  imc/iac: decode directly to the user-provided AVFrame
  gsm: decode directly to the user-provided AVFrame

Conflicts:
	libavcodec/dpcm.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-13 12:05:00 +01:00
Michael Niedermayer
d88e674a15 Merge commit 'cb7b47a61dba0b9329ecede5dd3211dc0662dc05'
* commit 'cb7b47a61dba0b9329ecede5dd3211dc0662dc05':
  g726: decode directly to the user-provided AVFrame
  g723.1: decode directly to the user-provided AVFrame
  g722: decode directly to the user-provided AVFrame
  flac: decode directly to the user-provided AVFrame
  cinaudio: decode directly to the user-provided AVFrame

Conflicts:
	libavcodec/g723_1.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-13 11:59:51 +01:00
Michael Niedermayer
0a5138695a Merge commit '182821cff43f5f977004d105b86c47ceb20d00d6'
* commit '182821cff43f5f977004d105b86c47ceb20d00d6':
  dca: decode directly to the user-provided AVFrame
  cook: decode directly to the user-provided AVFrame
  comfortnoise: decode directly to the user-provided AVFrame
  bmvaudio: decode directly to the user-provided AVFrame
  pcm: decode directly to the user-provided AVFrame

Conflicts:
	libavcodec/pcm.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-13 11:53:23 +01:00
Michael Niedermayer
f03cdbd045 Merge commit '5cc0bd2cb47cbb1040f2bb0ded8d72a442c79b20'
* commit '5cc0bd2cb47cbb1040f2bb0ded8d72a442c79b20':
  binkaudio: decode directly to the user-provided AVFrame
  atrac3: decode directly to the user-provided AVFrame
  atrac1: decode directly to the user-provided AVFrame
  ape: decode directly to the user-provided AVFrame
  amrwb: decode directly to the user-provided AVFrame

Conflicts:
	libavcodec/amrwbdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-13 11:45:25 +01:00
Michael Niedermayer
d13f434dbb Merge commit 'e3db34291f4401a16f6ac92721617a9f33cd4c31'
* commit 'e3db34291f4401a16f6ac92721617a9f33cd4c31':
  amrnb: decode directly to the user-provided AVFrame
  als: decode directly to the user-provided AVFrame
  alac: decode directly to the user-provided AVFrame
  adxenc: alloc/free coded_frame instead of keeping it in the ADXContext
  adx: decode directly to the user-provided AVFrame

Conflicts:
	libavcodec/alsdec.c
	libavcodec/amrnbdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-13 11:39:05 +01:00
Michael Niedermayer
4789955ec4 Merge commit 'e57daa876bf0cf50782550e366e589441cd8c2bd'
* commit 'e57daa876bf0cf50782550e366e589441cd8c2bd':
  adpcm: decode directly to the user-provided AVFrame
  ac3: decode directly to the user-provided AVFrame
  aac: decode directly to the user-provided AVFrame
  8svx: decode directly to the user-provided AVFrame

Conflicts:
	libavcodec/8svx.c
	libavcodec/ac3dec.c
	libavcodec/adpcm.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-13 11:27:54 +01:00
Daniel Verkamp
2acd5fb553 doc/demuxers: quote command line arguments with @code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-13 04:13:55 +01:00
Michael Niedermayer
4f1279154e shorten: dont leave invalid channel counts in the context.
Fixes freeing invalid addresses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-13 01:04:20 +01:00
Michael Niedermayer
e1219cdaf9 tiff: Check buffer allocation and pointer increment more carefully in shorts2str() and double2str()
Fixes out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-12 23:49:41 +01:00
Michael Niedermayer
6f9ae391de faxcompr: Dont read ref when the end has been reached in pass mode
Fixes reading over the end

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-12 22:55:44 +01:00
Michael Niedermayer
1ac0fa50ef pngdec/filter: dont access out of array elements at the end
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-12 20:10:35 +01:00
Justin Ruggles
157542ebc1 lavr: fix mixing matrix reduction when normalization is disabled
In some cases when an input contributes fully to the corresponding
output, other inputs may also contribute to the same output. This is the
case, for example, for the default 5.1 to stereo downmix matrix without
normalization.
2013-02-12 13:41:13 -05:00
Justin Ruggles
600b4c973f lavr: fix matrix reduction for upmixing in certain cases
Do not skip an output if the corresponding input contributes to other output
channels.
2013-02-12 13:41:13 -05:00
Justin Ruggles
a3735bb92a lavr: cosmetics: reindent 2013-02-12 13:41:13 -05:00
Justin Ruggles
1647da89dd lavr: make sure that the mix function is reset even if no mixing will be done
If the matrix reduction ends up with no mixing matrix needed, we need to still
reset the mix function accordingly and log the info to the user.
2013-02-12 13:41:09 -05:00
Justin Ruggles
646831e697 lavr: print out the mix matrix in ff_audio_mix_set_matrix()
This will print the new matrix if it is set after initialization.
2013-02-12 13:35:04 -05:00
Justin Ruggles
205a95f7b5 wmaenc: alloc/free coded_frame instead of keeping it in the WMACodecContext 2013-02-12 12:22:40 -05:00
Justin Ruggles
8ae50d87e7 ws-snd1: decode directly to the user-provided AVFrame 2013-02-12 12:22:40 -05:00
Justin Ruggles
c815ca3641 wma: decode directly to the user-provided AVFrame 2013-02-12 12:22:40 -05:00
Justin Ruggles
5a7288822f wmavoice: decode directly to the user-provided AVFrame 2013-02-12 12:22:40 -05:00
Justin Ruggles
ee6ca11b65 vorbis: decode directly to the user-provided AVFrame 2013-02-12 12:22:39 -05:00
Justin Ruggles
4a2b26fc1b tak: decode directly to the user-provided AVFrame 2013-02-12 12:22:39 -05:00
Justin Ruggles
f4a283eec4 wmapro: decode directly to the user-provided AVFrame 2013-02-12 12:22:39 -05:00
Justin Ruggles
f80f8dd4c2 vmdaudio: decode directly to the user-provided AVFrame 2013-02-12 12:22:39 -05:00
Justin Ruggles
903b62cc0b smackaud: decode directly to the user-provided AVFrame 2013-02-12 12:22:39 -05:00
Justin Ruggles
9873d71f31 wavpack: decode directly to the user-provided AVFrame 2013-02-12 12:22:39 -05:00
Justin Ruggles
3b7d43383f twinvq: decode directly to the user-provided AVFrame 2013-02-12 12:22:39 -05:00
Justin Ruggles
09d6831f49 sipr: decode directly to the user-provided AVFrame 2013-02-12 12:22:39 -05:00
Justin Ruggles
ad2104ba44 tta: decode directly to the user-provided AVFrame 2013-02-12 12:22:39 -05:00
Justin Ruggles
3997fef952 truespeech: decode directly to the user-provided AVFrame 2013-02-12 12:22:39 -05:00
Justin Ruggles
5d5c248c3d s302m: decode directly to the user-provided AVFrame 2013-02-12 12:22:38 -05:00
Justin Ruggles
fed74c0ae4 shorten: decode directly to the user-provided AVFrame 2013-02-12 12:22:38 -05:00
Justin Ruggles
79fb2a1f17 ra288: decode directly to the user-provided AVFrame 2013-02-12 12:22:38 -05:00
Justin Ruggles
1b9b6d6e5e qcelp: decode directly to the user-provided AVFrame 2013-02-12 12:21:23 -05:00
Justin Ruggles
86bfcfcf23 mace: decode directly to the user-provided AVFrame 2013-02-12 12:21:23 -05:00
Justin Ruggles
f7e8c87c02 ra144: decode directly to the user-provided AVFrame 2013-02-12 12:21:23 -05:00
Justin Ruggles
0905c96390 pcm-bluray: decode directly to the user-provided AVFrame 2013-02-12 12:21:23 -05:00
Justin Ruggles
cbeb3ed38d ralf: decode directly to the user-provided AVFrame 2013-02-12 12:21:23 -05:00
Justin Ruggles
0fe4056f95 nellymoser: decode directly to the user-provided AVFrame 2013-02-12 12:21:23 -05:00
Justin Ruggles
e01e1a4673 qdm2: decode directly to the user-provided AVFrame 2013-02-12 12:21:23 -05:00
Justin Ruggles
3a23752c5a mpc7/8: decode directly to the user-provided AVFrame 2013-02-12 12:21:23 -05:00
Justin Ruggles
2c785e250a mpegaudio: decode directly to the user-provided AVFrame 2013-02-12 12:21:23 -05:00
Justin Ruggles
dc33fbbfd0 mlp/truehd: decode directly to the user-provided AVFrame 2013-02-12 12:21:23 -05:00
Justin Ruggles
a8ea936a0a libilbc: decode directly to the user-provided AVFrame 2013-02-12 12:21:22 -05:00
Justin Ruggles
cb7b47a61d g726: decode directly to the user-provided AVFrame 2013-02-12 12:21:22 -05:00
Justin Ruggles
182821cff4 dca: decode directly to the user-provided AVFrame 2013-02-12 12:21:22 -05:00
Justin Ruggles
bed957bb11 libspeex: decode directly to the user-provided AVFrame 2013-02-12 12:21:22 -05:00
Justin Ruggles
b878867128 dpcm: decode directly to the user-provided AVFrame 2013-02-12 12:21:22 -05:00
Justin Ruggles
7e52fd6bca g723.1: decode directly to the user-provided AVFrame 2013-02-12 12:21:22 -05:00
Justin Ruggles
7b78321597 cook: decode directly to the user-provided AVFrame 2013-02-12 12:21:22 -05:00
Justin Ruggles
19b2cb268f libopus: decode directly to the user-provided AVFrame 2013-02-12 12:21:22 -05:00
Justin Ruggles
9b28e58357 imc/iac: decode directly to the user-provided AVFrame 2013-02-12 12:21:22 -05:00
Justin Ruggles
036e9b045f g722: decode directly to the user-provided AVFrame 2013-02-12 12:21:22 -05:00
Justin Ruggles
0cd08367dd libopencore-amr: decode directly to the user-provided AVFrame 2013-02-12 12:21:22 -05:00
Justin Ruggles
6fdfdb23d3 gsm: decode directly to the user-provided AVFrame 2013-02-12 12:21:22 -05:00
Justin Ruggles
b8e9c99ef1 flac: decode directly to the user-provided AVFrame 2013-02-12 12:21:22 -05:00
Justin Ruggles
4f69612d3e libgsm: decode directly to the user-provided AVFrame 2013-02-12 12:21:22 -05:00
Justin Ruggles
97c7bdc6d4 cinaudio: decode directly to the user-provided AVFrame 2013-02-12 12:21:22 -05:00
Justin Ruggles
5cc0bd2cb4 binkaudio: decode directly to the user-provided AVFrame 2013-02-12 12:21:21 -05:00
Justin Ruggles
e3db34291f amrnb: decode directly to the user-provided AVFrame 2013-02-12 12:21:21 -05:00
Justin Ruggles
e57daa876b adpcm: decode directly to the user-provided AVFrame 2013-02-12 12:21:21 -05:00
Justin Ruggles
cddf8998f1 comfortnoise: decode directly to the user-provided AVFrame 2013-02-12 12:21:21 -05:00
Justin Ruggles
9a75ace2b2 atrac3: decode directly to the user-provided AVFrame 2013-02-12 12:21:21 -05:00
Justin Ruggles
9b0b355e97 als: decode directly to the user-provided AVFrame 2013-02-12 12:21:21 -05:00
Justin Ruggles
55d2e12aef ac3: decode directly to the user-provided AVFrame 2013-02-12 12:21:21 -05:00
Justin Ruggles
e42e5a89d6 bmvaudio: decode directly to the user-provided AVFrame 2013-02-12 12:21:21 -05:00
Justin Ruggles
0ded61b57a atrac1: decode directly to the user-provided AVFrame 2013-02-12 12:21:21 -05:00
Justin Ruggles
5cd597f22f alac: decode directly to the user-provided AVFrame 2013-02-12 12:21:21 -05:00
Justin Ruggles
ffd2123095 aac: decode directly to the user-provided AVFrame 2013-02-12 12:21:21 -05:00
Justin Ruggles
a6bb39add2 pcm: decode directly to the user-provided AVFrame 2013-02-12 12:21:21 -05:00
Justin Ruggles
5932e2d7d2 ape: decode directly to the user-provided AVFrame 2013-02-12 12:21:21 -05:00
Justin Ruggles
bae4f47938 adxenc: alloc/free coded_frame instead of keeping it in the ADXContext 2013-02-12 12:21:21 -05:00
Justin Ruggles
a3de4010c2 8svx: decode directly to the user-provided AVFrame 2013-02-12 12:21:21 -05:00
Justin Ruggles
da28bb3f4a amrwb: decode directly to the user-provided AVFrame 2013-02-12 12:21:21 -05:00
Justin Ruggles
0588935e64 adx: decode directly to the user-provided AVFrame 2013-02-12 12:21:21 -05:00
Daniel Verkamp
1ecce266fa WAV muxer: add RF64 support 2013-02-12 14:50:27 +00:00
James Almer
0957041221 lavc/tta: Add support for encrypted streams
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-12 15:36:12 +01:00
Michael Niedermayer
a63dc846b5 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  lavu: avoid clashing definition of E
  doc: developer: Add a note about reserved system name space

Conflicts:
	libavutil/internal.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-12 14:10:36 +01:00
Michael Niedermayer
08db519e12 Merge commit '56dea32f09e71460add14a1b6d0fbe6eb16f02a4'
* commit '56dea32f09e71460add14a1b6d0fbe6eb16f02a4':
  doc: developer: Fix wording in "naming conventions" section
  openbsd: Add minor number to shared library install name

Conflicts:
	doc/developer.texi

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-12 13:41:24 +01:00
Michael Niedermayer
7491356111 Merge commit '304b806cb524fb040f8e09a241040f1af2cb820b'
* commit '304b806cb524fb040f8e09a241040f1af2cb820b':
  build: Make library minor version visible in the Makefile
  x86: mpeg4qpel: Make movsxifnidn do the right thing

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-12 13:26:22 +01:00
Michael Niedermayer
fe54f6cb45 Merge commit '4c51fe48ba6dde059360b7451db7f6bbf2f11db3'
* commit '4c51fe48ba6dde059360b7451db7f6bbf2f11db3':
  h264: Copy h264chroma dsp context to slice thread copies
  swscale: Disallow conversion to GBRP16

Conflicts:
	libswscale/utils.c
	tests/ref/lavfi/pixdesc
	tests/ref/lavfi/pixfmts_copy
	tests/ref/lavfi/pixfmts_null
	tests/ref/lavfi/pixfmts_scale
	tests/ref/lavfi/pixfmts_vflip

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-12 13:18:28 +01:00
Michael Niedermayer
e2b703f536 Merge commit '62a43d30cc3b9b2460f2c926beb522df32493625'
* commit '62a43d30cc3b9b2460f2c926beb522df32493625':
  crc: Move static data table from header to .c file
  avcodec/rectangle: Remove nonsense assert

Conflicts:
	libavcodec/rectangle.h
	libavutil/crc_data.h

The assert is not removed as the assert ensures clear and easy
to debug failures instead of undefined behavior in case of
misalignment.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-12 13:11:14 +01:00
Michael Niedermayer
3ccda2b02b Merge commit '375ef6528c9dd2db7f9881e232cb0ec3aa16970d'
* commit '375ef6528c9dd2db7f9881e232cb0ec3aa16970d':
  libfdk-aacenc: Actually check for upper bounds of cutoff
  arm: Fall back to runtime cpu feature detection via /proc/cpuinfo

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-12 12:41:09 +01:00
Luca Barbato
fd1abf4269 lavu: avoid clashing definition of E
E is usually defined as a shorthand for AV_OPT_FLAG_ENCODING_PARAM.
Rename the single expansion E(x) now used in libavutil to E1.
2013-02-12 11:47:43 +01:00
Ronald S. Bultje
7ff1a4b10f Add add_pixels4/8() to h264dsp, and remove add_pixels4 from dsputil.
These functions are mostly H264-specific (the only other user I can
spot is bink), and this allows us to special-case some functionality
for H264. Also remove the 16-bit-coeff with >8bpp versions (unused)
and merge the duplicate 32-bit-coeff for >8bpp (identical).

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-12 02:14:16 +01:00
Michael Niedermayer
5260edee7e sanm: Use the correct height variable in the decoded_size checks
Fixes integer overflow and out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-12 02:04:24 +01:00
Michael Niedermayer
4ee88db840 sanm: init sizes with the full frame size
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-12 02:00:33 +01:00
Michael Niedermayer
f0d9ccac89 sanm: reset frame sizes on buffer destruction
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-12 01:59:07 +01:00
Michael Niedermayer
365270aec5 sanm: add forgotten check for decoded_size in old_codec37()
Fixes out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-12 01:15:57 +01:00
Michael Niedermayer
3b1f037df5 ffmpeg: fix streamcopy of lsf mp3.
Fixes streamcopy of bear_mpeg4_mp3.avi
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-12 00:38:22 +01:00
Stefano Sabatini
64353be811 doc/filters: rework idet filter description 2013-02-11 23:43:37 +01:00
Stefano Sabatini
af60e45150 doc/filters: apply minor fixes to il filter docs 2013-02-11 23:43:37 +01:00
Stefano Sabatini
4c69cafcee doc/filters: fix position of il filter docs 2013-02-11 23:43:37 +01:00
Ronald S. Bultje
b582af1ed7 Use simple nop codes for <= sse (rather than <= mmx).
The "CPU: CentaurHauls family 6 model 9 stepping 8" family of CPUs
(flags: fpu vme de pse tsc msr cx8 sep mtrr pge mov pat mmx fxsr sse
up rng rng_en ace ace_en) SIGILLs on long nop codes.

Change-Id: I7e7c52a2191006df30a9aadbc40d481a1db89106
2013-02-11 23:38:57 +01:00
Ronald S. Bultje
972771dcf2 h264chroma: remove duplicate 9/10 bit functions.
Also use the resulting 16bpp functions for anything >8 and <=16, not just
9 and 10. This fixes 12 and 14bpp H264 support.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-11 22:54:52 +01:00
Diego Biurrun
56dea32f09 doc: developer: Fix wording in "naming conventions" section 2013-02-11 20:17:15 +01:00
Diego Biurrun
304b806cb5 build: Make library minor version visible in the Makefile
This allows employing that number in library install commands.
2013-02-11 20:17:15 +01:00
Diego Biurrun
3658d2dfd4 doc: developer: Add a note about reserved system name space 2013-02-11 20:17:15 +01:00
Diego Biurrun
69dca3a4f4 openbsd: Add minor number to shared library install name
This is what the OpenBSD porter's manual describes as correct, cf.
http://www.openbsd.org/faq/ports/specialtopics.html#SharedLibs
2013-02-11 20:17:15 +01:00
Daniel Kang
b3f2a3fe3f x86: mpeg4qpel: Make movsxifnidn do the right thing
Fixes an instruction that does nothing by changing the
source to dword.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-02-11 20:17:15 +01:00
Martin Storsjö
4c51fe48ba h264: Copy h264chroma dsp context to slice thread copies
This fixes slice threading which seems to have been broken since
79dad2a93.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-02-11 21:12:21 +02:00
Michael Niedermayer
0aa1d848ec ffv1enc: better heuristic to calculate initial states
Slightly improves compression of 2pass files

Tested-by: "Peter B." <pb@das-werkstatt.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-11 19:25:41 +01:00
Martin Storsjö
d192ac3e03 swscale: Disallow conversion to GBRP16
This reverts parts of d6d5ef5534, that didn't work right. (The
tests that were added failed on big endian, and the output looked
garbled on little endian as well.)

This is due to the fact that the intermediate scaling values (from
e.g. hScale8To19_c or hScale16To19_c) are stored as int32_t and
thus requires a separate output function, while yuv2gbrp_full_X_c
only interprets it as int16_t.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-02-11 20:03:16 +02:00
Diego Biurrun
62a43d30cc crc: Move static data table from header to .c file
Having static data tables in header files is a potential source of trouble.
2013-02-11 16:48:44 +01:00
Diego Biurrun
6fb296e97e avcodec/rectangle: Remove nonsense assert 2013-02-11 16:23:09 +01:00
Derek Buitenhuis
c177f2ec4a libfdk-aacenc: Actually check for upper bounds of cutoff
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2013-02-11 10:20:33 -05:00
Derek Buitenhuis
375ef6528c libfdk-aacenc: Actually check for upper bounds of cutoff
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2013-02-11 10:15:42 -05:00
Martin Storsjö
ab8f1a6989 arm: Fall back to runtime cpu feature detection via /proc/cpuinfo
On recent android versions, /proc/self/auxw is unreadable
(unless the process is running running under the shell uid or
in debuggable mode, which makes it hard to notice). See
http://b.android.com/43055 and
https://android-review.googlesource.com/51271 for more information
about the issue.

This makes sure e.g. neon optimizations are enabled at runtime in
android apps even when built in release mode, if configured to
use the runtime detection.

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-02-11 17:15:15 +02:00
Paul B Mahol
8160864b00 lavfi/amerge: make description consistent with documentation
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-11 14:43:23 +00:00
Carl Eugen Hoyos
182e342fdb Print mxf Universal Label if the user requested verbose logging.
Fixes ticket #2198
2013-02-11 13:11:16 +01:00
Michael Niedermayer
c3a62d3507 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  sparc: dsputil_vis: Fix silly variable name search and replace typo

Conflicts:
	libavcodec/sparc/dsputil_vis.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-11 12:15:54 +01:00
Paul B Mahol
5d7009dac2 evrcdec: fix wrong condition
Fixes CID980005 and CID980004.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-11 11:04:52 +00:00
Ronald S. Bultje
fd6a021d8e get_bits: return pointer to buffer that is the result of the alignment.
This allows more transparent mixing of get_bits and whole-byte access
without having to touch get_bits internals.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-11 02:29:43 +01:00
Ronald S. Bultje
5e74a2b685 bit_depth_template: don't depend on dsputil.h.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-11 01:03:45 +01:00
Ronald S. Bultje
c7e3e55429 Move ff_emulated_edge_mc prototypes to videodsp.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-11 01:03:33 +01:00
Ronald S. Bultje
55e35c98d5 h264 intra pred: add missing includes.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-11 01:03:12 +01:00
Michael Niedermayer
8491ac3ad2 mlpdec: check ch_assign more completely
Fixes CID970924

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-11 00:50:29 +01:00
Diego Biurrun
d46d87d1d3 sparc: dsputil_vis: Fix silly variable name search and replace typo 2013-02-10 22:23:43 +01:00
Stefano Sabatini
3acaea26e5 lavfi/il: filter out hwaccels formats from the list of supported formats 2013-02-10 21:00:56 +01:00
Stefano Sabatini
6b171f046c lavf/matroskaenc: provide more feedback in case of unsupported codec
Also return meaningful error code.
2013-02-10 21:00:56 +01:00
Stefano Sabatini
f0703b6cba lavd/v4l2: fix error logic when enumerating standards
Set ret to 0 before enumerating standards in v4l2_set_parameters(), avoid
use of uninitialized variable.

Regression introduced in 60950adc18.
2013-02-10 20:59:06 +01:00
Michael Niedermayer
0e3dacb11e tiff: dont leave geotag_count in an invalid state on errors.
Fixes out of array reads

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-10 20:24:53 +01:00
Michael Niedermayer
f28043d0a3 tiff: check for failure in search_keyval()
Fixes null pointer dereference

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-10 20:18:16 +01:00
Michael Niedermayer
478fc7f57b pictordec: fix cga palette index limit
Fixes out of array read

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-10 18:31:05 +01:00
Michael Niedermayer
ea1d8465e6 Fix division by 0 due to audio frame size
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-10 18:15:33 +01:00
Michael Niedermayer
cb85779d45 dpx: include offset in the total_size calculation
Fixes out of array reads

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-10 17:54:00 +01:00
Michael Niedermayer
151067bbc2 dpx: Fix rounding in 10bit total_size calculation
This could have caused out of array reads

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-10 17:52:24 +01:00
Michael Niedermayer
d24de4596c pcx: Add missing padding to scanline buffer
Fixes out of array read

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-10 17:32:05 +01:00
Michael Niedermayer
f41329c8ae pcx: use init_get_bits8()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-10 17:32:05 +01:00
Stefano Sabatini
60950adc18 lavd/v4l2: implement consistent error handling
In particular, avoid use of non-thread-safe strerror(), and store errno
before calling av_log().
2013-02-10 17:09:57 +01:00
Stefano Sabatini
e005697af6 tests: add fate-lavfi-il test 2013-02-10 17:09:57 +01:00
Michael Niedermayer
6462268e74 pcx: fix rounding in bytes_per_scanline check
Fixes out of array reads

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-10 16:52:38 +01:00
Carl Eugen Hoyos
034a125c8c Support more atrac3-in-mkv samples.
The mkv demuxer sometimes finds 12 bytes of realmedia
extradata after the matroska real audio properties.
2013-02-10 14:44:00 +01:00
Michael Niedermayer
2c5e4ae291 Revert "Merge commit 'db0a943266be29ff0596872ebb418dfed75d00de'"
This reverts commit d808206553, reversing
changes made to 30085bd43e.

This is not needed

Requested-by: Marton Balint
2013-02-10 14:27:57 +01:00
Michael Niedermayer
02b3ac87f8 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  sws: disable yuv2rgb warning for planar rgb.

Conflicts:
	libswscale/yuv2rgb.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-10 14:17:06 +01:00
Michael Niedermayer
f2b89f21cc Merge commit '7b41c24c5fa221b55a9302efaf1a9eeb38b12551'
* commit '7b41c24c5fa221b55a9302efaf1a9eeb38b12551':
  sws: dont enable chrSrcHSubSample for planar RGB

Conflicts:
	libswscale/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-10 14:07:27 +01:00
Stefano Sabatini
0b18965434 lavfi/il: move query_formats() definition up
Respect order of call during the filter lifecycle, improve readability.
2013-02-10 14:00:19 +01:00
Stefano Sabatini
63a9962287 lavfi/il: simplify/generalize linesize computation
Rely on generic utilities for computing each plane linesize.

In particular, add support to NV12/21 formats and avoid use of
PIX_FMT_PLANAR pixdesc flag, whose semantics is questionable.

It also fixes various crashes.
2013-02-10 14:00:19 +01:00
Michael Niedermayer
d1d9b93e9a Merge commit 'e58013dd8f00e17dd98ba64e41c72f1d152f6608'
* commit 'e58013dd8f00e17dd98ba64e41c72f1d152f6608':
  sws: use planarRgbToRgbWrapper only for 8bit per component

Conflicts:
	libswscale/swscale_unscaled.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-10 13:55:51 +01:00
Michael Niedermayer
42431a557e Merge commit 'd6d5ef5534d582f9dbaf18ac2605cf5bb72cd821'
* commit 'd6d5ef5534d582f9dbaf18ac2605cf5bb72cd821':
  sws: GBRP9, GBRP10, and GBRP16 output support

Conflicts:
	libswscale/output.c
	libswscale/utils.c
	tests/ref/lavfi/pixdesc
	tests/ref/lavfi/pixfmts_copy
	tests/ref/lavfi/pixfmts_null
	tests/ref/lavfi/pixfmts_scale
	tests/ref/lavfi/pixfmts_vflip

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-10 13:49:53 +01:00
Michael Niedermayer
e88f392733 Merge commit '81726a4f0b8a43e19898e2a36fdde80583bafff0'
* commit '81726a4f0b8a43e19898e2a36fdde80583bafff0':
  FATE: add tests for additional flavors of asf cover art
  asfdec: do not assume every AVStream has a corresponding ASFStream

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-10 13:18:04 +01:00
Michael Niedermayer
9a714d871a Merge commit 'f5fac6f77752931347ab302563802dcaa49c2419'
* commit 'f5fac6f77752931347ab302563802dcaa49c2419':
  asfdec: support reading ID3v2 tags in ASF files

Conflicts:
	Changelog
	libavformat/asfdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-10 13:06:16 +01:00
Michael Niedermayer
d808206553 Merge commit 'db0a943266be29ff0596872ebb418dfed75d00de'
* commit 'db0a943266be29ff0596872ebb418dfed75d00de':
  avplay: apply the stream sample_aspect_ratio to decoded video frames

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-10 12:47:37 +01:00
Michael Niedermayer
30085bd43e Merge commit '84b721db366c0734fdfd23c8daaa7da7da21f761'
* commit '84b721db366c0734fdfd23c8daaa7da7da21f761':
  asfdec: also read Metadata Library Object

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-10 12:39:17 +01:00
Michael Niedermayer
3600049dae Merge commit '61f9ad2dfcb3f98b7ac5777d19d0e7b61d0be01e'
* commit '61f9ad2dfcb3f98b7ac5777d19d0e7b61d0be01e':
  asfdec: read the full Metadata Object, not just aspect ratio information

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-10 12:25:40 +01:00
Michael Niedermayer
0af4506e15 Merge commit '36fab50e90d15352e403e4cc210890810f2fb4e2'
* commit '36fab50e90d15352e403e4cc210890810f2fb4e2':
  asfdec: silence a warning
  mss4, ra288: Remove unused DSPContext local codec context members

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-10 12:14:14 +01:00
Carl Eugen Hoyos
f02f231e05 Do not write invalid matroska files.
Some real codecs are supported by the matroska specification
(and FFmpeg's matroska demuxer) but not the FFmpeg muxer.
2013-02-10 10:51:12 +01:00
Michael Niedermayer
cf8d9b74f3 imgconvert: use get_pix_fmt_score in avcodec_find_best_pix_fmt_of_2()
This fixes various poorly choosen pixel format cases.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-10 02:15:13 +01:00
Michael Niedermayer
13ae02d03f imgconvert: add get_pix_fmt_score()
get_pix_fmt_score() returns a score representing the amount
of loss when converting a pixel format

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-10 02:14:52 +01:00
Paul B Mahol
969039eb6e lavfi/il: fix typo in Copyright
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-09 21:56:04 +00:00
Paul B Mahol
c0a8918f2a lavfi: remove mp=il filter
Native il video filter is now available.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-09 21:43:39 +00:00
Paul B Mahol
6e9abce5e2 lavfi: port MP il filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-09 21:41:53 +00:00
Michael Niedermayer
796012af6c targa: Fix y check in advance_line
Fixes out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-09 21:21:26 +01:00
Nicolas George
f43d09cd60 lavf: add tee pseudo-muxer. 2013-02-09 20:50:11 +01:00
Michael Niedermayer
813784a8bf sws: disable yuv2rgb warning for planar rgb.
planar rgb formats do not use the table

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2013-02-09 14:32:50 -05:00
Paul B Mahol
350128b28f rv10: remove check that is always true
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-09 19:32:43 +00:00
Michael Niedermayer
7b41c24c5f sws: dont enable chrSrcHSubSample for planar RGB
This code path is not implemented and makes not much sense to implement
either.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2013-02-09 14:31:53 -05:00
Michael Niedermayer
e58013dd8f sws: use planarRgbToRgbWrapper only for 8bit per component
The function doesnt support >8bit currently

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2013-02-09 14:31:53 -05:00
Michael Niedermayer
d6d5ef5534 sws: GBRP9, GBRP10, and GBRP16 output support
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2013-02-09 14:31:11 -05:00
Anton Khirnov
81726a4f0b FATE: add tests for additional flavors of asf cover art 2013-02-09 18:57:21 +01:00
Vladimir Pantelic
f5fac6f777 asfdec: support reading ID3v2 tags in ASF files
Yes, these files do exist

Signed-off-by: Vladimir Pantelic <vladoman@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-02-09 18:57:21 +01:00
Vladimir Pantelic
db0a943266 avplay: apply the stream sample_aspect_ratio to decoded video frames
If there is a sample_aspect_ratio in the stream, then apply it to every
decoded frame in the same way as avconv does. This also makes sure that
the avfilter chain has access to the aspect ratio.

Signed-off-by: Vladimir Pantelic <vladoman@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-02-09 18:57:21 +01:00
Vladimir Pantelic
84b721db36 asfdec: also read Metadata Library Object
In some ASF files this objects holds cover art and other tags. Compared to
Metadata Object it can also hold GUIDs, but we ignore these for now.

Signed-off-by: Vladimir Pantelic <vladoman@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-02-09 18:57:21 +01:00
Vladimir Pantelic
61f9ad2dfc asfdec: read the full Metadata Object, not just aspect ratio information
Use the same get_tag()/get_value() as for the Extended Content Description
but handle the 16 bit vs 32 bit difference for type 2 (BOOL)

Signed-off-by: Vladimir Pantelic <vladoman@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-02-09 18:57:21 +01:00
Vladimir Pantelic
36fab50e90 asfdec: silence a warning
Signed-off-by: Vladimir Pantelic <vladoman@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-02-09 18:57:21 +01:00
Anton Khirnov
1ef0e8a6bf asfdec: do not assume every AVStream has a corresponding ASFStream
This won't be true for ID3 attached picture.

Also stop allocating now useless dummy ASFStreams for ASF native
attached pictures.
2013-02-09 18:57:21 +01:00
Michael Niedermayer
b5fc95e77f motionpixels: Check that the vlc table has been fully inited
Fixes out of array reads

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-09 18:44:01 +01:00
Michael Niedermayer
4401958fdc motionpixels: Propagate errors in vlc table init
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2013-02-09 18:44:01 +01:00
Carl Eugen Hoyos
e149127bb2 Call the common 7.1 wide channel layout "7.1(wide)".
Rename the uncommon variant with side speakers to "7.1(wide-side)".
2013-02-09 18:14:46 +01:00
Paul B Mahol
faac85005c lavu/internal: rename macro E(x) to EXPAND(x)
Fixes bunch of warnings of E redefinition under clang.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-09 16:26:30 +00:00
Paul B Mahol
4fa9defc7f lavfi/histogram: make waveform mode more useful
Now it displays all color components (not just luma)
either in parade or overlay and also works with RGB colorspace.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-09 16:05:28 +00:00
Paul B Mahol
da726a8763 paf, sanm: remove unused header after b05830169d
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-09 14:16:53 +00:00
Carl Eugen Hoyos
7a259a5fcd Fix libpostproc compilation on x86_32 with disable-optimizations. 2013-02-09 15:03:04 +01:00
Stefano Sabatini
b46a8f055e doc/filters: end table in histogram docs 2013-02-09 14:57:10 +01:00
Stefano Sabatini
bad82243cd doc/demuxers: add docs for rawvideo demuxer 2013-02-09 14:57:10 +01:00
Stefano Sabatini
765dbea9fe lavf/rawvideodec: fix/extend option descriptions 2013-02-09 14:57:10 +01:00
Stefano Sabatini
9b9b5a475b doc/demuxers: fix copy&paste error in "@c man end" line
Use proper name for ending chapter.
2013-02-09 14:57:10 +01:00
Stefano Sabatini
111697170e doc/demuxers: sort demuxers by name 2013-02-09 14:57:09 +01:00
Michael Niedermayer
5cfc0ae825 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  dsputil: Move fdct function declarations to dct.h

Conflicts:
	libavcodec/dsputil.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-09 14:45:45 +01:00
Michael Niedermayer
6b2e65078c Merge commit '218aefce4472dc02ee3f12830a9a894bf7916da9'
* commit '218aefce4472dc02ee3f12830a9a894bf7916da9':
  dsputil: Move LOCAL_ALIGNED macros to libavutil

Conflicts:
	libavcodec/dvdec.c
	libavcodec/imc.c
	libavcodec/mpegvideo_motion.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-09 14:33:57 +01:00
Diego Biurrun
8658e1c682 mss4, ra288: Remove unused DSPContext local codec context members 2013-02-09 14:32:06 +01:00
Michael Niedermayer
276c9c0577 Merge commit '059866eb17cd3c66422a61d3e9c3305f55830a50'
* commit '059866eb17cd3c66422a61d3e9c3305f55830a50':
  dsputil: Move WRAPPER8_16_SQ macro to the only place it is used

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-09 14:27:44 +01:00
Michael Niedermayer
5fd6d85d17 rnd_avg: fix author attribution
Reference:
commit 41fda91d09
Author: BERO <bero@geocities.co.jp>
Date:   Wed May 14 17:46:55 2003 +0000

    aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)

    Originally committed as revision 1880 to svn://svn.ffmpeg.org/ffmpeg/trunk

commit 8dbe585641
Author: Oskar Arvidsson <oskar@irock.se>
Date:   Tue Mar 29 17:48:59 2011 +0200

    Adds 8-, 9- and 10-bit versions of some of the functions used by the h264 decoder.

    This patch lets e.g. dsputil_init chose dsp functions with respect to
    the bit depth to decode. The naming scheme of bit depth dependent
    functions is <base name>_<bit depth>[_<prefix>] (i.e. the old
    clear_blocks_c is now named clear_blocks_8_c).

    Note: Some of the functions for high bit depth is not dependent on the
    bit depth, but only on the pixel size. This leaves some room for
    optimizing binary size.

    Preparatory patch for high bit depth h264 decoding support.

    Signed-off-by: Michael Niedermayer <michaelni@gmx.at>

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-09 14:22:29 +01:00
Michael Niedermayer
81a11452f8 Merge commit 'bf6b3ec924b4fb64d14df33077f4d4541d525dbf'
* commit 'bf6b3ec924b4fb64d14df33077f4d4541d525dbf':
  dsputil: Move rnd_avg inline functions to a separate header

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-09 14:22:05 +01:00
Michael Niedermayer
a8864615e6 Merge commit 'b9c2408b19dc9408e9dc0ce4a099af529bbfba3b'
* commit 'b9c2408b19dc9408e9dc0ce4a099af529bbfba3b':
  dsputil: Remove commented-out, unused function declarations

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-09 13:51:47 +01:00
Michael Niedermayer
ffbe19fc84 Merge commit '35685a3c2a1ec09f3c62dcfc4368fe9e92bcddf6'
* commit '35685a3c2a1ec09f3c62dcfc4368fe9e92bcddf6':
  dsputil: Move ff_shrink* function declarations to separate header
  dsputil: Move ff_svq3 function declarations to a separate header

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-09 13:46:03 +01:00
Michael Niedermayer
0af07495ec Merge commit '6a4430407404bfe55581e66a86a496c9adf6fb44'
* commit '6a4430407404bfe55581e66a86a496c9adf6fb44':
  dsputil: Move ff_h264_idct function declarations to a separate header

Conflicts:
	libavcodec/dsputil.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-09 13:40:03 +01:00
Paul B Mahol
e5670cb8a1 lavfi/histogram: make it C90 compliant
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-09 12:27:49 +00:00
Michael Niedermayer
b05830169d Merge commit 'b9ba5253dd1232be4b48cfe61c31ff4b3de3d10a'
* commit 'b9ba5253dd1232be4b48cfe61c31ff4b3de3d10a':
  dsputil: Move copy_block functions to a separate header
  dsputil: Drop unused functions copy_block{2|4|16}

No functions are droped because they are used in several places.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-09 13:23:59 +01:00
Paul B Mahol
29a92c0114 histogram filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-09 11:45:56 +00:00
Michael Niedermayer
e5212354ea Merge commit 'b9ee5f2cab3ffe1c962e542346b1ed61394864ec'
* commit 'b9ee5f2cab3ffe1c962e542346b1ed61394864ec':
  indeo3: replace use of copy_block4 with put_pixels
  mjpegdec: use put_pixels instead of copy_block8

Conflicts:
	libavcodec/mjpegdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-09 12:37:03 +01:00
Michael Niedermayer
bcb15e66f7 Merge commit 'b5b7b75e91e291c810ebd01868a42b53f267a87c'
* commit 'b5b7b75e91e291c810ebd01868a42b53f267a87c':
  dsputil: Move get_penalty_factor() to the only place it is used.

Conflicts:
	libavcodec/dsputil.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-09 12:05:53 +01:00
Michael Niedermayer
55151aa101 Merge commit '0b016eb99d38738e2c53e36549a4732a0f863b2e'
* commit '0b016eb99d38738e2c53e36549a4732a0f863b2e':
  dsputil: Move ff_block_permute to mpegvideo_enc

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-09 11:44:46 +01:00
Michael Niedermayer
a35f5c2233 Merge remote-tracking branch 'rdp/dshow_shared'
* rdp/dshow_shared:
  dshow: attempt to build shared as well as static

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-09 04:06:56 +01:00
James Almer
53b2083f44 sparc: Revert some parameter name changes in dsputil_vis.c
They were renamed by mistake in 25841df.
This should fix compilation failures on sparc.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-09 02:59:15 +01:00
Michael Niedermayer
a92816c4eb get_se_golomb: fix decoding of very large values
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-09 01:17:41 +01:00
Diego Biurrun
5d3d39c72e dsputil: Move fdct function declarations to dct.h 2013-02-09 00:08:28 +01:00
Diego Biurrun
218aefce44 dsputil: Move LOCAL_ALIGNED macros to libavutil 2013-02-08 23:13:37 +01:00
Diego Biurrun
059866eb17 dsputil: Move WRAPPER8_16_SQ macro to the only place it is used 2013-02-08 23:10:17 +01:00
Diego Biurrun
bf6b3ec924 dsputil: Move rnd_avg inline functions to a separate header 2013-02-08 23:10:17 +01:00
Diego Biurrun
b9c2408b19 dsputil: Remove commented-out, unused function declarations 2013-02-08 23:10:16 +01:00
Michael Niedermayer
b8820e7aa3 dsp: make put_no_rnd_pixels_tab 4x4 big
This makes it match the other tables and fixes out of array acceses.

Fixes CID980012

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-08 22:55:55 +01:00
James Almer
89946c8403 dxva2: Prevent redefinition of _WIN32_WINNT
Don't redefine _WIN32_WINNT when targeting Win7/8

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-08 14:10:19 +01:00
Michael Niedermayer
47335126c0 ff_end_tag: assert that the start is aligned.
If its start is not aligned then aligning its end will
likely break many demuxers as they check the size and not
the position.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-08 12:51:52 +01:00
Paul B Mahol
810cd0dd9c riff: chunks must be at 2 byte boundary
Fixes #2244.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-02-08 10:40:41 +00:00
Michael Niedermayer
0d194ee51e vc1dec: Fix destination pointers in context for fields
This replaces a large number of checks for the second field by
fixing the pointers when they are setup

This should also fix I/BI field pictures

Changes checksums for vc1_sa10143, the file becomes slightly closer
to what the reference decoder outputs

Based on "vc1dec: the second field is written wrong to the picture"
         by Sebastian Sandberg <sebastiand.sandberg@gmail.com>

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-08 00:10:29 +01:00
Diego Biurrun
35685a3c2a dsputil: Move ff_shrink* function declarations to separate header 2013-02-07 22:08:19 +01:00
Diego Biurrun
6a44304074 dsputil: Move ff_h264_idct function declarations to a separate header 2013-02-07 22:08:19 +01:00
Diego Biurrun
b9ba5253dd dsputil: Move copy_block functions to a separate header 2013-02-07 22:08:19 +01:00
Mans Rullgard
b9ee5f2cab indeo3: replace use of copy_block4 with put_pixels
The destination is sufficiently aligned for put_pixels here.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2013-02-07 22:08:19 +01:00
Diego Biurrun
75d5156ac1 dsputil: Move ff_svq3 function declarations to a separate header 2013-02-07 22:08:19 +01:00
Diego Biurrun
9e31729d69 dsputil: Drop unused functions copy_block{2|4|16} 2013-02-07 22:08:19 +01:00
Mans Rullgard
ed62e6e3c3 mjpegdec: use put_pixels instead of copy_block8
Signed-off-by: Mans Rullgard <mans@mansr.com>
2013-02-07 22:08:19 +01:00
Diego Biurrun
b5b7b75e91 dsputil: Move get_penalty_factor() to the only place it is used. 2013-02-07 22:05:25 +01:00
Diego Biurrun
0b016eb99d dsputil: Move ff_block_permute to mpegvideo_enc 2013-02-07 22:05:25 +01:00
Michael Niedermayer
a8e748eee5 lavf: add seek2any to allow forcing seeking to non keyframes via AVOptions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-07 21:54:41 +01:00
Michael Niedermayer
7c00d853a6 matroskadec: support seek to non keyframes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-07 21:48:48 +01:00
Stefano Sabatini
c0a4871c16 lavfi/select: correctly set prev_t and prev_pts
In particular, fix trac ticket #2248.
2013-02-07 21:28:46 +01:00
Stefano Sabatini
872855e2a5 lavfi/select: avoid double -> int lossy conversion in debug log 2013-02-07 21:00:54 +01:00
Stefano Sabatini
1afbb4c226 doc/filters: remove another instance of '×'
Fix trac ticket #2247.
2013-02-07 20:28:30 +01:00
Michael Niedermayer
a00c4b4db0 af_biquad: avoid subtraction in loop
17% faster
Note the speedup is smaller if its done before
storing in the context (gcc 4.6.3 core i7)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-07 19:46:02 +01:00
Michael Niedermayer
9f956611e3 af_biquad: unroll loop, remove variable copies
This makes the code about 7% faster

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-07 19:03:22 +01:00
Michael Niedermayer
4e2c63685e sws: dont write out of array on bigendian
Fixes Ticket2229

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-07 16:22:51 +01:00
Michael Niedermayer
48870853b2 x86/dsputil: Fix author attribution after code has been moved/splited around
Reference:
commit 3615e2be84
Author: Michael Niedermayer <michaelni@gmx.at>
Date:   Tue Dec 2 22:02:57 2003 +0000

    h263_h_loop_filter_mmx

    Originally committed as revision 2553 to svn://svn.ffmpeg.org/ffmpeg/trunk

commit 359f98ded9
Author: Michael Niedermayer <michaelni@gmx.at>
Date:   Tue Dec 2 20:28:10 2003 +0000

    h263_v_loop_filter_mmx

    Originally committed as revision 2552 to svn://svn.ffmpeg.org/ffmpeg/trunk

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-07 16:22:51 +01:00
Michael Niedermayer
54d8322355 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  dsputil: x86: Fix compile error
  dsputil: x86: Convert h263 loop filter to yasm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-07 14:35:49 +01:00
Michael Niedermayer
c7002e3d3d Merge commit '12b54a1f39fee22fa0399825ae47a43e60bad4c5'
* commit '12b54a1f39fee22fa0399825ae47a43e60bad4c5':
  mpegvideo: remove an unused function parameter

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-07 14:28:30 +01:00
Michael Niedermayer
1c65393906 Merge commit '605b047bcc48482dc8a356f56629da259fbddbf1'
* commit '605b047bcc48482dc8a356f56629da259fbddbf1':
  rv10: improve buffer size check.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-07 14:02:23 +01:00
Michael Niedermayer
b8d6108cfc error_resilience: assert that unsupported B frame interpolation isnt used with h264
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-07 13:59:45 +01:00
Michael Niedermayer
7f23b2a9d0 Merge commit 'c5fcdb440237f06f6c954185ab60970cabf786a2'
* commit 'c5fcdb440237f06f6c954185ab60970cabf786a2':
  error_resilience: remove a useless if() and FIXME
  h264: remove silly macros

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-07 13:49:04 +01:00
Michael Niedermayer
d5518545d1 Merge commit 'ca1fe6c0e60808da45d4dfd8728f45e843b9f9b0'
* commit 'ca1fe6c0e60808da45d4dfd8728f45e843b9f9b0':
  h263: remove an unused parameter from ff_h263_decode_init_vlc
  flac: add channel layout masks for streams with 7 or 8 channels.
  flac: don't check the number of channels before setting the channel layout.

Conflicts:
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-07 13:42:56 +01:00
Michael Niedermayer
60a0bc46cd Merge commit 'a846dccb29d2bb0798af1d47d06100eda9ca87cc'
* commit 'a846dccb29d2bb0798af1d47d06100eda9ca87cc':
  h264chroma: x86: Fix building with yasm disabled
  rv34: Drop now unnecessary dsputil dependencies

Conflicts:
	libavcodec/x86/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-07 13:35:49 +01:00
Michael Niedermayer
c4e394e460 Merge commit '79dad2a932534d1155079f937649e099f9e5cc27'
* commit '79dad2a932534d1155079f937649e099f9e5cc27':
  dsputil: Separate h264chroma

Conflicts:
	libavcodec/dsputil_template.c
	libavcodec/ppc/dsputil_ppc.c
	libavcodec/vc1dec.c
	libavcodec/vc1dsp.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-07 13:09:35 +01:00
Nicolas George
b5884db437 lavfi: fix missing space in error message. 2013-02-07 12:22:09 +01:00
Nicolas George
3dea8b375e lavfi: remove disabled code. 2013-02-07 12:22:09 +01:00
Michael Niedermayer
199683c898 mov: remove unused function
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-07 11:54:46 +01:00
Tim Walker
08797c599d flac: don't check the number of channels before setting the channel layout
This is unnecessary, as ff_flac_set_channel_layout can handle any number of channels.
2013-02-07 09:36:21 +00:00
Daniel Kang
a1d3673034 dsputil: x86: Fix compile error
Accidentally prefixed ff_ with cextern.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-02-07 11:06:16 +02:00
rogerdpack
aa715cdcf5 dshow: attempt to build shared as well as static
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
2013-02-06 23:37:46 -07:00
Daniel Kang
659d4ba5af dsputil: x86: Convert h263 loop filter to yasm
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-02-06 15:38:27 -08:00
Stefano Sabatini
d11ac64ecf doc: replace '×' symbol with 'x'
Non-ascii chars are not correctly rendered in both MAN and HTML output or
may even cause compilation failure. Thus avoid to use them until we find
a satisfying way to deal with them.

Fix trac ticket #2243.
2013-02-06 22:55:36 +01:00
Stefano Sabatini
b3d2c6f8b9 lavf/segment: fix DTS inconsistencies with -reset_timestamps
The DTS needs to be resynched against the segment start PTS, or the
resulting DTS may result < PTS.

Reported-by: Owen Jones <riots6@gmail.com>

See thread:
Subject: [FFmpeg-user] pts/dts error using reset_timestamps while splitting a DVD
Date: Sat, 19 Jan 2013 08:58:27 +0000
2013-02-06 22:55:18 +01:00
Matthieu Bouron
59d40fc7e6 lavf/mov: skip version and flags attributes in mov_read_chan function
Fixes ticket #1764.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-06 22:39:40 +01:00
Anton Khirnov
12b54a1f39 mpegvideo: remove an unused function parameter 2013-02-06 21:48:48 +01:00
Anton Khirnov
605b047bcc rv10: improve buffer size check.
Check slice count and input buffer size before constructing a possibly
invalid pointer, not after.
2013-02-06 21:47:57 +01:00
Anton Khirnov
c5fcdb4402 error_resilience: remove a useless if() and FIXME
pp_time is never set for h264
2013-02-06 21:46:55 +01:00
Anton Khirnov
9782c778a2 h264: remove silly macros
They serve no useful purpose and wreak all kind of havoc when h264.h is
included elsewhere.
2013-02-06 21:45:02 +01:00
Anton Khirnov
ca1fe6c0e6 h263: remove an unused parameter from ff_h263_decode_init_vlc 2013-02-06 21:44:38 +01:00
Tim Walker
9d083d6417 flac: add channel layout masks for streams with 7 or 8 channels.
They were added to the latest FLAC specification:
https://git.xiph.org/?p=flac-website.git;a=commit;h=65c199a2

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-02-06 21:44:06 +01:00
Tim Walker
41244e13d5 flac: don't check the number of channels before setting the channel layout.
This is unnecessary, as ff_flac_set_channel_layout can handle any number of channels.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-02-06 21:43:05 +01:00
Michael Niedermayer
4745194336 Merge remote-tracking branch 'rdp/combined2'
* rdp/combined2:
  dshow: allow for more codec ID's
  dshow: better error reporting
  dshow: fix log message

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-06 20:14:15 +01:00
Michael Niedermayer
864fdfa062 framecrcenc: print all side data elements, not just the first
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-06 18:17:27 +01:00
Michael Niedermayer
b2c4431944 framecrcenc: Also print the size of side data elements
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-06 18:17:03 +01:00
Vignesh Venkatasubramanian
579c4add63 Fate test to print side_data crc if present
Modified the fate test crc generator to print the side_data's
crc if side_data is present.

Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-06 17:53:47 +01:00
Michael Niedermayer
78dc4cb26d Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mpegvideo: initialize dummy reference frames.

Conflicts:
	libavcodec/mpegvideo.c
	tests/ref/fate/filter-yadif-mode1

The luma init is left at 0x80 as it was previously, and tested and
working since a long time. Its also mandated to be 0x80 by at least
one specification. Cases that need different values already had
code in place to handle them.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-06 16:59:32 +01:00
Michael Niedermayer
d71f8d74db qtrle: fix 1bit row_ptr comment
Found-by: aballier
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-06 16:46:23 +01:00
Michael Niedermayer
0b74fd1134 Merge commit 'dff6197dfb9b2d145729885c63f865c5fdd184aa'
* commit 'dff6197dfb9b2d145729885c63f865c5fdd184aa':
  nuv: do not rely on get_buffer() initializing the frame.
  yop: initialize palette to 0

Conflicts:
	libavcodec/nuv.c
	tests/ref/fate/nuv-rtjpeg-fh
	tests/ref/fate/yop

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-06 16:40:59 +01:00
Michael Niedermayer
73562f1f83 Merge commit '8136f234445862c94d1c081606b2d1e3d44fccf3'
* commit '8136f234445862c94d1c081606b2d1e3d44fccf3':
  yop: check for input overreads.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-06 16:25:16 +01:00
Martin Storsjö
a846dccb29 h264chroma: x86: Fix building with yasm disabled
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-02-06 17:05:33 +02:00
Michael Niedermayer
3138b158dd Merge commit '06cf597c352519d2b70f293518c61b8c312f5d4f'
* commit '06cf597c352519d2b70f293518c61b8c312f5d4f':
  yop: check that extradata is large enough.

Conflicts:
	libavcodec/yop.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-06 16:05:06 +01:00
Michael Niedermayer
769eba75ee Merge commit '89f11f498b9c15bc71494a11a7ec560f4adf630d'
* commit '89f11f498b9c15bc71494a11a7ec560f4adf630d':
  qtrle: fix the topmost line for 1bit

Conflicts:
	tests/ref/fate/qtrle-1bit

See: 1af91978db

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-06 15:57:45 +01:00
Michael Niedermayer
68c0144d02 Merge commit '685e6f2e3939f124b41c7801cc541dad8252af3d'
* commit '685e6f2e3939f124b41c7801cc541dad8252af3d':
  xxan: properly handle odd heights.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-06 15:26:32 +01:00
Michael Niedermayer
a845ac78c9 Merge commit '2cd4068071b9a8908823a3107f97e938211045ce'
* commit '2cd4068071b9a8908823a3107f97e938211045ce':
  fraps: fix off-by one bug for version 1.

Conflicts:
	libavcodec/fraps.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-06 15:21:39 +01:00
Michael Niedermayer
ddc3ca2caa Merge commit 'da7baaaae79b4d7d715d35ea6bcfbdd149edc177'
* commit 'da7baaaae79b4d7d715d35ea6bcfbdd149edc177':
  aasc: fix output for msrle compression.
  msrledec: check bounds before constructing a possibly invalid pointer,
  cmdutils: remove ansi from the list of broken codecs.

Conflicts:
	tests/ref/fate/aasc

Also See: e7117f1c10

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-06 15:16:51 +01:00
Michael Niedermayer
6e9f3f3b65 Merge commit '238614de679a71970c20d7c3fee08a322967ec40'
* commit '238614de679a71970c20d7c3fee08a322967ec40':
  cdgraphics: do not rely on get_buffer() initializing the frame.
  svq1: replace struct svq1_frame_size with an array.
  vf_yadif: silence a warning.

Conflicts:
	libavcodec/svq1dec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-06 14:53:49 +01:00
Michael Niedermayer
fadf845973 Merge commit '48a4ffa722c0874b251de9d201babed52cef0bcb'
* commit '48a4ffa722c0874b251de9d201babed52cef0bcb':
  asf: K&R formatting cosmetics
  vc1dec: use codec_id instead of codec_tag for VC1IMAGE
  sh4: drop unused functions

Conflicts:
	libavformat/asf.c
	libavformat/asfdec.c
	libavformat/asfenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-06 14:25:28 +01:00
Tim Walker
7af876a93f flac: add channel layout masks for streams with 7 or 8 channels
They were added to the latest FLAC specification:
https://git.xiph.org/?p=flac-website.git;a=commit;h=65c199a2
2013-02-06 12:53:15 +00:00
James Almer
8ab2173ed1 lavc/bink: Chech for malloc failure
Signed-off-by: James Almer <jamrial@gmail.com>
2013-02-06 12:35:33 +00:00
Michael Niedermayer
6c38884876 Merge commit '620289a20e022b9c16c10d546ef86cc0bb77cc84'
* commit '620289a20e022b9c16c10d546ef86cc0bb77cc84':
  sh4: Fix silly type vs. variable name search and replace typo
  configure: Group all hwaccels together in a separate variable
  Add av_cold attributes to arch-specific init functions

Conflicts:
	configure
	libavcodec/arm/mpegvideo_armv5te.c
	libavcodec/x86/mlpdsp.c
	libavcodec/x86/motion_est.c
	libavcodec/x86/mpegvideoenc.c
	libavcodec/x86/videodsp_init.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-06 13:27:24 +01:00
Michael Niedermayer
0ddca7d416 dsputil: fixup half a dozen bugs with ptrdiff vs int linesize
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-06 13:22:19 +01:00
Michael Niedermayer
ede45c4e1d Merge commit '25841dfe806a13de526ae09c11149ab1f83555a8'
* commit '25841dfe806a13de526ae09c11149ab1f83555a8':
  Use ptrdiff_t instead of int for {avg, put}_pixels line_size parameter.

Conflicts:
	libavcodec/alpha/dsputil_alpha.c
	libavcodec/dsputil_template.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-06 12:18:25 +01:00
Diego Biurrun
82bd04b170 rv34: Drop now unnecessary dsputil dependencies 2013-02-06 11:30:54 +01:00
Diego Biurrun
79dad2a932 dsputil: Separate h264chroma 2013-02-06 11:30:53 +01:00
Anton Khirnov
293065bdb5 mpegvideo: initialize dummy reference frames.
Do not rely on get_buffer initializing them.

Changes yadif tests (off by one in one border pixel), because yadif
reads from those uninitialized lines.
2013-02-06 10:21:52 +01:00
Anton Khirnov
dff6197dfb nuv: do not rely on get_buffer() initializing the frame. 2013-02-06 10:21:52 +01:00
Anton Khirnov
8136f23444 yop: check for input overreads.
CC:libav-stable@libav.org
2013-02-06 10:21:52 +01:00
Anton Khirnov
06cf597c35 yop: check that extradata is large enough.
CC:libav-stable@libav.org
2013-02-06 10:21:52 +01:00
Kostya Shishkov
89f11f498b qtrle: fix the topmost line for 1bit
Signed-off-by: Anton Khirnov <anton@khirnov.net>
CC:libav-stable@libav.org
2013-02-06 10:21:52 +01:00
Kostya Shishkov
685e6f2e39 xxan: properly handle odd heights.
Duplicate the last one or two chroma lines.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
CC:libav-stable@libav.org
2013-02-06 10:21:52 +01:00
Anton Khirnov
2cd4068071 fraps: fix off-by one bug for version 1.
CC:libav-stable@libav.org
2013-02-06 10:21:52 +01:00
Anton Khirnov
da7baaaae7 aasc: fix output for msrle compression.
The bottom line was invalid before.

CC:libav-stable@libav.org
2013-02-06 10:21:52 +01:00
Anton Khirnov
238614de67 cdgraphics: do not rely on get_buffer() initializing the frame.
Setting it to zero (instead of 128, as the default get_buffer() does)
also produces more correctly-looking output.
2013-02-06 10:21:52 +01:00
Anton Khirnov
39a9fdd00f yop: initialize palette to 0
The FATE sample contains some pixels with value 0, but the palette
stored in the file contains only values from 16 up. Because the default
and cmdutils get_buffer() initialize the data to 0x80, they appear as
gray dots.
After this commit they change to black dots, which is probably still
incorrect but less visible and doesn't rely on get_buffer() initializing
the data.
2013-02-06 10:21:52 +01:00
Anton Khirnov
9bd6375d5f msrledec: check bounds before constructing a possibly invalid pointer,
CC:libav-stable@libav.org
2013-02-06 10:21:52 +01:00
Anton Khirnov
6ed9fc44ba svq1: replace struct svq1_frame_size with an array.
It is used as an array in svq1enc, so this is more correct.
2013-02-06 10:21:52 +01:00
Anton Khirnov
6a39985451 cmdutils: remove ansi from the list of broken codecs.
It's not relying on get_buffer() initializing the frame since
99e36ddd3e.
2013-02-06 10:21:52 +01:00
Anton Khirnov
99162f8d46 vf_yadif: silence a warning.
clang says:
libavfilter/vf_yadif.c:192:28: warning: incompatible pointer types assigning to
'void (*)(uint8_t *, uint8_t *, uint8_t *, uint8_t *, int, int, int, int, int)'
from 'void (uint16_t *, uint16_t *, uint16_t *, uint16_t *, int, int, int, int, int)'
2013-02-06 10:21:51 +01:00
Diego Biurrun
48a4ffa722 asf: K&R formatting cosmetics 2013-02-06 09:48:51 +01:00
Vladimir Pantelic
77bcb89600 vc1dec: use codec_id instead of codec_tag for VC1IMAGE
the rest of the code is using codec_id everywhere already

Signed-off-by: Vladimir Pantelic <vladoman@gmail.com>
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2013-02-06 09:34:32 +01:00
Michael Niedermayer
127ff88639 ffmpeg: do not call exit from exit_program()
This should fix  Ticket2116

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-06 04:03:52 +01:00
Michael Niedermayer
68dfe530e0 vdpau: Rename union, avoid name conflict with vdpau
Fixes Ticket2203

Reviewed-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-06 01:43:36 +01:00
Michael Niedermayer
ccf9dd00da ffmpeg: dont allow -flags to override -pass
Fixes Ticket2154

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-06 01:26:26 +01:00
Stefano Sabatini
a12787960e lavf/segment: extend PTS debugging log with -reset_timestamps 2013-02-06 00:40:09 +01:00
Stefano Sabatini
212bb6490f ffplay: report video frame changes only in debug mode
In particular, remove distracting message:
"Video frame changed from size:0x0 format:none serial:-1 to ..."
2013-02-06 00:20:37 +01:00
Stefano Sabatini
58c4b0f990 ffplay: extend feedback in case of video changes 2013-02-06 00:20:30 +01:00
Luca Barbato
b2a722a87e sh4: drop unused functions
{avg,put}_pixels4_c are not used.
2013-02-05 23:24:05 +01:00
Michael Niedermayer
f0eacbc760 dvenc: dont fail hard if the timecode is invalid
Instead just dont store the timecode
Fixes Ticket2187

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-05 22:57:35 +01:00
Diego Biurrun
620289a20e sh4: Fix silly type vs. variable name search and replace typo 2013-02-05 22:53:44 +01:00
Michael Niedermayer
b0635e2fcf movtextenc: fix pointer messup and out of array accesses
Fixes Ticket2187

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-05 21:54:02 +01:00
Michael Niedermayer
f7b7f021e5 Merge remote-tracking branch 'rdp/combined'
* rdp/combined:
  hdyc col
  dshow: use standardized raw pixel format lookup

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-05 21:00:53 +01:00
Michael Niedermayer
c2dd5a18b2 ljpegenc: allocate needed scratch-buffer
Fixes null pointer dereference
Fixes Ticket2207

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-05 18:52:07 +01:00
Michael Niedermayer
a8343bfb6a riff: fix infinite loop
Fixes Ticket2241

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-05 18:31:27 +01:00
Diego Biurrun
70b348ec5b configure: Group all hwaccels together in a separate variable 2013-02-05 17:01:06 +01:00
Diego Biurrun
c9f933b5b6 Add av_cold attributes to arch-specific init functions 2013-02-05 17:01:05 +01:00
Michael Niedermayer
2b20397e1f libmpcodecs/vd_ffmpeg.h: remove, its unused and removed upstream
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-05 15:54:39 +01:00
multiple authors
81e357db62 libmpcodecs/vf_pullup: update to latest version from mplayer
Please see mplayer svn for authorship and individual commits

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-05 15:41:19 +01:00
multiple authors
13afcdd00e libmpcodecs/vf_uspp: update to latest version from mplayer
Please see mplayer svn for authorship and individual commits

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-05 15:41:00 +01:00
multiple authors
3ce3d4cc3c libmpcodecs/vf_unsharp: update to latest version from mplayer
Please see mplayer svn for authorship and individual commits

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-05 15:40:43 +01:00
multiple authors
7a4885600f libmpcodecs/vf_spp: update to latest version from mplayer
Please see mplayer svn for authorship and individual commits

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-05 14:53:53 +01:00
multiple authors
14132599a3 libmpcodecs/vf_sab: update to latest version from mplayer
Please see mplayer svn for authorship and individual commits

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-05 14:47:33 +01:00
multiple authors
fe8bc6ddfc libmpcodecs/pullup: update to latest version from mplayer
Please see mplayer svn for authorship and individual commits

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-05 14:47:13 +01:00
multiple authors
8f7e3e678b libmpcodecs/vf_noise: update to latest version from mplayer
Please see mplayer svn for authorship and individual commits

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-05 14:18:15 +01:00
multiple authors
3ca46d0c10 libmpcodecs/vf_pp7:update to latest version from mplayer
Please see mplayer svn for authorship and individual commits

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-05 14:17:28 +01:00
multiple authors
fdd574ed3f libmpcodecs/vf_qp: update to latest version from mplayer
Please see mplayer svn for authorship and individual commits

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-05 14:17:17 +01:00
multiple authors
b7e6622971 libmpcodecs/vf_mcdeint: update to latest version from mplayer
Please see mplayer svn for authorship and individual commits

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-05 14:00:20 +01:00
multiple authors
25ed6e99d7 libmpcodecs/vf_ilpack: update to latest version from mplayer
Please see mplayer svn for authorship and individual commits

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-05 13:59:47 +01:00
multiple authors
011702f5a9 libmpcodecs/vf_ivtc: update to latest version from mplayer
Please see mplayer svn for authorship and individual commits

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-05 13:59:34 +01:00
multiple authors
0b36a05c17 libmpcodecs/vf_fspp: update to latest version from mplayer
Please see mplayer svn for authorship and individual commits

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-05 13:44:53 +01:00
multiple authors
2b9eb6167b libmpcodecs/av_helpers: update to latest version from mplayer
Please see mplayer svn for authorship and individual commits

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-05 13:43:35 +01:00
multiple authors
e02c713fb1 libmpcodecs/vf_filmdint: update to latest version from mplayer
Please see mplayer svn for authorship and individual commits

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-05 13:40:08 +01:00
multiple authors
5d0115118d libmpcodecs/vf_divtc: update to latest version in mplayer
Please see mplayer svn for authorship and individual commits

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-05 13:39:46 +01:00
multiple authors
99a0813a7e libhmpcodec/mp_msg: update to latest from mplayer
Please see mplayer svn for authorship and individual commits

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-05 13:02:28 +01:00
Diego Biurrun
25841dfe80 Use ptrdiff_t instead of int for {avg, put}_pixels line_size parameter.
This avoids SIMD-optimized functions having to sign-extend their
line size argument manually to be able to do pointer arithmetic.
2013-02-05 12:59:12 +01:00
multiple authors
745cb39d05 libmpcodecs/help_mp: update to latest from mplayer
Please see mplayer svn for authorship and individual commits

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-05 12:58:20 +01:00
multiple authors
a54737f7ea libmpcodecs/cpudetect: update to latest from mplayer
Please see mplayer svn for authorship and individual commits

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-05 12:55:10 +01:00
Michael Niedermayer
0b6f34cc9f Merge remote-tracking branch 'qatar/master'
* qatar/master:
  avfilter: x86: consistent filenames for filter optimizations

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-05 11:56:48 +01:00
multiple authors
103a2c2b17 libmpcodecs: update img_format.* & mp_image.* to latest from mplayer
Please see mplayer svn for authorship and individual commits

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-05 03:30:17 +01:00
multiple authors
708ed15d8c libmpcodecs/vf_stereo3d: update to latest version from mplayer
Merged commits:
commit 9a2978f37bcdf7a28235c9322e9e5a4fe15e2ff2
Author: cehoyos <cehoyos@b3059339-0415-0410-9bf9-f77b7e298cf2>
Date:   Thu Jan 31 12:12:36 2013 +0000

    Add more vf_stereo3d output formats.

    Adds high quality green-magenta and yellow-blue dubois
    anaglyph 3D output support.

    Patch by thomas schorpp, thomas.schorpp gmail

    git-svn-id: svn://svn.mplayerhq.hu:/mplayer/trunk@35906 b3059339-0415-0410-9bf9-f77b7e298cf2

commit 2c50e66460d8d3ec460cbf9425f252f75ea1022d
Author: reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>
Date:   Sun Aug 12 17:31:47 2012 +0000

    Add another anaglyph color variant.

    Patch by Bob [mpbob ezpi net].

    git-svn-id: svn://svn.mplayerhq.hu:/mplayer/trunk@35080 b3059339-0415-0410-9bf9-f77b7e298cf2

commit 71c5261c2ac63e6e29a5a899b52d1ec4bdb62c4e
Author: reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>
Date:   Sun Aug 12 17:25:30 2012 +0000

    Convert comments into designated initializers.

    That is a simple way to ensure they always correspond
    to what the compiler actually does.

    git-svn-id: svn://svn.mplayerhq.hu:/mplayer/trunk@35079 b3059339-0415-0410-9bf9-f77b7e298cf2

commit d7164c5e1ba524c2a6983d979ef57e193b2c8a9f
Author: reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>
Date:   Sun Aug 12 17:20:24 2012 +0000

    Make compiler give the ana_coeff array automatically the right size.
    Makes adding more colour schemes easier.

    git-svn-id: svn://svn.mplayerhq.hu:/mplayer/trunk@35078 b3059339-0415-0410-9bf9-f77b7e298cf2

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-05 03:05:54 +01:00
Michael Niedermayer
5a83115130 ffv1: check for malloc failure
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-05 00:37:20 +01:00
Michael Niedermayer
b77d94dc6c ffv1enc: check for malloc failure
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-05 00:37:20 +01:00
Stefano Sabatini
0e2b0033f1 doc/filters: apply various rendering changes to the showspectrum docs
In particular: always use @table @samp for showing constant tables, add a
few empty lines for improving readability, and specify default value when
missing.
2013-02-05 00:12:55 +01:00
Stefano Sabatini
2d22e97f6d doc/filters: fix @item syntax in showspectrum docs
In particular, fix warnings:
** Unknown command with braces `@item' (in doc/filters.texi l. 60XX)
2013-02-05 00:01:03 +01:00
Michael Niedermayer
fc0d069feb flacdec: silence several "warning: X may be used uninitialized in this function"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-04 22:59:02 +01:00
Michael Niedermayer
96a08d8627 wmavoice: silence may be used uninitialized warnings
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-04 22:59:02 +01:00
Diego Biurrun
e66240f22e avfilter: x86: consistent filenames for filter optimizations 2013-02-04 15:00:47 +01:00
Rudolf Polzer
81f2549ec9 lavfi/showspectrum: display multiple channels in separate row
The showspectrum filter gets multiple channel (any count) support.

Signed-off-by: Rudolf Polzer <divverent@xonotic.org>
2013-02-04 13:37:43 +00:00
Michael Niedermayer
353bd158f5 sws: Fix "warning: comparison of distinct pointer types lacks a cast"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-04 14:34:13 +01:00
Michael Niedermayer
63c61f0be0 vc1dec: Fix 2 "warning: may be used uninitialized in this function"
Initialize pointers to NULL for safety

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-04 14:30:40 +01:00
Michael Niedermayer
c67ddb56da Merge remote-tracking branch 'mjbshaw/master'
* mjbshaw/master:
  libopenjpegenc: make dci compliant j2c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-04 13:22:56 +01:00
Michael Niedermayer
a2bff49e26 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mpegvideo: simplify REBASE_PICTURE

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-04 12:37:15 +01:00
Michaël Cinquin
60f06f986f libopenjpegenc: make dci compliant j2c
Signed-off-by: Michael Bradshaw <mjbshaw@gmail.com>
2013-02-03 23:53:39 -07:00
Anton Khirnov
d9df93efbf mpegvideo: simplify REBASE_PICTURE
Always evaluate to NULL when the source Picture is not located in the
MpegEncContext.picture array. That will only happen for
next/last_picture_ptr when updating the thread context during h264 frame
threaded decoding, where they will point to elements of ref_list. Since
ref_list is not copied during updating the context and is invalid until
it is constructed for the current slice, there is no point in doing
anything complicated with next/last_picture_ptr, as they will get
updated when the ref_list is filled.
2013-02-04 06:17:15 +01:00
Michael Niedermayer
b5f544a0f9 swr: Dont use floats for S32->S32 when possible
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-04 04:11:46 +01:00
Michael Niedermayer
be989f9236 swr: reorder init code to make rematrix status available earlier
This also makes some other fields available earlier which may
be usefull one day

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-04 04:05:59 +01:00
Michael Niedermayer
24244cec2f swr-test: Fix clip to 32bit
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-04 04:05:59 +01:00
Michael Niedermayer
b8c55590d5 swr/resample: fix integer overflow, add missing cast
The effects of this are limited to numeric errors in the output

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-04 04:05:59 +01:00
Michael Niedermayer
91debec976 swr/resample: fix filter rounding and cliping for s32
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-04 04:05:59 +01:00
Stefano Sabatini
cf7b71b0b8 doc/filters: reformat various filter tables items
Improve overall consistency.
2013-02-03 23:16:20 +01:00
Dave Rice
71956371a7 lavu/parseutils: add digital cinema frame sizes
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2013-02-03 22:57:04 +01:00
Michael Niedermayer
d106679fb5 qdm2: disable superblocktype_2_3==0 code
The code is untested and contained bugs, we need a sample if any files
use this branch.

Suggested-by: Roberto Togni
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-03 19:59:00 +01:00
Michael Niedermayer
ccfd8cffe8 qdm2: Fix data type used in multiplication.
Avoid unintended truncation.
Fixes CID700555

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-03 19:56:04 +01:00
Rudolf Polzer
773fc6e0c7 lavfi/showspectrum: set default height to 512
Only power-of-two FFTs are supported; so to get a full spectrum
(that is, one up to Nyquist), the height must be a power of two.

Therefore, change the default height from 480 to 512.

Signed-off-by: Rudolf Polzer <divverent@xonotic.org>
2013-02-03 17:05:31 +00:00
Michael Niedermayer
4d37d2bfc5 put_vp_no_rnd_pixels8_l2_mmx: fix type
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-03 17:21:06 +01:00
Dave Rice
fe63f3d301 doc/syntax: add missing frame sizes
Adding missing frame sizes used in parseutils.c to the documentation.

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2013-02-03 17:08:32 +01:00
Dave Rice
3bba91d32d doc/syntax: fix frame rate documentation
This patch corrects a mistake in the documentation and aligns the
documentation of frame rates to the values that exist in parseutils.c.

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2013-02-03 17:08:20 +01:00
Stefano Sabatini
1897109c00 lavfi/pad: add support to named options 2013-02-03 17:01:56 +01:00
Stefano Sabatini
c44281906a ffplay: remove misleading comment from audio_decode_frame() 2013-02-03 17:01:56 +01:00
Stefano Sabatini
02af4e9a97 ffplay: rename audio_decode_frame() variable "pts" to "audio_clock0"
The new name better expresses what the variable is.
2013-02-03 17:01:56 +01:00
Stefano Sabatini
6e32b377bb ffplay: remove pts_ptr argument from audio_decode_frame()
The argument is no longer used outside the function. Simplify.
2013-02-03 17:01:56 +01:00
Michael Niedermayer
cb573f7fbc avcodec/x86: Add daniels copyright to the recent gcc->yasm convertions he did.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-03 13:50:44 +01:00
James Almer
13eb9fcf56 build: Remove superfluous MAKE variable for the build suffix
Use BUILDSUF instead.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-03 13:08:36 +01:00
James Almer
d1511c02f4 proresdsp: Fix checkheaders
It's been broken since commit ac89875

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-03 13:08:36 +01:00
Carl Eugen Hoyos
90020d7f4b lavf/segment: use correct spelling and value for EXT-X-ALLOW-CACHE tag
Replace wrong "EXT-X-ALLOWCACHE" with "EXT-X-ALLOW-CACHE", and value 1/0
with YES/NO, as per spec.

Fix trac ticket #2228.

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2013-02-03 11:17:35 +01:00
Stefano Sabatini
c91f1f3f92 ffplay: drop redundant NULL sws_freeContext() check in stream_close()
sws_freeContext() already checks for NULL, simplify.
2013-02-03 11:15:27 +01:00
Michael Niedermayer
0cecaa9e2e ffmpeg: free attachments, fix memleak
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-03 03:09:23 +01:00
Carl Eugen Hoyos
a60530e3ee Require at least three frames to autodetect loas. 2013-02-02 22:36:25 +01:00
Michael Niedermayer
695af8eed6 h264: skip error concealment when SPS and slices are mismatching
Fixes out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-02 21:13:25 +01:00
Michael Niedermayer
0e9b9a6748 flacdec: skip in stream header packets
This prevents warning messages on chained oggs with some demuxers

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-02 19:58:13 +01:00
Nicolas George
23686c72e5 doc: update filter_design.txt to API changes. 2013-02-02 19:16:11 +01:00
Michael Niedermayer
cdc48860a8 h264: silence warning about array index being out of bounds
The index is not out of bounds, adding an assert makes gcc
realize this.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-02 16:20:19 +01:00
Michael Niedermayer
4be0b91094 Merge remote-tracking branch 'cus/stable'
* cus/stable:
  ffplay: step to next frame if paused when seeking
  ffplay: move up pause functions
  ffplay: remember last window dimensions
  ffplay: fix order of setting show_mode
  ffplay: dynamically allocate audio buffer

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-02 16:14:21 +01:00
Stefano Sabatini
6d9c21dc0e doc/indevs: add missing final dot in v4l2 option value description
Fix inconsistency.
2013-02-02 15:32:34 +01:00
Stefano Sabatini
fd6b6efbd2 lavfi/crop: fix help message for the keep_aspect option 2013-02-02 15:32:34 +01:00
Stefano Sabatini
6032a1c977 ffplay: extend doxy for audio_decode_frame() 2013-02-02 15:32:34 +01:00
Nicolas George
55910e1894 lavd/alsa: simplify reordering functions definition. 2013-02-02 14:13:11 +01:00
Michael Niedermayer
6726fb6533 avfilter/vf_hqdn3d.h: restore author attribution, history and project name
See git blame of pre split avfilter/vf_hqdn3d.c

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-02 13:18:10 +01:00
Michael Niedermayer
d593f2b241 avfilter/x86/vf_hqdn3d_init: fix author attribution & project name
Reference: 7a1944b907

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-02 13:18:09 +01:00
Michael Niedermayer
0d13a7b786 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  vf_hqdn3d: x86: Add proper arch optimization initialization

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-02 13:18:01 +01:00
Marton Balint
4ea7fbb2ec ffplay: step to next frame if paused when seeking
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-02-02 12:38:15 +01:00
Marton Balint
c5eab4bb70 ffplay: move up pause functions
No change in functionality.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-02-02 12:38:14 +01:00
Marton Balint
5de3f724f1 ffplay: remember last window dimensions
After this change the dimensions of single image videos will be remembered when
coming back from full screen. The issue was mentioned in ticket #2174.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-02-02 12:38:14 +01:00
Marton Balint
4fd6e5af1e ffplay: fix order of setting show_mode
Without the fix the refresh event may have got called with unset show mode.

Fixes ticket #2174.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-02-02 12:38:14 +01:00
Marton Balint
571ef42dd4 ffplay: dynamically allocate audio buffer
We simply remove the fixed length VideoState->audio_buf2 and use
the previously unused VideoState->audio_buf1.

Fixes ticket #2191.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-02-02 12:38:14 +01:00
Carl Eugen Hoyos
b45a3e167f Map the interlaced flag of yuv4mpeg streams to AVCodecContext->field_order.
Fixes a part of ticket #2190.
2013-02-02 12:32:04 +01:00
Steven Boswell II
6289a8296a build-sys: Fix pkgconfig files when ffmpeg is built with --build-suffix
Tested-on: Fedora Core 14, 16, and 17.
Tested-on: Ubuntu by commiter

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-02 03:24:16 +01:00
Carl Eugen Hoyos
985e93a865 Do not fail for mixed interlaced / non-interlaced YUV4MPEG streams. 2013-02-02 00:01:48 +01:00
Ronald S. Bultje
8af915c21b vp56: remove clear_blocks call, and clear alpha plane U/V DC only.
The non-alpha and alpha-Y planes are cleared in the idct_put/add()
calls. For the alpha U/V planes, we only care about the DC for entropy
context prediction purposes, the rest of the data is unused.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-01 23:51:34 +01:00
Carl Eugen Hoyos
6a50e8a190 Do not change codec in flv streams if the user has forced a codec.
Fixes ticket #2218.
2013-02-01 23:27:15 +01:00
Matthieu Bouron
5a67e30b1c ffmpeg: fix broken channel_layout option
Fixes ticket #2163.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-01 22:54:18 +01:00
Stefano Sabatini
423856c4ae doc/filters: fix syntax and typo for the afade curve option 2013-02-01 18:52:42 +01:00
Stefano Sabatini
986540b65f doc/filters: create a dedicated examples section for lut*, and itemize 2013-02-01 18:35:15 +01:00
Stefano Sabatini
902fa77fd7 doc/filters: fix syntax and description for the lut* options 2013-02-01 18:32:21 +01:00
Stefano Sabatini
b868275ddb doc/muxers: fix level for the segment options subsection
Properly declare it like a @subsection, rather than as a @section.
2013-02-01 18:14:05 +01:00
Carl Eugen Hoyos
99eedfc400 doc/muxers.texi: Fix mp3 picture attachment documentation. 2013-02-01 17:54:48 +01:00
Michael Niedermayer
911e270688 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  Use proper "" quotes for local header #includes
  ppc: fmtconvert: Drop two unused variables.
  bink demuxer: set framerate.

Conflicts:
	libavcodec/kbdwin.c
	libavcodec/ppc/fmtconvert_altivec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-01 14:34:18 +01:00
Michael Niedermayer
1bc51a7a74 Merge commit '1730ca2eca42974af0c29f38a0770997cba2f0da'
* commit '1730ca2eca42974af0c29f38a0770997cba2f0da':
  bink demuxer: check malloc return value

See:
commit e400b95b32
Author: Paul B Mahol <onemda@gmail.com>
Date:   Sat Jun 9 10:57:14 2012 +0000

    bink: check av_mallocz() return value

    Signed-off-by: Paul B Mahol <onemda@gmail.com>

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-01 14:26:44 +01:00
Michael Niedermayer
69a6eddd60 Merge commit 'f2960097e42ddf9a356bab6547f87906f6999e0a'
* commit 'f2960097e42ddf9a356bab6547f87906f6999e0a':
  bink: fix a check for the first frame.
  doc/developer: Drop obsolete MPlayer reference
  doc/developer: Add ISC license to list of acceptable licenses
  doc/developer: Add web links for all suggested licenses

Conflicts:
	doc/developer.texi

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-01 14:15:30 +01:00
Diego Biurrun
76d90125cd vf_hqdn3d: x86: Add proper arch optimization initialization 2013-02-01 13:11:45 +01:00
Diego Biurrun
6c1a7d07eb Use proper "" quotes for local header #includes 2013-02-01 12:51:15 +01:00
Diego Biurrun
4eef2ed707 ppc: fmtconvert: Drop two unused variables. 2013-02-01 12:51:13 +01:00
Anton Khirnov
9ec8971060 bink demuxer: set framerate. 2013-02-01 12:42:17 +01:00
Anton Khirnov
1730ca2eca bink demuxer: check malloc return value 2013-02-01 12:41:38 +01:00
Anton Khirnov
f2960097e4 bink: fix a check for the first frame.
Packet pts is a very unreliable indicator, use
AVCodecContext.frame_number instead.
2013-02-01 12:41:31 +01:00
Diego Biurrun
8787847dc6 doc/developer: Drop obsolete MPlayer reference 2013-02-01 11:17:24 +01:00
Diego Biurrun
8b0fda180e doc/developer: Add ISC license to list of acceptable licenses 2013-02-01 11:17:21 +01:00
Diego Biurrun
cb30bf7f03 doc/developer: Add web links for all suggested licenses 2013-02-01 11:16:55 +01:00
Michael Niedermayer
086566a557 dict: fix memleak
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-01 03:56:51 +01:00
Michael Niedermayer
ffd02d0c19 Merge remote-tracking branch 'mjbshaw/master'
* mjbshaw/master:
  libopenjpegenc: simplify switch statement
  libopenjpegenc: add support for pix fmt gbrp (8-16 bit)

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-01 02:33:42 +01:00
Allan Kristensen
4789c25d83 matroska: fixed missing S_DVBSUB subtitles 2013-02-01 01:49:04 +01:00
Sebastian Sandberg
c6779c5131 vc1dec: fieldtx is only valid for interlaced frames
the fieldtx_plane is not cleared for interlaced fields

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-01 00:48:05 +01:00
Michael Bradshaw
28f36dce3e libopenjpegenc: simplify switch statement
Signed-off-by: Michael Bradshaw <mjbshaw@gmail.com>
2013-01-31 16:03:58 -07:00
Michael Bradshaw
c58c67398d libopenjpegenc: add support for pix fmt gbrp (8-16 bit)
Signed-off-by: Michael Bradshaw <mjbshaw@gmail.com>
2013-01-31 15:55:00 -07:00
Michael Niedermayer
131fac1c12 vc1dec: fix block_off
Fixes corruption of motion_val

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-31 23:22:11 +01:00
Stefano Sabatini
b999774f0b doc/indevs: document v4l2 options
Reviewed-By: Giorgio Vazzana <mywing81@gmail.com>
2013-01-31 22:13:08 +01:00
Stefano Sabatini
349e7f423f doc/indevs: itemize examples for the v4l2 device 2013-01-31 22:13:08 +01:00
Nicolas George
d2ccab5f8a lavfi/buffersrc: forward filter_frame errors.
Note: The ret variable was unused.
2013-01-31 21:03:54 +01:00
Nicolas George
dcce43340f lavfi/af_amerge: set outbuf->audio->channels.
The value is lost because of avfilter_copy_buffer_ref_props().

Fix trac ticket #2217.
2013-01-31 21:03:54 +01:00
Nicolas George
ae14887ee7 lavfi/af_amerge: check for buffer queue overflows.
Without that test, ff_bufqueue_add silently discards the
oldest buffer, that leaves in[i].nb_samples inconsistent,
and causes later a segfault.
2013-01-31 21:03:54 +01:00
Nicolas George
6560625f0a lavfi/bufferqueue: add ff_bufqueue_is_full(). 2013-01-31 21:03:54 +01:00
Michael Niedermayer
dd87d4a318 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  x86: hpel: Move {avg,put}_pixels16_sse2 to hpeldsp
  configure: Add a comment indicating why uclibc is checked before glibc

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-31 20:03:36 +01:00
Michael Niedermayer
01d012ba3d Merge commit '29f1fa74225e9fdbab6d590857edbecb51cf74da'
* commit '29f1fa74225e9fdbab6d590857edbecb51cf74da':
  configure: Move newlib libc check before mingw libc check
  avisynth: Change demuxer name to avoid conflicts with AVS

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-31 19:52:58 +01:00
Michael Niedermayer
324498f824 Merge commit 'a65f965c04bfa27adedc0409c14cc05903f483d0'
* commit 'a65f965c04bfa27adedc0409c14cc05903f483d0':
  mpegvideo: Do REBASE_PICTURE with byte pointers

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-31 19:19:37 +01:00
Michael Niedermayer
ed341549bb Merge commit 'a5ba798c16d0614d982a76755fdd72b37d437170'
* commit 'a5ba798c16d0614d982a76755fdd72b37d437170':
  dsputil: remove unused functions copy_block{2, 4, 8, 16}.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-31 19:00:29 +01:00
Stefano Sabatini
7e0fc1a24f CREDITS: redirect to Git log, remove current outdated content
All the removed names are already mentioned in the commit log, or are
listed as copyright holders in the contributed files.

Amongst the removed names, the following ones were not listed in the
commit log:

Mario Brito (Xan DPCM decoder)
Brian Foley (DSP utils optimizations)
Vladimir Gneushev (lavf/lavc)
Juan J. Sierralta (H.263)
Ewald Snel (qdm2, cinepak)
Lionel Ulmer (DSP utils optimizations)
2013-01-31 18:02:52 +01:00
Paul B Mahol
22fad4e2b8 doc/filters: fix afade cuve types listing
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-31 16:18:50 +00:00
Stefano Sabatini
e47114d545 lavfi: increment max number of registered filters from 128 to 256
The total number of implemented filters is already over 128.
2013-01-31 16:47:37 +01:00
Stefano Sabatini
a842dc632e doc/indevs: apply misc fixes to the v4l2 documentation
Reviewed-by: Giorgio Vazzana <mywing81@gmail.com>
2013-01-31 15:29:53 +01:00
Giorgio Vazzana
514216d8a9 lavd/v4l2: read the correct time per frame from devices that support a standard
Generally speaking, there are two types of v4l2 devices [1]:

1) devices that support a standard, like PAL or NTFS (tv cards, for example). For
this class of devices the framerate is fixed by the standard (for example PAL uses
25 fps) and the v4l2 driver cannot usually negotiate a different framerate (unless
it can skip frames on the driver side, to save I/O bandwidth).

2) devices for which the notion of standard does not make sense (webcams, for example).
For these devices it is usually possibile to request a desidered framerate.

In either case, the desidered frame rate can be requested when the VIDIOC_G_PARM
ioctl returns the V4L2_CAP_TIMEPERFRAME flag in the capability field.

Currently the code does not check for V4L2_CAP_TIMEPERFRAME and supports only the
second category of devices, returning a time per frame of 0/0 for devices in the
first group that do not permit to negotiate the framerate.

This patch adds support to read the correct framerate in all cases.

[1] http://linuxtv.org/downloads/v4l-dvb-apis/standard.html

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2013-01-31 15:29:53 +01:00
Paul B Mahol
402ea625ab lavfi/biquads: remove pointless casts
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-31 13:16:32 +00:00
Paul B Mahol
b70ea49ca3 Port biquads filters from SoX
Adds allpass, bass, bandpass, bandreject, biquad,
equalizer, highpass, lowpass and treble filter.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-31 12:13:55 +00:00
Giorgio Vazzana
ff23b76899 lavd/v4l2: add list_standards option
Since the user is expected to choose the standard by name (with -standard
option), add the possibility to list all the supported standards.

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2013-01-31 12:38:03 +01:00
Stefano Sabatini
dcfbe1e0b6 doc/eval: sort functions by name 2013-01-31 12:12:15 +01:00
Stefano Sabatini
41e5e28daf doc/eval: fix/extend documentation for taylor() function 2013-01-31 12:09:47 +01:00
Stefano Sabatini
d99bc84752 doc/eval: fix/extend documentation for root() function 2013-01-31 12:09:13 +01:00
Diego Biurrun
52acd79165 x86: hpel: Move {avg,put}_pixels16_sse2 to hpeldsp 2013-01-31 11:19:23 +01:00
Diego Biurrun
29f1fa7422 configure: Move newlib libc check before mingw libc check
On Cygwin systems MinGW headers can be present if the corresponding
packages have been installed. Since the MinGW libc is checked for
first, this results in newlib getting misdetected as MinGW libc.
2013-01-31 11:19:23 +01:00
Diego Biurrun
197252f1c5 configure: Add a comment indicating why uclibc is checked before glibc 2013-01-31 11:19:23 +01:00
Diego Biurrun
0f5b0b4178 avisynth: Change demuxer name to avoid conflicts with AVS 2013-01-31 11:19:22 +01:00
Martin Storsjö
a65f965c04 mpegvideo: Do REBASE_PICTURE with byte pointers
REBASE_PICTURE (more specifically, this half of it) takes a Picture
pointer that points into one larger struct, finds the offset of
that Picture within the struct and finds the corresponding field
within another instance of a similar struct.

The pointer difference "pic - (Picture*)old_ctx" is a value given
in sizeof(Picture) units, and when applied back on
(Picture*)new_ctx gets multiplied back with sizeof(Picture). Many
compilers seem to optimize out this division/multiplication, but
not all do.

GCC 4.2 on OS X doesn't seem to remove the division/multiplication,
therefore the new pointer didn't turn out to point to exactly
the right place in the new struct since it only had sizeof(Picture)
granularity (and the Picture is not aligned on a sizeof(Picture)
boundary within the encompassing struct). This bug has been present
before 47318953d as well - with H264, pointers to h->ref_list[0][0]
pointed to 88 bytes before h->ref_list[0][0] after the rebase. After
shrinking Picture, the difference ended up even larger, making
writes via such a Picture pointer overwrite other fields at random
in H264Context, ending up in crashes later.

This fixes H264 multithreaded decoding on OS X with GCC 4.2.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-31 10:51:36 +02:00
Michael Niedermayer
cdf0877bc3 h264/cabac: check loop index
fix out of array read

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-31 04:21:26 +01:00
Michael Niedermayer
fe6767f849 asfdec: fix integer overflow in packet_replic_size check
Fixes assertion failure

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-31 03:37:43 +01:00
Mirjana Vulin
2b6a8187a6 mips: optimization for float aac decoder (core module)
Signed-off-by: Mirjana Vulin <mvulin@mips.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-31 01:23:09 +01:00
Michael Niedermayer
9df9420dea interplayvideo: Free previous frames on resolution changes.
Fixes out of array reads

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-31 00:46:04 +01:00
Piotr Bandurski
9c50e69385 loco: fix rgba on big-endian
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-31 00:02:17 +01:00
Michael Niedermayer
a084884b62 flashsv: clear blocks array on reallocation
Fixes use of uninitialized data

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-30 23:50:32 +01:00
Paul B Mahol
0dcfccaa69 auenc: strict check for supported codec
Also check number of streams and give error message why muxing failed.
This prevents muxing unsupported codec with known and supported tag.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-30 22:17:52 +00:00
Paul B Mahol
10e4905dd9 auenc: remove put_au_header() and merge its code into au_write_header
Such level of abstraction is pointless.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-30 22:17:52 +00:00
Michael Niedermayer
984add64a4 wma: check byte_offset_bits
Fixes assertion failure

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-30 23:12:57 +01:00
Michael Niedermayer
033f1644b5 fixup_vorbis_headers: add missing malloc failure check
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-30 20:04:14 +01:00
Paweł Hajdan, Jr
0451ff295a oggparsevorbis: use av_realloc consistently
Memory passed to av_realloc cannot be allocated using memalign.

From realloc(3):

The realloc() function changes the size of the memory block pointed to
by ptr to size bytes. (...) Unless ptr is NULL, it must have been returned
by an earlier call to malloc(), calloc() or realloc().

The issue has been found by debugallocation, a part of google-perftools:
http://code.google.com/p/gperftools/ .

Signed-off-by: Paweł Hajdan, Jr <phajdan@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-30 19:54:35 +01:00
Michael Niedermayer
4a2da83a78 dnxhddec: fix integer overflow / index check
Fixes out of array read

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-30 19:32:18 +01:00
Michael Niedermayer
b926cc7834 mss3: prevent AC state from becoming invalid in rac_normalise()
Fixes division by zero

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-30 18:14:39 +01:00
Michael Niedermayer
32de283103 avstring: fix "warning: return discards const qualifier from pointer target type"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-30 16:54:15 +01:00
Michael Niedermayer
d2e0a276d5 msrledec: merge switches
More speedup and fixes 'may be used uninitialized in this function' warnings

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-30 16:42:17 +01:00
Michael Niedermayer
dbaae33c2c msrledec: move loop into switch
speeds up code and allows more simplifications

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-30 16:39:35 +01:00
Michael Niedermayer
c2992b7053 msrledec: move output pointer test up
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-30 16:33:45 +01:00
Michael Niedermayer
d8a7c4958e mpegvideo_enc: factor expression out
Fixes "warning: dc[0..5] may be used uninitialized in this function"

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-30 16:24:33 +01:00
Michael Niedermayer
afb4bc3d29 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  movenc: Simplify code by using avio_wb24
  bfin: unbreak compilation

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-30 14:49:49 +01:00
Ronald S. Bultje
a5ba798c16 dsputil: remove unused functions copy_block{2, 4, 8, 16}. 2013-01-30 14:18:06 +01:00
Martin Storsjö
61d36761ef movenc: Simplify code by using avio_wb24
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-30 13:45:45 +02:00
Carl Eugen Hoyos
91f359292a Correctly mark non-default streams when muxing matroska.
Fixes ticket #1815.

Reviewed-by: Hendrik Leppkes
2013-01-30 10:28:53 +01:00
Michael Niedermayer
71f8d70456 dirac/x86: fix compile without yasm
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-30 06:47:09 +01:00
Michael Niedermayer
4d3d362549 dirac/x86: fix compile without inline asm
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-30 02:51:59 +01:00
Carl Eugen Hoyos
3c3d68a976 Fix 1bpp palettized png with width not a multiple of 8.
Fixes ticket #2204.
2013-01-30 00:49:16 +01:00
Michael Niedermayer
dc8dd2f6e9 sanm: Check MV before using them.
Fixes out of array reads

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-29 22:36:18 +01:00
Paweł Hajdan, Jr
1d81f7448c dict.c: use av_mallocz instead of av_realloc
Memory passed to av_realloc must come from malloc,
calloc or realloc, and not e.g. memalign. realloc(3):

The realloc() function changes the size of the memory block pointed to
by ptr to size bytes. (...) Unless ptr is NULL, it must have been
returned by an earlier call to malloc(), calloc() or realloc().

The issue has been found by debugallocation, a part of google-perftools:
http://code.google.com/p/gperftools/ .

This makes fate pass when using LD_PRELOAD-ed debugallocation.

See also earlier discussion
http://ffmpeg.org/pipermail/ffmpeg-devel/2013-January/137234.html

Signed-off-by: Paweł Hajdan, Jr <phajdan@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-29 20:23:02 +01:00
Michael Niedermayer
0dfc01c2bb huffyuvdec: Skip len==0 cases
Fixes vlc decoding for hypothetical files that would contain such cases.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-29 19:11:28 +01:00
Michael Niedermayer
4420b41442 huffyuvdec: check for and propagate failures from inside generate_joint_tables()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-29 18:18:51 +01:00
Michael Niedermayer
f67a0d1152 huffyuvdec: Check init_vlc() return codes.
Prevents out of array writes

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-29 17:57:58 +01:00
Michael Niedermayer
99b1b2b1c6 r3d: check that sampling rate is non negative.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-29 17:13:45 +01:00
Michael Niedermayer
df92ac1852 r3d: fix division by 0 with 0 sample rate
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-29 16:57:50 +01:00
Michael Niedermayer
3cd9849d9c eval: fix 'warning: ignoring return value of strtod, declared with attribute warn_unused_result'
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-29 16:33:32 +01:00
Michael Niedermayer
ebe368d5d8 ac3enc: fix 'warning: block0 may be used uninitialized in this function'
The pointer is also initialized to NULL for safety.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-29 16:15:02 +01:00
Michael Niedermayer
036b9ee1c9 oggenc: fix "oggstream may be used uninitialized in this function" warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-29 15:57:42 +01:00
Luca Barbato
4e0bc996d9 bfin: unbreak compilation
Added a missing header file.
2013-01-29 14:59:21 +01:00
Michael Niedermayer
5068bcda95 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  vf_delogo: fix copying the input frame.

Conflicts:
	libavfilter/vf_delogo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-29 14:58:49 +01:00
Michael Niedermayer
d1bbd304bf Merge commit 'f81c37e40fe3236d54da12aef9cdba48ba70ec31'
* commit 'f81c37e40fe3236d54da12aef9cdba48ba70ec31':
  vf_delogo: fix an uninitialized read.
  h264: remove obsolete comment.
  mpegvideo: remove some unused variables from Picture.
  utvideoenc/v410enc: do not set AVFrame.reference.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-29 14:25:24 +01:00
Michael Niedermayer
3c8085dc42 Merge commit 'e6b1c3bbe7082c71ea8ee8ac83698c156c9e4838'
* commit 'e6b1c3bbe7082c71ea8ee8ac83698c156c9e4838':
  pthread: make ff_thread_release_buffer idempotent.
  mvi: set framerate

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-29 14:19:56 +01:00
Michael Niedermayer
31d8d61f59 Merge commit 'aec50f79e7460340a148a3096fe212d67edc2c64'
* commit 'aec50f79e7460340a148a3096fe212d67edc2c64':
  rawdec: use AVPALETTE_SIZE instead of magic constants.
  mimic: remove a pointless cast.
  mdec: return meaningful error codes.

Conflicts:
	libavcodec/rawdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-29 14:10:11 +01:00
Michael Niedermayer
f02033b98b Merge commit 'f713411d4cfbd9c467aeda77b16ca6bc4db55d10'
* commit 'f713411d4cfbd9c467aeda77b16ca6bc4db55d10':
  mdec: cosmetics, reformat

Conflicts:
	libavcodec/mdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-29 13:57:57 +01:00
Michael Niedermayer
14aa358c20 Merge commit '098eed95bc1a6b2c8ac97f126f62bb74699670cf'
* commit '098eed95bc1a6b2c8ac97f126f62bb74699670cf':
  mdec: merge mdec_common_init() into decode_init().
  eatgv: use fixed-width types where appropriate.
  x86: Simplify some arch conditionals
  bfin: Separate VP3 initialization code

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-29 13:48:38 +01:00
Michael Niedermayer
8265c0f43a Merge commit 'f550583c00e231b587d8ef98451cfbb6b6561eb6'
* commit 'f550583c00e231b587d8ef98451cfbb6b6561eb6':
  bfin: update VP3 idct

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-29 13:40:44 +01:00
Paul B Mahol
8a6ae87b99 lavc: move deprecated audio_resample* bellow
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-29 11:08:39 +00:00
Anton Khirnov
7194330bcd vf_delogo: fix copying the input frame.
CC:libav-stable@libav.org
2013-01-29 07:33:02 +01:00
Anton Khirnov
f81c37e40f vf_delogo: fix an uninitialized read.
CC:libav-stable@libav.org
2013-01-29 07:32:54 +01:00
Anton Khirnov
76e74e4831 h264: remove obsolete comment. 2013-01-29 07:32:47 +01:00
Anton Khirnov
47318953dd mpegvideo: remove some unused variables from Picture. 2013-01-29 07:32:36 +01:00
Anton Khirnov
231fd1ed39 utvideoenc/v410enc: do not set AVFrame.reference.
That field will be deprecated.
2013-01-29 07:32:21 +01:00
Anton Khirnov
e6b1c3bbe7 pthread: make ff_thread_release_buffer idempotent.
I.e. don't do anything on already released frames.
2013-01-29 07:32:10 +01:00
Anton Khirnov
729b37149c mvi: set framerate
This container does not store timestamps and thus supports CFR only.
2013-01-29 07:31:55 +01:00
Anton Khirnov
aec50f79e7 rawdec: use AVPALETTE_SIZE instead of magic constants. 2013-01-29 07:31:43 +01:00
Anton Khirnov
e6da5d215b mimic: remove a pointless cast. 2013-01-29 07:31:24 +01:00
Anton Khirnov
30d62507cd mdec: return meaningful error codes. 2013-01-29 07:31:15 +01:00
Anton Khirnov
f713411d4c mdec: cosmetics, reformat 2013-01-29 07:27:36 +01:00
Anton Khirnov
098eed95bc mdec: merge mdec_common_init() into decode_init().
There is no point in keeping those two functions separate.
2013-01-29 07:27:23 +01:00
Anton Khirnov
f1c395944c eatgv: use fixed-width types where appropriate. 2013-01-29 07:27:08 +01:00
Michael Niedermayer
11c99c78ba h264: check the pixel format directly and force a reinit on mismatches.
The existing checks are insufficient to detect a pixel format
changes in case of some damaged streams.
Fixes inconsistency and later out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-29 04:40:04 +01:00
Piotr Bandurski
f9a8eeb08c iff/deep: fix rle32 on big-endian
Fixes ticket #2197.

Signed-off-by: Peter Ross <pross@xvid.org>
2013-01-29 11:01:19 +11:00
Diego Biurrun
c59211b437 x86: Simplify some arch conditionals 2013-01-29 00:10:53 +01:00
Paul B Mahol
9efceaf1f7 takdec: switch to init_get_bits8()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-28 22:47:30 +00:00
Michael Niedermayer
3939b790f2 wmavoicedec: use the checked bitstream, reader
Fixes out of array reads

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-28 23:13:22 +01:00
Michael Niedermayer
14c8ee00ff vp3dec: move threads check out of header packet type check
Prevents reconfiguration with threads which is unsupported
and would bring the contexts into an inconsistent state.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-28 22:46:48 +01:00
Michael Niedermayer
1336382c6d avfilter_get_audio_buffer_ref_from_frame: fix handling of >8 channels
Found-by: inferno@chromium.org
Reported-by: Dale Curtis <dalecurtis@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-28 21:45:16 +01:00
Diego Biurrun
438ea561ad bfin: Separate VP3 initialization code 2013-01-28 21:03:12 +01:00
Luca Barbato
f550583c00 bfin: update VP3 idct
The block must be set to 0.
2013-01-28 21:00:59 +01:00
Michael Niedermayer
94ef1667bb dirac/x86: Fix handling blocksizes that are not a multiple of 4
Fixes out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-28 20:55:11 +01:00
Michael Niedermayer
5c9cae7447 dirac: Only use MMX if MMX is available.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-28 20:00:55 +01:00
Michael Niedermayer
8c4aebb58d qdm2: increase noise_table size
This prevents out of array reads. An alternative solution would be
to check the index but this would require several checks in the
inner loops

Yet another alternative would be to change the index reset logic
but this likely would introduce a difference to the binary decoder

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-28 19:41:51 +01:00
Michael Niedermayer
4484c722f6 alsdec/read_specific_config: check for init_get_bits failure
This also fixes a potential integer overflow

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Reviewed-by: Thilo Borgmann <thilo.borgmann@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-28 15:42:18 +01:00
Michael Niedermayer
1146bbc5a6 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  x86: hpeldsp: Fix a typo, use the right register
  shorten: fix array subscript is below array bounds warning

Conflicts:
	libavcodec/shorten.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-28 14:25:19 +01:00
Michael Niedermayer
bb2f4ae434 Merge commit '05b0998f511ffa699407465d48c7d5805f746ad2'
* commit '05b0998f511ffa699407465d48c7d5805f746ad2':
  dsputil: Fix error by not using redzone and register name
  swscale: GBRP output support

Conflicts:
	libswscale/output.c
	libswscale/swscale.c
	libswscale/swscale_internal.h
	libswscale/utils.c
	tests/ref/lavfi/pixdesc
	tests/ref/lavfi/pixfmts_copy
	tests/ref/lavfi/pixfmts_null
	tests/ref/lavfi/pixfmts_scale
	tests/ref/lavfi/pixfmts_vflip

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-28 14:11:31 +01:00
Piotr Bandurski
51e9d2dbc8 aasc: fix 16bpp on big-endian 2013-01-28 11:29:37 +00:00
Michael Niedermayer
834e9fb056 x86: hpeldsp: Fix a typo, use the right register
This makes the code actually work.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-28 12:49:37 +02:00
Luca Barbato
4839fbe2d1 shorten: fix array subscript is below array bounds warning
Incidentally fixes alpha builds.
2013-01-28 07:24:51 +01:00
Daniel Kang
05b0998f51 dsputil: Fix error by not using redzone and register name
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-28 07:23:20 +01:00
Stephan Hilb
0501d06468 lavd/v4l2: use avcodec_find_decoder in list_formats
Because libavdevice/v4l2 is a demuxer, it makes sense to look for
decoders instead of encoders when listing the formats supported by the
device.

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2013-01-28 00:11:49 +01:00
Michael Niedermayer
4ade824e1f mjpegdec: rgb mode is specific for ljpeg, disable it for others.
Fixes null pointer dereference

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-27 23:47:23 +01:00
Michael Niedermayer
73abc3a634 aacdec: check init_get_bits return
Also fixes an integer overflow

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-27 23:47:23 +01:00
Michael Niedermayer
8888c72fcf mjpegdec: fix memcmp size for *_count
Fixes assertion failure

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-27 23:47:23 +01:00
Carl Eugen Hoyos
d88d0b6db6 Write forced track flag to matroska files.
Based on a patch by Daniel Pielmeier, daniel pielmeier gmail
Fixes a part of ticket #1815.
2013-01-27 23:24:52 +01:00
Carl Eugen Hoyos
a6a5101654 Fix some avi rawvideo formats on big endian.
Fixes ticket #2196.
2013-01-27 22:49:48 +01:00
Michael Niedermayer
4eb93bed4e swscale: GBRP output support
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2013-01-27 15:28:07 -05:00
Michael Niedermayer
deefdf9788 avpriv_mpeg4audio_get_config: check init_get_bits() return code.
Fixes null pointer dereference

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-27 21:18:00 +01:00
Michael Niedermayer
96f452ac64 aacdec: check channel count
Prevent out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-27 20:38:00 +01:00
Matthieu Bouron
9d602a0b0e lavc/dnxhdenc: print valid profiles when codec parameters are invalid
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-27 18:44:16 +01:00
Matthieu Bouron
5b83b2da08 lavc/dnxhddata: add frame_rates field to cid table
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-27 18:44:16 +01:00
Giorgio Vazzana
93d319a582 lavd/v4l2: select input immediately after opening the device
After opening the device, the first thing we should do is selecting the
input. This is because the image formats (VIDIOC_ENUM_FMT ioctl) and the
standards (VIDIOC_ENUMSTD ioctl) supported may depend on the selected
input ([1] and [2]).

[1] http://linuxtv.org/downloads/v4l-dvb-apis/vidioc-enum-fmt.html
[2] http://linuxtv.org/downloads/v4l-dvb-apis/vidioc-enumstd.html

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2013-01-27 18:19:27 +01:00
Stefano Sabatini
5306976be8 lavd/v4l2: sanitize logic of device_try_init(), so that it properly signal errors
Make device_try_init() return an error value, and allow to properly
report errors which are not due to a wrong pixel/codec configuration.

In particular, report intelligible feedback in case of busy device.
2013-01-27 17:58:16 +01:00
Stefano Sabatini
27db2bf000 ffmpeg: remove -crop* and -pad* options
The options have been deprecated and are non-operational since more than
two years.
2013-01-27 16:56:47 +01:00
Stefano Sabatini
43af18ef8b ffmpeg: implement -force_key_frames expression evalution 2013-01-27 16:56:47 +01:00
Michael Niedermayer
2b14344ab3 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  arm: vp8: Fix the plain-armv6 version of vp8_luma_dc_wht

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-27 16:47:56 +01:00
Michael Niedermayer
f5c0b9aa6f Merge commit '96753bd00d6d4046db6818c0aadc21bf2a11d77b'
* commit '96753bd00d6d4046db6818c0aadc21bf2a11d77b':
  dsputil: x86: Correct the number of registers used in put_no_rnd_pixels16_l2
  dsputil: add missing HAVE_YASM guard
  hwaccel: do not offer unsupported pixel formats
  vdpau: add missing pixel format for H.264

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-27 16:30:01 +01:00
Michael Niedermayer
edde562130 AVG_PIXELS8_XY2: fix typo, make code actually work
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-27 15:50:26 +01:00
Daniel Kang
5327a45552 dsputil: x86: Correct the number of registers used in put_no_rnd_pixels16_l2
put_no_rnd_pixels16_l2 allocated 5 instead of 6 registers.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-27 15:20:44 +01:00
Daniel Kang
d9e62f368d dsputil: add missing HAVE_YASM guard
Fix compile error under
"--disable-optimizations --disable-yasm --disable-inline-asm"

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-27 15:20:35 +01:00
Michael Niedermayer
5934be16cc x86/mpeg4qpel: Fix author attribution
Also fix project name

See git blame/log/show and
commit 826f429ae9
Author: Michael Niedermayer <michaelni@gmx.at>
Date:   Sun Jan 5 15:57:10 2003 +0000

    qpel in mmx2/3dnow
    qpel refinement quality parameter

    Originally committed as revision 1393 to svn://svn.ffmpeg.org/ffmpeg/trunk

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-27 15:07:02 +01:00
Michael Niedermayer
aa3f449955 x86/hpeldsp: Fix author attribution
This also fixes the project name

Original authors fabrice and nick go back to the initial ffmpeg commit
Others for example contributed in: (for a complete list please use git blame / show / log)

commit e9c0a38ff0
Author: Zdenek Kabelac <kabi@informatics.muni.cz>
Date:   Tue May 28 16:35:58 2002 +0000

    * optimized avg_* functions (except xy2)
    * minor speedup for put_pixels_x2 & cleanup

    Originally committed as revision 619 to svn://svn.ffmpeg.org/ffmpeg/trunk

commit 607dce96c0
Author: Michael Niedermayer <michaelni@gmx.at>
Date:   Fri May 17 01:04:14 2002 +0000

    hopefully faster mmx2&3dnow MC

    Originally committed as revision 506 to svn://svn.ffmpeg.org/ffmpeg/trunk

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-27 14:47:58 +01:00
Michael Niedermayer
91c8921d80 Merge commit '71155d7b4157fee44c0d3d0fc1b660ebfb9ccf46'
* commit '71155d7b4157fee44c0d3d0fc1b660ebfb9ccf46':
  dsputil: x86: Convert mpeg4 qpel and dsputil avg to yasm

Conflicts:
	libavcodec/x86/dsputil_mmx.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-27 14:24:28 +01:00
Michael Niedermayer
6b2f7fd1c7 Merge commit 'f90ff772e7e35b4923c2de429d1fab9f2569b568'
* commit 'f90ff772e7e35b4923c2de429d1fab9f2569b568':
  Move H264/QPEL specific asm from dsputil.asm to h264_qpel_*.asm.
  doc: update the reference for the title

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-27 13:32:56 +01:00
Clément Bœsch
f2b6aabd3d lavf/srtdec: do not try to queue empty subtitle chunks.
Regression since 3af3a30.
Fixes Ticket2167.
2013-01-27 20:26:35 +09:00
Martin Storsjö
2026eb1408 arm: vp8: Fix the plain-armv6 version of vp8_luma_dc_wht
This makes the plain-armv6 version use the same registers as the
armv6t2 version above.

This fixes fate-vp8 on plain-armv6 devices.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-27 13:17:25 +02:00
Paul B Mahol
07a7145d89 lavc/iff: rgbn: fix decoding on big endian
Fixes #2193.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-27 10:59:58 +00:00
Daniel Kang
96753bd00d dsputil: x86: Correct the number of registers used in put_no_rnd_pixels16_l2
put_no_rnd_pixels16_l2 allocated 5 instead of 6 registers.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-27 08:41:48 +01:00
Daniel Kang
0eedf5d74d dsputil: add missing HAVE_YASM guard
Fix compile error under
"--disable-optimizations --disable-yasm --disable-inline-asm"

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-27 08:41:46 +01:00
Rémi Denis-Courmont
78bc4d69eb hwaccel: do not offer unsupported pixel formats
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-27 07:03:22 +01:00
Rémi Denis-Courmont
ec0e92002b vdpau: add missing pixel format for H.264
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-27 07:03:22 +01:00
Daniel Kang
71155d7b41 dsputil: x86: Convert mpeg4 qpel and dsputil avg to yasm
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-27 06:45:31 +01:00
Michael Niedermayer
f9abeecd94 swr/ build_filter: use av_calloc() fix buffer overflow
Fixes integer & buffer overflow

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-27 05:58:47 +01:00
Michael Niedermayer
167af704ea swr: limit phase_shift to a less insane value.
This prevents potential crashes and out of memory issues if
the user manually sets such insane values.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-27 05:54:52 +01:00
Ronald S. Bultje
f90ff772e7 Move H264/QPEL specific asm from dsputil.asm to h264_qpel_*.asm. 2013-01-26 20:35:42 -08:00
Michael Niedermayer
b16830840e tiff: in add_string_metadata() check the count more completely
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-27 04:53:03 +01:00
Michael Niedermayer
5de286ef88 mvdec: check var_read_string() return value
Prevent null pointer dereference

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-27 02:15:02 +01:00
Michael Niedermayer
362271d72f mvdec: Check the frame counter against the correct limit.
fixes out of array reads

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-27 02:11:19 +01:00
Michael Niedermayer
6512405ce2 sws: disable yuv2rgb warning for planar rgb.
planar rgb formats do not use the table

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-26 23:09:58 +01:00
Michael Niedermayer
f0d3a03115 sws: include isRGB in isAnyRGB() so that future RGB formats wont be missed again
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-26 21:38:01 +01:00
Michael Niedermayer
02001a372d sws: add planar RGB formats to isAnyRGB
We have to make some symetric changes elsewhere as this increases
the precission with which samples are stored.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-26 20:40:44 +01:00
Michael Niedermayer
3c2ecfcc24 sws: dont enable chrSrcHSubSample for planar RGB
This code path is not implemented and makes not much sense to implement
either.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-26 20:40:44 +01:00
Michael Niedermayer
4e585f6325 sws: use planarRgbToRgbWrapper only for 8bit per component
The function doesnt support >8bit currently

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-26 20:40:44 +01:00
Michael Niedermayer
5cb0782b95 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mpegvideo_enc: fix indentation in load_input_picture()

Conflicts:
	libavcodec/mpegvideo_enc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-26 15:53:58 +01:00
Michael Niedermayer
c46943ec19 Merge commit '3f47d316cda9037024ffbc76f789332e62b729bc'
* commit '3f47d316cda9037024ffbc76f789332e62b729bc':
  mpegvideo_enc: do not modify the input frame.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-26 15:46:39 +01:00
Michael Niedermayer
8380fc8884 Merge commit '7bcaeb408e3eb2d2f37a306009fa7fe7eb0f1d79'
* commit '7bcaeb408e3eb2d2f37a306009fa7fe7eb0f1d79':
  mjpegdec: fix indentation
  rawdec: cosmetics, reformat
  mimic: return meaningful error codes.

Conflicts:
	libavcodec/mjpegdec.c
	libavcodec/rawdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-26 15:42:29 +01:00
Michael Niedermayer
8ab97a60ef Merge commit 'a0cabd0a27587525e90a44660c795d40d2f44fe2'
* commit 'a0cabd0a27587525e90a44660c795d40d2f44fe2':
  mimic: cosmetics, reformat
  iff: drop ff_ prefix from a static function.
  pngdec: cosmetics, reformat.
  dxa: return meaningful error codes.
  eatgq: cosmetics, reformat.

Conflicts:
	libavcodec/dxa.c
	libavcodec/eatgq.c
	libavcodec/iff.c
	libavcodec/mimic.c
	libavcodec/pngdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-26 15:19:48 +01:00
Stefano Sabatini
c0c06c1bba doc/texi2pod: fix warnings introduced in e7e14bc69a
The variable "$section" was replaced by "$chapter".
2013-01-26 15:12:57 +01:00
Paul B Mahol
27cadb9ce3 remove av_strnstr from Changelog
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-26 14:04:30 +00:00
Luca Barbato
fe1057e017 doc: update the reference for the title
The recent texi2html exports the title as 'fulltitle_no_texi'.
2013-01-26 14:49:57 +01:00
Michael Niedermayer
325ee4ed7a Merge commit 'f337c29017b10c98ccb4dce20efced4c74b665f6'
* commit 'f337c29017b10c98ccb4dce20efced4c74b665f6':
  eatgq: return meaningful error codes.
  eatgv: cosmetics, reformat

Conflicts:
	libavcodec/eatgq.c
	libavcodec/eatgv.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-26 14:47:08 +01:00
Michael Niedermayer
3a9f48f033 Merge commit 'ade402804a0e811cd00862c90559121a793054a6'
* commit 'ade402804a0e811cd00862c90559121a793054a6':
  eatgv: return meaningful error codes.
  cyuv: return meaningful error codes.
  txd: return meaningful error codes.

Conflicts:
	libavcodec/cyuv.c
	libavcodec/eatgv.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-26 14:39:02 +01:00
Michael Niedermayer
446d62f0cf Merge commit '69c25c9284645cf5189af2ede42d6f53828f3b45'
* commit '69c25c9284645cf5189af2ede42d6f53828f3b45':
  dnxhdenc: fix invalid reads in dnxhd_mb_var_thread().
  x86: h264qpel: Move stray comment to the right spot and clarify it
  atrac3: use correct loop variable in add_tonal_components()

Conflicts:
	tests/ref/vsynth/vsynth1-dnxhd-1080i
	tests/ref/vsynth/vsynth2-dnxhd-1080i

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-26 14:33:06 +01:00
Michael Niedermayer
d235d240d8 Merge commit 'ded3673d77943c376d94e8157b1238bbd1eeca2d'
* commit 'ded3673d77943c376d94e8157b1238bbd1eeca2d':
  doc: document libx264 options and mappings
  libx264: introduce -x264-params private option

Conflicts:
	doc/encoders.texi

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-26 14:18:48 +01:00
Michael Niedermayer
e7e14bc69a Merge commit '38c1466ca41c73c7ce347da702362cb69c151716'
* commit '38c1466ca41c73c7ce347da702362cb69c151716':
  dict: add av_dict_parse_string()
  doc: support multitable in texi2pod

Conflicts:
	doc/APIchanges
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-26 13:34:30 +01:00
Anton Khirnov
04f4dbc2fa mpegvideo_enc: fix indentation in load_input_picture() 2013-01-26 13:08:38 +01:00
Anton Khirnov
3f47d316cd mpegvideo_enc: do not modify the input frame. 2013-01-26 13:08:32 +01:00
Anton Khirnov
7bcaeb408e mjpegdec: fix indentation 2013-01-26 13:08:07 +01:00
Anton Khirnov
0ce033f888 rawdec: cosmetics, reformat 2013-01-26 13:07:41 +01:00
Anton Khirnov
b965cb906b mimic: return meaningful error codes. 2013-01-26 13:06:41 +01:00
Anton Khirnov
a0cabd0a27 mimic: cosmetics, reformat 2013-01-26 13:04:15 +01:00
Anton Khirnov
04e1249609 iff: drop ff_ prefix from a static function. 2013-01-26 13:02:33 +01:00
Anton Khirnov
9221c0af77 pngdec: cosmetics, reformat.
Also remove a commented out line.
2013-01-26 13:02:19 +01:00
Anton Khirnov
edb2426b75 dxa: return meaningful error codes. 2013-01-26 13:01:14 +01:00
Anton Khirnov
adf0110d87 eatgq: cosmetics, reformat. 2013-01-26 13:00:59 +01:00
Paul B Mahol
25c75525bf lavc/iff: ilbm: unbreak decoding on big endian
Fixes #2192.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-26 12:00:22 +00:00
Anton Khirnov
f337c29017 eatgq: return meaningful error codes. 2013-01-26 12:56:39 +01:00
Anton Khirnov
4b7598e2fe eatgv: cosmetics, reformat 2013-01-26 12:56:24 +01:00
Anton Khirnov
ade402804a eatgv: return meaningful error codes. 2013-01-26 12:54:35 +01:00
Anton Khirnov
0859eaa012 cyuv: return meaningful error codes. 2013-01-26 12:54:23 +01:00
Anton Khirnov
6837bd6e49 txd: return meaningful error codes. 2013-01-26 12:54:07 +01:00
Nicolas George
42c6f2a645 lavfi/vf_drawtext: default to expansion=normal. 2013-01-26 12:52:19 +01:00
Anton Khirnov
69c25c9284 dnxhdenc: fix invalid reads in dnxhd_mb_var_thread().
Do not assume that frame dimensions are mod16 (or that height is mod32
for interlaced).

CC:libav-stable@libav.org
2013-01-26 12:30:08 +01:00
Nicolas George
5361f4958f fate: add an attachment to the Matroska test. 2013-01-26 11:33:09 +01:00
Nicolas George
255ae9f380 lavfi: version bump and change log entries after the last commits. 2013-01-26 11:25:21 +01:00
Diego Biurrun
033a86f9bb x86: h264qpel: Move stray comment to the right spot and clarify it 2013-01-26 11:19:22 +01:00
Nicolas George
41f025dff0 ffmpeg: support filtering of unknown channel layouts. 2013-01-26 11:15:38 +01:00
Nicolas George
699b286a21 lavfi/af_anull: accept unknown channel layouts. 2013-01-26 11:15:38 +01:00
Nicolas George
b00502457a lavfi/af_aresample: accept unknown channel layouts. 2013-01-26 11:15:38 +01:00
Nicolas George
6d962aec8d lavfi/af_aformat: accept unknown channel layouts. 2013-01-26 11:15:38 +01:00
Nicolas George
ea645e90a1 lavfi/buffersrc: accept unknown channel layouts. 2013-01-26 11:15:38 +01:00
Nicolas George
19506af788 lavfi/sink_buffer: accept unknown channel layouts.
Add a field to the AVBufferSinkParams for a list of accepted
channel counts.
Change the default value for the lists in AVBufferSinkParams
to NULL, to let lavfi fill them with something useful.
The fail_enomem path is unneeded because filters are uninited
on failure.
2013-01-26 11:15:38 +01:00
Nicolas George
b6b2f3433c lavfi: implement ff_query_formats_all(). 2013-01-26 11:15:38 +01:00
Nicolas George
7bb98b753b lavfi: implement ff_all_channel_counts(). 2013-01-26 11:15:38 +01:00
Nicolas George
b6afb2dde1 lavfi: support unknown channel layouts. 2013-01-26 11:15:38 +01:00
Nicolas George
fccd8c21c4 ffmpeg: add -guess_layout_max option. 2013-01-26 11:15:38 +01:00
Paul B Mahol
9648e1495b lavc/gif: remove some obsolete/irrelevant chunks
Some code was copy pasted from muxer, which still
have same comments but unlike encoder they are still
relevant to muxer.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-26 09:38:46 +00:00
Paul B Mahol
d1d159d31e lavf/gifdec: cosmetics: remove extra whitespace
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-26 09:28:57 +00:00
Paul B Mahol
254e11cc01 lavf/gifdec: fix typo
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-26 09:28:57 +00:00
Michael Niedermayer
e4033d89f1 sws: GBRP9, GBRP10 GBRP12 GBRP14 output support
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-26 06:11:52 +01:00
Michael Niedermayer
61884d1985 sws: GBRP output support
Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-26 06:11:52 +01:00
Michael Niedermayer
c8f25cafd2 atrac3: fix buffer size for get_bits.
Fixes out of array reads

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-26 04:27:53 +01:00
Michael Niedermayer
66daebc9d5 indeo4: check for invalid transform_size blk_size combinations
The checks existing previously where not sufficient
Fixes out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-26 03:18:49 +01:00
Michael Niedermayer
cfc7b9cfff 4xm: remove avcodec_get_frame_defaults() calls
They are not needed anymore

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-26 02:27:19 +01:00
Michael Niedermayer
d73b65ed0e 4xm: add assert to check that the pointer from read_huffman_tables is within the array
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-26 02:27:19 +01:00
Michael Niedermayer
53a3fdbfc5 4xm: Check available space in read_huffman_tables()
Fixes integer overflow and out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-26 02:27:19 +01:00
Michael Karcher
dcbb920f15 Fix atrac3 decoder broken in e55d53905f
Signed-off-by: Michael Karcher <ffmpeg@mkarcher.dialup.fu-berlin.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-26 00:05:57 +01:00
Michael Niedermayer
c6ef7641fc ffv1enc: fix gbrp>8bit
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-25 23:34:36 +01:00
Michael Karcher
0e3afacd4d atrac3: use correct loop variable in add_tonal_components()
Signed-off-by: Michael Karcher <ffmpeg@mkarcher.dialup.fu-berlin.de>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>

CC:libav-stable@libav.org
2013-01-25 16:16:24 -05:00
Stefano Sabatini
e80be5a0aa lavfi/showwaves: fail in case of push_frame() error 2013-01-25 19:35:21 +01:00
Stefano Sabatini
e4e36a4dd2 doc/filters: apply minor fixes 2013-01-25 17:45:27 +01:00
Stefano Sabatini
b7d34b328b lavfi/showwaves: add display mode option and mode=line 2013-01-25 17:42:04 +01:00
Michael Niedermayer
13aca070ab gifdec: resync support
This allows decoding gifs that have junk at the begin
and also allows byte wise seeking

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-25 17:25:16 +01:00
Luca Barbato
ded3673d77 doc: document libx264 options and mappings 2013-01-25 17:20:03 +01:00
Justin Ruggles
38c1466ca4 dict: add av_dict_parse_string()
Can be used to set multiple key/value pairs from a string.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-25 17:20:03 +01:00
Gavriloaie Eugen-Andrei
29b553c1a6 libx264: introduce -x264-params private option
It is a shortcut to set all the params using x264_param_parse,
makes simpler importing settings from other software using x264.
2013-01-25 17:20:03 +01:00
Matthieu Bouron
40b4468f62 lavc/dnxhddata: fix bitrates for cid 1251 and 1252 in cid table
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-25 17:09:59 +01:00
Michael Niedermayer
495cb44172 setpts: deprecate RTCTIME, we have time(0) which is more generic
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-25 15:14:33 +01:00
Michael Niedermayer
fc2922836b Merge remote-tracking branch 'qatar/master'
* qatar/master:
  avfilter: allow setpts filter to use wallclock time for calculations

Conflicts:
	doc/filters.texi

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-25 15:04:41 +01:00
Michael Niedermayer
25be63005f Merge commit 'b85a5e87af4254b80913fe33591d96361f30832b'
* commit 'b85a5e87af4254b80913fe33591d96361f30832b':
  lavu: Add av_strnstr()
  h264: Allow discarding the cropping information from SPS

Conflicts:
	Changelog
	doc/APIchanges
	libavcodec/avcodec.h
	libavcodec/version.h
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-25 14:36:45 +01:00
Michael Niedermayer
b2d0c5bd13 Merge commit '33552a5f7b6ec7057516f487b1a902331f8c353e'
* commit '33552a5f7b6ec7057516f487b1a902331f8c353e':
  arm: Add mathops.h to ARCH_HEADERS list
  avstring: K&R formatting cosmetics

Conflicts:
	libavutil/avstring.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-25 14:24:38 +01:00
Michael Niedermayer
e9125dd556 Merge commit '2c10e2a2f62477efaef5b641974594f7df4ca339'
* commit '2c10e2a2f62477efaef5b641974594f7df4ca339':
  build: Make the H.264 parser select h264qpel
  x86: h264qpel: add cpu flag checks for init function

Conflicts:
	libavcodec/x86/h264_qpel.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-25 14:14:21 +01:00
Paul B Mahol
d07b0d9927 swscale: check flags instead of nb_components to find if pixel format have alpha
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-25 13:06:00 +00:00
Luca Barbato
5ea5ffc9ce doc: support multitable in texi2pod 2013-01-25 14:03:05 +01:00
Paul B Mahol
7003d650b0 lavc/gifdec: remove obsolete check
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-25 12:54:15 +00:00
Paul B Mahol
51c7af9d32 lavc/gifdec: move idx_line allocation out of gif_read_header1()
Now allocation is done only if av_image_check_size() passes.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-25 12:54:15 +00:00
Paul B Mahol
285128eedf lavc/gifdec: do not return nonzero *got_frame if frame is not passed
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-25 12:54:14 +00:00
Paul B Mahol
aaebdce3d9 lavc/gifdec: simplify "!= 0" checks
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-25 12:54:14 +00:00
Paul B Mahol
f1412c7997 lavc/gifdec: use memcpy()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-25 12:54:14 +00:00
Michael Niedermayer
91ae9bc51e Merge commit '6bdb841b46d170d58488deaed720729b79223b1d'
* commit '6bdb841b46d170d58488deaed720729b79223b1d':
  arm: h264qpel: use neon h264 qpel functions only if supported

* bug was fixed previously (in merge of buggy code):
  h264: copy h264qpel dsp context to slice thread copies

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-25 13:45:22 +01:00
Vladimir Pantelic
0b55b16abc avfilter: allow setpts filter to use wallclock time for calculations
Signed-off-by: Vladimir Pantelic <vladoman@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-25 10:50:09 +01:00
Vladimir Pantelic
b85a5e87af lavu: Add av_strnstr()
This is a length limited version of strstr()

Signed-off-by: Vladimir Pantelic <vladoman@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-25 10:47:51 +01:00
Vittorio Giovara
a84fb6e06f h264: Allow discarding the cropping information from SPS
Some 3D systems overload the meaning of the field for other purposes.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-25 07:50:35 +01:00
Michael Niedermayer
ab6c9332bf vqavideo: check chunk sizes before reading chunks
Fixes out of array writes

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-25 06:12:56 +01:00
Michael Niedermayer
e9d443cf08 eacmv: Free frames on resolution changes
Fixes out of array reads

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-25 03:30:04 +01:00
Michael Niedermayer
286930d302 gifdec: check that w,h is not zero
Fixes out of array access

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-25 03:30:04 +01:00
Carl Eugen Hoyos
a0d1440476 Fix compilation with --disable-everything on x86_32.
Fixes ticket #2183.
2013-01-25 03:04:46 +01:00
Stefano Sabatini
c4738c3196 ffmpeg: fix typo in open_files() message
Found-By: Justin Ruggles
2013-01-25 00:46:41 +01:00
Stefano Sabatini
1ec3324f00 lavf/img2enc: extend current options documentation 2013-01-25 00:04:23 +01:00
Stefano Sabatini
069d156454 lavf/img2dec: fix option help fields 2013-01-25 00:04:22 +01:00
Stefano Sabatini
2756c3091a doc/faq: fill missing word in the concat protocol entry 2013-01-25 00:04:22 +01:00
Stefano Sabatini
40cb682ca0 doc/faq: mention concat protocol documentation in the protocol concatenation entry 2013-01-25 00:04:22 +01:00
Michael Niedermayer
c10350358d gifdec: gif_copy_img_rect: Fix end pointer
Fixes out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-24 23:11:44 +01:00
Michael Niedermayer
fc8e8e5bef h264_qpel: put cpuflags checks back.
These where lost when libav moved the code out of dsputil

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-24 22:14:39 +01:00
Michael Niedermayer
cf48b00640 cavsdec: check for value in get_ue_code()
Fixes integer overflow and prints an error in case the value is
invalid.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-24 21:55:12 +01:00
Jason
77b740ac0a lavu/timecode: fix time code calculation for 60000/1001 drop frame
Reviewed-by: Matthieu Bouron <matthieu.bouron@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-24 21:06:24 +01:00
Jason
a717fa84ed lavu/timecode: Allow drop frame mode for 60000/1001 fps
Reviewed-by: Matthieu Bouron <matthieu.bouron@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-24 21:06:24 +01:00
Diego Biurrun
33552a5f7b arm: Add mathops.h to ARCH_HEADERS list
It is an arch-specific header not suitable for standalone compilation.
2013-01-24 20:59:22 +01:00
Luca Barbato
4333df6355 avstring: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-01-24 20:49:54 +01:00
Diego Biurrun
2c10e2a2f6 build: Make the H.264 parser select h264qpel
It is required for building the shared H.264 code.
2013-01-24 19:25: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
Michael Niedermayer
55d66b2790 movenc: check that fps for tmcd is within encodable range.
The fps is stored as a 8 bit value thus 255 is the maximum encodable.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-24 18:59:49 +01:00
Michael Niedermayer
9362f31b55 movenc: Calculate fps for tmcd without intermediate step.
Fixes part of Ticket2045

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-24 18:57:12 +01:00
Michael Niedermayer
bee044d7c2 ffmpeg: copy tmcd track timebase parameters
Fixes part of Ticket2045

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-24 18:37:32 +01:00
Michael Niedermayer
b75ac7c71c lavc: include timebase in avcodec string at debug level.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-24 18:35:07 +01:00
Michael Niedermayer
c071b00643 mpeg12demux: Fallback to startcode for stream type identification.
Fixes Ticket2147
Fixes SageTV support

Based-on patch by Andrew Gallatin
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-24 17:10:23 +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
Paul B Mahol
eb567a7999 eacdata: do not set sample_fmt
It is supposed to be set from lavc only.
Also this one differs from one set in decoder.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-24 15:02:44 +00:00
Paul B Mahol
7b007a7c1f flic: do not set sample_fmt
It is supposed to be set from lavc only.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-24 15:02:44 +00:00
Michael Niedermayer
fc13a89654 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  dsputil: Separate h264 qpel

Conflicts:
	libavcodec/dsputil_template.c
	libavcodec/h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-24 15:47:47 +01:00
Michael Niedermayer
70b0aeba00 Merge commit '7a95afe433b2a692f490b98948c082e62ffc1d27'
* commit '7a95afe433b2a692f490b98948c082e62ffc1d27':
  doc: fix dependencies in pod generation

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-24 14:35:15 +01:00
Michael Niedermayer
9c555bca68 Merge commit '528878ee7b377e23a194d7c801571d97793047e0'
* commit '528878ee7b377e23a194d7c801571d97793047e0':
  openbsd: configure: Stop enabling PIC by default

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-24 14:29:29 +01:00
Michael Niedermayer
b4581e9394 Merge commit '4a4a7e138c92901e04db46a6b05cc6948023e5f5'
* commit '4a4a7e138c92901e04db46a6b05cc6948023e5f5':
  rtpenc_chain: Use the original AVFormatContext for getting payload type
  rtp: Make sure the output format pointer is set

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-24 14:18:30 +01:00
Michael Niedermayer
1d2abca7e1 wmv2enc: drop setting of idct_algo
This should have become redundant

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-24 14:15:55 +01:00
Michael Niedermayer
40c27504a5 Merge commit '57ed8debb9b9cc565cc6e9f98c5b5cbb9f69097c'
* commit '57ed8debb9b9cc565cc6e9f98c5b5cbb9f69097c':
  wmv2: Propagate the wmv2 idct permutation type to the dsputils context
  rtp: Make sure priv_data is set before reading it

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-24 14:15:40 +01:00
Paul B Mahol
dd5689a3bd matroskadec: export codec bits_per_coded_sample
Fixes -codec copy with TTA from matroska to matroska.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-24 12:15:12 +00:00
Paul B Mahol
ee8d4a4142 matroskaenc: fix -codec copy with TTA
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-24 11:59:43 +00:00
Paul B Mahol
9ddf5631e3 matroskaenc: support TTA muxing
TTA in matroska does not store any private data.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-24 11:59:43 +00:00
Stefano Sabatini
c89a8ee23d doc/eval: fix/review the section about SI prefixes and usage
In particular, prefer "prefix" to "postfix" as in the tool manuals, and
specify powers of 2 and 10 explicitly.

This is based on the commit:
commit 2bf794b698
Author: Marcus Stollsteimer <sto.mar@web.de>
Date:   Mon Nov 19 21:39:20 2012 +0100
2013-01-24 12:26:21 +01:00
Stefano Sabatini
ca1bc188f4 doc/eval: fix documentation for time() function 2013-01-24 12:26:21 +01:00
Stefano Sabatini
2b207bab19 doc/eval: substitute if/then/else construct with an example making use of boolean expression composition
Since the if/then/else construct is now supported natively, showing how
to compose such a construct from basic primitives is misleading.
2013-01-24 12:19:02 +01:00
Stefano Sabatini
2ed0803c6c lavu/eval: extend if/ifnot functions to accept a third parameter
Add support to an if/else construct, simplify logic in expressions.
2013-01-24 12:19:01 +01:00
Paul B Mahol
056664ff25 lavc/tta: remove nonsense s->avctx indirection, use avctx directly
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-24 10:54:35 +00:00
Paul B Mahol
e65046bf83 lavfi/earwax: remove config_input()
This is wrong function to check for input parameters.
Function is not needed because query_formats() already
sets supported sample rates.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-24 10:37:44 +00:00
Mans Rullgard
e9d817351b dsputil: Separate h264 qpel
The sh4 optimizations are removed, because the code is
100% identical to the C code, so it is unlikely to
provide any real practical benefit.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-24 10:44:43 +01:00
Luca Barbato
7a95afe433 doc: fix dependencies in pod generation
The script can and will change.
2013-01-24 10:43:15 +01:00
Diego Biurrun
528878ee7b openbsd: configure: Stop enabling PIC by default
Previously PIC was enabled as a magic workaround for binaries that
built fine, but failed to function at all.  This problem no longer
exists, possibly since the introduction of symbol versioning.
2013-01-24 10:39:17 +01:00
Martin Storsjö
4a4a7e138c rtpenc_chain: Use the original AVFormatContext for getting payload type
In ff_rtp_get_payload_type, the AVFormatContext is used for checking
whether the payload_type or rtpflags options are set. In rtpenc_chain,
the rtpctx struct is a newly initialized struct where no options have
been set yet, so no options can be fetched from there.

All muxers that internally chain rtp muxers have the "rtpflags" field
that allows passing such options on (which is how this worked before
8034130e06), so this works just as intended.

This makes it possible to produce H263 in RFC2190 format with chained
RTP muxers.

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-24 11:31:36 +02:00
Martin Storsjö
932117171f rtp: Make sure the output format pointer is set
Not sure if this actually happens, but we do the same check when
checking payload_type further above in the function, so it might
be needed.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-24 11:31:35 +02:00
Carl Eugen Hoyos
fc50175ba2 Refuse to mux tta into matroska, the output file is broken. 2013-01-24 10:23:00 +01:00
Michael Niedermayer
7e059c9c5d mpeg4videoenc: check w,h to be within the supported range.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-24 04:38:17 +01:00
Michael Niedermayer
46cb61819d gifdec: check that the last keyframe exists and has been successfully parsed.
Prevents inconsistent state and null pointer dereference

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-24 04:18:56 +01:00
Michael Niedermayer
b53ed19aa7 lcldec: Check length before unsigned subtraction.
Fix integer overflow and out of array read

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-24 04:02:14 +01:00
Michael Niedermayer
69fb605ad5 mpc8: check stream count before accessing stream 1.
Fixes null pointer dereference

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-24 02:51:51 +01:00
Michael Niedermayer
ee9151b616 ff_mss12_decode_init: check dimensions
Fixes assertion failure

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-24 01:47:20 +01:00
Carl Eugen Hoyos
df39c3ce38 matroskaenc: add codec_tag lists back.
This reverts 312645e :
"Do not set codec_tag property for matroska muxers."

Also adds dummy codec_tag lists with codecs
supported in mkv but not in wav / avi.

Fixes ticket #2169.
2013-01-24 01:22:07 +01:00
Carl Eugen Hoyos
f8b6d4818e Only try to auto-detect LATM in mpegts if the LOAS demuxer was configured.
This allows to decode LATM-in-mpegts without the LOAS demuxer.
2013-01-24 01:21:13 +01:00
Michael Niedermayer
9d6e0ac673 floatdsp: restrict->av_restrict
Fix msvc

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-24 00:49:47 +01:00
Michael Niedermayer
7357ca900e sanm: Check decoded_size.
This prevents a buffer overflow in rle_decode()

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-24 00:27:59 +01:00
Martin Storsjö
57ed8debb9 wmv2: Propagate the wmv2 idct permutation type to the dsputils context
This fixes encoding where the idct setting originally was set to
FF_IDCT_AUTO and dsputil chose a default idct with a non-null
permutation - even if the permutation tables were updated,
dct_quantize in x86/mpegvideoenc_template.c also checked the
value of this type variable.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-24 00:32:35 +02:00
Martin Storsjö
e90820d4f8 rtp: Make sure priv_data is set before reading it
This fixes crashes with muxing H263 into RTSP.

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-23 23:30:58 +02:00
Michael Niedermayer
31cd1e20bb eval: add function to access the current "wallclock" time.
Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-23 22:22:53 +01:00
Michael Niedermayer
665f2d432c hls: add missing checks for accessing avoption fields
Fixes null pointer exception and probably other things

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-23 22:22:53 +01:00
Michael Niedermayer
8071288601 mlpdec: move ch_assign setup code down to after ch layout is set.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-23 19:39:42 +01:00
Michael Niedermayer
6747b0be9b mlp: fix channel order.
This fixes a regression introduced with todays merge

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-23 19:39:42 +01:00
Micah Galizia
d4e5d8d4c2 lavf/hls: broker HTTP options
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2013-01-23 19:27:14 +01:00
Stefano Sabatini
e319725717 lavf/segment: exit immediately in case of invalid stream specifier
Avoid duplicated confusing error message, and propagate error code from
the failing avformat_match_stream_specifier() call.
2013-01-23 18:54:53 +01:00
Stefano Sabatini
bb539eb13a lavf/segment: avoid failure in case -flags +live and -segment_times/frames are specified
The conflict does not apply any longer, since the M3U8 segment target
duration is re-computed every time a new segment is added to the list.
2013-01-23 18:54:33 +01:00
Stefano Sabatini
f4e4e5b841 lavf/segment: drop now pointless segment_list_close() function 2013-01-23 18:32:01 +01:00
Stefano Sabatini
ca68acd7ac lavf/segment: mark #EXT-X-ENDLIST in M3U8 only at the end of stream
Should fix immediate playback termination.

In particular, should fix trac ticket #2172.
2013-01-23 18:32:01 +01:00
Michael Niedermayer
8b8ac78ef3 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  rtpenc: fix overflow checking in avc_mp4_find_startcode()
  rtmp: fix buffer overflows in ff_amf_tag_contents()
  rtmp: fix multiple broken overflow checks
  float_dsp: Include config.h for redefining restrict

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-23 18:25:57 +01:00
Michael Niedermayer
1e7a92f219 Merge commit 'baf35bb4bc4fe7a2a4113c50989d11dd9ef81e76'
* commit 'baf35bb4bc4fe7a2a4113c50989d11dd9ef81e76':
  dsputil: remove one array dimension from avg_no_rnd_pixels_tab.

Conflicts:
	libavcodec/x86/dsputil_mmx.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-23 18:15:29 +01:00
Michael Niedermayer
f900fd5d31 Merge commit '2612c4dc78e1750c4653bf5a9f2cbe95f7b4ed6e'
* commit '2612c4dc78e1750c4653bf5a9f2cbe95f7b4ed6e':
  dsputil: remove 9/10 bits hpel functions.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-23 18:06:57 +01:00
Michael Niedermayer
70270f2753 Merge commit '2bef1a83d7a3ca60b161ab90bf4d4338e5def5e7'
* commit '2bef1a83d7a3ca60b161ab90bf4d4338e5def5e7':
  dsputil: remove some never-assigned function pointers from the struct.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-23 17:58:46 +01:00
Michael Niedermayer
6d1e9d993a Merge commit '32ff6432284f713e9f837ee5b36fc8e9f1902836'
* commit '32ff6432284f713e9f837ee5b36fc8e9f1902836':
  dsputil: remove avg_no_rnd_pixels8.

Conflicts:
	libavcodec/x86/dsputil_mmx.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-23 17:52:21 +01:00
Michael Niedermayer
ac8987591f Merge commit '88bd7fdc821aaa0cbcf44cf075c62aaa42121e3f'
* commit '88bd7fdc821aaa0cbcf44cf075c62aaa42121e3f':
  Drop DCTELEM typedef

Conflicts:
	libavcodec/alpha/dsputil_alpha.h
	libavcodec/alpha/motion_est_alpha.c
	libavcodec/arm/dsputil_init_armv6.c
	libavcodec/bfin/dsputil_bfin.h
	libavcodec/bfin/pixels_bfin.S
	libavcodec/cavs.c
	libavcodec/cavsdec.c
	libavcodec/dct-test.c
	libavcodec/dnxhdenc.c
	libavcodec/dsputil.c
	libavcodec/dsputil.h
	libavcodec/dsputil_template.c
	libavcodec/eamad.c
	libavcodec/h264_cavlc.c
	libavcodec/h264idct_template.c
	libavcodec/mpeg12.c
	libavcodec/mpegvideo.c
	libavcodec/mpegvideo.h
	libavcodec/mpegvideo_enc.c
	libavcodec/ppc/dsputil_altivec.c
	libavcodec/proresdsp.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-23 17:44:56 +01:00
Paul B Mahol
a793a587df lavfi/swapuv: support all planar yuv pixel formats
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-23 16:13:23 +00:00
Michael Niedermayer
b90ab2b993 Merge commit '2e4bb99f4df7052b3e147ee898fcb4013a34d904'
* commit '2e4bb99f4df7052b3e147ee898fcb4013a34d904':
  vorbisdsp: convert x86 simd functions from inline asm to yasm.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-23 17:00:26 +01:00
Michael Niedermayer
516f30ed20 Merge commit '0ee8293a77a6afad161e91ce1d43c4a57ce33a6a'
* commit '0ee8293a77a6afad161e91ce1d43c4a57ce33a6a':
  vp3dsp: don't do aligned reads on input.
  mlp_parser: cosmetics: re-indent.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-23 16:52:09 +01:00
Michael Niedermayer
0ff21c3165 mlpdec: remove disabled code, leftover from merge
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-23 16:50:52 +01:00
Michael Niedermayer
826188d27a Merge commit 'ed1b01131e662c9086b27aaaea69684d8575fbea'
* commit 'ed1b01131e662c9086b27aaaea69684d8575fbea':
  mlp: implement support for AVCodecContext.request_channel_layout.

Conflicts:
	libavcodec/mlpdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-23 16:44:30 +01:00
Michael Niedermayer
86b892af19 Merge commit 'b0c7e3ffd09f68022429920da483ad7abed84aa1'
* commit 'b0c7e3ffd09f68022429920da483ad7abed84aa1':
  mlp_parser: account for AVCodecContext.request_channels when setting the channel layout.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-23 16:34:52 +01:00
Michael Niedermayer
1cf6f6f3da Merge commit '1fd2deedcc6400e08b31566a547a5fac3b38cefb'
* commit '1fd2deedcc6400e08b31566a547a5fac3b38cefb':
  mlpdec: set the channel layout.

Conflicts:
	libavcodec/mlpdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-23 16:12:05 +01:00
Michael Niedermayer
cd6a8618b1 Merge commit '3ffcccb4fbaae4d5ad775506f1f2761f2029affa'
* commit '3ffcccb4fbaae4d5ad775506f1f2761f2029affa':
  mlpdec: TrueHD: use Libav channel order.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-23 16:05:56 +01:00
Michael Niedermayer
fa36270c4c Merge commit '99ccd2ba10eac2b282c272ad9e75f082123c765a'
* commit '99ccd2ba10eac2b282c272ad9e75f082123c765a':
  mlp: store the channel layout for each substream.

Conflicts:
	libavcodec/mlp_parser.c
	libavcodec/mlpdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-23 15:52:39 +01:00
Michael Niedermayer
8102f27b5b Merge commit '73b704ac609d83e0be124589f24efd9b94947cf9'
* commit '73b704ac609d83e0be124589f24efd9b94947cf9':
  arm: Add some missing header #includes
  floatdsp: move scalarproduct_float from dsputil to avfloatdsp.

Conflicts:
	libavcodec/acelp_pitch_delay.c
	libavcodec/amrnbdec.c
	libavcodec/amrwbdec.c
	libavcodec/ra288.c
	libavcodec/x86/dsputil_mmx.c
	libavutil/x86/float_dsp.asm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-23 14:31:55 +01:00
Michael Niedermayer
24604ebaf8 Merge commit '5959bfaca396ecaf63a8123055f499688b79cae3'
* commit '5959bfaca396ecaf63a8123055f499688b79cae3':
  floatdsp: move butterflies_float from dsputil to avfloatdsp.

Conflicts:
	libavcodec/dsputil.c
	libavcodec/dsputil.h
	libavcodec/imc.c
	libavcodec/mpegaudiodec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-23 14:13:54 +01:00
Michael Niedermayer
6e6e170898 Merge commit '42d324694883cdf1fff1612ac70fa403692a1ad4'
* commit '42d324694883cdf1fff1612ac70fa403692a1ad4':
  floatdsp: move vector_fmul_reverse from dsputil to avfloatdsp.

Conflicts:
	libavcodec/arm/dsputil_init_vfp.c
	libavcodec/arm/dsputil_vfp.S
	libavcodec/dsputil.c
	libavcodec/ppc/float_altivec.c
	libavcodec/x86/dsputil.asm
	libavutil/x86/float_dsp.asm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-23 14:04:50 +01:00
Michael Niedermayer
b1b870fbd7 Merge commit '55aa03b9f8f11ebb7535424cc0e5635558590f49'
* commit '55aa03b9f8f11ebb7535424cc0e5635558590f49':
  floatdsp: move vector_fmul_add from dsputil to avfloatdsp.

Conflicts:
	libavcodec/dsputil.c
	libavcodec/x86/dsputil.asm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-23 13:54:34 +01:00
Xi Wang
cf29f49d8a rtpenc: fix overflow checking in avc_mp4_find_startcode()
The check `start + res < start' is broken since pointer overflow is
undefined behavior in C.  Many compilers such as gcc/clang optimize
away this check.

Use `res > end - start' instead.  Also change `res' to unsigned int
to avoid signed left-shift overflow.

Signed-off-by: Xi Wang <xi.wang@gmail.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-23 13:51:29 +02:00
Xi Wang
ecb918e5f0 rtmp: fix buffer overflows in ff_amf_tag_contents()
A negative `size' will bypass FFMIN().  In the subsequent memcpy() call,
`size' will be considered as a large positive value, leading to a buffer
overflow.

Change the type of `size' to unsigned int to avoid buffer overflow, and
simplify overflow checks accordingly. Also change a literal buffer
size to use sizeof, and limit the amount of data copied in another
memcpy call as well.

Signed-off-by: Xi Wang <xi.wang@gmail.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-23 13:51:28 +02:00
Xi Wang
3cff53369a rtmp: fix multiple broken overflow checks
Sanity checks like `data + size >= data_end || data + size < data' are
broken, because `data + size < data' assumes pointer overflow, which is
undefined behavior in C.  Many compilers such as gcc/clang optimize such
checks away.

Use `size < 0 || size >= data_end - data' instead.

Signed-off-by: Xi Wang <xi.wang@gmail.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-23 13:51:27 +02:00
Paul B Mahol
205b2d2a98 adcpmenc: remove unused header
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-23 11:21:09 +00:00
Paul B Mahol
a2dd988bf8 jpeglsenc: add missing put_bits.h header
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-23 11:21:09 +00:00
Paul B Mahol
be38aaba4a ffv1enc: include correct header
Encoder needs put_bits.h, not get_bits.h

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-23 11:21:09 +00:00
Paul B Mahol
6f465c6219 dcaenc: remove unused header
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-23 11:21:09 +00:00
Paul B Mahol
92d874cb78 flacenc: include correct header
Encoder needs put_bits.h, not get_bits.h

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-23 11:21:09 +00:00
Martin Storsjö
2e4130037c float_dsp: Include config.h for redefining restrict
This makes sure that the restrict keyword is mapped to whatever
keyword the compiler prefers/supports. This fixes building on MSVC
(and possibly on GCC 2.x as well).

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-23 11:17:32 +02:00
Xi Wang
4e692374f7 rtmp: fix buffer overflows in ff_amf_tag_contents()
A negative `size' will bypass FFMIN().  In the subsequent memcpy() call,
`size' will be considered as a large positive value, leading to a buffer
overflow.

Change the type of `size' to unsigned int to avoid buffer overflow, and
simplify overflow checks accordingly.

Signed-off-by: Xi Wang <xi.wang@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-23 05:29:59 +01:00
Xi Wang
902cfe2f74 rtmp: fix multiple broken overflow checks
Sanity checks like `data + size >= data_end || data + size < data' are
broken, because `data + size < data' assumes pointer overflow, which is
undefined behavior in C.  Many compilers such as gcc/clang optimize such
checks away.

Use `size < 0 || size >= data_end - data' instead.

Signed-off-by: Xi Wang <xi.wang@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-23 05:28:38 +01:00
Xi Wang
2f014567cf rtpenc: fix overflow checking in avc_mp4_find_startcode()
The check `start + res < start' is broken since pointer overflow is
undefined behavior in C.  Many compilers such as gcc/clang optimize
away this check.

Use `res > end - start' instead.  Also change `res' to unsigned int
to avoid signed left-shift overflow.

Signed-off-by: Xi Wang <xi.wang@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-23 05:28:01 +01:00
Michael Niedermayer
713dea584b truemotion2: use av_mallocz()
Fixes use of uninitialized values.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-23 05:25:04 +01:00
Michael Niedermayer
e49c2aab80 truemotion2: clear the token array if its initialization fails.
Fixes use of uninitialized and half initialized values, which
can occur on several error pathes

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-23 05:24:08 +01:00
Ronald S. Bultje
baf35bb4bc dsputil: remove one array dimension from avg_no_rnd_pixels_tab. 2013-01-22 18:41:36 -08:00
Ronald S. Bultje
2612c4dc78 dsputil: remove 9/10 bits hpel functions.
These are never used.
2013-01-22 18:41:36 -08:00
Ronald S. Bultje
2bef1a83d7 dsputil: remove some never-assigned function pointers from the struct. 2013-01-22 18:41:36 -08:00
Ronald S. Bultje
32ff643228 dsputil: remove avg_no_rnd_pixels8.
This is never used.
2013-01-22 18:41:36 -08:00
Diego Biurrun
88bd7fdc82 Drop DCTELEM typedef
It does not help as an abstraction and adds dsputil dependencies.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2013-01-22 18:32:56 -08:00
Ronald S. Bultje
2e4bb99f4d vorbisdsp: convert x86 simd functions from inline asm to yasm. 2013-01-22 18:02:24 -08:00
Ronald S. Bultje
0ee8293a77 vp3dsp: don't do aligned reads on input.
The input is not guaranteed to be aligned.
2013-01-22 17:32:07 -08:00
Michael Niedermayer
b89815f519 mvdec: check channel count.
Fixes division by 0

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-22 23:06:49 +01:00
Michael Niedermayer
e6cc3c869b mvdec: minor simplification, remove av_inv_q()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-22 22:52:23 +01:00
Michael Niedermayer
4c9f35bb7c mvdec: use avpriv_set_pts_info() instead of directly setting tb.
Fixes division by 0

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-22 22:41:09 +01:00
Michael Niedermayer
1bb05797ec sanm: remove "duplicate" for loop.
Fixes input buffer overread

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-22 22:29:23 +01:00
Tim Walker
ed1b01131e mlp: implement support for AVCodecContext.request_channel_layout.
Also wrap usage of AVCodecContext.request_channels in FF_API_REQUEST_CHANNELS directives.

Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2013-01-22 16:10:02 -05:00
Tim Walker
b0c7e3ffd0 mlp_parser: account for AVCodecContext.request_channels when setting the channel layout.
Allows users to configure the output based on what's actually decoded, rather than the full native layout.

Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2013-01-22 16:10:02 -05:00
Tim Walker
1fd2deedcc mlpdec: set the channel layout.
Fixes bug 401.

Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>

CC:libav-stable@libav.org
2013-01-22 16:10:02 -05:00
Tim Walker
3ffcccb4fb mlpdec: TrueHD: use Libav channel order.
Fixes bug 208.

Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>

CC:libav-stable@libav.org
2013-01-22 16:10:02 -05:00
Tim Walker
99ccd2ba10 mlp: store the channel layout for each substream.
Also stop storing the channel arrangement in the header info, as it's unused outside of ff_mlp_read_major_sync.

Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>

CC:libav-stable@libav.org
2013-01-22 16:10:02 -05:00
Tim Walker
40cf1add12 mlp_parser: cosmetics: re-indent.
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2013-01-22 16:10:02 -05:00
Michael Niedermayer
49b729d3af sanm: check image dimensions before using them
Avoids integer overflows and out of array accesses.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-22 21:39:56 +01:00
Diego Biurrun
73b704ac60 arm: Add some missing header #includes 2013-01-22 21:24:10 +01:00
Ronald S. Bultje
5959bfaca3 floatdsp: move butterflies_float from dsputil to avfloatdsp.
This makes wmadec/enc, twinvq and mpegaudiodec (i.e. mp2/mp3)
independent of dsputil.
2013-01-22 11:55:42 -08:00
Ronald S. Bultje
42d3246948 floatdsp: move vector_fmul_reverse from dsputil to avfloatdsp.
Now, nellymoserenc and aacenc no longer depends on dsputil. Independent
of this patch, wmaprodec also does not depend on dsputil, so I removed
it from there also.
2013-01-22 11:55:42 -08:00
Ronald S. Bultje
55aa03b9f8 floatdsp: move vector_fmul_add from dsputil to avfloatdsp. 2013-01-22 11:55:42 -08:00
Ronald S. Bultje
d56668bd80 floatdsp: move scalarproduct_float from dsputil to avfloatdsp.
This makes the aac decoder and all voice codecs independent of dsputil.
2013-01-22 11:55:42 -08:00
Paul B Mahol
c4274d118b lagarith: return more meaningful error codes
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-22 19:48:23 +00:00
Stefano Sabatini
5b10c5e7e4 lavfi/showwaves: fix check on showwaves->outpicref
outpicref is not always in synch with showwaves->outpicref, which is
changed as a side effect of the call to functions.

Fix regression introduced in 5f634480d1,
+10l to me.
2013-01-22 20:34:29 +01:00
Carl Eugen Hoyos
379d03b0c9 Fix compilation with --disable-everything --enable-demuxer=loas 2013-01-22 20:28:31 +01:00
Matthieu Bouron
c114414a57 lavf/aiffenc: ID3 tags support
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-22 20:27:05 +01:00
Stefano Sabatini
30a40d4a55 lavf/segment: provide link to HTML M3U8 draft, also fix mentioned version in docs 2013-01-22 20:25:45 +01:00
Stefano Sabatini
7694533fda doc/muxers: remove outdated comment about live flags for the segment muxer
The live flags is currently unused, but still kept for backward
compatibility reasons (and in case it turns to be useful again for
whatever reason).
2013-01-22 20:25:33 +01:00
Carl Eugen Hoyos
40297a8bdb Support solid gray frames when decoding Lagarith.
Fixes bug 431.
2013-01-22 20:17:53 +01:00
James Almer
e65d8509f0 libm: Add fallback definition for cbrt() using pow()
The function is known to be missing in at least one target (MSVC).

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-22 16:02:31 +01:00
Michael Niedermayer
26345acb0e Merge remote-tracking branch 'qatar/master'
* qatar/master:
  proresdec: support mixed interlaced/non-interlaced content
  vp3/5: move put_no_rnd_pixels_l2 from dsputil to VP3DSPContext.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-22 15:33:23 +01:00
Michael Niedermayer
9774251c45 rtpenc: do not use random values for seq when bitexact is requested.
Fixes fate

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-22 14:40:18 +01:00
Michael Niedermayer
73b59cc1ba Merge commit '4f56e773fe8a554b8c2662650aaf799c2ece2721'
* commit '4f56e773fe8a554b8c2662650aaf799c2ece2721':
  x86: ac3: Fix HAVE_MMXEXT condition to only refer to external assembly
  rtpenc: Start the sequence numbers from a random offset

Conflicts:
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-22 14:27:48 +01:00
Michael Niedermayer
eb2f499e37 Merge commit '9146e872c643fb8f20f9043f1b93a3cddfad15c6'
* commit '9146e872c643fb8f20f9043f1b93a3cddfad15c6':
  Revert "fate: Use wmv2 IDCT for wmv2 tests"

Conflicts:
	tests/fate-run.sh
	tests/fate/vcodec.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-22 14:09:59 +01:00
Michael Niedermayer
766f055201 Merge commit '4af5310d29379283553bcd9f541a3f6c317f706e'
* commit '4af5310d29379283553bcd9f541a3f6c317f706e':
  get_bits/put_bits: K&R formatting cosmetics

Conflicts:
	libavcodec/get_bits.h
	libavcodec/put_bits.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-22 13:49:45 +01:00
Michael Niedermayer
b4a7f4d018 Merge commit '570a4a0189946c2c983da41d37fdd67fa13266e7'
* commit '570a4a0189946c2c983da41d37fdd67fa13266e7':
  avidec: use sensible error codes instead of -1

Conflicts:
	libavformat/avidec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-22 13:38:20 +01:00
Michael Smith
0881cbf314 proresdec: support mixed interlaced/non-interlaced content
Set interlaced to false if we don't have an interlaced frame

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-22 05:40:57 +01:00
Michael Niedermayer
0a84174f2d mov: prevent double free if the caller replaces the io context.
Fixes Ticket2148

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-22 05:15:47 +01:00
Michael Niedermayer
b3ab281027 avcodec/x86/cabac: workaround llvm 4.2.1 bug
x86_64 is affected by this too
Fixes Ticket2156

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-22 03:43:29 +01:00
Ronald S. Bultje
4a73fbd9c5 vp3/5: move put_no_rnd_pixels_l2 from dsputil to VP3DSPContext.
The function is only used in VP3 and VP5, so no need to have it in
DSPContext.
2013-01-21 18:08:55 -08:00
Michael Niedermayer
2338af0fb4 doc: document aresample:first_pts
Documentation copied from asyncts, the options are supposed to do
the same thing. If not please submit a testcase where they differ
so we can fix it.

Disscussed-with: saste on IRC
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-22 01:38:55 +01:00
Diego Biurrun
4f56e773fe x86: ac3: Fix HAVE_MMXEXT condition to only refer to external assembly
CC: libav-stable@libav.org
2013-01-21 23:54:32 +01:00
Martin Storsjö
ab587f39b2 rtpenc: Start the sequence numbers from a random offset
Expose the current sequence number via an AVOption - this can
be used both for setting the initial sequence number, or for
querying the current number.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-22 00:25:38 +02:00
Michael Niedermayer
e4eebc2da9 avf_showwaves: fix null pointer dereference
Found-by: durandal_1707
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-21 23:00:20 +01:00
Michael Niedermayer
03a82d588b doc/swr: More verbose description of the force resample flag.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-21 22:45:58 +01:00
Michael Niedermayer
c5f9cc9636 doc/swr: elaborate on what the LFE mix level is.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-21 21:48:34 +01:00
Michael Niedermayer
ace74b2122 doc/swr: typo fix
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-21 21:46:48 +01:00
Michael Niedermayer
e0f208a637 doc/swr: docu lfe mix level unit & range
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-21 21:44:39 +01:00
Michael Niedermayer
4606183262 doc/swr: try to fix non english "inclusively included between"
Googling this term has 9 hits, 7 from ffmpeg

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-21 21:41:07 +01:00
Michael Niedermayer
83440f40ba doc/swr: Mention that the internal sample format is choosen automatically if not set
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-21 21:16:43 +01:00
Michael Niedermayer
2dd07518af docs/swr: better used_channel_count docs
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-21 21:14:27 +01:00
Michael Niedermayer
05340be97b img2dec: support seeking in infinitely looped stream
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-21 19:53:41 +01:00
Luca Barbato
9146e872c6 Revert "fate: Use wmv2 IDCT for wmv2 tests"
This reverts commit ce378f0dd0.
2013-01-21 19:43:53 +01:00
Stefano Sabatini
0f2d4eddd8 doc/muxers: extend and clarify documentation for the segment muxer time options 2013-01-21 19:26:44 +01:00
Stefano Sabatini
4630dfd1eb lavf/hlsenc: append last incomplete segment when closing the output
Also introduce missing check on PTS value in case of NOPTS value.
2013-01-21 19:21:21 +01:00
Michael Niedermayer
aeef76b383 dsputil: CONFIG_DWT doesnt exist anymore
place snow dwt init under correct checks
should fix compilation with enable-random

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-21 19:09:16 +01:00
Michael Niedermayer
5b95d39ee1 vp3: fix compilation with a disabled theora
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-21 19:04:34 +01:00
Diego Biurrun
4af5310d29 get_bits/put_bits: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-01-21 17:03:41 +01:00
Michael Niedermayer
ed37a566c9 oggdec: remove unused variables
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-21 16:41:50 +01:00
Michael Niedermayer
f6a80d6e63 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  dsputilenc: x86: Convert pixel inline asm to yasm
  libgsm: detect libgsm header path

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-21 16:34:37 +01:00
Michael Niedermayer
cf4515ecd9 Merge commit 'ce378f0dd0c4e5350b3280e6b3e8d6b46fe4b0a3'
* commit 'ce378f0dd0c4e5350b3280e6b3e8d6b46fe4b0a3':
  fate: Use wmv2 IDCT for wmv2 tests
  vorbisdsp: change block_size type from int to intptr_t.

Conflicts:
	tests/fate-run.sh
	tests/fate/vcodec.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-21 16:28:04 +01:00
Paul B Mahol
6ea8a830e8 afade filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-21 15:20:42 +00:00
Michael Niedermayer
5f61e09a8f Merge commit '93af2734ee609133eaeca28329d7f13241dd411f'
* commit '93af2734ee609133eaeca28329d7f13241dd411f':
  lavc: put FF_IDCT_{VP3,H264,CAVS,BINK,EA,WMV2} under FF_API_IDCT.

Conflicts:
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-21 16:14:41 +01:00
Michael Niedermayer
db23d5de27 Merge commit 'e6bc38fd49c94726b45d5d5cc2b756ad8ec49ee0'
* commit 'e6bc38fd49c94726b45d5d5cc2b756ad8ec49ee0':
  wmv2: move IDCT to its own DSP context.

Conflicts:
	libavcodec/dsputil.h
	tests/ref/seek/vsynth2-wmv2
	tests/ref/vsynth/vsynth1-wmv2
	tests/ref/vsynth/vsynth2-wmv2

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-21 16:07:21 +01:00
Jindrich Makovicka
570a4a0189 avidec: use sensible error codes instead of -1
Use AVERROR_INVALIDDATA on invalid inputs, and AVERROR_EOF when no more
frames are available in an interleaved AVI.

Signed-off-by: Jindrich Makovicka <makovick@gmail.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-01-21 16:02:40 +01:00
Michael Niedermayer
2cf9ab6555 Merge commit '8a4f26206d7914eaf2903954ce97cb7686933382'
* commit '8a4f26206d7914eaf2903954ce97cb7686933382':
  dsputil: remove butterflies_float_interleave.
  srtp: Move a variable to a local scope
  srtp: Add tests for the crypto suite with 32/80 bit HMAC

Conflicts:
	libavcodec/x86/dsputil.asm
	libavcodec/x86/dsputil_mmx.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-21 15:18:57 +01:00
Michael Niedermayer
248140f8a2 Merge commit '3ef6d22e1ba544ab37c73e8fc61382f13aac250f'
* commit '3ef6d22e1ba544ab37c73e8fc61382f13aac250f':
  srtp: cosmetics: Use fewer lines for the test vectors
  srtp: Don't require more input data than what actually is needed

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-21 15:07:07 +01:00
Michael Niedermayer
bc639dbd9b Merge commit 'a2a991b2ddf951454ffceb7bcedc9db93e26c610'
* commit 'a2a991b2ddf951454ffceb7bcedc9db93e26c610':
  srtp: Improve the minimum encryption buffer size check
  srtp: Add support for a few DTLS-SRTP related crypto suites

Conflicts:
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-21 15:00:45 +01:00
Michael Niedermayer
acc0c0190b Merge commit 'f53490cc0c809975f8238d5a9edbd26f83bd2f84'
* commit 'f53490cc0c809975f8238d5a9edbd26f83bd2f84':
  rtpdec/srtp: Handle CSRC fields being present
  rtpdec: Check the return value from av_new_packet
  ac3dec: fix non-optimal dithering of zero bit mantissas

Conflicts:
	libavcodec/ac3dec.c
	libavformat/rtpdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-21 14:55:48 +01:00
Michael Niedermayer
fbdb0313f5 ac3dec: fix non-optimal dithering of zero bit mantissas
Use a noise range of -0.707 to 0.707 instead of -0.5 to 0.5

Based on patch by: Mathias Rauen <madshi@gmail.com> and commit by Justin Ruggles (04ea5491)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-21 14:22:04 +01:00
Michael Niedermayer
144529e094 Merge commit 'd9bf716945046333c24580d538f450b516f15710'
* commit 'd9bf716945046333c24580d538f450b516f15710':
  ppc: vorbisdsp: Drop some unnecessary #includes
  avconv: Increase the SDP buffer size to fit xiph SDPs

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-21 14:10:32 +01:00
Michael Niedermayer
0a5da9cc14 Merge commit 'c6f1dc8e4cd967ae056698eafb891a08003c211c'
* commit 'c6f1dc8e4cd967ae056698eafb891a08003c211c':
  rtpdec: Move setting the parsing flags to the actual depacketizers
  rtpdec: Split handling of mpeg12 audio/video to a separate depacketizer

Conflicts:
	libavformat/rtpdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-21 14:02:01 +01:00
Michael Niedermayer
950482bf58 Merge commit '2326558d5277ec87ba6d607a01ec6acfc51c694c'
* commit '2326558d5277ec87ba6d607a01ec6acfc51c694c':
  rtpdec: Split mpegts parsing to a normal depacketizer
  rtpdec: Reorder payload handler registration alphabetically

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-21 13:52:42 +01:00
Michael Niedermayer
c3f3c22563 Merge commit 'a717f9904227d7979473bad40c50eb40af41d01d'
* commit 'a717f9904227d7979473bad40c50eb40af41d01d':
  mpegts: Share the cleanup code between the demuxer and lavf-internal parser functions
  rtpdec_mpeg4: Return one AAC AU per AVPacket
  ppc: Include string.h for memset

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-21 13:45:36 +01:00
Michael Niedermayer
a85311ef84 Merge commit '68f18f03519ae550e25cf12661172641e9f0eaca'
* commit '68f18f03519ae550e25cf12661172641e9f0eaca':
  videodsp_armv5te: remove #if HAVE_ARMV5TE_EXTERNAL
  dsputil: drop non-compliant "fast" qpel mc functions
  get_bits: change the failure condition in init_get_bits

Conflicts:
	libavcodec/get_bits.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-21 13:38:57 +01:00
Paul B Mahol
098d3891be EVRC decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-21 10:24:45 +00:00
Daniel Kang
9f00b1cbab dsputilenc: x86: Convert pixel inline asm to yasm
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-21 09:54:10 +01:00
Brad Smith
c7df1532e5 libgsm: detect libgsm header path
Libgsm header can reside either in the base include dir or in
the gsm subdir.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-21 07:59:35 +01:00
Ronald S. Bultje
ce378f0dd0 fate: Use wmv2 IDCT for wmv2 tests 2013-01-21 07:35:54 +01:00
Ronald S. Bultje
1768e43ceb vorbisdsp: change block_size type from int to intptr_t.
This saves one instruction in the x86-64 assembly.
2013-01-20 22:26:42 -08:00
Ronald S. Bultje
93af2734ee lavc: put FF_IDCT_{VP3,H264,CAVS,BINK,EA,WMV2} under FF_API_IDCT.
This allows us to get rid of them on the next major bump. All of the
above are functionally irrelevant, and most of them are unused, except
the vp3 one, which is used wrongly in the bfin arch optimizations.
2013-01-20 22:15:28 -08:00
Ronald S. Bultje
e6bc38fd49 wmv2: move IDCT to its own DSP context.
This allows us to remove FF_IDCT_WMV2, which serves no practical purpose
other than to be able to select the WMV2 IDCT for MPEG (or vice versa)
and get corrupt output.

Fate tests for all wmv2-related tests change, because (for some obscure
reason) they forced use of the MPEG IDCT. You would get the same changes
previously by not using -idct simple in the fate test (or replacing it
with -idct auto).
2013-01-20 22:12:35 -08:00
Ronald S. Bultje
8a4f26206d dsputil: remove butterflies_float_interleave.
The function is unused.
2013-01-20 21:57:35 -08:00
Michael Niedermayer
c74d4658dc oggdec: #if 0 disabled code
Fixes CID968589
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-21 03:01:53 +01:00
Micah Galizia
c8ea5ccd5d fix memory leak on string reassign
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Fixes CID968584 and CID968585
2013-01-21 02:50:02 +01:00
Michael Niedermayer
00cae86754 swr: support first_pts
Trolled-by: Daemon404
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-21 00:52:14 +01:00
Xi Wang
eb553096e5 lavfi: fix null checking in avfilter_config_links()
Move the first use of `link' after the null pointer check.

Signed-off-by: Xi Wang <xi.wang@gmail.com>
Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-21 00:07:00 +01:00
Carl Eugen Hoyos
cb1c69c81d Clarify that the recommended audio squeezing/stretching filter is aresample.
Fixes ticket #2036.
2013-01-20 23:26:35 +01:00
Martin Storsjö
c9311f3e46 srtp: Move a variable to a local scope
This simplifies the code slightly.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-21 00:17:00 +02:00
Martin Storsjö
3ef6d22e1b srtp: cosmetics: Use fewer lines for the test vectors
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-21 00:13:43 +02:00
Martin Storsjö
a2a991b2dd srtp: Improve the minimum encryption buffer size check
This clarifies where the limit number comes from, and only
requires exactly as much padding space as will be needed.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-21 00:13:43 +02:00
Martin Storsjö
ae01e8d295 srtp: Add tests for the crypto suite with 32/80 bit HMAC
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-21 00:13:43 +02:00
Martin Storsjö
b4bb1d493c srtp: Don't require more input data than what actually is needed
The theoretical minimum for a (not totally well formed) RTCP packet
is 8 bytes, so we shouldn't require 12 bytes as minimum input.

Also return AVERROR_INVALIDDATA instead of 0 if something that is
not a proper packet is given.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-21 00:13:43 +02:00
Martin Storsjö
e1d0b3d875 srtp: Add support for a few DTLS-SRTP related crypto suites
The main difference to the existing suites from RFC 4568 is
that the version with a 32 bit HMAC still uses 80 bit HMAC
for RTCP packets.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-21 00:13:35 +02:00
Martin Storsjö
f53490cc0c rtpdec/srtp: Handle CSRC fields being present
This is untested in practice, but follows the spec.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-21 00:10:47 +02:00
Martin Storsjö
a76bc3bc44 rtpdec: Check the return value from av_new_packet
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-21 00:08:19 +02:00
Xi Wang
64b7e7dcaf cafdec: fix overflow checking in read_header()
Several compilers such as clang/icc/pathscale will optimize the check
pos + size < pos (assuming size > 0) into false, since signed integer
overflow is undefined behavior in C.  This breaks overflow checking.
Use a safe precondition check instead.

Signed-off-by: Xi Wang <xi.wang@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-20 21:30:34 +01:00
Michael Niedermayer
3317414fc1 wtvdec: fix integer overflow
Fixes CID968583
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-20 20:59:30 +01:00
Mathias Rauen
04ea5491a8 ac3dec: fix non-optimal dithering of zero bit mantissas
Use a noise range of -0.707 to 0.707 instead of -0.5 to 0.5

Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2013-01-20 14:20:47 -05:00
Michael Niedermayer
3fba3e79a3 h264/ff_generate_sliding_window_mmcos: fix use of uninitialized variable
Fixes CID968587
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-20 20:02:57 +01:00
Michael Niedermayer
dcbe15813e h264: print mismatching opcode details in check_opcodes()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-20 20:01:39 +01:00
Michael Niedermayer
fc86f88b32 h264: fix use of uninitialized variable
Fixed CID968588

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-20 19:59:28 +01:00
Michael Niedermayer
bc15fcb8cf theora: support midstream reconfiguration
Fixes Ticket868

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-20 17:55:24 +01:00
Michael Niedermayer
7cb27d216d oggdec: Support chained streams, support replacing streams in multistream files.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>

Conflicts:

	Changelog
2013-01-20 17:53:51 +01:00
Diego Biurrun
d9bf716945 ppc: vorbisdsp: Drop some unnecessary #includes
Also fixes compilation with AltiVec disabled.
2013-01-20 17:38:11 +01:00
Martin Storsjö
a23abaf302 avconv: Increase the SDP buffer size to fit xiph SDPs
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-20 18:20:47 +02:00
Martin Storsjö
c6f1dc8e4c rtpdec: Move setting the parsing flags to the actual depacketizers
This gets rid of almost all the codec specific details from the
generic rtpdec code.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-20 18:20:42 +02:00
Martin Storsjö
a9c847c1ba rtpdec: Split handling of mpeg12 audio/video to a separate depacketizer
This also adds checking of mallocs.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-20 18:20:22 +02:00
Martin Storsjö
2326558d52 rtpdec: Split mpegts parsing to a normal depacketizer
This gets rid of a number of special cases from the common rtpdec
code.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-20 18:17:17 +02:00
Martin Storsjö
d5bb8cc2dd rtpdec: Reorder payload handler registration alphabetically
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-20 18:16:04 +02:00
Michael Niedermayer
6136b989f6 vc1dec: add assert to impossible *_valid combination.
This also fixes a warning about uninitialized variables

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-20 17:14:25 +01:00
Martin Storsjö
a717f99042 mpegts: Share the cleanup code between the demuxer and lavf-internal parser functions
The lavf-internal parser functions are used when receiving
mpegts over RTP. This fixes memory leaks in this setup.

The normal mpegts demuxer close function was updated in ec7d0d2e in
2004 to fix leaks, but the parsing function used for RTP wasn't
updated and has been leaking ever since.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-20 18:14:17 +02:00
Martin Storsjö
21f5c24b80 rtpdec_mpeg4: Return one AAC AU per AVPacket
This makes the returned data valid to stream copy into other
containers as well, not only for decoding straight away.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-20 18:12:38 +02:00
Martin Storsjö
d160a2fb4c ppc: Include string.h for memset
This fixes build failures on ppc machines with a compiler that
supports -Werror=implicit-function-declaration.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-20 18:10:21 +02:00
Michael Niedermayer
cc4a41727e swr: fix "may be used uninitialized in this function" warnings
The uninitialized use implicates 0 channels, which is unlikely
to reach this function but fixed anyway in this commit.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-20 17:09:48 +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
Michael Niedermayer
60af6c3138 h264: Only apply error concealment if theres a frame
Without any correctly decoded slices, there can be no frame.

Fixes out of array reads

Found-by: Rafaël Carré
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-20 15:03:13 +01:00
Mans Rullgard
0b711ca3f3 dsputil: drop non-compliant "fast" qpel mc functions
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-01-20 14:50:42 +01:00
Michael Niedermayer
28245fb466 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  Remove put_no_rnd_pixels_l2 function pointer for w=16 from dsputil.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-20 14:25:27 +01:00
Michael Niedermayer
c62cb1112f Merge commit 'fef906c77c09940a2fdad155b2adc05080e17eda'
* commit 'fef906c77c09940a2fdad155b2adc05080e17eda':
  Move vorbis_inverse_coupling from dsputil to vorbisdspcontext.

Conflicts:
	libavcodec/dsputil.c
	libavcodec/x86/dsputil_mmx.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-20 14:13:16 +01:00
Michael Niedermayer
cf061a9c3b Merge commit 'aeaf268e52fc11c1f64914a319e0edddf1346d6a'
* commit 'aeaf268e52fc11c1f64914a319e0edddf1346d6a':
  vp3: integrate clear_blocks with idct of previous block.
  mpegvideo: fix loop condition in draw_line()
  dvdsubdec: parse the size from the extradata

Conflicts:
	libavcodec/dvdsubdec.c
	libavcodec/mpegvideo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-20 13:57:10 +01:00
Luca Barbato
4603ec85ed get_bits: change the failure condition in init_get_bits
Too much code relies in having init_get_bits fed with a valid
buffer and set its dimension to 0.

Check for NULL buffer instead.
2013-01-20 13:37:56 +01:00
Ronald S. Bultje
0e02b381b4 Remove put_no_rnd_pixels_l2 function pointer for w=16 from dsputil.
The function is never used.
2013-01-19 22:37:45 -08:00
Ronald S. Bultje
fef906c77c Move vorbis_inverse_coupling from dsputil to vorbisdspcontext.
Conveniently (together with Justin's earlier patches), this makes
our vorbis decoder entirely independent of dsputil.
2013-01-19 22:21:10 -08:00
Ronald S. Bultje
aeaf268e52 vp3: integrate clear_blocks with idct of previous block.
This is identical to what e.g. vp8 does, and prevents the function call
overhead (plus dependency on dsputil for this particular function).

Arm asm updated by Janne Grunau <janne-libav@jannau.net>.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2013-01-19 22:04:55 -08:00
Matthieu Bouron
b3b456b258 lavf/id3v2: seek back to previous offset if header size is not matched
Makes ff_id3v2_read reset stream position at the end of ID3 data if the
header size is not matched (caused by an EOF for example).

Current behaviour (without the patch):
    filesize = 400
    id3 data size = 399
    file offset after ff_id3v2_read is 400 instead of 399

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-20 04:39:56 +01:00
Michael Niedermayer
0c6b0409af mpeg1enc: Disable threads for resolutions too large for multi-threading
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-20 04:14:09 +01:00
Michael Niedermayer
89afa635bf sws: check that dither array is not null before memset
Fixes null pointer dereference

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-19 23:38:17 +01:00
Michael Niedermayer
aef5c0b68f sws: Check for unsupported combination of ED/FULL_CHR flags
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-19 23:13:40 +01:00
Michael Niedermayer
f94220ac7a sws: Fix error diffusion flag
The used flag was mistakenly overlapping with chroma drop

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-19 23:13:40 +01:00
Xi Wang
992b031838 mpegvideo: fix loop condition in draw_line()
The loop condition `x = ex' is incorrect.  It should be `x <= ex'.

This bug was introduced in commit c65dfac4 "mpegvideo.c: K&R formatting
and cosmetics."

CC:libav-stable@libav.org

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-19 22:20:43 +01:00
Nicolas George
beb5d8f07d ffmpeg: accept "chapters" as forced key frames.
Allow to force a key frame at the beginning of each chapter.
2013-01-19 15:22:34 +01:00
Clément Bœsch
40976257bc dvdsubdec: parse the size from the extradata
Signed-off-by: Alexandra Khirnova <alexandra.khirnova@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-19 15:12:58 +01:00
Michael Niedermayer
9381521968 cmdline: fix -- to escape files starting with -
Fixes Ticket2127

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-19 14:50:36 +01:00
Matthieu Bouron
61625565e4 lavf/id3v2: cosmetics: reindent
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-19 14:37:44 +01:00
James Almer
b6576dca99 configure: Fix Barcelona and Bulldozer compiler options with suncc
Barcelona/amdfam10 does not support SSE4 instructions.
Also, Bulldozer supports AVX instructions, so use them instead.

Signed-off-by: James Almer <jamrial@gmail.com>
Reviewed-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-19 14:38:39 +01:00
James Almer
4f8b73129b doc/Makefile: Fix make docclean
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-19 14:32:29 +01:00
Michael Niedermayer
ed8ff70d9e Merge remote-tracking branch 'qatar/master'
* qatar/master:
  x86: dsputil: Drop some unused macro definitions
  x86: Add a Yasm-based emms() replacement

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-19 13:20:25 +01:00
Michael Niedermayer
b45e0c2573 Merge commit 'd633d12b2cc999cee3ac25bf9a810fe7ff03726d'
* commit 'd633d12b2cc999cee3ac25bf9a810fe7ff03726d':
  x86inc: Add cvisible macro for C functions with public prefix

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-19 13:11:41 +01:00
Michael Niedermayer
1b03e09198 Merge commit 'ef5d41a5534b65f03d02f2e11a503ab8416bfc3b'
* commit 'ef5d41a5534b65f03d02f2e11a503ab8416bfc3b':
  x86inc: Rename "program_name" to "private_prefix"
  configure: Run SHFLAGS through ldflags_filter()

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-19 13:01:06 +01:00
Carl Eugen Hoyos
a5faae46a3 APIchanges: Add git version and fix version for avfilter_ref_get_channels(). 2013-01-19 10:45:34 +01:00
Carl Eugen Hoyos
371cf6ee9a Add APIchanges entry for av_codec_get_tag2(). 2013-01-19 10:42:27 +01:00
Michael Niedermayer
96d1b7ffca h264: unmark frames at the end
Fixes assertion failure

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-19 06:18:58 +01:00
Michael Niedermayer
5c42078b99 sws: fix ED mono dither black level
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-19 04:21:44 +01:00
Michael Niedermayer
7ba9f40ac6 Merge remote-tracking branch 'cus/stable'
* cus/stable:
  ffplay: flush video filters on seek
  ffplay: use videoq.serial to detect obsolete frames

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-19 03:56:05 +01:00
sedacca@comcast.net
24c47f00fe lavfi: EBU R.128 irregular time
Correct the time interval between logged data rows to the expected
value of 100 milliseconds by naming a new loop counter variable
to be distinct from loop counters for inner loops that
inadvertently change the outer loop operation.

This suggested patch is 1 of 3 for Ticket #2144 "libavfilter ebur128
loudness inaccuracy, irregular time interval, LFE interference".
This suggested patch supersedes the contribution of January 15, 2013
in the thread “[PATCH] lavfi: EBU R.128 irreg time, ch weights, skip
LFE” which combined multiple fixes in one patch.

Reviewed-by: Clément Bœsch <ubitux@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-19 03:13:24 +01:00
Michael Niedermayer
2dc2e4f5af sws: Enable full chroma resolution when needed for ED dither
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-19 02:38:48 +01:00
Michael Niedermayer
8045c0167d sws: Only reset dither state for bitexact mode
the output looks better with a random initial state than
all 0

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-19 02:38:48 +01:00
Michael Niedermayer
ca447592b1 sws: rgb/bgr 4/8 error diffusion dither
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-19 02:38:48 +01:00
Michael Niedermayer
d7a46ca179 sws: add AVOption flag for error diffusion dither
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-19 02:38:48 +01:00
Stefano Sabatini
040c461ccf doc/muxers: apply minor cosmetics to segment option descriptions 2013-01-19 00:51:28 +01:00
Marton Balint
f65e57124f ffplay: flush video filters on seek
Actually we just re-create the filters, since there is no way to flush them.
Fixes hangup with yadif filter on seeking forward caused by a filtered frame
with a pts before the seek.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-01-19 00:48:06 +01:00
Marton Balint
1427c6842d ffplay: use videoq.serial to detect obsolete frames
Previously VideoPicture->skip was used for that, using videoq.serial enables us
to detect obsolete frames right after pushing flush_pkt to the packet queue, so
we don't have to wait for the decoder thread to pop the flush packet anymore.

This is good because until now a full video picture queue may have blocked the
decoder thread.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-01-19 00:48:06 +01:00
Stefano Sabatini
d00df260ca lavf/segment: do not auto-select a video stream with attached_pic disposition
In particular, fix trac ticket #2138.
2013-01-19 00:32:08 +01:00
Stefano Sabatini
bbce913edf lavf/segment: move reference stream selection code to a dedicated function 2013-01-19 00:32:01 +01:00
Stefano Sabatini
1de369a632 lavf/segment: remove now unused field list_max_segment_time 2013-01-19 00:23:36 +01:00
Stefano Sabatini
d4890c1068 lavf/segment: add support to segment list file entries sliding window listing
In particular, should fix trac ticket #1842.
2013-01-19 00:22:58 +01:00
Stefano Sabatini
6b7d9d5153 lavf/segment: add SegmentListEntry and use it
This patch is propedeutic to the incoming patch which adds
support to sliding window segment listing.
2013-01-19 00:14:03 +01:00
Stefano Sabatini
176b72a28c lavf/utils: provide feedback in case of invalid probe size
Log message in case the max_probe_size value in av_probe_input_buffer()
is smaller than the minimum accepted value.
2013-01-19 00:13:52 +01:00
Paul B Mahol
c79be51dfc vf_fade: use AVPixFmtDescriptor to find out if pixel format have alpha
Remove alpha_pix_fmts[].

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-18 22:51:05 +00:00
Michael Niedermayer
646ade7679 sws: Support error diffusion dither for mono output
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-18 23:26:00 +01:00
Stefano Sabatini
24bbc416a4 doc/filters: create a dedicated "Examples" subsection for fade, and use @itemize 2013-01-18 23:18:01 +01:00
Stefano Sabatini
2852bd704a lavfi/fade: accept shorthand syntax 2013-01-18 23:17:47 +01:00
Diego Biurrun
822b0728f0 x86: dsputil: Drop some unused macro definitions 2013-01-18 22:24:58 +01:00
Martin Storsjö
f4facd2ce7 x86: Add a Yasm-based emms() replacement
This provides a fallback when building with Yasm enabled, but neither
inline assembly, nor the _mm_empty intrinsic are available or enabled.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-01-18 22:02:13 +01:00
Diego Biurrun
d633d12b2c x86inc: Add cvisible macro for C functions with public prefix
This allows defining externally visible library symbols.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-01-18 22:02:03 +01:00
Diego Biurrun
ef5d41a553 x86inc: Rename "program_name" to "private_prefix"
The new name is more descriptive and will allow defining a separate
public prefix for externally visible library symbols.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-01-18 20:29:53 +01:00
Sean McGovern
6d1114a806 configure: Run SHFLAGS through ldflags_filter()
These flags are as linker-specific as other LDFLAGS and thus
need to be translated to the correct linker syntax.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-01-18 19:10:29 +01:00
Stefano Sabatini
44d5a28b7d doc/filters: avoid @example for showing the drawbox shorthand syntax
Improve overall consistency.
2013-01-18 19:03:58 +01:00
Michael Niedermayer
fd165ace7b golomb: check log validity before shifting
Fixes invalid right shift in fate-cavs

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-18 15:41:32 +01:00
Paul B Mahol
d084c5c742 vf_fade: support YUVA422P & YUVA444P
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-18 14:35:30 +00:00
Michael Niedermayer
13178d002b h264/get_lowest_part_list_y: remove unneeded operations
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-18 15:06:38 +01:00
Michael Niedermayer
8ac0d95bd3 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  h264: avoid pointless copying of ref lists
  lavr: always reset mix function names and pointers in mix_function_init()
  lavr: call mix_function_init() in ff_audio_mix_set_matrix()
  fate: update ref after rv30_loop_filter fix
  rv30: fix masking in rv30_loop_filter()

Conflicts:
	tests/ref/fate/filter-delogo
	tests/ref/fate/rv30

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-18 13:54:38 +01:00
Michael Niedermayer
17596198ca Merge commit '80ac87c13dc8c6c063e26a464c5c542357c0583f'
* commit '80ac87c13dc8c6c063e26a464c5c542357c0583f':
  lavc: support ZenoXVID custom tag
  libcdio: support recent cdio-paranoia
  float_dsp: Add #ifdef HAVE_INLINE_ASM around vector_fmul_window
  theora: Skip zero-sized headers

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-18 13:36:39 +01:00
Jonas Bechtel
a003c5bd4f Fix opencv detection.
This commit changes the ".so" argument placement in check_ld sub-program.
2013-01-18 10:30:43 +01:00
Anton Khirnov
940b8b5861 h264: avoid pointless copying of ref lists
ref_list is constructed from other fields per slice when needed, so do
not copy it for both frame and slice threading.
default_ref_list is constructed per frame and still needs to be copied
to per-slice contexts for slice threading, but a copy is not needed for
frame threading.
2013-01-18 07:56:05 +01:00
Michael Niedermayer
d270c32025 avcodec_decode_audio: do not trust the channel layout, use the channel count.
Fixes memory corruption

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-18 01:29:38 +01:00
Justin Ruggles
b90632d596 lavr: always reset mix function names and pointers in mix_function_init()
CC: libav-stable@libav.org
2013-01-17 19:27:01 -05:00
Justin Ruggles
f07ef2d9c9 lavr: call mix_function_init() in ff_audio_mix_set_matrix()
This is needed if a custom matrix is set by the user after opening the
AVAudioResampleContext because the matrix channel count can change if
different mixing coefficients are used.

CC:libav-stable@libav.org
2013-01-17 19:27:01 -05:00
Michael Niedermayer
4aed4f5846 mlpdec: dont leave a invalid huff_lsb in the context.
Fix assertion failure

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-18 00:23:17 +01:00
Michael Niedermayer
e1d7d4bd13 mpegvideo: reset context state on failed thread update.
Fixes assertion failure

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-17 23:43:35 +01:00
Luca Barbato
56ef1ef1f7 fate: update ref after rv30_loop_filter fix 2013-01-17 23:40:48 +01:00
Xi Wang
783e37f7ef rv30: fix masking in rv30_loop_filter()
The mask `x && (1 << y)' is incorrect and always yields true.

The correct form should be `x & (1 << y)'.

CC: libav-stable@libav.org

Signed-off-by: Xi Wang <xi.wang@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-17 21:55:27 +01:00
Luca Barbato
80ac87c13d lavc: support ZenoXVID custom tag
Looks like this kind of samples are produced by certain Russian
equipment.
2013-01-17 21:41:18 +01:00
Luca Barbato
43e0e0c4e5 libcdio: support recent cdio-paranoia
Upstream decided to split the paranoia interface and move the headers
accordingly.
2013-01-17 21:41:18 +01:00
Carl Eugen Hoyos
9a038a95d2 Use new function av_codec_get_tag2() in ffmpeg.c.
Fixes ticket #1953.
2013-01-17 20:46:21 +01:00
Carl Eugen Hoyos
a1a707f728 Add a new function av_codec_get_tag2().
av_codec_get_tag() may return 0 both in case a codec_tag was
found and if no codec_tag was found.
The new function does not have this ambiguity.
2013-01-17 20:44:33 +01:00
Paul B Mahol
8fdd24455e .gitignore: add /doc/examples/pc-uninstalled
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-17 17:59:18 +00:00
Martin Storsjö
973b4d44f1 float_dsp: Add #ifdef HAVE_INLINE_ASM around vector_fmul_window
This fixes builds on 64bit MSVC.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-17 19:07:35 +02:00
Martin Storsjö
e33db35b4a theora: Skip zero-sized headers
This fixes a regression since d9cf5f51 with theora over RTP
(possibly with other variants of theora as well).

In theora over RTP, the second of the 3 headers turns out to be
0 bytes long, which prior to d9cf5f51 worked just fine. After
d9cf5f51, reading from the bitstream reader fails (since the reader
wasn't initialized but returned an error if initialized with 0 bits).

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-17 19:06:56 +02:00
Carl Eugen Hoyos
ad406f7e40 Only skip MLP header in mpeg files if the codec actually is MLP.
Fixes PCM audio in Kansas Pheasant Hunt 2000 mpg file.
Reported-by: Mashiat Sarker Shakkhar
2013-01-17 17:19:08 +01:00
Carl Eugen Hoyos
12cb21efa6 Make the latm decoder less verbose on initialisation.
Reviewed-by: Paul B Mahol
2013-01-17 16:12:59 +01:00
Michael Niedermayer
46730e7a0c mux/chunked interleaver: better align duration chunks.
This code causes the chunking to tend toward more optimal
alignment between streams.
The first chunks can still be less optimal aligned
2013-01-17 15:11:02 +01:00
Michael Niedermayer
69a96f9d4c mux: de-obfuscate chunked interleaver checks
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-17 15:08:50 +01:00
Michael Niedermayer
c57c1329a9 mux: simplify chunking interleaver code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-17 14:45:30 +01:00
Michael Niedermayer
2dc9bcad7d Merge remote-tracking branch 'qatar/master'
* qatar/master:
  idcin: fix memleaks in idcin_read_packet()

Conflicts:
	libavformat/idcin.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-17 13:44:37 +01:00
James Almer
b454c64e03 latmenc: Check for LOAS sync word
Write the packet unaltered if found.

Fixes ticket #1917

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-17 04:55:14 +01:00
Carl Eugen Hoyos
c345100efc Fix detection of struct v4l2_frmsize_discrete.
It was always detected successfully.
2013-01-17 02:11:12 +01:00
Michael Niedermayer
765a3ba018 h264: add assert to check that block_offset is consistent.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-17 00:21:58 +01:00
Michael Niedermayer
97d190283e h264: always copy linesizes in thread update
Fixes inconsistencies in context

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-17 00:21:58 +01:00
Michael Niedermayer
f674cc776f h264: always copy block_offset in thread update
Fixes out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-17 00:21:58 +01:00
Paul B Mahol
641bbd9671 vima: switch to init_get_bits8()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-16 20:56:14 +00:00
Michael Niedermayer
1191db31c1 mux: fix chunked interleaver
The code did not account properly for packets that where added to
the end of the packet list. Also flags for such packets where not
set correctly leading to incorrect chunked interleaving.

Reported-by: bcoudurier
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-16 20:22:58 +01:00
Michael Niedermayer
b7bc49a957 mips: move vector_fmul_window_mips to libavutil
Reviewed-by: "Babic, Nedeljko" <nbabic@mips.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-16 20:15:48 +01:00
Justin Ruggles
b805c725a3 idcin: fix memleaks in idcin_read_packet()
Fixes fate-id-cin-video failures when running FATE with valgrind.
2013-01-16 12:21:35 -05:00
Nicolas George
0942aa4637 lafv/matroska: add A_OPUS/EXPERIMENTAL codec name.
The exact packing of Opus inside Matroska is not finalized.
Use A_OPUS/EXPERIMENTAL as codec name, like mkvtoolnix.
The A_OPUS name stays to let ffmpeg open files it has produced
until now, but newly produced file use the EXPERIMENTAL version.
Once the spec is stabilized it will be possible to consider
options to ensure compatibility with these files.
2013-01-16 15:53:01 +01:00
Michael Niedermayer
f0cf017dee configure: suppress "enumerated type mixed with another type" for icc
icc should not complain when 2 enum values are combined (for example when
used as flags)
Adding casts to suppress these would not help code quality

Reviewed-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-16 14:00:39 +01:00
Michael Niedermayer
cae11e4031 mux: fix chunked_duration rounding anomaly
a small value was rounded to 0 and then treated special as if
chunked_duration was 0. This led to a inconsistency that further led
to wrong interleaving

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-16 13:49:02 +01:00
Michael Niedermayer
5c7e9e16c9 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  lavc: Move vector_fmul_window to AVFloatDSPContext
  rtpdec_mpeg4: Check the remaining amount of data before reading

Conflicts:
	libavcodec/dsputil.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-16 12:38:41 +01:00
Nicolas George
0e79fe37e5 lavd/v4l2: init return value.
Fix a warning and random failures.
2013-01-16 12:21:58 +01:00
Michael Niedermayer
1459f34251 Merge commit '977d4a3b8a2dbc2fb5e747c7072485016c9cdfaa'
* commit '977d4a3b8a2dbc2fb5e747c7072485016c9cdfaa':
  rtpdec_mpeg4: Check the return value from malloc
  srtp: Mark a few variables as uninitialized

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-16 12:13:16 +01:00
Michael Niedermayer
9ea65c65f7 Merge commit '0eecafc948b74c247ebbc59f18f508db5d590d0b'
* commit '0eecafc948b74c247ebbc59f18f508db5d590d0b':
  configure: Make the new srtp protocol depend on the rtp protocol
  lavf: Add a fate test for the SRTP functions
  lavu: Add a fate test for the HMAC API

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-16 12:07:27 +01:00
Michael Niedermayer
06af724c56 Merge commit 'fb845ffdd335a1efd6dfd43e8adeb530397b348e'
* commit 'fb845ffdd335a1efd6dfd43e8adeb530397b348e':
  h264: add 3 pixels below for subpixel filter wait position
  dvdsubdec: Support palette in mkv

Conflicts:
	libavcodec/dvdsubdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-16 12:01:21 +01:00
Michael Niedermayer
68f92a70f1 Merge commit 'dae1d507af94261bafd3b11549884e5d1eca590e'
* commit 'dae1d507af94261bafd3b11549884e5d1eca590e':
  x86: Add PAVGB macro to abstract pavgb/pavgusb instruction via cpuflags
  vf_fps: add final flushed frames to the dropped frame count
  rv34_parser: Adjust #if for disabling individual parsers

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-16 11:44:45 +01:00
Stephan Hilb
f245a2086a lavd/v4l2: update broken link to v4l2 video capture example
Reviewed-by: Stefano Sabatini
2013-01-16 11:27:20 +01:00
Stephan Hilb
36810215fa lavd/v4l2: improve debug message
Reviewed-by: Stefano Sabatini
2013-01-16 11:26:38 +01:00
Justin Ruggles
e034cc6c60 lavc: Move vector_fmul_window to AVFloatDSPContext
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-16 10:45:45 +01:00
Martin Storsjö
a7ba324413 rtpdec_mpeg4: Check the remaining amount of data before reading
This fixes possible buffer overreads.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-16 11:12:39 +02:00
rogerdpack
c916389bd2 dshow: allow for more codec ID's
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
2013-01-16 00:23:53 -07:00
rogerdpack
3b9166fc7e dshow: better error reporting
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
2013-01-16 00:18:40 -07:00
rogerdpack
6d33026668 dshow: fix log message
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
2013-01-16 00:11:15 -07:00
Michael Niedermayer
bbe56bcd6b motion_est: Limit motion vector search range to MAX_MV
Fixes out of array reads with videos exceeding MAX_MV

Found-by: Thierry Foucu
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-16 05:55:24 +01:00
Michael Niedermayer
5c6283e5c3 mpegvideo: Increase MAX_MV for HD video
Fixes out of array reads

Found-by: Thierry Foucu
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-16 05:51:04 +01:00
Michael Niedermayer
2d372d3a3f h264: document h264_set_parameter_from_sps() re-calling behavior
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-16 05:22:30 +01:00
Michael Niedermayer
31c4a1b7d0 h264: do not mess up cur_chroma_format_idc during thread update
Fixes out of array reads
Regression probably since allowing pixel format changes or a related commit

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-16 05:15:40 +01:00
rogerdpack
c540312ac3 Merge remote-tracking branch 'origin/master' into combined 2013-01-15 19:09:15 -07:00
rogerdpack
47e88486b4 hdyc col
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
2013-01-15 18:37:30 -07:00
Ronald S. Bultje
2c85d7c015 h264: add 3 pixels below for subpixel filter wait position.
If the motion vector is at a subpixel position, we need 3 pixels below
the motion vector's wholepel position available, not 2, since the MC
filter is a sixtap filter for the hpel position, and then a bilin filter
for the qpel position.

This patch fixes highly irreproducible (0.1%) fate failures in frame 2
and 4 of h264-conformance-cama2_vtc_b (e.g. first P-frame, first field,
last line of MB x=40,y=2 and second field and last lines of MBs x=39-40,
y=3). These used pre-loopfilter instead of post-loopfilter data because
the await_progress() waited for one line too little in that field, and
the motion vector of these particular MBs happened to align exactly to a
position where that demonstrates the bug.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-16 01:22:30 +01:00
rogerdpack
a50049a197 dshow: use standardized raw pixel format lookup
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
2013-01-15 17:07:54 -07:00
Angelo Haller
e7a39e163d examples/demuxing: free AVPacket after usage
Fix leak.
2013-01-15 23:37:30 +01:00
Stefano Sabatini
c92b6f347d tools: add plotframes script
The script is ported from ffprobe/SourceForge and updated to the current
ffprobe version.
2013-01-15 22:50:19 +01:00
Micah Galizia
10315b1cb8 doc/protocols: document HTTP protocol cookie support
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2013-01-15 22:26:44 +01:00
Micah Galizia
0b80a12184 lavf/http: add HTTP protocol cookie support
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2013-01-15 22:26:30 +01:00
Martin Storsjö
977d4a3b8a rtpdec_mpeg4: Check the return value from malloc
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-15 23:18:33 +02:00
Martin Storsjö
0eecafc948 configure: Make the new srtp protocol depend on the rtp protocol
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-15 23:18:08 +02:00
Martin Storsjö
42364fcbca srtp: Mark a few variables as uninitialized
This squelches false positive warnings (with gcc) about them being
used uninitalized.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-15 23:18:08 +02:00
Martin Storsjö
c2603aa25b lavf: Add a fate test for the SRTP functions
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-15 23:18:08 +02:00
Martin Storsjö
3130fa51a5 lavu: Add a fate test for the HMAC API
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-15 23:18:07 +02:00
Ronald S. Bultje
fb845ffdd3 h264: add 3 pixels below for subpixel filter wait position
If the motion vector is at a subpixel position, we need 3 pixels below
the motion vector's wholepel position available, not 2, since the MC
filter is a sixtap filter for the hpel position, and then a bilin filter
for the qpel position.

This patch fixes highly irreproducible (0.1%) fate failures in frame 2
and 4 of h264-conformance-cama2_vtc_b (e.g. first P-frame, first field,
last line of MB x=40,y=2 and second field and last lines of MBs x=39-40,
y=3). These used pre-loopfilter instead of post-loopfilter data because
the await_progress() waited for one line too little in that field, and
the motion vector of these particular MBs happened to align exactly to a
position where that demonstrates the bug.

CC: libav-stable@libav.org

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-15 22:00:34 +01:00
Stefano Sabatini
d012059e7b lavd/v4l2: apply grammar/consistency fixes to options help fields 2013-01-15 21:57:37 +01:00
Stefano Sabatini
aa359d3808 lavd/v4l2: return meaningful error code from device_init()
In particular, propagate errno value in case of device init failure.
2013-01-15 21:48:36 +01:00
Stefano Sabatini
fce165027f lavd/v4l2: fix misc messages 2013-01-15 21:48:27 +01:00
Stefano Sabatini
1b325ce91a lavd/v4l2: extend error/debug feedback in case of invalid codec/pix_fmt 2013-01-15 21:48:21 +01:00
Joakim Plate
f924d52975 dvdsubdec: Support palette in mkv
Matroska stores palette information as plain text in extradata.

Signed-off-by: Alexandra Khirnova <alexandra.khirnova@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-15 20:51:51 +01:00
Michael Niedermayer
c994bb2fb7 oggdec: Leave treatment of serial changes to the decoder.
Attempting to re-parse the headers at demuxer level is a
pandora box the way its done currently.

This allows full reconfiguration of vorbis streams

Fixes Ticket2117
Fixes Ticket2121

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-15 20:19:30 +01:00
Michael Niedermayer
e9ffee23f3 vorbisdec: handle midstream parameter changes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-15 20:19:29 +01:00
Michael Niedermayer
c5cf58d4b9 oggdec: resync from the last page.
Previously we re synced from where we where which cam lead
to loosing pages.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-15 20:19:28 +01:00
Michael Niedermayer
778069c832 vorbisdec: support freeing partially allocated contexts.
Fixes null pointer derefernces

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-15 20:19:28 +01:00
Diego Biurrun
dae1d507af x86: Add PAVGB macro to abstract pavgb/pavgusb instruction via cpuflags 2013-01-15 17:29:43 +01:00
Justin Ruggles
23098bbd50 vf_fps: add final flushed frames to the dropped frame count 2013-01-15 11:26:46 -05:00
Michael Niedermayer
918b411636 rtpdec: support CSRC
Untested, due to lack of rtp stream with CSRCs, but the code as
is does not work with multiple CSRCs

Reviewed-by: Luca Abeni <lucabe72@email.it>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-15 16:20:31 +01:00
Diego Biurrun
0b22107d95 rv34_parser: Adjust #if for disabling individual parsers
As CONFIG_ values are always defined, they have to be checked via #if.
2013-01-15 16:20:14 +01:00
Michael Niedermayer
b7ede94bbd Merge remote-tracking branch 'qatar/master'
* qatar/master:
  x86: ABSB2: port to cpuflags

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-15 16:16:18 +01:00
Michael Niedermayer
77041e2474 Merge commit '094a7405e5d8463d7d167d893e04934ec1a84ecd'
* commit '094a7405e5d8463d7d167d893e04934ec1a84ecd':
  x86: ABSB: port to cpuflags
  sdp: Include SRTP crypto params if using the srtp protocol

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-15 16:12:24 +01:00
Michael Niedermayer
b52925d2cd Merge commit '2f3bada63e57345329c4f9b48e9b81b5cfc03d05'
* commit '2f3bada63e57345329c4f9b48e9b81b5cfc03d05':
  lavf: Add a protocol for SRTP encryption/decryption
  rtsp: Support decryption of SRTP signalled via RFC 4568 (SDES)

Conflicts:
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-15 16:05:34 +01:00
Michael Niedermayer
e7e0186eeb Merge commit 'ab2ad8bd56882c0ea160b154e8b836eb71abc49d'
* commit 'ab2ad8bd56882c0ea160b154e8b836eb71abc49d':
  lavf: Add functions for SRTP decryption/encryption
  lavu: Add an API for calculating HMAC (RFC 2104)

Conflicts:
	doc/APIchanges
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-15 15:57:33 +01:00
Michael Niedermayer
e074fe2962 Merge commit '47812070a267cbdf74164e154d03d99bf8ced100'
* commit '47812070a267cbdf74164e154d03d99bf8ced100':
  libx264: use the library specific default rc_initial_buffer_occupancy

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-15 15:51:14 +01:00
Michael Niedermayer
9aeffb3c2a Merge commit 'bff3607547fdbb6e32b3830a351e6a33280c1e0d'
* commit 'bff3607547fdbb6e32b3830a351e6a33280c1e0d':
  lavc: set the default rc_initial_buffer_occupancy

Conflicts:
	libavcodec/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-15 15:32:48 +01:00
Michael Niedermayer
cfc40a6aff Merge commit 'd8c772de53d29afb1bada88afa859fce8489c668'
* commit 'd8c772de53d29afb1bada88afa859fce8489c668':
  nutdec: Always return a value from nut_read_timestamp()
  configure: Make warnings from -Wreturn-type fatal errors
  x86: ABS2: port to cpuflags
  vdpau: Remove av_unused attribute from function declaration
  h264: fix ff_generate_sliding_window_mmcos() prototype.

Conflicts:
	configure
	libavformat/nutdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-15 15:23:20 +01:00
Michael Niedermayer
24d06cb208 Merge commit '5e753ed502d3597077d8675ca1438e1bcade1459'
* commit '5e753ed502d3597077d8675ca1438e1bcade1459':
  suncc: Replace more GCC flags by their equivalents in suncc_flags()
  libtheoraenc: fix granularity of video quality
  oggparsetheora: fix comment header parsing
  h264: don't clobber mmco opcode tables for non-first slice headers.

Conflicts:
	libavcodec/h264_refs.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-15 15:16:45 +01:00
Michael Niedermayer
353dbaa297 Merge commit '3f111804eb5c603a344706b84b7164cbf7b4e0df'
* commit '3f111804eb5c603a344706b84b7164cbf7b4e0df':
  libvpx: make vp8 and vp9 selectable
  libvpx: support vp9
  nut: support vp9 tag
  mkv: support vp9 tag
  rtpdec: Make variables that should wrap unsigned

Conflicts:
	configure
	libavcodec/Makefile
	libavcodec/allcodecs.c
	libavcodec/avcodec.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-15 14:57:57 +01:00
Michael Niedermayer
8686b6c68b Merge commit 'ba0c72a9ae1e2954e5dcf920f7b4e9a8f8a22f3e'
* commit 'ba0c72a9ae1e2954e5dcf920f7b4e9a8f8a22f3e':
  build: Remove stray Makefile entry for non-existent VCR1 encoder
  rtpdec: Handle more received packets than expected when sending RR

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-15 14:42:24 +01:00
Michael Niedermayer
eaf1f01169 Merge commit 'd0fe217e3990b003b3b3f2c2daaadfb2af590def'
* commit 'd0fe217e3990b003b3b3f2c2daaadfb2af590def':
  rtpdec: Simplify insertion into the linked list queue
  rtpdec: Remove a woefully misplaced comment

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-15 14:34:32 +01:00
Ronald S. Bultje
f6badba185 h264: don't clobber mmco opcode tables for non-first slice headers.
Clobbering these tables will temporarily clobber the template used
as a basis for other threads to start decoding from. If the other
decoding thread updates from the template right at that moment,
subsequent threads will get invalid (or, usually, none at all) mmco
tables. This leads to invalid reference lists and subsequent decode
failures.

Therefore, instead, decode the mmco tables only for the first slice in
a field or frame. For other slices, decode the bits and ensure they
are identical to the mmco tables in the first slice, but don't ever
clobber the context state. This prevents other threads from using a
clobbered/invalid template as starting point for decoding, and thus
fixes decoding in these cases.

This fixes occasional (~1%) failures of h264-conformance-mr1_bt_a with
frame-multithreading enabled.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-15 13:58:22 +01:00
Diego Biurrun
320e1d0df3 x86: ABSB2: port to cpuflags 2013-01-15 11:18:51 +01:00
Diego Biurrun
094a7405e5 x86: ABSB: port to cpuflags 2013-01-15 11:18:51 +01:00
Martin Storsjö
611bf39bde sdp: Include SRTP crypto params if using the srtp protocol
Also print port numbers for this protocol.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-15 11:55:29 +02:00
Martin Storsjö
2f3bada63e lavf: Add a protocol for SRTP encryption/decryption
This is mostly useful for encryption together with the RTP muxer,
but could also be set up as IO towards the peer with the SDP
demuxer with custom IO.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-15 11:55:10 +02:00
Martin Storsjö
424da30830 rtsp: Support decryption of SRTP signalled via RFC 4568 (SDES)
This only takes care of decrypting incoming packets; the outgoing
RTCP packets are not encrypted. This is enough for some use cases,
and signalling crypto keys for use with outgoing RTCP packets
doesn't fit as simply into the API. If the SDP demuxer is hooked
up with custom IO, the return packets can be encrypted e.g. via the
SRTP protocol.

If the SRTP keys aren't available within the SDP, the decryption
can be handled externally as well (when using custom IO).

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-15 11:54:40 +02:00
Martin Storsjö
ab2ad8bd56 lavf: Add functions for SRTP decryption/encryption
This supports the AES_CM_128_HMAC_SHA1_80 and
AES_CM_128_HMAC_SHA1_32 cipher suites (from RFC 4568) at the
moment. The main missing features are replay protection (which can be
added later without changing the internal API), and the F8 and null
ciphers.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-15 11:54:34 +02:00
Martin Storsjö
8ee288d258 lavu: Add an API for calculating HMAC (RFC 2104)
This supports HMAC-MD5 and HMAC-SHA1 for now, other hashes are
simple to add.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-15 11:54:19 +02:00
Luca Barbato
47812070a2 libx264: use the library specific default rc_initial_buffer_occupancy
By default libav sets it to 3/4 while x264 sets it to 9/10.

CC: libav-stable@libav.org

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-15 08:58:51 +01:00
Luca Barbato
bff3607547 lavc: set the default rc_initial_buffer_occupancy
rc_buffer_size is not set before.

Solve the initial the rate control underflow issue reported in
bug 222.

CC: libav-stable@libav.org

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-15 08:58:51 +01:00
Michael Niedermayer
8ac8f04993 mpegvideo: Fix long standing race condition with frame threads
Since resolution change support this also was exploitable, which is
how it was found.

Fixes read after free and out of array reads.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-15 05:34:37 +01:00
Diego Biurrun
d8c772de53 nutdec: Always return a value from nut_read_timestamp()
The function is a callback that is called by ff_gen_search with
a constant stream index.

Avoid a false positive on older gcc version.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-15 02:15:09 +01:00
Stephen Hutchinson
df4203ac6f Fix compilation with libutvideo version 12.0.0
Reviewed-by: Derek Buitenhuis
2013-01-15 01:15:10 +01:00
Carl Eugen Hoyos
5ce023b790 Fix color filter example.
Found-by: johnd and Paul B Mahol
2013-01-15 00:14:35 +01:00
Michael Niedermayer
274e48d8ac x86/Makefile: move dirac_dwt to right type
Fix build failure without yasm

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-14 23:40:26 +01:00
Michael Niedermayer
9cb3c1a4d9 x86/dirac: fix asm on win64
This could also be fixed by changing the argument type if
someone prefers that and wants to change it ...

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-14 23:28:01 +01:00
Michael Niedermayer
30981a966f lavc: split snow and dirac DWTs
There is only about 4 lines of common code, so it alot cleaner
when seperated.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-14 22:59:05 +01:00
Diego Biurrun
99853cb8d4 configure: Make warnings from -Wreturn-type fatal errors
These warnings have no false positives and point to serious bugs.
2013-01-14 22:49:44 +01:00
Diego Biurrun
51969a652c x86: ABS2: port to cpuflags 2013-01-14 21:56:55 +01:00
Rémi Denis-Courmont
171f1446f0 vdpau: Remove av_unused attribute from function declaration
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-01-14 21:56:55 +01:00
Anton Khirnov
ea382767ad h264: fix ff_generate_sliding_window_mmcos() prototype.
It's been returning an error value since
bad446e251

Also check for the errors it returns.
2013-01-14 21:36:08 +01:00
Sean McGovern
5e753ed502 suncc: Replace more GCC flags by their equivalents in suncc_flags()
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-01-14 20:53:06 +01:00
Maximilian Seesslen
055b373080 libtheoraenc: fix granularity of video quality
The floating point version of av_clip has to be used when
converting the quality level.

Signed-off-by: Maximilian Seesslen <mes@seesslen.net>
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-14 20:47:27 +02:00
Giorgio Vazzana
39403c6c1b oggparsetheora: fix comment header parsing
Pass the correct header size to ff_vorbis_comment()

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-14 20:47:27 +02:00
Luca Barbato
3f111804eb libvpx: make vp8 and vp9 selectable
Support older libvpx versions.
2013-01-14 19:20:47 +01:00
Ronald S. Bultje
bad446e251 h264: don't clobber mmco opcode tables for non-first slice headers.
Clobbering these tables will temporarily clobber the template used
as a basis for other threads to start decoding from. If the other
decoding thread updates from the template right at that moment,
subsequent threads will get invalid (or, usually, none at all) mmco
tables. This leads to invalid reference lists and subsequent decode
failures.

Therefore, instead, decode the mmco tables only for the first slice in
a field or frame. For other slices, decode the bits and ensure they
are identical to the mmco tables in the first slice, but don't ever
clobber the context state. This prevents other threads from using a
clobbered/invalid template as starting point for decoding, and thus
fixes decoding in these cases.

This fixes occasional (~1%) failures of h264-conformance-mr1_bt_a with
frame-multithreading enabled.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-14 19:20:47 +01:00
Luca Barbato
dab1f543fc libvpx: support vp9
This feature is experimental use at your risk
2013-01-14 19:20:47 +01:00
Luca Barbato
23a610b9d6 nut: support vp9 tag 2013-01-14 19:20:47 +01:00
Tom Finegan
66aabd76a9 mkv: support vp9 tag 2013-01-14 19:20:47 +01:00
Martin Storsjö
d596f2b322 rtpdec: Make variables that should wrap unsigned
This makes the behaviour defined when they wrap around. The value
assigned to expected_prior was a uint32_t already.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-14 20:09:42 +02:00
Diego Biurrun
ba0c72a9ae build: Remove stray Makefile entry for non-existent VCR1 encoder 2013-01-14 17:02:04 +01:00
Martin Storsjö
30b50f79ae rtpdec: Handle more received packets than expected when sending RR
Without this, we'd signal a huge loss rate (due to unsigned
wraparound) if we had received one packet more than expected (that
is, one seq number sent twice). The code has a check for lost_interval
<= 0, but that doesn't do what was intended as long as the variable is
unsigned.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-14 17:52:02 +02:00
Martin Storsjö
d0fe217e39 rtpdec: Simplify insertion into the linked list queue
By using a pointer-to-pointer, we avoid having to keep track
of the previous packet separately.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-14 17:51:48 +02:00
Martin Storsjö
62761934b0 rtpdec: Remove a woefully misplaced comment
The code below the comment does not at all relate to statistics,
and even if moved to the right place, the comment adds little
value.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-14 17:51:42 +02:00
Michael Niedermayer
922332e60d nuv: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-14 16:37:12 +01:00
Michael Niedermayer
7980cca05c init_get_bits: fix off by 1 error
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-14 16:35:41 +01:00
Michael Niedermayer
153fad14e5 init_get_bits8: zero pointers & struct on error
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-14 16:35:41 +01:00
Michael Niedermayer
ac73d3a12a init_get_bits8: check byte_size against being positive
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-14 16:35:41 +01:00
Carl Eugen Hoyos
c29c7c1470 The c99-to-c89 binaries are now hosted on videolan.org. 2013-01-14 16:28:44 +01:00
Michael Niedermayer
57d59e82cb Merge remote-tracking branch 'qatar/master'
* qatar/master:
  rtmpproto: Fix assignments in if()
  lavf: Fix assignments in if()
  svq1enc: Fix assignments in if()
  lavc: Fix assignments in if() when calling ff_af_queue_add
  h264: Fix assignments in if()
  truemotion2: cosmetics, reformat

Conflicts:
	libavcodec/svq1enc.c
	libavcodec/truemotion2.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-14 15:53:25 +01:00
Michael Niedermayer
92b2387159 Merge commit 'df9036830b15997a3e9c3f2c632ed98d64f9deef'
* commit 'df9036830b15997a3e9c3f2c632ed98d64f9deef':
  truemotion2: return meaningful error codes.
  tscc: remove some pointless comments and empty lines.
  tscc: return meaningful error codes.
  loco: cosmetics, reformat

Conflicts:
	libavcodec/truemotion2.c
	libavcodec/tscc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-14 15:45:05 +01:00
Michael Niedermayer
f9d5bdd0f6 Merge commit '1a31dff9370b4732c91df5cb1ca4b39f2cb3050e'
* commit '1a31dff9370b4732c91df5cb1ca4b39f2cb3050e':
  loco: return meaningful error codes.
  flicvideo: return meaningful error codes.
  vcr1: remove disabled encoder stub

Conflicts:
	libavcodec/flicvideo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-14 15:36:35 +01:00
Michael Niedermayer
4adc8a29a0 Merge commit '74a9a624c5c4d50760d8d57458eba57366f6cb26'
* commit '74a9a624c5c4d50760d8d57458eba57366f6cb26':
  vcr1: return a meaningful error code.
  rpza: return a meaningful error code.
  qdrw: cosmetics, reformat

Conflicts:
	libavcodec/qdrw.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-14 15:17:16 +01:00
Michael Niedermayer
8943925d1f Merge commit '688b132b881d423877e38dc82f17e23a604be676'
* commit '688b132b881d423877e38dc82f17e23a604be676':
  qdrw: return meaningful error codes.
  qtrle: return a meaningful error code.
  gifdec: return meaningful error codes.
  interplayvideo: remove a static variable.
  interplayvideo: return meaningful error codes.
  lcldec: return meaningful error codes.
  targa: return meaningful error codes.
  qpeg: return a meaningful error code.
  nuv: return meaningful error codes.

Conflicts:
	libavcodec/gifdec.c
	libavcodec/interplayvideo.c
	libavcodec/nuv.c
	libavcodec/qpeg.c
	libavcodec/targa.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-14 15:04:58 +01:00
Michael Niedermayer
329675cfd7 Merge commit 'a1c525f7eb0783d31ba7a653865b6cbd3dc880de'
* commit 'a1c525f7eb0783d31ba7a653865b6cbd3dc880de':
  pcx: return meaningful error codes.
  tmv: return meaningful error codes.
  msrle: return meaningful error codes.
  cscd: return meaningful error codes.
  yadif: x86: fix build for compilers without aligned stack
  lavc: introduce the convenience function init_get_bits8
  lavc: check for overflow in init_get_bits

Conflicts:
	libavcodec/cscd.c
	libavcodec/pcx.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-14 14:43:32 +01:00
Michael Niedermayer
a646ac8ef5 Merge commit '90cfc084e3e6d37ab88fc96a95f0401d8e8b4cd1'
* commit '90cfc084e3e6d37ab88fc96a95f0401d8e8b4cd1':
  avpacket: free side data in av_free_packet().
  v4l2: do not assert on a value received from outside of Libav
  v4l2: set the average framerate instead of codec timebase.

Conflicts:
	libavcodec/avpacket.c
	libavdevice/v4l2.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-14 14:16:21 +01:00
Michael Niedermayer
53c2f401f7 Merge commit '246da0b13551b1f80f067e4f258e5bd691f5ab33'
* commit '246da0b13551b1f80f067e4f258e5bd691f5ab33':
  v4l2: avoid pointless indirection.
  vdpau: Add VC-1 decoding via hwaccel infrastructure
  vdpau: Add H.264 decoding via hwaccel infrastructure

Conflicts:
	configure
	libavcodec/Makefile
	libavcodec/version.h
	libavdevice/v4l2.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-14 14:00:21 +01:00
Michael Niedermayer
41bdef1d39 Merge commit '200e8ac92007bc2fe30da05d3bd00ab620842a6b'
* commit '200e8ac92007bc2fe30da05d3bd00ab620842a6b':
  vdpau: Add MPEG-4 decoding via hwaccel infrastructure
  vdpau: Add MPEG-1/2 decoding via hwaccel infrastructure

Conflicts:
	configure
	libavcodec/Makefile
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-14 13:48:30 +01:00
Michael Niedermayer
8ee7b3881b Merge commit '44e065d56c87d6a9d0effccec5f31517f72924ec'
* commit '44e065d56c87d6a9d0effccec5f31517f72924ec':
  vdpau: Add context and common helpers for hwaccel support

Conflicts:
	Changelog
	doc/APIchanges
	libavcodec/vdpau.h
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-14 13:29:00 +01:00
Michael Niedermayer
6dc8505417 rtmpproto: Fix assignments in if()
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-14 13:13:00 +02:00
Michael Niedermayer
d641ee94b5 lavf: Fix assignments in if()
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-14 13:12:55 +02:00
Michael Niedermayer
30aeada3d8 svq1enc: Fix assignments in if()
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-14 13:12:49 +02:00
Michael Niedermayer
1d7ffd06e4 lavc: Fix assignments in if() when calling ff_af_queue_add
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-14 13:12:44 +02:00
Michael Niedermayer
59d5680310 h264: Fix assignments in if()
Fixes null pointer dereference later, since if this function failed,
a positive return value was returned to the caller.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-14 13:12:38 +02:00
Anton Khirnov
60a42ef44c truemotion2: cosmetics, reformat 2013-01-14 11:39:57 +01:00
Anton Khirnov
df9036830b truemotion2: return meaningful error codes. 2013-01-14 11:39:49 +01:00
Anton Khirnov
a4a26f5188 tscc: remove some pointless comments and empty lines. 2013-01-14 11:39:42 +01:00
Anton Khirnov
ac1e93f555 tscc: return meaningful error codes. 2013-01-14 11:39:33 +01:00
Anton Khirnov
b627c3010b loco: cosmetics, reformat 2013-01-14 11:39:23 +01:00
Anton Khirnov
1a31dff937 loco: return meaningful error codes. 2013-01-14 11:39:15 +01:00
Anton Khirnov
a9d970a019 flicvideo: return meaningful error codes. 2013-01-14 11:38:58 +01:00
Anton Khirnov
6b3a1229bb vcr1: remove disabled encoder stub 2013-01-14 11:38:45 +01:00
Anton Khirnov
74a9a624c5 vcr1: return a meaningful error code. 2013-01-14 11:38:38 +01:00
Anton Khirnov
e4ca055b3c rpza: return a meaningful error code. 2013-01-14 11:38:31 +01:00
Anton Khirnov
80cf2ebc59 qdrw: cosmetics, reformat 2013-01-14 11:37:55 +01:00
Anton Khirnov
688b132b88 qdrw: return meaningful error codes. 2013-01-14 11:37:43 +01:00
Anton Khirnov
8f17829455 qtrle: return a meaningful error code. 2013-01-14 11:37:31 +01:00
Anton Khirnov
048ffb9bb2 gifdec: return meaningful error codes. 2013-01-14 11:37:17 +01:00
Anton Khirnov
3d973e461b interplayvideo: remove a static variable. 2013-01-14 11:36:45 +01:00
Anton Khirnov
089b3d6815 interplayvideo: return meaningful error codes. 2013-01-14 11:36:33 +01:00
Anton Khirnov
14cf33e957 lcldec: return meaningful error codes. 2013-01-14 11:36:22 +01:00
Anton Khirnov
01cbc6f6ad targa: return meaningful error codes. 2013-01-14 11:36:11 +01:00
Anton Khirnov
62d9655217 qpeg: return a meaningful error code. 2013-01-14 11:35:54 +01:00
Anton Khirnov
3344f5cb74 nuv: return meaningful error codes. 2013-01-14 11:35:17 +01:00
Anton Khirnov
a1c525f7eb pcx: return meaningful error codes. 2013-01-14 11:35:04 +01:00
Anton Khirnov
6bf70127d1 tmv: return meaningful error codes. 2013-01-14 11:34:53 +01:00
Anton Khirnov
9e6764900a msrle: return meaningful error codes. 2013-01-14 11:34:18 +01:00
Anton Khirnov
8fd4d1f9b9 cscd: return meaningful error codes. 2013-01-14 11:34:08 +01:00
Daniel Kang
67360ccd51 yadif: x86: fix build for compilers without aligned stack
Manually load registers to avoid using 8 registers on x86_32 with
compilers that do not align the stack (e.g. MSVC).

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-01-14 09:51:52 +01:00
Michael Niedermayer
a601eb9543 rtmpproto: Fix assignments in if()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-14 05:05:42 +01:00
Michael Niedermayer
1ac5a8d7e3 lavf/mux: Fix assignments in if()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-14 05:05:41 +01:00
Michael Niedermayer
6f88d2d786 vsrc_testsrc: Fix assignments in if()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-14 05:05:40 +01:00
Michael Niedermayer
659546b42d tiff: Fix assignments in if()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-14 05:05:39 +01:00
Michael Niedermayer
37be1d802f svq1enc: Fix assignments in if()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-14 05:05:38 +01:00
Michael Niedermayer
e2704381e5 ra144enc: Fix assignments in if()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-14 05:05:37 +01:00
Michael Niedermayer
795d2dc23b nellymoserenc: Fix assignments in if()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-14 05:05:37 +01:00
Michael Niedermayer
bdd71abe5f libvorbisenc: Fix assignments in if()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-14 05:05:36 +01:00
Michael Niedermayer
0ccb31dcad libvo-aacenc: Fix assignments in if()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-14 05:05:35 +01:00
Michael Niedermayer
3b8d66d531 libspeexenc: Fix assignments in if()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-14 05:05:33 +01:00
Michael Niedermayer
d6180aa297 libopencore-amr: Fix assignments in if()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-14 05:05:31 +01:00
Michael Niedermayer
871b6ec01d libmp3lame: Fix assignments in if()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-14 05:05:30 +01:00
Michael Niedermayer
9302ad1ac8 libfdk-aacenc: Fix assignments in if()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-14 05:05:28 +01:00
Michael Niedermayer
68a25c64cd libfaac: Fix assignments in if()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-14 05:05:27 +01:00
Michael Niedermayer
98fed59427 aacenc: Fix assignments in if()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-14 05:05:26 +01:00
Michael Niedermayer
48a7981e6f doc/examples: fix assignments in if()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-14 05:05:20 +01:00
Luca Barbato
e28ac6e5e2 lavc: introduce the convenience function init_get_bits8
Accept the buffer size in bytes and check for overflow before passing
the value in bits to init_get_bits.
2013-01-14 04:49:14 +01:00
Luca Barbato
d9cf5f5169 lavc: check for overflow in init_get_bits
Fix an undefined behaviour and make the function return a proper
error in case of overflow.

CC: libav-stable@libav.org
2013-01-14 04:49:14 +01:00
Michael Niedermayer
aaa7d2fafc h264: don t leave stale pointers in delayed_pic in flush_changes.
Fixes null pointer dereference & assertion failure

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-14 03:03:53 +01:00
Michael Niedermayer
55d0528669 swr/dither: fix division by 0
Found-by: Daemon404
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-14 02:57:00 +01:00
Michael Niedermayer
c13e4e288c h264: fix () placement
Fixes null pointer dereference

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-14 00:09:01 +01:00
Michael Niedermayer
2d8d63a9a0 ffplay: fix sws_flags
Fixes Ticket45

Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-13 22:48:28 +01:00
Michael Niedermayer
d676598f87 swr: fix handling of timestamps that cause multiple drops or silence injections
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-13 18:39:06 +01:00
Anton Khirnov
90cfc084e3 avpacket: free side data in av_free_packet().
Freeing it in av_destruct_packet(), as is done currently, would mean
that we allow it to be allocated with other means. But that would make
av_packet_new_side_data() unsafe.

Side data is not expected to be large, so copying it if required
shouldn't be a problem.
2013-01-13 16:31:40 +01:00
Anton Khirnov
49dc82eef7 v4l2: do not assert on a value received from outside of Libav 2013-01-13 16:31:17 +01:00
Anton Khirnov
838b849e70 v4l2: set the average framerate instead of codec timebase.
Codec timebase is supposed to be set by decoders only.
2013-01-13 16:31:09 +01:00
Anton Khirnov
246da0b135 v4l2: avoid pointless indirection.
v4l2_read_header() does no cleanup, so it can return directly, without
any need for goto.
2013-01-13 16:30:38 +01:00
Michael Niedermayer
a34aee4646 swr: limit buffer size for silence injection
This reduces memory usage for unreasonable large silence injections

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-13 16:04:41 +01:00
Michael Niedermayer
b481d09bd9 swr: limit buffer size for discarding.
This prevents insane memory usage in case of insane input values.
Untested due to lack of a testcase that causes such insane allocation

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-13 16:04:41 +01:00
Stefano Sabatini
e8bab4c6fc ffplay: extend documentation for the -vf option
In particular, make it consistent with the ffmpeg docs.
2013-01-13 16:03:13 +01:00
Michael Niedermayer
db4e0ecaf0 swr: move silence buffer to context to avoid per use malloc/free
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-13 15:28:00 +01:00
Michael Niedermayer
dc6588421e swr: move buffer used to discard sample to context
This avoids the need to allocate & free to repeatly

Fixes Ticket2122

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-13 15:28:00 +01:00
Stefano Sabatini
98247e3368 lavf: clarify/extend documentation for AVFormatContext::analyzeduration
"analyzeduration" is not used to detect the input duration, but to
specify the max probe data duration. Fix option description and related
doc entry accordingly.
2013-01-13 15:09:09 +01:00
Stefano Sabatini
78e27c44c3 lavf/utils: clarify/extend messages in avformat_find_stream_info()
In particular, specify the unit of the shown values in case the max probe
size/duration is reached.
2013-01-13 15:09:09 +01:00
Stefano Sabatini
89ef586867 doc/ffmpeg: extend documentation for the -filter options and -af/vf aliases 2013-01-13 15:09:09 +01:00
Stefano Sabatini
c499d45c6b doc/texipod: add rule to correctly interpret @ref{ANCHOR,XREF,SECTION_NAME,...}
This allows to name an internal reference in the POD/MAN output.
2013-01-13 15:09:08 +01:00
Rémi Denis-Courmont
7752532789 vdpau: Add VC-1 decoding via hwaccel infrastructure
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-01-13 14:54:18 +01:00
Rémi Denis-Courmont
51b56a0716 vdpau: Add H.264 decoding via hwaccel infrastructure
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-01-13 14:54:08 +01:00
Rémi Denis-Courmont
200e8ac920 vdpau: Add MPEG-4 decoding via hwaccel infrastructure
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-01-13 14:54:02 +01:00
Rémi Denis-Courmont
aaf9d0e8f3 vdpau: Add MPEG-1/2 decoding via hwaccel infrastructure
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-01-13 14:53:47 +01:00
Rémi Denis-Courmont
44e065d56c vdpau: Add context and common helpers for hwaccel support
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-01-13 14:41:27 +01:00
Paul B Mahol
5b9126ba84 lavfi/gradfun: support YUV440P
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-13 13:23:30 +00:00
Michael Niedermayer
3bcf443f91 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  rtpdec: Send a valid "delay since SR" value in the RTCP RR packets

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-13 14:06:01 +01:00
Michael Niedermayer
6cd1dbe6df Merge commit 'e568db40258d549777ac1c16971678e18a18f5f5'
* commit 'e568db40258d549777ac1c16971678e18a18f5f5':
  rtpdec: Calculate and report packet reception jitter

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-13 14:00:12 +01:00
Michael Niedermayer
6d6eb7c12c Merge commit 'abae27ed3acd0a7c54f11760c5be2d2653c4edf8'
* commit 'abae27ed3acd0a7c54f11760c5be2d2653c4edf8':
  rtpdec: Fix the calculation of expected number of packets
  fate: vp3: Fix fate-vp3-coeff-level64 test dependencies

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-13 13:54:52 +01:00
Michael Niedermayer
841a288cb3 Merge commit '4d3b144c5ea824193019019d33740a1ae9e0bb69'
* commit '4d3b144c5ea824193019019d33740a1ae9e0bb69':
  fate: cosmetics: Order some test entries

Conflicts:
	tests/fate/lossless-video.mak
	tests/fate/microsoft.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-13 13:42:10 +01:00
Michael Niedermayer
a6e4796fbf pthread: Do not use a half updated context as master for deallocation.
Fixes assertion failure

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-13 06:22:04 +01:00
Michael Niedermayer
2ea3f37d5f dvdsubenc: use unsigned shifts to avoid shifting into the sign bit
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-12 21:45:03 +01:00
Michael Niedermayer
754dd7e889 dvdsubdec: use unsigned shifts to avoid shifting into the sign bit
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-12 21:39:00 +01:00
Michael Niedermayer
c8737d348b swr: work with 4 noise shaping coeffs at a time
63->38 kcycles

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-12 19:17:08 +01:00
Michael Niedermayer
93bc0f0180 swr/noise_shaping_data: pad coeffs to multiple of 4 when they are 1 below
This allows using code working with 4 at a time

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-12 19:09:54 +01:00
Martin Storsjö
22c436c85e rtpdec: Send a valid "delay since SR" value in the RTCP RR packets
Previously, we always signalled a zero time since the last RTCP
SR, which is dubious.

The code also suggested that this would be the difference in
RTP NTP time units (32.32 fixed point), while it actually is
in in 1/65536 second units. (RFC 3550 section 6.4.1)

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-12 19:55:49 +02:00
Martin Storsjö
e568db4025 rtpdec: Calculate and report packet reception jitter
This brings back some code that was added originally in 4a6cc061
but never was used, and was removed as unused in 4cc843fa. The
code is updated to actually work and is tested to return sane
values.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-12 19:53:53 +02:00
Martin Storsjö
abae27ed3a rtpdec: Fix the calculation of expected number of packets
The base_seq variable is set to first_seq - 1 (in
rtp_init_sequence), so no + 1 is needed here.

This avoids reporting 1 lost packet from the start.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-12 19:48:41 +02:00
Michael Niedermayer
1c14c3412e dec/developer: Add Valgrind / Address Sanitizer to the patch checklist
Reviewed-by: saste
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-12 18:23:32 +01:00
Michael Niedermayer
ef7fdc8cff swr: use a local variable for ns_coeffs
maybe a very tiny bit faster

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-12 17:43:29 +01:00
Michael Niedermayer
68ff7d265f swr: use local variable for ns_errors
71 -> 63 kcycles

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-12 17:43:29 +01:00
Michael Niedermayer
b5d9e5d06c swr: minor simplification for the noise shaping pos update
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-12 17:43:29 +01:00
Matthieu Bouron
f9eed5d7e6 lavfi/aevalsrc: try to honor specified duration
If nb_samples divide sample_rate and if nb_samples allow it, aevalsrc
should generate the exact amount of samples according to duration.

Example:
aevalsrc=0::n=480:s=48000:d=5.21 should generate 250080 samples.

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2013-01-12 17:26:35 +01:00
Diego Biurrun
4d3b144c5e fate: cosmetics: Order some test entries 2013-01-12 17:19:27 +01:00
Diego Biurrun
0f94c0b1b6 fate: vp3: Fix fate-vp3-coeff-level64 test dependencies
Also rename the test to reflect that the video track is Theora, not VP3.
2013-01-12 17:19:27 +01:00
Paul B Mahol
868ac91c8d frmdec: do not abuse ff_codec_get_id()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-12 14:39:13 +00:00
Michael Niedermayer
db1ba2213f lavf: use avpriv_find_pix_fmt instead of ff_
Found-by: durandal_1707
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-12 14:09:08 +01:00
Michael Niedermayer
43d6ac53f2 lavc: ff_find_pix_fmt ->avpriv
Found-by: durandal_1707
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-12 14:06:30 +01:00
Michael Niedermayer
dae382b5b2 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  Add version bump and APIchanges entry for Add AV_PIX_FMT_VDPAU.
  pixfmt: add picture format for VDPAU

Conflicts:
	doc/APIchanges
	libavutil/pixfmt.h
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-12 13:42:42 +01:00
Michael Niedermayer
15daa8f9dd Merge commit 'f61272f0efd80da437570aad2c40e00f9d3f4fe6'
* commit 'f61272f0efd80da437570aad2c40e00f9d3f4fe6':
  ratecontrol: K&R cosmetic formatting
  rtpdec: Remove a useless todo comment

Conflicts:
	libavcodec/ratecontrol.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-12 13:32:13 +01:00
Michael Niedermayer
e730c3a2cb Merge commit '54cb096ee4558b3bfc28c2fcd6418ce82dc39fe1'
* commit '54cb096ee4558b3bfc28c2fcd6418ce82dc39fe1':
  rtsp: Remove an outdated comment
  rtsp: Remove references to weirdly named variables in other files

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-12 13:14:05 +01:00
Michael Niedermayer
dda2d29748 Merge commit 'c44784c9bb9d0ddf5d39d0dfa640816a57b8f457'
* commit 'c44784c9bb9d0ddf5d39d0dfa640816a57b8f457':
  rtp: Rename a static variable to normal naming conventions
  rtp: Cosmetic cleanup

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-12 13:00:50 +01:00
Diego Biurrun
f89466ad6f Add version bump and APIchanges entry for Add AV_PIX_FMT_VDPAU.
Also fix a lavu version typo in APIchanges.
2013-01-12 12:28:12 +01:00
Luca Barbato
f61272f0ef ratecontrol: K&R cosmetic formatting
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-01-12 12:00:49 +01:00
Rémi Denis-Courmont
169fb94f0f pixfmt: add picture format for VDPAU
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-01-12 12:00:49 +01:00
Stefano Sabatini
4a0d1b2159 doc/protocols: improve wording of a sentence in http docs
Suggested-By: Alexander Strasser
2013-01-12 11:02:12 +01:00
Stefano Sabatini
0edb440282 doc/ffserver: remove painfully outdated "What do I need?" section 2013-01-12 10:53:22 +01:00
Stefano Sabatini
df018207f9 doc/ffserver: remove paragraph in the introductory blurb
The paragraph is about what ffserver is not and where to look for other
information, but is pretty redundant and distracting, especially
considering the new organization of the documentation.
2013-01-12 10:52:32 +01:00
Stefano Sabatini
cab85051c0 doc/ffserver: rework introducing paragraphs of the "description" chapter
In particular, add some markup, fix empty line, and merge it with "How
does it work?" section.
2013-01-12 10:49:11 +01:00
Stefano Sabatini
0a7cd74043 doc/protocols: document http protocol options 2013-01-12 10:41:56 +01:00
Stefano Sabatini
255ec768da lavf/http: fix/extend option descriptions
In particular, favor predicative form over nominal description of the set
parameter. This is more globally consistent.
2013-01-12 10:41:56 +01:00
Michael Niedermayer
d9226b3717 mpegvideo: dont leave stale pointers in next/last picture
Fixes out of array reads

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-12 04:46:08 +01:00
Michael Niedermayer
cc548ea7a6 vc1dec: ensure cbpcy_vlc has been set before decoding a frame.
Fixes null pointer dereference

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-12 04:09:21 +01:00
Michael Niedermayer
68329388bb fate: try to fix dirac
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-11 23:44:04 +01:00
Michael Niedermayer
b53adef07b h264: reset first_field when current_picture_ptr is reset
Fixes NULL pointer dereference

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-11 23:14:51 +01:00
Martin Storsjö
f6804c3e1b rtpdec: Remove a useless todo comment
The question can be answered: No, we do not know the initial sequence
number from the SDP. In certain cases, it can be known from the
RTP-Info response header in RTSP though. (In that case, we use it as
timestamp origin, but not for rtp receiver statistics.)

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-12 00:02:17 +02:00
Martin Storsjö
54cb096ee4 rtsp: Remove an outdated comment
It is unclear what the bug exactly was and if it ever was fixed,
and we don't even support decoding via faad any longer. The
comment has been present since d0deedcb in 2006.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-12 00:02:11 +02:00
Martin Storsjö
3900d53fb1 rtsp: Remove references to weirdly named variables in other files
One of them is renamed now, but mentioning it by name serves
no purpose here.  The other table mentioned ceased to exist
under that name in 4934884a1 in 2006.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-12 00:02:04 +02:00
Martin Storsjö
c44784c9bb rtp: Rename a static variable to normal naming conventions
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-12 00:01:51 +02:00
Martin Storsjö
58b5971881 rtp: Cosmetic cleanup
Remove leftover debug comments, fix brace placement and
add whitespace, remove unnecessary and weirdly placed braces.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-12 00:01:28 +02:00
Clément Bœsch
f8bab2f87e fate: add dirac decoding test (main profile). 2013-01-11 19:46:48 +01:00
Michael Niedermayer
969e75eb80 mjpegdec: Fix out of array read in unescaping code
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-11 18:20:25 +01:00
Michael Niedermayer
e5e422bcc3 mxfdec: Fix integer overflow with many channels
Fixes division by zero

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Reviewed-by: Matthieu Bouron <matthieu.bouron@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-11 17:42:04 +01:00
Michael Niedermayer
8d06be6b8c wavpack: check pointer to avoid overreading input buffer
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-11 16:37:31 +01:00
Michael Niedermayer
85a4dbeb9c ra144enc: fix two "may be used uninitialized in this function" warnings
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-11 15:43:46 +01:00
Michael Niedermayer
2e230cf1b5 au: switch to ff_pcm_read_packet() again, after the merge
This fixes G722 durations

Suggested-by: durandal_1707
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-11 15:18:58 +01:00
Michael Niedermayer
f137d5763d Merge remote-tracking branch 'qatar/master'
* qatar/master:
  configure: enable pic for shared libs on AArch64
  zmbv: Reset the decoder on keyframe errors

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-11 13:38:37 +01:00
Michael Niedermayer
6fc0648932 Merge commit '7b8c5b263bc680eff5710bee5994de39d47fc15e'
* commit '7b8c5b263bc680eff5710bee5994de39d47fc15e':
  vc1dec: prevent a crash due missing pred_flag parameter
  matroska: Fix use after free

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-11 13:01:07 +01:00
Michael Niedermayer
8bfc8d88be Merge commit 'ec86ba57312745fd7ad9771e3121e79c6aacba30'
* commit 'ec86ba57312745fd7ad9771e3121e79c6aacba30':
  vp3: Fix double free in vp3_decode_end()
  fate: Split fate-siff test into demuxer and VB video decoder test

Conflicts:
	tests/fate/demux.mak
	tests/fate/video.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-11 12:30:32 +01:00
Paul B Mahol
3ac85bebd5 lavf: remove nonexistent symbols
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-11 10:07:52 +00:00
Marcin Juszkiewicz
d11cb13b0e configure: enable pic for shared libs on AArch64
Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-11 11:01:05 +02:00
Luca Barbato
c1d1ef4ecd zmbv: Reset the decoder on keyframe errors
Prevent the crash on fuzzed files as reported in bug 63.
2013-01-11 05:07:42 +01:00
Vladimir Pantelic
7b8c5b263b vc1dec: prevent a crash due missing pred_flag parameter
Handle pred_flag parameter not given to get_mvdata_interlaced()

Signed-off-by: Vladimir Pantelic <vladoman@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-11 04:57:41 +01:00
Michael Niedermayer
23318a5735 error_concealment: Check that the picture is not in a half setup state.
Fixes state becoming inconsistent
Fixes a null pointer dereference

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-11 04:46:49 +01:00
Michael Niedermayer
8b47058c61 ass_split: fix out of array access in ass_split()
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-11 02:51:54 +01:00
Michael Niedermayer
97b1ba696b ass_split: fix out of array access
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-11 02:31:31 +01:00
Michael Niedermayer
2c16bf2de0 vorbisdec: Check bark_map_size.
This fixes potential divisions by zero and out of array accesses.

Reported-by: Dale Curtis <dalecurtis@chromium.org>
Found-by: inferno@chromium.org
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-11 00:58:40 +01:00
Dale Curtis
ae3d416369 matroska: Fix use after free
Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-11 00:12:08 +01:00
Nicolas George
7e5c5fa5fc lavfi/vf_overlay: check that filter_frame does not return EAGAIN.
EAGAIN is used internally in the code; it currently does not make
sense as a return code from the next filter.

Should fix CID966655.
2013-01-10 21:55:02 +01:00
Michael Niedermayer
a74548521b swr: check that allocation of in/out_convert succeeded
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-10 20:27:07 +01:00
Ronald Bultje
ec86ba5731 vp3: Fix double free in vp3_decode_end()
Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-10 20:05:42 +01:00
Michael Niedermayer
e5a736261b swr: Use a temporary buffer for dither/Noise shaping when the input is read only
This avoids copying the input

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-10 18:51:30 +01:00
Michael Niedermayer
2eec98125e swr: mark noise data for noise shaping as const
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-10 18:07:32 +01:00
Michael Niedermayer
558aa6cab7 swr: add seperate in/out pointers to the noise shaping code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-10 18:06:19 +01:00
Michael Niedermayer
fca51256d4 swr: rename dither_pos to noise_pos
THis more closely matches what the field represents

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-10 18:01:26 +01:00
Diego Biurrun
f8936c6f90 fate: Split fate-siff test into demuxer and VB video decoder test 2013-01-10 17:54:47 +01:00
Michael Niedermayer
36055aa876 idcin: fix memleak
Found-by: valgrind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-10 17:26:03 +01:00
Michael Niedermayer
91da6b97c7 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  rtpdec_vp8: Don't trim too much data from broken frames
  rtpdec_vp8: Simplify code by using an existing helper function

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-10 13:07:25 +01:00
Carl Eugen Hoyos
b563afe6fa Do not allow arbitrary packet size in aac decoder.
Fixes a crash with a file containing a 400MB packet reported in bug 420.
2013-01-10 13:03:15 +01:00
Michael Niedermayer
ac6e074fb7 Merge commit 'ed79093222ceb42f0c3a39095a69af0b32be5450'
* commit 'ed79093222ceb42f0c3a39095a69af0b32be5450':
  rtpdec: Add a terminating null byte at the end of the SDES/CNAME
  yuv4mpeg: do not use deprecated functions
  oggdec: fix faulty cleanup prototype
  idcin: return 0 from idcin_read_packet() on success.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-10 12:57:08 +01:00
Michael Niedermayer
56ca871fb3 Merge commit '5d0450461ff729be5f531d333d29754155e406c5'
* commit '5d0450461ff729be5f531d333d29754155e406c5':
  idcin: better error handling
  idcin: check for integer overflow when calling av_get_packet()

Conflicts:
	libavformat/idcin.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-10 12:52:02 +01:00
Michael Niedermayer
a0dbe2a58c Merge commit '7040e479a1530b2eda4b89a182d5eb50a77bd907'
* commit '7040e479a1530b2eda4b89a182d5eb50a77bd907':
  idcin: allow seeking back to the first packet
  idcin: set AV_PKT_FLAG_KEY for video packets with a palette

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-10 12:45:46 +01:00
Michael Niedermayer
6e44662b05 Merge commit 'ccc0ffb1ba3fc1adb05a9f56dfc26131e61db3fb'
* commit 'ccc0ffb1ba3fc1adb05a9f56dfc26131e61db3fb':
  idcin: set start_time and packet duration instead of manually tracking pts.
  idcin: set channel_layout

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-10 12:40:41 +01:00
Michael Niedermayer
8d691f8777 Merge commit '12c2530b1d87fa94f81ea97df575b77c825e6f4f'
* commit '12c2530b1d87fa94f81ea97df575b77c825e6f4f':
  idcin: fix check for presence of an audio stream
  idcin: validate header parameters

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-10 12:33:50 +01:00
Michael Niedermayer
65b8527993 Merge commit 'f7bf72a4a1146a7583577c9bdc066767e1ba3c6a'
* commit 'f7bf72a4a1146a7583577c9bdc066767e1ba3c6a':
  idcinvideo: correctly set AVFrame defaults
  yadif: Port inline assembly to yasm
  au: remove unnecessary casts
  au: return AVERROR codes instead of -1

Conflicts:
	libavcodec/idcinvideo.c
	libavfilter/x86/yadif_template.c
	libavformat/au.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-10 12:27:16 +01:00
Michael Niedermayer
8c7de73e20 Merge commit 'fd9147f11456a7e39a998d7270684922a2a46e6d'
* commit 'fd9147f11456a7e39a998d7270684922a2a46e6d':
  au: cosmetics: pretty-print and remove pointless comments

Conflicts:
	libavformat/au.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-10 12:19:22 +01:00
Michael Niedermayer
dc5767ff0a Merge commit 'c88d245c9866e48cb8a238b7564964c1fcf3315f'
* commit 'c88d245c9866e48cb8a238b7564964c1fcf3315f':
  au: use ff_raw_write_packet()
  au: set stream start time and packet durations

Conflicts:
	libavformat/au.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-10 12:05:54 +01:00
Michael Niedermayer
452f632903 Merge commit 'af68a2baae6761044cbed95575e8bcfebf55c6f1'
* commit 'af68a2baae6761044cbed95575e8bcfebf55c6f1':
  au: use %u when printing id and channels since they are unsigned
  au: validate sample rate

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-10 11:21:03 +01:00
Michael Niedermayer
be894d6cae Merge commit 'c837b38dd33a11c3810e988a60193a858eb4f58c'
* commit 'c837b38dd33a11c3810e988a60193a858eb4f58c':
  au: move skipping of unused data to before parameter validation
  au: do not arbitrarily limit channel count

Conflicts:
	libavformat/au.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-10 11:12:08 +01:00
André Pankratz
0287eea914 lavfi/yadif: fix shorthand/option mismatch
Fix trac ticket #2128.

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2013-01-10 11:01:14 +01:00
Michael Niedermayer
4cd89022e7 Merge commit '2613de88051818abafccb98646394341887acb3a'
We dont use au_read_packet() anymore and block_align is already set.
Thus nothing had to be merged from these.

* commit '2613de88051818abafccb98646394341887acb3a':
  au: do not set pkt->size directly
  au: set block_align and use it in au_read_packet()

Conflicts:
	libavformat/au.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-10 10:56:30 +01:00
Michael Niedermayer
70a65ecabf Merge commit '9a7b56883d1333cdfcdf0fa7584a333841b86114'
* commit '9a7b56883d1333cdfcdf0fa7584a333841b86114':
  au: set bit rate
  au: validate bits-per-sample separately from codec tag
  rtpdec_vp8: Mark broken packets with AV_PKT_FLAG_CORRUPT

Conflicts:
	libavformat/au.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-10 10:18:35 +01:00
Carl Eugen Hoyos
f023003ce6 Fix compilation with --disable-everything. 2013-01-10 10:04:46 +01:00
Martin Storsjö
76c40fbef0 rtpdec_vp8: Don't trim too much data from broken frames
Previously, for broken frames, we only returned the first partition
of the frame (we would append all the received packets to the packet
buffer, then set pkt->size to the size of the first partition, since
the rest of the frame could have lost data inbetween) - now instead
return the full buffered data we have, but don't append anything more
to the buffer after the lost packet discontinuity. Decoding the
truncated packet should hopefully get better quality than trimming out
everything after the first partition.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-10 09:43:01 +02:00
Martin Storsjö
3b366c3aa0 rtpdec_vp8: Simplify code by using an existing helper function
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-10 09:41:44 +02:00
Martin Storsjö
ed79093222 rtpdec: Add a terminating null byte at the end of the SDES/CNAME
This is required by RFC 3550 (section 6.5):

   The list of items in each chunk MUST be terminated by one or more
   null octets, the first of which is interpreted as an item type of
   zero to denote the end of the list.

This was implicitly added as padding before, unless the host name
length matched up so no padding was added.

This makes wireshark parse the packets properly if other RTCP items
are appended to the same packet.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-10 09:40:49 +02:00
Michael Niedermayer
6471f63da2 wmalosslessdec: make arrays indexed by ch large enough for maximum number of channels
Fixes out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-10 04:57:50 +01:00
Michael Niedermayer
7cb46b5191 targa: use checked bytestream read
Fix out of array read

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-10 04:57:50 +01:00
Michael Niedermayer
2b12d1ffd8 qdm2: fix out of stack array read.
The read value is not used when its outside the array.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-10 04:57:50 +01:00
Michael Niedermayer
2672b2c1d2 swr: scale data down in noise shaping to avoid cliping
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-10 01:44:15 +01:00
Michael Niedermayer
0b60fc94aa swr: reorder the operations in the noise shaping code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-10 00:27:04 +01:00
Michael Niedermayer
ead3a2a37e swr: add noise_scale field to seperate it from the noise shaping scales
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-10 00:25:09 +01:00
Michael Niedermayer
6908ded20e swr: fix the noise sample type for noise shaping
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-09 23:28:09 +01:00
Michael Niedermayer
3ef06f3415 swr: split swri_dither_init() out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-09 23:28:08 +01:00
Michael Niedermayer
dc60ecdbeb doc: add noise shaping dithers
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-09 23:28:08 +01:00
Carl Eugen Hoyos
c20ce9ad69 Add -movflags rtphint documentation. 2013-01-09 23:13:40 +01:00
Luca Barbato
a800fd5fc7 yuv4mpeg: do not use deprecated functions
Use the libavutil replacement.
2013-01-09 21:07:49 +01:00
Luca Barbato
fba8e5b608 oggdec: fix faulty cleanup prototype 2013-01-09 21:07:48 +01:00
Justin Ruggles
5d0450461f idcin: better error handling
Add some additional checks for EOF and print error messages on an incomplete
header or packet.

FATE reference updated for id-cin-video due to the demuxer no longer
returning a partial video packet at EOF.
2013-01-09 14:49:07 -05:00
Justin Ruggles
06deaf8ad3 idcin: return 0 from idcin_read_packet() on success.
This matches the AVInputFormat.read_packet() API.
2013-01-09 14:49:07 -05:00
Justin Ruggles
7040e479a1 idcin: allow seeking back to the first packet
Also, do not allow seek-by-byte, as there is no way to find the next packet
boundary.
2013-01-09 14:49:06 -05:00
Justin Ruggles
ccc0ffb1ba idcin: set start_time and packet duration instead of manually tracking pts.
Also, use 1 / sample_rate for audio stream time_base.
2013-01-09 14:49:06 -05:00
Justin Ruggles
12c2530b1d idcin: fix check for presence of an audio stream 2013-01-09 14:49:06 -05:00
Justin Ruggles
f7bf72a4a1 idcinvideo: correctly set AVFrame defaults 2013-01-09 14:49:06 -05:00
Justin Ruggles
33f58c3616 idcin: check for integer overflow when calling av_get_packet()
chunk_size is unsigned 32-bit, but av_get_packet() takes a signed int as the
packet size.
2013-01-09 14:49:06 -05:00
Justin Ruggles
49543373f3 idcin: set AV_PKT_FLAG_KEY for video packets with a palette 2013-01-09 14:49:06 -05:00
Justin Ruggles
4b840930da idcin: set channel_layout 2013-01-09 14:49:06 -05:00
Justin Ruggles
b0c96e0613 idcin: validate header parameters
Avoids using unsupported parameters and signed integer overflows.
2013-01-09 14:49:06 -05:00
Michael Niedermayer
8514d5bcf7 swr: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-09 18:41:40 +01:00
Michael Niedermayer
3ab1970612 swr: move dither related fields to their own context
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-09 18:41:12 +01:00
Daniel Kang
899157b308 yadif: Port inline assembly to yasm
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-09 18:41:02 +01:00
Michael Niedermayer
ba1314c2ef swr: update copyright years of a few files iam working on
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-09 18:30:01 +01:00
Michael Niedermayer
82742294b7 swr: Implement Noise shaping dither
The following variants are implemented:
lipshitz noise shaping dither
shibata noise shaping dither
low shibata noise shaping dither
high shibata noise shaping dither
f-weighted noise shaping dither
modified-e-weighted noise shaping dither
improved-e-weighted noise shaping dither

Data tables taken from SOX

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-09 18:25:06 +01:00
Justin Ruggles
fd9147f114 au: cosmetics: pretty-print and remove pointless comments 2013-01-09 11:52:57 -05:00
Justin Ruggles
c88d245c98 au: use ff_raw_write_packet() 2013-01-09 11:52:57 -05:00
Justin Ruggles
af68a2baae au: use %u when printing id and channels since they are unsigned 2013-01-09 11:52:57 -05:00
Justin Ruggles
c837b38dd3 au: move skipping of unused data to before parameter validation
Also do not unnecessarily skip 0 bytes.
2013-01-09 11:52:57 -05:00
Justin Ruggles
2613de8805 au: do not set pkt->size directly
It is already set by av_get_packet() even for partial reads.
2013-01-09 11:52:57 -05:00
Justin Ruggles
f7a3c540c5 au: remove unnecessary casts 2013-01-09 11:52:57 -05:00
Justin Ruggles
bdd00e2d1b au: set stream start time and packet durations 2013-01-09 11:52:57 -05:00
Justin Ruggles
47d029a4c1 au: validate sample rate 2013-01-09 11:52:57 -05:00
Justin Ruggles
fb48f825e3 au: do not arbitrarily limit channel count
Nothing in the AU specification sets a limit on channel count.
We only need to avoid an overflow in the packet size calculation.
2013-01-09 11:52:57 -05:00
Justin Ruggles
2f8207b1c6 au: return AVERROR codes instead of -1 2013-01-09 11:52:57 -05:00
Justin Ruggles
9a7b56883d au: set bit rate 2013-01-09 11:52:56 -05:00
Justin Ruggles
bd4cdef5a8 au: set block_align and use it in au_read_packet() 2013-01-09 11:52:56 -05:00
Justin Ruggles
3f98848d6e au: validate bits-per-sample separately from codec tag 2013-01-09 11:52:56 -05:00
Peter Ross
5b69c07d12 frmdec: tag 5 is AV_PIX_FMT_BGRA with reversed alpha (0=solid/opaque .. 255=transparent) 2013-01-10 00:14:56 +11:00
Michael Niedermayer
4765f63538 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  xan: Convert to bytestream2
  oggenc: add a page_duration option and deprecate the pagesize option
  x86: lavr: add SSE2/AVX dither_int_to_float()

Conflicts:
	libavcodec/xan.c
	libavformat/oggenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-09 12:30:14 +01:00
Michael Niedermayer
75afbe2ab4 Merge commit '1fb8f6a44f06e48386450fe0363aefc02583d24a'
* commit '1fb8f6a44f06e48386450fe0363aefc02583d24a':
  x86: lavr: add SSE2 quantize() for dithering
  doc/APIchanges: fill in missing dates and hashes.
  rtpdec_vp8: Request a keyframe if RTP packets are lost

Conflicts:
	doc/APIchanges

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-09 12:14:56 +01:00
Michael Niedermayer
34c1c08c66 Merge commit '86d9181cf41edc3382bf2481f95a2fb321058689'
* commit '86d9181cf41edc3382bf2481f95a2fb321058689':
  rtpdec: Support sending RTCP feedback packets

Conflicts:
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-09 11:48:14 +01:00
Michael Niedermayer
8c3ae9ee66 Merge commit '42805eda554a7fc44341282771531e7837ac72b7'
* commit '42805eda554a7fc44341282771531e7837ac72b7':
  rtpdec: Store the dynamic payload handler in the rtpdec context

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-09 11:42:01 +01:00
Michael Niedermayer
7b822b1de2 Merge commit '9c80ed836a511293f4cc3a858060969d32f2b1ce'
* commit '9c80ed836a511293f4cc3a858060969d32f2b1ce':
  rtpdec_vp8: Avoid a warning about a possibly unused variable
  rtpdec_vp8: Make sure the previous packet is returned

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-09 11:35:57 +01:00
Michael Niedermayer
aed58f6aae Merge commit '92e354b655613b88c3c202a7e19e7037daed37eb'
* commit '92e354b655613b88c3c202a7e19e7037daed37eb':
  rtpdec_vp8: Set the timestamp when returning a deferred packet
  hlsenc: Make the start_number option set the right variable

Conflicts:
	libavformat/hlsenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-09 11:26:31 +01:00
Martin Storsjö
71194ef6a8 rtpdec_vp8: Mark broken packets with AV_PKT_FLAG_CORRUPT
This allows the caller to either include them (and get more packets
decoded, but possibly some nonperfect frames), or discard them (by
setting fflags=discardcorrupt).

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-09 12:14:00 +02:00
Alexandra Khirnova
d744801f1a xan: Convert to bytestream2
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-01-09 09:59:55 +01:00
Michael Niedermayer
f3c9d8d41b swr: use SIMD for dithering
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-09 02:05:35 +01:00
Michael Niedermayer
57bdd67646 dirac: fix inverted check
Regression since: ea6da80
Fixes Ticket2123

I cannot reproduce any regressions by flipping the wrong condition
to how it should have been.

Thanks-to: ubitux
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-09 01:08:39 +01:00
Clément Bœsch
119d70db50 lavf/mux: do not pass a copy of the packet to write_packet().
Sometimes the muxer modifies the packet, like for instance lavf/mp3enc
changing pkt->destruct in order to keep a copy. These changes must be
kept, even though the muxer behaviour is questionable. Regression since
0072116.

Fixes #2124.
2013-01-08 23:21:05 +01:00
Justin Ruggles
59220d559b oggenc: add a page_duration option and deprecate the pagesize option
This uses page duration instead of byte size to determine when to buffer
the page. Also, it tries to avoid continued pages by buffering the current
page if there are already packets in the page and adding the next packet
would require it to be continued on a new page. This can improve seeking
performance.

The default page duration is 1 second, which is much saner than filling
all page segments by default.
2013-01-08 15:42:36 -05:00
Justin Ruggles
1fb8f6a44f x86: lavr: add SSE2 quantize() for dithering 2013-01-08 14:52:43 -05:00
Justin Ruggles
a6a3164b13 x86: lavr: add SSE2/AVX dither_int_to_float() 2013-01-08 14:52:43 -05:00
Justin Ruggles
142c39097c doc/APIchanges: fill in missing dates and hashes. 2013-01-08 14:51:30 -05:00
Michael Niedermayer
a260c79733 ffmpeg: fix dither to 24bit PCM output
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-08 20:28:15 +01:00
Michael Niedermayer
9aec63af9b swr: fix assertion failure if dither is used without the preout buffer differing from in
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-08 20:07:16 +01:00
Michael Niedermayer
252316c885 img2dec: fix -loop
This fixes a infinite loop with -loop and -vframes

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-08 20:07:16 +01:00
Carl Eugen Hoyos
0b68ebc4b6 Fix compilation with --disable-everything --enable-decoder=dirac. 2013-01-08 19:59:13 +01:00
Paul B Mahol
9e2387a6a9 fate: upate after 55d32eed8f
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-08 18:47:09 +00:00
Martin Storsjö
6f72441120 rtpdec_vp8: Request a keyframe if RTP packets are lost
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-08 19:23:56 +02:00
Paul B Mahol
626756aed2 img2dec: do not change packet pts for image2pipe
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-08 16:51:18 +00:00
Martin Storsjö
86d9181cf4 rtpdec: Support sending RTCP feedback packets
This sends NACK for missed packets and PLI (picture loss indication)
if a depacketizer indicates that it needs a new keyframe, according
to RFC 4585.

This is only enabled if the SDP indicated that feedback is supported
(via the AVPF or SAVPF profile names).

The feedback packets are throttled to a certain maximum interval
(currently 250 ms) to make sure the feedback packets don't eat up
too much bandwidth (which might be counterproductive). The RFC
specifies a more elaborate feedback packet scheduling.

The feedback packets are currently sent independently from normal
RTCP RR packets, which is not totally spec compliant, but works
fine in the environments I've tested it in. (RFC 5506 allows this,
but requires a SDP attribute for enabling it.)

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-08 17:48:14 +02:00
Martin Storsjö
42805eda55 rtpdec: Store the dynamic payload handler in the rtpdec context
This allows calling other dynamic payload handler functions if
needed.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-08 17:47:27 +02:00
Martin Storsjö
9c80ed836a rtpdec_vp8: Avoid a warning about a possibly unused variable
The warning is a false positive, but I prefer actually initializing
it over masking it with av_uninit, since the code is not performance
critical.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-08 17:43:11 +02:00
Martin Storsjö
09ed8098ff rtpdec_vp8: Make sure the previous packet is returned
This is a bug from c7d4de3d73 - if the previous frame wasn't
returned yet (due to missing the final packets), but we have
enough data of it to return the first partition, we write that into
pkt and set returned_old_frame. That commit forgot returning 0 for
the case where this current packet didn't have the end_packet flag
set.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-08 17:42:29 +02:00
Martin Storsjö
92e354b655 rtpdec_vp8: Set the timestamp when returning a deferred packet
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-08 17:42:20 +02:00
Kanglin
ba8cb33273 hlsenc: Make the start_number option set the right variable
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-08 17:33:56 +02:00
Paul B Mahol
55d32eed8f img2dec: seeking support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-08 14:29:22 +00:00
Michael Niedermayer
86159703f5 ff_find_pix_fmt: return NONE for the "not found" case.
Found-by: durandal_1707
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-08 14:32:19 +01:00
Nicolas George
ff6b34009d lavfi: fix use-after-free in ff_filter_frame.
Unlike the original ff_start_frame code, the incoming reference
may be freed before that point.

Fix CID966654.
2013-01-08 13:31:33 +01:00
Michael Niedermayer
315f15afe7 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  rtsp: Respect max_delay for the reordering queue when using custom IO

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-08 13:14:39 +01:00
Michael Niedermayer
48d30f6733 Merge commit '8729698d50739524665090e083d1bfdf28235724'
* commit '8729698d50739524665090e083d1bfdf28235724':
  rtsp: Recheck the reordering queue if getting a new packet
  lavr: log channel conversion description for any-to-any functions
  lavr: mix: reduce the mixing matrix when possible
  lavr: cosmetics: reindent

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-08 13:05:13 +01:00
Michael Niedermayer
249fca3df9 Merge commit '074a00d192c0e749d677b008b337da42597e780f'
* commit '074a00d192c0e749d677b008b337da42597e780f':
  lavr: add a public function for setting a custom channel map
  lavr: typedef internal structs in internal.h
  doc: Extend commit message section

Conflicts:
	doc/APIchanges
	doc/developer.texi

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-08 12:56:41 +01:00
Michael Niedermayer
3a0bac27b3 Merge commit 'ac2603be28602bea76cf38bdbf37aead0dc2979a'
* commit 'ac2603be28602bea76cf38bdbf37aead0dc2979a':
  doc: Mention memory allocation in the fuzz testing section

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-08 12:49:02 +01:00
Michael Niedermayer
32cf37d097 Merge commit 'dc3e12d1cb65d74fb120197ce869a205718b6715'
* commit 'dc3e12d1cb65d74fb120197ce869a205718b6715':
  doc: Mention zzuf in the fuzz testing section

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-08 12:46:59 +01:00
Michael Niedermayer
adc7296aa5 Merge commit 'b5f9b9ac3681acb06d95530f34660ba9fe225305'
* commit 'b5f9b9ac3681acb06d95530f34660ba9fe225305':
  doc: Merge disjointed bits about emailing patches

Conflicts:
	doc/developer.texi

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-08 12:45:24 +01:00
Michael Niedermayer
3bca69c2a8 Merge commit '9a00374cb4512a58a1fee366b850dfa87c76e1f3'
* commit '9a00374cb4512a58a1fee366b850dfa87c76e1f3':
  doc: Fix a few typos in the developer documentation
  xwma: Remove unused variable
  asfdec: Fix printf format string length modifier

Conflicts:
	doc/developer.texi

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-08 12:34:14 +01:00
Martin Storsjö
f811cd2d47 rtsp: Respect max_delay for the reordering queue when using custom IO
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-08 11:22:43 +02:00
Martin Storsjö
8729698d50 rtsp: Recheck the reordering queue if getting a new packet
If we timed out and consumed a packet from the reordering queue,
but didn't return a packet to the caller, recheck the queue status.
Otherwise, we could end up in an infinite loop, trying to consume
a queued packet that has already been consumed.

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-08 11:22:37 +02:00
Justin Ruggles
7ff3fd7ae4 lavr: log channel conversion description for any-to-any functions 2013-01-07 21:49:07 -05:00
Justin Ruggles
074a00d192 lavr: add a public function for setting a custom channel map
This allows reordering, duplication, and silencing of input channels.
2013-01-07 21:49:06 -05:00
Justin Ruggles
4164b0e8d3 lavr: mix: reduce the mixing matrix when possible
If the matrix results in an output channel not getting a contribution
from any input channel and the corresponding input channel does not
contribute to any outputs, we can skip the channel during mixing and
silence it after mixing.

If the matrix results in an input channel not contributing to any output
channels and it is not in the output mix, or if the input channel only
contributes fully to the same output channel, we can skip the channel
during mixing.

If the matrix results in an output channel only getting full
contribution from the corresponding input channel and that input channel
does not contribute to any other output channels, we can skip the
channel during mixing.
2013-01-07 21:49:06 -05:00
Justin Ruggles
1ccf82cfd8 lavr: cosmetics: reindent 2013-01-07 21:49:06 -05:00
Justin Ruggles
4d68269d58 lavr: typedef internal structs in internal.h
Simplifies header dependencies by not including all other internal headers
in internal.h.
2013-01-07 21:49:05 -05:00
Michael Niedermayer
1a088f61e1 oggparseskeleton: Check the overall start time before using it.
Fixes division by zero

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-08 02:58:01 +01:00
Michael Niedermayer
4c80184cf5 mjpegdec: allow 2 components in ljpeg_decode_yuv_scan()
Fixes assertion failure

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-08 02:54:21 +01:00
Carl Eugen Hoyos
b23aff6755 Add forgotten AVC Intra entry to Changelog. 2013-01-08 01:08:36 +01:00
Michael Niedermayer
953061ed95 lavf/utils: more complete dts checks
Fixes division by zero

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-08 00:28:35 +01:00
Michael Niedermayer
3b57bb478f svq1dec: check that the reference frame matches in size before using it.
Fixes out of array reads

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-08 00:28:35 +01:00
Clément Bœsch
dbf0a90572 lavc: fix forgotten "que" reference.
This should have been part of 491ca0e8.
2013-01-07 22:07:50 +01:00
Michael Niedermayer
0780fe2740 rmdec: Limit videobufsize to remaining amount of data
Fixes excessive memory allocation

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-07 21:35:52 +01:00
Michael Niedermayer
f65daf577a rv10: always check direct mode interpolation times.
Fixes Division by 0

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-07 21:35:52 +01:00
Derek Buitenhuis
ac2603be28 doc: Mention memory allocation in the fuzz testing section
It's obviously undesireable to blindly allocate memory based on
a damaged 'size' value, for example.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2013-01-07 14:55:49 -05:00
Derek Buitenhuis
dc3e12d1cb doc: Mention zzuf in the fuzz testing section
It's pretty much the best tool for the job, and it's what we
all use now anyway.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2013-01-07 14:55:49 -05:00
Derek Buitenhuis
6042a12174 doc: Extend commit message section
If a bug exists on the tracker, its ID should always be included
in fix messages.

Also, any relevant bug fixes should be CC'd to libav-stable, so
we can actually track what needs to be backported, instead of
just randomly combing the git history and old CVEs.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2013-01-07 14:55:49 -05:00
Derek Buitenhuis
b5f9b9ac36 doc: Merge disjointed bits about emailing patches
We obviously prefer git-send-email(1), and the disjointed nature
of the two statements was misleading.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2013-01-07 14:55:48 -05:00
Derek Buitenhuis
9a00374cb4 doc: Fix a few typos in the developer documentation
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2013-01-07 14:55:48 -05:00
Peter Ross
a572cc8c7a wtvdec: prevent memory leak in get_tag() 2013-01-08 01:59:13 +11:00
Michael Niedermayer
7fb87bc5f2 mpeg12enc: check dimension validity
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-07 15:47:21 +01:00
Michael Niedermayer
bcc4ef1a41 mpeg12enc: Correctly mask dimensions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-07 15:47:06 +01:00
Michael Niedermayer
878e5bd6f5 mpeg12: Support decoding dimensions that are a multiple of 4096
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-07 15:31:00 +01:00
Michael Niedermayer
7a6beedd3f oggparsevorbis: fix vorbis_cleanup return type
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-07 14:20:28 +01:00
Michael Niedermayer
1700be5855 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  oggdec: make sure the private parse data is cleaned up

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-07 14:20:21 +01:00
Michael Niedermayer
2db8660f09 Merge commit '89b51b570daa80e6e3790fcd449fe61fc5574e07'
* commit '89b51b570daa80e6e3790fcd449fe61fc5574e07':
  oggdec: free the ogg streams on read_header failure

Conflicts:
	libavformat/oggdec.c

Original commit this was based on: (this merge just moves the function up)
commit 07a866282f
Author: Michael Niedermayer <michaelni@gmx.at>
Date:   Tue Nov 20 15:12:37 2012 +0100

    oggdec: fix memleak on header parsing failure

    Fixes Ticket1931

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-07 14:03:48 +01:00
Benjamin Larsson
bbae68596e xwma: Remove unused variable
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-01-07 13:25:20 +01:00
Peter Ross
8b4842c2e2 wtvdec: warn about truncated files 2013-01-07 23:14:58 +11:00
Peter Ross
801b636633 wtvenc: mux thumbnail picture 2013-01-07 23:14:58 +11:00
Peter Ross
361ecb6176 wtvdec: ignore WM/MediaThumbType metadata entry
This tag is used by Windows Media Centre in displaying the thumbnail,
and should be transformed into FFmpeg metadata string.
2013-01-07 23:14:58 +11:00
Peter Ross
508836932f wtvdec: demux thumbnail picture to AVStream.attached_pic 2013-01-07 23:14:58 +11:00
Paul B Mahol
2a89081cad Add EVRCA and SMV codec id
Demuxing files should be possible even if there are
no decoding support in lavc (yet).

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-07 11:43:20 +00:00
Peter Ross
6cff56f0ba frmdec: tag 2 is AV_PIX_FMT_RGB0 2013-01-07 22:06:06 +11:00
Peter Ross
8d4c817c4a frmdec: terminate frm_pix_fmt_tags 2013-01-07 22:06:06 +11:00
Peter Ross
f2dc158b0a frmdec: use AV_PIX_FMT_xxx 2013-01-07 22:06:06 +11:00
Paul B Mahol
2516023695 012v: remove double ; and return correct error code if ff_get_buffer() fails
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-07 10:48:02 +00:00
Paul B Mahol
7f7f31bfcb iff: support seeking with maud
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-07 10:19:49 +00:00
Paul B Mahol
3174137d41 w64: fact guid support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-07 10:08:38 +00:00
Paul B Mahol
e13c5abbd7 Changelog: move Megalux where it belongs
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-07 09:45:45 +00:00
Diego Biurrun
e817d9139f asfdec: Fix printf format string length modifier 2013-01-07 09:21:42 +01:00
Michael Niedermayer
92e79e595b Merge remote-tracking branch 'qatar/master'
Merge only for metadata, no commits merged

* qatar/master:
  Drop Snow codec
  Prepare for 10_alpha1 Release

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-07 02:01:39 +01:00
Michael Niedermayer
c526a01c91 Merge commit '4f50646697606df39317b93c2a427603b77636ee'
* commit '4f50646697606df39317b93c2a427603b77636ee':
  x86: sbrdsp: Implement SSE qmf_post_shuffle

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-07 01:51:10 +01:00
Michael Niedermayer
8429320313 Merge commit '44a0036d10579ed91e48df24859e54b08a582742'
* commit '44a0036d10579ed91e48df24859e54b08a582742':
  x86: sbrdsp: Implement SSE sum64x5

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-07 01:40:05 +01:00
Michael Niedermayer
ea93ccf079 Merge commit '5b4dfbffc258f90a7d2540d21209ac23afcf7cd0'
* commit '5b4dfbffc258f90a7d2540d21209ac23afcf7cd0':
  x86: ABS1: port to cpuflags
  v210x: cosmetics, reformat

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-07 01:35:18 +01:00
Michael Niedermayer
55d8cac254 Merge commit '6689474b91049411b5b7986616d1c66b701ae11f'
* commit '6689474b91049411b5b7986616d1c66b701ae11f':
  v210x: return meaningful error codes.
  r210dec: return meaningful error codes.
  vb: cosmetics, reformat

Conflicts:
	libavcodec/vb.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-07 01:30:23 +01:00
Michael Niedermayer
501db2f32b Merge commit '9dbbda235d93d628777b986e502213f1ed390973'
* commit '9dbbda235d93d628777b986e502213f1ed390973':
  vb: return meaningful error codes.
  ptx: return meaningful error codes.
  tiff: return meaningful error codes.
  vqavideo: return meaningful error codes.
  mss2: return meaningful error codes.
  v210dec: return meaningful error codes
  indeo2: cosmetics, reformat

Conflicts:
	libavcodec/indeo2.c
	libavcodec/tiff.c
	libavcodec/v210dec.c
	libavcodec/vb.c
	libavcodec/vqavideo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-07 01:24:32 +01:00
Michael Niedermayer
4b20d307b3 Merge commit '7b1fbd4729a52dd7c02622dbe7bb81a6a7ed12f8'
* commit '7b1fbd4729a52dd7c02622dbe7bb81a6a7ed12f8':
  indeo2: check decoding errors.
  indeo2: return meaningful error codes
  rl2: cosmetics, reformat

Conflicts:
	libavcodec/rl2.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-07 01:11:14 +01:00
Michael Niedermayer
d30660306c Merge commit '3c6e5a840c45fd3b832e86881602a72e47d46f19'
* commit '3c6e5a840c45fd3b832e86881602a72e47d46f19':
  rl2: use fixed-width integer types where appropriate
  rl2: return meaningful error codes.
  cljr: return a meaningful error code.
  fraps: cosmetics, reformat

Conflicts:
	libavcodec/fraps.c
	libavcodec/rl2.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-07 01:01:13 +01:00
Michael Niedermayer
07f22d0b49 Merge commit '57d11e5e28bfe0bc445ad78fc033aafa73068bb4'
* commit '57d11e5e28bfe0bc445ad78fc033aafa73068bb4':
  fraps: return meaningful error codes.
  kgv1dec: return meaningful error codes.
  kmvc: return meaningful error codes.
  wnv1: return meaningful error codes.
  dpx: return meaningful error codes.
  truemotion1: return meaningful error codes
  pnm: return meaningful error codes.

Conflicts:
	libavcodec/dpx.c
	libavcodec/fraps.c
	libavcodec/kmvc.c
	libavcodec/pnm.c
	libavcodec/pnmdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-07 00:41:06 +01:00
Michael Niedermayer
7b018e5c8d Merge commit '84f2847de394ac447f53306bd4dd73e1af6ea5e4'
* commit '84f2847de394ac447f53306bd4dd73e1af6ea5e4':
  xl: return a meaningful error code.
  xan: return a meaningful error code.
  xxan: return meaningful error codes.
  zmbv: return more meaningful error codes.
  yop: use a meaningful error code.
  c93: return meaningful error codes.
  bmv: return meaningful error codes.
  bmp: return meaningful error codes.
  bink: operate with pointers to AVFrames instead of whole structs.
  bink: return meaningful error codes.
  bfi: return meaningful error codes.
  bethsoftvideo: return meaningful error codes.

Conflicts:
	libavcodec/c93.c
	libavcodec/xl.c
	libavcodec/xxan.c
	libavcodec/yop.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-06 23:59:35 +01:00
Michael Niedermayer
6190446745 Merge commit 'e83c1e2d0bedb5d4fa9ab351126b2ecc552f1355'
* commit 'e83c1e2d0bedb5d4fa9ab351126b2ecc552f1355':
  avs: return meaningful error codes.
  aura: return meaningful error codes.
  asvdec: return meaningful error codes.
  ansi: return a meaningful error code
  anm: return meaningful error codes
  aasc: return meaningful error codes.
  8bps: return meaningful error codes.
  4xm: operate with pointers to AVFrames instead of whole structs.
  4xm: eliminate a pointless indirection

Conflicts:
	libavcodec/4xm.c
	libavcodec/aasc.c
	libavcodec/anm.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-06 23:48:48 +01:00
Luca Barbato
d894f74762 oggdec: make sure the private parse data is cleaned up 2013-01-06 17:59:54 +01:00
Luca Barbato
89b51b570d oggdec: free the ogg streams on read_header failure
Plug an annoying memory leak on broken files.
2013-01-06 17:59:54 +01:00
Diego Biurrun
a0c5917f86 Drop Snow codec
Snow is a toy codec with no real-world use and horrible code.
2013-01-06 16:30:02 +01:00
Reinhard Tartler
6b8d88808d Prepare for 10_alpha1 Release 2013-01-06 16:23:12 +01:00
Christophe Gisquet
4f50646697 x86: sbrdsp: Implement SSE qmf_post_shuffle
255 to 174 cycles on Arrandale / Win64. Unrolling yields no gain.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-01-06 13:57:01 +01:00
Christophe Gisquet
44a0036d10 x86: sbrdsp: Implement SSE sum64x5
698 to 174 cycles on Arrandale. Unrolling is a 6 cycles gain.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-01-06 13:57:01 +01:00
Diego Biurrun
5b4dfbffc2 x86: ABS1: port to cpuflags 2013-01-06 13:57:01 +01:00
Anton Khirnov
6689474b91 v210x: return meaningful error codes. 2013-01-06 13:31:40 +01:00
Anton Khirnov
9dbbda235d vb: return meaningful error codes. 2013-01-06 13:31:40 +01:00
Anton Khirnov
7b1fbd4729 indeo2: check decoding errors. 2013-01-06 13:31:40 +01:00
Anton Khirnov
3c6e5a840c rl2: use fixed-width integer types where appropriate 2013-01-06 13:31:40 +01:00
Anton Khirnov
57d11e5e28 fraps: return meaningful error codes. 2013-01-06 13:31:40 +01:00
Anton Khirnov
84f2847de3 xl: return a meaningful error code. 2013-01-06 13:31:40 +01:00
Anton Khirnov
de16f08e48 v210x: cosmetics, reformat 2013-01-06 13:31:40 +01:00
Anton Khirnov
39039f2405 r210dec: return meaningful error codes. 2013-01-06 13:31:40 +01:00
Anton Khirnov
a0ffcee1ee ptx: return meaningful error codes. 2013-01-06 13:31:40 +01:00
Anton Khirnov
6ea2c9a4cf indeo2: return meaningful error codes 2013-01-06 13:31:40 +01:00
Anton Khirnov
126abaaaae rl2: return meaningful error codes. 2013-01-06 13:31:40 +01:00
Anton Khirnov
405486c28b kgv1dec: return meaningful error codes. 2013-01-06 13:31:40 +01:00
Anton Khirnov
d47dabbac2 xan: return a meaningful error code. 2013-01-06 13:31:40 +01:00
Anton Khirnov
4324a3ce75 vb: cosmetics, reformat 2013-01-06 13:31:40 +01:00
Anton Khirnov
b2a7b81b9c tiff: return meaningful error codes. 2013-01-06 13:31:40 +01:00
Anton Khirnov
6781b5315e rl2: cosmetics, reformat 2013-01-06 13:31:40 +01:00
Anton Khirnov
7c8fceef6c cljr: return a meaningful error code. 2013-01-06 13:31:40 +01:00
Anton Khirnov
e1a7061d63 kmvc: return meaningful error codes. 2013-01-06 13:31:40 +01:00
Anton Khirnov
26a161a166 vqavideo: return meaningful error codes. 2013-01-06 13:31:40 +01:00
Anton Khirnov
80344261aa fraps: cosmetics, reformat 2013-01-06 13:31:40 +01:00
Anton Khirnov
f3fcb1a7b2 wnv1: return meaningful error codes. 2013-01-06 13:31:40 +01:00
Anton Khirnov
edfe05ddf1 mss2: return meaningful error codes. 2013-01-06 13:31:40 +01:00
Anton Khirnov
0c19b23bd5 dpx: return meaningful error codes. 2013-01-06 13:31:40 +01:00
Anton Khirnov
f0547c9bd0 v210dec: return meaningful error codes 2013-01-06 13:31:40 +01:00
Anton Khirnov
b61e0b99df truemotion1: return meaningful error codes 2013-01-06 13:31:40 +01:00
Anton Khirnov
c04c64c08e indeo2: cosmetics, reformat 2013-01-06 13:31:40 +01:00
Anton Khirnov
380242ca50 pnm: return meaningful error codes. 2013-01-06 13:31:40 +01:00
Anton Khirnov
e83c1e2d0b avs: return meaningful error codes. 2013-01-06 13:31:39 +01:00
Anton Khirnov
4aebb8d999 xxan: return meaningful error codes. 2013-01-06 13:31:39 +01:00
Anton Khirnov
620faee5d1 aura: return meaningful error codes. 2013-01-06 13:31:39 +01:00
Anton Khirnov
aaf208329f zmbv: return more meaningful error codes. 2013-01-06 13:31:39 +01:00
Anton Khirnov
38de3365ca asvdec: return meaningful error codes. 2013-01-06 13:31:39 +01:00
Anton Khirnov
01b60883ea yop: use a meaningful error code. 2013-01-06 13:31:39 +01:00
Anton Khirnov
b3b17f7800 ansi: return a meaningful error code 2013-01-06 13:31:39 +01:00
Anton Khirnov
11c3f2047e c93: return meaningful error codes. 2013-01-06 13:31:39 +01:00
Anton Khirnov
b622e2b540 anm: return meaningful error codes 2013-01-06 13:31:39 +01:00
Anton Khirnov
2b011a43e9 bmv: return meaningful error codes. 2013-01-06 13:31:39 +01:00
Anton Khirnov
18009e60d2 aasc: return meaningful error codes. 2013-01-06 13:31:39 +01:00
Anton Khirnov
abcc235481 bmp: return meaningful error codes. 2013-01-06 13:31:39 +01:00
Anton Khirnov
313da47aa1 8bps: return meaningful error codes. 2013-01-06 13:31:39 +01:00
Anton Khirnov
6a97ea65b6 bink: operate with pointers to AVFrames instead of whole structs.
This is more correct and avoids breaking extended_data.
2013-01-06 13:31:39 +01:00
Anton Khirnov
f7d15d2f42 4xm: operate with pointers to AVFrames instead of whole structs.
This is more correct and avoids breaking extended_data.
2013-01-06 13:31:39 +01:00
Anton Khirnov
86d4e75422 bink: return meaningful error codes. 2013-01-06 13:31:39 +01:00
Anton Khirnov
85383d139a 4xm: eliminate a pointless indirection 2013-01-06 13:31:39 +01:00
Anton Khirnov
86e09b9e60 bfi: return meaningful error codes. 2013-01-06 13:31:39 +01:00
Anton Khirnov
fc2a94c15e bethsoftvideo: return meaningful error codes. 2013-01-06 13:31:39 +01:00
1152 changed files with 46480 additions and 24966 deletions

2
.gitignore vendored
View File

@@ -37,6 +37,7 @@
/doc/examples/filtering_video
/doc/examples/metadata
/doc/examples/muxing
/doc/examples/pc-uninstalled
/doc/examples/resampling_audio
/doc/examples/scaling_video
/doc/fate.txt
@@ -66,3 +67,4 @@
/tools/probetest
/tools/qt-faststart
/tools/trasher
/tools/seek_print

59
CREDITS
View File

@@ -1,55 +1,6 @@
This file contains the names of some of the people who have contributed to
FFmpeg. The names are sorted alphabetically by last name. As this file is
currently quite outdated and git serves as a much better tool for determining
authorship, it remains here for historical reasons only.
See the Git history of the project (git://source.ffmpeg.org/ffmpeg) to
get the names of people who have contributed to FFmpeg.
Dénes Balatoni
Michel Bardiaux
Fabrice Bellard
Patrice Bensoussan
Alex Beregszaszi
BERO
Thilo Borgmann
Mario Brito
Ronald Bultje
Alex Converse
Maarten Daniels
Reimar Doeffinger
Tim Ferguson
Brian Foley
Arpad Gereoffy
Philip Gladstone
Vladimir Gneushev
Roine Gustafsson
David Hammerton
Wolfgang Hesseler
Marc Hoffman
Falk Hueffner
Aurélien Jacobs
Steven Johnson
Zdenek Kabelac
Robin Kay
Todd Kirby
Nick Kurshev
Benjamin Larsson
Loïc Le Loarer
Daniel Maas
Mike Melanson
Loren Merritt
Jeff Muizelaar
Michael Niedermayer
François Revol
Peter Ross
Måns Rullgård
Stefano Sabatini
Roman Shaposhnik
Oded Shimon
Dieter Shirley
Konstantin Shishkov
Juan J. Sierralta
Ewald Snel
Sascha Sommer
Leon van Stuivenberg
Roberto Togni
Lionel Ulmer
Reynaldo Verdejo
To check the log, you can type the command "git log" in the FFmpeg
source directory, or browse the online repository at
http://source.ffmpeg.org.

View File

@@ -1,7 +1,29 @@
Entries are sorted chronologically from oldest to youngest within each release,
releases are sorted from youngest to oldest.
version <next>:
version 1.2:
- VDPAU hardware acceleration through normal hwaccel
- SRTP support
- Error diffusion dither in Swscale
- Chained Ogg support
- Theora Midstream reconfiguration support
- EVRC decoder
- audio fade filter
- filtering audio with unknown channel layout
- allpass, bass, bandpass, bandreject, biquad, equalizer, highpass, lowpass
and treble audio filter
- improved showspectrum filter, with multichannel support and sox-like colors
- histogram filter
- tee muxer
- il filter ported from libmpcodecs
- support ID3v2 tags in ASF files
- encrypted TTA stream decoding support
- RF64 support in WAV muxer
- noise filter ported from libmpcodecs
- Subtitles character encoding conversion
- blend filter
- stereo3d filter ported from libmpcodecs
version 1.1:
@@ -60,7 +82,9 @@ version 1.1:
- support building on the Plan 9 operating system
- kerndeint filter ported from MPlayer
- histeq filter ported from VirtualDub
- Megalux Frame demuxer
- 012v decoder
- Improved AVC Intra decoding support
version 1.0:
@@ -349,7 +373,6 @@ easier to use. The changes are:
- Simple segmenting muxer
- Indeo 4 decoder
- SMJPEG demuxer
- Megalux Frame demuxer
version 0.8:

12
LICENSE
View File

@@ -36,13 +36,20 @@ Specifically, the GPL parts of FFmpeg are
- vf_hue.c
- vf_kerndeint.c
- vf_mp.c
- vf_noise.c
- vf_pp.c
- vf_smartblur.c
- vf_stereo3d.c
- vf_super2xsai.c
- vf_tinterlace.c
- vf_yadif.c
- vsrc_mptestsrc.c
Should you, for whatever reason, prefer to use version 3 of the (L)GPL, then
the configure parameter --enable-version3 will activate this licensing option
for you. Read the file COPYING.LGPLv3 or, if you have enabled GPL parts,
COPYING.GPLv3 to learn the exact legal terms that apply in this case.
There are a handful of files under other licensing terms, namely:
* The files libavcodec/jfdctfst.c, libavcodec/jfdctint_template.c and
@@ -52,11 +59,6 @@ There are a handful of files under other licensing terms, namely:
You must also indicate any changes including additions and deletions to
those three files in the documentation.
Should you, for whatever reason, prefer to use version 3 of the (L)GPL, then
the configure parameter --enable-version3 will activate this licensing option
for you. Read the file COPYING.LGPLv3 or, if you have enabled GPL parts,
COPYING.GPLv3 to learn the exact legal terms that apply in this case.
external libraries
==================

View File

@@ -445,9 +445,9 @@ x86 Michael Niedermayer
Releases
========
1.2 Michael Niedermayer
1.1 Michael Niedermayer
1.0 Michael Niedermayer
0.11 Michael Niedermayer

View File

@@ -1 +1 @@
1.1.git
1.2.7

1
VERSION Normal file
View File

@@ -0,0 +1 @@
1.2.7

View File

@@ -62,10 +62,10 @@
static int init_report(const char *env);
struct SwsContext *sws_opts;
SwrContext *swr_opts;
AVDictionary *format_opts, *codec_opts;
AVDictionary *swr_opts;
AVDictionary *format_opts, *codec_opts, *resample_opts;
const int this_year = 2013;
const int this_year = 2014;
static FILE *report_file;
@@ -75,9 +75,6 @@ void init_opts(void)
if(CONFIG_SWSCALE)
sws_opts = sws_getContext(16, 16, 0, 16, 16, 0, SWS_BICUBIC,
NULL, NULL, NULL);
if(CONFIG_SWRESAMPLE)
swr_opts = swr_alloc();
}
void uninit_opts(void)
@@ -87,11 +84,10 @@ void uninit_opts(void)
sws_opts = NULL;
#endif
if(CONFIG_SWRESAMPLE)
swr_free(&swr_opts);
av_dict_free(&swr_opts);
av_dict_free(&format_opts);
av_dict_free(&codec_opts);
av_dict_free(&resample_opts);
}
void log_callback_help(void *ptr, int level, const char *fmt, va_list vl)
@@ -478,6 +474,9 @@ int opt_default(void *optctx, const char *opt, const char *arg)
char opt_stripped[128];
const char *p;
const AVClass *cc = avcodec_get_class(), *fc = avformat_get_class();
#if CONFIG_AVRESAMPLE
const AVClass *rc = avresample_get_class();
#endif
const AVClass *sc, *swr_class;
if (!strcmp(opt, "debug") || !strcmp(opt, "fdebug"))
@@ -516,13 +515,23 @@ int opt_default(void *optctx, const char *opt, const char *arg)
#endif
#if CONFIG_SWRESAMPLE
swr_class = swr_get_class();
if (!consumed && av_opt_find(&swr_class, opt, NULL, 0,
AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ)) {
int ret = av_opt_set(swr_opts, opt, arg, 0);
if (!consumed && (o=av_opt_find(&swr_class, opt, NULL, 0,
AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ))) {
struct SwrContext *swr = swr_alloc();
int ret = av_opt_set(swr, opt, arg, 0);
swr_free(&swr);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Error setting option %s.\n", opt);
return ret;
}
av_dict_set(&swr_opts, opt, arg, FLAGS);
consumed = 1;
}
#endif
#if CONFIG_AVRESAMPLE
if ((o=av_opt_find(&rc, opt, NULL, 0,
AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ))) {
av_dict_set(&resample_opts, opt, arg, FLAGS);
consumed = 1;
}
#endif
@@ -575,9 +584,11 @@ static void finish_group(OptionParseContext *octx, int group_idx,
g->swr_opts = swr_opts;
g->codec_opts = codec_opts;
g->format_opts = format_opts;
g->resample_opts = resample_opts;
codec_opts = NULL;
format_opts = NULL;
resample_opts = NULL;
#if CONFIG_SWSCALE
sws_opts = NULL;
#endif
@@ -635,11 +646,11 @@ void uninit_parse_context(OptionParseContext *octx)
av_freep(&l->groups[j].opts);
av_dict_free(&l->groups[j].codec_opts);
av_dict_free(&l->groups[j].format_opts);
av_dict_free(&l->groups[j].resample_opts);
#if CONFIG_SWSCALE
sws_freeContext(l->groups[j].sws_opts);
#endif
if(CONFIG_SWRESAMPLE)
swr_free(&l->groups[j].swr_opts);
av_dict_free(&l->groups[j].swr_opts);
}
av_freep(&l->groups);
}
@@ -656,6 +667,7 @@ int split_commandline(OptionParseContext *octx, int argc, char *argv[],
const OptionGroupDef *groups, int nb_groups)
{
int optindex = 1;
int dashdash = -2;
/* perform system-dependent conversions for arguments list */
prepare_app_arguments(&argc, &argv);
@@ -670,8 +682,12 @@ int split_commandline(OptionParseContext *octx, int argc, char *argv[],
av_log(NULL, AV_LOG_DEBUG, "Reading option '%s' ...", opt);
if (opt[0] == '-' && opt[1] == '-' && !opt[2]) {
dashdash = optindex;
continue;
}
/* unnamed group separators, e.g. output filename */
if (opt[0] != '-' || !opt[1]) {
if (opt[0] != '-' || !opt[1] || dashdash+1 == optindex) {
finish_group(octx, 0, opt);
av_log(NULL, AV_LOG_DEBUG, " matched as %s.\n", groups[0].name);
continue;
@@ -743,7 +759,7 @@ do { \
return AVERROR_OPTION_NOT_FOUND;
}
if (octx->cur_group.nb_opts || codec_opts || format_opts)
if (octx->cur_group.nb_opts || codec_opts || format_opts || resample_opts)
av_log(NULL, AV_LOG_WARNING, "Trailing options were found on the "
"commandline.\n");
@@ -1612,7 +1628,7 @@ int show_help(void *optctx, const char *opt, const char *arg)
int read_yesno(void)
{
int c = getchar();
int yesno = (toupper(c) == 'Y');
int yesno = (av_toupper(c) == 'Y');
while (c != '\n' && c != EOF)
c = getchar();
@@ -1733,10 +1749,8 @@ AVDictionary *filter_codec_opts(AVDictionary *opts, enum AVCodecID codec_id,
if (!codec)
codec = s->oformat ? avcodec_find_encoder(codec_id)
: avcodec_find_decoder(codec_id);
if (!codec)
return NULL;
switch (codec->type) {
switch (st->codec->codec_type) {
case AVMEDIA_TYPE_VIDEO:
prefix = 'v';
flags |= AV_OPT_FLAG_VIDEO_PARAM;
@@ -1848,12 +1862,6 @@ static int alloc_buffer(FrameBuffer **pool, AVCodecContext *s, FrameBuffer **pbu
av_log(s, AV_LOG_ERROR, "alloc_buffer: av_image_alloc() failed\n");
return ret;
}
/* XXX this shouldn't be needed, but some tests break without this line
* those decoders are buggy and need to be fixed.
* the following tests fail:
* cdgraphics, ansi, aasc, fraps-v1, qtrle-1bit
*/
memset(buf->base[0], 128, ret);
avcodec_get_chroma_sub_sample(s->pix_fmt, &h_chroma_shift, &v_chroma_shift);
for (i = 0; i < FF_ARRAY_ELEMS(buf->data); i++) {

View File

@@ -51,8 +51,8 @@ extern const int this_year;
extern AVCodecContext *avcodec_opts[AVMEDIA_TYPE_NB];
extern AVFormatContext *avformat_opts;
extern struct SwsContext *sws_opts;
extern struct SwrContext *swr_opts;
extern AVDictionary *format_opts, *codec_opts;
extern AVDictionary *swr_opts;
extern AVDictionary *format_opts, *codec_opts, *resample_opts;
/**
* Initialize the cmdutils option system, in particular
@@ -123,7 +123,7 @@ double parse_number_or_die(const char *context, const char *numstr, int type,
* not zero timestr is interpreted as a duration, otherwise as a
* date
*
* @see parse_date()
* @see av_parse_time()
*/
int64_t parse_time_or_die(const char *context, const char *timestr,
int is_duration);
@@ -190,13 +190,13 @@ void show_help_options(const OptionDef *options, const char *msg, int req_flags,
void show_help_children(const AVClass *class, int flags);
/**
* Per-avtool specific help handler. Implemented in each
* avtool, called by show_help().
* Per-fftool specific help handler. Implemented in each
* fftool, called by show_help().
*/
void show_help_default(const char *opt, const char *arg);
/**
* Generic -h handler common to all avtools.
* Generic -h handler common to all fftools.
*/
int show_help(void *optctx, const char *opt, const char *arg);
@@ -253,8 +253,9 @@ typedef struct OptionGroup {
AVDictionary *codec_opts;
AVDictionary *format_opts;
AVDictionary *resample_opts;
struct SwsContext *sws_opts;
struct SwrContext *swr_opts;
AVDictionary *swr_opts;
} OptionGroup;
/**

View File

@@ -32,7 +32,7 @@ ASFLAGS := $(CPPFLAGS) $(ASFLAGS)
CXXFLAGS += $(CPPFLAGS) $(CFLAGS)
YASMFLAGS += $(IFLAGS:%=%/) -Pconfig.asm
HOSTCCFLAGS = $(IFLAGS) $(HOSTCFLAGS)
HOSTCCFLAGS = $(IFLAGS) $(HOSTCPPFLAGS) $(HOSTCFLAGS)
LDFLAGS := $(ALLFFLIBS:%=$(LD_PATH)lib%) $(LDFLAGS)
define COMPILE
@@ -117,12 +117,12 @@ $(HOSTPROGS): %$(HOSTEXESUF): %.o
$(HOSTLD) $(HOSTLDFLAGS) $(HOSTLD_O) $< $(HOSTLIBS)
$(OBJS): | $(sort $(dir $(OBJS)))
$(HOBJS): | $(sort $(dir $(HOBJS)))
$(HOSTOBJS): | $(sort $(dir $(HOSTOBJS)))
$(TESTOBJS): | $(sort $(dir $(TESTOBJS)))
$(HOBJS): | $(sort $(dir $(HOBJS)))
$(TOOLOBJS): | tools
OBJDIRS := $(OBJDIRS) $(dir $(OBJS) $(HOSTOBJS) $(TESTOBJS) $(HOBJS))
OBJDIRS := $(OBJDIRS) $(dir $(OBJS) $(HOBJS) $(HOSTOBJS) $(TESTOBJS))
CLEANSUFFIXES = *.d *.o *~ *.h.c *.map *.ver *.ho *.gcno *.gcda
DISTCLEANSUFFIXES = *.pc

View File

@@ -19,7 +19,6 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include <ctype.h>
#include <limits.h>
#include <stdlib.h>
@@ -49,7 +48,7 @@ double avpriv_strtod(const char *nptr, char **endptr)
double res;
/* Skip leading spaces */
while (isspace(*nptr))
while (av_isspace(*nptr))
nptr++;
if (!av_strncasecmp(nptr, "infinity", 8)) {

495
configure vendored

File diff suppressed because it is too large Load Diff

View File

@@ -15,7 +15,19 @@ libavutil: 2012-10-22
API changes, most recent first:
2012-12-20 - xxxxxxx - lavfi 3.28.100 - avfilter.h
2013-03-07 - xxxxxx - lavu 52.18.100 - avstring.h,bprint.h
Add av_escape() and av_bprint_escape() API.
2013-02-24 - xxxxxx - lavfi 3.41.100 - buffersink.h
Add sample_rates field to AVABufferSinkParams.
2013-01-17 - a1a707f - lavf 54.61.100
Add av_codec_get_tag2().
2013-01-01 - 2eb2e17 - lavfi 3.34.100
Add avfilter_get_audio_buffer_ref_from_arrays_channels.
2012-12-20 - 34de47aa - lavfi 3.29.100 - avfilter.h
Add AVFilterLink.channels, avfilter_link_get_channels()
and avfilter_ref_get_channels().
@@ -132,30 +144,54 @@ API changes, most recent first:
2012-03-26 - a67d9cf - lavfi 2.66.100
Add avfilter_fill_frame_from_{audio_,}buffer_ref() functions.
2012-xx-xx - xxxxxxx - lavu 52.2.1 - avstring.h
2013-xx-xx - xxxxxxx - lavfi 3.4.0 - avfiltergraph.h
Add resample_lavr_opts to AVFilterGraph for setting libavresample options
for auto-inserted resample filters.
2013-xx-xx - xxxxxxx - lavu 52.7.0 - dict.h
Add av_dict_parse_string() to set multiple key/value pairs at once from a
string.
2013-01-xx - xxxxxxx - lavu 52.6.0 - avstring.h
Add av_strnstr()
2013-01-xx - xxxxxxx - lavu 52.5.0 - hmac.h
Add AVHMAC.
2013-01-13 - xxxxxxx - lavc 54.87.100 / 54.36.0 - vdpau.h
Add AVVDPAUContext struct for VDPAU hardware-accelerated decoding.
2013-01-12 - dae382b / 169fb94 - lavu 52.14.100 / 52.4.0 - pixdesc.h
Add AV_PIX_FMT_VDPAU flag.
2013-01-07 - 249fca3 / 074a00d - lavr 1.1.0
Add avresample_set_channel_mapping() for input channel reordering,
duplication, and silencing.
2012-12-29 - 2ce43b3 / d8fd06c - lavu 52.13.100 / 52.3.0 - avstring.h
Add av_basename() and av_dirname().
2012-11-10 - 5980f5dd - lavu 52.2.0 - audioconvert.h
2012-11-11 - 03b0787 / 5980f5d - lavu 52.6.100 / 52.2.0 - audioconvert.h
Rename audioconvert.h to channel_layout.h. audioconvert.h is now deprecated.
2012-10-26 - dfde8a34 - lavu 52.1.0 - intmath.h
Add av_ctz() for trailing zero bit count.
2012-11-05 - 7d26be6 / dfde8a3 - lavu 52.5.100 / 52.1.0 - intmath.h
Add av_ctz() for trailing zero bit count
2012-10-18 - a893655b - lavu 51.45.0 - error.h
Add AVERROR_EXPERIMENTAL.
2012-10-21 - e3a91c5 / a893655 - lavu 51.77.100 / 51.45.0 - error.h
Add AVERROR_EXPERIMENTAL
2012-10-12 - d2fcb356 - lavu 51.44.0 - pixdesc.h
2012-10-12 - a33ed6b / d2fcb35 - lavu 51.76.100 / 51.44.0 - pixdesc.h
Add functions for accessing pixel format descriptors.
Accessing the av_pix_fmt_descriptors array directly is now
deprecated.
2012-10-11 - 9a92aea2 - lavu 51.43.0 - aes.h, md5.h, sha.h, tree.h
2012-10-11 - f391e40 / 9a92aea - lavu 51.75.100 / 51.43.0 - aes.h, md5.h, sha.h, tree.h
Add functions for allocating the opaque contexts for the algorithms,
2012-10-10 - b522000e - lavf 54.18.0 - avio.h
2012-10-10 - de31814 / b522000 - lavf 54.32.100 / 54.18.0 - avio.h
Add avio_closep to complement avio_close.
2012-10-06 - 78071a14 - lavu 51.42.0 - pixfmt.h
2012-10-08 - ae77266 / 78071a1 - lavu 51.74.100 / 51.42.0 - pixfmt.h
Rename PixelFormat to AVPixelFormat and all PIX_FMT_* to AV_PIX_FMT_*.
To provide backwards compatibility, PixelFormat is now #defined as
AVPixelFormat.
@@ -163,23 +199,23 @@ API changes, most recent first:
'PixelFormat' identifier. Such code should either #undef PixelFormat
or stop using the PixelFormat name.
2012-10-05 - e7ba5b1 - lavr 1.0.0 - avresample.h
2012-10-05 - 55c49af / e7ba5b1 - lavr 1.0.0 - avresample.h
Data planes parameters to avresample_convert() and
avresample_read() are now uint8_t** instead of void**.
Libavresample is now stable.
2012-09-24 - a42aada - lavc 54.28.0 - avcodec.h
2012-09-24 - 46a3595 / a42aada - lavc 54.59.100 / 54.28.0 - avcodec.h
Add avcodec_free_frame(). This function must now
be used for freeing an AVFrame.
2012-09-12 - 8919fee - lavu 51.41.0 - audioconvert.h
2012-09-12 - e3e09f2 / 8919fee - lavu 51.73.100 / 51.41.0 - audioconvert.h
Added AV_CH_LOW_FREQUENCY_2 channel mask value.
2012-09-04 - 686a329 - lavu 51.40.0 - opt.h
2012-09-04 - b21b5b0 / 686a329 - lavu 51.71.100 / 51.40.0 - opt.h
Reordered the fields in default_val in AVOption, changed which
default_val field is used for which AVOptionType.
2012-08-30 - a231832 - lavc 54.26.1 - avcodec.h
2012-08-30 - 98298eb / a231832 - lavc 54.54.101 / 54.26.1 - avcodec.h
Add codec descriptor properties AV_CODEC_PROP_LOSSY and
AV_CODEC_PROP_LOSSLESS.
@@ -187,90 +223,90 @@ API changes, most recent first:
Add codec descriptors for accessing codec properties without having
to refer to a specific decoder or encoder.
c223d79 - Add an AVCodecDescriptor struct and functions
f5f3684 / c223d79 - Add an AVCodecDescriptor struct and functions
avcodec_descriptor_get() and avcodec_descriptor_next().
51efed1 - Add AVCodecDescriptor.props and AV_CODEC_PROP_INTRA_ONLY.
91e59fe - Add avcodec_descriptor_get_by_name().
f5f3684 / 51efed1 - Add AVCodecDescriptor.props and AV_CODEC_PROP_INTRA_ONLY.
6c180b3 / 91e59fe - Add avcodec_descriptor_get_by_name().
2012-08-08 - 987170c - lavu 51.38 - dict.h
2012-08-08 - f5f3684 / 987170c - lavu 51.68.100 / 51.38.0 - dict.h
Add av_dict_count().
2012-08-07 - 104e10f - lavc 54.25 - avcodec.h
2012-08-07 - 7a72695 / 104e10f - lavc 54.51.100 / 54.25.0 - avcodec.h
Rename CodecID to AVCodecID and all CODEC_ID_* to AV_CODEC_ID_*.
To provide backwards compatibility, CodecID is now #defined as AVCodecID.
Note that this can break user code that includes avcodec.h and uses the
'CodecID' identifier. Such code should either #undef CodecID or stop using the
CodecID name.
2012-08-03 - 239fdf1 - lavu 51.37.1 - cpu.h
2012-08-03 - e776ee8 / 239fdf1 - lavu 51.66.101 / 51.37.1 - cpu.h
lsws 2.1.1 - swscale.h
Rename AV_CPU_FLAG_MMX2 ---> AV_CPU_FLAG_MMXEXT.
Rename SWS_CPU_CAPS_MMX2 ---> SWS_CPU_CAPS_MMXEXT.
2012-07-29 - 681ed00 - lavf 54.13.0 - avformat.h
2012-07-29 - 7c26761 / 681ed00 - lavf 54.22.100 / 54.13.0 - avformat.h
Add AVFMT_FLAG_NOBUFFER for low latency use cases.
2012-07-10 - 5fade8a - lavu 51.37.0
Add av_malloc_array() and av_mallocz_array()
2012-06-22 - d3d3a32 - lavu 51.34.0
2012-06-22 - e847f41 / d3d3a32 - lavu 51.61.100 / 51.34.0
Add av_usleep()
2012-06-20 - ae0a301 - lavu 51.33.0
2012-06-20 - 4da42eb / ae0a301 - lavu 51.60.100 / 51.33.0
Move av_gettime() to libavutil, add libavutil/time.h
2012-06-09 - 3971be0 - lavr 0.0.3
2012-06-09 - 82edf67 / 3971be0 - lavr 0.0.3
Add a parameter to avresample_build_matrix() for Dolby/DPLII downmixing.
2012-06-12 - 9baeff9 - lavfi 2.23.0 - avfilter.h
2012-06-12 - c7b9eab / 9baeff9 - lavfi 2.79.100 / 2.23.0 - avfilter.h
Add AVFilterContext.nb_inputs/outputs. Deprecate
AVFilterContext.input/output_count.
2012-06-12 - 84b9fbe - lavfi 2.22.0 - avfilter.h
2012-06-12 - c7b9eab / 84b9fbe - lavfi 2.79.100 / 2.22.0 - avfilter.h
Add avfilter_pad_get_type() and avfilter_pad_get_name(). Those
should now be used instead of accessing AVFilterPad members
directly.
2012-06-12 - b0f0dfc - lavu 51.32.0 - audioconvert.h
2012-06-12 - 3630a07 / b0f0dfc - lavu 51.57.100 / 51.32.0 - audioconvert.h
Add av_get_channel_layout_channel_index(), av_get_channel_name()
and av_channel_layout_extract_channel().
2012-05-25 - 154486f - lavu 51.31.0 - opt.h
2012-05-25 - 53ce990 / 154486f - lavu 51.55.100 / 51.31.0 - opt.h
Add av_opt_set_bin()
2012-05-15 - lavfi 2.17.0
2012-05-15 - lavfi 2.74.100 / 2.17.0
Add support for audio filters
ac71230/a2cd9be - add video/audio buffer sink in a new installed
61930bd / ac71230, 1cbf7fb / a2cd9be - add video/audio buffer sink in a new installed
header buffersink.h
720c6b7 - add av_buffersrc_write_frame(), deprecate
1cbf7fb / 720c6b7 - add av_buffersrc_write_frame(), deprecate
av_vsrc_buffer_add_frame()
ab16504 - add avfilter_copy_buf_props()
9453c9e - add extended_data to AVFilterBuffer
1b8c927 - add avfilter_get_audio_buffer_ref_from_arrays()
61930bd / ab16504 - add avfilter_copy_buf_props()
61930bd / 9453c9e - add extended_data to AVFilterBuffer
61930bd / 1b8c927 - add avfilter_get_audio_buffer_ref_from_arrays()
2012-05-09 - lavu 51.30.0 - samplefmt.h
142e740 - add av_samples_copy()
6d7f617 - add av_samples_set_silence()
2012-05-09 - lavu 51.53.100 / 51.30.0 - samplefmt.h
61930bd / 142e740 - add av_samples_copy()
61930bd / 6d7f617 - add av_samples_set_silence()
2012-05-09 - a5117a2 - lavc 54.13.1
2012-05-09 - 61930bd / a5117a2 - lavc 54.21.101 / 54.13.1
For audio formats with fixed frame size, the last frame
no longer needs to be padded with silence, libavcodec
will handle this internally (effectively all encoders
behave as if they had CODEC_CAP_SMALL_LAST_FRAME set).
2012-05-07 - 828bd08 - lavc 54.13.0 - avcodec.h
2012-05-07 - 653d117 / 828bd08 - lavc 54.20.100 / 54.13.0 - avcodec.h
Add sample_rate and channel_layout fields to AVFrame.
2012-05-01 - 4010d72 - lavr 0.0.1
2012-05-01 - 2330eb1 / 4010d72 - lavr 0.0.1
Change AV_MIX_COEFF_TYPE_Q6 to AV_MIX_COEFF_TYPE_Q8.
2012-04-25 - 3527a73 - lavu 51.29.0 - cpu.h
2012-04-25 - e890b68 / 3527a73 - lavu 51.48.100 / 51.29.0 - cpu.h
Add av_parse_cpu_flags()
2012-04-24 - c8af852 - lavr 0.0.0
2012-04-24 - 3ead79e / c8af852 - lavr 0.0.0
Add libavresample audio conversion library
2012-04-20 - 0c0d1bc - lavu 51.28.0 - audio_fifo.h
2012-04-20 - 3194ab7 / 0c0d1bc - lavu 51.47.100 / 51.28.0 - audio_fifo.h
Add audio FIFO functions:
av_audio_fifo_free()
av_audio_fifo_alloc()
@@ -282,10 +318,10 @@ API changes, most recent first:
av_audio_fifo_size()
av_audio_fifo_space()
2012-04-14 - lavfi 2.16.0 - avfiltergraph.h
d7bcc71 Add avfilter_graph_parse2().
2012-04-14 - lavfi 2.70.100 / 2.16.0 - avfiltergraph.h
7432bcf / d7bcc71 Add avfilter_graph_parse2().
2012-04-08 - 4d693b0 - lavu 51.27.0 - samplefmt.h
2012-04-08 - 6bfb304 / 4d693b0 - lavu 51.46.100 / 51.27.0 - samplefmt.h
Add av_get_packed_sample_fmt() and av_get_planar_sample_fmt()
2012-03-21 - b75c67d - lavu 51.43.100
@@ -313,73 +349,73 @@ API changes, most recent first:
2012-01-24 - 0c3577b - lavfi 2.60.100
Add avfilter_graph_dump.
2012-03-20 - 3c90cc2 - lavfo 54.2.0
2012-03-20 - 0ebd836 / 3c90cc2 - lavfo 54.2.0
Deprecate av_read_packet(), use av_read_frame() with
AVFMT_FLAG_NOPARSE | AVFMT_FLAG_NOFILLIN in AVFormatContext.flags
2012-03-05 - lavc 54.8.0
6699d07 Add av_get_exact_bits_per_sample()
9524cf7 Add av_get_audio_frame_duration()
2012-03-05 - lavc 54.10.100 / 54.8.0
f095391 / 6699d07 Add av_get_exact_bits_per_sample()
f095391 / 9524cf7 Add av_get_audio_frame_duration()
2012-03-04 - 44fe77b - lavc 54.7.0 - avcodec.h
2012-03-04 - 2af8f2c / 44fe77b - lavc 54.8.100 / 54.7.0 - avcodec.h
Add av_codec_is_encoder/decoder().
2012-03-01 - 442c132 - lavc 54.3.0 - avcodec.h
2012-03-01 - 1eb7f39 / 442c132 - lavc 54.5.100 / 54.3.0 - avcodec.h
Add av_packet_shrink_side_data.
2012-02-29 - dd2a4bc - lavf 54.2.0 - avformat.h
2012-02-29 - 79ae084 / dd2a4bc - lavf 54.2.100 / 54.2.0 - avformat.h
Add AVStream.attached_pic and AV_DISPOSITION_ATTACHED_PIC,
used for dealing with attached pictures/cover art.
2012-02-25 - c9bca80 - lavu 51.24.0 - error.h
2012-02-25 - 305e4b3 / c9bca80 - lavu 51.41.100 / 51.24.0 - error.h
Add AVERROR_UNKNOWN
NOTE: this was backported to 0.8
2012-02-20 - e9cda85 - lavc 54.2.0
2012-02-20 - eadd426 / e9cda85 - lavc 54.2.100 / 54.2.0
Add duration field to AVCodecParserContext
2012-02-20 - 0b42a93 - lavu 51.23.1 - mathematics.h
2012-02-20 - eadd426 / 0b42a93 - lavu 51.40.100 / 51.23.1 - mathematics.h
Add av_rescale_q_rnd()
2012-02-08 - 38d5533 - lavu 51.22.1 - pixdesc.h
2012-02-08 - f2b20b7 / 38d5533 - lavu 51.38.101 / 51.22.1 - pixdesc.h
Add PIX_FMT_PSEUDOPAL flag.
2012-02-08 - 52f82a1 - lavc 54.01.0
2012-02-08 - f2b20b7 / 52f82a1 - lavc 54.2.100 / 54.1.0
Add avcodec_encode_video2() and deprecate avcodec_encode_video().
2012-02-01 - 316fc74 - lavc 54.01.0
2012-02-01 - 4c677df / 316fc74 - lavc 54.1.0
Add av_fast_padded_malloc() as alternative for av_realloc() when aligned
memory is required. The buffer will always have FF_INPUT_BUFFER_PADDING_SIZE
zero-padded bytes at the end.
2012-01-31 - dd6d3b0 - lavf 54.01.0
2012-01-31 - a369a6b / dd6d3b0 - lavf 54.1.0
Add avformat_get_riff_video_tags() and avformat_get_riff_audio_tags().
NOTE: this was backported to 0.8
2012-01-31 - af08d9a - lavc 54.01.0
2012-01-31 - a369a6b / af08d9a - lavc 54.1.0
Add avcodec_is_open() function.
NOTE: this was backported to 0.8
2012-01-30 - 8b93312 - lavu 51.22.0 - intfloat.h
2012-01-30 - 151ecc2 / 8b93312 - lavu 51.36.100 / 51.22.0 - intfloat.h
Add a new installed header libavutil/intfloat.h with int/float punning
functions.
NOTE: this was backported to 0.8
2012-01-25 - lavf 53.22.0
f1caf01 Allow doing av_write_frame(ctx, NULL) for flushing possible
2012-01-25 - lavf 53.31.100 / 53.22.0
3c5fe5b / f1caf01 Allow doing av_write_frame(ctx, NULL) for flushing possible
buffered data within a muxer. Added AVFMT_ALLOW_FLUSH for
muxers supporting it (av_write_frame makes sure it is called
only for muxers with this flag).
2012-01-15 - lavc 53.34.0
2012-01-15 - lavc 53.56.105 / 53.34.0
New audio encoding API:
b2c75b6 Add CODEC_CAP_VARIABLE_FRAME_SIZE capability for use by audio
67f5650 / b2c75b6 Add CODEC_CAP_VARIABLE_FRAME_SIZE capability for use by audio
encoders.
5ee5fa0 Add avcodec_fill_audio_frame() as a convenience function.
b2c75b6 Add avcodec_encode_audio2() and deprecate avcodec_encode_audio().
67f5650 / 5ee5fa0 Add avcodec_fill_audio_frame() as a convenience function.
67f5650 / b2c75b6 Add avcodec_encode_audio2() and deprecate avcodec_encode_audio().
Add AVCodec.encode2().
2012-01-12 - 3167dc9 - lavfi 2.15.0
2012-01-12 - b18e17e / 3167dc9 - lavfi 2.59.100 / 2.15.0
Add a new installed header -- libavfilter/version.h -- with version macros.
2011-12-08 - a502939 - lavfi 2.52.0
@@ -400,37 +436,37 @@ API changes, most recent first:
2011-10-20 - b35e9e1 - lavu 51.22.0
Add av_strtok() to avstring.h.
2011-01-03 - b73ec05 - lavu 51.21.0
2012-01-03 - ad1c8dd / b73ec05 - lavu 51.34.100 / 51.21.0
Add av_popcount64
2011-12-18 - 8400b12 - lavc 53.28.1
2011-12-18 - 7c29313 / 8400b12 - lavc 53.46.1 / 53.28.1
Deprecate AVFrame.age. The field is unused.
2011-12-12 - 5266045 - lavf 53.17.0
2011-12-12 - 8bc7fe4 / 5266045 - lavf 53.25.0 / 53.17.0
Add avformat_close_input().
Deprecate av_close_input_file() and av_close_input_stream().
2011-12-02 - 0eea212 - lavc 53.25.0
2011-12-02 - e4de716 / 0eea212 - lavc 53.40.0 / 53.25.0
Add nb_samples and extended_data fields to AVFrame.
Deprecate AVCODEC_MAX_AUDIO_FRAME_SIZE.
Deprecate avcodec_decode_audio3() in favor of avcodec_decode_audio4().
avcodec_decode_audio4() writes output samples to an AVFrame, which allows
audio decoders to use get_buffer().
2011-12-04 - 560f773 - lavc 53.24.0
2011-12-04 - e4de716 / 560f773 - lavc 53.40.0 / 53.24.0
Change AVFrame.data[4]/base[4]/linesize[4]/error[4] to [8] at next major bump.
Change AVPicture.data[4]/linesize[4] to [8] at next major bump.
Change AVCodecContext.error[4] to [8] at next major bump.
Add AV_NUM_DATA_POINTERS to simplify the bump transition.
2011-11-23 - bbb46f3 - lavu 51.18.0
2011-11-23 - 8e576d5 / bbb46f3 - lavu 51.27.0 / 51.18.0
Add av_samples_get_buffer_size(), av_samples_fill_arrays(), and
av_samples_alloc(), to samplefmt.h.
2011-11-23 - 8889cc4 - lavu 51.17.0
2011-11-23 - 8e576d5 / 8889cc4 - lavu 51.27.0 / 51.17.0
Add planar sample formats and av_sample_fmt_is_planar() to samplefmt.h.
2011-11-19 - f3a29b7 - lavc 53.21.0
2011-11-19 - dbb38bc / f3a29b7 - lavc 53.36.0 / 53.21.0
Move some AVCodecContext fields to a new private struct, AVCodecInternal,
which is accessed from a new field, AVCodecContext.internal.
- fields moved:
@@ -438,55 +474,55 @@ API changes, most recent first:
AVCodecContext.internal_buffer_count --> AVCodecInternal.buffer_count
AVCodecContext.is_copy --> AVCodecInternal.is_copy
2011-11-16 - 6270671 - lavu 51.16.0
2011-11-16 - 8709ba9 / 6270671 - lavu 51.26.0 / 51.16.0
Add av_timegm()
2011-11-13 - lavf 53.15.0
2011-11-13 - lavf 53.21.0 / 53.15.0
New interrupt callback API, allowing per-AVFormatContext/AVIOContext
interrupt callbacks.
6aa0b98 Add AVIOInterruptCB struct and the interrupt_callback field to
5f268ca / 6aa0b98 Add AVIOInterruptCB struct and the interrupt_callback field to
AVFormatContext.
1dee0ac Add avio_open2() with additional parameters. Those are
5f268ca / 1dee0ac Add avio_open2() with additional parameters. Those are
an interrupt callback and an options AVDictionary.
This will allow passing AVOptions to protocols after lavf
54.0.
2011-11-06 - ba04ecf - lavu 51.14.0
2011-11-06 - 13b7781 / ba04ecf - lavu 51.24.0 / 51.14.0
Add av_strcasecmp() and av_strncasecmp() to avstring.h.
2011-11-06 - 07b172f - lavu 51.13.0
2011-11-06 - 13b7781 / 07b172f - lavu 51.24.0 / 51.13.0
Add av_toupper()/av_tolower()
2011-11-05 - b6d08f4 - lavf 53.13.0
2011-11-05 - d8cab5c / b6d08f4 - lavf 53.19.0 / 53.13.0
Add avformat_network_init()/avformat_network_deinit()
2011-10-27 - 512557b - lavc 53.15.0
2011-10-27 - 6faf0a2 / 512557b - lavc 53.24.0 / 53.15.0
Remove avcodec_parse_frame.
Deprecate AVCodecContext.parse_only and CODEC_CAP_PARSE_ONLY.
2011-10-19 - 569129a - lavf 53.10.0
2011-10-19 - d049257 / 569129a - lavf 53.17.0 / 53.10.0
Add avformat_new_stream(). Deprecate av_new_stream().
2011-10-13 - b631fba - lavf 53.9.0
2011-10-13 - 91eb1b1 / b631fba - lavf 53.16.0 / 53.9.0
Add AVFMT_NO_BYTE_SEEK AVInputFormat flag.
2011-10-12 - lavu 51.12.0
2011-10-12 - lavu 51.21.0 / 51.12.0
AVOptions API rewrite.
- 145f741 FF_OPT_TYPE* renamed to AV_OPT_TYPE_*
- f884ef0 / 145f741 FF_OPT_TYPE* renamed to AV_OPT_TYPE_*
- new setting/getting functions with slightly different semantics:
dac66da av_set_string3 -> av_opt_set
f884ef0 / dac66da av_set_string3 -> av_opt_set
av_set_double -> av_opt_set_double
av_set_q -> av_opt_set_q
av_set_int -> av_opt_set_int
41d9d51 av_get_string -> av_opt_get
f884ef0 / 41d9d51 av_get_string -> av_opt_get
av_get_double -> av_opt_get_double
av_get_q -> av_opt_get_q
av_get_int -> av_opt_get_int
- 8c5dcaa trivial rename av_next_option -> av_opt_next
- 641c7af new functions - av_opt_child_next, av_opt_child_class_next
- f884ef0 / 8c5dcaa trivial rename av_next_option -> av_opt_next
- f884ef0 / 641c7af new functions - av_opt_child_next, av_opt_child_class_next
and av_opt_find2()
2011-09-22 - a70e787 - lavu 51.17.0
@@ -532,31 +568,31 @@ API changes, most recent first:
2011-08-20 - 69e2c1a - lavu 51.13.0
Add av_get_media_type_string().
2011-09-03 - fb4ca26 - lavc 53.13.0
2011-09-03 - 1889c67 / fb4ca26 - lavc 53.13.0
lavf 53.11.0
lsws 2.1.0
Add {avcodec,avformat,sws}_get_class().
2011-08-03 - c11fb82 - lavu 51.15.0
2011-08-03 - 1889c67 / c11fb82 - lavu 51.15.0
Add AV_OPT_SEARCH_FAKE_OBJ flag for av_opt_find() function.
2011-08-14 - 323b930 - lavu 51.12.0
Add av_fifo_peek2(), deprecate av_fifo_peek().
2011-08-26 - lavu 51.9.0
- add41de..abc78a5 Do not include intfloat_readwrite.h,
2011-08-26 - lavu 51.14.0 / 51.9.0
- 976a8b2 / add41de..976a8b2 / abc78a5 Do not include intfloat_readwrite.h,
mathematics.h, rational.h, pixfmt.h, or log.h from avutil.h.
2011-08-16 - 48f9e45 - lavf 53.8.0
2011-08-16 - 27fbe31 / 48f9e45 - lavf 53.11.0 / 53.8.0
Add avformat_query_codec().
2011-08-16 - bca06e7 - lavc 53.11.0
2011-08-16 - 27fbe31 / bca06e7 - lavc 53.11.0
Add avcodec_get_type().
2011-08-06 - 2f63440 - lavf 53.7.0
2011-08-06 - 0cb233c / 2f63440 - lavf 53.7.0
Add error_recognition to AVFormatContext.
2011-08-02 - 9d39cbf - lavc 53.9.1
2011-08-02 - 1d186e9 / 9d39cbf - lavc 53.9.1
Add AV_PKT_FLAG_CORRUPT AVPacket flag.
2011-07-16 - b57df29 - lavfi 2.27.0
@@ -567,11 +603,11 @@ API changes, most recent first:
avfilter_set_common_packing_formats()
avfilter_all_packing_formats()
2011-07-10 - a67c061 - lavf 53.6.0
2011-07-10 - 3602ad7 / a67c061 - lavf 53.6.0
Add avformat_find_stream_info(), deprecate av_find_stream_info().
NOTE: this was backported to 0.7
2011-07-10 - 0b950fe - lavc 53.8.0
2011-07-10 - 3602ad7 / 0b950fe - lavc 53.8.0
Add avcodec_open2(), deprecate avcodec_open().
NOTE: this was backported to 0.7
@@ -614,35 +650,35 @@ API changes, most recent first:
2011-06-12 - 6119b23 - lavfi 2.16.0 - avfilter_graph_parse()
Change avfilter_graph_parse() signature.
2011-06-23 - 67e9ae1 - lavu 51.8.0 - attributes.h
2011-06-23 - 686959e / 67e9ae1 - lavu 51.10.0 / 51.8.0 - attributes.h
Add av_printf_format().
2011-06-16 - 05e84c9, 25de595 - lavf 53.2.0 - avformat.h
2011-06-16 - 2905e3f / 05e84c9, 2905e3f / 25de595 - lavf 53.4.0 / 53.2.0 - avformat.h
Add avformat_open_input and avformat_write_header().
Deprecate av_open_input_stream, av_open_input_file,
AVFormatParameters and av_write_header.
2011-06-16 - 7e83e1c, dc59ec5 - lavu 51.7.0 - opt.h
2011-06-16 - 2905e3f / 7e83e1c, 2905e3f / dc59ec5 - lavu 51.9.0 / 51.7.0 - opt.h
Add av_opt_set_dict() and av_opt_find().
Deprecate av_find_opt().
Add AV_DICT_APPEND flag.
2011-06-10 - cb7c11c - lavu 51.6.0 - opt.h
2011-06-10 - 45fb647 / cb7c11c - lavu 51.6.0 - opt.h
Add av_opt_flag_is_set().
2011-06-10 - c381960 - lavfi 2.15.0 - avfilter_get_audio_buffer_ref_from_arrays
Add avfilter_get_audio_buffer_ref_from_arrays() to avfilter.h.
2011-06-09 - d9f80ea - lavu 51.8.0 - AVMetadata
2011-06-09 - f9ecb84 / d9f80ea - lavu 51.8.0 - AVMetadata
Move AVMetadata from lavf to lavu and rename it to
AVDictionary -- new installed header dict.h.
All av_metadata_* functions renamed to av_dict_*.
2011-06-07 - a6703fa - lavu 51.8.0 - av_get_bytes_per_sample()
2011-06-07 - d552f61 / a6703fa - lavu 51.8.0 - av_get_bytes_per_sample()
Add av_get_bytes_per_sample() in libavutil/samplefmt.h.
Deprecate av_get_bits_per_sample_fmt().
2011-06-05 - b39b062 - lavu 51.8.0 - opt.h
2011-06-05 - f956924 / b39b062 - lavu 51.8.0 - opt.h
Add av_opt_free convenience function.
2011-06-06 - 95a0242 - lavfi 2.14.0 - AVFilterBufferRefAudioProps
@@ -672,7 +708,7 @@ API changes, most recent first:
Add av_get_pix_fmt_name() in libavutil/pixdesc.h, and deprecate
avcodec_get_pix_fmt_name() in libavcodec/avcodec.h in its favor.
2011-05-25 - 30315a8 - lavf 53.3.0 - avformat.h
2011-05-25 - 39e4206 / 30315a8 - lavf 53.3.0 - avformat.h
Add fps_probe_size to AVFormatContext.
2011-05-22 - 5ecdfd0 - lavf 53.2.0 - avformat.h
@@ -688,10 +724,10 @@ API changes, most recent first:
2011-05-14 - 9fdf772 - lavfi 2.6.0 - avcodec.h
Add avfilter_get_video_buffer_ref_from_frame() to libavfilter/avcodec.h.
2011-05-18 - 64150ff - lavc 53.7.0 - AVCodecContext.request_sample_fmt
2011-05-18 - 75a37b5 / 64150ff - lavc 53.7.0 - AVCodecContext.request_sample_fmt
Add request_sample_fmt field to AVCodecContext.
2011-05-10 - 188dea1 - lavc 53.6.0 - avcodec.h
2011-05-10 - 59eb12f / 188dea1 - lavc 53.6.0 - avcodec.h
Deprecate AVLPCType and the following fields in
AVCodecContext: lpc_coeff_precision, prediction_order_method,
min_partition_order, max_partition_order, lpc_type, lpc_passes.
@@ -721,81 +757,81 @@ API changes, most recent first:
Add av_dynarray_add function for adding
an element to a dynamic array.
2011-04-26 - bebe72f - lavu 51.1.0 - avutil.h
2011-04-26 - d7e5aeb / bebe72f - lavu 51.1.0 - avutil.h
Add AVPictureType enum and av_get_picture_type_char(), deprecate
FF_*_TYPE defines and av_get_pict_type_char() defined in
libavcodec/avcodec.h.
2011-04-26 - 10d3940 - lavfi 2.3.0 - avfilter.h
2011-04-26 - d7e5aeb / 10d3940 - lavfi 2.3.0 - avfilter.h
Add pict_type and key_frame fields to AVFilterBufferRefVideo.
2011-04-26 - 7a11c82 - lavfi 2.2.0 - vsrc_buffer
2011-04-26 - d7e5aeb / 7a11c82 - lavfi 2.2.0 - vsrc_buffer
Add sample_aspect_ratio fields to vsrc_buffer arguments
2011-04-21 - 94f7451 - lavc 53.1.0 - avcodec.h
2011-04-21 - 8772156 / 94f7451 - lavc 53.1.0 - avcodec.h
Add CODEC_CAP_SLICE_THREADS for codecs supporting sliced threading.
2011-04-15 - lavc 52.120.0 - avcodec.h
AVPacket structure got additional members for passing side information:
4de339e introduce side information for AVPacket
2d8591c make containers pass palette change in AVPacket
c407984 / 4de339e introduce side information for AVPacket
c407984 / 2d8591c make containers pass palette change in AVPacket
2011-04-12 - lavf 52.107.0 - avio.h
Avio cleanup, part II - deprecate the entire URLContext API:
175389c add avio_check as a replacement for url_exist
ff1ec0c add avio_pause and avio_seek_time as replacements
c55780d / 175389c add avio_check as a replacement for url_exist
9891004 / ff1ec0c add avio_pause and avio_seek_time as replacements
for _av_url_read_fseek/fpause
cdc6a87 deprecate av_protocol_next(), avio_enum_protocols
d4d0932 / cdc6a87 deprecate av_protocol_next(), avio_enum_protocols
should be used instead.
80c6e23 rename url_set_interrupt_cb->avio_set_interrupt_cb.
f87b1b3 rename open flags: URL_* -> AVIO_*
f8270bb add avio_enum_protocols.
5593f03 deprecate URLProtocol.
c486dad deprecate URLContext.
026e175 deprecate the typedef for URLInterruptCB
8e76a19 deprecate av_register_protocol2.
b840484 deprecate URL_PROTOCOL_FLAG_NESTED_SCHEME
1305d93 deprecate av_url_read_seek
fa104e1 deprecate av_url_read_pause
727c7aa deprecate url_get_filename().
5958df3 deprecate url_max_packet_size().
1869ea0 deprecate url_get_file_handle().
32a97d4 deprecate url_filesize().
e52a914 deprecate url_close().
58a48c6 deprecate url_seek().
925e908 deprecate url_write().
dce3756 deprecate url_read_complete().
bc371ac deprecate url_read().
0589da0 deprecate url_open().
62eaaea deprecate url_connect.
5652bb9 deprecate url_alloc.
333e894 deprecate url_open_protocol
e230705 deprecate url_poll and URLPollEntry
c88caa5 / 80c6e23 rename url_set_interrupt_cb->avio_set_interrupt_cb.
c88caa5 / f87b1b3 rename open flags: URL_* -> AVIO_*
d4d0932 / f8270bb add avio_enum_protocols.
d4d0932 / 5593f03 deprecate URLProtocol.
d4d0932 / c486dad deprecate URLContext.
d4d0932 / 026e175 deprecate the typedef for URLInterruptCB
c88caa5 / 8e76a19 deprecate av_register_protocol2.
11d7841 / b840484 deprecate URL_PROTOCOL_FLAG_NESTED_SCHEME
11d7841 / 1305d93 deprecate av_url_read_seek
11d7841 / fa104e1 deprecate av_url_read_pause
434f248 / 727c7aa deprecate url_get_filename().
434f248 / 5958df3 deprecate url_max_packet_size().
434f248 / 1869ea0 deprecate url_get_file_handle().
434f248 / 32a97d4 deprecate url_filesize().
434f248 / e52a914 deprecate url_close().
434f248 / 58a48c6 deprecate url_seek().
434f248 / 925e908 deprecate url_write().
434f248 / dce3756 deprecate url_read_complete().
434f248 / bc371ac deprecate url_read().
434f248 / 0589da0 deprecate url_open().
434f248 / 62eaaea deprecate url_connect.
434f248 / 5652bb9 deprecate url_alloc.
434f248 / 333e894 deprecate url_open_protocol
434f248 / e230705 deprecate url_poll and URLPollEntry
2011-04-08 - lavf 52.106.0 - avformat.h
Minor avformat.h cleanup:
a9bf9d8 deprecate av_guess_image2_codec
c3675df rename avf_sdp_create->av_sdp_create
d4d0932 / a9bf9d8 deprecate av_guess_image2_codec
d4d0932 / c3675df rename avf_sdp_create->av_sdp_create
2011-04-03 - lavf 52.105.0 - avio.h
Large-scale renaming/deprecating of AVIOContext-related functions:
724f6a0 deprecate url_fdopen
403ee83 deprecate url_open_dyn_packet_buf
6dc7d80 rename url_close_dyn_buf -> avio_close_dyn_buf
b92c545 rename url_open_dyn_buf -> avio_open_dyn_buf
8978fed introduce an AVIOContext.seekable field as a replacement for
2cae980 / 724f6a0 deprecate url_fdopen
2cae980 / 403ee83 deprecate url_open_dyn_packet_buf
2cae980 / 6dc7d80 rename url_close_dyn_buf -> avio_close_dyn_buf
2cae980 / b92c545 rename url_open_dyn_buf -> avio_open_dyn_buf
2cae980 / 8978fed introduce an AVIOContext.seekable field as a replacement for
AVIOContext.is_streamed and url_is_streamed()
b64030f deprecate get_checksum()
4c4427a deprecate init_checksum()
4ec153b deprecate udp_set_remote_url/get_local_port
933e90a deprecate av_url_read_fseek/fpause
8d9769a deprecate url_fileno
b7f2fdd rename put_flush_packet -> avio_flush
35f1023 deprecate url_close_buf
83fddae deprecate url_open_buf
d9d86e0 rename url_fprintf -> avio_printf
59f65d9 deprecate url_setbufsize
3e68b3b deprecate url_ferror
1caa412 / b64030f deprecate get_checksum()
1caa412 / 4c4427a deprecate init_checksum()
2fd41c9 / 4ec153b deprecate udp_set_remote_url/get_local_port
4fa0e24 / 933e90a deprecate av_url_read_fseek/fpause
4fa0e24 / 8d9769a deprecate url_fileno
0fecf26 / b7f2fdd rename put_flush_packet -> avio_flush
0fecf26 / 35f1023 deprecate url_close_buf
0fecf26 / 83fddae deprecate url_open_buf
0fecf26 / d9d86e0 rename url_fprintf -> avio_printf
0fecf26 / 59f65d9 deprecate url_setbufsize
6947b0c / 3e68b3b deprecate url_ferror
e8bb2e2 deprecate url_fget_max_packet_size
76aa876 rename url_fsize -> avio_size
e519753 deprecate url_fgetc
@@ -816,7 +852,7 @@ API changes, most recent first:
b3db9ce deprecate get_partial_buffer
8d9ac96 rename av_alloc_put_byte -> avio_alloc_context
2011-03-25 - 34b47d7 - lavc 52.115.0 - AVCodecContext.audio_service_type
2011-03-25 - 27ef7b1 / 34b47d7 - lavc 52.115.0 - AVCodecContext.audio_service_type
Add audio_service_type field to AVCodecContext.
2011-03-17 - e309fdc - lavu 50.40.0 - pixfmt.h
@@ -854,11 +890,11 @@ API changes, most recent first:
2011-02-10 - 12c14cd - lavf 52.99.0 - AVStream.disposition
Add AV_DISPOSITION_HEARING_IMPAIRED and AV_DISPOSITION_VISUAL_IMPAIRED.
2011-02-09 - 5592734 - lavc 52.112.0 - avcodec_thread_init()
2011-02-09 - c0b102c - lavc 52.112.0 - avcodec_thread_init()
Deprecate avcodec_thread_init()/avcodec_thread_free() use; instead
set thread_count before calling avcodec_open.
2011-02-09 - 778b08a - lavc 52.111.0 - threading API
2011-02-09 - 37b00b4 - lavc 52.111.0 - threading API
Add CODEC_CAP_FRAME_THREADS with new restrictions on get_buffer()/
release_buffer()/draw_horiz_band() callbacks for appropriate codecs.
Add thread_type and active_thread_type fields to AVCodecContext.

View File

@@ -31,7 +31,7 @@ PROJECT_NAME = FFmpeg
# This could be handy for archiving the generated documentation or
# if some version control system is used.
PROJECT_NUMBER =
PROJECT_NUMBER = 1.2.7
# With the PROJECT_LOGO tag one can specify an logo or icon that is included
# in the documentation. The maximum height of the logo should not exceed 55

View File

@@ -62,7 +62,7 @@ doc/%.html: doc/%.texi $(SRC_PATH)/doc/t2h.init $(GENTEXI)
$(M)texi2html -I doc -monolithic --init-file $(SRC_PATH)/doc/t2h.init --output $@ $<
doc/%.pod: TAG = POD
doc/%.pod: doc/%.texi $(GENTEXI)
doc/%.pod: doc/%.texi $(SRC_PATH)/doc/texi2pod.pl $(GENTEXI)
$(Q)$(TEXIDEP)
$(M)perl $(SRC_PATH)/doc/texi2pod.pl -Idoc $< $@
@@ -92,9 +92,9 @@ uninstall: uninstall-man
uninstall-man:
$(RM) $(addprefix "$(MANDIR)/man1/",$(ALLMANPAGES))
docclean: clean
clean:: docclean
clean::
docclean:
$(RM) $(TXTPAGES) doc/*.html doc/*.pod doc/*.1 doc/*.3 $(CLEANSUFFIXES:%=doc/%) doc/avoptions_*.texi
$(RM) -r doc/doxy/html

View File

@@ -1,7 +1,7 @@
Release Notes
=============
* 0.10 "Freedom" January, 2012
* 1.2 "Magic" March, 2013
General notes
@@ -14,9 +14,3 @@ accepted. If you are experiencing issues with any formally released version of
FFmpeg, please try git master to check if the issue still exists. If it does,
make your report against the development code following the usual bug reporting
guidelines.
Of big interest to our Windows users, FFmpeg now supports building with the MSVC
compiler. Since MSVC does not support C99 features used extensively by FFmpeg,
this has been accomplished using a converter that turns C99 code to C89. See the
platform-specific documentation for more detailed documentation on building
FFmpeg with MSVC.

View File

@@ -60,6 +60,78 @@ This decoder generates wave patterns according to predefined sequences. Its
use is purely internal and the format of the data it accepts is not publicly
documented.
@section libcelt
libcelt decoder wrapper
libcelt allows libavcodec to decode the Xiph CELT ultra-low delay audio codec.
Requires the presence of the libcelt headers and library during configuration.
You need to explicitly configure the build with @code{--enable-libcelt}.
@section libgsm
libgsm decoder wrapper
libgsm allows libavcodec to decode the GSM full rate audio codec. Requires
the presence of the libgsm headers and library during configuration. You need
to explicitly configure the build with @code{--enable-libgsm}.
This decoder supports both the ordinary GSM and the Microsoft variant.
@section libilbc
libilbc decoder wrapper
libilbc allows libavcodec to decode the Internet Low Bitrate Codec (iLBC)
audio codec. Requires the presence of the libilbc headers and library during
configuration. You need to explicitly configure the build with
@code{--enable-libilbc}.
@subsection Options
The following option is supported by the libilbc wrapper.
@table @option
@item enhance
Enable the enhancement of the decoded audio when set to 1. The default
value is 0 (disabled).
@end table
@section libopencore-amrnb
libopencore-amrnb decoder wrapper
libopencore-amrnb allows libavcodec to decode the Adaptive Multi-Rate
Narrowband audio codec. Using it requires the presence of the
libopencore-amrnb headers and library during configuration. You need to
explicitly configure the build with @code{--enable-libopencore-amrnb}.
An FFmpeg native decoder for AMR-NB exists, so users can decode AMR-NB
without this library.
@section libopencore-amrwb
libopencore-amrwb decoder wrapper.
libopencore-amrwb allows libavcodec to decode the Adaptive Multi-Rate
Wideband audio codec. Using it requires the presence of the
libopencore-amrwb headers and library during configuration. You need to
explicitly configure the build with @code{--enable-libopencore-amrwb}.
An FFmpeg native decoder for AMR-WB exists, so users can decode AMR-WB
without this library.
@section libopus
libopus decoder wrapper.
libopus allows libavcodec to decode the Opus Interactive Audio Codec.
Requires the presence of the libopus headers and library during
configuration. You need to explicitly configure the build with
@code{--enable-libopus}.
@c man end AUDIO DECODERS
@chapter Subtitles Decoders

View File

@@ -6,18 +6,100 @@ multimedia streams from a particular type of file.
When you configure your FFmpeg build, all the supported demuxers
are enabled by default. You can list all available ones using the
configure option "--list-demuxers".
configure option @code{--list-demuxers}.
You can disable all the demuxers using the configure option
"--disable-demuxers", and selectively enable a single demuxer with
the option "--enable-demuxer=@var{DEMUXER}", or disable it
with the option "--disable-demuxer=@var{DEMUXER}".
@code{--disable-demuxers}, and selectively enable a single demuxer with
the option @code{--enable-demuxer=@var{DEMUXER}}, or disable it
with the option @code{--disable-demuxer=@var{DEMUXER}}.
The option "-formats" of the ff* tools will display the list of
The option @code{-formats} of the ff* tools will display the list of
enabled demuxers.
The description of some of the currently available demuxers follows.
@section applehttp
Apple HTTP Live Streaming demuxer.
This demuxer presents all AVStreams from all variant streams.
The id field is set to the bitrate variant index number. By setting
the discard flags on AVStreams (by pressing 'a' or 'v' in ffplay),
the caller can decide which variant streams to actually receive.
The total bitrate of the variant that the stream belongs to is
available in a metadata key named "variant_bitrate".
@anchor{concat}
@section concat
Virtual concatenation script demuxer.
This demuxer reads a list of files and other directives from a text file and
demuxes them one after the other, as if all their packet had been muxed
together.
The timestamps in the files are adjusted so that the first file starts at 0
and each next file starts where the previous one finishes. Note that it is
done globally and may cause gaps if all streams do not have exactly the same
length.
All files must have the same streams (same codecs, same time base, etc.).
The duration of each file is used to adjust the timestamps of the next file:
if the duration is incorrect (because it was computed using the bit-rate or
because the file is truncated, for example), it can cause artifacts. The
@code{duration} directive can be used to override the duration stored in
each file.
@subsection Syntax
The script is a text file in extended-ASCII, with one directive per line.
Empty lines, leading spaces and lines starting with '#' are ignored. The
following directive is recognized:
@table @option
@item @code{file @var{path}}
Path to a file to read; special characters and spaces must be escaped with
backslash or single quotes.
All subsequent directives apply to that file.
@item @code{ffconcat version 1.0}
Identify the script type and version. It also sets the @option{safe} option
to 1 if it was to its default -1.
To make FFmpeg recognize the format automatically, this directive must
appears exactly as is (no extra space or byte-order-mark) on the very first
line of the script.
@item @code{duration @var{dur}}
Duration of the file. This information can be specified from the file;
specifying it here may be more efficient or help if the information from the
file is not available or accurate.
@end table
@subsection Options
This demuxer accepts the following option:
@table @option
@item safe
If set to 1, reject unsafe file paths. A file path is considered safe if it
does not contain a protocol specification and is relative and all components
only contain characters from the portable character set (letters, digits,
period, underscore and hyphen) and have no period at the beginning of a
component.
If set to 0, any file name is accepted.
The default is -1, it is equivalent to 1 if the format was automatically
probed and 0 otherwise.
@end table
@section image2
Image file demuxer.
@@ -143,16 +225,34 @@ ffmpeg -pattern_type glob -i "*.png" -r 10 out.mkv
@end example
@end itemize
@section applehttp
@section rawvideo
Apple HTTP Live Streaming demuxer.
Raw video demuxer.
This demuxer presents all AVStreams from all variant streams.
The id field is set to the bitrate variant index number. By setting
the discard flags on AVStreams (by pressing 'a' or 'v' in ffplay),
the caller can decide which variant streams to actually receive.
The total bitrate of the variant that the stream belongs to is
available in a metadata key named "variant_bitrate".
This demuxer allows to read raw video data. Since there is no header
specifying the assumed video parameters, the user must specify them
in order to be able to decode the data correctly.
This demuxer accepts the following options:
@table @option
@item framerate
Set input video frame rate. Default value is 25.
@item pixel_format
Set the input video pixel format. Default value is @code{yuv420p}.
@item video_size
Set the input video size. This value must be specified explicitly.
@end table
For example to read a rawvideo file @file{input.raw} with
@command{ffplay}, assuming a pixel format of @code{rgb24}, a video
size of @code{320x240}, and a frame rate of 10 images per second, use
the command:
@example
ffplay -f rawvideo -pixel_format rgb24 -video_size 320x240 -framerate 10 input.raw
@end example
@section sbg
@@ -184,37 +284,6 @@ the script is directly played, the actual times will match the absolute
timestamps up to the sound controller's clock accuracy, but if the user
somehow pauses the playback or seeks, all times will be shifted accordingly.
@section concat
Virtual concatenation script demuxer.
This demuxer reads a list of files and other directives from a text file and
demuxes them one after the other, as if all their packet had been muxed
together.
The timestamps in the files are adjusted so that the first file starts at 0
and each next file starts where the previous one finishes. Note that it is
done globally and may cause gaps if all streams do not have exactly the same
length.
All files must have the same streams (same codecs, same time base, etc.).
This script format can currently not be probed, it must be specified explicitly.
@subsection Syntax
The script is a text file in extended-ASCII, with one directive per line.
Empty lines, leading spaces and lines starting with '#' are ignored. The
following directive is recognized:
@table @option
@item @code{file @var{path}}
Path to a file to read; special characters and spaces must be escaped with
backslash or single quotes.
@end table
@section tedcaptions
JSON captions used for @url{http://www.ted.com/, TED Talks}.
@@ -236,4 +305,4 @@ Example: convert the captions to a format most players understand:
ffmpeg -i http://www.ted.com/talks/subtitles/id/1/lang/en talk1-en.srt
@end example
@c man end INPUT DEVICES
@c man end DEMUXERS

View File

@@ -147,29 +147,41 @@ GCC statement expressions (@samp{(x = (@{ int y = 4; y; @})}).
@end itemize
@subsection Naming conventions
All names are using underscores (_), not CamelCase. For example, @samp{avfilter_get_video_buffer} is
a valid function name and @samp{AVFilterGetVideo} is not. The exception from this are type names, like
All names should be composed with underscores (_), not CamelCase. For example,
@samp{avfilter_get_video_buffer} is an acceptable function name and
@samp{AVFilterGetVideo} is not. The exception from this are type names, like
for example structs and enums; they should always be in the CamelCase
There are following conventions for naming variables and functions:
There are the following conventions for naming variables and functions:
@itemize @bullet
@item
For local variables no prefix is required.
@item
For variables and functions declared as @code{static} no prefixes are required.
For variables and functions declared as @code{static} no prefix is required.
@item
For variables and functions used internally by the library, @code{ff_} prefix
should be used.
For example, @samp{ff_w64_demuxer}.
For variables and functions used internally by a library an @code{ff_}
prefix should be used, e.g. @samp{ff_w64_demuxer}.
@item
For variables and functions used internally across multiple libraries, use
@code{avpriv_}. For example, @samp{avpriv_aac_parse_header}.
@item
For exported names, each library has its own prefixes. Just check the existing
code and name accordingly.
Each library has its own prefix for public symbols, in addition to the
commonly used @code{av_} (@code{avformat_} for libavformat,
@code{avcodec_} for libavcodec, @code{swr_} for libswresample, etc).
Check the existing code and choose names accordingly.
Note that some symbols without these prefixes are also exported for
retro-compatibility reasons. These exceptions are declared in the
@code{lib<name>/lib<name>.v} files.
@end itemize
Furthermore, name space reserved for the system should not be invaded.
Identifiers ending in @code{_t} are reserved by
@url{http://pubs.opengroup.org/onlinepubs/007904975/functions/xsh_chap02_02.html#tag_02_02_02, POSIX}.
Also avoid names starting with @code{__} or @code{_} followed by an uppercase
letter as they are reserved by the C standard. Names starting with @code{_}
are reserved at the file level and may not be used for externally visible
symbols. If in doubt, just avoid names starting with @code{_} altogether.
@subsection Miscellaneous conventions
@itemize @bullet
@item
@@ -190,8 +202,8 @@ set shiftwidth=4
set softtabstop=4
set cindent
set cinoptions=(0
" allow tabs in Makefiles
autocmd FileType make set noexpandtab shiftwidth=8 softtabstop=8
" Allow tabs in Makefiles.
autocmd FileType make,automake set noexpandtab shiftwidth=8 softtabstop=8
" Trailing whitespace and tabs are forbidden, so highlight them.
highlight ForbiddenWhitespace ctermbg=red guibg=red
match ForbiddenWhitespace /\s\+$\|\t/
@@ -217,8 +229,13 @@ For Emacs, add these roughly equivalent lines to your @file{.emacs.d/init.el}:
@enumerate
@item
Contributions should be licensed under the LGPL 2.1, including an
"or any later version" clause, or the MIT license. GPL 2 including
Contributions should be licensed under the
@uref{http://www.gnu.org/licenses/lgpl-2.1.html, LGPL 2.1},
including an "or any later version" clause, or, if you prefer
a gift-style license, the
@uref{http://www.isc.org/software/license/, ISC} or
@uref{http://mit-license.org/, MIT} license.
@uref{http://www.gnu.org/licenses/gpl-2.0.html, GPL 2} including
an "or any later version" clause is also acceptable, but LGPL is
preferred.
@item
@@ -228,6 +245,13 @@ For Emacs, add these roughly equivalent lines to your @file{.emacs.d/init.el}:
You can commit unfinished stuff (for testing etc), but it must be disabled
(#ifdef etc) by default so it does not interfere with other developers'
work.
@item
The commit message should have a short first line in the form of
a @samp{topic: short description} as a header, separated by a newline
from the body consisting of an explanation of why the change is necessary.
If the commit fixes a known bug on the bug tracker, the commit message
should include its bug ID. Referring to the issue on the bug tracker does
not exempt you from writing an excerpt of the bug in the commit message.
@item
You do not have to over-test things. If it works for you, and you think it
should work for others, then commit. If your code has problems
@@ -334,8 +358,6 @@ For Emacs, add these roughly equivalent lines to your @file{.emacs.d/init.el}:
We think our rules are not too hard. If you have comments, contact us.
Note, these rules are mostly borrowed from the MPlayer project.
@anchor{Submitting patches}
@section Submitting patches
@@ -358,11 +380,6 @@ The tool is located in the tools directory.
Run the @ref{Regression tests} before submitting a patch in order to verify
it does not cause unexpected problems.
Patches should be posted as base64 encoded attachments (or any other
encoding which ensures that the patch will not be trashed during
transmission) to the ffmpeg-devel mailing list, see
@url{http://lists.ffmpeg.org/mailman/listinfo/ffmpeg-devel}
It also helps quite a bit if you tell us what the patch does (for example
'replaces lrint by lrintf'), and why (for example '*BSD isn't C99 compliant
and has no lrint()')
@@ -370,6 +387,13 @@ and has no lrint()')
Also please if you send several patches, send each patch as a separate mail,
do not attach several unrelated patches to the same mail.
Patches should be posted to the
@uref{http://lists.ffmpeg.org/mailman/listinfo/ffmpeg-devel, ffmpeg-devel}
mailing list. Use @code{git send-email} when possible since it will properly
send patches without requiring extra care. If you cannot, then send patches
as base64-encoded attachments, so your patch is not trashed during
transmission.
Your patch will be reviewed on the mailing list. You will likely be asked
to make some changes and are expected to send in an improved version that
incorporates the requests from the review. This process may go through
@@ -398,7 +422,7 @@ send a reminder by email. Your patch should eventually be dealt with.
When adding new codec IDs, also add an entry to the codec descriptor
list in @file{libavcodec/codec_desc.c}.
@item
If it has a fourCC, did you add it to @file{libavformat/riff.c},
If it has a FourCC, did you add it to @file{libavformat/riff.c},
even if it is only a decoder?
@item
Did you add a rule to compile the appropriate files in the Makefile?
@@ -451,8 +475,10 @@ send a reminder by email. Your patch should eventually be dealt with.
other security issues?
@item
Did you test your decoder or demuxer against damaged data? If no, see
tools/trasher and the noise bitstream filter. Your decoder or demuxer
should not crash or end in a (near) infinite loop when fed damaged data.
tools/trasher, the noise bitstream filter, and
@uref{http://caca.zoy.org/wiki/zzuf, zzuf}. Your decoder or demuxer
should not crash, end in a (near) infinite loop, or allocate ridiculous
amounts of memory when fed damaged data.
@item
Does the patch not mix functional and cosmetic changes?
@item
@@ -496,6 +522,9 @@ send a reminder by email. Your patch should eventually be dealt with.
Make sure you check the return values of function and return appropriate
error codes. Especially memory allocation functions like @code{av_malloc()}
are notoriously left unchecked, which is a serious problem.
@item
Test your code with valgrind and or Address Sanitizer to ensure it's free
of leaks, out of array accesses, etc.
@end enumerate
@section Patch review process

View File

@@ -25,6 +25,95 @@ enabled encoders.
A description of some of the currently available audio encoders
follows.
@anchor{aacenc}
@section aac
Advanced Audio Coding (AAC) encoder.
This encoder is an experimental FFmpeg-native AAC encoder. Currently only the
low complexity (AAC-LC) profile is supported. To use this encoder, you must set
@option{strict} option to @samp{experimental} or lower.
As this encoder is experimental, unexpected behavior may exist from time to
time. For a more stable AAC encoder, see @ref{libvo-aacenc}. However, be warned
that it has a worse quality reported by some users.
@c Comment this out until somebody writes the respective documentation.
@c See also @ref{libfaac}, @ref{libaacplus}, and @ref{libfdk-aac-enc}.
@subsection Options
@table @option
@item b
Set bit rate in bits/s. Setting this automatically activates constant bit rate
(CBR) mode.
@item q
Set quality for variable bit rate (VBR) mode. This option is valid only using
the @command{ffmpeg} command-line tool. For library interface users, use
@option{global_quality}.
@item stereo_mode
Set stereo encoding mode. Possible values:
@table @samp
@item auto
Automatically selected by the encoder.
@item ms_off
Disable middle/side encoding. This is the default.
@item ms_force
Force middle/side encoding.
@end table
@item aac_coder
Set AAC encoder coding method. Possible values:
@table @samp
@item 0
FAAC-inspired method.
This method is a simplified reimplementation of the method used in FAAC, which
sets thresholds proportional to the band energies, and then decreases all the
thresholds with quantizer steps to find the appropriate quantization with
distortion below threshold band by band.
The quality of this method is comparable to the two loop searching method
descibed below, but somewhat a little better and slower.
@item 1
Average noise to mask ratio (ANMR) trellis-based solution.
This has a theoretic best quality out of all the coding methods, but at the
cost of the slowest speed.
@item 2
Two loop searching (TLS) method.
This method first sets quantizers depending on band thresholds and then tries
to find an optimal combination by adding or subtracting a specific value from
all quantizers and adjusting some individual quantizer a little.
This method produces similar quality with the FAAC method and is the default.
@item 3
Constant quantizer method.
This method sets a constant quantizer for all bands. This is the fastest of all
the methods, yet produces the worst quality.
@end table
@end table
@subsection Tips and Tricks
According to some reports
(e.g. @url{http://d.hatena.ne.jp/kamedo2/20120729/1343545890}), setting the
@option{cutoff} option to 15000 Hz greatly improves the quality of the output
quality. As a result, we encourage you to do the same.
@section ac3 and ac3_fixed
AC-3 audio encoders.
@@ -412,6 +501,279 @@ Selected by Encoder (default)
@end table
@section libmp3lame
LAME (Lame Ain't an MP3 Encoder) MP3 encoder wrapper
Requires the presence of the libmp3lame headers and library during
configuration. You need to explicitly configure the build with
@code{--enable-libmp3lame}.
@subsection Options
The following options are supported by the libmp3lame wrapper. The
@command{lame}-equivalent of the options are listed in parentheses.
@table @option
@item b (@emph{-b})
Set bitrate expressed in bits/s for CBR. LAME @code{bitrate} is
expressed in kilobits/s.
@item q (@emph{-V})
Set constant quality setting for VBR. This option is valid only
using the @command{ffmpeg} command-line tool. For library interface
users, use @option{global_quality}.
@item compression_level (@emph{-q})
Set algorithm quality. Valid arguments are integers in the 0-9 range,
with 0 meaning highest quality but slowest, and 9 meaning fastest
while producing the worst quality.
@item reservoir
Enable use of bit reservoir when set to 1. Default value is 1. LAME
has this enabled by default, but can be overriden by use
@option{--nores} option.
@end table
@section libopencore-amrnb
OpenCORE Adaptive Multi-Rate Narrowband encoder.
Requires the presence of the libopencore-amrnb headers and library during
configuration. You need to explicitly configure the build with
@code{--enable-libopencore-amrnb --enable-version3}.
This is a mono-only encoder. Officially it only supports 8000Hz sample rate,
but you can override it by setting @option{strict} to @samp{unofficial} or
lower.
@subsection Options
@table @option
@item b
Set bitrate in bits per second. Only the following bitrates are supported,
otherwise libavcodec will round to the nearest valid bitrate.
@table @option
@item 4750
@item 5150
@item 5900
@item 6700
@item 7400
@item 7950
@item 10200
@item 12200
@end table
@item dtx
Allow discontinuous transmission (generate comfort noise) when set to 1. The
default value is 0 (disabled).
@end table
@section libtwolame
TwoLAME MP2 encoder wrapper
Requires the presence of the libtwolame headers and library during
configuration. You need to explicitly configure the build with
@code{--enable-libtwolame}.
@subsection Options
The following options are supported by the libtwolame wrapper. The
@command{twolame}-equivalent options follow the FFmpeg ones and are in
parentheses.
@table @option
@item b (@emph{-b})
Set bitrate expressed in bits/s for CBR. @command{twolame} @option{b}
option is expressed in kilobits/s. Default value is 128k.
@item q (@emph{-V})
Set quality for experimental VBR support. Maximum value range is
from -50 to 50, useful range is from -10 to 10. The higher the
value, the better the quality. This option is valid only using the
@command{ffmpeg} command-line tool. For library interface users,
use @option{global_quality}.
@item mode (@emph{--mode})
Set the mode of the resulting audio. Possible values:
@table @samp
@item auto
Choose mode automatically based on the input. This is the default.
@item stereo
Stereo
@item joint_stereo
Joint stereo
@item dual_channel
Dual channel
@item mono
Mono
@end table
@item psymodel (@emph{--psyc-mode})
Set psychoacoustic model to use in encoding. The argument must be
an integer between -1 and 4, inclusive. The higher the value, the
better the quality. The default value is 3.
@item energy_levels (@emph{--energy})
Enable energy levels extensions when set to 1. The default value is
0 (disabled).
@item error_protection (@emph{--protect})
Enable CRC error protection when set to 1. The default value is 0
(disabled).
@item copyright (@emph{--copyright})
Set MPEG audio copyright flag when set to 1. The default value is 0
(disabled).
@item original (@emph{--original})
Set MPEG audio original flag when set to 1. The default value is 0
(disabled).
@end table
@anchor{libvo-aacenc}
@section libvo-aacenc
VisualOn AAC encoder
Requires the presence of the libvo-aacenc headers and library during
configuration. You need to explicitly configure the build with
@code{--enable-libvo-aacenc --enable-version3}.
This encoder is considered to be worse than the
@ref{aacenc,,native experimental FFmpeg AAC encoder}, according to
multiple sources.
@subsection Options
The VisualOn AAC encoder only support encoding AAC-LC and up to 2
channels. It is also CBR-only.
@table @option
@item b
Set bit rate in bits/s.
@end table
@section libvo-amrwbenc
VisualOn Adaptive Multi-Rate Wideband encoder
Requires the presence of the libvo-amrwbenc headers and library during
configuration. You need to explicitly configure the build with
@code{--enable-libvo-amrwbenc --enable-version3}.
This is a mono-only encoder. Officially it only supports 16000Hz sample
rate, but you can override it by setting @option{strict} to
@samp{unofficial} or lower.
@subsection Options
@table @option
@item b
Set bitrate in bits/s. Only the following bitrates are supported, otherwise
libavcodec will round to the nearest valid bitrate.
@table @samp
@item 6600
@item 8850
@item 12650
@item 14250
@item 15850
@item 18250
@item 19850
@item 23050
@item 23850
@end table
@item dtx
Allow discontinuous transmission (generate comfort noise) when set to 1. The
default value is 0 (disabled).
@end table
@section libopus
libopus Opus Interactive Audio Codec encoder wrapper.
Requires the presence of the libopus headers and library during
configuration. You need to explicitly configure the build with
@code{--enable-libopus}.
@subsection Option Mapping
Most libopus options are modeled after the @command{opusenc} utility from
opus-tools. The following is an option mapping chart describing options
supported by the libopus wrapper, and their @command{opusenc}-equivalent
in parentheses.
@table @option
@item b (@emph{bitrate})
Set the bit rate in bits/s. FFmpeg's @option{b} option is
expressed in bits/s, while @command{opusenc}'s @option{bitrate} in
kilobits/s.
@item vbr (@emph{vbr}, @emph{hard-cbr}, and @emph{cvbr})
Set VBR mode. The FFmpeg @option{vbr} option has the following
valid arguments, with the their @command{opusenc} equivalent options
in parentheses:
@table @samp
@item off (@emph{hard-cbr})
Use constant bit rate encoding.
@item on (@emph{vbr})
Use variable bit rate encoding (the default).
@item constrained (@emph{cvbr})
Use constrained variable bit rate encoding.
@end table
@item compression_level (@emph{comp})
Set encoding algorithm complexity. Valid options are integers in
the 0-10 range. 0 gives the fastest encodes but lower quality, while 10
gives the highest quality but slowest encoding. The default is 10.
@item frame_duration (@emph{framesize})
Set maximum frame size, or duration of a frame in milliseconds. The
argument must be exactly the following: 2.5, 5, 10, 20, 40, 60. Smaller
frame sizes achieve lower latency but less quality at a given bitrate.
Sizes greater than 20ms are only interesting at fairly low bitrates.
The default is 20ms.
@item packet_loss (@emph{expect-loss})
Set expected packet loss percentage. The default is 0.
@item application (N.A.)
Set intended application type. Valid options are listed below:
@table @samp
@item voip
Favor improved speech intelligibility.
@item audio
Favor faithfulness to the input (the default).
@item lowdelay
Restrict to only the lowest delay modes.
@end table
@item cutoff (N.A.)
Set cutoff bandwidth in Hz. The argument must be exactly one of the
following: 4000, 6000, 8000, 12000, or 20000, corresponding to
narrowband, mediumband, wideband, super wideband, and fullband
respectively. The default is 0 (cutoff disabled).
@end table
@c man end AUDIO ENCODERS
@chapter Video Encoders
@@ -581,56 +943,458 @@ For more information about libvpx see:
@section libx264
H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 format supported through
libx264.
x264 H.264/MPEG-4 AVC encoder wrapper
Requires the presence of the libx264 headers and library during
configuration. You need to explicitly configure the build with
This encoder requires the presence of the libx264 headers and library
during configuration. You need to explicitly configure the build with
@code{--enable-libx264}.
libx264 supports an impressive number of features, including 8x8 and
4x4 adaptive spatial transform, adaptive B-frame placement, CAVLC/CABAC
entropy coding, interlacing (MBAFF), lossless mode, psy optimizations
for detail retention (adaptive quantization, psy-RD, psy-trellis).
Many libx264 encoder options are mapped to FFmpeg global codec
options, while unique encoder options are provided through private
options. Additionally the @option{x264opts} and @option{x264-params}
private options allows to pass a list of key=value tuples as accepted
by the libx264 @code{x264_param_parse} function.
The x264 project website is at
@url{http://www.videolan.org/developers/x264.html}.
@subsection Options
@table @option
The following options are supported by the libx264 wrapper. The
@command{x264}-equivalent options or values are listed in parentheses
for easy migration.
@item preset @var{preset_name}
To reduce the duplication of documentation, only the private options
and some others requiring special attention are documented here. For
the documentation of the undocumented generic options, see
@ref{codec-options,,the Codec Options chapter}.
To get a more accurate and extensive documentation of the libx264
options, invoke the command @command{x264 --full-help} or consult
the libx264 documentation.
@table @option
@item b (@emph{bitrate})
Set bitrate in bits/s. Note that FFmpeg's @option{b} option is
expressed in bits/s, while @command{x264}'s @option{bitrate} is in
kilobits/s.
@item bf (@emph{bframes})
@item g (@emph{keyint})
@item qmax (@emph{qpmax})
@item qmin (@emph{qpmin})
@item qdiff (@emph{qpstep})
@item qblur (@emph{qblur})
@item qcomp (@emph{qcomp})
@item refs (@emph{ref})
@item sc_threshold (@emph{scenecut})
@item trellis (@emph{trellis})
@item nr (@emph{nr})
@item me_range (@emph{merange})
@item me_method (@emph{me})
Set motion estimation method. Possible values in the decreasing order
of speed:
@table @samp
@item dia (@emph{dia})
@item epzs (@emph{dia})
Diamond search with radius 1 (fastest). @samp{epzs} is an alias for
@samp{dia}.
@item hex (@emph{hex})
Hexagonal search with radius 2.
@item umh (@emph{umh})
Uneven multi-hexagon search.
@item esa (@emph{esa})
Exhaustive search.
@item tesa (@emph{tesa})
Hadamard exhaustive search (slowest).
@end table
@item subq (@emph{subme})
@item b_strategy (@emph{b-adapt})
@item keyint_min (@emph{min-keyint})
@item coder
Set entropy encoder. Possible values:
@table @samp
@item ac
Enable CABAC.
@item vlc
Enable CAVLC and disable CABAC. It generates the same effect as
@command{x264}'s @option{--no-cabac} option.
@end table
@item cmp
Set full pixel motion estimation comparation algorithm. Possible values:
@table @samp
@item chroma
Enable chroma in motion estimation.
@item sad
Ignore chroma in motion estimation. It generates the same effect as
@command{x264}'s @option{--no-chroma-me} option.
@end table
@item threads (@emph{threads})
@item thread_type
Set multithreading technique. Possible values:
@table @samp
@item slice
Slice-based multithreading. It generates the same effect as
@command{x264}'s @option{--sliced-threads} option.
@item frame
Frame-based multithreading.
@end table
@item flags
Set encoding flags. It can be used to disable closed GOP and enable
open GOP by setting it to @code{-cgop}. The result is similar to
the behavior of @command{x264}'s @option{--open-gop} option.
@item rc_init_occupancy (@emph{vbv-init})
@item preset (@emph{preset})
Set the encoding preset.
@item tune @var{tune_name}
Tune the encoding params.
@item tune (@emph{tune})
Set tuning of the encoding params.
@item fastfirstpass @var{bool}
Use fast settings when encoding first pass, default value is 1.
@item profile @var{profile_name}
@item profile (@emph{profile})
Set profile restrictions.
@item level @var{level}
Specify level (as defined by Annex A).
Deprecated in favor of @var{x264opts}.
@item fastfirstpass
Enable fast settings when encoding first pass, when set to 1. When set
to 0, it has the same effect of @command{x264}'s
@option{--slow-firstpass} option.
@item passlogfile @var{filename}
Specify filename for 2 pass stats.
Deprecated in favor of @var{x264opts} (see @var{stats} libx264 option).
@item crf (@emph{crf})
Set the quality for constant quality mode.
@item wpredp @var{wpred_type}
Specify Weighted prediction for P-frames.
Deprecated in favor of @var{x264opts} (see @var{weightp} libx264 option).
@item crf_max (@emph{crf-max})
In CRF mode, prevents VBV from lowering quality beyond this point.
@item x264opts @var{options}
Allow to set any x264 option, see @code{x264 --fullhelp} for a list.
@item qp (@emph{qp})
Set constant quantization rate control method parameter.
@var{options} is a list of @var{key}=@var{value} couples separated by
@item aq-mode (@emph{aq-mode})
Set AQ method. Possible values:
@table @samp
@item none (@emph{0})
Disabled.
@item variance (@emph{1})
Variance AQ (complexity mask).
@item autovariance (@emph{2})
Auto-variance AQ (experimental).
@end table
@item aq-strength (@emph{aq-strength})
Set AQ strength, reduce blocking and blurring in flat and textured areas.
@item psy
Use psychovisual optimizations when set to 1. When set to 0, it has the
same effect as @command{x264}'s @option{--no-psy} option.
@item psy-rd (@emph{psy-rd})
Set strength of psychovisual optimization, in
@var{psy-rd}:@var{psy-trellis} format.
@item rc-lookahead (@emph{rc-lookahead})
Set number of frames to look ahead for frametype and ratecontrol.
@item weightb
Enable weighted prediction for B-frames when set to 1. When set to 0,
it has the same effect as @command{x264}'s @option{--no-weightb} option.
@item weightp (@emph{weightp})
Set weighted prediction method for P-frames. Possible values:
@table @samp
@item none (@emph{0})
Disabled
@item simple (@emph{1})
Enable only weighted refs
@item smart (@emph{2})
Enable both weighted refs and duplicates
@end table
@item ssim (@emph{ssim})
Enable calculation and printing SSIM stats after the encoding.
@item intra-refresh (@emph{intra-refresh})
Enable the use of Periodic Intra Refresh instead of IDR frames when set
to 1.
@item b-bias (@emph{b-bias})
Set the influence on how often B-frames are used.
@item b-pyramid (@emph{b-pyramid})
Set method for keeping of some B-frames as references. Possible values:
@table @samp
@item none (@emph{none})
Disabled.
@item strict (@emph{strict})
Strictly hierarchical pyramid.
@item normal (@emph{normal})
Non-strict (not Blu-ray compatible).
@end table
@item mixed-refs
Enable the use of one reference per partition, as opposed to one
reference per macroblock when set to 1. When set to 0, it has the
same effect as @command{x264}'s @option{--no-mixed-refs} option.
@item 8x8dct
Enable adaptive spatial transform (high profile 8x8 transform)
when set to 1. When set to 0, it has the same effect as
@command{x264}'s @option{--no-8x8dct} option.
@item fast-pskip
Enable early SKIP detection on P-frames when set to 1. When set
to 0, it has the same effect as @command{x264}'s
@option{--no-fast-pskip} option.
@item aud (@emph{aud})
Enable use of access unit delimiters when set to 1.
@item mbtree
Enable use macroblock tree ratecontrol when set to 1. When set
to 0, it has the same effect as @command{x264}'s
@option{--no-mbtree} option.
@item deblock (@emph{deblock})
Set loop filter parameters, in @var{alpha}:@var{beta} form.
@item cplxblur (@emph{cplxblur})
Set fluctuations reduction in QP (before curve compression).
@item partitions (@emph{partitions})
Set partitions to consider as a comma-separated list of. Possible
values in the list:
@table @samp
@item p8x8
8x8 P-frame partition.
@item p4x4
4x4 P-frame partition.
@item b8x8
4x4 B-frame partition.
@item i8x8
8x8 I-frame partition.
@item i4x4
4x4 I-frame partition.
(Enabling @samp{p4x4} requires @samp{p8x8} to be enabled. Enabling
@samp{i8x8} requires adaptive spatial transform (@option{8x8dct}
option) to be enabled.)
@item none (@emph{none})
Do not consider any partitions.
@item all (@emph{all})
Consider every partition.
@end table
@item direct-pred (@emph{direct})
Set direct MV prediction mode. Possible values:
@table @samp
@item none (@emph{none})
Disable MV prediction.
@item spatial (@emph{spatial})
Enable spatial predicting.
@item temporal (@emph{temporal})
Enable temporal predicting.
@item auto (@emph{auto})
Automatically decided.
@end table
@item slice-max-size (@emph{slice-max-size})
Set the limit of the size of each slice in bytes. If not specified
but RTP payload size (@option{ps}) is specified, that is used.
@item stats (@emph{stats})
Set the file name for multi-pass stats.
@item nal-hrd (@emph{nal-hrd})
Set signal HRD information (requires @option{vbv-bufsize} to be set).
Possible values:
@table @samp
@item none (@emph{none})
Disable HRD information signaling.
@item vbr (@emph{vbr})
Variable bit rate.
@item cbr (@emph{cbr})
Constant bit rate (not allowed in MP4 container).
@end table
@item x264opts (N.A.)
Set any x264 option, see @command{x264 --fullhelp} for a list.
Argument is a list of @var{key}=@var{value} couples separated by
":". In @var{filter} and @var{psy-rd} options that use ":" as a separator
themselves, use "," instead. They accept it as well since long ago but this
is kept undocumented for some reason.
@end table
For example to specify libx264 encoding options with @command{ffmpeg}:
@example
ffmpeg -i foo.mpg -vcodec libx264 -x264opts keyint=123:min-keyint=20 -an out.mkv
@end example
For more information about libx264 and the supported options see:
@url{http://www.videolan.org/developers/x264.html}
@item x264-params (N.A.)
Override the x264 configuration using a :-separated list of key=value
parameters.
This option is functionally the same as the @option{x264opts}, but is
duplicated for compability with the Libav fork.
For example to specify libx264 encoding options with @command{ffmpeg}:
@example
ffmpeg -i INPUT -c:v libx264 -x264-params level=30:bframes=0:weightp=0:\
cabac=0:ref=1:vbv-maxrate=768:vbv-bufsize=2000:analyse=all:me=umh:\
no-fast-pskip=1:subq=6:8x8dct=0:trellis=0 OUTPUT
@end example
@end table
Encoding ffpresets for common usages are provided so they can be used with the
general presets system (e.g. passing the @option{pre} option).
@section libxvid
Xvid MPEG-4 Part 2 encoder wrapper.
This encoder requires the presence of the libxvidcore headers and library
during configuration. You need to explicitly configure the build with
@code{--enable-libxvid --enable-gpl}.
The native @code{mpeg4} encoder supports the MPEG-4 Part 2 format, so
users can encode to this format without this library.
@subsection Options
The following options are supported by the libxvid wrapper. Some of
the following options are listed but are not documented, and
correspond to shared codec options. See @ref{codec-options,,the Codec
Options chapter} for their documentation. The other shared options
which are not listed have no effect for the libxvid encoder.
@table @option
@item b
@item g
@item qmin
@item qmax
@item mpeg_quant
@item threads
@item bf
@item b_qfactor
@item b_qoffset
@item flags
Set specific encoding flags. Possible values:
@table @samp
@item mv4
Use four motion vector by macroblock.
@item aic
Enable high quality AC prediction.
@item gray
Only encode grayscale.
@item gmc
Enable the use of global motion compensation (GMC).
@item qpel
Enable quarter-pixel motion compensation.
@item cgop
Enable closed GOP.
@item global_header
Place global headers in extradata instead of every keyframe.
@end table
@item trellis
@item me_method
Set motion estimation method. Possible values in decreasing order of
speed and increasing order of quality:
@table @samp
@item zero
Use no motion estimation (default).
@item phods
@item x1
@item log
Enable advanced diamond zonal search for 16x16 blocks and half-pixel
refinement for 16x16 blocks. @samp{x1} and @samp{log} are aliases for
@samp{phods}.
@item epzs
Enable all of the things described above, plus advanced diamond zonal
search for 8x8 blocks, half-pixel refinement for 8x8 blocks, and motion
estimation on chroma planes.
@item full
Enable all of the things described above, plus extended 16x16 and 8x8
blocks search.
@end table
@item mbd
Set macroblock decision algorithm. Possible values in the increasing
order of quality:
@table @samp
@item simple
Use macroblock comparing function algorithm (default).
@item bits
Enable rate distortion-based half pixel and quarter pixel refinement for
16x16 blocks.
@item rd
Enable all of the things described above, plus rate distortion-based
half pixel and quarter pixel refinement for 8x8 blocks, and rate
distortion-based search using square pattern.
@end table
@end table
@c man end VIDEO ENCODERS

View File

@@ -20,57 +20,93 @@ The following unary operators are available: @code{+}, @code{-}.
The following functions are available:
@table @option
@item sinh(x)
Compute hyperbolic sine of @var{x}.
@item cosh(x)
Compute hyperbolic cosine of @var{x}.
@item tanh(x)
Compute hyperbolic tangent of @var{x}.
@item sin(x)
Compute sine of @var{x}.
@item cos(x)
Compute cosine of @var{x}.
@item tan(x)
Compute tangent of @var{x}.
@item atan(x)
Compute arctangent of @var{x}.
@item asin(x)
Compute arcsine of @var{x}.
@item abs(x)
Compute absolute value of @var{x}.
@item acos(x)
Compute arccosine of @var{x}.
@item asin(x)
Compute arcsine of @var{x}.
@item atan(x)
Compute arctangent of @var{x}.
@item ceil(expr)
Round the value of expression @var{expr} upwards to the nearest
integer. For example, "ceil(1.5)" is "2.0".
@item cos(x)
Compute cosine of @var{x}.
@item cosh(x)
Compute hyperbolic cosine of @var{x}.
@item eq(x, y)
Return 1 if @var{x} and @var{y} are equivalent, 0 otherwise.
@item exp(x)
Compute exponential of @var{x} (with base @code{e}, the Euler's number).
@item log(x)
Compute natural logarithm of @var{x}.
@item abs(x)
Compute absolute value of @var{x}.
@item squish(x)
Compute expression @code{1/(1 + exp(4*x))}.
@item floor(expr)
Round the value of expression @var{expr} downwards to the nearest
integer. For example, "floor(-1.5)" is "-2.0".
@item gauss(x)
Compute Gauss function of @var{x}, corresponding to
@code{exp(-x*x/2) / sqrt(2*PI)}.
@item gcd(x, y)
Return the greatest common divisor of @var{x} and @var{y}. If both @var{x} and
@var{y} are 0 or either or both are less than zero then behavior is undefined.
@item gt(x, y)
Return 1 if @var{x} is greater than @var{y}, 0 otherwise.
@item gte(x, y)
Return 1 if @var{x} is greater than or equal to @var{y}, 0 otherwise.
@item hypot(x, y)
This function is similar to the C function with the same name; it returns
"sqrt(@var{x}*@var{x} + @var{y}*@var{y})", the length of the hypotenuse of a
right triangle with sides of length @var{x} and @var{y}, or the distance of the
point (@var{x}, @var{y}) from the origin.
@item if(x, y)
Evaluate @var{x}, and if the result is non-zero return the result of
the evaluation of @var{y}, return 0 otherwise.
@item if(x, y, z)
Evaluate @var{x}, and if the result is non-zero return the evaluation
result of @var{y}, otherwise the evaluation result of @var{z}.
@item ifnot(x, y)
Evaluate @var{x}, and if the result is zero return the result of the
evaluation of @var{y}, return 0 otherwise.
@item ifnot(x, y, z)
Evaluate @var{x}, and if the result is zero return the evaluation
result of @var{y}, otherwise the evaluation result of @var{z}.
@item isinf(x)
Return 1.0 if @var{x} is +/-INFINITY, 0.0 otherwise.
@item isnan(x)
Return 1.0 if @var{x} is NAN, 0.0 otherwise.
@item mod(x, y)
Compute the remainder of division of @var{x} by @var{y}.
@item ld(var)
Allow to load the value of the internal variable with number
@var{var}, which was previously stored with st(@var{var}, @var{expr}).
The function returns the loaded value.
@item log(x)
Compute natural logarithm of @var{x}.
@item lt(x, y)
Return 1 if @var{x} is lesser than @var{y}, 0 otherwise.
@item lte(x, y)
Return 1 if @var{x} is lesser than or equal to @var{y}, 0 otherwise.
@item max(x, y)
Return the maximum between @var{x} and @var{y}.
@@ -78,53 +114,8 @@ Return the maximum between @var{x} and @var{y}.
@item min(x, y)
Return the maximum between @var{x} and @var{y}.
@item eq(x, y)
Return 1 if @var{x} and @var{y} are equivalent, 0 otherwise.
@item gte(x, y)
Return 1 if @var{x} is greater than or equal to @var{y}, 0 otherwise.
@item gt(x, y)
Return 1 if @var{x} is greater than @var{y}, 0 otherwise.
@item lte(x, y)
Return 1 if @var{x} is lesser than or equal to @var{y}, 0 otherwise.
@item lt(x, y)
Return 1 if @var{x} is lesser than @var{y}, 0 otherwise.
@item st(var, expr)
Allow to store the value of the expression @var{expr} in an internal
variable. @var{var} specifies the number of the variable where to
store the value, and it is a value ranging from 0 to 9. The function
returns the value stored in the internal variable.
Note, Variables are currently not shared between expressions.
@item ld(var)
Allow to load the value of the internal variable with number
@var{var}, which was previously stored with st(@var{var}, @var{expr}).
The function returns the loaded value.
@item while(cond, expr)
Evaluate expression @var{expr} while the expression @var{cond} is
non-zero, and returns the value of the last @var{expr} evaluation, or
NAN if @var{cond} was always false.
@item ceil(expr)
Round the value of expression @var{expr} upwards to the nearest
integer. For example, "ceil(1.5)" is "2.0".
@item floor(expr)
Round the value of expression @var{expr} downwards to the nearest
integer. For example, "floor(-1.5)" is "-2.0".
@item trunc(expr)
Round the value of expression @var{expr} towards zero to the nearest
integer. For example, "trunc(-1.5)" is "-1.0".
@item sqrt(expr)
Compute the square root of @var{expr}. This is equivalent to
"(@var{expr})^.5".
@item mod(x, y)
Compute the remainder of division of @var{x} by @var{y}.
@item not(expr)
Return 1.0 if @var{expr} is zero, 0.0 otherwise.
@@ -133,39 +124,83 @@ Return 1.0 if @var{expr} is zero, 0.0 otherwise.
Compute the power of @var{x} elevated @var{y}, it is equivalent to
"(@var{x})^(@var{y})".
@item print(t)
@item print(t, l)
Print the value of expression @var{t} with loglevel @var{l}. If
@var{l} is not specified then a default log level is used.
Returns the value of the expression printed.
Prints t with loglevel l
@item random(x)
Return a pseudo random value between 0.0 and 1.0. @var{x} is the index of the
internal variable which will be used to save the seed/state.
@item hypot(x, y)
This function is similar to the C function with the same name; it returns
"sqrt(@var{x}*@var{x} + @var{y}*@var{y})", the length of the hypotenuse of a
right triangle with sides of length @var{x} and @var{y}, or the distance of the
point (@var{x}, @var{y}) from the origin.
@item gcd(x, y)
Return the greatest common divisor of @var{x} and @var{y}. If both @var{x} and
@var{y} are 0 or either or both are less than zero then behavior is undefined.
@item if(x, y)
Evaluate @var{x}, and if the result is non-zero return the result of
the evaluation of @var{y}, return 0 otherwise.
@item ifnot(x, y)
Evaluate @var{x}, and if the result is zero return the result of the
evaluation of @var{y}, return 0 otherwise.
@item taylor(expr, x) taylor(expr, x, id)
Evaluate a taylor series at x.
expr represents the LD(id)-th derivates of f(x) at 0. If id is not specified
then 0 is assumed.
note, when you have the derivatives at y instead of 0
taylor(expr, x-y) can be used
When the series does not converge the results are undefined.
@item root(expr, max)
Finds x where f(x)=0 in the interval 0..max.
f() must be continuous or the result is undefined.
Find an input value for which the function represented by @var{expr}
with argument @var{ld(0)} is 0 in the interval 0..@var{max}.
The expression in @var{expr} must denote a continuous function or the
result is undefined.
@var{ld(0)} is used to represent the function input value, which means
that the given expression will be evaluated multiple times with
various input values that the expression can access through
@code{ld(0)}. When the expression evaluates to 0 then the
corresponding input value will be returned.
@item sin(x)
Compute sine of @var{x}.
@item sinh(x)
Compute hyperbolic sine of @var{x}.
@item sqrt(expr)
Compute the square root of @var{expr}. This is equivalent to
"(@var{expr})^.5".
@item squish(x)
Compute expression @code{1/(1 + exp(4*x))}.
@item st(var, expr)
Allow to store the value of the expression @var{expr} in an internal
variable. @var{var} specifies the number of the variable where to
store the value, and it is a value ranging from 0 to 9. The function
returns the value stored in the internal variable.
Note, Variables are currently not shared between expressions.
@item tan(x)
Compute tangent of @var{x}.
@item tanh(x)
Compute hyperbolic tangent of @var{x}.
@item taylor(expr, x)
@item taylor(expr, x, id)
Evaluate a Taylor series at @var{x}, given an expression representing
the @code{ld(id)}-th derivative of a function at 0.
When the series does not converge the result is undefined.
@var{ld(id)} is used to represent the derivative order in @var{expr},
which means that the given expression will be evaluated multiple times
with various input values that the expression can access through
@code{ld(id)}. If @var{id} is not specified then 0 is assumed.
Note, when you have the derivatives at y instead of 0,
@code{taylor(expr, x-y)} can be used.
@item time(0)
Return the current (wallclock) time in seconds.
@item trunc(expr)
Round the value of expression @var{expr} towards zero to the nearest
integer. For example, "trunc(-1.5)" is "-1.0".
@item while(cond, expr)
Evaluate expression @var{expr} while the expression @var{cond} is
non-zero, and returns the value of the last @var{expr} evaluation, or
NAN if @var{cond} was always false.
@end table
The following constants are available:
@@ -185,68 +220,69 @@ value, note that:
@code{+} works like OR
and the construct:
For example the construct:
@example
if A then B else C
if (A AND B) then C
@end example
is equivalent to
is equivalent to:
@example
if(A,B) + ifnot(A,C)
if(A*B, C)
@end example
In your C code, you can extend the list of unary and binary functions,
and define recognized constants, so that they are available for your
expressions.
The evaluator also recognizes the International System number
postfixes. If 'i' is appended after the postfix, powers of 2 are used
instead of powers of 10. The 'B' postfix multiplies the value for 8,
and can be appended after another postfix or used alone. This allows
using for example 'KB', 'MiB', 'G' and 'B' as postfix.
The evaluator also recognizes the International System unit prefixes.
If 'i' is appended after the prefix, binary prefixes are used, which
are based on powers of 1024 instead of powers of 1000.
The 'B' postfix multiplies the value by 8, and can be appended after a
unit prefix or used alone. This allows using for example 'KB', 'MiB',
'G' and 'B' as number postfix.
Follows the list of available International System postfixes, with
The list of available International System prefixes follows, with
indication of the corresponding powers of 10 and of 2.
@table @option
@item y
-24 / -80
10^-24 / 2^-80
@item z
-21 / -70
10^-21 / 2^-70
@item a
-18 / -60
10^-18 / 2^-60
@item f
-15 / -50
10^-15 / 2^-50
@item p
-12 / -40
10^-12 / 2^-40
@item n
-9 / -30
10^-9 / 2^-30
@item u
-6 / -20
10^-6 / 2^-20
@item m
-3 / -10
10^-3 / 2^-10
@item c
-2
10^-2
@item d
-1
10^-1
@item h
2
10^2
@item k
3 / 10
10^3 / 2^10
@item K
3 / 10
10^3 / 2^10
@item M
6 / 20
10^6 / 2^20
@item G
9 / 30
10^9 / 2^30
@item T
12 / 40
10^12 / 2^40
@item P
15 / 40
10^15 / 2^40
@item E
18 / 50
10^18 / 2^50
@item Z
21 / 60
10^21 / 2^60
@item Y
24 / 70
10^24 / 2^70
@end table
@c man end

View File

@@ -98,7 +98,7 @@ static int decode_packet(int *got_frame, int cached)
audio_frame_count++, frame->nb_samples,
av_ts2timestr(frame->pts, &audio_dec_ctx->time_base));
ret = av_samples_alloc(audio_dst_data, &audio_dst_linesize, frame->channels,
ret = av_samples_alloc(audio_dst_data, &audio_dst_linesize, av_frame_get_channels(frame),
frame->nb_samples, frame->format, 1);
if (ret < 0) {
fprintf(stderr, "Could not allocate audio buffer\n");
@@ -107,13 +107,13 @@ static int decode_packet(int *got_frame, int cached)
/* TODO: extend return code of the av_samples_* functions so that this call is not needed */
audio_dst_bufsize =
av_samples_get_buffer_size(NULL, frame->channels,
av_samples_get_buffer_size(NULL, av_frame_get_channels(frame),
frame->nb_samples, frame->format, 1);
/* copy audio data to destination buffer:
* this is required since rawaudio expects non aligned data */
av_samples_copy(audio_dst_data, frame->data, 0, 0,
frame->nb_samples, frame->channels, frame->format);
frame->nb_samples, av_frame_get_channels(frame), frame->format);
/* write to rawaudio file */
fwrite(audio_dst_data[0], 1, audio_dst_bufsize, audio_dst_file);
@@ -292,8 +292,10 @@ int main (int argc, char **argv)
printf("Demuxing audio from file '%s' into '%s'\n", src_filename, audio_dst_filename);
/* read frames from the file */
while (av_read_frame(fmt_ctx, &pkt) >= 0)
while (av_read_frame(fmt_ctx, &pkt) >= 0) {
decode_packet(&got_frame, 0);
av_free_packet(&pkt);
}
/* flush cached frames */
pkt.data = NULL;
@@ -314,7 +316,7 @@ int main (int argc, char **argv)
if (audio_stream) {
const char *fmt;
if ((ret = get_format_from_sample_fmt(&fmt, audio_dec_ctx->sample_fmt) < 0))
if ((ret = get_format_from_sample_fmt(&fmt, audio_dec_ctx->sample_fmt)) < 0)
goto end;
printf("Play the output audio file with the command:\n"
"ffplay -f %s -ac %d -ar %d %s\n",

View File

@@ -169,9 +169,13 @@ int main(int argc, char **argv)
{
int ret;
AVPacket packet;
AVFrame frame;
AVFrame *frame = avcodec_alloc_frame();
int got_frame;
if (!frame) {
perror("Could not allocate frame");
exit(1);
}
if (argc != 2) {
fprintf(stderr, "Usage: %s file | %s\n", argv[0], player);
exit(1);
@@ -193,9 +197,9 @@ int main(int argc, char **argv)
break;
if (packet.stream_index == audio_stream_index) {
avcodec_get_frame_defaults(&frame);
avcodec_get_frame_defaults(frame);
got_frame = 0;
ret = avcodec_decode_audio4(dec_ctx, &frame, &got_frame, &packet);
ret = avcodec_decode_audio4(dec_ctx, frame, &got_frame, &packet);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Error decoding audio\n");
continue;
@@ -203,7 +207,7 @@ int main(int argc, char **argv)
if (got_frame) {
/* push the audio data from decoded frame into the filtergraph */
if (av_buffersrc_add_frame(buffersrc_ctx, &frame, 0) < 0) {
if (av_buffersrc_add_frame(buffersrc_ctx, frame, 0) < 0) {
av_log(NULL, AV_LOG_ERROR, "Error while feeding the audio filtergraph\n");
break;
}
@@ -229,6 +233,7 @@ end:
if (dec_ctx)
avcodec_close(dec_ctx);
avformat_close_input(&fmt_ctx);
av_freep(&frame);
if (ret < 0 && ret != AVERROR_EOF) {
char buf[1024];

View File

@@ -173,9 +173,13 @@ int main(int argc, char **argv)
{
int ret;
AVPacket packet;
AVFrame frame;
AVFrame *frame = avcodec_alloc_frame();
int got_frame;
if (!frame) {
perror("Could not allocate frame");
exit(1);
}
if (argc != 2) {
fprintf(stderr, "Usage: %s file\n", argv[0]);
exit(1);
@@ -197,19 +201,19 @@ int main(int argc, char **argv)
break;
if (packet.stream_index == video_stream_index) {
avcodec_get_frame_defaults(&frame);
avcodec_get_frame_defaults(frame);
got_frame = 0;
ret = avcodec_decode_video2(dec_ctx, &frame, &got_frame, &packet);
ret = avcodec_decode_video2(dec_ctx, frame, &got_frame, &packet);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Error decoding video\n");
break;
}
if (got_frame) {
frame.pts = av_frame_get_best_effort_timestamp(&frame);
frame->pts = av_frame_get_best_effort_timestamp(frame);
/* push the decoded frame into the filtergraph */
if (av_buffersrc_add_frame(buffersrc_ctx, &frame, 0) < 0) {
if (av_buffersrc_add_frame(buffersrc_ctx, frame, 0) < 0) {
av_log(NULL, AV_LOG_ERROR, "Error while feeding the filtergraph\n");
break;
}
@@ -236,6 +240,7 @@ end:
if (dec_ctx)
avcodec_close(dec_ctx);
avformat_close_input(&fmt_ctx);
av_freep(&frame);
if (ret < 0 && ret != AVERROR_EOF) {
char buf[1024];

View File

@@ -86,7 +86,6 @@ static AVStream *add_stream(AVFormatContext *oc, AVCodec **codec,
break;
case AVMEDIA_TYPE_VIDEO:
avcodec_get_context_defaults3(c, *codec);
c->codec_id = codec_id;
c->bit_rate = 400000;
@@ -396,7 +395,7 @@ int main(int argc, char **argv)
AVStream *audio_st, *video_st;
AVCodec *audio_codec, *video_codec;
double audio_pts, video_pts;
int ret, i;
int ret;
/* Initialize libavcodec, and register all codecs and formats. */
av_register_all();
@@ -504,18 +503,12 @@ int main(int argc, char **argv)
if (audio_st)
close_audio(oc, audio_st);
/* Free the streams. */
for (i = 0; i < oc->nb_streams; i++) {
av_freep(&oc->streams[i]->codec);
av_freep(&oc->streams[i]);
}
if (!(fmt->flags & AVFMT_NOFILE))
/* Close the output file. */
avio_close(oc->pb);
/* free the stream */
av_free(oc);
avformat_free_context(oc);
return 0;
}

View File

@@ -200,7 +200,7 @@ int main(int argc, char **argv)
fwrite(dst_data[0], 1, dst_bufsize, dst_file);
} while (t < 10);
if ((ret = get_format_from_sample_fmt(&fmt, dst_sample_fmt) < 0))
if ((ret = get_format_from_sample_fmt(&fmt, dst_sample_fmt)) < 0)
goto end;
fprintf(stderr, "Resampling succeeded. Play the output file with the command:\n"
"ffplay -f %s -channel_layout %"PRId64" -channels %d -ar %d %s\n",

View File

@@ -107,7 +107,7 @@ int main(int argc, char **argv)
goto end;
}
/* buffer is going to be written to rawvideo file, no alignmnet */
/* buffer is going to be written to rawvideo file, no alignment */
if ((ret = av_image_alloc(dst_data, dst_linesize,
dst_w, dst_h, dst_pix_fmt, 1)) < 0) {
fprintf(stderr, "Could not allocate destination image\n");

View File

@@ -294,8 +294,12 @@ your format doesn't support file level concatenation.
@subsection Concatenating using the concat @emph{protocol} (file level)
FFmpeg has a @url{http://ffmpeg.org/ffmpeg-protocols.html#concat,
@code{concat}} protocol designed specifically for that, with examples in the
documentation.
A few multimedia containers (MPEG-1, MPEG-2 PS, DV) allow to concatenate
video by merely concatenating the files them.
video by merely concatenating the files containing them.
Hence you may concatenate your multimedia files by first transcoding them to
these privileged formats, then using the humble @code{cat} command (or the

View File

@@ -17,6 +17,7 @@ the libavcodec library.
@c man end DESCRIPTION
@anchor{codec-options}
@chapter Codec Options
@c man begin CODEC OPTIONS
@@ -1098,6 +1099,9 @@ Set sample format audio decoders should prefer. Default value is
@code{none}.
@item pkt_timebase @var{rational number}
@item sub_charenc @var{encoding} (@emph{decoding,subtitles})
Set the input subtitles character encoding.
@end table
@c man end CODEC OPTIONS

View File

@@ -76,8 +76,13 @@ Enable RTP MP4A-LATM payload.
Reduce the latency introduced by optional buffering
@end table
@item seek2any @var{integer} (@emph{input})
Forces seeking to enable seek to any mode if set to 1. Default is 0.
@item analyzeduration @var{integer} (@emph{input})
Specify how many microseconds are analyzed to estimate duration.
Specify how many microseconds are analyzed to probe the input. A
higher value will allow to detect more accurate information, but will
increase latency. It defaults to 5,000,000 microseconds = 5 seconds.
@item cryptokey @var{hexadecimal string} (@emph{input})
Set decryption key.
@@ -140,6 +145,12 @@ Use wallclock as timestamps.
@item avoid_negative_ts @var{integer} (@emph{output})
Shift timestamps to make them positive. 1 enables, 0 disables, default
of -1 enables when required by target format.
@item skip_initial_bytes @var{integer} (@emph{input})
Set number initial bytes to skip. Default is 0.
@item correct_ts_overflow @var{integer} (@emph{input})
Correct single timestamp overflows if set to 1. Default is 1.
@end table
@c man end FORMAT OPTIONS

View File

@@ -43,7 +43,7 @@ value is not mandatory if the corresponding channel layout
@option{out_channel_layout} is set.
@item uch, used_channel_count
Set the number of used channels. Default value is 0. This option is
Set the number of used input channels. Default value is 0. This option is
only used for special remapping.
@item isr, in_sample_rate
@@ -60,6 +60,7 @@ Specify the output sample format. It is set by default to @code{none}.
@item tsf, internal_sample_fmt
Set the internal sample format. Default value is @code{none}.
This will automatically be chosen when it is not explicitly set.
@item icl, in_channel_layout
Set the input channel layout.
@@ -68,15 +69,17 @@ Set the input channel layout.
Set the output channel layout.
@item clev, center_mix_level
Set center mix level. It is a value expressed in deciBel, and must be
inclusively included between -32 and +32.
Set the center mix level. It is a value expressed in deciBel, and must be
in the interval [-32,32].
@item slev, surround_mix_level
Set surround mix level. It is a value expressed in deciBel, and must
be inclusively included between -32 and +32.
Set the surround mix level. It is a value expressed in deciBel, and must
be in the interval [-32,32].
@item lfe_mix_evel
Set LFE mix level.
@item lfe_mix_level
Set LFE mix into non LFE level. It is used when there is a LFE input but no
LFE output. It is a value expressed in deciBel, and must
be in the interval [-32,32].
@item rmvol, rematrix_volume
Set rematrix volume. Default value is 1.0.
@@ -87,7 +90,8 @@ Set flags used by the converter. Default value is 0.
It supports the following individual flags:
@table @option
@item res
force resampling
force resampling, this flag forces resampling to be used even when the
input and output sample rates match.
@end table
@item dither_scale
@@ -104,6 +108,21 @@ select rectangular dither
select triangular dither
@item triangular_hp
select triangular dither with high pass
@item lipshitz
select lipshitz noise shaping dither
@item shibata
select shibata noise shaping dither
@item low_shibata
select low shibata noise shaping dither
@item high_shibata
select high shibata noise shaping dither
@item f_weighted
select f-weighted noise shaping dither
@item modified_e_weighted
select modified-e-weighted noise shaping dither
@item improved_e_weighted
select improved-e-weighted noise shaping dither
@end table
@item resampler
@@ -124,8 +143,8 @@ case.
For swr only, set resampling filter size, default value is 32.
@item phase_shift
For swr only, set resampling phase shift, default value is 10, must be included
between 0 and 30.
For swr only, set resampling phase shift, default value is 10, and must be in
the interval [0,30].
@item linear_interp
Use Linear Interpolation if set to 1, default value is 0.
@@ -153,6 +172,14 @@ may be stretched or squeezed for each second.
Default value is 0, thus no compensation is applied to make the samples match
the audio timestamps.
@item first_pts
For swr only, assume the first pts should be this value. The time unit is 1 / sample rate.
This allows for padding/trimming at the start of stream. By default, no
assumption is made about the first frame's expected pts, so no padding or
trimming is done. For example, this could be set to 0 to pad the beginning with
silence if an audio stream starts after the video stream or to trim any samples
with a negative pts due to encoder delay.
@item min_comp
For swr only, set the minimum difference between timestamps and audio data (in
seconds) to trigger stretching/squeezing/filling or trimming of the
@@ -208,8 +235,8 @@ select Kaiser Windowed Sinc
@end table
@item kaiser_beta
For swr only, set Kaiser Window Beta value. Must be an integer included between
2 and 16, default value is 9.
For swr only, set Kaiser Window Beta value. Must be an integer in the
interval [2,16], default value is 9.
@end table

View File

@@ -256,6 +256,14 @@ libx264, and the 138th audio, which will be encoded with libvorbis.
Stop writing the output after its duration reaches @var{duration}.
@var{duration} may be a number in seconds, or in @code{hh:mm:ss[.xxx]} form.
-to and -t are mutually exclusive and -t has priority.
@item -to @var{position} (@emph{output})
Stop writing the output at @var{position}.
@var{position} may be a number in seconds, or in @code{hh:mm:ss[.xxx]} form.
-to and -t are mutually exclusive and -t has priority.
@item -fs @var{limit_size} (@emph{output})
Set the file size limit, expressed in bytes.
@@ -334,13 +342,21 @@ Stop writing to the stream after @var{framecount} frames.
Use fixed quality scale (VBR). The meaning of @var{q} is
codec-dependent.
@anchor{filter_option}
@item -filter[:@var{stream_specifier}] @var{filter_graph} (@emph{output,per-stream})
@var{filter_graph} is a description of the filter graph to apply to
the stream. Use @code{-filters} to show all the available filters
(including also sources and sinks).
Create the filter graph specified by @var{filter_graph} and use it to
filter the stream.
@var{filter_graph} is a description of the filter graph to apply to
the stream, and must have a single input and a single output of the
same type of the stream. In the filter graph, the input is associated
to the label @code{in}, and the output to the label @code{out}. See
the ffmpeg-filters manual for more information about the filtergraph
syntax.
See the @ref{filter_complex_option,,-filter_complex option} if you
want to create filter graphs with multiple inputs and/or outputs.
See also the @option{-filter_complex} option if you want to create filter graphs
with multiple inputs and/or outputs.
@item -pre[:@var{stream_specifier}] @var{preset_name} (@emph{output,per-stream})
Specify the preset for matching stream(s).
@@ -395,11 +411,11 @@ will be used.
E.g. to extract the first attachment to a file named 'out.ttf':
@example
ffmpeg -dump_attachment:t:0 out.ttf INPUT
ffmpeg -dump_attachment:t:0 out.ttf -i INPUT
@end example
To extract all attachments to files determined by the @code{filename} tag:
@example
ffmpeg -dump_attachment:t "" INPUT
ffmpeg -dump_attachment:t "" -i INPUT
@end example
Technical note -- attachments are implemented as codec extradata, so this
@@ -443,21 +459,6 @@ form @var{num}:@var{den}, where @var{num} and @var{den} are the
numerator and denominator of the aspect ratio. For example "4:3",
"16:9", "1.3333", and "1.7777" are valid argument values.
@item -croptop @var{size}
@item -cropbottom @var{size}
@item -cropleft @var{size}
@item -cropright @var{size}
All the crop options have been removed. Use -vf
crop=width:height:x:y instead.
@item -padtop @var{size}
@item -padbottom @var{size}
@item -padleft @var{size}
@item -padright @var{size}
@item -padcolor @var{hex_color}
All the pad options have been removed. Use -vf
pad=width:height:x:y:color instead.
@item -vn (@emph{output})
Disable video recording.
@@ -487,11 +488,10 @@ stream
Set the ISO 639 language code (3 letters) of the current video stream.
@item -vf @var{filter_graph} (@emph{output})
@var{filter_graph} is a description of the filter graph to apply to
the input video.
Use the option "-filters" to show all the available filters (including
also sources and sinks). This is an alias for @code{-filter:v}.
Create the filter graph specified by @var{filter_graph} and use it to
filter the stream.
This is an alias for @code{-filter:v}, see the @ref{filter_option,,-filter option}.
@end table
@section Advanced Video Options
@@ -545,12 +545,58 @@ Force video tag/fourcc. This is an alias for @code{-tag:v}.
Show QP histogram
@item -vbsf @var{bitstream_filter}
Deprecated see -bsf
@item -force_key_frames[:@var{stream_specifier}] @var{time}[,@var{time}...] (@emph{output,per-stream})
@item -force_key_frames[:@var{stream_specifier}] expr:@var{expr} (@emph{output,per-stream})
Force key frames at the specified timestamps, more precisely at the first
frames after each specified time.
If the argument is prefixed with @code{expr:}, the string @var{expr}
is interpreted like an expression and is evaluated for each frame. A
key frame is forced in case the evaluation is non-zero.
If one of the times is "@code{chapters}[@var{delta}]", it is expanded into
the time of the beginning of all chapters in the file, shifted by
@var{delta}, expressed as a time in seconds.
This option can be useful to ensure that a seek point is present at a
chapter mark or any other designated place in the output file.
The timestamps must be specified in ascending order.
For example, to insert a key frame at 5 minutes, plus key frames 0.1 second
before the beginning of every chapter:
@example
-force_key_frames 0:05:00,chapters-0.1
@end example
The expression in @var{expr} can contain the following constants:
@table @option
@item n
the number of current processed frame, starting from 0
@item n_forced
the number of forced frames
@item prev_forced_n
the number of the previous forced frame, it is @code{NAN} when no
keyframe was forced yet
@item prev_forced_t
the time of the previous forced frame, it is @code{NAN} when no
keyframe was forced yet
@item t
the time of the current processed frame
@end table
For example to force a key frame every 5 seconds, you can specify:
@example
-force_key_frames expr:gte(t,n_forced*5)
@end example
To force a key frame 5 seconds after the time of the last forced one,
starting from second 13:
@example
-force_key_frames expr:if(isnan(prev_forced_t),gte(t,13),gte(t,prev_forced_t+5))
@end example
Note that forcing too many keyframes is very harmful for the lookahead
algorithms of certain encoders: using fixed-GOP options or similar
would be more efficient.
@item -copyinkf[:@var{stream_specifier}] (@emph{output,per-stream})
When doing stream copy, copy also non-key frames found at the
@@ -581,11 +627,12 @@ Set the audio codec. This is an alias for @code{-codec:a}.
@item -sample_fmt[:@var{stream_specifier}] @var{sample_fmt} (@emph{output,per-stream})
Set the audio sample format. Use @code{-sample_fmts} to get a list
of supported sample formats.
@item -af @var{filter_graph} (@emph{output})
@var{filter_graph} is a description of the filter graph to apply to
the input audio.
Use the option "-filters" to show all the available filters (including
also sources and sinks). This is an alias for @code{-filter:a}.
Create the filter graph specified by @var{filter_graph} and use it to
filter the stream.
This is an alias for @code{-filter:a}, see the @ref{filter_option,,-filter option}.
@end table
@section Advanced Audio options:
@@ -595,6 +642,12 @@ also sources and sinks). This is an alias for @code{-filter:a}.
Force audio tag/fourcc. This is an alias for @code{-tag:a}.
@item -absf @var{bitstream_filter}
Deprecated, see -bsf
@item -guess_layout_max @var{channels} (@emph{input,per-stream})
If some input channel layout is not known, try to guess only if it
corresponds to at most the specified number of channels. For example, 2
tells to @command{ffmpeg} to recognize 1 channel as mono and 2 channels as
stereo but not 6 channels as 5.1. The default is to always try to guess. Use
0 to disable all guessing.
@end table
@section Subtitle options:
@@ -928,6 +981,7 @@ Specify Timecode for writing. @var{SEP} is ':' for non drop timecode and ';'
ffmpeg -i input.mpg -timecode 01:02:03.04 -r 30000/1001 -s ntsc output.mpg
@end example
@anchor{filter_complex_option}
@item -filter_complex @var{filtergraph} (@emph{global})
Define a complex filter graph, i.e. one with arbitrary number of inputs and/or
outputs. For simple graphs -- those with one input and one output of the same
@@ -972,13 +1026,13 @@ ffmpeg -i video.mkv -i image.png -filter_complex 'overlay' out.mkv
To generate 5 seconds of pure red video using lavfi @code{color} source:
@example
ffmpeg -filter_complex 'color=red' -t 5 out.mkv
ffmpeg -filter_complex 'color=c=red' -t 5 out.mkv
@end example
@end table
As a special exception, you can use a bitmap subtitle stream as input: it
will be converted into a video with the same size as the largest video in
the file, or 720×576 if no video is present. Note that this is an
the file, or 720x576 if no video is present. Note that this is an
experimental and temporary solution. It will be removed once libavfilter has
proper support for subtitles.
@@ -1284,7 +1338,7 @@ ffmpeg -i src.ext -lmax 21*QP2LAMBDA dst.ext
@url{ffmpeg-scaler.html,ffmpeg-scaler},
@url{ffmpeg-resampler.html,ffmpeg-resampler},
@url{ffmpeg-codecs.html,ffmpeg-codecs},
@url{ffmpeg-bitstream-filters,ffmpeg-bitstream-filters},
@url{ffmpeg-bitstream-filters.html,ffmpeg-bitstream-filters},
@url{ffmpeg-formats.html,ffmpeg-formats},
@url{ffmpeg-devices.html,ffmpeg-devices},
@url{ffmpeg-protocols.html,ffmpeg-protocols},

View File

@@ -74,10 +74,15 @@ You can interactively cycle through the available show modes by
pressing the key @key{w}.
@item -vf @var{filter_graph}
Create the filter graph specified by @var{filter_graph} and use it to
filter the video stream.
@var{filter_graph} is a description of the filter graph to apply to
the input video.
Use the option "-filters" to show all the available filters (including
also sources and sinks).
the stream, and must have a single video input and a single video
output. In the filter graph, the input is associated to the label
@code{in}, and the output to the label @code{out}. See the
ffmpeg-filters manual for more information about the filtergraph
syntax.
@item -i @var{input_file}
Read @var{input_file}.
@@ -194,7 +199,7 @@ Seek to percentage in file corresponding to fraction of width.
@url{ffmpeg-scaler.html,ffmpeg-scaler},
@url{ffmpeg-resampler.html,ffmpeg-resampler},
@url{ffmpeg-codecs.html,ffmpeg-codecs},
@url{ffmpeg-bitstream-filters,ffmpeg-bitstream-filters},
@url{ffmpeg-bitstream-filters.html,ffmpeg-bitstream-filters},
@url{ffmpeg-formats.html,ffmpeg-formats},
@url{ffmpeg-devices.html,ffmpeg-devices},
@url{ffmpeg-protocols.html,ffmpeg-protocols},

View File

@@ -495,7 +495,7 @@ DV, GXF and AVI timecodes are available in format metadata
@url{ffmpeg-scaler.html,ffmpeg-scaler},
@url{ffmpeg-resampler.html,ffmpeg-resampler},
@url{ffmpeg-codecs.html,ffmpeg-codecs},
@url{ffmpeg-bitstream-filters,ffmpeg-bitstream-filters},
@url{ffmpeg-bitstream-filters.html,ffmpeg-bitstream-filters},
@url{ffmpeg-formats.html,ffmpeg-formats},
@url{ffmpeg-devices.html,ffmpeg-devices},
@url{ffmpeg-protocols.html,ffmpeg-protocols},

View File

@@ -16,34 +16,28 @@ ffserver [@var{options}]
@chapter Description
@c man begin DESCRIPTION
ffserver is a streaming server for both audio and video. It supports
@command{ffserver} is a streaming server for both audio and video. It
supports several live feeds, streaming from files and time shifting on
live feeds (you can seek to positions in the past on each live feed,
provided you specify a big enough feed storage in
@file{ffserver.conf}).
several live feeds, streaming from files and time shifting on live feeds
(you can seek to positions in the past on each live feed, provided you
specify a big enough feed storage in ffserver.conf).
@command{ffserver} receives prerecorded files or FFM streams from some
@command{ffmpeg} instance as input, then streams them over
RTP/RTSP/HTTP.
This documentation covers only the streaming aspects of ffserver /
ffmpeg. All questions about parameters for ffmpeg, codec questions,
etc. are not covered here. Read @file{ffmpeg.html} for more
information.
An @command{ffserver} instance will listen on some port as specified
in the configuration file. You can launch one or more instances of
@command{ffmpeg} and send one or more FFM streams to the port where
ffserver is expecting to receive them. Alternately, you can make
@command{ffserver} launch such @command{ffmpeg} instances at startup.
@section How does it work?
ffserver receives prerecorded files or FFM streams from some ffmpeg
instance as input, then streams them over RTP/RTSP/HTTP.
An ffserver instance will listen on some port as specified in the
configuration file. You can launch one or more instances of ffmpeg and
send one or more FFM streams to the port where ffserver is expecting
to receive them. Alternately, you can make ffserver launch such ffmpeg
instances at startup.
Input streams are called feeds, and each one is specified by a <Feed>
section in the configuration file.
Input streams are called feeds, and each one is specified by a
@code{<Feed>} section in the configuration file.
For each feed you can have different output streams in various
formats, each one specified by a <Stream> section in the configuration
file.
formats, each one specified by a @code{<Stream>} section in the
configuration file.
@section Status stream
@@ -79,14 +73,6 @@ web server can be used to serve up the files just as well.
It can stream prerecorded video from .ffm files, though it is somewhat tricky
to make it work correctly.
@section What do I need?
I use Linux on a 900 MHz Duron with a cheap Bt848 based TV capture card. I'm
using stock Linux 2.4.17 with the stock drivers. [Actually that isn't true,
I needed some special drivers for my motherboard-based sound card.]
I understand that FreeBSD systems work just fine as well.
@section How do I make it work?
First, build the kit. It *really* helps to have installed LAME first. Then when
@@ -235,7 +221,7 @@ of an infinite movie or a whole movie.
FFM is version specific, and there is limited compatibility of FFM files
generated by one version of ffmpeg/ffserver and another version of
ffmpeg/ffserver. It may work but its not guaranteed to work.
ffmpeg/ffserver. It may work but it is not guaranteed to work.
FFM2 is extensible while maintaining compatibility and should work between
differing versions of tools. FFM2 is the default.
@@ -269,7 +255,7 @@ The @file{doc/ffserver.conf} example,
@url{ffmpeg-scaler.html,ffmpeg-scaler},
@url{ffmpeg-resampler.html,ffmpeg-resampler},
@url{ffmpeg-codecs.html,ffmpeg-codecs},
@url{ffmpeg-bitstream-filters,ffmpeg-bitstream-filters},
@url{ffmpeg-bitstream-filters.html,ffmpeg-bitstream-filters},
@url{ffmpeg-formats.html,ffmpeg-formats},
@url{ffmpeg-devices.html,ffmpeg-devices},
@url{ffmpeg-protocols.html,ffmpeg-protocols},

View File

@@ -15,13 +15,13 @@ Format negotiation
the list of supported formats.
For video links, that means pixel format. For audio links, that means
channel layout, and sample format (the sample packing is implied by the
sample format).
channel layout, sample format (the sample packing is implied by the sample
format) and sample rate.
The lists are not just lists, they are references to shared objects. When
the negotiation mechanism computes the intersection of the formats
supported at each ends of a link, all references to both lists are
replaced with a reference to the intersection. And when a single format is
supported at each end of a link, all references to both lists are replaced
with a reference to the intersection. And when a single format is
eventually chosen for a link amongst the remaining list, again, all
references to the list are updated.
@@ -68,15 +68,15 @@ Buffer references ownership and permissions
Here are the (fairly obvious) rules for reference ownership:
* A reference received by the start_frame or filter_frame method
belong to the corresponding filter.
* A reference received by the filter_frame method (or its start_frame
deprecated version) belongs to the corresponding filter.
Special exception: for video references: the reference may be used
internally for automatic copying and must not be destroyed before
end_frame; it can be given away to ff_start_frame.
* A reference passed to ff_start_frame or ff_filter_frame is given
away and must no longer be used.
* A reference passed to ff_filter_frame (or the deprecated
ff_start_frame) is given away and must no longer be used.
* A reference created with avfilter_ref_buffer belongs to the code that
created it.
@@ -90,27 +90,11 @@ Buffer references ownership and permissions
Link reference fields
---------------------
The AVFilterLink structure has a few AVFilterBufferRef fields. Here are
the rules to handle them:
* cur_buf is set before the start_frame and filter_frame methods to
the same reference given as argument to the methods and belongs to the
destination filter of the link. If it has not been cleared after
end_frame or filter_frame, libavfilter will automatically destroy
the reference; therefore, any filter that needs to keep the reference
for longer must set cur_buf to NULL.
* out_buf belongs to the source filter of the link and can be used to
store a reference to the buffer that has been sent to the destination.
If it is not NULL after end_frame or filter_frame, libavfilter will
automatically destroy the reference.
If a video input pad does not have a start_frame method, the default
method will request a buffer on the first output of the filter, store
the reference in out_buf and push a second reference to the output.
* src_buf, cur_buf_copy and partial_buf are used by libavfilter
internally and must not be accessed by filters.
The AVFilterLink structure has a few AVFilterBufferRef fields. The
cur_buf and out_buf were used with the deprecated
start_frame/draw_slice/end_frame API and should no longer be used.
src_buf, cur_buf_copy and partial_buf are used by libavfilter internally
and must not be accessed by filters.
Reference permissions
---------------------
@@ -119,8 +103,10 @@ Buffer references ownership and permissions
the code that owns the reference is allowed to do to the buffer data.
Different references for the same buffer can have different permissions.
For video filters, the permissions only apply to the parts of the buffer
that have already been covered by the draw_slice method.
For video filters that implement the deprecated
start_frame/draw_slice/end_frame API, the permissions only apply to the
parts of the buffer that have already been covered by the draw_slice
method.
The value is a binary OR of the following constants:
@@ -179,9 +165,9 @@ Buffer references ownership and permissions
with the WRITE permission.
* Filters that intend to keep a reference after the filtering process
is finished (after end_frame or filter_frame returns) must have the
PRESERVE permission on it and remove the WRITE permission if they
create a new reference to give it away.
is finished (after filter_frame returns) must have the PRESERVE
permission on it and remove the WRITE permission if they create a new
reference to give it away.
* Filters that intend to modify a reference they have kept after the end
of the filtering process need the REUSE2 permission and must remove
@@ -198,11 +184,11 @@ Frame scheduling
Simple filters that output one frame for each input frame should not have
to worry about it.
start_frame / filter_frame
----------------------------
filter_frame
------------
These methods are called when a frame is pushed to the filter's input.
They can be called at any time except in a reentrant way.
This method is called when a frame is pushed to the filter's input. It
can be called at any time except in a reentrant way.
If the input frame is enough to produce output, then the filter should
push the output frames on the output link immediately.
@@ -213,7 +199,7 @@ Frame scheduling
filter; these buffered frames must be flushed immediately if a new input
produces new output.
(Example: framerate-doubling filter: start_frame must (1) flush the
(Example: framerate-doubling filter: filter_frame must (1) flush the
second copy of the previous frame, if it is still there, (2) push the
first copy of the incoming frame, (3) keep the second copy for later.)
@@ -233,8 +219,8 @@ Frame scheduling
This method is called when a frame is wanted on an output.
For an input, it should directly call start_frame or filter_frame on
the corresponding output.
For an input, it should directly call filter_frame on the corresponding
output.
For a filter, if there are queued frames already ready, one of these
frames should be pushed. If not, the filter should request a frame on
@@ -255,7 +241,7 @@ Frame scheduling
}
while (!frame_pushed) {
input = input_where_a_frame_is_most_needed();
ret = avfilter_request_frame(input);
ret = ff_request_frame(input);
if (ret == AVERROR_EOF) {
process_eof_on_input();
} else if (ret < 0) {
@@ -266,4 +252,14 @@ Frame scheduling
Note that, except for filters that can have queued frames, request_frame
does not push frames: it requests them to its input, and as a reaction,
the start_frame / filter_frame method will be called and do the work.
the filter_frame method will be called and do the work.
Legacy API
==========
Until libavfilter 3.23, the filter_frame method was split:
- for video filters, it was made of start_frame, draw_slice (that could be
called several times on distinct parts of the frame) and end_frame;
- for audio filters, it was called filter_samples.

File diff suppressed because it is too large Load Diff

View File

@@ -24,7 +24,7 @@ instructions. To enable using OpenJPEG in FFmpeg, pass @code{--enable-libopenjp
@file{./configure}.
@section OpenCORE and VisualOn libraries
@section OpenCORE, VisualOn, and Fraunhofer libraries
Spun off Google Android sources, OpenCore, VisualOn and Fraunhofer
libraries provide encoders for a number of audio codecs.
@@ -32,9 +32,14 @@ libraries provide encoders for a number of audio codecs.
@float NOTE
OpenCORE and VisualOn libraries are under the Apache License 2.0
(see @url{http://www.apache.org/licenses/LICENSE-2.0} for details), which is
incompatible with the LGPL version 2.1 and GPL version 2. You have to
incompatible to the LGPL version 2.1 and GPL version 2. You have to
upgrade FFmpeg's license to LGPL version 3 (or if you have enabled
GPL components, GPL version 3) to use it.
GPL components, GPL version 3) by passing @code{--enable-version3} to configure in
order to use it.
The Fraunhofer AAC library is licensed under a license incompatible to the GPL
and is not known to be compatible to the LGPL. Therefore, you have to pass
@code{--enable-nonfree} to configure to use it.
@end float
@subsection OpenCORE AMR
@@ -814,6 +819,7 @@ following image formats are supported:
@item DSP Group TrueSpeech @tab @tab X
@item DV audio @tab @tab X
@item Enhanced AC-3 @tab X @tab X
@item EVRC (Enhanced Variable Rate Codec) @tab @tab X
@item FLAC (Free Lossless Audio Codec) @tab X @tab IX
@item G.723.1 @tab X @tab X
@item G.729 @tab @tab X

View File

@@ -583,10 +583,16 @@ command:
ffmpeg -f sndio -i /dev/audio0 /tmp/oss.wav
@end example
@section video4linux2
@section video4linux2, v4l2
Video4Linux2 input video device.
"v4l2" can be used as alias for "video4linux2".
If FFmpeg is built with v4l-utils support (by using the
@code{--enable-libv4l2} configure option), the device will always rely
on libv4l2.
The name of the device to grab is a file device node, usually Linux
systems tend to automatically create such nodes when the device
(e.g. an USB webcam) is plugged into the system, and has a name of the
@@ -596,8 +602,8 @@ the device.
Video4Linux2 devices usually support a limited set of
@var{width}x@var{height} sizes and framerates. You can check which are
supported using @command{-list_formats all} for Video4Linux2 devices.
Some usage examples of the video4linux2 devices with ffmpeg and ffplay:
Some devices, like TV cards, support one or more standards. It is possible
to list all the supported standards using @command{-list_standards all}.
The time base for the timestamps is 1 microsecond. Depending on the kernel
version and configuration, the timestamps may be derived from the real time
@@ -606,19 +612,93 @@ boot time, unaffected by NTP or manual changes to the clock). The
@option{-timestamps abs} or @option{-ts abs} option can be used to force
conversion into the real time clock.
Note that if FFmpeg is build with v4l-utils support ("--enable-libv4l2"
option), it will always be used.
Some usage examples of the video4linux2 device with @command{ffmpeg}
and @command{ffplay}:
@itemize
@item
Grab and show the input of a video4linux2 device:
@example
# Grab and show the input of a video4linux2 device.
ffplay -f video4linux2 -framerate 30 -video_size hd720 /dev/video0
# Grab and record the input of a video4linux2 device, leave the
framerate and size as previously set.
ffmpeg -f video4linux2 -input_format mjpeg -i /dev/video0 out.mpeg
@end example
"v4l" and "v4l2" can be used as aliases for the respective "video4linux" and
"video4linux2".
@item
Grab and record the input of a video4linux2 device, leave the
framerate and size as previously set:
@example
ffmpeg -f video4linux2 -input_format mjpeg -i /dev/video0 out.mpeg
@end example
@end itemize
For more information about Video4Linux, check @url{http://linuxtv.org/}.
@subsection Options
@table @option
@item standard
Set the standard. Must be the name of a supported standard. To get a
list of the supported standards, use the @option{list_standards}
option.
@item channel
Set the input channel number. Default to 0.
@item video_size
Set the video frame size. The argument must be a string in the form
@var{WIDTH}x@var{HEIGHT} or a valid size abbreviation.
@item pixel_format
Select the pixel format (only valid for raw video input).
@item input_format
Set the preferred pixel format (for raw video) or a codec name.
This option allows to select the input format, when several are
available.
@item framerate
Set the preferred video framerate.
@item list_formats
List available formats (supported pixel formats, codecs, and frame
sizes) and exit.
Available values are:
@table @samp
@item all
Show all available (compressed and non-compressed) formats.
@item raw
Show only raw video (non-compressed) formats.
@item compressed
Show only compressed formats.
@end table
@item list_standards
List supported standards and exit.
Available values are:
@table @samp
@item all
Show all supported standards.
@end table
@item timestamps, ts
Set type of timestamps for grabbed frames.
Available values are:
@table @samp
@item default
Use timestamps from the kernel.
@item abs
Use absolute timestamps (wall clock).
@item mono2abs
Force conversion from monotonic to absolute timestamps.
@end table
Default value is @code{default}.
@end table
@section vfwcap

View File

@@ -24,7 +24,7 @@ a mail for every change to every issue.
The subscription URL for the ffmpeg-trac list is:
http(s)://ffmpeg.org/mailman/listinfo/ffmpeg-trac
The URL of the webinterface of the tracker is:
http(s)://ffmpeg.org/trac/ffmpeg
http(s)://trac.ffmpeg.org
Type:
-----

View File

@@ -18,6 +18,23 @@ enabled muxers.
A description of some of the currently available muxers follows.
@anchor{aiff}
@section aiff
Audio Interchange File Format muxer.
It accepts the following options:
@table @option
@item write_id3v2
Enable ID3v2 tags writing when set to 1. Default is 0 (disabled).
@item id3v2_version
Select ID3v2 version to write. Currently only version 3 and 4 (aka.
ID3v2.3 and ID3v2.4) are supported. The default is version 4.
@end table
@anchor{crc}
@section crc
@@ -241,8 +258,13 @@ ffmpeg -i in.avi -f image2 -frames:v 1 img.jpeg
@end example
@table @option
@item -start_number @var{number}
Start the sequence from @var{number}.
@item start_number @var{number}
Start the sequence from @var{number}. Default value is 1. Must be a
positive number.
@item updatefirst 1|0
If set to 1, update the first written image file again and
again. Default value is 0.
@end table
The image muxer supports the .Y.U.V image file format. This format is
@@ -346,6 +368,8 @@ This option is implicitly set when writing ismv (Smooth Streaming) files.
Run a second pass moving the moov atom on top of the file. This
operation can take a while, and will not work in various situations such
as fragmented output, thus it is not enabled by default.
@item -movflags rtphint
Add RTP hinting tracks to the output file.
@end table
Smooth Streaming content can be pushed in real time to a publishing
@@ -521,9 +545,11 @@ reference stream. The default value is ``auto''.
@item segment_format @var{format}
Override the inner container format, by default it is guessed by the filename
extension.
@item segment_list @var{name}
Generate also a listfile named @var{name}. If not specified no
listfile is generated.
@item segment_list_flags @var{flags}
Set flags affecting the segment list generation.
@@ -534,17 +560,15 @@ Allow caching (only affects M3U8 list files).
@item live
Allow live-friendly file generation.
This currently only affects M3U8 lists. In particular, write a fake
EXT-X-TARGETDURATION duration field at the top of the file, based on
the specified @var{segment_time}.
@end table
Default value is @code{cache}.
@item segment_list_size @var{size}
Overwrite the listfile once it reaches @var{size} entries. If 0
the listfile is never overwritten. Default value is 0.
Update the list file so that it contains at most the last @var{size}
segments. If 0 the list file will contain all the segments. Default
value is 0.
@item segment_list type @var{type}
Specify the format for the segment list file.
@@ -572,19 +596,34 @@ auto-select this format.
@code{ext} is deprecated in favor or @code{csv}.
@item ffconcat
Generate an ffconcat file for the created segments. The resulting file
can be read using the FFmpeg @ref{concat} demuxer.
A list file with the suffix @code{".ffcat"} or @code{".ffconcat"} will
auto-select this format.
@item m3u8
Generate an extended M3U8 file, version 4, compliant with
@url{http://tools.ietf.org/id/draft-pantos-http-live-streaming-08.txt}.
Generate an extended M3U8 file, version 3, compliant with
@url{http://tools.ietf.org/id/draft-pantos-http-live-streaming}.
A list file with the suffix @code{".m3u8"} will auto-select this format.
@end table
If not specified the type is guessed from the list file name suffix.
@item segment_time @var{time}
Set segment duration to @var{time}. Default value is "2".
Set segment duration to @var{time}, the value must be a duration
specification. Default value is "2". See also the
@option{segment_times} option.
Note that splitting may not be accurate, unless you force the
reference stream key-frames at the given time. See the introductory
notice and the examples below.
@item segment_time_delta @var{delta}
Specify the accuracy time when selecting the start time for a
segment. Default value is "0".
segment, expressed as a duration specification. Default value is "0".
When delta is specified a key-frame will start a new segment if its
PTS satisfies the relation:
@@ -606,7 +645,8 @@ the specified time and the time set by @var{force_key_frames}.
@item segment_times @var{times}
Specify a list of split points. @var{times} contains a list of comma
separated duration specifications, in increasing order.
separated duration specifications, in increasing order. See also
the @option{segment_time} option.
@item segment_frames @var{frames}
Specify a list of split video frame numbers. @var{frames} contains a
@@ -629,7 +669,7 @@ of the generated segments. May not work with some combinations of
muxers/codecs. It is set to @code{0} by default.
@end table
@section Examples
@subsection Examples
@itemize
@item
@@ -711,10 +751,61 @@ Write an mp3 with an ID3v2.3 header and an ID3v1 footer:
ffmpeg -i INPUT -id3v2_version 3 -write_id3v1 1 out.mp3
@end example
Attach a picture to an mp3:
To attach a picture to an mp3 file select both the audio and the picture stream
with @code{map}:
@example
ffmpeg -i input.mp3 -i cover.png -c copy -metadata:s:v title="Album cover"
-metadata:s:v comment="Cover (Front)" out.mp3
ffmpeg -i input.mp3 -i cover.png -c copy -map 0 -map 1
-metadata:s:v title="Album cover" -metadata:s:v comment="Cover (Front)" out.mp3
@end example
@section ogg
Ogg container muxer.
@table @option
@item -page_duration @var{duration}
Preferred page duration, in microseconds. The muxer will attempt to create
pages that are approximately @var{duration} microseconds long. This allows the
user to compromise between seek granularity and container overhead. The default
is 1 second. A value of 0 will fill all segments, making pages as large as
possible. A value of 1 will effectively use 1 packet-per-page in most
situations, giving a small seek granularity at the cost of additional container
overhead.
@end table
@section tee
The tee muxer can be used to write the same data to several files or any
other kind of muxer. It can be used, for example, to both stream a video to
the network and save it to disk at the same time.
It is different from specifying several outputs to the @command{ffmpeg}
command-line tool because the audio and video data will be encoded only once
with the tee muxer; encoding can be a very expensive process. It is not
useful when using the libavformat API directly because it is then possible
to feed the same packets to several muxers directly.
The slave outputs are specified in the file name given to the muxer,
separated by '|'. If any of the slave name contains the '|' separator,
leading or trailing spaces or any special character, it must be
escaped (see the ``Quoting and escaping'' section in the ffmpeg-utils
manual).
Options can be specified for each slave by prepending them as a list of
@var{key}=@var{value} pairs separated by ':', between square brackets. If
the options values contain a special character or the ':' separator, they
must be escaped; note that this is a second level escaping.
Example: encode something and both archive it in a WebM file and stream it
as MPEG-TS over UDP (the streams need to be explicitly mapped):
@example
ffmpeg -i ... -c:v libx264 -c:a mp2 -f tee -map 0:v -map 0:a
"archive-20121107.mkv|[f=mpegts]udp://10.0.1.255:1234/"
@end example
Note: some codecs may need different options depending on the output format;
the auto-detection of this can not work with the tee muxer. The main example
is the @option{global_header} flag.
@c man end MUXERS

View File

@@ -148,7 +148,7 @@ Alignment:
Some instructions on some architectures have strict alignment restrictions,
for example most SSE/SSE2 instructions on x86.
The minimum guaranteed alignment is written in the .h files, for example:
void (*put_pixels_clamped)(const DCTELEM *block/*align 16*/, UINT8 *pixels/*align 8*/, int line_size);
void (*put_pixels_clamped)(const int16_t *block/*align 16*/, UINT8 *pixels/*align 8*/, int line_size);
General Tips:

View File

@@ -114,7 +114,7 @@ wrapper.
You will need the following prerequisites:
@itemize
@item @uref{https://github.com/libav/c99-to-c89/, C99-to-C89 Converter & Wrapper}
@item @uref{http://download.videolan.org/pub/contrib/c99-to-c89/, C99-to-C89 Converter & Wrapper}
@item @uref{http://code.google.com/p/msinttypes/, msinttypes}
@item @uref{http://www.mingw.org/, MSYS}
@item @uref{http://yasm.tortall.net/, YASM}

View File

@@ -128,6 +128,63 @@ m3u8 files.
HTTP (Hyper Text Transfer Protocol).
This protocol accepts the following options.
@table @option
@item seekable
Control seekability of connection. If set to 1 the resource is
supposed to be seekable, if set to 0 it is assumed not to be seekable,
if set to -1 it will try to autodetect if it is seekable. Default
value is -1.
@item chunked_post
If set to 1 use chunked transfer-encoding for posts, default is 1.
@item headers
Set custom HTTP headers, can override built in default headers. The
value must be a string encoding the headers.
@item content_type
Force a content type.
@item user-agent
Override User-Agent header. If not specified the protocol will use a
string describing the libavformat build.
@item multiple_requests
Use persistent connections if set to 1. By default it is 0.
@item post_data
Set custom HTTP post data.
@item timeout
Set timeout of socket I/O operations used by the underlying low level
operation. By default it is set to -1, which means that the timeout is
not specified.
@item mime_type
Set MIME type.
@item cookies
Set the cookies to be sent in future requests. The format of each cookie is the
same as the value of a Set-Cookie HTTP response field. Multiple cookies can be
delimited by a newline character.
@end table
@subsection HTTP Cookies
Some HTTP requests will be denied unless cookie values are passed in with the
request. The @option{cookies} option allows these cookies to be specified. At
the very least, each cookie must specify a value along with a path and domain.
HTTP requests that match both the domain and path will automatically include the
cookie value in the HTTP Cookie header field. Multiple cookies can be delimited
by a newline.
The required syntax to play a stream specifying a cookie is:
@example
ffplay -cookies "nlqptid=nltid=tsn; path=/; domain=somedomain.com;" http://somedomain.com/somestream.m3u8
@end example
@section mmst
MMS (Microsoft Media Server) protocol over TCP.

View File

@@ -32,9 +32,9 @@ Special Converter v
Output
Planar/Packed conversion is done when needed during sample format conversion.
Every step can be skipped without memcpy when its not needed.
Every step can be skipped without memcpy when it is not needed.
Either Resampling and Rematrixing can be performed first depending on which
way its faster.
way it is faster.
The Buffers are needed for resampling due to resamplng being a process that
requires future and past data, it thus also introduces inevitably a delay when
used.

View File

@@ -98,7 +98,7 @@ year-month-day.
The accepted syntax is:
@example
[-]HH:MM:SS[.m...]
[-][HH:]MM:SS[.m...]
[-]S+[.m...]
@end example
@@ -112,6 +112,22 @@ Specify the size of the sourced video, it may be a string of the form
The following abbreviations are recognized:
@table @samp
@item ntsc
720x480
@item pal
720x576
@item qntsc
352x240
@item qpal
352x288
@item sntsc
640x480
@item spal
768x576
@item film
352x240
@item ntsc-film
352x240
@item sqcif
128x96
@item qcif
@@ -170,6 +186,18 @@ The following abbreviations are recognized:
1280x720
@item hd1080
1920x1080
@item 2k
2048x1080
@item 2kflat
1998x1080
@item 2kscope
2048x858
@item 4k
4096x2160
@item 4kflat
3996x2160
@item 4kscope
4096x1716
@end table
@anchor{video rate syntax}
@@ -187,17 +215,17 @@ The following abbreviations are recognized:
@item pal
25/1
@item qntsc
30000/1
30000/1001
@item qpal
25/1
@item sntsc
30000/1
30000/1001
@item spal
25/1
@item film
24/1
@item ntsc-film
24000/1
24000/1001
@end table
@anchor{ratio syntax}

View File

@@ -68,7 +68,7 @@ $print_page_head = \&FFmpeg_print_page_head;
sub FFmpeg_print_page_head($$)
{
my $fh = shift;
my $longtitle = "$Texi2HTML::THISDOC{'title_no_texi'}";
my $longtitle = "$Texi2HTML::THISDOC{'fulltitle_no_texi'}";
$longtitle .= ": $Texi2HTML::NO_TEXI{'This'}" if exists $Texi2HTML::NO_TEXI{'This'};
my $description = $DOCUMENT_DESCRIPTION;
$description = $longtitle if (!defined($description));

View File

@@ -169,7 +169,7 @@ INF: while(<$inf>) {
} elsif ($ended =~ /^(?:example|smallexample|display)$/) {
$shift = "";
$_ = ""; # need a paragraph break
} elsif ($ended =~ /^(?:itemize|enumerate|[fv]?table)$/) {
} elsif ($ended =~ /^(?:itemize|enumerate|(?:multi|[fv])?table)$/) {
$_ = "\n=back\n";
$ic = pop @icstack;
} else {
@@ -269,7 +269,7 @@ INF: while(<$inf>) {
$endw = "enumerate";
};
/^\@([fv]?table)\s+(\@[a-z]+)/ and do {
/^\@((?:multi|[fv])?table)\s+(\@[a-z]+)/ and do {
push @endwstack, $endw;
push @icstack, $ic;
$endw = $1;
@@ -278,6 +278,7 @@ INF: while(<$inf>) {
$ic =~ s/\@(?:code|kbd)/C/;
$ic =~ s/\@(?:dfn|var|emph|cite|i)/I/;
$ic =~ s/\@(?:file)/F/;
$ic =~ s/\@(?:columnfractions)//;
$_ = "\n=over 4\n";
};
@@ -288,6 +289,21 @@ INF: while(<$inf>) {
$_ = ""; # need a paragraph break
};
/^\@item\s+(.*\S)\s*$/ and $endw eq "multitable" and do {
my $columns = $1;
$columns =~ s/\@tab/ : /;
$_ = "\n=item B&LT;". $columns ."&GT;\n";
};
/^\@tab\s+(.*\S)\s*$/ and $endw eq "multitable" and do {
my $columns = $1;
$columns =~ s/\@tab/ : /;
$_ = " : ". $columns;
$chapter =~ s/\n+\s+$//;
};
/^\@itemx?\s*(.+)?$/ and do {
if (defined $1) {
# Entity escapes prevent munging by the <> processing below.
@@ -361,6 +377,7 @@ sub postprocess
s/\(?\@xref\{(?:[^\}]*)\}(?:[^.<]|(?:<[^<>]*>))*\.\)?//g;
s/\s+\(\@pxref\{(?:[^\}]*)\}\)//g;
s/;\s+\@pxref\{(?:[^\}]*)\}//g;
s/\@ref\{(?:[^,\}]*,)(?:[^,\}]*,)([^,\}]*).*\}/$1/g;
s/\@ref\{([^\}]*)\}/$1/g;
s/\@noindent\s*//g;
s/\@refill//g;

191
ffmpeg.c
View File

@@ -109,8 +109,18 @@ const int program_birth_year = 2000;
static FILE *vstats_file;
const char *const forced_keyframes_const_names[] = {
"n",
"n_forced",
"prev_forced_n",
"prev_forced_t",
"t",
NULL
};
static void do_video_stats(OutputStream *ost, int frame_size);
static int64_t getutime(void);
static int64_t getmaxrss(void);
static int run_as_daemon = 0;
static int64_t video_size = 0;
@@ -152,6 +162,8 @@ static struct termios oldtty;
static int restore_tty;
#endif
static void free_input_threads(void);
/* sub2video hack:
Convert subtitles to video with alpha to insert them in filter graphs.
@@ -399,6 +411,11 @@ static void exit_program(void)
{
int i, j;
if (do_benchmark) {
int maxrss = getmaxrss() / 1024;
printf("bench: maxrss=%ikB\n", maxrss);
}
for (i = 0; i < nb_filtergraphs; i++) {
avfilter_graph_free(&filtergraphs[i]->graph);
for (j = 0; j < filtergraphs[i]->nb_inputs; j++) {
@@ -437,10 +454,14 @@ static void exit_program(void)
avcodec_free_frame(&output_streams[i]->filtered_frame);
av_freep(&output_streams[i]->forced_keyframes);
av_expr_free(output_streams[i]->forced_keyframes_pexpr);
av_freep(&output_streams[i]->avfilter);
av_freep(&output_streams[i]->logfile_prefix);
av_freep(&output_streams[i]);
}
#if HAVE_PTHREADS
free_input_threads();
#endif
for (i = 0; i < nb_input_files; i++) {
avformat_close_input(&input_files[i]->ctx);
av_freep(&input_files[i]);
@@ -449,6 +470,7 @@ static void exit_program(void)
avcodec_free_frame(&input_streams[i]->decoded_frame);
av_dict_free(&input_streams[i]->opts);
free_buffer_pool(&input_streams[i]->buffer_pool);
avsubtitle_free(&input_streams[i]->prev_sub.subtitle);
avfilter_unref_bufferp(&input_streams[i]->sub2video.ref);
av_freep(&input_streams[i]->filters);
av_freep(&input_streams[i]);
@@ -471,7 +493,6 @@ static void exit_program(void)
if (received_sigterm) {
av_log(NULL, AV_LOG_INFO, "Received signal %d: terminating.\n",
(int) received_sigterm);
exit (255);
}
}
@@ -665,6 +686,7 @@ static void do_audio_out(AVFormatContext *s, OutputStream *ost,
}
}
#if FF_API_DEINTERLACE
static void pre_process_video_frame(InputStream *ist, AVPicture *picture, void **bufp)
{
AVCodecContext *dec;
@@ -675,7 +697,7 @@ static void pre_process_video_frame(InputStream *ist, AVPicture *picture, void *
dec = ist->st->codec;
/* deinterlace : must be done before any resize */
if (do_deinterlace) {
if (FF_API_DEINTERLACE && do_deinterlace) {
int size;
/* create temporary picture */
@@ -705,6 +727,7 @@ static void pre_process_video_frame(InputStream *ist, AVPicture *picture, void *
*picture = *picture2;
*bufp = buf;
}
#endif
static void do_subtitle_out(AVFormatContext *s,
OutputStream *ost,
@@ -873,8 +896,9 @@ static void do_video_out(AVFormatContext *s,
video_size += pkt.size;
write_frame(s, &pkt, ost);
} else {
int got_packet;
int got_packet, forced_keyframe = 0;
AVFrame big_picture;
double pts_time;
big_picture = *in_picture;
/* better than nothing: use input picture interlaced
@@ -898,11 +922,41 @@ static void do_video_out(AVFormatContext *s,
big_picture.quality = ost->st->codec->global_quality;
if (!enc->me_threshold)
big_picture.pict_type = 0;
pts_time = big_picture.pts != AV_NOPTS_VALUE ?
big_picture.pts * av_q2d(enc->time_base) : NAN;
if (ost->forced_kf_index < ost->forced_kf_count &&
big_picture.pts >= ost->forced_kf_pts[ost->forced_kf_index]) {
big_picture.pict_type = AV_PICTURE_TYPE_I;
ost->forced_kf_index++;
forced_keyframe = 1;
} else if (ost->forced_keyframes_pexpr) {
double res;
ost->forced_keyframes_expr_const_values[FKF_T] = pts_time;
res = av_expr_eval(ost->forced_keyframes_pexpr,
ost->forced_keyframes_expr_const_values, NULL);
av_dlog(NULL, "force_key_frame: n:%f n_forced:%f prev_forced_n:%f t:%f prev_forced_t:%f -> res:%f\n",
ost->forced_keyframes_expr_const_values[FKF_N],
ost->forced_keyframes_expr_const_values[FKF_N_FORCED],
ost->forced_keyframes_expr_const_values[FKF_PREV_FORCED_N],
ost->forced_keyframes_expr_const_values[FKF_T],
ost->forced_keyframes_expr_const_values[FKF_PREV_FORCED_T],
res);
if (res) {
forced_keyframe = 1;
ost->forced_keyframes_expr_const_values[FKF_PREV_FORCED_N] =
ost->forced_keyframes_expr_const_values[FKF_N];
ost->forced_keyframes_expr_const_values[FKF_PREV_FORCED_T] =
ost->forced_keyframes_expr_const_values[FKF_T];
ost->forced_keyframes_expr_const_values[FKF_N_FORCED] += 1;
}
ost->forced_keyframes_expr_const_values[FKF_N] += 1;
}
if (forced_keyframe) {
big_picture.pict_type = AV_PICTURE_TYPE_I;
av_log(NULL, AV_LOG_DEBUG, "Forced keyframe at time %f\n", pts_time);
}
update_benchmark(NULL);
ret = avcodec_encode_video2(enc, &pkt, &big_picture, &got_packet);
update_benchmark("encode_video %d.%d", ost->file_index, ost->index);
@@ -1062,6 +1116,12 @@ static int reap_filters(void)
case AVMEDIA_TYPE_AUDIO:
avfilter_copy_buf_props(filtered_frame, picref);
filtered_frame->pts = frame_pts;
if (!(ost->st->codec->codec->capabilities & CODEC_CAP_PARAM_CHANGE) &&
ost->st->codec->channels != av_frame_get_channels(filtered_frame)) {
av_log(NULL, AV_LOG_ERROR,
"Audio filter graph output is not normalized and encoder does not support parameter changes\n");
break;
}
do_audio_out(of->ctx, ost, filtered_frame);
break;
default:
@@ -1168,7 +1228,7 @@ static void print_report(int is_last_report, int64_t timer_start, int64_t cur_ti
p = psnr(error / scale);
snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), "%c:%2.2f ", type[j], p);
av_bprintf(&buf_script, "stream_%d_%d_psnr_%c=%2.2f\n",
ost->file_index, ost->index, type[i] | 32, p);
ost->file_index, ost->index, type[j] | 32, p);
}
p = psnr(error_sum / scale_sum);
snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), "*:%2.2f ", psnr(error_sum / scale_sum));
@@ -1216,7 +1276,10 @@ static void print_report(int is_last_report, int64_t timer_start, int64_t cur_ti
av_bprintf(&buf_script, "drop_frames=%d\n", nb_frames_drop);
if (print_stats || is_last_report) {
av_log(NULL, AV_LOG_INFO, "%s \r", buf);
if (print_stats==1 && AV_LOG_INFO > av_log_get_level()) {
fprintf(stderr, "%s \r", buf);
} else
av_log(NULL, AV_LOG_INFO, "%s \r", buf);
fflush(stderr);
}
@@ -1443,6 +1506,8 @@ int guess_input_channel_layout(InputStream *ist)
if (!dec->channel_layout) {
char layout_name[256];
if (dec->channels > ist->guess_layout_max)
return 0;
dec->channel_layout = av_get_default_channel_layout(dec->channels);
if (!dec->channel_layout)
return 0;
@@ -1617,7 +1682,9 @@ static int decode_video(InputStream *ist, AVPacket *pkt, int *got_output)
}
pkt->size = 0;
#if FF_API_DEINTERLACE
pre_process_video_frame(ist, (AVPicture *)decoded_frame, &buffer_to_free);
#endif
rate_emu_sleep(ist);
@@ -1843,7 +1910,10 @@ static int output_packet(InputStream *ist, const AVPacket *pkt)
ist->st->codec->sample_rate;
break;
case AVMEDIA_TYPE_VIDEO:
if (pkt->duration) {
if (ist->framerate.num) {
int64_t next_dts = av_rescale_q(ist->next_dts, AV_TIME_BASE_Q, av_inv_q(ist->framerate));
ist->next_dts = av_rescale_q(next_dts + 1, av_inv_q(ist->framerate), AV_TIME_BASE_Q);
} else if (pkt->duration) {
ist->next_dts += av_rescale_q(pkt->duration, ist->st->time_base, AV_TIME_BASE_Q);
} else if(ist->st->codec->time_base.num != 0) {
int ticks= ist->st->parser ? ist->st->parser->repeat_pict + 1 : ist->st->codec->ticks_per_frame;
@@ -1870,7 +1940,7 @@ static int output_packet(InputStream *ist, const AVPacket *pkt)
static void print_sdp(void)
{
char sdp[2048];
char sdp[16384];
int i;
AVFormatContext **avc = av_malloc(sizeof(*avc) * nb_output_files);
@@ -1898,7 +1968,7 @@ static int init_input_stream(int ist_index, char *error, int error_len)
return AVERROR(EINVAL);
}
ist->dr1 = (codec->capabilities & CODEC_CAP_DR1) && !do_deinterlace;
ist->dr1 = (codec->capabilities & CODEC_CAP_DR1) && !(FF_API_DEINTERLACE && do_deinterlace);
if (codec->type == AVMEDIA_TYPE_VIDEO && ist->dr1) {
ist->st->codec->get_buffer = codec_get_buffer;
ist->st->codec->release_buffer = codec_release_buffer;
@@ -1931,19 +2001,25 @@ static InputStream *get_input_stream(OutputStream *ost)
return NULL;
}
static int compare_int64(const void *a, const void *b)
{
int64_t va = *(int64_t *)a, vb = *(int64_t *)b;
return va < vb ? -1 : va > vb ? +1 : 0;
}
static void parse_forced_key_frames(char *kf, OutputStream *ost,
AVCodecContext *avctx)
{
char *p;
int n = 1, i;
int64_t t;
int n = 1, i, size, index = 0;
int64_t t, *pts;
for (p = kf; *p; p++)
if (*p == ',')
n++;
ost->forced_kf_count = n;
ost->forced_kf_pts = av_malloc(sizeof(*ost->forced_kf_pts) * n);
if (!ost->forced_kf_pts) {
size = n;
pts = av_malloc(sizeof(*pts) * size);
if (!pts) {
av_log(NULL, AV_LOG_FATAL, "Could not allocate forced key frames array.\n");
exit(1);
}
@@ -1955,11 +2031,43 @@ static void parse_forced_key_frames(char *kf, OutputStream *ost,
if (next)
*next++ = 0;
t = parse_time_or_die("force_key_frames", p, 1);
ost->forced_kf_pts[i] = av_rescale_q(t, AV_TIME_BASE_Q, avctx->time_base);
if (!memcmp(p, "chapters", 8)) {
AVFormatContext *avf = output_files[ost->file_index]->ctx;
int j;
if (avf->nb_chapters > INT_MAX - size ||
!(pts = av_realloc_f(pts, size += avf->nb_chapters - 1,
sizeof(*pts)))) {
av_log(NULL, AV_LOG_FATAL,
"Could not allocate forced key frames array.\n");
exit(1);
}
t = p[8] ? parse_time_or_die("force_key_frames", p + 8, 1) : 0;
t = av_rescale_q(t, AV_TIME_BASE_Q, avctx->time_base);
for (j = 0; j < avf->nb_chapters; j++) {
AVChapter *c = avf->chapters[j];
av_assert1(index < size);
pts[index++] = av_rescale_q(c->start, c->time_base,
avctx->time_base) + t;
}
} else {
t = parse_time_or_die("force_key_frames", p, 1);
av_assert1(index < size);
pts[index++] = av_rescale_q(t, AV_TIME_BASE_Q, avctx->time_base);
}
p = next;
}
av_assert0(index == size);
qsort(pts, size, sizeof(*pts), compare_int64);
ost->forced_kf_count = size;
ost->forced_kf_pts = pts;
}
static void report_new_stream(int input_index, AVPacket *pkt)
@@ -2046,9 +2154,10 @@ static int transcode_init(void)
codec->codec_type = icodec->codec_type;
if (!codec->codec_tag) {
unsigned int codec_tag;
if (!oc->oformat->codec_tag ||
av_codec_get_id (oc->oformat->codec_tag, icodec->codec_tag) == codec->codec_id ||
av_codec_get_tag(oc->oformat->codec_tag, icodec->codec_id) <= 0)
!av_codec_get_tag2(oc->oformat->codec_tag, icodec->codec_id, &codec_tag))
codec->codec_tag = icodec->codec_tag;
}
@@ -2100,7 +2209,15 @@ static int transcode_init(void)
codec->time_base.num *= icodec->ticks_per_frame;
}
}
if ( codec->codec_tag == AV_RL32("tmcd")
&& icodec->time_base.num < icodec->time_base.den
&& icodec->time_base.num > 0
&& 121LL*icodec->time_base.num > icodec->time_base.den) {
codec->time_base = icodec->time_base;
}
if (ist && !ost->frame_rate.num)
ost->frame_rate = ist->framerate;
if(ost->frame_rate.num)
codec->time_base = av_inv_q(ost->frame_rate);
@@ -2119,7 +2236,7 @@ static int transcode_init(void)
codec->frame_size = icodec->frame_size;
codec->audio_service_type = icodec->audio_service_type;
codec->block_align = icodec->block_align;
if((codec->block_align == 1 || codec->block_align == 1152) && codec->codec_id == AV_CODEC_ID_MP3)
if((codec->block_align == 1 || codec->block_align == 1152 || codec->block_align == 576) && codec->codec_id == AV_CODEC_ID_MP3)
codec->block_align= 0;
if(codec->codec_id == AV_CODEC_ID_AC3)
codec->block_align= 0;
@@ -2193,7 +2310,7 @@ static int transcode_init(void)
codec->sample_fmt = ost->filter->filter->inputs[0]->format;
codec->sample_rate = ost->filter->filter->inputs[0]->sample_rate;
codec->channel_layout = ost->filter->filter->inputs[0]->channel_layout;
codec->channels = av_get_channel_layout_nb_channels(codec->channel_layout);
codec->channels = avfilter_link_get_channels(ost->filter->filter->inputs[0]);
codec->time_base = (AVRational){ 1, codec->sample_rate };
break;
case AVMEDIA_TYPE_VIDEO:
@@ -2225,9 +2342,23 @@ static int transcode_init(void)
codec->bits_per_raw_sample = frame_bits_per_raw_sample;
}
if (ost->forced_keyframes)
parse_forced_key_frames(ost->forced_keyframes, ost,
ost->st->codec);
if (ost->forced_keyframes) {
if (!strncmp(ost->forced_keyframes, "expr:", 5)) {
ret = av_expr_parse(&ost->forced_keyframes_pexpr, ost->forced_keyframes+5,
forced_keyframes_const_names, NULL, NULL, NULL, NULL, 0, NULL);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR,
"Invalid force_key_frames expression '%s'\n", ost->forced_keyframes+5);
return ret;
}
ost->forced_keyframes_expr_const_values[FKF_N] = 0;
ost->forced_keyframes_expr_const_values[FKF_N_FORCED] = 0;
ost->forced_keyframes_expr_const_values[FKF_PREV_FORCED_N] = NAN;
ost->forced_keyframes_expr_const_values[FKF_PREV_FORCED_T] = NAN;
} else {
parse_forced_key_frames(ost->forced_keyframes, ost, ost->st->codec);
}
}
break;
case AVMEDIA_TYPE_SUBTITLE:
codec->time_base = (AVRational){1, 1000};
@@ -2316,13 +2447,20 @@ static int transcode_init(void)
if (ost->st->codec->me_threshold)
input_streams[ost->source_index]->st->codec->debug |= FF_DEBUG_MV;
} else {
av_opt_set_dict(ost->st->codec, &ost->opts);
}
}
/* init input streams */
for (i = 0; i < nb_input_streams; i++)
if ((ret = init_input_stream(i, error, sizeof(error))) < 0)
if ((ret = init_input_stream(i, error, sizeof(error))) < 0) {
for (i = 0; i < nb_output_streams; i++) {
ost = output_streams[i];
avcodec_close(ost->st->codec);
}
goto dump_format;
}
/* discard unused programs */
for (i = 0; i < nb_input_files; i++) {
@@ -3105,6 +3243,8 @@ static int transcode(void)
av_freep(&ost->st->codec->subtitle_header);
av_free(ost->forced_kf_pts);
av_dict_free(&ost->opts);
av_dict_free(&ost->swr_opts);
av_dict_free(&ost->resample_opts);
}
}
}
@@ -3210,10 +3350,9 @@ int main(int argc, char **argv)
exit(1);
ti = getutime() - ti;
if (do_benchmark) {
int maxrss = getmaxrss() / 1024;
printf("bench: utime=%0.3fs maxrss=%ikB\n", ti / 1000000.0, maxrss);
printf("bench: utime=%0.3fs\n", ti / 1000000.0);
}
exit(0);
exit(received_nb_signals ? 255 : 0);
return 0;
}

View File

@@ -41,6 +41,7 @@
#include "libavutil/avutil.h"
#include "libavutil/dict.h"
#include "libavutil/eval.h"
#include "libavutil/fifo.h"
#include "libavutil/pixfmt.h"
#include "libavutil/rational.h"
@@ -113,6 +114,7 @@ typedef struct OptionsContext {
int chapters_input_file;
int64_t recording_time;
int64_t stop_time;
uint64_t limit_filesize;
float mux_preload;
float mux_max_delay;
@@ -171,6 +173,8 @@ typedef struct OptionsContext {
int nb_pass;
SpecifierOpt *passlogfiles;
int nb_passlogfiles;
SpecifierOpt *guess_layout_max;
int nb_guess_layout_max;
} OptionsContext;
typedef struct InputFilter {
@@ -195,6 +199,7 @@ typedef struct FilterGraph {
const char *graph_desc;
AVFilterGraph *graph;
int reconfiguration;
InputFilter **inputs;
int nb_inputs;
@@ -229,6 +234,7 @@ typedef struct InputStream {
AVDictionary *opts;
AVRational framerate; /* framerate forced with -r */
int top_field_first;
int guess_layout_max;
int resample_height;
int resample_width;
@@ -286,6 +292,17 @@ typedef struct InputFile {
#endif
} InputFile;
enum forced_keyframes_const {
FKF_N,
FKF_N_FORCED,
FKF_PREV_FORCED_N,
FKF_PREV_FORCED_T,
FKF_T,
FKF_NB
};
extern const char *const forced_keyframes_const_names[];
typedef struct OutputStream {
int file_index; /* file index */
int index; /* stream index in the output file */
@@ -317,6 +334,8 @@ typedef struct OutputStream {
int forced_kf_count;
int forced_kf_index;
char *forced_keyframes;
AVExpr *forced_keyframes_pexpr;
double forced_keyframes_expr_const_values[FKF_NB];
/* audio only */
int audio_channels_map[SWR_CH_MAX]; /* list of the channels id to pick from the source stream */
@@ -329,10 +348,9 @@ typedef struct OutputStream {
char *avfilter;
int64_t sws_flags;
int64_t swr_filter_type;
int64_t swr_dither_method;
double swr_dither_scale;
AVDictionary *opts;
AVDictionary *swr_opts;
AVDictionary *resample_opts;
int finished; /* no more packets should be written for this stream */
int unavailable; /* true if the steram is unavailable (possibly temporarily) */
int stream_copy;

View File

@@ -24,6 +24,8 @@
#include "libavfilter/avfiltergraph.h"
#include "libavfilter/buffersink.h"
#include "libavresample/avresample.h"
#include "libavutil/avassert.h"
#include "libavutil/avstring.h"
#include "libavutil/bprint.h"
@@ -41,12 +43,15 @@ enum AVPixelFormat choose_pixel_fmt(AVStream *st, AVCodec *codec, enum AVPixelFo
const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(target);
int has_alpha = desc ? desc->nb_components % 2 == 0 : 0;
enum AVPixelFormat best= AV_PIX_FMT_NONE;
const enum AVPixelFormat mjpeg_formats[] = { AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_NONE };
const enum AVPixelFormat ljpeg_formats[] = { AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUV420P,
AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_BGRA, AV_PIX_FMT_NONE };
if (st->codec->strict_std_compliance <= FF_COMPLIANCE_UNOFFICIAL) {
if (st->codec->codec_id == AV_CODEC_ID_MJPEG) {
p = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_NONE };
p = mjpeg_formats;
} else if (st->codec->codec_id == AV_CODEC_ID_LJPEG) {
p = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUV420P,
AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_BGRA, AV_PIX_FMT_NONE };
p =ljpeg_formats;
}
}
for (; *p != AV_PIX_FMT_NONE; p++) {
@@ -139,7 +144,7 @@ static char *choose_ ## var ## s(OutputStream *ost) \
if (ost->st->codec->var != none) { \
get_name(ost->st->codec->var); \
return av_strdup(name); \
} else if (ost->enc->supported_list) { \
} else if (ost->enc && ost->enc->supported_list) { \
const type *p; \
AVIOContext *s = NULL; \
uint8_t *ret; \
@@ -367,12 +372,16 @@ static int configure_output_audio_filter(FilterGraph *fg, OutputFilter *ofilter,
char *sample_fmts, *sample_rates, *channel_layouts;
char name[255];
int ret;
AVABufferSinkParams *params = av_abuffersink_params_alloc();
if (!params)
return AVERROR(ENOMEM);
params->all_channel_counts = 1;
snprintf(name, sizeof(name), "output stream %d:%d", ost->file_index, ost->index);
ret = avfilter_graph_create_filter(&ofilter->filter,
avfilter_get_by_name("ffabuffersink"),
name, NULL, NULL, fg->graph);
name, NULL, params, fg->graph);
av_freep(&params);
if (ret < 0)
return ret;
@@ -522,7 +531,7 @@ static int sub2video_prepare(InputStream *ist)
/* rectangles are AV_PIX_FMT_PAL8, but we have no guarantee that the
palettes for all rectangles are identical or compatible */
ist->st->codec->pix_fmt = AV_PIX_FMT_RGB32;
ist->resample_pix_fmt = ist->st->codec->pix_fmt = AV_PIX_FMT_RGB32;
ret = av_image_alloc(image, linesize, w, h, AV_PIX_FMT_RGB32, 32);
if (ret < 0)
@@ -620,20 +629,25 @@ static int configure_input_audio_filter(FilterGraph *fg, InputFilter *ifilter,
AVFilter *filter = avfilter_get_by_name("abuffer");
InputStream *ist = ifilter->ist;
int pad_idx = in->pad_idx;
char args[255], name[255];
AVBPrint args;
char name[255];
int ret;
snprintf(args, sizeof(args), "time_base=%d/%d:sample_rate=%d:sample_fmt=%s"
":channel_layout=0x%"PRIx64,
av_bprint_init(&args, 0, AV_BPRINT_SIZE_AUTOMATIC);
av_bprintf(&args, "time_base=%d/%d:sample_rate=%d:sample_fmt=%s",
1, ist->st->codec->sample_rate,
ist->st->codec->sample_rate,
av_get_sample_fmt_name(ist->st->codec->sample_fmt),
ist->st->codec->channel_layout);
av_get_sample_fmt_name(ist->st->codec->sample_fmt));
if (ist->st->codec->channel_layout)
av_bprintf(&args, ":channel_layout=0x%"PRIx64,
ist->st->codec->channel_layout);
else
av_bprintf(&args, ":channels=%d", ist->st->codec->channels);
snprintf(name, sizeof(name), "graph %d input from stream %d:%d", fg->index,
ist->file_index, ist->st->index);
if ((ret = avfilter_graph_create_filter(&ifilter->filter, filter,
name, args, NULL,
name, args.str, NULL,
fg->graph)) < 0)
return ret;
@@ -664,6 +678,8 @@ static int configure_input_audio_filter(FilterGraph *fg, InputFilter *ifilter,
av_strlcatf(args, sizeof(args), "async=%d", audio_sync_method);
if (audio_drift_threshold != 0.1)
av_strlcatf(args, sizeof(args), ":min_hard_comp=%f", audio_drift_threshold);
if (!fg->reconfiguration)
av_strlcatf(args, sizeof(args), ":first_pts=0");
AUTO_INSERT_FILTER_INPUT("-async", "aresample", args);
}
@@ -721,20 +737,29 @@ int configure_filtergraph(FilterGraph *fg)
if (simple) {
OutputStream *ost = fg->outputs[0]->ost;
char args[255];
char args[512];
AVDictionaryEntry *e = NULL;
snprintf(args, sizeof(args), "flags=0x%X", (unsigned)ost->sws_flags);
fg->graph->scale_sws_opts = av_strdup(args);
args[0] = 0;
if (ost->swr_filter_type != SWR_FILTER_TYPE_KAISER)
av_strlcatf(args, sizeof(args), "filter_type=%d:", (int)ost->swr_filter_type);
if (ost->swr_dither_method)
av_strlcatf(args, sizeof(args), "dither_method=%d:", (int)ost->swr_dither_method);
if (ost->swr_dither_scale != 1.0)
av_strlcatf(args, sizeof(args), "dither_scale=%f:", ost->swr_dither_scale);
while ((e = av_dict_get(ost->swr_opts, "", e,
AV_DICT_IGNORE_SUFFIX))) {
av_strlcatf(args, sizeof(args), "%s=%s:", e->key, e->value);
}
if (strlen(args))
args[strlen(args)-1] = 0;
av_opt_set(fg->graph, "aresample_swr_opts", args, 0);
args[0] = '\0';
while ((e = av_dict_get(fg->outputs[0]->ost->resample_opts, "", e,
AV_DICT_IGNORE_SUFFIX))) {
av_strlcatf(args, sizeof(args), "%s=%s:", e->key, e->value);
}
if (strlen(args))
args[strlen(args) - 1] = '\0';
fg->graph->resample_lavr_opts = av_strdup(args);
}
if ((ret = avfilter_graph_parse2(fg->graph, graph_desc, &inputs, &outputs)) < 0)
@@ -776,6 +801,7 @@ int configure_filtergraph(FilterGraph *fg)
}
}
fg->reconfiguration = 1;
return 0;
}

View File

@@ -81,7 +81,7 @@ int copy_ts = 0;
int copy_tb = -1;
int debug_ts = 0;
int exit_on_error = 0;
int print_stats = 1;
int print_stats = -1;
int qp_hist = 0;
int stdin_interaction = 1;
int frame_bits_per_raw_sample = 0;
@@ -126,6 +126,7 @@ static void uninit_options(OptionsContext *o, int is_input)
av_freep(&o->stream_maps);
av_freep(&o->audio_channel_maps);
av_freep(&o->streamid_map);
av_freep(&o->attachments);
if (is_input)
recording_time = o->recording_time;
@@ -143,24 +144,13 @@ static void init_options(OptionsContext *o, int is_input)
"-t is not an input option, keeping it for the next output;"
" consider fixing your command line.\n");
} else
o->recording_time = INT64_MAX;
o->recording_time = INT64_MAX;
o->stop_time = INT64_MAX;
o->mux_max_delay = 0.7;
o->limit_filesize = UINT64_MAX;
o->chapters_input_file = INT_MAX;
}
static int opt_frame_crop(void *optctx, const char *opt, const char *arg)
{
av_log(NULL, AV_LOG_FATAL, "Option '%s' has been removed, use the crop filter instead\n", opt);
return AVERROR(EINVAL);
}
static int opt_pad(void *optctx, const char *opt, const char *arg)
{
av_log(NULL, AV_LOG_FATAL, "Option '%s' has been removed, use the pad filter instead\n", opt);
return -1;
}
static int opt_sameq(void *optctx, const char *opt, const char *arg)
{
av_log(NULL, AV_LOG_ERROR, "Option '%s' was removed. "
@@ -616,6 +606,8 @@ static void add_input_streams(OptionsContext *o, AVFormatContext *ic)
break;
case AVMEDIA_TYPE_AUDIO:
ist->guess_layout_max = INT_MAX;
MATCH_PER_STREAM_OPT(guess_layout_max, i, ist->guess_layout_max, ic, st);
guess_input_channel_layout(ist);
ist->resample_sample_fmt = dec->sample_fmt;
@@ -965,6 +957,8 @@ static OutputStream *new_output_stream(OptionsContext *o, AVFormatContext *oc, e
preset, ost->file_index, ost->index);
exit(1);
}
} else {
ost->opts = filter_codec_opts(o->g->codec_opts, AV_CODEC_ID_NONE, oc, st, NULL);
}
avcodec_get_context_defaults3(st->codec, ost->enc);
@@ -1011,9 +1005,12 @@ static OutputStream *new_output_stream(OptionsContext *o, AVFormatContext *oc, e
st->codec->flags |= CODEC_FLAG_GLOBAL_HEADER;
av_opt_get_int(o->g->sws_opts, "sws_flags", 0, &ost->sws_flags);
av_opt_get_int (o->g->swr_opts, "filter_type" , 0, &ost->swr_filter_type);
av_opt_get_int (o->g->swr_opts, "dither_method", 0, &ost->swr_dither_method);
av_opt_get_double(o->g->swr_opts, "dither_scale" , 0, &ost->swr_dither_scale);
av_dict_copy(&ost->swr_opts, o->g->swr_opts, 0);
if (ost->enc && av_get_exact_bits_per_sample(ost->enc->id) == 24)
av_dict_set(&ost->swr_opts, "output_sample_bits", "24", 0);
av_dict_copy(&ost->resample_opts, o->g->resample_opts, 0);
ost->source_index = source_index;
if (source_index >= 0) {
@@ -1143,8 +1140,6 @@ static OutputStream *new_video_stream(OptionsContext *o, AVFormatContext *oc, in
if (p) p++;
}
video_enc->rc_override_count = i;
if (!video_enc->rc_initial_buffer_occupancy)
video_enc->rc_initial_buffer_occupancy = video_enc->rc_buffer_size * 3 / 4;
video_enc->intra_dc_precision = intra_dc_precision - 8;
if (do_psnr)
@@ -1155,9 +1150,11 @@ static OutputStream *new_video_stream(OptionsContext *o, AVFormatContext *oc, in
if (do_pass) {
if (do_pass & 1) {
video_enc->flags |= CODEC_FLAG_PASS1;
av_dict_set(&ost->opts, "flags", "+pass1", AV_DICT_APPEND);
}
if (do_pass & 2) {
video_enc->flags |= CODEC_FLAG_PASS2;
av_dict_set(&ost->opts, "flags", "+pass2", AV_DICT_APPEND);
}
}
@@ -1662,6 +1659,20 @@ loop_end:
exit(1);
}
if (o->stop_time != INT64_MAX && o->recording_time != INT64_MAX) {
o->stop_time = INT64_MAX;
av_log(NULL, AV_LOG_WARNING, "-t and -to cannot be used together; using -t.\n");
}
if (o->stop_time != INT64_MAX && o->recording_time == INT64_MAX) {
if (o->stop_time <= o->start_time) {
av_log(NULL, AV_LOG_WARNING, "-to value smaller than -ss; ignoring -to.\n");
o->stop_time = INT64_MAX;
} else {
o->recording_time = o->stop_time - o->start_time;
}
}
GROW_ARRAY(output_files, nb_output_files);
if (!(output_files[nb_output_files - 1] = av_mallocz(sizeof(*output_files[0]))))
exit(1);
@@ -1695,7 +1706,8 @@ loop_end:
print_error(filename, err);
exit(1);
}
}
} else if (strcmp(oc->oformat->name, "image2")==0 && !av_filename_number_test(filename))
assert_file_overwrite(filename);
if (o->mux_preload) {
uint8_t buf[64];
@@ -2117,12 +2129,14 @@ static int opt_vsync(void *optctx, const char *opt, const char *arg)
return 0;
}
#if FF_API_DEINTERLACE
static int opt_deinterlace(void *optctx, const char *opt, const char *arg)
{
av_log(NULL, AV_LOG_WARNING, "-%s is deprecated, use -filter:v yadif instead\n", opt);
do_deinterlace = 1;
return 0;
}
#endif
static int opt_timecode(void *optctx, const char *opt, const char *arg)
{
@@ -2150,7 +2164,7 @@ static int opt_channel_layout(void *optctx, const char *opt, const char *arg)
return AVERROR(EINVAL);
}
snprintf(layout_str, sizeof(layout_str), "%"PRIu64, layout);
ret = opt_default(NULL, opt, layout_str);
ret = opt_default_new(o, opt, layout_str);
if (ret < 0)
return ret;
@@ -2297,7 +2311,7 @@ static int open_files(OptionGroupList *l, const char *inout,
inout, g->arg);
return ret;
}
av_log(NULL, AV_LOG_DEBUG, "Successfully openened the file.\n");
av_log(NULL, AV_LOG_DEBUG, "Successfully opened the file.\n");
}
return 0;
@@ -2395,6 +2409,8 @@ const OptionDef options[] = {
{ "t", HAS_ARG | OPT_TIME | OPT_OFFSET, { .off = OFFSET(recording_time) },
"record or transcode \"duration\" seconds of audio/video",
"duration" },
{ "to", HAS_ARG | OPT_TIME | OPT_OFFSET, { .off = OFFSET(stop_time) },
"record or transcode stop time", "time_stop" },
{ "fs", HAS_ARG | OPT_INT64 | OPT_OFFSET, { .off = OFFSET(limit_filesize) },
"set the limit file size in bytes", "limit_size" },
{ "ss", HAS_ARG | OPT_TIME | OPT_OFFSET, { .off = OFFSET(start_time) },
@@ -2461,7 +2477,7 @@ const OptionDef options[] = {
{ "profile", HAS_ARG | OPT_EXPERT | OPT_PERFILE, { .func_arg = opt_profile },
"set profile", "profile" },
{ "filter", HAS_ARG | OPT_STRING | OPT_SPEC, { .off = OFFSET(filters) },
"set stream filterchain", "filter_list" },
"set stream filtergraph", "filter_graph" },
{ "reinit_filter", HAS_ARG | OPT_INT | OPT_SPEC, { .off = OFFSET(reinit_filters) },
"reinit filtergraph on input parameter changes", "" },
{ "filter_complex", HAS_ARG | OPT_EXPERT, { .func_arg = opt_filter_complex },
@@ -2488,24 +2504,6 @@ const OptionDef options[] = {
"set pixel format", "format" },
{ "bits_per_raw_sample", OPT_VIDEO | OPT_INT | HAS_ARG, { &frame_bits_per_raw_sample },
"set the number of bits per raw sample", "number" },
{ "croptop", OPT_VIDEO | HAS_ARG, { .func_arg = opt_frame_crop },
"Removed, use the crop filter instead", "size" },
{ "cropbottom", OPT_VIDEO | HAS_ARG, { .func_arg = opt_frame_crop },
"Removed, use the crop filter instead", "size" },
{ "cropleft", OPT_VIDEO | HAS_ARG, { .func_arg = opt_frame_crop },
"Removed, use the crop filter instead", "size" },
{ "cropright", OPT_VIDEO | HAS_ARG, { .func_arg = opt_frame_crop },
"Removed, use the crop filter instead", "size" },
{ "padtop", OPT_VIDEO | HAS_ARG, { .func_arg = opt_pad },
"Removed, use the pad filter instead", "size" },
{ "padbottom", OPT_VIDEO | HAS_ARG, { .func_arg = opt_pad },
"Removed, use the pad filter instead", "size" },
{ "padleft", OPT_VIDEO | HAS_ARG, { .func_arg = opt_pad },
"Removed, use the pad filter instead", "size" },
{ "padright", OPT_VIDEO | HAS_ARG, { .func_arg = opt_pad },
"Removed, use the pad filter instead", "size" },
{ "padcolor", OPT_VIDEO | HAS_ARG, { .func_arg = opt_pad },
"Removed, use the pad filter instead", "color" },
{ "intra", OPT_VIDEO | OPT_BOOL | OPT_EXPERT, { &intra_only },
"deprecated use -g 1" },
{ "vn", OPT_VIDEO | OPT_BOOL | OPT_OFFSET, { .off = OFFSET(video_disable) },
@@ -2526,8 +2524,10 @@ const OptionDef options[] = {
"select the pass number (1 to 3)", "n" },
{ "passlogfile", OPT_VIDEO | HAS_ARG | OPT_STRING | OPT_EXPERT | OPT_SPEC, { .off = OFFSET(passlogfiles) },
"select two pass log file name prefix", "prefix" },
#if FF_API_DEINTERLACE
{ "deinterlace", OPT_VIDEO | OPT_EXPERT , { .func_arg = opt_deinterlace },
"this option is deprecated, use the yadif filter instead" },
#endif
{ "psnr", OPT_VIDEO | OPT_BOOL | OPT_EXPERT, { &do_psnr },
"calculate PSNR of compressed frames" },
{ "vstats", OPT_VIDEO | OPT_EXPERT , { &opt_vstats },
@@ -2535,7 +2535,7 @@ const OptionDef options[] = {
{ "vstats_file", OPT_VIDEO | HAS_ARG | OPT_EXPERT , { opt_vstats_file },
"dump video coding statistics to file", "file" },
{ "vf", OPT_VIDEO | HAS_ARG | OPT_PERFILE, { .func_arg = opt_video_filters },
"video filters", "filter list" },
"set video filters", "filter_graph" },
{ "intra_matrix", OPT_VIDEO | HAS_ARG | OPT_EXPERT | OPT_STRING | OPT_SPEC, { .off = OFFSET(intra_matrices) },
"specify intra matrix coeffs", "matrix" },
{ "inter_matrix", OPT_VIDEO | HAS_ARG | OPT_EXPERT | OPT_STRING | OPT_SPEC, { .off = OFFSET(inter_matrices) },
@@ -2580,7 +2580,9 @@ const OptionDef options[] = {
{ "channel_layout", OPT_AUDIO | HAS_ARG | OPT_EXPERT | OPT_PERFILE, { .func_arg = opt_channel_layout },
"set channel layout", "layout" },
{ "af", OPT_AUDIO | HAS_ARG | OPT_PERFILE, { .func_arg = opt_audio_filters },
"audio filters", "filter list" },
"set audio filters", "filter_graph" },
{ "guess_layout_max", OPT_AUDIO | HAS_ARG | OPT_INT | OPT_SPEC | OPT_EXPERT, { .off = OFFSET(guess_layout_max) },
"set the maximum number of channels to try to guess the channel layout" },
/* subtitle options */
{ "sn", OPT_SUBTITLE | OPT_BOOL | OPT_OFFSET, { .off = OFFSET(subtitle_disable) },

307
ffplay.c
View File

@@ -86,6 +86,9 @@ const int program_birth_year = 2003;
/* we use about AUDIO_DIFF_AVG_NB A-V differences to make the average */
#define AUDIO_DIFF_AVG_NB 20
/* polls for possible required screen refresh at least this often, should be less than 1/fps */
#define REFRESH_RATE 0.01
/* NOTE: the size must be big enough to compensate the hardware audio buffersize size */
/* TODO: We assume that a decoded and resampled frame fits into this buffer */
#define SAMPLE_ARRAY_SIZE (8 * 65536)
@@ -116,7 +119,6 @@ typedef struct PacketQueue {
typedef struct VideoPicture {
double pts; // presentation timestamp for this picture
int64_t pos; // byte position in file
int skip;
SDL_Overlay *bmp;
int width, height; /* source height & width */
AVRational sample_aspect_ratio;
@@ -137,7 +139,7 @@ typedef struct SubPicture {
typedef struct AudioParams {
int freq;
int channels;
int channel_layout;
int64_t channel_layout;
enum AVSampleFormat fmt;
} AudioParams;
@@ -150,7 +152,6 @@ enum {
typedef struct VideoState {
SDL_Thread *read_tid;
SDL_Thread *video_tid;
SDL_Thread *refresh_tid;
AVInputFormat *iformat;
int no_background;
int abort_request;
@@ -175,6 +176,7 @@ typedef struct VideoState {
double external_clock_speed; ///< speed of the external clock
double audio_clock;
int audio_clock_serial;
double audio_diff_cum; /* used for AV difference average computation */
double audio_diff_avg_coef;
double audio_diff_threshold;
@@ -182,11 +184,11 @@ typedef struct VideoState {
AVStream *audio_st;
PacketQueue audioq;
int audio_hw_buf_size;
DECLARE_ALIGNED(16,uint8_t,audio_buf2)[AVCODEC_MAX_AUDIO_FRAME_SIZE * 4];
uint8_t silence_buf[SDL_AUDIO_BUFFER_SIZE];
uint8_t *audio_buf;
uint8_t *audio_buf1;
unsigned int audio_buf_size; /* in bytes */
unsigned int audio_buf1_size;
int audio_buf_index; /* in bytes */
int audio_write_buf_size;
AVPacket audio_pkt_temp;
@@ -211,6 +213,7 @@ typedef struct VideoState {
int rdft_bits;
FFTSample *rdft_data;
int xpos;
double last_vis_time;
SDL_Thread *subtitle_tid;
int subtitle_stream;
@@ -229,14 +232,14 @@ typedef struct VideoState {
double frame_last_returned_time;
double frame_last_filter_delay;
int64_t frame_last_dropped_pos;
double video_clock; // pts of last decoded frame / predicted pts of next decoded frame
int video_stream;
AVStream *video_st;
PacketQueue videoq;
double video_current_pts; // current displayed pts (different from video_clock if frame fifos are used)
double video_current_pts; // current displayed pts
double video_current_pts_drift; // video_current_pts - time (av_gettime) at which we updated video_current_pts - used to have running video pts
int64_t video_current_pos; // current displayed file pos
double max_frame_duration; // maximum duration of a frame - above this, we consider the jump a timestamp discontinuity
int video_clock_serial;
VideoPicture pictq[VIDEO_PICTURE_QUEUE_SIZE];
int pictq_size, pictq_rindex, pictq_windex;
SDL_mutex *pictq_mutex;
@@ -257,7 +260,6 @@ typedef struct VideoState {
FrameBuffer *buffer_pool;
#endif
int refresh;
int last_video_stream, last_audio_stream, last_subtitle_stream;
SDL_cond *continue_read_thread;
@@ -269,10 +271,13 @@ static const char *input_filename;
static const char *window_title;
static int fs_screen_width;
static int fs_screen_height;
static int default_width = 640;
static int default_height = 480;
static int screen_width = 0;
static int screen_height = 0;
static int audio_disable;
static int video_disable;
static int subtitle_disable;
static int wanted_stream[AVMEDIA_TYPE_NB] = {
[AVMEDIA_TYPE_AUDIO] = -1,
[AVMEDIA_TYPE_VIDEO] = -1,
@@ -304,7 +309,7 @@ static enum ShowMode show_mode = SHOW_MODE_NONE;
static const char *audio_codec_name;
static const char *subtitle_codec_name;
static const char *video_codec_name;
static int rdftspeed = 20;
double rdftspeed = 0.02;
static int64_t cursor_last_shown;
static int cursor_hidden = 0;
#if CONFIG_AVFILTER
@@ -318,7 +323,6 @@ static int64_t audio_callback_time;
static AVPacket flush_pkt;
#define FF_ALLOC_EVENT (SDL_USEREVENT)
#define FF_REFRESH_EVENT (SDL_USEREVENT + 1)
#define FF_QUIT_EVENT (SDL_USEREVENT + 2)
static SDL_Surface *screen;
@@ -971,7 +975,6 @@ static void stream_close(VideoState *is)
/* XXX: use a special url_shutdown call to abort parse cleanly */
is->abort_request = 1;
SDL_WaitThread(is->read_tid, NULL);
SDL_WaitThread(is->refresh_tid, NULL);
packet_queue_destroy(&is->videoq);
packet_queue_destroy(&is->audioq);
packet_queue_destroy(&is->subtitleq);
@@ -993,8 +996,7 @@ static void stream_close(VideoState *is)
SDL_DestroyCond(is->subpq_cond);
SDL_DestroyCond(is->continue_read_thread);
#if !CONFIG_AVFILTER
if (is->img_convert_ctx)
sws_freeContext(is->img_convert_ctx);
sws_freeContext(is->img_convert_ctx);
#endif
av_free(is);
}
@@ -1023,29 +1025,30 @@ static void sigterm_handler(int sig)
exit(123);
}
static int video_open(VideoState *is, int force_set_video_mode)
static int video_open(VideoState *is, int force_set_video_mode, VideoPicture *vp)
{
int flags = SDL_HWSURFACE | SDL_ASYNCBLIT | SDL_HWACCEL;
int w,h;
VideoPicture *vp = &is->pictq[is->pictq_rindex];
SDL_Rect rect;
if (is_full_screen) flags |= SDL_FULLSCREEN;
else flags |= SDL_RESIZABLE;
if (vp && vp->width) {
calculate_display_rect(&rect, 0, 0, INT_MAX, vp->height, vp);
default_width = rect.w;
default_height = rect.h;
}
if (is_full_screen && fs_screen_width) {
w = fs_screen_width;
h = fs_screen_height;
} else if (!is_full_screen && screen_width) {
w = screen_width;
h = screen_height;
} else if (vp->width) {
calculate_display_rect(&rect, 0, 0, INT_MAX, vp->height, vp);
w = rect.w;
h = rect.h;
} else {
w = 640;
h = 480;
w = default_width;
h = default_height;
}
if (screen && is->width == screen->w && screen->w == w
&& is->height== screen->h && screen->h == h && !force_set_video_mode)
@@ -1069,33 +1072,18 @@ static int video_open(VideoState *is, int force_set_video_mode)
static void video_display(VideoState *is)
{
if (!screen)
video_open(is, 0);
video_open(is, 0, NULL);
if (is->audio_st && is->show_mode != SHOW_MODE_VIDEO)
video_audio_display(is);
else if (is->video_st)
video_image_display(is);
}
static int refresh_thread(void *opaque)
{
VideoState *is= opaque;
while (!is->abort_request) {
SDL_Event event;
event.type = FF_REFRESH_EVENT;
event.user.data1 = opaque;
if (!is->refresh && (!is->paused || is->force_refresh)) {
is->refresh = 1;
SDL_PushEvent(&event);
}
//FIXME ideally we should wait the correct time but SDLs event passing is so slow it would be silly
av_usleep(is->audio_st && is->show_mode != SHOW_MODE_VIDEO ? rdftspeed*1000 : 5000);
}
return 0;
}
/* get the current audio clock value */
static double get_audio_clock(VideoState *is)
{
if (is->audio_clock_serial != is->audioq.serial)
return NAN;
if (is->paused) {
return is->audio_current_pts;
} else {
@@ -1106,6 +1094,8 @@ static double get_audio_clock(VideoState *is)
/* get the current video clock value */
static double get_video_clock(VideoState *is)
{
if (is->video_clock_serial != is->videoq.serial)
return NAN;
if (is->paused) {
return is->video_current_pts;
} else {
@@ -1167,7 +1157,8 @@ static void update_external_clock_pts(VideoState *is, double pts)
}
static void check_external_clock_sync(VideoState *is, double pts) {
if (fabs(get_external_clock(is) - pts) > AV_NOSYNC_THRESHOLD) {
double ext_clock = get_external_clock(is);
if (isnan(ext_clock) || fabs(ext_clock - pts) > AV_NOSYNC_THRESHOLD) {
update_external_clock_pts(is, pts);
}
}
@@ -1201,6 +1192,7 @@ static void stream_seek(VideoState *is, int64_t pos, int64_t rel, int seek_by_by
if (seek_by_bytes)
is->seek_flags |= AVSEEK_FLAG_BYTE;
is->seek_req = 1;
SDL_CondSignal(is->continue_read_thread);
}
}
@@ -1218,6 +1210,20 @@ static void stream_toggle_pause(VideoState *is)
is->paused = !is->paused;
}
static void toggle_pause(VideoState *is)
{
stream_toggle_pause(is);
is->step = 0;
}
static void step_to_next_frame(VideoState *is)
{
/* if the stream is paused unpause it, then step */
if (is->paused)
stream_toggle_pause(is);
is->step = 1;
}
static double compute_target_delay(double delay, VideoState *is)
{
double sync_threshold, diff;
@@ -1232,7 +1238,7 @@ static double compute_target_delay(double delay, VideoState *is)
delay to compute the threshold. I still don't know
if it is the best guess */
sync_threshold = FFMAX(AV_SYNC_THRESHOLD, delay);
if (fabs(diff) < AV_NOSYNC_THRESHOLD) {
if (!isnan(diff) && fabs(diff) < AV_NOSYNC_THRESHOLD) {
if (diff <= -sync_threshold)
delay = 0;
else if (diff >= sync_threshold)
@@ -1257,20 +1263,23 @@ static void pictq_next_picture(VideoState *is) {
SDL_UnlockMutex(is->pictq_mutex);
}
static void pictq_prev_picture(VideoState *is) {
static int pictq_prev_picture(VideoState *is) {
VideoPicture *prevvp;
int ret = 0;
/* update queue size and signal for the previous picture */
prevvp = &is->pictq[(is->pictq_rindex + VIDEO_PICTURE_QUEUE_SIZE - 1) % VIDEO_PICTURE_QUEUE_SIZE];
if (prevvp->allocated && !prevvp->skip) {
if (prevvp->allocated && prevvp->serial == is->videoq.serial) {
SDL_LockMutex(is->pictq_mutex);
if (is->pictq_size < VIDEO_PICTURE_QUEUE_SIZE - 1) {
if (--is->pictq_rindex == -1)
is->pictq_rindex = VIDEO_PICTURE_QUEUE_SIZE - 1;
is->pictq_size++;
ret = 1;
}
SDL_CondSignal(is->pictq_cond);
SDL_UnlockMutex(is->pictq_mutex);
}
return ret;
}
static void update_video_pts(VideoState *is, double pts, int64_t pos, int serial) {
@@ -1280,12 +1289,13 @@ static void update_video_pts(VideoState *is, double pts, int64_t pos, int serial
is->video_current_pts_drift = is->video_current_pts - time;
is->video_current_pos = pos;
is->frame_last_pts = pts;
is->video_clock_serial = serial;
if (is->videoq.serial == serial)
check_external_clock_sync(is, is->video_current_pts);
}
/* called to display each frame */
static void video_refresh(void *opaque)
static void video_refresh(void *opaque, double *remaining_time)
{
VideoState *is = opaque;
VideoPicture *vp;
@@ -1296,12 +1306,19 @@ static void video_refresh(void *opaque)
if (!is->paused && get_master_sync_type(is) == AV_SYNC_EXTERNAL_CLOCK && is->realtime)
check_external_clock_speed(is);
if (!display_disable && is->show_mode != SHOW_MODE_VIDEO && is->audio_st)
video_display(is);
if (!display_disable && is->show_mode != SHOW_MODE_VIDEO && is->audio_st) {
time = av_gettime() / 1000000.0;
if (is->force_refresh || is->last_vis_time + rdftspeed < time) {
video_display(is);
is->last_vis_time = time;
}
*remaining_time = FFMIN(*remaining_time, is->last_vis_time + rdftspeed - time);
}
if (is->video_st) {
int redisplay = 0;
if (is->force_refresh)
pictq_prev_picture(is);
redisplay = pictq_prev_picture(is);
retry:
if (is->pictq_size == 0) {
SDL_LockMutex(is->pictq_mutex);
@@ -1316,8 +1333,9 @@ retry:
/* dequeue the picture */
vp = &is->pictq[is->pictq_rindex];
if (vp->skip) {
if (vp->serial != is->videoq.serial) {
pictq_next_picture(is);
redisplay = 0;
goto retry;
}
@@ -1333,8 +1351,10 @@ retry:
delay = compute_target_delay(is->frame_last_duration, is);
time= av_gettime()/1000000.0;
if (time < is->frame_timer + delay)
if (time < is->frame_timer + delay) {
*remaining_time = FFMIN(is->frame_timer + delay - time, *remaining_time);
return;
}
if (delay > 0)
is->frame_timer += delay * FFMAX(1, floor((time-is->frame_timer) / delay));
@@ -1346,9 +1366,11 @@ retry:
if (is->pictq_size > 1) {
VideoPicture *nextvp = &is->pictq[(is->pictq_rindex + 1) % VIDEO_PICTURE_QUEUE_SIZE];
duration = nextvp->pts - vp->pts;
if(!is->step && (framedrop>0 || (framedrop && get_master_sync_type(is) != AV_SYNC_VIDEO_MASTER)) && time > is->frame_timer + duration){
is->frame_drops_late++;
if(!is->step && (redisplay || framedrop>0 || (framedrop && get_master_sync_type(is) != AV_SYNC_VIDEO_MASTER)) && time > is->frame_timer + duration){
if (!redisplay)
is->frame_drops_late++;
pictq_next_picture(is);
redisplay = 0;
goto retry;
}
}
@@ -1459,7 +1481,7 @@ static void alloc_picture(VideoState *is)
avfilter_unref_bufferp(&vp->picref);
#endif
video_open(is, 0);
video_open(is, 0, vp);
vp->bmp = SDL_CreateYUVOverlay(vp->width, vp->height,
SDL_YV12_OVERLAY,
@@ -1497,29 +1519,13 @@ static void duplicate_right_border_pixels(SDL_Overlay *bmp) {
}
}
static int queue_picture(VideoState *is, AVFrame *src_frame, double pts1, int64_t pos, int serial)
static int queue_picture(VideoState *is, AVFrame *src_frame, double pts, int64_t pos, int serial)
{
VideoPicture *vp;
double frame_delay, pts = pts1;
/* compute the exact PTS for the picture if it is omitted in the stream
* pts1 is the dts of the pkt / pts of the frame */
if (pts != 0) {
/* update video clock with pts, if present */
is->video_clock = pts;
} else {
pts = is->video_clock;
}
/* update video clock for next frame */
frame_delay = av_q2d(is->video_st->codec->time_base);
/* for MPEG2, the frame can be repeated, so we update the
clock accordingly */
frame_delay += src_frame->repeat_pict * (frame_delay * 0.5);
is->video_clock += frame_delay;
#if defined(DEBUG_SYNC) && 0
printf("frame_type=%c clock=%0.3f pts=%0.3f\n",
av_get_picture_type_char(src_frame->pict_type), pts, pts1);
printf("frame_type=%c pts=%0.3f\n",
av_get_picture_type_char(src_frame->pict_type), pts);
#endif
/* wait until we have space to put a new picture */
@@ -1619,7 +1625,6 @@ static int queue_picture(VideoState *is, AVFrame *src_frame, double pts1, int64_
vp->pts = pts;
vp->pos = pos;
vp->skip = 0;
vp->serial = serial;
/* now we can update the picture count */
@@ -1634,7 +1639,7 @@ static int queue_picture(VideoState *is, AVFrame *src_frame, double pts1, int64_
static int get_video_frame(VideoState *is, AVFrame *frame, int64_t *pts, AVPacket *pkt, int *serial)
{
int got_picture, i;
int got_picture;
if (packet_queue_get(&is->videoq, pkt, 1, serial) < 0)
return -1;
@@ -1644,9 +1649,6 @@ static int get_video_frame(VideoState *is, AVFrame *frame, int64_t *pts, AVPacke
SDL_LockMutex(is->pictq_mutex);
// Make sure there are no long delay timers (ideally we should just flush the queue but that's harder)
for (i = 0; i < VIDEO_PICTURE_QUEUE_SIZE; i++) {
is->pictq[i].skip = 1;
}
while (is->pictq_size && !is->videoq.abort_request) {
SDL_CondWait(is->pictq_cond, is->pictq_mutex);
}
@@ -1684,7 +1686,7 @@ static int get_video_frame(VideoState *is, AVFrame *frame, int64_t *pts, AVPacke
double clockdiff = get_video_clock(is) - get_master_clock(is);
double dpts = av_q2d(is->video_st->time_base) * *pts;
double ptsdiff = dpts - is->frame_last_pts;
if (fabs(clockdiff) < AV_NOSYNC_THRESHOLD &&
if (!isnan(clockdiff) && fabs(clockdiff) < AV_NOSYNC_THRESHOLD &&
ptsdiff > 0 && ptsdiff < AV_NOSYNC_THRESHOLD &&
clockdiff + ptsdiff - is->frame_last_filter_delay < 0) {
is->frame_last_dropped_pos = pkt->pos;
@@ -1753,6 +1755,7 @@ static int configure_video_filters(AVFilterGraph *graph, VideoState *is, const c
if (!buffersink_params)
return AVERROR(ENOMEM);
av_opt_get_int(sws_opts, "sws_flags", 0, &sws_flags);
snprintf(sws_flags_str, sizeof(sws_flags_str), "flags=%"PRId64, sws_flags);
graph->scale_sws_opts = av_strdup(sws_flags_str);
@@ -1814,6 +1817,7 @@ static int video_thread(void *arg)
int last_w = 0;
int last_h = 0;
enum AVPixelFormat last_format = -2;
int last_serial = -1;
if (codec->codec->capabilities & CODEC_CAP_DR1) {
is->use_dr1 = 1;
@@ -1844,9 +1848,14 @@ static int video_thread(void *arg)
#if CONFIG_AVFILTER
if ( last_w != frame->width
|| last_h != frame->height
|| last_format != frame->format) {
av_log(NULL, AV_LOG_INFO, "Frame changed from size:%dx%d to size:%dx%d\n",
last_w, last_h, frame->width, frame->height);
|| last_format != frame->format
|| last_serial != serial) {
av_log(NULL, AV_LOG_DEBUG,
"Video frame changed from size:%dx%d format:%s serial:%d to size:%dx%d format:%s serial:%d\n",
last_w, last_h,
(const char *)av_x_if_null(av_get_pix_fmt_name(last_format), "none"), last_serial,
frame->width, frame->height,
(const char *)av_x_if_null(av_get_pix_fmt_name(frame->format), "none"), serial);
avfilter_graph_free(&graph);
graph = avfilter_graph_alloc();
if ((ret = configure_video_filters(graph, is, vfilters, frame)) < 0) {
@@ -1862,6 +1871,7 @@ static int video_thread(void *arg)
last_w = frame->width;
last_h = frame->height;
last_format = frame->format;
last_serial = serial;
}
frame->pts = pts_int;
@@ -2037,7 +2047,7 @@ static int synchronize_audio(VideoState *is, int nb_samples)
diff = get_audio_clock(is) - get_master_clock(is);
if (fabs(diff) < AV_NOSYNC_THRESHOLD) {
if (!isnan(diff) && fabs(diff) < AV_NOSYNC_THRESHOLD) {
is->audio_diff_cum = diff + is->audio_diff_avg_coef * is->audio_diff_cum;
if (is->audio_diff_avg_count < AUDIO_DIFF_AVG_NB) {
/* not enough measures to have a correct estimate */
@@ -2052,9 +2062,9 @@ static int synchronize_audio(VideoState *is, int nb_samples)
max_nb_samples = ((nb_samples * (100 + SAMPLE_CORRECTION_PERCENT_MAX) / 100));
wanted_nb_samples = FFMIN(FFMAX(wanted_nb_samples, min_nb_samples), max_nb_samples);
}
av_dlog(NULL, "diff=%f adiff=%f sample_diff=%d apts=%0.3f vpts=%0.3f %f\n",
av_dlog(NULL, "diff=%f adiff=%f sample_diff=%d apts=%0.3f %f\n",
diff, avg_diff, wanted_nb_samples - nb_samples,
is->audio_clock, is->video_clock, is->audio_diff_threshold);
is->audio_clock, is->audio_diff_threshold);
}
} else {
/* too big difference : may be initial PTS errors, so
@@ -2067,8 +2077,14 @@ static int synchronize_audio(VideoState *is, int nb_samples)
return wanted_nb_samples;
}
/* decode one audio frame and returns its uncompressed size */
static int audio_decode_frame(VideoState *is, double *pts_ptr)
/**
* Decode one audio frame and return its uncompressed size.
*
* The processed audio frame is decoded, converted if required, and
* stored in is->audio_buf, with size in bytes given by the return
* value.
*/
static int audio_decode_frame(VideoState *is)
{
AVPacket *pkt_temp = &is->audio_pkt_temp;
AVPacket *pkt = &is->audio_pkt;
@@ -2076,7 +2092,7 @@ static int audio_decode_frame(VideoState *is, double *pts_ptr)
int len1, len2, data_size, resampled_data_size;
int64_t dec_channel_layout;
int got_frame;
double pts;
av_unused double audio_clock0;
int new_packet = 0;
int flush_complete = 0;
int wanted_nb_samples;
@@ -2090,6 +2106,9 @@ static int audio_decode_frame(VideoState *is, double *pts_ptr)
} else
avcodec_get_frame_defaults(is->frame);
if (is->audioq.serial != is->audio_pkt_temp_serial)
break;
if (is->paused)
return -1;
@@ -2112,13 +2131,13 @@ static int audio_decode_frame(VideoState *is, double *pts_ptr)
flush_complete = 1;
continue;
}
data_size = av_samples_get_buffer_size(NULL, is->frame->channels,
data_size = av_samples_get_buffer_size(NULL, av_frame_get_channels(is->frame),
is->frame->nb_samples,
is->frame->format, 1);
dec_channel_layout =
(is->frame->channel_layout && is->frame->channels == av_get_channel_layout_nb_channels(is->frame->channel_layout)) ?
is->frame->channel_layout : av_get_default_channel_layout(is->frame->channels);
(is->frame->channel_layout && av_frame_get_channels(is->frame) == av_get_channel_layout_nb_channels(is->frame->channel_layout)) ?
is->frame->channel_layout : av_get_default_channel_layout(av_frame_get_channels(is->frame));
wanted_nb_samples = synchronize_audio(is, is->frame->nb_samples);
if (is->frame->format != is->audio_src.fmt ||
@@ -2132,20 +2151,21 @@ static int audio_decode_frame(VideoState *is, double *pts_ptr)
0, NULL);
if (!is->swr_ctx || swr_init(is->swr_ctx) < 0) {
fprintf(stderr, "Cannot create sample rate converter for conversion of %d Hz %s %d channels to %d Hz %s %d channels!\n",
is->frame->sample_rate, av_get_sample_fmt_name(is->frame->format), (int)is->frame->channels,
is->audio_tgt.freq, av_get_sample_fmt_name(is->audio_tgt.fmt), is->audio_tgt.channels);
is->frame->sample_rate, av_get_sample_fmt_name(is->frame->format), av_frame_get_channels(is->frame),
is->audio_tgt.freq, av_get_sample_fmt_name(is->audio_tgt.fmt), is->audio_tgt.channels);
break;
}
is->audio_src.channel_layout = dec_channel_layout;
is->audio_src.channels = is->frame->channels;
is->audio_src.channels = av_frame_get_channels(is->frame);
is->audio_src.freq = is->frame->sample_rate;
is->audio_src.fmt = is->frame->format;
}
if (is->swr_ctx) {
const uint8_t **in = (const uint8_t **)is->frame->extended_data;
uint8_t *out[] = {is->audio_buf2};
int out_count = sizeof(is->audio_buf2) / is->audio_tgt.channels / av_get_bytes_per_sample(is->audio_tgt.fmt);
uint8_t **out = &is->audio_buf1;
int out_count = (int64_t)wanted_nb_samples * is->audio_tgt.freq / is->frame->sample_rate + 256;
int out_size = av_samples_get_buffer_size(NULL, is->audio_tgt.channels, out_count, is->audio_tgt.fmt, 0);
if (wanted_nb_samples != is->frame->nb_samples) {
if (swr_set_compensation(is->swr_ctx, (wanted_nb_samples - is->frame->nb_samples) * is->audio_tgt.freq / is->frame->sample_rate,
wanted_nb_samples * is->audio_tgt.freq / is->frame->sample_rate) < 0) {
@@ -2153,6 +2173,9 @@ static int audio_decode_frame(VideoState *is, double *pts_ptr)
break;
}
}
av_fast_malloc(&is->audio_buf1, &is->audio_buf1_size, out_size);
if (!is->audio_buf1)
return AVERROR(ENOMEM);
len2 = swr_convert(is->swr_ctx, out, out_count, in, is->frame->nb_samples);
if (len2 < 0) {
fprintf(stderr, "swr_convert() failed\n");
@@ -2162,24 +2185,22 @@ static int audio_decode_frame(VideoState *is, double *pts_ptr)
fprintf(stderr, "warning: audio buffer is probably too small\n");
swr_init(is->swr_ctx);
}
is->audio_buf = is->audio_buf2;
is->audio_buf = is->audio_buf1;
resampled_data_size = len2 * is->audio_tgt.channels * av_get_bytes_per_sample(is->audio_tgt.fmt);
} else {
is->audio_buf = is->frame->data[0];
resampled_data_size = data_size;
}
/* if no pts, then compute it */
pts = is->audio_clock;
*pts_ptr = pts;
audio_clock0 = is->audio_clock;
is->audio_clock += (double)data_size /
(is->frame->channels * is->frame->sample_rate * av_get_bytes_per_sample(is->frame->format));
(av_frame_get_channels(is->frame) * is->frame->sample_rate * av_get_bytes_per_sample(is->frame->format));
#ifdef DEBUG
{
static double last_clock;
printf("audio: delay=%0.3f clock=%0.3f pts=%0.3f\n",
printf("audio: delay=%0.3f clock=%0.3f clock0=%0.3f\n",
is->audio_clock - last_clock,
is->audio_clock, pts);
is->audio_clock, audio_clock0);
last_clock = is->audio_clock;
}
#endif
@@ -2191,7 +2212,7 @@ static int audio_decode_frame(VideoState *is, double *pts_ptr)
av_free_packet(pkt);
memset(pkt_temp, 0, sizeof(*pkt_temp));
if (is->paused || is->audioq.abort_request) {
if (is->audioq.abort_request) {
return -1;
}
@@ -2212,6 +2233,7 @@ static int audio_decode_frame(VideoState *is, double *pts_ptr)
/* if update the audio clock with the pts */
if (pkt->pts != AV_NOPTS_VALUE) {
is->audio_clock = av_q2d(is->audio_st->time_base)*pkt->pts;
is->audio_clock_serial = is->audio_pkt_temp_serial;
}
}
}
@@ -2223,13 +2245,12 @@ static void sdl_audio_callback(void *opaque, Uint8 *stream, int len)
int audio_size, len1;
int bytes_per_sec;
int frame_size = av_samples_get_buffer_size(NULL, is->audio_tgt.channels, 1, is->audio_tgt.fmt, 1);
double pts;
audio_callback_time = av_gettime();
while (len > 0) {
if (is->audio_buf_index >= is->audio_buf_size) {
audio_size = audio_decode_frame(is, &pts);
audio_size = audio_decode_frame(is);
if (audio_size < 0) {
/* if error, just output silence */
is->audio_buf = is->silence_buf;
@@ -2254,7 +2275,7 @@ static void sdl_audio_callback(void *opaque, Uint8 *stream, int len)
/* Let's assume the audio driver that is used by SDL has two periods. */
is->audio_current_pts = is->audio_clock - (double)(2 * is->audio_hw_buf_size + is->audio_write_buf_size) / bytes_per_sec;
is->audio_current_pts_drift = is->audio_current_pts - audio_callback_time / 1000000.0;
if (is->audioq.serial == is->audio_pkt_temp_serial)
if (is->audioq.serial == is->audio_clock_serial)
check_external_clock_sync(is, is->audio_current_pts);
}
@@ -2438,6 +2459,7 @@ static void stream_component_close(VideoState *is, int stream_index)
av_free_packet(&is->audio_pkt);
swr_free(&is->swr_ctx);
av_freep(&is->audio_buf1);
is->audio_buf1_size = 0;
is->audio_buf = NULL;
avcodec_free_frame(&is->frame);
@@ -2614,7 +2636,7 @@ static int read_thread(void *arg)
wanted_stream[AVMEDIA_TYPE_AUDIO],
st_index[AVMEDIA_TYPE_VIDEO],
NULL, 0);
if (!video_disable)
if (!video_disable && !subtitle_disable)
st_index[AVMEDIA_TYPE_SUBTITLE] =
av_find_best_stream(ic, AVMEDIA_TYPE_SUBTITLE,
wanted_stream[AVMEDIA_TYPE_SUBTITLE],
@@ -2637,7 +2659,6 @@ static int read_thread(void *arg)
if (st_index[AVMEDIA_TYPE_VIDEO] >= 0) {
ret = stream_component_open(is, st_index[AVMEDIA_TYPE_VIDEO]);
}
is->refresh_tid = SDL_CreateThread(refresh_thread, is);
if (is->show_mode == SHOW_MODE_NONE)
is->show_mode = ret >= 0 ? SHOW_MODE_VIDEO : SHOW_MODE_RDFT;
@@ -2698,14 +2719,15 @@ static int read_thread(void *arg)
packet_queue_put(&is->videoq, &flush_pkt);
}
if (is->seek_flags & AVSEEK_FLAG_BYTE) {
//FIXME: use a cleaner way to signal obsolete external clock...
update_external_clock_pts(is, (double)AV_NOPTS_VALUE);
update_external_clock_pts(is, NAN);
} else {
update_external_clock_pts(is, seek_target / (double)AV_TIME_BASE);
}
}
is->seek_req = 0;
eof = 0;
if (is->paused)
step_to_next_frame(is);
}
if (is->queue_attachments_req) {
avformat_queue_attached_pictures(ic);
@@ -2833,11 +2855,12 @@ static VideoState *stream_open(const char *filename, AVInputFormat *iformat)
is->continue_read_thread = SDL_CreateCond();
//FIXME: use a cleaner way to signal obsolete external clock...
update_external_clock_pts(is, (double)AV_NOPTS_VALUE);
update_external_clock_pts(is, NAN);
update_external_clock_speed(is, 1.0);
is->audio_current_pts_drift = -av_gettime() / 1000000.0;
is->video_current_pts_drift = is->audio_current_pts_drift;
is->audio_clock_serial = -1;
is->video_clock_serial = -1;
is->av_sync_type = av_sync_type;
is->read_tid = SDL_CreateThread(read_thread, is);
if (!is->read_tid) {
@@ -2914,30 +2937,40 @@ static void toggle_full_screen(VideoState *is)
is->pictq[i].reallocate = 1;
#endif
is_full_screen = !is_full_screen;
video_open(is, 1);
}
static void toggle_pause(VideoState *is)
{
stream_toggle_pause(is);
is->step = 0;
}
static void step_to_next_frame(VideoState *is)
{
/* if the stream is paused unpause it, then step */
if (is->paused)
stream_toggle_pause(is);
is->step = 1;
video_open(is, 1, NULL);
}
static void toggle_audio_display(VideoState *is)
{
int bgcolor = SDL_MapRGB(screen->format, 0x00, 0x00, 0x00);
is->show_mode = (is->show_mode + 1) % SHOW_MODE_NB;
fill_rectangle(screen,
is->xleft, is->ytop, is->width, is->height,
bgcolor, 1);
int next = is->show_mode;
do {
next = (next + 1) % SHOW_MODE_NB;
} while (next != is->show_mode && (next == SHOW_MODE_VIDEO && !is->video_st || next != SHOW_MODE_VIDEO && !is->audio_st));
if (is->show_mode != next) {
fill_rectangle(screen,
is->xleft, is->ytop, is->width, is->height,
bgcolor, 1);
is->force_refresh = 1;
is->show_mode = next;
}
}
static void refresh_loop_wait_event(VideoState *is, SDL_Event *event) {
double remaining_time = 0.0;
SDL_PumpEvents();
while (!SDL_PeepEvents(event, 1, SDL_GETEVENT, SDL_ALLEVENTS)) {
if (!cursor_hidden && av_gettime() - cursor_last_shown > CURSOR_HIDE_DELAY) {
SDL_ShowCursor(0);
cursor_hidden = 1;
}
if (remaining_time > 0.0)
av_usleep((int64_t)(remaining_time * 1000000.0));
remaining_time = REFRESH_RATE;
if (is->show_mode != SHOW_MODE_NONE && (!is->paused || is->force_refresh))
video_refresh(is, &remaining_time);
SDL_PumpEvents();
}
}
/* handle an event sent by the GUI */
@@ -2948,7 +2981,7 @@ static void event_loop(VideoState *cur_stream)
for (;;) {
double x;
SDL_WaitEvent(&event);
refresh_loop_wait_event(cur_stream, &event);
switch (event.type) {
case SDL_KEYDOWN:
if (exit_on_keydown) {
@@ -2982,7 +3015,6 @@ static void event_loop(VideoState *cur_stream)
break;
case SDLK_w:
toggle_audio_display(cur_stream);
cur_stream->force_refresh = 1;
break;
case SDLK_PAGEUP:
incr = 600.0;
@@ -3017,6 +3049,8 @@ static void event_loop(VideoState *cur_stream)
stream_seek(cur_stream, pos, incr, 1);
} else {
pos = get_master_clock(cur_stream);
if (isnan(pos))
pos = (double)cur_stream->seek_pos / AV_TIME_BASE;
pos += incr;
if (cur_stream->ic->start_time != AV_NOPTS_VALUE && pos < cur_stream->ic->start_time / (double)AV_TIME_BASE)
pos = cur_stream->ic->start_time / (double)AV_TIME_BASE;
@@ -3086,14 +3120,6 @@ static void event_loop(VideoState *cur_stream)
case FF_ALLOC_EVENT:
alloc_picture(event.user.data1);
break;
case FF_REFRESH_EVENT:
if (!cursor_hidden && av_gettime() - cursor_last_shown > CURSOR_HIDE_DELAY) {
SDL_ShowCursor(0);
cursor_hidden = 1;
}
video_refresh(event.user.data1);
cur_stream->refresh = 0;
break;
default:
break;
}
@@ -3212,6 +3238,7 @@ static const OptionDef options[] = {
{ "fs", OPT_BOOL, { &is_full_screen }, "force full screen" },
{ "an", OPT_BOOL, { &audio_disable }, "disable audio" },
{ "vn", OPT_BOOL, { &video_disable }, "disable video" },
{ "sn", OPT_BOOL, { &subtitle_disable }, "disable subtitling" },
{ "ast", OPT_INT | HAS_ARG | OPT_EXPERT, { &wanted_stream[AVMEDIA_TYPE_AUDIO] }, "select desired audio stream", "stream_number" },
{ "vst", OPT_INT | HAS_ARG | OPT_EXPERT, { &wanted_stream[AVMEDIA_TYPE_VIDEO] }, "select desired video stream", "stream_number" },
{ "sst", OPT_INT | HAS_ARG | OPT_EXPERT, { &wanted_stream[AVMEDIA_TYPE_SUBTITLE] }, "select desired subtitle stream", "stream_number" },
@@ -3241,7 +3268,7 @@ static const OptionDef options[] = {
{ "infbuf", OPT_BOOL | OPT_EXPERT, { &infinite_buffer }, "don't limit the input buffer size (useful with realtime streams)", "" },
{ "window_title", OPT_STRING | HAS_ARG, { &window_title }, "set window title", "window title" },
#if CONFIG_AVFILTER
{ "vf", OPT_STRING | HAS_ARG, { &vfilters }, "video filters", "filter list" },
{ "vf", OPT_STRING | HAS_ARG, { &vfilters }, "set video filters", "filter_graph" },
#endif
{ "rdftspeed", OPT_INT | HAS_ARG| OPT_AUDIO | OPT_EXPERT, { &rdftspeed }, "rdft speed", "msecs" },
{ "showmode", HAS_ARG, { .func_arg = opt_show_mode}, "select show mode (0 = video, 1 = waves, 2 = RDFT)", "mode" },

View File

@@ -203,6 +203,7 @@ static char *value_string(char *buf, int buf_size, struct unit_value uv)
vald /= pow(10, index * 3);
prefix_string = decimal_unit_prefixes[index];
}
vali = vald;
}
if (show_float || (use_value_prefix && vald != (long long int)vald))
@@ -1472,11 +1473,11 @@ static void show_frame(WriterContext *w, AVFrame *frame, AVStream *stream,
print_time("pkt_pts_time", frame->pkt_pts, &stream->time_base);
print_ts ("pkt_dts", frame->pkt_dts);
print_time("pkt_dts_time", frame->pkt_dts, &stream->time_base);
print_duration_ts ("pkt_duration", frame->pkt_duration);
print_duration_time("pkt_duration_time", frame->pkt_duration, &stream->time_base);
if (frame->pkt_pos != -1) print_fmt ("pkt_pos", "%"PRId64, frame->pkt_pos);
print_duration_ts ("pkt_duration", av_frame_get_pkt_duration(frame));
print_duration_time("pkt_duration_time", av_frame_get_pkt_duration(frame), &stream->time_base);
if (av_frame_get_pkt_pos (frame) != -1) print_fmt ("pkt_pos", "%"PRId64, av_frame_get_pkt_pos(frame));
else print_str_opt("pkt_pos", "N/A");
if (frame->pkt_size != -1) print_fmt ("pkt_size", "%d", av_frame_get_pkt_size(frame));
if (av_frame_get_pkt_size(frame) != -1) print_fmt ("pkt_size", "%d", av_frame_get_pkt_size(frame));
else print_str_opt("pkt_size", "N/A");
switch (stream->codec->codec_type) {

View File

@@ -328,6 +328,14 @@ static AVLFG random_state;
static FILE *logfile = NULL;
static void htmlstrip(char *s) {
while (s && *s) {
s += strspn(s, "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ,. ");
if (*s)
*s++ = '?';
}
}
static int64_t ffm_read_write_index(int fd)
{
uint8_t buf[8];
@@ -1125,7 +1133,7 @@ static int extract_rates(char *rates, int ratelen, const char *request)
if (av_strncasecmp(p, "Pragma:", 7) == 0) {
const char *q = p + 7;
while (*q && *q != '\n' && isspace(*q))
while (*q && *q != '\n' && av_isspace(*q))
q++;
if (av_strncasecmp(q, "stream-switch-entry=", 20) == 0) {
@@ -1147,7 +1155,7 @@ static int extract_rates(char *rates, int ratelen, const char *request)
if (stream_no < ratelen && stream_no >= 0)
rates[stream_no] = rate_no;
while (*q && *q != '\n' && !isspace(*q))
while (*q && *q != '\n' && !av_isspace(*q))
q++;
}
@@ -1258,7 +1266,7 @@ static void get_word(char *buf, int buf_size, const char **pp)
p = *pp;
skip_spaces(&p);
q = buf;
while (!isspace(*p) && *p != '\0') {
while (!av_isspace(*p) && *p != '\0') {
if ((q - buf) < buf_size - 1)
*q++ = *p;
p++;
@@ -1275,7 +1283,7 @@ static void get_arg(char *buf, int buf_size, const char **pp)
int quote;
p = *pp;
while (isspace(*p)) p++;
while (av_isspace(*p)) p++;
q = buf;
quote = 0;
if (*p == '\"' || *p == '\'')
@@ -1285,7 +1293,7 @@ static void get_arg(char *buf, int buf_size, const char **pp)
if (*p == quote)
break;
} else {
if (isspace(*p))
if (av_isspace(*p))
break;
}
if (*p == '\0')
@@ -1389,7 +1397,7 @@ static IPAddressACL* parse_dynamic_acl(FFStream *stream, HTTPContext *c)
break;
line_num++;
p = line;
while (isspace(*p))
while (av_isspace(*p))
p++;
if (*p == '\0' || *p == '#')
continue;
@@ -1540,7 +1548,7 @@ static int http_parse_request(HTTPContext *c)
for (p = c->buffer; *p && *p != '\r' && *p != '\n'; ) {
if (av_strncasecmp(p, "User-Agent:", 11) == 0) {
useragent = p + 11;
if (*useragent && *useragent != '\n' && isspace(*useragent))
if (*useragent && *useragent != '\n' && av_isspace(*useragent))
useragent++;
break;
}
@@ -1668,7 +1676,7 @@ static int http_parse_request(HTTPContext *c)
char *eoh;
char hostbuf[260];
while (isspace(*hostinfo))
while (av_isspace(*hostinfo))
hostinfo++;
eoh = strchr(hostinfo, '\n');
@@ -1887,6 +1895,7 @@ static int http_parse_request(HTTPContext *c)
send_error:
c->http_error = 404;
q = c->buffer;
htmlstrip(msg);
snprintf(q, c->buffer_size,
"HTTP/1.0 404 Not Found\r\n"
"Content-type: text/html\r\n"
@@ -4100,7 +4109,7 @@ static int parse_ffconfig(const char *filename)
break;
line_num++;
p = line;
while (isspace(*p))
while (av_isspace(*p))
p++;
if (*p == '\0' || *p == '#')
continue;
@@ -4237,7 +4246,7 @@ static int parse_ffconfig(const char *filename)
get_arg(arg, sizeof(arg), &p);
p1 = arg;
fsize = strtod(p1, &p1);
switch(toupper(*p1)) {
switch(av_toupper(*p1)) {
case 'K':
fsize *= 1024;
break;

View File

@@ -44,7 +44,7 @@ static av_cold int zero12v_decode_init(AVCodecContext *avctx)
static int zero12v_decode_frame(AVCodecContext *avctx, void *data,
int *got_frame, AVPacket *avpkt)
{
int line = 0;
int line = 0, ret;
const int width = avctx->width;
AVFrame *pic = avctx->coded_frame;
uint16_t *y, *u, *v;
@@ -65,8 +65,8 @@ static int zero12v_decode_frame(AVCodecContext *avctx, void *data,
}
pic->reference = 0;
if (ff_get_buffer(avctx, pic) < 0)
return AVERROR_INVALIDDATA;;
if ((ret = ff_get_buffer(avctx, pic)) < 0)
return ret;
y = (uint16_t *)pic->data[0];
u = (uint16_t *)pic->data[1];

View File

@@ -130,7 +130,7 @@ typedef struct CFrameBuffer {
typedef struct FourXContext {
AVCodecContext *avctx;
DSPContext dsp;
AVFrame current_picture, last_picture;
AVFrame *current_picture, *last_picture;
GetBitContext pre_gb; ///< ac/dc prefix
GetBitContext gb;
GetByteContext g;
@@ -138,7 +138,7 @@ typedef struct FourXContext {
int mv[256];
VLC pre_vlc;
int last_dc;
DECLARE_ALIGNED(16, DCTELEM, block)[6][64];
DECLARE_ALIGNED(16, int16_t, block)[6][64];
void *bitstream_buffer;
unsigned int bitstream_buffer_size;
int version;
@@ -153,7 +153,7 @@ typedef struct FourXContext {
#define MULTIPLY(var, const) (((var) * (const)) >> 16)
static void idct(DCTELEM block[64])
static void idct(int16_t block[64])
{
int tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7;
int tmp10, tmp11, tmp12, tmp13;
@@ -261,9 +261,9 @@ static void init_mv(FourXContext *f)
for (i = 0; i < 256; i++) {
if (f->version > 1)
f->mv[i] = mv[i][0] + mv[i][1] * f->current_picture.linesize[0] / 2;
f->mv[i] = mv[i][0] + mv[i][1] * f->current_picture->linesize[0] / 2;
else
f->mv[i] = (i & 15) - 8 + ((i >> 4) - 8) * f->current_picture.linesize[0] / 2;
f->mv[i] = (i & 15) - 8 + ((i >> 4) - 8) * f->current_picture->linesize[0] / 2;
}
}
@@ -340,7 +340,7 @@ static void decode_p_block(FourXContext *f, uint16_t *dst, uint16_t *src,
int code = get_vlc2(&f->gb,
block_type_vlc[1 - (f->version > 1)][index].table,
BLOCK_TYPE_VLC_BITS, 1);
uint16_t *start = (uint16_t *)f->last_picture.data[0];
uint16_t *start = (uint16_t *)f->last_picture->data[0];
uint16_t *end = start + stride * (f->avctx->height - h + 1) - (1 << log2w);
av_assert2(code >= 0 && code <= 6);
@@ -409,9 +409,9 @@ static int decode_p_frame(FourXContext *f, const uint8_t *buf, int length)
int x, y;
const int width = f->avctx->width;
const int height = f->avctx->height;
uint16_t *src = (uint16_t *)f->last_picture.data[0];
uint16_t *dst = (uint16_t *)f->current_picture.data[0];
const int stride = f->current_picture.linesize[0] >> 1;
uint16_t *src = (uint16_t *)f->last_picture->data[0];
uint16_t *dst = (uint16_t *)f->current_picture->data[0];
const int stride = f->current_picture->linesize[0] >> 1;
unsigned int bitstream_size, bytestream_size, wordstream_size, extra,
bytestream_offset, wordstream_offset;
@@ -471,7 +471,7 @@ static int decode_p_frame(FourXContext *f, const uint8_t *buf, int length)
* decode block and dequantize.
* Note this is almost identical to MJPEG.
*/
static int decode_i_block(FourXContext *f, DCTELEM *block)
static int decode_i_block(FourXContext *f, int16_t *block)
{
int code, i, j, level, val;
@@ -521,10 +521,10 @@ static int decode_i_block(FourXContext *f, DCTELEM *block)
static inline void idct_put(FourXContext *f, int x, int y)
{
DCTELEM (*block)[64] = f->block;
int stride = f->current_picture.linesize[0] >> 1;
int16_t (*block)[64] = f->block;
int stride = f->current_picture->linesize[0] >> 1;
int i;
uint16_t *dst = ((uint16_t*)f->current_picture.data[0]) + y * stride + x;
uint16_t *dst = ((uint16_t*)f->current_picture->data[0]) + y * stride + x;
for (i = 0; i < 4; i++) {
block[i][0] += 0x80 * 8 * 8;
@@ -542,7 +542,7 @@ static inline void idct_put(FourXContext *f, int x, int y)
* cr = (-1b - 4g + 5r) / 14 */
for (y = 0; y < 8; y++) {
for (x = 0; x < 8; x++) {
DCTELEM *temp = block[(x >> 2) + 2 * (y >> 2)] +
int16_t *temp = block[(x >> 2) + 2 * (y >> 2)] +
2 * (x & 3) + 2 * 8 * (y & 3); // FIXME optimize
int cb = block[4][x + 8 * y];
int cr = block[5][x + 8 * y];
@@ -599,8 +599,10 @@ static const uint8_t *read_huffman_tables(FourXContext *f,
for (;;) {
int i;
if (start <= end && ptr_end - ptr < end - start + 1 + 1)
if (ptr_end - ptr < FFMAX(end - start + 1, 0) + 1) {
av_log(f->avctx, AV_LOG_ERROR, "invalid data in read_huffman_tables\n");
return NULL;
}
for (i = start; i <= end; i++)
frequency[i] = *ptr++;
start = *ptr++;
@@ -614,6 +616,11 @@ static const uint8_t *read_huffman_tables(FourXContext *f,
while ((ptr - buf) & 3)
ptr++; // 4byte align
if (ptr > ptr_end) {
av_log(f->avctx, AV_LOG_ERROR, "ptr overflow in read_huffman_tables\n");
return NULL;
}
for (j = 257; j < 512; j++) {
int min_freq[2] = { 256 * 256, 256 * 256 };
int smallest[2] = { 0, 0 };
@@ -681,8 +688,8 @@ static int decode_i2_frame(FourXContext *f, const uint8_t *buf, int length)
const int width = f->avctx->width;
const int height = f->avctx->height;
const int mbs = (FFALIGN(width, 16) >> 4) * (FFALIGN(height, 16) >> 4);
uint16_t *dst = (uint16_t*)f->current_picture.data[0];
const int stride = f->current_picture.linesize[0]>>1;
uint16_t *dst = (uint16_t*)f->current_picture->data[0];
const int stride = f->current_picture->linesize[0]>>1;
const uint8_t *buf_end = buf + length;
GetByteContext g3;
@@ -750,8 +757,12 @@ static int decode_i_frame(FourXContext *f, const uint8_t *buf, int length)
}
prestream = read_huffman_tables(f, prestream, buf + length - prestream);
if (!prestream)
return -1;
if (!prestream) {
av_log(f->avctx, AV_LOG_ERROR, "Error reading Huffman tables.\n");
return AVERROR_INVALIDDATA;
}
av_assert0(prestream <= buf + length);
init_get_bits(&f->gb, buf + 4, 8 * bitstream_size);
@@ -867,9 +878,9 @@ static int decode_frame(AVCodecContext *avctx, void *data,
frame_size = buf_size - 12;
}
FFSWAP(AVFrame, f->current_picture, f->last_picture);
FFSWAP(AVFrame*, f->current_picture, f->last_picture);
p = &f->current_picture;
p = f->current_picture;
avctx->coded_frame = p;
// alternatively we would have to use our own buffer management
@@ -894,14 +905,14 @@ static int decode_frame(AVCodecContext *avctx, void *data,
return ret;
}
} else if (frame_4cc == AV_RL32("pfrm") || frame_4cc == AV_RL32("pfr2")) {
if (!f->last_picture.data[0]) {
f->last_picture.reference = 3;
if ((ret = ff_get_buffer(avctx, &f->last_picture)) < 0) {
if (!f->last_picture->data[0]) {
f->last_picture->reference = 3;
if ((ret = ff_get_buffer(avctx, f->last_picture)) < 0) {
av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
return ret;
}
for (i=0; i<avctx->height; i++)
memset(f->last_picture.data[0] + i*f->last_picture.linesize[0], 0, 2*avctx->width);
memset(f->last_picture->data[0] + i*f->last_picture->linesize[0], 0, 2*avctx->width);
}
p->pict_type = AV_PICTURE_TYPE_P;
@@ -927,16 +938,6 @@ static int decode_frame(AVCodecContext *avctx, void *data,
return buf_size;
}
static av_cold void common_init(AVCodecContext *avctx)
{
FourXContext * const f = avctx->priv_data;
ff_dsputil_init(&f->dsp, avctx);
f->avctx = avctx;
}
static av_cold int decode_init(AVCodecContext *avctx)
{
FourXContext * const f = avctx->priv_data;
@@ -950,10 +951,9 @@ static av_cold int decode_init(AVCodecContext *avctx)
return AVERROR_INVALIDDATA;
}
avcodec_get_frame_defaults(&f->current_picture);
avcodec_get_frame_defaults(&f->last_picture);
f->version = AV_RL32(avctx->extradata) >> 16;
common_init(avctx);
ff_dsputil_init(&f->dsp, avctx);
f->avctx = avctx;
init_vlcs(f);
if (f->version > 2)
@@ -961,6 +961,14 @@ static av_cold int decode_init(AVCodecContext *avctx)
else
avctx->pix_fmt = AV_PIX_FMT_BGR555;
f->current_picture = avcodec_alloc_frame();
f->last_picture = avcodec_alloc_frame();
if (!f->current_picture || !f->last_picture) {
avcodec_free_frame(&f->current_picture);
avcodec_free_frame(&f->last_picture);
return AVERROR(ENOMEM);
}
return 0;
}
@@ -977,10 +985,12 @@ static av_cold int decode_end(AVCodecContext *avctx)
f->cfrm[i].allocated_size = 0;
}
ff_free_vlc(&f->pre_vlc);
if (f->current_picture.data[0])
avctx->release_buffer(avctx, &f->current_picture);
if (f->last_picture.data[0])
avctx->release_buffer(avctx, &f->last_picture);
if (f->current_picture->data[0])
avctx->release_buffer(avctx, f->current_picture);
if (f->last_picture->data[0])
avctx->release_buffer(avctx, f->last_picture);
avcodec_free_frame(&f->current_picture);
avcodec_free_frame(&f->last_picture);
return 0;
}

View File

@@ -68,15 +68,16 @@ static int decode_frame(AVCodecContext *avctx, void *data,
unsigned char count;
unsigned int planes = c->planes;
unsigned char *planemap = c->planemap;
int ret;
if (c->pic.data[0])
avctx->release_buffer(avctx, &c->pic);
c->pic.reference = 0;
c->pic.buffer_hints = FF_BUFFER_HINTS_VALID;
if (ff_get_buffer(avctx, &c->pic) < 0){
if ((ret = ff_get_buffer(avctx, &c->pic)) < 0) {
av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
return -1;
return ret;
}
/* Set data pointer after line lengths */
@@ -96,14 +97,14 @@ static int decode_frame(AVCodecContext *avctx, void *data,
/* Decode a row of this plane */
while (dlen > 0) {
if (dp + 1 >= buf + buf_size)
return -1;
return AVERROR_INVALIDDATA;
if ((count = *dp++) <= 127) {
count++;
dlen -= count + 1;
if (pixptr + count * planes > pixptr_end)
break;
if (dp + count > buf + buf_size)
return -1;
return AVERROR_INVALIDDATA;
while (count--) {
*pixptr = *dp++;
pixptr += planes;
@@ -181,7 +182,7 @@ static av_cold int decode_init(AVCodecContext *avctx)
default:
av_log(avctx, AV_LOG_ERROR, "Error: Unsupported color depth: %u.\n",
avctx->bits_per_coded_sample);
return -1;
return AVERROR_INVALIDDATA;
}
return 0;

View File

@@ -44,7 +44,6 @@
/** decoder context */
typedef struct EightSvxContext {
AVFrame frame;
uint8_t fib_acc[2];
const int8_t *table;
@@ -88,6 +87,7 @@ static int eightsvx_decode_frame(AVCodecContext *avctx, void *data,
int *got_frame_ptr, AVPacket *avpkt)
{
EightSvxContext *esc = avctx->priv_data;
AVFrame *frame = data;
int buf_size;
int ch, ret;
int hdr_size = 2;
@@ -135,21 +135,20 @@ static int eightsvx_decode_frame(AVCodecContext *avctx, void *data,
}
/* get output buffer */
esc->frame.nb_samples = buf_size * 2;
if ((ret = ff_get_buffer(avctx, &esc->frame)) < 0) {
frame->nb_samples = buf_size * 2;
if ((ret = ff_get_buffer(avctx, frame)) < 0) {
av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
return ret;
}
for (ch = 0; ch < avctx->channels; ch++) {
delta_decode(esc->frame.data[ch], &esc->data[ch][esc->data_idx],
delta_decode(frame->data[ch], &esc->data[ch][esc->data_idx],
buf_size, &esc->fib_acc[ch], esc->table);
}
esc->data_idx += buf_size;
*got_frame_ptr = 1;
*(AVFrame *)data = esc->frame;
*got_frame_ptr = 1;
return ((avctx->frame_number == 0)*hdr_size + buf_size)*avctx->channels;
}
@@ -172,9 +171,6 @@ static av_cold int eightsvx_decode_init(AVCodecContext *avctx)
}
avctx->sample_fmt = AV_SAMPLE_FMT_U8P;
avcodec_get_frame_defaults(&esc->frame);
avctx->coded_frame = &esc->frame;
return 0;
}

View File

@@ -25,7 +25,6 @@ OBJS = allcodecs.o \
fmtconvert.o \
imgconvert.o \
jrevdct.o \
log2_tab.o \
mathtables.o \
options.o \
parser.o \
@@ -39,9 +38,9 @@ OBJS = allcodecs.o \
# parts needed for many different codecs
OBJS-$(CONFIG_AANDCTTABLES) += aandcttab.o
OBJS-$(CONFIG_AC3DSP) += ac3dsp.o
OBJS-$(CONFIG_AUDIO_FRAME_QUEUE) += audio_frame_queue.o
OBJS-$(CONFIG_CRYSTALHD) += crystalhd.o
OBJS-$(CONFIG_DCT) += dct.o dct32_fixed.o dct32_float.o
OBJS-$(CONFIG_DWT) += dwt.o snow.o
OBJS-$(CONFIG_DXVA2) += dxva2.o
OBJS-$(CONFIG_ENCODERS) += faandct.o jfdctfst.o jfdctint.o
OBJS-$(CONFIG_ERROR_RESILIENCE) += error_resilience.o
@@ -49,8 +48,10 @@ FFT-OBJS-$(CONFIG_HARDCODED_TABLES) += cos_tables.o cos_fixed_tables.o
OBJS-$(CONFIG_FFT) += avfft.o fft_fixed.o fft_float.o \
$(FFT-OBJS-yes)
OBJS-$(CONFIG_GOLOMB) += golomb.o
OBJS-$(CONFIG_H264CHROMA) += h264chroma.o
OBJS-$(CONFIG_H264DSP) += h264dsp.o h264idct.o
OBJS-$(CONFIG_H264PRED) += h264pred.o
OBJS-$(CONFIG_H264QPEL) += h264qpel.o
OBJS-$(CONFIG_HUFFMAN) += huffman.o
OBJS-$(CONFIG_LIBXVID) += libxvid_rc.o
OBJS-$(CONFIG_LPC) += lpc.o
@@ -68,6 +69,7 @@ OBJS-$(CONFIG_MPEGVIDEOENC) += mpegvideo_enc.o mpeg12data.o \
OBJS-$(CONFIG_RANGECODER) += rangecoder.o
RDFT-OBJS-$(CONFIG_HARDCODED_TABLES) += sin_tables.o
OBJS-$(CONFIG_RDFT) += rdft.o $(RDFT-OBJS-yes)
OBJS-$(CONFIG_SHARED) += log2_tab.o
OBJS-$(CONFIG_SINEWIN) += sinewin.o
OBJS-$(CONFIG_VAAPI) += vaapi.o
OBJS-$(CONFIG_VDPAU) += vdpau.o
@@ -84,8 +86,7 @@ OBJS-$(CONFIG_AAC_DECODER) += aacdec.o aactab.o aacsbr.o aacps.o \
OBJS-$(CONFIG_AAC_ENCODER) += aacenc.o aaccoder.o \
aacpsy.o aactab.o \
psymodel.o iirfilter.o \
mpeg4audio.o kbdwin.o \
audio_frame_queue.o
mpeg4audio.o kbdwin.o
OBJS-$(CONFIG_AASC_DECODER) += aasc.o msrledec.o
OBJS-$(CONFIG_AC3_DECODER) += ac3dec.o ac3dec_data.o ac3.o kbdwin.o
OBJS-$(CONFIG_AC3_ENCODER) += ac3enc_float.o ac3enc.o ac3tab.o \
@@ -158,7 +159,7 @@ OBJS-$(CONFIG_DCA_DECODER) += dcadec.o dca.o dcadsp.o \
dca_parser.o synth_filter.o
OBJS-$(CONFIG_DCA_ENCODER) += dcaenc.o dca.o
OBJS-$(CONFIG_DIRAC_DECODER) += diracdec.o dirac.o diracdsp.o \
dirac_arith.o mpeg12data.o dwt.o
dirac_arith.o mpeg12data.o dirac_dwt.o
OBJS-$(CONFIG_DFA_DECODER) += dfa.o
OBJS-$(CONFIG_DNXHD_DECODER) += dnxhddec.o dnxhddata.o
OBJS-$(CONFIG_DNXHD_ENCODER) += dnxhdenc.o dnxhddata.o
@@ -188,6 +189,7 @@ OBJS-$(CONFIG_EIGHTSVX_EXP_DECODER) += 8svx.o
OBJS-$(CONFIG_EIGHTSVX_FIB_DECODER) += 8svx.o
OBJS-$(CONFIG_ESCAPE124_DECODER) += escape124.o
OBJS-$(CONFIG_ESCAPE130_DECODER) += escape130.o
OBJS-$(CONFIG_EVRC_DECODER) += evrcdec.o acelp_vectors.o lsp.o
OBJS-$(CONFIG_EXR_DECODER) += exr.o
OBJS-$(CONFIG_FFV1_DECODER) += ffv1dec.o ffv1.o
OBJS-$(CONFIG_FFV1_ENCODER) += ffv1enc.o ffv1.o
@@ -218,6 +220,7 @@ OBJS-$(CONFIG_H263_DECODER) += h263dec.o h263.o ituh263dec.o \
mpeg4video.o mpeg4videodec.o flvdec.o\
intelh263dec.o
OBJS-$(CONFIG_H263_VAAPI_HWACCEL) += vaapi_mpeg4.o
OBJS-$(CONFIG_H263_VDPAU_HWACCEL) += vdpau_mpeg4.o
OBJS-$(CONFIG_H263_ENCODER) += mpeg4videoenc.o mpeg4video.o \
h263.o ituh263enc.o flvenc.o
OBJS-$(CONFIG_H264_DECODER) += h264.o \
@@ -228,6 +231,7 @@ OBJS-$(CONFIG_H264_DXVA2_HWACCEL) += dxva2_h264.o
OBJS-$(CONFIG_H264_VAAPI_HWACCEL) += vaapi_h264.o
OBJS-$(CONFIG_H264_VDA_HWACCEL) += vda_h264.o
OBJS-$(CONFIG_H264_VDA_DECODER) += vda_h264_dec.o
OBJS-$(CONFIG_H264_VDPAU_HWACCEL) += vdpau_h264.o
OBJS-$(CONFIG_HUFFYUV_DECODER) += huffyuv.o huffyuvdec.o
OBJS-$(CONFIG_HUFFYUV_ENCODER) += huffyuv.o huffyuvenc.o
OBJS-$(CONFIG_IAC_DECODER) += imc.o
@@ -284,15 +288,18 @@ OBJS-$(CONFIG_MPC8_DECODER) += mpc8.o mpc.o
OBJS-$(CONFIG_MPEGVIDEO_DECODER) += mpeg12.o mpeg12data.o \
mpegvideo.o error_resilience.o
OBJS-$(CONFIG_MPEG_XVMC_DECODER) += mpegvideo_xvmc.o
OBJS-$(CONFIG_MPEG1_VDPAU_HWACCEL) += vdpau_mpeg12.o
OBJS-$(CONFIG_MPEG1VIDEO_DECODER) += mpeg12.o mpeg12data.o
OBJS-$(CONFIG_MPEG1VIDEO_ENCODER) += mpeg12enc.o mpeg12.o \
timecode.o
OBJS-$(CONFIG_MPEG2_DXVA2_HWACCEL) += dxva2_mpeg2.o
OBJS-$(CONFIG_MPEG2_VAAPI_HWACCEL) += vaapi_mpeg2.o
OBJS-$(CONFIG_MPEG2_VDPAU_HWACCEL) += vdpau_mpeg12.o
OBJS-$(CONFIG_MPEG2VIDEO_DECODER) += mpeg12.o mpeg12data.o
OBJS-$(CONFIG_MPEG2VIDEO_ENCODER) += mpeg12enc.o mpeg12.o \
timecode.o
OBJS-$(CONFIG_MPEG4_VAAPI_HWACCEL) += vaapi_mpeg4.o
OBJS-$(CONFIG_MPEG4_VDPAU_HWACCEL) += vdpau_mpeg4.o
OBJS-$(CONFIG_MPL2_DECODER) += mpl2dec.o ass.o
OBJS-$(CONFIG_MSMPEG4V1_DECODER) += msmpeg4.o msmpeg4data.o
OBJS-$(CONFIG_MSMPEG4V2_DECODER) += msmpeg4.o msmpeg4data.o h263dec.o \
@@ -317,8 +324,7 @@ OBJS-$(CONFIG_MVC1_DECODER) += mvcdec.o
OBJS-$(CONFIG_MVC2_DECODER) += mvcdec.o
OBJS-$(CONFIG_MXPEG_DECODER) += mxpegdec.o mjpegdec.o mjpeg.o
OBJS-$(CONFIG_NELLYMOSER_DECODER) += nellymoserdec.o nellymoser.o
OBJS-$(CONFIG_NELLYMOSER_ENCODER) += nellymoserenc.o nellymoser.o \
audio_frame_queue.o
OBJS-$(CONFIG_NELLYMOSER_ENCODER) += nellymoserenc.o nellymoser.o
OBJS-$(CONFIG_NUV_DECODER) += nuv.o rtjpeg.o
OBJS-$(CONFIG_PAF_VIDEO_DECODER) += paf.o
OBJS-$(CONFIG_PAF_AUDIO_DECODER) += paf.o
@@ -358,8 +364,7 @@ OBJS-$(CONFIG_R10K_ENCODER) += r210enc.o
OBJS-$(CONFIG_R210_DECODER) += r210dec.o
OBJS-$(CONFIG_R210_ENCODER) += r210enc.o
OBJS-$(CONFIG_RA_144_DECODER) += ra144dec.o ra144.o celp_filters.o
OBJS-$(CONFIG_RA_144_ENCODER) += ra144enc.o ra144.o celp_filters.o \
audio_frame_queue.o
OBJS-$(CONFIG_RA_144_ENCODER) += ra144enc.o ra144.o celp_filters.o
OBJS-$(CONFIG_RA_288_DECODER) += ra288.o celp_filters.o
OBJS-$(CONFIG_RALF_DECODER) += ralf.o
OBJS-$(CONFIG_RAWVIDEO_DECODER) += rawdec.o
@@ -391,8 +396,8 @@ OBJS-$(CONFIG_SIPR_DECODER) += sipr.o acelp_pitch_delay.o \
OBJS-$(CONFIG_SMACKAUD_DECODER) += smacker.o
OBJS-$(CONFIG_SMACKER_DECODER) += smacker.o
OBJS-$(CONFIG_SMC_DECODER) += smc.o
OBJS-$(CONFIG_SNOW_DECODER) += snowdec.o snow.o
OBJS-$(CONFIG_SNOW_ENCODER) += snowenc.o snow.o \
OBJS-$(CONFIG_SNOW_DECODER) += snowdec.o snow.o snow_dwt.o
OBJS-$(CONFIG_SNOW_ENCODER) += snowenc.o snow.o snow_dwt.o \
h263.o ituh263enc.o
OBJS-$(CONFIG_SOL_DPCM_DECODER) += dpcm.o
OBJS-$(CONFIG_SONIC_DECODER) += sonic.o
@@ -453,12 +458,12 @@ OBJS-$(CONFIG_VC1_DECODER) += vc1dec.o vc1.o vc1data.o vc1dsp.o \
intrax8.o intrax8dsp.o
OBJS-$(CONFIG_VC1_DXVA2_HWACCEL) += dxva2_vc1.o
OBJS-$(CONFIG_VC1_VAAPI_HWACCEL) += vaapi_vc1.o
OBJS-$(CONFIG_VC1_VDPAU_HWACCEL) += vdpau_vc1.o
OBJS-$(CONFIG_VCR1_DECODER) += vcr1.o
OBJS-$(CONFIG_VCR1_ENCODER) += vcr1.o
OBJS-$(CONFIG_VMDAUDIO_DECODER) += vmdav.o
OBJS-$(CONFIG_VMDVIDEO_DECODER) += vmdav.o
OBJS-$(CONFIG_VMNC_DECODER) += vmnc.o
OBJS-$(CONFIG_VORBIS_DECODER) += vorbisdec.o vorbis.o \
OBJS-$(CONFIG_VORBIS_DECODER) += vorbisdec.o vorbisdsp.o vorbis.o \
vorbis_data.o xiph.o
OBJS-$(CONFIG_VORBIS_ENCODER) += vorbisenc.o vorbis.o \
vorbis_data.o
@@ -482,10 +487,10 @@ OBJS-$(CONFIG_WMAVOICE_DECODER) += wmavoice.o \
celp_filters.o \
acelp_vectors.o acelp_filters.o
OBJS-$(CONFIG_WMV1_DECODER) += msmpeg4.o msmpeg4data.o
OBJS-$(CONFIG_WMV2_DECODER) += wmv2dec.o wmv2.o \
OBJS-$(CONFIG_WMV2_DECODER) += wmv2dec.o wmv2.o wmv2dsp.o \
msmpeg4.o msmpeg4data.o \
intrax8.o intrax8dsp.o
OBJS-$(CONFIG_WMV2_ENCODER) += wmv2enc.o wmv2.o \
OBJS-$(CONFIG_WMV2_ENCODER) += wmv2enc.o wmv2.o wmv2dsp.o \
msmpeg4.o msmpeg4enc.o msmpeg4data.o \
mpeg4videodec.o ituh263dec.o h263dec.o
OBJS-$(CONFIG_WNV1_DECODER) += wnv1.o
@@ -660,46 +665,44 @@ OBJS-$(CONFIG_WTV_DEMUXER) += mpeg4audio.o mpegaudiodata.o
# external codec libraries
OBJS-$(CONFIG_LIBAACPLUS_ENCODER) += libaacplus.o
OBJS-$(CONFIG_LIBCELT_DECODER) += libcelt_dec.o
OBJS-$(CONFIG_LIBFAAC_ENCODER) += libfaac.o audio_frame_queue.o
OBJS-$(CONFIG_LIBFDK_AAC_ENCODER) += libfdk-aacenc.o audio_frame_queue.o
OBJS-$(CONFIG_LIBFAAC_ENCODER) += libfaac.o
OBJS-$(CONFIG_LIBFDK_AAC_ENCODER) += libfdk-aacenc.o
OBJS-$(CONFIG_LIBGSM_DECODER) += libgsm.o
OBJS-$(CONFIG_LIBGSM_ENCODER) += libgsm.o
OBJS-$(CONFIG_LIBGSM_MS_DECODER) += libgsm.o
OBJS-$(CONFIG_LIBGSM_MS_ENCODER) += libgsm.o
OBJS-$(CONFIG_LIBILBC_DECODER) += libilbc.o
OBJS-$(CONFIG_LIBILBC_ENCODER) += libilbc.o
OBJS-$(CONFIG_LIBMP3LAME_ENCODER) += libmp3lame.o mpegaudiodecheader.o \
audio_frame_queue.o
OBJS-$(CONFIG_LIBOPENCORE_AMRNB_DECODER) += libopencore-amr.o \
audio_frame_queue.o
OBJS-$(CONFIG_LIBOPENCORE_AMRNB_ENCODER) += libopencore-amr.o \
audio_frame_queue.o
OBJS-$(CONFIG_LIBMP3LAME_ENCODER) += libmp3lame.o mpegaudiodecheader.o
OBJS-$(CONFIG_LIBOPENCORE_AMRNB_DECODER) += libopencore-amr.o
OBJS-$(CONFIG_LIBOPENCORE_AMRNB_ENCODER) += libopencore-amr.o
OBJS-$(CONFIG_LIBOPENCORE_AMRWB_DECODER) += libopencore-amr.o
OBJS-$(CONFIG_LIBOPENJPEG_DECODER) += libopenjpegdec.o
OBJS-$(CONFIG_LIBOPENJPEG_ENCODER) += libopenjpegenc.o
OBJS-$(CONFIG_LIBOPUS_DECODER) += libopusdec.o libopus.o \
vorbis_data.o
OBJS-$(CONFIG_LIBOPUS_ENCODER) += libopusenc.o libopus.o \
vorbis_data.o audio_frame_queue.o
vorbis_data.o
OBJS-$(CONFIG_LIBSCHROEDINGER_DECODER) += libschroedingerdec.o \
libschroedinger.o
OBJS-$(CONFIG_LIBSCHROEDINGER_ENCODER) += libschroedingerenc.o \
libschroedinger.o
OBJS-$(CONFIG_LIBSPEEX_DECODER) += libspeexdec.o
OBJS-$(CONFIG_LIBSPEEX_ENCODER) += libspeexenc.o audio_frame_queue.o
OBJS-$(CONFIG_LIBSPEEX_ENCODER) += libspeexenc.o
OBJS-$(CONFIG_LIBSTAGEFRIGHT_H264_DECODER)+= libstagefright.o
OBJS-$(CONFIG_LIBTHEORA_ENCODER) += libtheoraenc.o
OBJS-$(CONFIG_LIBTWOLAME_ENCODER) += libtwolame.o
OBJS-$(CONFIG_LIBUTVIDEO_DECODER) += libutvideodec.o
OBJS-$(CONFIG_LIBUTVIDEO_ENCODER) += libutvideoenc.o
OBJS-$(CONFIG_LIBVO_AACENC_ENCODER) += libvo-aacenc.o mpeg4audio.o \
audio_frame_queue.o
OBJS-$(CONFIG_LIBVO_AACENC_ENCODER) += libvo-aacenc.o mpeg4audio.o
OBJS-$(CONFIG_LIBVO_AMRWBENC_ENCODER) += libvo-amrwbenc.o
OBJS-$(CONFIG_LIBVORBIS_DECODER) += libvorbisdec.o
OBJS-$(CONFIG_LIBVORBIS_ENCODER) += libvorbisenc.o audio_frame_queue.o \
OBJS-$(CONFIG_LIBVORBIS_ENCODER) += libvorbisenc.o \
vorbis_data.o vorbis_parser.o xiph.o
OBJS-$(CONFIG_LIBVPX_DECODER) += libvpxdec.o
OBJS-$(CONFIG_LIBVPX_ENCODER) += libvpxenc.o
OBJS-$(CONFIG_LIBVPX_VP8_DECODER) += libvpxdec.o
OBJS-$(CONFIG_LIBVPX_VP8_ENCODER) += libvpxenc.o
OBJS-$(CONFIG_LIBVPX_VP9_DECODER) += libvpxdec.o
OBJS-$(CONFIG_LIBVPX_VP9_ENCODER) += libvpxenc.o
OBJS-$(CONFIG_LIBX264_ENCODER) += libx264.o
OBJS-$(CONFIG_LIBXAVS_ENCODER) += libxavs.o
OBJS-$(CONFIG_LIBXVID_ENCODER) += libxvid.o

View File

@@ -32,7 +32,6 @@
#include "libavutil/float_dsp.h"
#include "avcodec.h"
#include "dsputil.h"
#include "fft.h"
#include "mpeg4audio.h"
#include "sbr.h"
@@ -82,7 +81,7 @@ enum BandType {
INTENSITY_BT = 15, ///< Scalefactor data are intensity stereo positions.
};
#define IS_CODEBOOK_UNSIGNED(x) ((x - 1) & 10)
#define IS_CODEBOOK_UNSIGNED(x) (((x) - 1) & 10)
enum ChannelPosition {
AAC_CHANNEL_OFF = 0,
@@ -260,10 +259,10 @@ typedef struct ChannelElement {
/**
* main AAC context
*/
typedef struct AACContext {
struct AACContext {
AVClass *class;
AVCodecContext *avctx;
AVFrame frame;
AVFrame *frame;
int is_saved; ///< Set if elements have stored overlap from previous frame.
DynamicRangeControl che_drc;
@@ -292,7 +291,6 @@ typedef struct AACContext {
FFTContext mdct;
FFTContext mdct_small;
FFTContext mdct_ltp;
DSPContext dsp;
FmtConvertContext fmt_conv;
AVFloatDSPContext fdsp;
int random_state;
@@ -318,6 +316,18 @@ typedef struct AACContext {
OutputConfiguration oc[2];
int warned_num_aac_frames;
} AACContext;
/* aacdec functions pointers */
void (*imdct_and_windowing)(AACContext *ac, SingleChannelElement *sce);
void (*apply_ltp)(AACContext *ac, SingleChannelElement *sce);
void (*apply_tns)(float coef[1024], TemporalNoiseShaping *tns,
IndividualChannelStream *ics, int decode);
void (*windowing_and_mdct_ltp)(AACContext *ac, float *out,
float *in, IndividualChannelStream *ics);
void (*update_ltp)(AACContext *ac, SingleChannelElement *sce);
};
void ff_aacdec_init_mips(AACContext *c);
#endif /* AVCODEC_AAC_H */

View File

@@ -710,7 +710,7 @@ static void search_for_quantizers_twoloop(AVCodecContext *avctx,
const float lambda)
{
int start = 0, i, w, w2, g;
int destbits = avctx->bit_rate * 1024.0 / avctx->sample_rate / avctx->channels;
int destbits = avctx->bit_rate * 1024.0 / avctx->sample_rate / avctx->channels * (lambda / 120.f);
float dists[128] = { 0 }, uplims[128];
float maxvals[128];
int fflag, minscaler;

View File

@@ -84,7 +84,6 @@
#include "avcodec.h"
#include "internal.h"
#include "get_bits.h"
#include "dsputil.h"
#include "fft.h"
#include "fmtconvert.h"
#include "lpc.h"
@@ -108,11 +107,17 @@
#if ARCH_ARM
# include "arm/aac.h"
#elif ARCH_MIPS
# include "mips/aacdec_mips.h"
#endif
static VLC vlc_scalefactors;
static VLC vlc_spectral[11];
static int output_configure(AACContext *ac,
uint8_t layout_map[MAX_ELEM_ID*4][3], int tags,
enum OCStatus oc_type, int get_new_frame);
#define overread_err "Input buffer exhausted before END element found\n"
static int count_channels(uint8_t (*layout)[3], int tags)
@@ -184,9 +189,12 @@ static int frame_configure_elements(AVCodecContext *avctx)
}
}
if (!avctx->channels)
return 1;
/* get output buffer */
ac->frame.nb_samples = 2048;
if ((ret = ff_get_buffer(avctx, &ac->frame)) < 0) {
ac->frame->nb_samples = 2048;
if ((ret = ff_get_buffer(avctx, ac->frame)) < 0) {
av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
return ret;
}
@@ -194,7 +202,7 @@ static int frame_configure_elements(AVCodecContext *avctx)
/* map output channel pointers to AVFrame data */
for (ch = 0; ch < avctx->channels; ch++) {
if (ac->output_element[ch])
ac->output_element[ch]->ret = (float *)ac->frame.extended_data[ch];
ac->output_element[ch]->ret = (float *)ac->frame->extended_data[ch];
}
return 0;
@@ -406,6 +414,8 @@ static void pop_output_configuration(AACContext *ac) {
ac->oc[1] = ac->oc[0];
ac->avctx->channels = ac->oc[1].channels;
ac->avctx->channel_layout = ac->oc[1].channel_layout;
output_configure(ac, ac->oc[1].layout_map, ac->oc[1].layout_map_tags,
ac->oc[1].status, 0);
}
}
@@ -774,13 +784,15 @@ static int decode_audio_specific_config(AACContext *ac,
{
GetBitContext gb;
int i;
int ret;
av_dlog(avctx, "audio specific config size %d\n", bit_size >> 3);
for (i = 0; i < bit_size >> 3; i++)
av_dlog(avctx, "%02x ", data[i]);
av_dlog(avctx, "\n");
init_get_bits(&gb, data, bit_size);
if ((ret = init_get_bits(&gb, data, bit_size)) < 0)
return ret;
if ((i = avpriv_mpeg4audio_get_config(m4ac, data, bit_size, sync_extension)) < 0)
return -1;
@@ -870,6 +882,8 @@ static void reset_predictor_group(PredictorState *ps, int group_num)
ff_aac_spectral_codes[num], sizeof(ff_aac_spectral_codes[num][0]), sizeof(ff_aac_spectral_codes[num][0]), \
size);
static void aacdec_init(AACContext *ac);
static av_cold int aac_decode_init(AVCodecContext *avctx)
{
AACContext *ac = avctx->priv_data;
@@ -877,6 +891,8 @@ static av_cold int aac_decode_init(AVCodecContext *avctx)
ac->avctx = avctx;
ac->oc[1].m4ac.sample_rate = avctx->sample_rate;
aacdec_init(ac);
avctx->sample_fmt = AV_SAMPLE_FMT_FLTP;
if (avctx->extradata_size > 0) {
@@ -914,6 +930,11 @@ static av_cold int aac_decode_init(AVCodecContext *avctx)
}
}
if (avctx->channels > MAX_CHANNELS) {
av_log(avctx, AV_LOG_ERROR, "Too many channels\n");
return AVERROR_INVALIDDATA;
}
AAC_INIT_VLC_STATIC( 0, 304);
AAC_INIT_VLC_STATIC( 1, 270);
AAC_INIT_VLC_STATIC( 2, 550);
@@ -928,7 +949,6 @@ static av_cold int aac_decode_init(AVCodecContext *avctx)
ff_aac_sbr_init();
ff_dsputil_init(&ac->dsp, avctx);
ff_fmt_convert_init(&ac->fmt_conv, avctx);
avpriv_float_dsp_init(&ac->fdsp, avctx->flags & CODEC_FLAG_BITEXACT);
@@ -952,9 +972,6 @@ static av_cold int aac_decode_init(AVCodecContext *avctx)
cbrt_tableinit();
avcodec_get_frame_defaults(&ac->frame);
avctx->coded_frame = &ac->frame;
return 0;
}
@@ -1394,7 +1411,7 @@ static int decode_spectrum_and_dequant(AACContext *ac, float coef[1024],
cfo[k] = ac->random_state;
}
band_energy = ac->dsp.scalarproduct_float(cfo, cfo, off_len);
band_energy = ac->fdsp.scalarproduct_float(cfo, cfo, off_len);
scale = sf[idx] / sqrtf(band_energy);
ac->fdsp.vector_fmul_scalar(cfo, cfo, scale, off_len);
}
@@ -1729,9 +1746,9 @@ static void apply_mid_side_stereo(AACContext *ac, ChannelElement *cpe)
if (cpe->ms_mask[idx] &&
cpe->ch[0].band_type[idx] < NOISE_BT && cpe->ch[1].band_type[idx] < NOISE_BT) {
for (group = 0; group < ics->group_len[g]; group++) {
ac->dsp.butterflies_float(ch0 + group * 128 + offsets[i],
ch1 + group * 128 + offsets[i],
offsets[i+1] - offsets[i]);
ac->fdsp.butterflies_float(ch0 + group * 128 + offsets[i],
ch1 + group * 128 + offsets[i],
offsets[i+1] - offsets[i]);
}
}
}
@@ -2131,9 +2148,9 @@ static void windowing_and_mdct_ltp(AACContext *ac, float *out,
ac->fdsp.vector_fmul(in + 448, in + 448, swindow_prev, 128);
}
if (ics->window_sequence[0] != LONG_START_SEQUENCE) {
ac->dsp.vector_fmul_reverse(in + 1024, in + 1024, lwindow, 1024);
ac->fdsp.vector_fmul_reverse(in + 1024, in + 1024, lwindow, 1024);
} else {
ac->dsp.vector_fmul_reverse(in + 1024 + 448, in + 1024 + 448, swindow, 128);
ac->fdsp.vector_fmul_reverse(in + 1024 + 448, in + 1024 + 448, swindow, 128);
memset(in + 1024 + 576, 0, 448 * sizeof(float));
}
ac->mdct_ltp.mdct_calc(&ac->mdct_ltp, out, in);
@@ -2159,10 +2176,10 @@ static void apply_ltp(AACContext *ac, SingleChannelElement *sce)
predTime[i] = sce->ltp_state[i + 2048 - ltp->lag] * ltp->coef;
memset(&predTime[i], 0, (2048 - i) * sizeof(float));
windowing_and_mdct_ltp(ac, predFreq, predTime, &sce->ics);
ac->windowing_and_mdct_ltp(ac, predFreq, predTime, &sce->ics);
if (sce->tns.present)
apply_tns(predFreq, &sce->tns, &sce->ics, 0);
ac->apply_tns(predFreq, &sce->tns, &sce->ics, 0);
for (sfb = 0; sfb < FFMIN(sce->ics.max_sfb, MAX_LTP_LONG_SFB); sfb++)
if (ltp->used[sfb])
@@ -2186,17 +2203,17 @@ static void update_ltp(AACContext *ac, SingleChannelElement *sce)
if (ics->window_sequence[0] == EIGHT_SHORT_SEQUENCE) {
memcpy(saved_ltp, saved, 512 * sizeof(float));
memset(saved_ltp + 576, 0, 448 * sizeof(float));
ac->dsp.vector_fmul_reverse(saved_ltp + 448, ac->buf_mdct + 960, &swindow[64], 64);
ac->fdsp.vector_fmul_reverse(saved_ltp + 448, ac->buf_mdct + 960, &swindow[64], 64);
for (i = 0; i < 64; i++)
saved_ltp[i + 512] = ac->buf_mdct[1023 - i] * swindow[63 - i];
} else if (ics->window_sequence[0] == LONG_START_SEQUENCE) {
memcpy(saved_ltp, ac->buf_mdct + 512, 448 * sizeof(float));
memset(saved_ltp + 576, 0, 448 * sizeof(float));
ac->dsp.vector_fmul_reverse(saved_ltp + 448, ac->buf_mdct + 960, &swindow[64], 64);
ac->fdsp.vector_fmul_reverse(saved_ltp + 448, ac->buf_mdct + 960, &swindow[64], 64);
for (i = 0; i < 64; i++)
saved_ltp[i + 512] = ac->buf_mdct[1023 - i] * swindow[63 - i];
} else { // LONG_STOP or ONLY_LONG
ac->dsp.vector_fmul_reverse(saved_ltp, ac->buf_mdct + 512, &lwindow[512], 512);
ac->fdsp.vector_fmul_reverse(saved_ltp, ac->buf_mdct + 512, &lwindow[512], 512);
for (i = 0; i < 512; i++)
saved_ltp[i + 512] = ac->buf_mdct[1023 - i] * lwindow[511 - i];
}
@@ -2237,35 +2254,35 @@ static void imdct_and_windowing(AACContext *ac, SingleChannelElement *sce)
*/
if ((ics->window_sequence[1] == ONLY_LONG_SEQUENCE || ics->window_sequence[1] == LONG_STOP_SEQUENCE) &&
(ics->window_sequence[0] == ONLY_LONG_SEQUENCE || ics->window_sequence[0] == LONG_START_SEQUENCE)) {
ac->dsp.vector_fmul_window( out, saved, buf, lwindow_prev, 512);
ac->fdsp.vector_fmul_window( out, saved, buf, lwindow_prev, 512);
} else {
memcpy( out, saved, 448 * sizeof(float));
memcpy( out, saved, 448 * sizeof(float));
if (ics->window_sequence[0] == EIGHT_SHORT_SEQUENCE) {
ac->dsp.vector_fmul_window(out + 448 + 0*128, saved + 448, buf + 0*128, swindow_prev, 64);
ac->dsp.vector_fmul_window(out + 448 + 1*128, buf + 0*128 + 64, buf + 1*128, swindow, 64);
ac->dsp.vector_fmul_window(out + 448 + 2*128, buf + 1*128 + 64, buf + 2*128, swindow, 64);
ac->dsp.vector_fmul_window(out + 448 + 3*128, buf + 2*128 + 64, buf + 3*128, swindow, 64);
ac->dsp.vector_fmul_window(temp, buf + 3*128 + 64, buf + 4*128, swindow, 64);
memcpy( out + 448 + 4*128, temp, 64 * sizeof(float));
ac->fdsp.vector_fmul_window(out + 448 + 0*128, saved + 448, buf + 0*128, swindow_prev, 64);
ac->fdsp.vector_fmul_window(out + 448 + 1*128, buf + 0*128 + 64, buf + 1*128, swindow, 64);
ac->fdsp.vector_fmul_window(out + 448 + 2*128, buf + 1*128 + 64, buf + 2*128, swindow, 64);
ac->fdsp.vector_fmul_window(out + 448 + 3*128, buf + 2*128 + 64, buf + 3*128, swindow, 64);
ac->fdsp.vector_fmul_window(temp, buf + 3*128 + 64, buf + 4*128, swindow, 64);
memcpy( out + 448 + 4*128, temp, 64 * sizeof(float));
} else {
ac->dsp.vector_fmul_window(out + 448, saved + 448, buf, swindow_prev, 64);
memcpy( out + 576, buf + 64, 448 * sizeof(float));
ac->fdsp.vector_fmul_window(out + 448, saved + 448, buf, swindow_prev, 64);
memcpy( out + 576, buf + 64, 448 * sizeof(float));
}
}
// buffer update
if (ics->window_sequence[0] == EIGHT_SHORT_SEQUENCE) {
memcpy( saved, temp + 64, 64 * sizeof(float));
ac->dsp.vector_fmul_window(saved + 64, buf + 4*128 + 64, buf + 5*128, swindow, 64);
ac->dsp.vector_fmul_window(saved + 192, buf + 5*128 + 64, buf + 6*128, swindow, 64);
ac->dsp.vector_fmul_window(saved + 320, buf + 6*128 + 64, buf + 7*128, swindow, 64);
memcpy( saved + 448, buf + 7*128 + 64, 64 * sizeof(float));
memcpy( saved, temp + 64, 64 * sizeof(float));
ac->fdsp.vector_fmul_window(saved + 64, buf + 4*128 + 64, buf + 5*128, swindow, 64);
ac->fdsp.vector_fmul_window(saved + 192, buf + 5*128 + 64, buf + 6*128, swindow, 64);
ac->fdsp.vector_fmul_window(saved + 320, buf + 6*128 + 64, buf + 7*128, swindow, 64);
memcpy( saved + 448, buf + 7*128 + 64, 64 * sizeof(float));
} else if (ics->window_sequence[0] == LONG_START_SEQUENCE) {
memcpy( saved, buf + 512, 448 * sizeof(float));
memcpy( saved + 448, buf + 7*128 + 64, 64 * sizeof(float));
memcpy( saved, buf + 512, 448 * sizeof(float));
memcpy( saved + 448, buf + 7*128 + 64, 64 * sizeof(float));
} else { // LONG_STOP or ONLY_LONG
memcpy( saved, buf + 512, 512 * sizeof(float));
memcpy( saved, buf + 512, 512 * sizeof(float));
}
}
@@ -2374,25 +2391,25 @@ static void spectral_to_sample(AACContext *ac)
if (ac->oc[1].m4ac.object_type == AOT_AAC_LTP) {
if (che->ch[0].ics.predictor_present) {
if (che->ch[0].ics.ltp.present)
apply_ltp(ac, &che->ch[0]);
ac->apply_ltp(ac, &che->ch[0]);
if (che->ch[1].ics.ltp.present && type == TYPE_CPE)
apply_ltp(ac, &che->ch[1]);
ac->apply_ltp(ac, &che->ch[1]);
}
}
if (che->ch[0].tns.present)
apply_tns(che->ch[0].coeffs, &che->ch[0].tns, &che->ch[0].ics, 1);
ac->apply_tns(che->ch[0].coeffs, &che->ch[0].tns, &che->ch[0].ics, 1);
if (che->ch[1].tns.present)
apply_tns(che->ch[1].coeffs, &che->ch[1].tns, &che->ch[1].ics, 1);
ac->apply_tns(che->ch[1].coeffs, &che->ch[1].tns, &che->ch[1].ics, 1);
if (type <= TYPE_CPE)
apply_channel_coupling(ac, che, type, i, BETWEEN_TNS_AND_IMDCT, apply_dependent_coupling);
if (type != TYPE_CCE || che->coup.coupling_point == AFTER_IMDCT) {
imdct_and_windowing(ac, &che->ch[0]);
ac->imdct_and_windowing(ac, &che->ch[0]);
if (ac->oc[1].m4ac.object_type == AOT_AAC_LTP)
update_ltp(ac, &che->ch[0]);
ac->update_ltp(ac, &che->ch[0]);
if (type == TYPE_CPE) {
imdct_and_windowing(ac, &che->ch[1]);
ac->imdct_and_windowing(ac, &che->ch[1]);
if (ac->oc[1].m4ac.object_type == AOT_AAC_LTP)
update_ltp(ac, &che->ch[1]);
ac->update_ltp(ac, &che->ch[1]);
}
if (ac->oc[1].m4ac.sbr > 0) {
ff_sbr_apply(ac, &che->sbr, type, che->ch[0].ret, che->ch[1].ret);
@@ -2472,6 +2489,8 @@ static int aac_decode_frame_int(AVCodecContext *avctx, void *data,
int samples = 0, multiplier, audio_found = 0, pce_found = 0;
int is_dmono, sce_count = 0;
ac->frame = data;
if (show_bits(gb, 12) == 0xfff) {
if (parse_adts_frame_header(ac, gb) < 0) {
av_log(avctx, AV_LOG_ERROR, "Error decoding AAC frame header.\n");
@@ -2543,7 +2562,6 @@ static int aac_decode_frame_int(AVCodecContext *avctx, void *data,
if (pce_found) {
av_log(avctx, AV_LOG_ERROR,
"Not evaluating a further program_config_element as this construct is dubious at best.\n");
pop_output_configuration(ac);
} else {
err = output_configure(ac, layout_map, tags, OC_TRIAL_PCE, 1);
if (!err)
@@ -2592,10 +2610,8 @@ static int aac_decode_frame_int(AVCodecContext *avctx, void *data,
is_dmono = ac->dmono_mode && sce_count == 2 &&
ac->oc[1].channel_layout == (AV_CH_FRONT_LEFT | AV_CH_FRONT_RIGHT);
if (samples) {
ac->frame.nb_samples = samples;
*(AVFrame *)data = ac->frame;
}
if (samples)
ac->frame->nb_samples = samples;
*got_frame_ptr = !!samples;
if (is_dmono) {
@@ -2613,7 +2629,7 @@ static int aac_decode_frame_int(AVCodecContext *avctx, void *data,
if (multiplier) {
int side_size;
uint32_t *side = av_packet_get_side_data(avpkt, AV_PKT_DATA_SKIP_SAMPLES, &side_size);
const uint8_t *side = av_packet_get_side_data(avpkt, AV_PKT_DATA_SKIP_SAMPLES, &side_size);
if (side && side_size>=4)
AV_WL32(side, 2*AV_RL32(side));
}
@@ -2665,6 +2681,9 @@ static int aac_decode_frame(AVCodecContext *avctx, void *data,
if (ac->force_dmono_mode >= 0)
ac->dmono_mode = ac->force_dmono_mode;
if (INT_MAX / 8 <= buf_size)
return AVERROR_INVALIDDATA;
init_get_bits(&gb, buf, buf_size * 8);
if ((err = aac_decode_frame_int(avctx, data, got_frame_ptr, &gb, avpkt)) < 0)
@@ -2754,7 +2773,7 @@ static int latm_decode_audio_specific_config(struct LATMContext *latmctx,
if(latmctx->initialized) {
av_log(avctx, AV_LOG_INFO, "audio config changed\n");
} else {
av_log(avctx, AV_LOG_INFO, "initializing latmctx\n");
av_log(avctx, AV_LOG_DEBUG, "initializing latmctx\n");
}
latmctx->initialized = 0;
@@ -2915,7 +2934,8 @@ static int latm_decode_frame(AVCodecContext *avctx, void *out,
int muxlength, err;
GetBitContext gb;
init_get_bits(&gb, avpkt->data, avpkt->size * 8);
if ((err = init_get_bits8(&gb, avpkt->data, avpkt->size)) < 0)
return err;
// check for LOAS sync word
if (get_bits(&gb, 11) != LOAS_SYNC_WORD)
@@ -2969,6 +2989,17 @@ static av_cold int latm_decode_init(AVCodecContext *avctx)
return ret;
}
static void aacdec_init(AACContext *c)
{
c->imdct_and_windowing = imdct_and_windowing;
c->apply_ltp = apply_ltp;
c->apply_tns = apply_tns;
c->windowing_and_mdct_ltp = windowing_and_mdct_ltp;
c->update_ltp = update_ltp;
if(ARCH_MIPS)
ff_aacdec_init_mips(c);
}
/**
* AVOptions for Japanese DTV specific extensions (ADTS only)
*/

View File

@@ -34,7 +34,6 @@
#include "libavutil/opt.h"
#include "avcodec.h"
#include "put_bits.h"
#include "dsputil.h"
#include "internal.h"
#include "mpeg4audio.h"
#include "kbdwin.h"
@@ -183,7 +182,7 @@ static void put_audio_specific_config(AVCodecContext *avctx)
}
#define WINDOW_FUNC(type) \
static void apply_ ##type ##_window(DSPContext *dsp, AVFloatDSPContext *fdsp, \
static void apply_ ##type ##_window(AVFloatDSPContext *fdsp, \
SingleChannelElement *sce, \
const float *audio)
@@ -193,8 +192,8 @@ WINDOW_FUNC(only_long)
const float *pwindow = sce->ics.use_kb_window[1] ? ff_aac_kbd_long_1024 : ff_sine_1024;
float *out = sce->ret_buf;
fdsp->vector_fmul (out, audio, lwindow, 1024);
dsp->vector_fmul_reverse(out + 1024, audio + 1024, pwindow, 1024);
fdsp->vector_fmul (out, audio, lwindow, 1024);
fdsp->vector_fmul_reverse(out + 1024, audio + 1024, pwindow, 1024);
}
WINDOW_FUNC(long_start)
@@ -205,7 +204,7 @@ WINDOW_FUNC(long_start)
fdsp->vector_fmul(out, audio, lwindow, 1024);
memcpy(out + 1024, audio + 1024, sizeof(out[0]) * 448);
dsp->vector_fmul_reverse(out + 1024 + 448, audio + 1024 + 448, swindow, 128);
fdsp->vector_fmul_reverse(out + 1024 + 448, audio + 1024 + 448, swindow, 128);
memset(out + 1024 + 576, 0, sizeof(out[0]) * 448);
}
@@ -218,7 +217,7 @@ WINDOW_FUNC(long_stop)
memset(out, 0, sizeof(out[0]) * 448);
fdsp->vector_fmul(out + 448, audio + 448, swindow, 128);
memcpy(out + 576, audio + 576, sizeof(out[0]) * 448);
dsp->vector_fmul_reverse(out + 1024, audio + 1024, lwindow, 1024);
fdsp->vector_fmul_reverse(out + 1024, audio + 1024, lwindow, 1024);
}
WINDOW_FUNC(eight_short)
@@ -230,15 +229,15 @@ WINDOW_FUNC(eight_short)
int w;
for (w = 0; w < 8; w++) {
fdsp->vector_fmul (out, in, w ? pwindow : swindow, 128);
fdsp->vector_fmul (out, in, w ? pwindow : swindow, 128);
out += 128;
in += 128;
dsp->vector_fmul_reverse(out, in, swindow, 128);
fdsp->vector_fmul_reverse(out, in, swindow, 128);
out += 128;
}
}
static void (*const apply_window[4])(DSPContext *dsp, AVFloatDSPContext *fdsp,
static void (*const apply_window[4])(AVFloatDSPContext *fdsp,
SingleChannelElement *sce,
const float *audio) = {
[ONLY_LONG_SEQUENCE] = apply_only_long_window,
@@ -253,7 +252,7 @@ static void apply_window_and_mdct(AACEncContext *s, SingleChannelElement *sce,
int i;
float *output = sce->ret_buf;
apply_window[sce->ics.window_sequence[0]](&s->dsp, &s->fdsp, sce, audio);
apply_window[sce->ics.window_sequence[0]](&s->fdsp, sce, audio);
if (sce->ics.window_sequence[0] != EIGHT_SHORT_SEQUENCE)
s->mdct1024.mdct_calc(&s->mdct1024, sce->coeffs, output);
@@ -517,7 +516,7 @@ static int aac_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
/* add current frame to queue */
if (frame) {
if ((ret = ff_af_queue_add(&s->afq, frame) < 0))
if ((ret = ff_af_queue_add(&s->afq, frame)) < 0)
return ret;
}
@@ -571,10 +570,8 @@ static int aac_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
}
start_ch += chans;
}
if ((ret = ff_alloc_packet2(avctx, avpkt, 8192 * s->channels))) {
av_log(avctx, AV_LOG_ERROR, "Error getting output packet\n");
if ((ret = ff_alloc_packet2(avctx, avpkt, 8192 * s->channels)) < 0)
return ret;
}
do {
int frame_bits;
@@ -692,7 +689,6 @@ static av_cold int dsp_init(AVCodecContext *avctx, AACEncContext *s)
{
int ret = 0;
ff_dsputil_init(&s->dsp, avctx);
avpriv_float_dsp_init(&s->fdsp, avctx->flags & CODEC_FLAG_BITEXACT);
// window init

View File

@@ -25,7 +25,6 @@
#include "libavutil/float_dsp.h"
#include "avcodec.h"
#include "put_bits.h"
#include "dsputil.h"
#include "aac.h"
#include "audio_frame_queue.h"
@@ -61,7 +60,6 @@ typedef struct AACEncContext {
PutBitContext pb;
FFTContext mdct1024; ///< long (1024 samples) frame transform context
FFTContext mdct128; ///< short (128 samples) frame transform context
DSPContext dsp;
AVFloatDSPContext fdsp;
float *planar_samples[6]; ///< saved preprocessed input

View File

@@ -21,13 +21,13 @@
#include <stdint.h>
#include "libavutil/common.h"
#include "libavutil/internal.h"
#include "libavutil/mathematics.h"
#include "avcodec.h"
#include "get_bits.h"
#include "aacps.h"
#include "aacps_tablegen.h"
#include "aacpsdata.c"
#include "dsputil.h"
#define PS_BASELINE 0 ///< Operate in Baseline PS mode
///< Baseline implies 10 or 20 stereo bands,
@@ -429,6 +429,7 @@ static void hybrid_synthesis(PSDSPContext *dsp, float out[2][38][64],
#define DECAY_SLOPE 0.05f
/// Number of frequency bands that can be addressed by the parameter index, b(k)
static const int NR_PAR_BANDS[] = { 20, 34 };
static const int NR_IPDOPD_BANDS[] = { 11, 17 };
/// Number of frequency bands that can be addressed by the sub subband index, k
static const int NR_BANDS[] = { 71, 91 };
/// Start frequency band for the all-pass filter decay slope
@@ -823,7 +824,8 @@ static void stereo_processing(PSContext *ps, float (*l)[32][2], float (*r)[32][2
h12 = H_LUT[iid_mapped[e][b] + 7 + 23 * ps->iid_quant][icc_mapped[e][b]][1];
h21 = H_LUT[iid_mapped[e][b] + 7 + 23 * ps->iid_quant][icc_mapped[e][b]][2];
h22 = H_LUT[iid_mapped[e][b] + 7 + 23 * ps->iid_quant][icc_mapped[e][b]][3];
if (!PS_BASELINE && ps->enable_ipdopd && b < ps->nr_ipdopd_par) {
if (!PS_BASELINE && ps->enable_ipdopd && b < NR_IPDOPD_BANDS[is34]) {
//The spec say says to only run this smoother when enable_ipdopd
//is set but the reference decoder appears to run it constantly
float h11i, h12i, h21i, h22i;

View File

@@ -211,4 +211,6 @@ av_cold void ff_psdsp_init(PSDSPContext *s)
if (ARCH_ARM)
ff_psdsp_init_arm(s);
if (ARCH_MIPS)
ff_psdsp_init_mips(s);
}

View File

@@ -49,5 +49,6 @@ typedef struct PSDSPContext {
void ff_psdsp_init(PSDSPContext *s);
void ff_psdsp_init_arm(PSDSPContext *s);
void ff_psdsp_init_mips(PSDSPContext *s);
#endif /* LIBAVCODEC_AACPSDSP_H */

View File

@@ -541,8 +541,10 @@ static float calc_reduced_thr_3gpp(AacPsyBand *band, float min_snr,
float thr = band->thr;
if (band->energy > thr) {
thr = powf(thr, 0.25f) + reduction;
thr = powf(thr, 4.0f);
thr = sqrtf(thr);
thr = sqrtf(thr) + reduction;
thr *= thr;
thr *= thr;
/* This deviates from the 3GPP spec to match the reference encoder.
* It performs min(thr_reduced, max(thr, energy/min_snr)) only for bands
@@ -582,13 +584,15 @@ static void psy_3gpp_analyze_channel(FFPsyContext *ctx, int channel,
AacPsyBand *band = &pch->band[w+g];
float form_factor = 0.0f;
float Temp;
band->energy = 0.0f;
for (i = 0; i < band_sizes[g]; i++) {
band->energy += coefs[start+i] * coefs[start+i];
form_factor += sqrtf(fabs(coefs[start+i]));
}
Temp = band->energy > 0 ? sqrtf((float)band_sizes[g] / band->energy) : 0;
band->thr = band->energy * 0.001258925f;
band->nz_lines = band->energy>0 ? form_factor / powf(band->energy / band_sizes[g], 0.25f) : 0;
band->nz_lines = form_factor * sqrtf(Temp);
start += band_sizes[g];
}

View File

@@ -33,6 +33,7 @@
#include "fft.h"
#include "aacps.h"
#include "sbrdsp.h"
#include "libavutil/internal.h"
#include "libavutil/libm.h"
#include "libavutil/avassert.h"
@@ -43,6 +44,10 @@
#define ENVELOPE_ADJUSTMENT_OFFSET 2
#define NOISE_FLOOR_OFFSET 6.0f
#if ARCH_MIPS
#include "mips/aacsbr_mips.h"
#endif /* ARCH_MIPS */
/**
* SBR VLC tables
*/
@@ -86,6 +91,8 @@ static const int8_t vlc_sbr_lav[10] =
#define SBR_VLC_ROW(name) \
{ name ## _codes, name ## _bits, sizeof(name ## _codes), sizeof(name ## _codes[0]) }
static void aacsbr_func_ptr_init(AACSBRContext *c);
av_cold void ff_aac_sbr_init(void)
{
int n;
@@ -154,6 +161,7 @@ av_cold void ff_aac_sbr_ctx_init(AACContext *ac, SpectralBandReplication *sbr)
ff_mdct_init(&sbr->mdct_ana, 7, 1, -2.0 * 32768.0);
ff_ps_ctx_init(&sbr->ps);
ff_sbrdsp_init(&sbr->dsp);
aacsbr_func_ptr_init(&sbr->c);
}
av_cold void ff_aac_sbr_ctx_close(SpectralBandReplication *sbr)
@@ -391,6 +399,8 @@ static int sbr_make_f_master(AACContext *ac, SpectralBandReplication *sbr,
max_qmf_subbands = 35;
} else if (sbr->sample_rate >= 48000)
max_qmf_subbands = 32;
else
av_assert0(0);
if (sbr->k[2] - sbr->k[0] > max_qmf_subbands) {
av_log(ac->avctx, AV_LOG_ERROR,
@@ -1121,7 +1131,12 @@ static void sbr_dequant(SpectralBandReplication *sbr, int id_aac)
for (k = 0; k < sbr->n[sbr->data[0].bs_freq_res[e]]; k++) {
float temp1 = exp2f(sbr->data[0].env_facs[e][k] * alpha + 7.0f);
float temp2 = exp2f((pan_offset - sbr->data[1].env_facs[e][k]) * alpha);
float fac = temp1 / (1.0f + temp2);
float fac;
if (temp1 > 1E20) {
av_log(NULL, AV_LOG_ERROR, "envelope scalefactor overflow in dequant\n");
temp1 = 1;
}
fac = temp1 / (1.0f + temp2);
sbr->data[0].env_facs[e][k] = fac;
sbr->data[1].env_facs[e][k] = fac * temp2;
}
@@ -1130,7 +1145,12 @@ static void sbr_dequant(SpectralBandReplication *sbr, int id_aac)
for (k = 0; k < sbr->n_q; k++) {
float temp1 = exp2f(NOISE_FLOOR_OFFSET - sbr->data[0].noise_facs[e][k] + 1);
float temp2 = exp2f(12 - sbr->data[1].noise_facs[e][k]);
float fac = temp1 / (1.0f + temp2);
float fac;
if (temp1 > 1E20) {
av_log(NULL, AV_LOG_ERROR, "envelope scalefactor overflow in dequant\n");
temp1 = 1;
}
fac = temp1 / (1.0f + temp2);
sbr->data[0].noise_facs[e][k] = fac;
sbr->data[1].noise_facs[e][k] = fac * temp2;
}
@@ -1139,9 +1159,15 @@ static void sbr_dequant(SpectralBandReplication *sbr, int id_aac)
for (ch = 0; ch < (id_aac == TYPE_CPE) + 1; ch++) {
float alpha = sbr->data[ch].bs_amp_res ? 1.0f : 0.5f;
for (e = 1; e <= sbr->data[ch].bs_num_env; e++)
for (k = 0; k < sbr->n[sbr->data[ch].bs_freq_res[e]]; k++)
for (k = 0; k < sbr->n[sbr->data[ch].bs_freq_res[e]]; k++){
sbr->data[ch].env_facs[e][k] =
exp2f(alpha * sbr->data[ch].env_facs[e][k] + 6.0f);
if (sbr->data[ch].env_facs[e][k] > 1E20) {
av_log(NULL, AV_LOG_ERROR, "envelope scalefactor overflow in dequant\n");
sbr->data[ch].env_facs[e][k] = 1;
}
}
for (e = 1; e <= sbr->data[ch].bs_num_noise; e++)
for (k = 0; k < sbr->n_q; k++)
sbr->data[ch].noise_facs[e][k] =
@@ -1156,7 +1182,8 @@ static void sbr_dequant(SpectralBandReplication *sbr, int id_aac)
* @param x pointer to the beginning of the first sample window
* @param W array of complex-valued samples split into subbands
*/
static void sbr_qmf_analysis(DSPContext *dsp, FFTContext *mdct,
#ifndef sbr_qmf_analysis
static void sbr_qmf_analysis(AVFloatDSPContext *dsp, FFTContext *mdct,
SBRDSPContext *sbrdsp, const float *in, float *x,
float z[320], float W[2][32][32][2], int buf_idx)
{
@@ -1173,13 +1200,15 @@ static void sbr_qmf_analysis(DSPContext *dsp, FFTContext *mdct,
x += 32;
}
}
#endif
/**
* Synthesis QMF Bank (14496-3 sp04 p206) and Downsampled Synthesis QMF Bank
* (14496-3 sp04 p206)
*/
static void sbr_qmf_synthesis(DSPContext *dsp, FFTContext *mdct,
SBRDSPContext *sbrdsp, AVFloatDSPContext *fdsp,
#ifndef sbr_qmf_synthesis
static void sbr_qmf_synthesis(FFTContext *mdct,
SBRDSPContext *sbrdsp, AVFloatDSPContext *dsp,
float *out, float X[2][38][64],
float mdct_buf[2][64],
float *v0, int *v_off, const unsigned int div)
@@ -1210,7 +1239,7 @@ static void sbr_qmf_synthesis(DSPContext *dsp, FFTContext *mdct,
mdct->imdct_half(mdct, mdct_buf[1], X[1][i]);
sbrdsp->qmf_deint_bfly(v, mdct_buf[1], mdct_buf[0]);
}
fdsp->vector_fmul (out, v , sbr_qmf_window , 64 >> div);
dsp->vector_fmul (out, v , sbr_qmf_window , 64 >> div);
dsp->vector_fmul_add(out, v + ( 192 >> div), sbr_qmf_window + ( 64 >> div), out , 64 >> div);
dsp->vector_fmul_add(out, v + ( 256 >> div), sbr_qmf_window + (128 >> div), out , 64 >> div);
dsp->vector_fmul_add(out, v + ( 448 >> div), sbr_qmf_window + (192 >> div), out , 64 >> div);
@@ -1223,6 +1252,7 @@ static void sbr_qmf_synthesis(DSPContext *dsp, FFTContext *mdct,
out += 64 >> div;
}
}
#endif
/** High Frequency Generation (14496-3 sp04 p214+) and Inverse Filtering
* (14496-3 sp04 p214)
@@ -1668,13 +1698,13 @@ void ff_sbr_apply(AACContext *ac, SpectralBandReplication *sbr, int id_aac,
}
for (ch = 0; ch < nch; ch++) {
/* decode channel */
sbr_qmf_analysis(&ac->dsp, &sbr->mdct_ana, &sbr->dsp, ch ? R : L, sbr->data[ch].analysis_filterbank_samples,
sbr_qmf_analysis(&ac->fdsp, &sbr->mdct_ana, &sbr->dsp, ch ? R : L, sbr->data[ch].analysis_filterbank_samples,
(float*)sbr->qmf_filter_scratch,
sbr->data[ch].W, sbr->data[ch].Ypos);
sbr_lf_gen(ac, sbr, sbr->X_low, sbr->data[ch].W, sbr->data[ch].Ypos);
sbr->c.sbr_lf_gen(ac, sbr, sbr->X_low, sbr->data[ch].W, sbr->data[ch].Ypos);
sbr->data[ch].Ypos ^= 1;
if (sbr->start) {
sbr_hf_inverse_filter(&sbr->dsp, sbr->alpha0, sbr->alpha1, sbr->X_low, sbr->k[0]);
sbr->c.sbr_hf_inverse_filter(&sbr->dsp, sbr->alpha0, sbr->alpha1, sbr->X_low, sbr->k[0]);
sbr_chirp(sbr, &sbr->data[ch]);
sbr_hf_gen(ac, sbr, sbr->X_high, sbr->X_low, sbr->alpha0, sbr->alpha1,
sbr->data[ch].bw_array, sbr->data[ch].t_env,
@@ -1685,14 +1715,14 @@ void ff_sbr_apply(AACContext *ac, SpectralBandReplication *sbr, int id_aac,
if (!err) {
sbr_env_estimate(sbr->e_curr, sbr->X_high, sbr, &sbr->data[ch]);
sbr_gain_calc(ac, sbr, &sbr->data[ch], sbr->data[ch].e_a);
sbr_hf_assemble(sbr->data[ch].Y[sbr->data[ch].Ypos],
sbr->c.sbr_hf_assemble(sbr->data[ch].Y[sbr->data[ch].Ypos],
sbr->X_high, sbr, &sbr->data[ch],
sbr->data[ch].e_a);
}
}
/* synthesis */
sbr_x_gen(sbr, sbr->X[ch],
sbr->c.sbr_x_gen(sbr, sbr->X[ch],
sbr->data[ch].Y[1-sbr->data[ch].Ypos],
sbr->data[ch].Y[ sbr->data[ch].Ypos],
sbr->X_low, ch);
@@ -1707,15 +1737,26 @@ void ff_sbr_apply(AACContext *ac, SpectralBandReplication *sbr, int id_aac,
nch = 2;
}
sbr_qmf_synthesis(&ac->dsp, &sbr->mdct, &sbr->dsp, &ac->fdsp,
sbr_qmf_synthesis(&sbr->mdct, &sbr->dsp, &ac->fdsp,
L, sbr->X[0], sbr->qmf_filter_scratch,
sbr->data[0].synthesis_filterbank_samples,
&sbr->data[0].synthesis_filterbank_samples_offset,
downsampled);
if (nch == 2)
sbr_qmf_synthesis(&ac->dsp, &sbr->mdct, &sbr->dsp, &ac->fdsp,
sbr_qmf_synthesis(&sbr->mdct, &sbr->dsp, &ac->fdsp,
R, sbr->X[1], sbr->qmf_filter_scratch,
sbr->data[1].synthesis_filterbank_samples,
&sbr->data[1].synthesis_filterbank_samples_offset,
downsampled);
}
static void aacsbr_func_ptr_init(AACSBRContext *c)
{
c->sbr_lf_gen = sbr_lf_gen;
c->sbr_hf_assemble = sbr_hf_assemble;
c->sbr_x_gen = sbr_x_gen;
c->sbr_hf_inverse_filter = sbr_hf_inverse_filter;
if(ARCH_MIPS)
ff_aacsbr_func_ptr_init_mips(c);
}

View File

@@ -34,11 +34,11 @@
#include "sbr.h"
/** Initialize SBR. */
av_cold void ff_aac_sbr_init(void);
void ff_aac_sbr_init(void);
/** Initialize one SBR context. */
av_cold void ff_aac_sbr_ctx_init(AACContext *ac, SpectralBandReplication *sbr);
void ff_aac_sbr_ctx_init(AACContext *ac, SpectralBandReplication *sbr);
/** Close one SBR context. */
av_cold void ff_aac_sbr_ctx_close(SpectralBandReplication *sbr);
void ff_aac_sbr_ctx_close(SpectralBandReplication *sbr);
/** Decode one SBR element. */
int ff_decode_sbr_extension(AACContext *ac, SpectralBandReplication *sbr,
GetBitContext *gb, int crc, int cnt, int id_aac);
@@ -46,4 +46,6 @@ int ff_decode_sbr_extension(AACContext *ac, SpectralBandReplication *sbr,
void ff_sbr_apply(AACContext *ac, SpectralBandReplication *sbr, int id_aac,
float* L, float *R);
void ff_aacsbr_func_ptr_init_mips(AACSBRContext *c);
#endif /* AVCODEC_AACSBR_H */

View File

@@ -29,7 +29,6 @@
#include <string.h>
#include "avcodec.h"
#include "dsputil.h"
#include "msrledec.h"
typedef struct AascContext {
@@ -60,7 +59,7 @@ static av_cold int aasc_decode_init(AVCodecContext *avctx)
}
break;
case 16:
avctx->pix_fmt = AV_PIX_FMT_RGB555;
avctx->pix_fmt = AV_PIX_FMT_RGB555LE;
break;
case 24:
avctx->pix_fmt = AV_PIX_FMT_BGR24;
@@ -81,7 +80,7 @@ static int aasc_decode_frame(AVCodecContext *avctx,
const uint8_t *buf = avpkt->data;
int buf_size = avpkt->size;
AascContext *s = avctx->priv_data;
int compr, i, stride, psize;
int compr, i, stride, psize, ret;
if (buf_size < 4) {
av_log(avctx, AV_LOG_ERROR, "frame too short\n");
@@ -90,9 +89,9 @@ static int aasc_decode_frame(AVCodecContext *avctx,
s->frame.reference = 3;
s->frame.buffer_hints = FF_BUFFER_HINTS_VALID | FF_BUFFER_HINTS_PRESERVE | FF_BUFFER_HINTS_REUSABLE;
if (avctx->reget_buffer(avctx, &s->frame)) {
if ((ret = avctx->reget_buffer(avctx, &s->frame)) < 0) {
av_log(avctx, AV_LOG_ERROR, "reget_buffer() failed\n");
return -1;
return ret;
}
compr = AV_RL32(buf);
@@ -124,7 +123,7 @@ static int aasc_decode_frame(AVCodecContext *avctx,
break;
default:
av_log(avctx, AV_LOG_ERROR, "Unknown compression type %d\n", compr);
return -1;
return AVERROR_INVALIDDATA;
}
break;
default:

View File

@@ -170,6 +170,7 @@ static av_cold int ac3_decode_init(AVCodecContext *avctx)
ff_mdct_init(&s->imdct_512, 9, 1, 1.0);
ff_kbd_window_init(s->window, 5.0, 256);
ff_dsputil_init(&s->dsp, avctx);
avpriv_float_dsp_init(&s->fdsp, avctx->flags & CODEC_FLAG_BITEXACT);
ff_ac3dsp_init(&s->ac3dsp, avctx->flags & CODEC_FLAG_BITEXACT);
ff_fmt_convert_init(&s->fmt_conv, avctx);
av_lfg_init(&s->dith_state, 0);
@@ -184,9 +185,6 @@ static av_cold int ac3_decode_init(AVCodecContext *avctx)
}
s->downmixed = 1;
avcodec_get_frame_defaults(&s->frame);
avctx->coded_frame = &s->frame;
for (i = 0; i < AC3_MAX_CHANNELS; i++) {
s->xcfptr[i] = s->transform_coeffs[i];
s->dlyptr[i] = s->delay[i];
@@ -441,8 +439,9 @@ static void ac3_decode_transform_coeffs_ch(AC3DecodeContext *s, int ch_index, ma
int mantissa;
switch (bap) {
case 0:
/* random noise with approximate range of -0.707 to 0.707 */
if (dither)
mantissa = (av_lfg_get(&s->dith_state) & 0x7FFFFF) - 0x400000;
mantissa = (((av_lfg_get(&s->dith_state)>>8)*181)>>8) - 5931008;
else
mantissa = 0;
break;
@@ -606,15 +605,15 @@ static inline void do_imdct(AC3DecodeContext *s, int channels)
for (i = 0; i < 128; i++)
x[i] = s->transform_coeffs[ch][2 * i];
s->imdct_256.imdct_half(&s->imdct_256, s->tmp_output, x);
s->dsp.vector_fmul_window(s->outptr[ch - 1], s->delay[ch - 1],
s->tmp_output, s->window, 128);
s->fdsp.vector_fmul_window(s->outptr[ch - 1], s->delay[ch - 1],
s->tmp_output, s->window, 128);
for (i = 0; i < 128; i++)
x[i] = s->transform_coeffs[ch][2 * i + 1];
s->imdct_256.imdct_half(&s->imdct_256, s->delay[ch - 1], x);
} else {
s->imdct_512.imdct_half(&s->imdct_512, s->tmp_output, s->transform_coeffs[ch]);
s->dsp.vector_fmul_window(s->outptr[ch - 1], s->delay[ch - 1],
s->tmp_output, s->window, 128);
s->fdsp.vector_fmul_window(s->outptr[ch - 1], s->delay[ch - 1],
s->tmp_output, s->window, 128);
memcpy(s->delay[ch - 1], s->tmp_output + 128, 128 * sizeof(float));
}
}
@@ -1265,6 +1264,7 @@ static int decode_audio_block(AC3DecodeContext *s, int blk)
static int ac3_decode_frame(AVCodecContext * avctx, void *data,
int *got_frame_ptr, AVPacket *avpkt)
{
AVFrame *frame = data;
const uint8_t *buf = avpkt->data;
int buf_size = avpkt->size;
AC3DecodeContext *s = avctx->priv_data;
@@ -1336,8 +1336,10 @@ static int ac3_decode_frame(AVCodecContext * avctx, void *data,
if (!err) {
avctx->sample_rate = s->sample_rate;
avctx->bit_rate = s->bit_rate;
}
/* channel config */
/* channel config */
if (!err || (s->channels && s->out_channels != s->channels)) {
s->out_channels = s->channels;
s->output_mode = s->channel_mode;
if (s->lfe_on)
@@ -1360,24 +1362,20 @@ static int ac3_decode_frame(AVCodecContext * avctx, void *data,
s->fbw_channels == s->out_channels)) {
set_downmix_coeffs(s);
}
} else if (!s->out_channels) {
s->out_channels = avctx->channels;
if (s->out_channels < s->channels)
s->output_mode = s->out_channels == 1 ? AC3_CHMODE_MONO : AC3_CHMODE_STEREO;
}
if (avctx->channels != s->out_channels) {
av_log(avctx, AV_LOG_ERROR, "channel number mismatching on damaged frame\n");
} else if (!s->channels) {
av_log(avctx, AV_LOG_ERROR, "unable to determine channel mode\n");
return AVERROR_INVALIDDATA;
}
avctx->channels = s->out_channels;
/* set audio service type based on bitstream mode for AC-3 */
avctx->audio_service_type = s->bitstream_mode;
if (s->bitstream_mode == 0x7 && s->channels > 1)
avctx->audio_service_type = AV_AUDIO_SERVICE_TYPE_KARAOKE;
/* get output buffer */
avctx->channels = s->out_channels;
s->frame.nb_samples = s->num_blocks * 256;
if ((ret = ff_get_buffer(avctx, &s->frame)) < 0) {
frame->nb_samples = s->num_blocks * 256;
if ((ret = ff_get_buffer(avctx, frame)) < 0) {
av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
return ret;
}
@@ -1390,7 +1388,7 @@ static int ac3_decode_frame(AVCodecContext * avctx, void *data,
}
for (ch = 0; ch < s->channels; ch++) {
if (ch < s->out_channels)
s->outptr[channel_map[ch]] = (float *)s->frame.data[ch];
s->outptr[channel_map[ch]] = (float *)frame->data[ch];
}
for (blk = 0; blk < s->num_blocks; blk++) {
if (!err && decode_audio_block(s, blk)) {
@@ -1399,7 +1397,7 @@ static int ac3_decode_frame(AVCodecContext * avctx, void *data,
}
if (err)
for (ch = 0; ch < s->out_channels; ch++)
memcpy(((float*)s->frame.data[ch]) + AC3_BLOCK_SIZE*blk, output[ch], 1024);
memcpy(((float*)frame->data[ch]) + AC3_BLOCK_SIZE*blk, output[ch], 1024);
for (ch = 0; ch < s->out_channels; ch++)
output[ch] = s->outptr[channel_map[ch]];
for (ch = 0; ch < s->out_channels; ch++) {
@@ -1408,14 +1406,13 @@ static int ac3_decode_frame(AVCodecContext * avctx, void *data,
}
}
s->frame.decode_error_flags = err ? FF_DECODE_ERROR_INVALID_BITSTREAM : 0;
av_frame_set_decode_error_flags(frame, err ? FF_DECODE_ERROR_INVALID_BITSTREAM : 0);
/* keep last block for error concealment in next frame */
for (ch = 0; ch < s->out_channels; ch++)
memcpy(s->output[ch], output[ch], 1024);
*got_frame_ptr = 1;
*(AVFrame *)data = s->frame;
*got_frame_ptr = 1;
return FFMIN(buf_size, s->frame_size);
}

View File

@@ -50,6 +50,7 @@
#ifndef AVCODEC_AC3DEC_H
#define AVCODEC_AC3DEC_H
#include "libavutil/float_dsp.h"
#include "libavutil/lfg.h"
#include "ac3.h"
#include "ac3dsp.h"
@@ -68,7 +69,6 @@
typedef struct AC3DecodeContext {
AVClass *class; ///< class for AVOptions
AVCodecContext *avctx; ///< parent context
AVFrame frame; ///< AVFrame for decoded output
GetBitContext gbc; ///< bitstream reader
///@name Bit stream information
@@ -199,6 +199,7 @@ typedef struct AC3DecodeContext {
///@name Optimization
DSPContext dsp; ///< for optimization
AVFloatDSPContext fdsp;
AC3DSPContext ac3dsp;
FmtConvertContext fmt_conv; ///< optimized conversion functions
///@}

View File

@@ -34,10 +34,10 @@
#include "libavutil/avstring.h"
#include "libavutil/channel_layout.h"
#include "libavutil/crc.h"
#include "libavutil/internal.h"
#include "libavutil/opt.h"
#include "avcodec.h"
#include "put_bits.h"
#include "dsputil.h"
#include "ac3dsp.h"
#include "ac3.h"
#include "fft.h"

View File

@@ -28,6 +28,7 @@
#include <stdint.h>
#include "libavutil/internal.h"
/* prototypes for static functions in ac3enc_fixed.c and ac3enc_float.c */
@@ -132,7 +133,7 @@ static void apply_channel_coupling(AC3EncodeContext *s)
#else
int32_t (*fixed_cpl_coords)[AC3_MAX_CHANNELS][16] = cpl_coords;
#endif
int blk, ch, bnd, i, j;
int av_uninit(blk), ch, bnd, i, j;
CoefSumType energy[AC3_MAX_BLOCKS][AC3_MAX_CHANNELS][16] = {{{0}}};
int cpl_start, num_cpl_coefs;
@@ -336,7 +337,7 @@ static void compute_rematrixing_strategy(AC3EncodeContext *s)
{
int nb_coefs;
int blk, bnd;
AC3Block *block, *block0;
AC3Block *block, *block0 = NULL;
if (s->channel_mode != AC3_CHMODE_STEREO)
return;
@@ -434,7 +435,7 @@ int AC3_NAME(encode_frame)(AVCodecContext *avctx, AVPacket *avpkt,
ff_ac3_quantize_mantissas(s);
if ((ret = ff_alloc_packet2(avctx, avpkt, s->frame_size)))
if ((ret = ff_alloc_packet2(avctx, avpkt, s->frame_size)) < 0)
return ret;
ff_ac3_output_frame(s, avpkt->data);

View File

@@ -21,10 +21,10 @@
*/
#include "libavutil/common.h"
#include "libavutil/float_dsp.h"
#include "libavutil/libm.h"
#include "libavutil/mathematics.h"
#include "avcodec.h"
#include "dsputil.h"
#include "acelp_pitch_delay.h"
#include "celp_math.h"
@@ -132,7 +132,7 @@ float ff_amr_set_fixed_gain(float fixed_gain_factor, float fixed_mean_energy,
// Note 10^(0.05 * -10log(average x2)) = 1/sqrt((average x2)).
float val = fixed_gain_factor *
exp2f(M_LOG2_10 * 0.05 *
(ff_scalarproduct_float_c(pred_table, prediction_error, 4) +
(avpriv_scalarproduct_float_c(pred_table, prediction_error, 4) +
energy_mean)) /
sqrtf(fixed_mean_energy);

View File

@@ -23,8 +23,8 @@
#include <inttypes.h>
#include "libavutil/common.h"
#include "libavutil/float_dsp.h"
#include "avcodec.h"
#include "dsputil.h"
#include "acelp_vectors.h"
const uint8_t ff_fc_2pulses_9bits_track1[16] =
@@ -203,7 +203,7 @@ void ff_adaptive_gain_control(float *out, const float *in, float speech_energ,
int size, float alpha, float *gain_mem)
{
int i;
float postfilter_energ = ff_scalarproduct_float_c(in, in, size);
float postfilter_energ = avpriv_scalarproduct_float_c(in, in, size);
float gain_scale_factor = 1.0;
float mem = *gain_mem;
@@ -224,7 +224,7 @@ void ff_scale_vector_to_given_sum_of_squares(float *out, const float *in,
float sum_of_squares, const int n)
{
int i;
float scalefactor = ff_scalarproduct_float_c(in, in, n);
float scalefactor = avpriv_scalarproduct_float_c(in, in, n);
if (scalefactor)
scalefactor = sqrt(sum_of_squares / scalefactor);
for (i = 0; i < n; i++)

View File

@@ -85,7 +85,6 @@ static const int swf_index_tables[4][16] = {
/* end of tables */
typedef struct ADPCMDecodeContext {
AVFrame frame;
ADPCMChannelStatus status[6];
int vqa_version; /**< VQA version. Used for ADPCM_IMA_WS */
} ADPCMDecodeContext;
@@ -159,9 +158,6 @@ static av_cold int adpcm_decode_init(AVCodecContext * avctx)
avctx->sample_fmt = AV_SAMPLE_FMT_S16;
}
avcodec_get_frame_defaults(&c->frame);
avctx->coded_frame = &c->frame;
return 0;
}
@@ -453,9 +449,11 @@ static void adpcm_swf_decode(AVCodecContext *avctx, const uint8_t *buf, int buf_
* @param[out] coded_samples set to the number of samples as coded in the
* packet, or 0 if the codec does not encode the
* number of samples in each frame.
* @param[out] approx_nb_samples set to non-zero if the number of samples
* returned is an approximation.
*/
static int get_nb_samples(AVCodecContext *avctx, GetByteContext *gb,
int buf_size, int *coded_samples)
int buf_size, int *coded_samples, int *approx_nb_samples)
{
ADPCMDecodeContext *s = avctx->priv_data;
int nb_samples = 0;
@@ -464,6 +462,7 @@ static int get_nb_samples(AVCodecContext *avctx, GetByteContext *gb,
int header_size;
*coded_samples = 0;
*approx_nb_samples = 0;
if(ch <= 0)
return 0;
@@ -534,10 +533,12 @@ static int get_nb_samples(AVCodecContext *avctx, GetByteContext *gb,
case AV_CODEC_ID_ADPCM_EA_R2:
header_size = 4 + 5 * ch;
*coded_samples = bytestream2_get_le32(gb);
*approx_nb_samples = 1;
break;
case AV_CODEC_ID_ADPCM_EA_R3:
header_size = 4 + 5 * ch;
*coded_samples = bytestream2_get_be32(gb);
*approx_nb_samples = 1;
break;
}
*coded_samples -= *coded_samples % 28;
@@ -619,6 +620,7 @@ static int get_nb_samples(AVCodecContext *avctx, GetByteContext *gb,
static int adpcm_decode_frame(AVCodecContext *avctx, void *data,
int *got_frame_ptr, AVPacket *avpkt)
{
AVFrame *frame = data;
const uint8_t *buf = avpkt->data;
int buf_size = avpkt->size;
ADPCMDecodeContext *c = avctx->priv_data;
@@ -628,31 +630,31 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data,
int16_t **samples_p;
int st; /* stereo */
int count1, count2;
int nb_samples, coded_samples, ret;
int nb_samples, coded_samples, approx_nb_samples, ret;
GetByteContext gb;
bytestream2_init(&gb, buf, buf_size);
nb_samples = get_nb_samples(avctx, &gb, buf_size, &coded_samples);
nb_samples = get_nb_samples(avctx, &gb, buf_size, &coded_samples, &approx_nb_samples);
if (nb_samples <= 0) {
av_log(avctx, AV_LOG_ERROR, "invalid number of samples in packet\n");
return AVERROR_INVALIDDATA;
}
/* get output buffer */
c->frame.nb_samples = nb_samples;
if ((ret = ff_get_buffer(avctx, &c->frame)) < 0) {
frame->nb_samples = nb_samples;
if ((ret = ff_get_buffer(avctx, frame)) < 0) {
av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
return ret;
}
samples = (short *)c->frame.data[0];
samples_p = (int16_t **)c->frame.extended_data;
samples = (short *)frame->data[0];
samples_p = (int16_t **)frame->extended_data;
/* use coded_samples when applicable */
/* it is always <= nb_samples, so the output buffer will be large enough */
if (coded_samples) {
if (coded_samples != nb_samples)
if (!approx_nb_samples && coded_samples != nb_samples)
av_log(avctx, AV_LOG_WARNING, "mismatch in coded sample count\n");
c->frame.nb_samples = nb_samples = coded_samples;
frame->nb_samples = nb_samples = coded_samples;
}
st = avctx->channels == 2 ? 1 : 0;
@@ -738,7 +740,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data,
}
for (i = 0; i < avctx->channels; i++) {
samples = (int16_t *)c->frame.data[i];
samples = (int16_t *)frame->data[i];
cs = &c->status[i];
for (n = nb_samples >> 1; n > 0; n--) {
int v = bytestream2_get_byteu(&gb);
@@ -866,6 +868,9 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data,
*samples++ = c->status[0].predictor + c->status[1].predictor;
*samples++ = c->status[0].predictor - c->status[1].predictor;
}
if ((bytestream2_tell(&gb) & 1))
bytestream2_skip(&gb, 1);
break;
}
case AV_CODEC_ID_ADPCM_IMA_ISS:
@@ -1135,7 +1140,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data,
}
}
c->frame.nb_samples = count * 28;
frame->nb_samples = count * 28;
bytestream2_seek(&gb, 0, SEEK_END);
break;
}
@@ -1378,8 +1383,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data,
return AVERROR_INVALIDDATA;
}
*got_frame_ptr = 1;
*(AVFrame *)data = c->frame;
*got_frame_ptr = 1;
return bytestream2_tell(&gb);
}

View File

@@ -19,7 +19,6 @@
*/
#include "avcodec.h"
#include "get_bits.h"
#include "put_bits.h"
#include "bytestream.h"
#include "adpcm.h"
@@ -495,7 +494,7 @@ static int adpcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
pkt_size = (2 + avctx->channels * (22 + 4 * (frame->nb_samples - 1)) + 7) / 8;
else
pkt_size = avctx->block_align;
if ((ret = ff_alloc_packet2(avctx, avpkt, pkt_size)))
if ((ret = ff_alloc_packet2(avctx, avpkt, pkt_size)) < 0)
return ret;
dst = avpkt->data;
@@ -558,10 +557,11 @@ static int adpcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
put_bits(&pb, 7, status->step_index);
if (avctx->trellis > 0) {
uint8_t buf[64];
adpcm_compress_trellis(avctx, &samples_p[ch][1], buf, status,
adpcm_compress_trellis(avctx, &samples_p[ch][0], buf, status,
64, 1);
for (i = 0; i < 64; i++)
put_bits(&pb, 4, buf[i ^ 1]);
status->prev_sample = status->predictor;
} else {
for (i = 0; i < 64; i += 2) {
int t1, t2;

View File

@@ -40,7 +40,6 @@ typedef struct ADXChannelState {
} ADXChannelState;
typedef struct ADXContext {
AVFrame frame;
int channels;
ADXChannelState prev[2];
int header_parsed;

View File

@@ -52,9 +52,6 @@ static av_cold int adx_decode_init(AVCodecContext *avctx)
avctx->sample_fmt = AV_SAMPLE_FMT_S16P;
avcodec_get_frame_defaults(&c->frame);
avctx->coded_frame = &c->frame;
return 0;
}
@@ -98,6 +95,7 @@ static int adx_decode(ADXContext *c, int16_t *out, int offset,
static int adx_decode_frame(AVCodecContext *avctx, void *data,
int *got_frame_ptr, AVPacket *avpkt)
{
AVFrame *frame = data;
int buf_size = avpkt->size;
ADXContext *c = avctx->priv_data;
int16_t **samples;
@@ -143,12 +141,12 @@ static int adx_decode_frame(AVCodecContext *avctx, void *data,
}
/* get output buffer */
c->frame.nb_samples = num_blocks * BLOCK_SAMPLES;
if ((ret = ff_get_buffer(avctx, &c->frame)) < 0) {
frame->nb_samples = num_blocks * BLOCK_SAMPLES;
if ((ret = ff_get_buffer(avctx, frame)) < 0) {
av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
return ret;
}
samples = (int16_t **)c->frame.extended_data;
samples = (int16_t **)frame->extended_data;
samples_offset = 0;
while (num_blocks--) {
@@ -164,8 +162,7 @@ static int adx_decode_frame(AVCodecContext *avctx, void *data,
samples_offset += BLOCK_SAMPLES;
}
*got_frame_ptr = 1;
*(AVFrame *)data = c->frame;
*got_frame_ptr = 1;
return buf - avpkt->data;
}

View File

@@ -107,6 +107,14 @@ static int adx_encode_header(AVCodecContext *avctx, uint8_t *buf, int bufsize)
return HEADER_SIZE;
}
#if FF_API_OLD_ENCODE_AUDIO
static av_cold int adx_encode_close(AVCodecContext *avctx)
{
av_freep(&avctx->coded_frame);
return 0;
}
#endif
static av_cold int adx_encode_init(AVCodecContext *avctx)
{
ADXContext *c = avctx->priv_data;
@@ -118,8 +126,8 @@ static av_cold int adx_encode_init(AVCodecContext *avctx)
avctx->frame_size = BLOCK_SAMPLES;
#if FF_API_OLD_ENCODE_AUDIO
avcodec_get_frame_defaults(&c->frame);
avctx->coded_frame = &c->frame;
if (!(avctx->coded_frame = avcodec_alloc_frame()))
return AVERROR(ENOMEM);
#endif
/* the cutoff can be adjusted, but this seems to work pretty well */
@@ -167,6 +175,9 @@ AVCodec ff_adpcm_adx_encoder = {
.id = AV_CODEC_ID_ADPCM_ADX,
.priv_data_size = sizeof(ADXContext),
.init = adx_encode_init,
#if FF_API_OLD_ENCODE_AUDIO
.close = adx_encode_close,
#endif
.encode2 = adx_encode_frame,
.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16,
AV_SAMPLE_FMT_NONE },

View File

@@ -58,7 +58,6 @@
typedef struct {
AVCodecContext *avctx;
AVFrame frame;
GetBitContext gb;
int channels;
@@ -254,7 +253,7 @@ static void append_extra_bits(int32_t *buffer[2], int32_t *extra_bits_buffer[2],
buffer[ch][i] = (buffer[ch][i] << extra_bits) | extra_bits_buffer[ch][i];
}
static int decode_element(AVCodecContext *avctx, void *data, int ch_index,
static int decode_element(AVCodecContext *avctx, AVFrame *frame, int ch_index,
int channels)
{
ALACContext *alac = avctx->priv_data;
@@ -289,8 +288,8 @@ static int decode_element(AVCodecContext *avctx, void *data, int ch_index,
}
if (!alac->nb_samples) {
/* get output buffer */
alac->frame.nb_samples = output_samples;
if ((ret = ff_get_buffer(avctx, &alac->frame)) < 0) {
frame->nb_samples = output_samples;
if ((ret = ff_get_buffer(avctx, frame)) < 0) {
av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
return ret;
}
@@ -302,7 +301,7 @@ static int decode_element(AVCodecContext *avctx, void *data, int ch_index,
alac->nb_samples = output_samples;
if (alac->direct_output) {
for (ch = 0; ch < channels; ch++)
alac->output_samples_buffer[ch] = (int32_t *)alac->frame.extended_data[ch_index + ch];
alac->output_samples_buffer[ch] = (int32_t *)frame->extended_data[ch_index + ch];
}
if (is_compressed) {
@@ -390,7 +389,7 @@ static int decode_element(AVCodecContext *avctx, void *data, int ch_index,
switch(alac->sample_size) {
case 16: {
for (ch = 0; ch < channels; ch++) {
int16_t *outbuffer = (int16_t *)alac->frame.extended_data[ch_index + ch];
int16_t *outbuffer = (int16_t *)frame->extended_data[ch_index + ch];
for (i = 0; i < alac->nb_samples; i++)
*outbuffer++ = alac->output_samples_buffer[ch][i];
}}
@@ -405,7 +404,7 @@ static int decode_element(AVCodecContext *avctx, void *data, int ch_index,
}else{
switch(alac->sample_size) {
case 16: {
int16_t *outbuffer = ((int16_t *)alac->frame.extended_data[0]) + ch_index;
int16_t *outbuffer = ((int16_t *)frame->extended_data[0]) + ch_index;
for (i = 0; i < alac->nb_samples; i++) {
for (ch = 0; ch < channels; ch++)
*outbuffer++ = alac->output_samples_buffer[ch][i];
@@ -414,7 +413,7 @@ static int decode_element(AVCodecContext *avctx, void *data, int ch_index,
}
break;
case 24: {
int32_t *outbuffer = ((int32_t *)alac->frame.extended_data[0]) + ch_index;
int32_t *outbuffer = ((int32_t *)frame->extended_data[0]) + ch_index;
for (i = 0; i < alac->nb_samples; i++) {
for (ch = 0; ch < channels; ch++)
*outbuffer++ = alac->output_samples_buffer[ch][i] << 8;
@@ -423,7 +422,7 @@ static int decode_element(AVCodecContext *avctx, void *data, int ch_index,
}
break;
case 32: {
int32_t *outbuffer = ((int32_t *)alac->frame.extended_data[0]) + ch_index;
int32_t *outbuffer = ((int32_t *)frame->extended_data[0]) + ch_index;
for (i = 0; i < alac->nb_samples; i++) {
for (ch = 0; ch < channels; ch++)
*outbuffer++ = alac->output_samples_buffer[ch][i];
@@ -441,6 +440,7 @@ static int alac_decode_frame(AVCodecContext *avctx, void *data,
int *got_frame_ptr, AVPacket *avpkt)
{
ALACContext *alac = avctx->priv_data;
AVFrame *frame = data;
enum AlacRawDataBlockType element;
int channels;
int ch, ret, got_end;
@@ -469,7 +469,7 @@ static int alac_decode_frame(AVCodecContext *avctx, void *data,
return AVERROR_INVALIDDATA;
}
ret = decode_element(avctx, data,
ret = decode_element(avctx, frame,
ff_alac_channel_layout_offsets[alac->channels - 1][ch],
channels);
if (ret < 0 && get_bits_left(&alac->gb))
@@ -487,8 +487,7 @@ static int alac_decode_frame(AVCodecContext *avctx, void *data,
avpkt->size * 8 - get_bits_count(&alac->gb));
}
*got_frame_ptr = 1;
*(AVFrame *)data = alac->frame;
*got_frame_ptr = 1;
return avpkt->size;
}
@@ -616,9 +615,6 @@ static av_cold int alac_decode_init(AVCodecContext * avctx)
return ret;
}
avcodec_get_frame_defaults(&alac->frame);
avctx->coded_frame = &alac->frame;
return 0;
}

View File

@@ -21,7 +21,6 @@
#include "avcodec.h"
#include "put_bits.h"
#include "dsputil.h"
#include "internal.h"
#include "lpc.h"
#include "mathops.h"
@@ -275,7 +274,7 @@ static void alac_linear_predictor(AlacEncodeContext *s, int ch)
// generate warm-up samples
residual[0] = samples[0];
for (i = 1; i <= lpc.lpc_order; i++)
residual[i] = samples[i] - samples[i-1];
residual[i] = sign_extend(samples[i] - samples[i-1], s->write_sample_size);
// perform lpc on remaining samples
for (i = lpc.lpc_order + 1; i < s->frame_size; i++) {
@@ -614,7 +613,7 @@ static int alac_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
else
max_frame_size = s->max_coded_frame_size;
if ((ret = ff_alloc_packet2(avctx, avpkt, 2 * max_frame_size)))
if ((ret = ff_alloc_packet2(avctx, avpkt, 2 * max_frame_size)) < 0)
return ret;
/* use verbatim mode for compression_level 0 */

View File

@@ -74,18 +74,23 @@ void avcodec_register_all(void)
/* hardware accelerators */
REGISTER_HWACCEL(H263_VAAPI, h263_vaapi);
REGISTER_HWACCEL(H263_VDPAU, h263_vdpau);
REGISTER_HWACCEL(H264_DXVA2, h264_dxva2);
REGISTER_HWACCEL(H264_VAAPI, h264_vaapi);
REGISTER_HWACCEL(H264_VDA, h264_vda);
REGISTER_HWACCEL(H264_VDPAU, h264_vdpau);
REGISTER_HWACCEL(MPEG1_VDPAU, mpeg1_vdpau);
REGISTER_HWACCEL(MPEG2_DXVA2, mpeg2_dxva2);
REGISTER_HWACCEL(MPEG2_VAAPI, mpeg2_vaapi);
REGISTER_HWACCEL(MPEG2_VDPAU, mpeg2_vdpau);
REGISTER_HWACCEL(MPEG4_VAAPI, mpeg4_vaapi);
REGISTER_HWACCEL(MPEG4_VDPAU, mpeg4_vdpau);
REGISTER_HWACCEL(VC1_DXVA2, vc1_dxva2);
REGISTER_HWACCEL(VC1_VAAPI, vc1_vaapi);
REGISTER_HWACCEL(VC1_VDPAU, vc1_vdpau);
REGISTER_HWACCEL(WMV3_DXVA2, wmv3_dxva2);
REGISTER_HWACCEL(WMV3_VAAPI, wmv3_vaapi);
REGISTER_HWACCEL(WMV3_VDPAU, wmv3_vdpau);
/* video codecs */
REGISTER_ENCODER(A64MULTI, a64multi);
@@ -318,6 +323,7 @@ void avcodec_register_all(void)
REGISTER_ENCDEC (DCA, dca);
REGISTER_DECODER(DSICINAUDIO, dsicinaudio);
REGISTER_ENCDEC (EAC3, eac3);
REGISTER_DECODER(EVRC, evrc);
REGISTER_DECODER(FFWAVESYNTH, ffwavesynth);
REGISTER_ENCDEC (FLAC, flac);
REGISTER_ENCDEC (G723_1, g723_1);
@@ -483,7 +489,8 @@ void avcodec_register_all(void)
REGISTER_ENCODER(LIBVO_AACENC, libvo_aacenc);
REGISTER_ENCODER(LIBVO_AMRWBENC, libvo_amrwbenc);
REGISTER_ENCDEC (LIBVORBIS, libvorbis);
REGISTER_ENCDEC (LIBVPX, libvpx);
REGISTER_ENCDEC (LIBVPX_VP8, libvpx_vp8);
REGISTER_ENCDEC (LIBVPX_VP9, libvpx_vp9);
REGISTER_ENCODER(LIBX264, libx264);
REGISTER_ENCODER(LIBX264RGB, libx264rgb);
REGISTER_ENCODER(LIBXAVS, libxavs);

View File

@@ -19,20 +19,21 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "libavutil/attributes.h"
#include "libavcodec/dsputil.h"
#include "dsputil_alpha.h"
#include "asm.h"
void (*put_pixels_clamped_axp_p)(const DCTELEM *block, uint8_t *pixels,
void (*put_pixels_clamped_axp_p)(const int16_t *block, uint8_t *pixels,
int line_size);
void (*add_pixels_clamped_axp_p)(const DCTELEM *block, uint8_t *pixels,
void (*add_pixels_clamped_axp_p)(const int16_t *block, uint8_t *pixels,
int line_size);
#if 0
/* These functions were the base for the optimized assembler routines,
and remain here for documentation purposes. */
static void put_pixels_clamped_mvi(const DCTELEM *block, uint8_t *pixels,
int line_size)
static void put_pixels_clamped_mvi(const int16_t *block, uint8_t *pixels,
ptrdiff_t line_size)
{
int i = 8;
uint64_t clampmask = zap(-1, 0xaa); /* 0x00ff00ff00ff00ff */
@@ -55,8 +56,8 @@ static void put_pixels_clamped_mvi(const DCTELEM *block, uint8_t *pixels,
} while (--i);
}
void add_pixels_clamped_mvi(const DCTELEM *block, uint8_t *pixels,
int line_size)
void add_pixels_clamped_mvi(const int16_t *block, uint8_t *pixels,
ptrdiff_t line_size)
{
int h = 8;
/* Keep this function a leaf function by generating the constants
@@ -100,9 +101,9 @@ void add_pixels_clamped_mvi(const DCTELEM *block, uint8_t *pixels,
}
#endif
static void clear_blocks_axp(DCTELEM *blocks) {
static void clear_blocks_axp(int16_t *blocks) {
uint64_t *p = (uint64_t *) blocks;
int n = sizeof(DCTELEM) * 6 * 64;
int n = sizeof(int16_t) * 6 * 64;
do {
p[0] = 0;
@@ -211,8 +212,8 @@ static inline uint64_t avg4(uint64_t l1, uint64_t l2, uint64_t l3, uint64_t l4)
#define MAKE_OP(OPNAME, SUFF, OPKIND, STORE) \
static void OPNAME ## _pixels ## SUFF ## _axp \
(uint8_t *av_restrict block, const uint8_t *av_restrict pixels, \
int line_size, int h) \
(uint8_t *restrict block, const uint8_t *restrict pixels, \
ptrdiff_t line_size, int h) \
{ \
if ((size_t) pixels & 0x7) { \
OPKIND(uldq, STORE); \
@@ -222,8 +223,8 @@ static void OPNAME ## _pixels ## SUFF ## _axp \
} \
\
static void OPNAME ## _pixels16 ## SUFF ## _axp \
(uint8_t *av_restrict block, const uint8_t *av_restrict pixels, \
int line_size, int h) \
(uint8_t *restrict block, const uint8_t *restrict pixels, \
ptrdiff_t line_size, int h) \
{ \
OPNAME ## _pixels ## SUFF ## _axp(block, pixels, line_size, h); \
OPNAME ## _pixels ## SUFF ## _axp(block + 8, pixels + 8, line_size, h); \
@@ -262,13 +263,13 @@ PIXOP(put_no_rnd, STORE);
PIXOP(avg_no_rnd, STORE);
static void put_pixels16_axp_asm(uint8_t *block, const uint8_t *pixels,
int line_size, int h)
ptrdiff_t line_size, int h)
{
put_pixels_axp_asm(block, pixels, line_size, h);
put_pixels_axp_asm(block + 8, pixels + 8, line_size, h);
}
void ff_dsputil_init_alpha(DSPContext* c, AVCodecContext *avctx)
av_cold void ff_dsputil_init_alpha(DSPContext *c, AVCodecContext *avctx)
{
const int high_bit_depth = avctx->bits_per_raw_sample > 8;
@@ -288,10 +289,10 @@ void ff_dsputil_init_alpha(DSPContext* c, AVCodecContext *avctx)
c->avg_pixels_tab[0][2] = avg_pixels16_y2_axp;
c->avg_pixels_tab[0][3] = avg_pixels16_xy2_axp;
c->avg_no_rnd_pixels_tab[0][0] = avg_no_rnd_pixels16_axp;
c->avg_no_rnd_pixels_tab[0][1] = avg_no_rnd_pixels16_x2_axp;
c->avg_no_rnd_pixels_tab[0][2] = avg_no_rnd_pixels16_y2_axp;
c->avg_no_rnd_pixels_tab[0][3] = avg_no_rnd_pixels16_xy2_axp;
c->avg_no_rnd_pixels_tab[0] = avg_no_rnd_pixels16_axp;
c->avg_no_rnd_pixels_tab[1] = avg_no_rnd_pixels16_x2_axp;
c->avg_no_rnd_pixels_tab[2] = avg_no_rnd_pixels16_y2_axp;
c->avg_no_rnd_pixels_tab[3] = avg_no_rnd_pixels16_xy2_axp;
c->put_pixels_tab[1][0] = put_pixels_axp_asm;
c->put_pixels_tab[1][1] = put_pixels_x2_axp;
@@ -308,11 +309,6 @@ void ff_dsputil_init_alpha(DSPContext* c, AVCodecContext *avctx)
c->avg_pixels_tab[1][2] = avg_pixels_y2_axp;
c->avg_pixels_tab[1][3] = avg_pixels_xy2_axp;
c->avg_no_rnd_pixels_tab[1][0] = avg_no_rnd_pixels_axp;
c->avg_no_rnd_pixels_tab[1][1] = avg_no_rnd_pixels_x2_axp;
c->avg_no_rnd_pixels_tab[1][2] = avg_no_rnd_pixels_y2_axp;
c->avg_no_rnd_pixels_tab[1][3] = avg_no_rnd_pixels_xy2_axp;
c->clear_blocks = clear_blocks_axp;
}

View File

@@ -19,26 +19,27 @@
#ifndef AVCODEC_ALPHA_DSPUTIL_ALPHA_H
#define AVCODEC_ALPHA_DSPUTIL_ALPHA_H
#include "libavcodec/dsputil.h"
#include <stddef.h>
#include <stdint.h>
void ff_simple_idct_axp(DCTELEM *block);
void ff_simple_idct_put_axp(uint8_t *dest, int line_size, DCTELEM *block);
void ff_simple_idct_add_axp(uint8_t *dest, int line_size, DCTELEM *block);
void ff_simple_idct_axp(int16_t *block);
void ff_simple_idct_put_axp(uint8_t *dest, int line_size, int16_t *block);
void ff_simple_idct_add_axp(uint8_t *dest, int line_size, int16_t *block);
void put_pixels_axp_asm(uint8_t *block, const uint8_t *pixels,
int line_size, int h);
void put_pixels_clamped_mvi_asm(const DCTELEM *block, uint8_t *pixels,
ptrdiff_t line_size, int h);
void put_pixels_clamped_mvi_asm(const int16_t *block, uint8_t *pixels,
int line_size);
void add_pixels_clamped_mvi_asm(const DCTELEM *block, uint8_t *pixels,
void add_pixels_clamped_mvi_asm(const int16_t *block, uint8_t *pixels,
int line_size);
extern void (*put_pixels_clamped_axp_p)(const DCTELEM *block, uint8_t *pixels,
extern void (*put_pixels_clamped_axp_p)(const int16_t *block, uint8_t *pixels,
int line_size);
extern void (*add_pixels_clamped_axp_p)(const DCTELEM *block, uint8_t *pixels,
extern void (*add_pixels_clamped_axp_p)(const int16_t *block, uint8_t *pixels,
int line_size);
void get_pixels_mvi(DCTELEM *av_restrict block,
const uint8_t *av_restrict pixels, int line_size);
void diff_pixels_mvi(DCTELEM *block, const uint8_t *s1, const uint8_t *s2,
void get_pixels_mvi(int16_t *restrict block,
const uint8_t *restrict pixels, int line_size);
void diff_pixels_mvi(int16_t *block, const uint8_t *s1, const uint8_t *s2,
int stride);
int pix_abs8x8_mvi(void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h);
int pix_abs16x16_mvi_asm(void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h);

View File

@@ -135,7 +135,7 @@ $aligned:
.end put_pixels_axp_asm
/************************************************************************
* void put_pixels_clamped_mvi_asm(const DCTELEM *block, uint8_t *pixels,
* void put_pixels_clamped_mvi_asm(const int16_t *block, uint8_t *pixels,
* int line_size)
*/
.align 6
@@ -185,7 +185,7 @@ put_pixels_clamped_mvi_asm:
.end put_pixels_clamped_mvi_asm
/************************************************************************
* void add_pixels_clamped_mvi_asm(const DCTELEM *block, uint8_t *pixels,
* void add_pixels_clamped_mvi_asm(const int16_t *block, uint8_t *pixels,
* int line_size)
*/
.align 6

View File

@@ -19,12 +19,11 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "libavcodec/dsputil.h"
#include "dsputil_alpha.h"
#include "asm.h"
void get_pixels_mvi(DCTELEM *av_restrict block,
const uint8_t *av_restrict pixels, int line_size)
void get_pixels_mvi(int16_t *restrict block,
const uint8_t *restrict pixels, int line_size)
{
int h = 8;
@@ -40,7 +39,7 @@ void get_pixels_mvi(DCTELEM *av_restrict block,
} while (--h);
}
void diff_pixels_mvi(DCTELEM *block, const uint8_t *s1, const uint8_t *s2,
void diff_pixels_mvi(int16_t *block, const uint8_t *s1, const uint8_t *s2,
int stride) {
int h = 8;
uint64_t mask = 0x4040;

View File

@@ -19,11 +19,11 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "libavcodec/dsputil.h"
#include "libavutil/attributes.h"
#include "libavcodec/mpegvideo.h"
#include "asm.h"
static void dct_unquantize_h263_axp(DCTELEM *block, int n_coeffs,
static void dct_unquantize_h263_axp(int16_t *block, int n_coeffs,
uint64_t qscale, uint64_t qadd)
{
uint64_t qmul = qscale << 1;
@@ -69,12 +69,12 @@ static void dct_unquantize_h263_axp(DCTELEM *block, int n_coeffs,
}
}
static void dct_unquantize_h263_intra_axp(MpegEncContext *s, DCTELEM *block,
static void dct_unquantize_h263_intra_axp(MpegEncContext *s, int16_t *block,
int n, int qscale)
{
int n_coeffs;
uint64_t qadd;
DCTELEM block0 = block[0];
int16_t block0 = block[0];
if (!s->h263_aic) {
if (n < 4)
@@ -96,14 +96,14 @@ static void dct_unquantize_h263_intra_axp(MpegEncContext *s, DCTELEM *block,
block[0] = block0;
}
static void dct_unquantize_h263_inter_axp(MpegEncContext *s, DCTELEM *block,
static void dct_unquantize_h263_inter_axp(MpegEncContext *s, int16_t *block,
int n, int qscale)
{
int n_coeffs = s->inter_scantable.raster_end[s->block_last_index[n]];
dct_unquantize_h263_axp(block, n_coeffs, qscale, (qscale - 1) | 1);
}
void ff_MPV_common_init_axp(MpegEncContext *s)
av_cold void ff_MPV_common_init_axp(MpegEncContext *s)
{
s->dct_unquantize_h263_intra = dct_unquantize_h263_intra_axp;
s->dct_unquantize_h263_inter = dct_unquantize_h263_inter_axp;

View File

@@ -26,7 +26,6 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "libavcodec/dsputil.h"
#include "dsputil_alpha.h"
#include "asm.h"
@@ -44,7 +43,7 @@
#define COL_SHIFT 20
/* 0: all entries 0, 1: only first entry nonzero, 2: otherwise */
static inline int idct_row(DCTELEM *row)
static inline int idct_row(int16_t *row)
{
int a0, a1, a2, a3, b0, b1, b2, b3, t;
uint64_t l, r, t2;
@@ -152,7 +151,7 @@ static inline int idct_row(DCTELEM *row)
return 2;
}
static inline void idct_col(DCTELEM *col)
static inline void idct_col(int16_t *col)
{
int a0, a1, a2, a3, b0, b1, b2, b3;
@@ -229,7 +228,7 @@ static inline void idct_col(DCTELEM *col)
/* If all rows but the first one are zero after row transformation,
all rows will be identical after column transformation. */
static inline void idct_col2(DCTELEM *col)
static inline void idct_col2(int16_t *col)
{
int i;
uint64_t l, r;
@@ -251,7 +250,7 @@ static inline void idct_col2(DCTELEM *col)
stq(l, col + 14 * 4); stq(r, col + 15 * 4);
}
void ff_simple_idct_axp(DCTELEM *block)
void ff_simple_idct_axp(int16_t *block)
{
int i;
@@ -291,13 +290,13 @@ void ff_simple_idct_axp(DCTELEM *block)
}
}
void ff_simple_idct_put_axp(uint8_t *dest, int line_size, DCTELEM *block)
void ff_simple_idct_put_axp(uint8_t *dest, int line_size, int16_t *block)
{
ff_simple_idct_axp(block);
put_pixels_clamped_axp_p(block, dest, line_size);
}
void ff_simple_idct_add_axp(uint8_t *dest, int line_size, DCTELEM *block)
void ff_simple_idct_add_axp(uint8_t *dest, int line_size, int16_t *block)
{
ff_simple_idct_axp(block);
add_pixels_clamped_axp_p(block, dest, line_size);

View File

@@ -192,7 +192,6 @@ typedef struct {
typedef struct {
AVCodecContext *avctx;
AVFrame frame;
ALSSpecificConfig sconf;
GetBitContext gb;
DSPContext dsp;
@@ -285,12 +284,14 @@ static av_cold int read_specific_config(ALSDecContext *ctx)
GetBitContext gb;
uint64_t ht_size;
int i, config_offset;
MPEG4AudioConfig m4ac;
MPEG4AudioConfig m4ac = {0};
ALSSpecificConfig *sconf = &ctx->sconf;
AVCodecContext *avctx = ctx->avctx;
uint32_t als_id, header_size, trailer_size;
int ret;
init_get_bits(&gb, avctx->extradata, avctx->extradata_size * 8);
if ((ret = init_get_bits8(&gb, avctx->extradata, avctx->extradata_size)) < 0)
return ret;
config_offset = avpriv_mpeg4audio_get_config(&m4ac, avctx->extradata,
avctx->extradata_size * 8, 1);
@@ -1448,6 +1449,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame_ptr,
AVPacket *avpkt)
{
ALSDecContext *ctx = avctx->priv_data;
AVFrame *frame = data;
ALSSpecificConfig *sconf = &ctx->sconf;
const uint8_t *buffer = avpkt->data;
int buffer_size = avpkt->size;
@@ -1477,8 +1479,8 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame_ptr,
ctx->frame_id++;
/* get output buffer */
ctx->frame.nb_samples = ctx->cur_frame_length;
if ((ret = ff_get_buffer(avctx, &ctx->frame)) < 0) {
frame->nb_samples = ctx->cur_frame_length;
if ((ret = ff_get_buffer(avctx, frame)) < 0) {
av_log(avctx, AV_LOG_ERROR, "get_buffer() failed.\n");
return ret;
}
@@ -1486,7 +1488,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame_ptr,
// transform decoded frame into output format
#define INTERLEAVE_OUTPUT(bps) \
{ \
int##bps##_t *dest = (int##bps##_t*)ctx->frame.data[0]; \
int##bps##_t *dest = (int##bps##_t*)frame->data[0]; \
shift = bps - ctx->avctx->bits_per_raw_sample; \
if (!ctx->cs_switch) { \
for (sample = 0; sample < ctx->cur_frame_length; sample++) \
@@ -1510,7 +1512,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame_ptr,
int swap = HAVE_BIGENDIAN != sconf->msb_first;
if (ctx->avctx->bits_per_raw_sample == 24) {
int32_t *src = (int32_t *)ctx->frame.data[0];
int32_t *src = (int32_t *)frame->data[0];
for (sample = 0;
sample < ctx->cur_frame_length * avctx->channels;
@@ -1531,7 +1533,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame_ptr,
if (swap) {
if (ctx->avctx->bits_per_raw_sample <= 16) {
int16_t *src = (int16_t*) ctx->frame.data[0];
int16_t *src = (int16_t*) frame->data[0];
int16_t *dest = (int16_t*) ctx->crc_buffer;
for (sample = 0;
sample < ctx->cur_frame_length * avctx->channels;
@@ -1539,12 +1541,12 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame_ptr,
*dest++ = av_bswap16(src[sample]);
} else {
ctx->dsp.bswap_buf((uint32_t*)ctx->crc_buffer,
(uint32_t *)ctx->frame.data[0],
(uint32_t *)frame->data[0],
ctx->cur_frame_length * avctx->channels);
}
crc_source = ctx->crc_buffer;
} else {
crc_source = ctx->frame.data[0];
crc_source = frame->data[0];
}
ctx->crc = av_crc(ctx->crc_table, ctx->crc, crc_source,
@@ -1560,9 +1562,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame_ptr,
}
}
*got_frame_ptr = 1;
*(AVFrame *)data = ctx->frame;
*got_frame_ptr = 1;
bytes_read = invalid_frame ? buffer_size :
(get_bits_count(&ctx->gb) + 7) >> 3;
@@ -1759,9 +1759,6 @@ static av_cold int decode_init(AVCodecContext *avctx)
ff_dsputil_init(&ctx->dsp, avctx);
avcodec_get_frame_defaults(&ctx->frame);
avctx->coded_frame = &ctx->frame;
return 0;
}

View File

@@ -44,8 +44,8 @@
#include <math.h>
#include "libavutil/channel_layout.h"
#include "libavutil/float_dsp.h"
#include "avcodec.h"
#include "dsputil.h"
#include "libavutil/common.h"
#include "libavutil/avassert.h"
#include "celp_math.h"
@@ -98,7 +98,6 @@
#define AMR_AGC_ALPHA 0.9
typedef struct AMRContext {
AVFrame avframe; ///< AVFrame for decoded samples
AMRNBFrame frame; ///< decoded AMR parameters (lsf coefficients, codebook indexes, etc)
uint8_t bad_frame_indicator; ///< bad frame ? 1 : 0
enum Mode cur_frame_mode;
@@ -185,9 +184,6 @@ static av_cold int amrnb_decode_init(AVCodecContext *avctx)
for (i = 0; i < 4; i++)
p->prediction_error[i] = MIN_ENERGY;
avcodec_get_frame_defaults(&p->avframe);
avctx->coded_frame = &p->avframe;
ff_acelp_filter_init(&p->acelpf_ctx);
ff_acelp_vectors_init(&p->acelpv_ctx);
ff_celp_filter_init(&p->celpf_ctx);
@@ -810,7 +806,7 @@ static int synthesis(AMRContext *p, float *lpc,
// emphasize pitch vector contribution
if (p->pitch_gain[4] > 0.5 && !overflow) {
float energy = p->celpm_ctx.dot_productf(excitation, excitation,
AMR_SUBFRAME_SIZE);
AMR_SUBFRAME_SIZE);
float pitch_factor =
p->pitch_gain[4] *
(p->cur_frame_mode == MODE_12k2 ?
@@ -911,7 +907,7 @@ static void postfilter(AMRContext *p, float *lpc, float *buf_out)
float *samples = p->samples_in + LP_FILTER_ORDER; // Start of input
float speech_gain = p->celpm_ctx.dot_productf(samples, samples,
AMR_SUBFRAME_SIZE);
AMR_SUBFRAME_SIZE);
float pole_out[AMR_SUBFRAME_SIZE + LP_FILTER_ORDER]; // Output of pole filter
const float *gamma_n, *gamma_d; // Formant filter factor table
@@ -954,6 +950,7 @@ static int amrnb_decode_frame(AVCodecContext *avctx, void *data,
{
AMRContext *p = avctx->priv_data; // pointer to private data
AVFrame *frame = data;
const uint8_t *buf = avpkt->data;
int buf_size = avpkt->size;
float *buf_out; // pointer to the output data buffer
@@ -965,12 +962,12 @@ static int amrnb_decode_frame(AVCodecContext *avctx, void *data,
const float *synth_fixed_vector; // pointer to the fixed vector that synthesis should use
/* get output buffer */
p->avframe.nb_samples = AMR_BLOCK_SIZE;
if ((ret = ff_get_buffer(avctx, &p->avframe)) < 0) {
frame->nb_samples = AMR_BLOCK_SIZE;
if ((ret = ff_get_buffer(avctx, frame)) < 0) {
av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
return ret;
}
buf_out = (float *)p->avframe.data[0];
buf_out = (float *)frame->data[0];
p->cur_frame_mode = unpack_bitstream(p, buf, buf_size);
if (p->cur_frame_mode == NO_DATA) {
@@ -1018,8 +1015,8 @@ static int amrnb_decode_frame(AVCodecContext *avctx, void *data,
p->fixed_gain[4] =
ff_amr_set_fixed_gain(fixed_gain_factor,
p->celpm_ctx.dot_productf(p->fixed_vector,
p->fixed_vector,
AMR_SUBFRAME_SIZE) /
p->fixed_vector,
AMR_SUBFRAME_SIZE) /
AMR_SUBFRAME_SIZE,
p->prediction_error,
energy_mean[p->cur_frame_mode], energy_pred_fac);
@@ -1078,8 +1075,7 @@ static int amrnb_decode_frame(AVCodecContext *avctx, void *data,
p->acelpv_ctx.weighted_vector_sumf(p->lsf_avg, p->lsf_avg, p->lsf_q[3],
0.84, 0.16, LP_FILTER_ORDER);
*got_frame_ptr = 1;
*(AVFrame *)data = p->avframe;
*got_frame_ptr = 1;
/* return the amount of bytes consumed if everything was OK */
return frame_sizes_nb[p->cur_frame_mode] + 1; // +7 for rounding and +8 for TOC

View File

@@ -26,10 +26,10 @@
#include "libavutil/channel_layout.h"
#include "libavutil/common.h"
#include "libavutil/float_dsp.h"
#include "libavutil/lfg.h"
#include "avcodec.h"
#include "dsputil.h"
#include "lsp.h"
#include "celp_filters.h"
#include "celp_math.h"
@@ -45,7 +45,6 @@
#include "mips/amrwbdec_mips.h"
typedef struct {
AVFrame avframe; ///< AVFrame for decoded samples
AMRWBFrame frame; ///< AMRWB parameters decoded from bitstream
enum Mode fr_cur_mode; ///< mode index of current frame
uint8_t fr_quality; ///< frame quality index (FQI)
@@ -121,9 +120,6 @@ static av_cold int amrwb_decode_init(AVCodecContext *avctx)
for (i = 0; i < 4; i++)
ctx->prediction_error[i] = MIN_ENERGY;
avcodec_get_frame_defaults(&ctx->avframe);
avctx->coded_frame = &ctx->avframe;
ff_acelp_filter_init(&ctx->acelpf_ctx);
ff_acelp_vectors_init(&ctx->acelpv_ctx);
ff_celp_filter_init(&ctx->celpf_ctx);
@@ -612,11 +608,11 @@ static float voice_factor(float *p_vector, float p_gain,
CELPMContext *ctx)
{
double p_ener = (double) ctx->dot_productf(p_vector, p_vector,
AMRWB_SFR_SIZE) *
p_gain * p_gain;
AMRWB_SFR_SIZE) *
p_gain * p_gain;
double f_ener = (double) ctx->dot_productf(f_vector, f_vector,
AMRWB_SFR_SIZE) *
f_gain * f_gain;
AMRWB_SFR_SIZE) *
f_gain * f_gain;
return (p_ener - f_ener) / (p_ener + f_ener);
}
@@ -785,7 +781,7 @@ static void synthesis(AMRWBContext *ctx, float *lpc, float *excitation,
if (ctx->pitch_gain[0] > 0.5 && ctx->fr_cur_mode <= MODE_8k85) {
int i;
float energy = ctx->celpm_ctx.dot_productf(excitation, excitation,
AMRWB_SFR_SIZE);
AMRWB_SFR_SIZE);
// XXX: Weird part in both ref code and spec. A unknown parameter
// {beta} seems to be identical to the current pitch gain
@@ -846,8 +842,8 @@ static void upsample_5_4(float *out, const float *in, int o_size, CELPMContext *
for (k = 1; k < 5; k++) {
out[i] = ctx->dot_productf(in0 + int_part,
upsample_fir[4 - frac_part],
UPS_MEM_SIZE);
upsample_fir[4 - frac_part],
UPS_MEM_SIZE);
int_part++;
frac_part--;
i++;
@@ -893,7 +889,8 @@ static void scaled_hb_excitation(AMRWBContext *ctx, float *hb_exc,
const float *synth_exc, float hb_gain)
{
int i;
float energy = ctx->celpm_ctx.dot_productf(synth_exc, synth_exc, AMRWB_SFR_SIZE);
float energy = ctx->celpm_ctx.dot_productf(synth_exc, synth_exc,
AMRWB_SFR_SIZE);
/* Generate a white-noise excitation */
for (i = 0; i < AMRWB_SFR_SIZE_16k; i++)
@@ -1096,6 +1093,7 @@ static int amrwb_decode_frame(AVCodecContext *avctx, void *data,
int *got_frame_ptr, AVPacket *avpkt)
{
AMRWBContext *ctx = avctx->priv_data;
AVFrame *frame = data;
AMRWBFrame *cf = &ctx->frame;
const uint8_t *buf = avpkt->data;
int buf_size = avpkt->size;
@@ -1113,12 +1111,12 @@ static int amrwb_decode_frame(AVCodecContext *avctx, void *data,
int sub, i, ret;
/* get output buffer */
ctx->avframe.nb_samples = 4 * AMRWB_SFR_SIZE_16k;
if ((ret = ff_get_buffer(avctx, &ctx->avframe)) < 0) {
frame->nb_samples = 4 * AMRWB_SFR_SIZE_16k;
if ((ret = ff_get_buffer(avctx, frame)) < 0) {
av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
return ret;
}
buf_out = (float *)ctx->avframe.data[0];
buf_out = (float *)frame->data[0];
header_size = decode_mime_header(ctx, buf);
if (ctx->fr_cur_mode > MODE_SID) {
@@ -1189,8 +1187,8 @@ static int amrwb_decode_frame(AVCodecContext *avctx, void *data,
ctx->fixed_gain[0] =
ff_amr_set_fixed_gain(fixed_gain_factor,
ctx->celpm_ctx.dot_productf(ctx->fixed_vector,
ctx->fixed_vector,
AMRWB_SFR_SIZE) /
ctx->fixed_vector,
AMRWB_SFR_SIZE) /
AMRWB_SFR_SIZE,
ctx->prediction_error,
ENERGY_MEAN, energy_pred_fac);
@@ -1264,8 +1262,7 @@ static int amrwb_decode_frame(AVCodecContext *avctx, void *data,
memcpy(ctx->isp_sub4_past, ctx->isp[3], LP_ORDER * sizeof(ctx->isp[3][0]));
memcpy(ctx->isf_past_final, ctx->isf_cur, LP_ORDER * sizeof(float));
*got_frame_ptr = 1;
*(AVFrame *)data = ctx->avframe;
*got_frame_ptr = 1;
return expected_fr_size;
}

View File

@@ -114,7 +114,7 @@ static int decode_frame(AVCodecContext *avctx,
uint8_t *dst, *dst_end;
int count, ret;
if ((ret = avctx->reget_buffer(avctx, &s->frame)) < 0) {
if ((ret = avctx->reget_buffer(avctx, &s->frame)) < 0){
av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
return ret;
}

View File

@@ -112,7 +112,7 @@ static void hscroll(AVCodecContext *avctx)
AnsiContext *s = avctx->priv_data;
int i;
if (s->y < avctx->height - s->font_height) {
if (s->y <= avctx->height - 2*s->font_height) {
s->y += s->font_height;
return;
}
@@ -165,7 +165,7 @@ static void draw_char(AVCodecContext *avctx, int c)
ff_draw_pc_font(s->frame.data[0] + s->y * s->frame.linesize[0] + s->x,
s->frame.linesize[0], s->font, s->font_height, c, fg, bg);
s->x += FONT_WIDTH;
if (s->x >= avctx->width) {
if (s->x > avctx->width - FONT_WIDTH) {
s->x = 0;
hscroll(avctx);
}
@@ -239,6 +239,8 @@ static int execute_code(AVCodecContext * avctx, int c)
default:
av_log_ask_for_sample(avctx, "unsupported screen mode\n");
}
s->x = av_clip(s->x, 0, width - FONT_WIDTH);
s->y = av_clip(s->y, 0, height - s->font_height);
if (width != avctx->width || height != avctx->height) {
if (s->frame.data[0])
avctx->release_buffer(avctx, &s->frame);
@@ -335,6 +337,8 @@ static int execute_code(AVCodecContext * avctx, int c)
av_log_ask_for_sample(avctx, "unsupported escape code\n");
break;
}
s->x = av_clip(s->x, 0, avctx->width - FONT_WIDTH);
s->y = av_clip(s->y, 0, avctx->height - s->font_height);
return 0;
}
@@ -415,7 +419,7 @@ static int decode_frame(AVCodecContext *avctx,
switch(buf[0]) {
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
if (s->nb_args < MAX_NB_ARGS)
if (s->nb_args < MAX_NB_ARGS && s->args[s->nb_args] < 6553)
s->args[s->nb_args] = FFMAX(s->args[s->nb_args], 0) * 10 + buf[0] - '0';
break;
case ';':
@@ -434,8 +438,8 @@ static int decode_frame(AVCodecContext *avctx,
av_log(avctx, AV_LOG_WARNING, "args overflow (%i)\n", s->nb_args);
if (s->nb_args < MAX_NB_ARGS && s->args[s->nb_args] >= 0)
s->nb_args++;
if (execute_code(avctx, buf[0]) < 0)
return -1;
if ((ret = execute_code(avctx, buf[0])) < 0)
return ret;
s->state = STATE_NORMAL;
}
break;

View File

@@ -129,7 +129,6 @@ typedef struct APEPredictor {
typedef struct APEContext {
AVClass *class; ///< class for AVOptions
AVCodecContext *avctx;
AVFrame frame;
DSPContext dsp;
int channels;
int samples; ///< samples left to decode in current frame
@@ -235,9 +234,6 @@ static av_cold int ape_decode_init(AVCodecContext *avctx)
ff_dsputil_init(&s->dsp, avctx);
avctx->channel_layout = (avctx->channels==2) ? AV_CH_LAYOUT_STEREO : AV_CH_LAYOUT_MONO;
avcodec_get_frame_defaults(&s->frame);
avctx->coded_frame = &s->frame;
return 0;
filter_alloc_fail:
ape_decode_close(avctx);
@@ -826,6 +822,7 @@ static void ape_unpack_stereo(APEContext *ctx, int count)
static int ape_decode_frame(AVCodecContext *avctx, void *data,
int *got_frame_ptr, AVPacket *avpkt)
{
AVFrame *frame = data;
const uint8_t *buf = avpkt->data;
APEContext *s = avctx->priv_data;
uint8_t *sample8;
@@ -906,8 +903,8 @@ static int ape_decode_frame(AVCodecContext *avctx, void *data,
s->decoded[1] = s->decoded_buffer + FFALIGN(blockstodecode, 8);
/* get output buffer */
s->frame.nb_samples = blockstodecode;
if ((ret = ff_get_buffer(avctx, &s->frame)) < 0) {
frame->nb_samples = blockstodecode;
if ((ret = ff_get_buffer(avctx, frame)) < 0) {
av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
return ret;
}
@@ -929,21 +926,21 @@ static int ape_decode_frame(AVCodecContext *avctx, void *data,
switch (s->bps) {
case 8:
for (ch = 0; ch < s->channels; ch++) {
sample8 = (uint8_t *)s->frame.data[ch];
sample8 = (uint8_t *)frame->data[ch];
for (i = 0; i < blockstodecode; i++)
*sample8++ = (s->decoded[ch][i] + 0x80) & 0xff;
}
break;
case 16:
for (ch = 0; ch < s->channels; ch++) {
sample16 = (int16_t *)s->frame.data[ch];
sample16 = (int16_t *)frame->data[ch];
for (i = 0; i < blockstodecode; i++)
*sample16++ = s->decoded[ch][i];
}
break;
case 24:
for (ch = 0; ch < s->channels; ch++) {
sample24 = (int32_t *)s->frame.data[ch];
sample24 = (int32_t *)frame->data[ch];
for (i = 0; i < blockstodecode; i++)
*sample24++ = s->decoded[ch][i] << 8;
}
@@ -952,8 +949,7 @@ static int ape_decode_frame(AVCodecContext *avctx, void *data,
s->samples -= blockstodecode;
*got_frame_ptr = 1;
*(AVFrame *)data = s->frame;
*got_frame_ptr = 1;
return !s->samples ? avpkt->size : 0;
}

View File

@@ -1,3 +1,5 @@
ARCH_HEADERS = mathops.h
OBJS-$(CONFIG_AC3DSP) += arm/ac3dsp_init_arm.o \
arm/ac3dsp_arm.o
@@ -15,6 +17,7 @@ OBJS-$(CONFIG_MPEGAUDIODSP) += arm/mpegaudiodsp_init_arm.o
ARMV6-OBJS-$(CONFIG_MPEGAUDIODSP) += arm/mpegaudiodsp_fixed_armv6.o
OBJS-$(CONFIG_MPEGVIDEO) += arm/mpegvideo_arm.o
OBJS-$(CONFIG_VORBIS_DECODER) += arm/vorbisdsp_init_arm.o
OBJS-$(CONFIG_VP3DSP) += arm/vp3dsp_init_arm.o
OBJS-$(CONFIG_VP5_DECODER) += arm/vp56dsp_init_arm.o
OBJS-$(CONFIG_VP6_DECODER) += arm/vp56dsp_init_arm.o
@@ -23,8 +26,10 @@ ARMV6-OBJS-$(CONFIG_VP8_DECODER) += arm/vp8_armv6.o \
arm/vp8dsp_init_armv6.o \
arm/vp8dsp_armv6.o
OBJS-$(CONFIG_H264CHROMA) += arm/h264chroma_init_arm.o
OBJS-$(CONFIG_H264DSP) += arm/h264dsp_init_arm.o
OBJS-$(CONFIG_H264PRED) += arm/h264pred_init_arm.o
OBJS-$(CONFIG_H264QPEL) += arm/h264qpel_init_arm.o
OBJS-$(CONFIG_RV30_DECODER) += arm/rv34dsp_init_arm.o
OBJS-$(CONFIG_RV40_DECODER) += arm/rv34dsp_init_arm.o \
@@ -55,9 +60,6 @@ ARMV6-OBJS += arm/dsputil_init_armv6.o \
VFP-OBJS-$(HAVE_ARMV6) += arm/fmtconvert_vfp.o
VFP-OBJS += arm/dsputil_vfp.o \
arm/dsputil_init_vfp.o \
NEON-OBJS-$(CONFIG_FFT) += arm/fft_neon.o \
arm/fft_fixed_neon.o \
@@ -66,12 +68,14 @@ NEON-OBJS-$(CONFIG_MDCT) += arm/mdct_neon.o \
NEON-OBJS-$(CONFIG_RDFT) += arm/rdft_neon.o \
NEON-OBJS-$(CONFIG_H264CHROMA) += arm/h264cmc_neon.o
NEON-OBJS-$(CONFIG_H264DSP) += arm/h264dsp_neon.o \
arm/h264idct_neon.o \
arm/h264cmc_neon.o \
NEON-OBJS-$(CONFIG_H264PRED) += arm/h264pred_neon.o \
NEON-OBJS-$(CONFIG_H264QPEL) += arm/h264qpel_neon.o \
NEON-OBJS-$(CONFIG_AC3DSP) += arm/ac3dsp_neon.o
NEON-OBJS-$(CONFIG_AAC_DECODER) += arm/sbrdsp_neon.o \
@@ -84,7 +88,8 @@ NEON-OBJS-$(CONFIG_MPEGVIDEO) += arm/mpegvideo_neon.o
NEON-OBJS-$(CONFIG_RV30_DECODER) += arm/rv34dsp_neon.o
NEON-OBJS-$(CONFIG_RV40_DECODER) += arm/rv34dsp_neon.o \
arm/rv40dsp_neon.o \
arm/h264cmc_neon.o \
NEON-OBJS-$(CONFIG_VORBIS_DECODER) += arm/vorbisdsp_neon.o
NEON-OBJS-$(CONFIG_VP3DSP) += arm/vp3dsp_neon.o

View File

@@ -22,8 +22,9 @@
#define AVCODEC_ARM_DCA_H
#include <stdint.h>
#include "config.h"
#include "libavutil/intmath.h"
#include "libavcodec/mathops.h"
#if HAVE_ARMV6_INLINE && AV_GCC_VERSION_AT_LEAST(4,4) && !CONFIG_THUMB
@@ -33,46 +34,44 @@ static inline int decode_blockcodes(int code1, int code2, int levels,
{
int v0, v1, v2, v3, v4, v5;
__asm__ ("smmul %8, %14, %18 \n"
"smmul %11, %15, %18 \n"
"smlabb %14, %8, %17, %14 \n"
"smlabb %15, %11, %17, %15 \n"
"smmul %9, %8, %18 \n"
"smmul %12, %11, %18 \n"
"sub %14, %14, %16, lsr #1 \n"
"sub %15, %15, %16, lsr #1 \n"
"smlabb %8, %9, %17, %8 \n"
"smlabb %11, %12, %17, %11 \n"
"smmul %10, %9, %18 \n"
"smmul %13, %12, %18 \n"
"str %14, %0 \n"
"str %15, %4 \n"
"sub %8, %8, %16, lsr #1 \n"
"sub %11, %11, %16, lsr #1 \n"
"smlabb %9, %10, %17, %9 \n"
"smlabb %12, %13, %17, %12 \n"
"smmul %14, %10, %18 \n"
"smmul %15, %13, %18 \n"
"str %8, %1 \n"
"str %11, %5 \n"
"sub %9, %9, %16, lsr #1 \n"
"sub %12, %12, %16, lsr #1 \n"
"smlabb %10, %14, %17, %10 \n"
"smlabb %13, %15, %17, %13 \n"
"str %9, %2 \n"
"str %12, %6 \n"
"sub %10, %10, %16, lsr #1 \n"
"sub %13, %13, %16, lsr #1 \n"
"str %10, %3 \n"
"str %13, %7 \n"
: "=m"(values[0]), "=m"(values[1]),
"=m"(values[2]), "=m"(values[3]),
"=m"(values[4]), "=m"(values[5]),
"=m"(values[6]), "=m"(values[7]),
"=&r"(v0), "=&r"(v1), "=&r"(v2),
__asm__ ("smmul %0, %6, %10 \n"
"smmul %3, %7, %10 \n"
"smlabb %6, %0, %9, %6 \n"
"smlabb %7, %3, %9, %7 \n"
"smmul %1, %0, %10 \n"
"smmul %4, %3, %10 \n"
"sub %6, %6, %8, lsr #1 \n"
"sub %7, %7, %8, lsr #1 \n"
"smlabb %0, %1, %9, %0 \n"
"smlabb %3, %4, %9, %3 \n"
"smmul %2, %1, %10 \n"
"smmul %5, %4, %10 \n"
"str %6, [%11, #0] \n"
"str %7, [%11, #16] \n"
"sub %0, %0, %8, lsr #1 \n"
"sub %3, %3, %8, lsr #1 \n"
"smlabb %1, %2, %9, %1 \n"
"smlabb %4, %5, %9, %4 \n"
"smmul %6, %2, %10 \n"
"smmul %7, %5, %10 \n"
"str %0, [%11, #4] \n"
"str %3, [%11, #20] \n"
"sub %1, %1, %8, lsr #1 \n"
"sub %4, %4, %8, lsr #1 \n"
"smlabb %2, %6, %9, %2 \n"
"smlabb %5, %7, %9, %5 \n"
"str %1, [%11, #8] \n"
"str %4, [%11, #24] \n"
"sub %2, %2, %8, lsr #1 \n"
"sub %5, %5, %8, lsr #1 \n"
"str %2, [%11, #12] \n"
"str %5, [%11, #28] \n"
: "=&r"(v0), "=&r"(v1), "=&r"(v2),
"=&r"(v3), "=&r"(v4), "=&r"(v5),
"+&r"(code1), "+&r"(code2)
: "r"(levels - 1), "r"(-levels), "r"(ff_inverse[levels]));
: "r"(levels - 1), "r"(-levels),
"r"(ff_inverse[levels]), "r"(values)
: "memory");
return code1 | code2;
}

Some files were not shown because too many files have changed in this diff Show More