Compare commits

...

3575 Commits

Author SHA1 Message Date
Andreas Cadhalpun
07d508e4f5 doc/examples: fix lib math dep for decoding_encoding
It uses at least sin().

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit f97f2a3527)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-10 05:03:04 +01:00
Michael Niedermayer
b089b58250 avformat/movenc: workaround bug in "PathScale EKOPath(tm) Compiler Suite Version 4.0.12.1"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 7824dc5150)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-10 05:01:20 +01:00
Michael Niedermayer
a7dd37169c Update for 2.5.3
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-09 17:37:34 +01:00
wm4
3032291b3a vp9: fix parser return values in error case
The parser must always set the out_size and out_data pointers. The API
seems to require it, and the common code in parser.c also relies on it.

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-09 17:19:10 +01:00
Michael Niedermayer
f9bbc26e69 ffmpeg: Clear error message array at init.
This avoids printing uninitialized bytes if no error message is set

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-09 17:19:10 +01:00
wm4
b895e29941 avcodec/dvdsubdec: fix accessing dangling pointers
dvdsub_decode() can call append_to_cached_buf() 2 times, the second time
with ctx->buf as argument. If the second append_to_cached_buf() reallocs
ctx->buf, the argument will be a pointer to the previous, freed block.
This can cause invalid reads at least with some fuzzed files - and
possibly with valid files.

Since packets can apparently not be larger than 64K (even if packets are
combined), just use a fixed size buffer. It will be allocated as part of
the DVDSubContext, and although some memory is "wasted", it's relatively
minimal by modern standards and should be acceptable.

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-09 17:19:10 +01:00
wm4
3d71024f8a avcodec/dvdsubdec: error on bitmaps with size 0
Attemtping to decode them could lead to invalid writes with some fuzzed
samples.

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-09 17:19:10 +01:00
James Almer
b834dc14da configure: bump year
Happy new year!
(cherry picked from commit b8db25a333)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-09 17:19:10 +01:00
Michael Niedermayer
d0041dc8c4 avformat/mov: Fix mixed declaration and statement warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit db27f50e06)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-09 17:19:10 +01:00
Michael Niedermayer
b3c082412c cmdutils: Use 64bit for file size/offset related variable in cmdutils_read_file()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 369b4cd412)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-09 17:19:10 +01:00
Michael Niedermayer
918ed73b70 avformat/utils: Clear pointer in ff_alloc_extradata() to avoid leaving a stale pointer in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit bbfca8e84b)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-09 17:19:10 +01:00
Michael Niedermayer
2791eba1d7 avformat/matroskadec: Use av_freep() to avoid leaving stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 6e70e4aca5)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-09 17:19:10 +01:00
Michael Niedermayer
0d3a07852c avformat/mov: use av_freep() to avoid leaving stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 383c6a3a07)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-09 17:19:10 +01:00
Paul B Mahol
c7a2ac6b6b lavfi: check av_strdup() return value
Signed-off-by: Paul B Mahol <onemda@gmail.com>
(cherry picked from commit 145a84717b)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-09 17:19:10 +01:00
Dale Curtis
0ce35b8ce8 mov: Fix negative size calculation in mov_read_default().
The previous code assumed if an atom was marked with a 64-bit
size extension, it actually had that data available. The new
code verfies there's enough data in the atom for this to be
done.

Failure to verify causes total_size > atom.size which will
result in negative size calculations later on.

Found-by: Paul Mehta <paul@paulmehta.com>
Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 3ebd76a9c5)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-09 17:19:10 +01:00
Michael Niedermayer
25312a427b avformat/mov: fix integer overflow in mov_read_udta_string()
Found-by: Paul Mehta <paul@paulmehta.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 3859868c75)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-09 17:19:10 +01:00
Dale Curtis
9143ab0e5a mov: Fix overflow and error handling in read_tfra().
Under abnormal conditions the item_count may exceed the max
allocation size on 32-bit systems, this causes the allocated
size to overflow and become too small for the given count.

Additionally, if av_reallocp() fails its allocation, the
fragment_index_count is not correctly decremented.

Ensuring further havoc may be wrought, the error code for
read_tfra() is not checked upon return.

Found-by: Paul Mehta <paul@paulmehta.com>

positive return code and use of _array functions by commiter

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-09 17:19:10 +01:00
Dale Curtis
022bfd3dd4 mov: Avoid overflow with mov_metadata_raw()
The code previously added 1 to len without checking its size,
resulting in an overflow which can corrupt value[-1] -- which
may be used to store unaligned ptr information for certain
allocators.

Found-by: Paul Mehta <paul@paulmehta.com>
Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
2015-01-09 17:19:10 +01:00
wm4
e0a12b3dc3 avcodec/dvdsubdec: fix out of bounds accesses
The code blindly trusted buffer offsets read from the file in the RLE
decoder. Explicitly check the offset. Also error out on other RLE
decoding errors.

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-09 17:19:10 +01:00
Michael Niedermayer
252ba4a925 avfilter/vf_sab: fix filtering tiny images
Fixes out of array reads

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-09 17:19:10 +01:00
Michael Niedermayer
5bb31e856d avformat/flvdec: Increase string array size
Fixes parsing httphostheader of Scarlatti\,\ Pieter-Jan\ Belder\ -\ Sonata\ K113\ in\ A\ major\ -\ Alle.flv

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-09 17:19:10 +01:00
Michael Niedermayer
eac0451e47 avformat/flvdec: do not inject dts=0 metadata packets which failed to be parsed into a new data stream
Such data streams (which then contain no other packets except the faulty one)
confuse some user applications, like VLC
Works around vlcticket 12389

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-09 17:19:10 +01:00
Michael Niedermayer
68c6347089 avformat/cdxl: Fix integer overflow of image_size
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 3eb5cbe0c5)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-09 17:19:09 +01:00
Michael Niedermayer
bcd7f35717 avformat/segment: Use av_freep() avoid leaving stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 68fa549230)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-09 17:19:09 +01:00
Martin Storsjö
93cbdcd4d3 libavformat: Build hevc.o when building the RTP muxer
The RTP muxer enables the actual codepaths within sdp.c,
which depend on hevc.o since e5cfc8fd.

This fixes builds with --disable-everything --enable-muxer=rtp.

Signed-off-by: Martin Storsjö <martin@martin.st>
(cherry picked from commit fccfc22d1f)
2015-01-09 00:50:31 -03:00
Michael Niedermayer
959ab06c68 Changelog: update for 2.5.2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-23 04:28:09 +01:00
Michael Niedermayer
46db3121c6 update for 2.5.2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-22 03:41:27 +01:00
Michael Niedermayer
c96c755320 Makefile: add dependencies which require ffversion.h
Without this ffversion.h could sometimes be built too late

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-22 03:17:56 +01:00
Michael Niedermayer
9f8cdd520b Add FFMPEG_VERSION into the binary libs
This simplifies identifying from which revision a binary of a lib came from

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-22 03:17:56 +01:00
Anton Khirnov
f5631d23e0 mmvideo: check frame dimensions
The frame size must be set by the caller and each dimension must be a
multiple of 2.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
See: 8b0e96e1f2
These should be redundant, but are backported for saftey anyway
2014-12-22 03:17:56 +01:00
Anton Khirnov
50f4543c6b jvdec: check frame dimensions
The frame size must be set by the caller and each dimension must be a
multiple of 8.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
See: 105654e376
These should be redundant, but are backported for saftey anyway
2014-12-22 03:17:56 +01:00
Michael Niedermayer
1344e91f33 avcodec/indeo3: ensure offsets are non negative
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 368642361f)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-22 03:17:55 +01:00
Michael Niedermayer
f13e6ec7a6 avcodec/h264: Check *log2_weight_denom
Fixes undefined behavior
Fixes: signal_sigsegv_14768d2_2248_cov_3629497219_h264_h264___pi_20070614T182942.h264
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 61296d41e2)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-22 03:17:55 +01:00
Michael Niedermayer
bf2c9e1ad4 avcodec/hevc_ps: Check diff_cu_qp_delta_depth
Fixes undefined behavior
Fixes: asan_static-oob_17aa046_582_cov_1577759978_DBLK_G_VIXS_1.bit
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 3281fa8925)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-22 03:17:55 +01:00
Michael Niedermayer
0663aab1d9 avcodec/h264: Clear delayed_pic on deallocation
Fixes use of freed memory

Fixes: case5_av_frame_copy_props.mp4
Found-by: Michal Zalewski <lcamtuf@coredump.cx>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit e8714f6f93)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-22 03:17:55 +01:00
Michael Niedermayer
e911f125fc avcodec/hevc: clear filter_slice_edges() on allocation
This avoids use of uninitialized memory
Fixes: asan_static-oob_17aa046_582_cov_212287884_DBLK_G_VIXS_1.bit
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 8aa8d12554)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-22 03:17:55 +01:00
Michael Niedermayer
5aead5ee05 avcodec/dcadec: Check that the added xch channel isnt already there
Fixes null pointer dereference
Fixes: signal_sigsegv_369609d_623_cov_2008234281_ES_6.1_16bit.dts
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 7d593495e4)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-22 03:17:55 +01:00
Michael Niedermayer
3a5b749d7c avcodec/indeo3: use signed variables to avoid underflow
Fixes out of array read
Fixes: signal_sigsegv_1b0a4da_1865_cov_2167818389_computer_anger.avi
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 3305acdc92)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-22 03:17:55 +01:00
Michael Niedermayer
4b4d0b0290 avcodec/h264: make the first field of H264Context an AVClass
Fixes use of freed memory
Fixes: asan_heap-uaf_3660f67_757_cov_1257014655_Hi422FR1_SONY_A.jsv
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit f3b5b139ad)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-22 03:17:55 +01:00
Michael Niedermayer
c9b25252cb swscale: increase yuv2rgb table headroom
Fixes out of array access
Fixes: case2_bad_read_yuv2rgbx32.mp4
Found-by: Michal Zalewski <lcamtuf@coredump.cx>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 2a983ff7fe)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-22 03:17:55 +01:00
Michael Niedermayer
4400385d5f avformat/mov: fix integer overflow of size
Fixes: case1_call_stack_overflow.mp4
Found-by: Michal Zalewski <lcamtuf@coredump.cx>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit be9ce6e10a)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-22 03:17:55 +01:00
Michael Niedermayer
d85e25fe0b avformat/mov: check atom nesting depth
Fixes call stack overflow
Fixes: case1_call_stack_overflow.mp4
Found-by: Michal Zalewski <lcamtuf@coredump.cx>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit caa7a3914f)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-22 03:17:55 +01:00
Michael Niedermayer
3d1972d182 avcodec/utvideodec: Fix handling of slice_height=0
Fixes out of array accesses
Fixes: asan_heap-oob_25bcd7e_3783_cov_3553517262_utvideo_rgba_median.avi
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 3881606240)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-22 03:17:55 +01:00
Michael Niedermayer
71b1abe638 avcodec/xface: Add asserts to limit nb_words from becoming too large
Approved-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 211200e0c0)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-22 03:17:55 +01:00
Michael Niedermayer
991ef3a67e avcodec/xface: correct the XFACE_MAX_* values
Fixes out of array access

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-22 03:17:55 +01:00
Michael Niedermayer
b850b01533 avcodec/vmdvideo: Check len before using it in method 3
Fixes out of array access
Fixes: asan_heap-oob_4d23ba_91_cov_3853393937_128.vmd

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-22 03:17:55 +01:00
Michael Niedermayer
23a17b4a3d avformat/flvdec: Use av_freep() avoid leaving stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 91ea466551)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-22 03:17:55 +01:00
Michael Niedermayer
3a8ad4b878 avformat/hdsenc: Use av_freep() avoid leaving stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 16d763fa45)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-22 03:17:55 +01:00
Michael Niedermayer
b85a939633 configure: create the tests directory like the doc directory
This fixes an issue where the tests directory is not created for out of tree
builds before its needed

Tested-by: Dave Yeo <daveryeo@telus.net>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit e631872f13)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-22 03:17:55 +01:00
Clément Bœsch
7e130ca5b4 avformat/rsd: make tag_buf string larger
av_get_codec_tag_string() uses more that 1 char for unprintable characters.

(cherry picked from commit edbbb11488)
2014-12-19 18:01:31 -03:00
Clément Bœsch
f295f9488a avformat/apngdec: make tag_buf string larger
av_get_codec_tag_string() uses more that 1 char for unprintable characters.

(cherry picked from commit d60fb4f794)
2014-12-19 18:00:40 -03:00
Michael Niedermayer
2c01dd2ea5 Update Changelog for 2.5.1
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-15 23:52:03 +01:00
Michael Niedermayer
5e26152ee4 Update for FFmpeg 2.5.1
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-15 15:30:31 +01:00
wm4
135c733125 lavu/frame: fix malloc error path in av_frame_copy_props()
The error path frees all side data, but forgets to reset the side data
count. This can blow up later in av_frame_unref() and free_side_data().

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-15 05:32:36 +01:00
Michael Niedermayer
3b3a3c3d44 avformat/utils: Do not update programs streams from program-less streams in update_wrap_reference()
Fixes Ticket3686

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-14 20:58:33 +01:00
Michael Niedermayer
13244abcd3 avformat/aviobuf: Check that avio_seek() target is non negative
Fixes out of array access

Suggested-by: Andrew Scherkus <scherkus@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit ed86dbd05d)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-14 17:42:16 +01:00
Rob Sykes
9783d5bfda swresample/soxr_resample: fix error handling
Fixes CID1257659

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-13 22:20:16 +01:00
Michael Niedermayer
0e4efad93c avformat/flvdec: fix potential use of uninitialized variables
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 0fadbd3623)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-10 13:42:29 +01:00
Michael Niedermayer
0103bc67fd avformat/crypto: fix key vs iv typo
Fixes Ticket 4167

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-09 20:08:03 +01:00
Moritz Barsnick
d5af3fb1c5 configure: use use_pkg_config() instead of check_pkg_config() for libsmbclient
This ensures that the CFLAGS and LDFLAGS are actually applied.
Fixes an incorrect change introduced with the clean-up in commit
cfcaf6b38e.

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 754f4957d7)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-09 01:04:32 +01:00
Rong Yan
6ec5a199ea avcodec/ppc/vp3dsp_altivec: POWER LE support to vp3_idct_add_altivec()
add GET_VDST16() macro

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-08 15:30:03 +01:00
wm4
f7b5366657 avformat/matroskadec: fix handling of recursive SeekHead elements
When matroska_execute_seekhead() is called, it goes through the list of
seekhead entries and attempts to read elements not read yet. When doing
this, the parser can find further SeekHead elements, and will extend the
matroska->seekhead list. This can lead to a (practically) infinite loop
with certain broken files. (Maybe it can happen even with valid files.
The demuxer doesn't seem to check correctly whether an element has
already been read.)

Fix this by ignoring elements that were added to the seekhead field
during executing seekhead entries.

This does not fix the possible situation when multiple SeekHead elements
after the file header (i.e. occur after the "before_pos" file position)
point to the same elements. These elements will probably be parsed
multiple times, likely leading to bugs.

Fixes ticket #4162.

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-07 23:04:23 +01:00
Piotr Fusik
542332e523 doc/examples/filtering_video: fix frame rate
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit c99e5191ab)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-05 17:36:19 +01:00
Michael Niedermayer
aa24dd487f avcodec/mpegaudiodec_template: only allocate fdsp when its used
Fixes memleak

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-05 05:16:14 +01:00
Michael Niedermayer
3bcd1daad7 doc/examples/transcoding: check encoder before using it
Fixes null pointer exception

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-04 19:08:32 +01:00
Michael Niedermayer
91f88eab32 MAINTAINERS: add 2.5
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit a4f21a8dd9)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-04 14:48:20 +01:00
Rong Yan
aac467ae17 avcodec/ppc/vp8dsp_altivec.c: POWER LE support put_vp8_epel_h_altivec_core() put_vp8_epel_v_altivec_core() put_vp8_pixels16_altivec() add marcos GET_PIXHL() GET_OUTER() LOAD_HL()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit d23e883248)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-04 14:48:19 +01:00
Rong Yan
968e733b2e avcodec/ppc/vc1dsp_altivec: add POWER LE support to vc1_inv_trans_8x4_altivec()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 36cd2bcbc3)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-04 12:09:38 +01:00
Timothy Gu
192d46e6d1 Update RELEASE_NOTES
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-04 06:06:18 +01:00
Timothy Gu
bb8614cb7b Changelog/RELEASE_NOTES: Add APNG decoder
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2014-12-04 06:06:07 +01:00
Michael Niedermayer
d9bdf7d9ae Changelog: release is 2.5 not "next"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-04 02:16:55 +01:00
Michael Niedermayer
a588e1e560 avcodec/aacdec: reduce noisiness of missing channel elements
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 5fe026f2bd)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-04 01:58:32 +01:00
Carl Eugen Hoyos
36e7385d0e Fix standalone compilation of the iec61883 input device.
(cherry picked from commit 963aa1daf8)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-04 01:58:28 +01:00
Michael Niedermayer
5108323aa9 Update for 2.5
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-04 00:47:17 +01:00
Benoit Fouet
1d69ab9d1c avcodec/pngdec: fix indentation in handle_row()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-04 00:31:11 +01:00
Benoit Fouet
6e9b060e4f avcodec/pngdec: fix mem leak in init()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-04 00:30:54 +01:00
Benoit Fouet
08aec6f68e libavcodec/pngdec: support 'previous' dispose operation for APNG.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-04 00:30:38 +01:00
Reimar Döffinger
49d9cbe55d h264_i386: Fix operand size
Fixes fate failure on macosx clang x86-64

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-03 23:03:13 +01:00
Michael Niedermayer
dac9e50902 RELEASE_NOTES: update for 2.5
If you spot something missing wrong or improvable, do not hesitate
to push fixes

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-03 22:40:02 +01:00
Michael Niedermayer
43520771f1 doc/APIchanges: fill in hashes and dates
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-03 22:40:02 +01:00
Michael Niedermayer
1027a44681 Changelog: Add libpostproc visualization
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-03 22:40:02 +01:00
Lukasz Marek
650aa36f35 lavf/oggenc: use meaningful error codes
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-12-03 22:20:22 +01:00
Michael Niedermayer
8524558858 swscale/x86/rgb2rgb_template: fix crash with tiny size and nv12 output
Fixes Ticket4151

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-03 20:21:56 +01:00
Michael Niedermayer
a6f730730b avformat/rmdec: Check codec_data_size
Fixes infinite loop
Fixes Ticket4154

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-03 20:01:18 +01:00
Michael Niedermayer
eac5c7b837 avformat/aviobuf: Fix infinite loop in ff_get_line()
Fixes ticket4152

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-03 19:05:56 +01:00
Jonathan Baecker
868cec5874 avdevice/decklink_common: fix COM initialization failure check
Signed-off-by: Jonathan Baecker <jonbae77@gmail.com>
Reviewed-by: Ramiro Polla <ramiro.polla@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-03 18:47:24 +01:00
Michael Niedermayer
534f901fca avcodec/atrac3plusdec: Use avpriv_float_dsp_alloc()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-03 14:52:38 +01:00
Michael Niedermayer
c5dc8cc03a avcodec/mpegaudiodec_float: Use avpriv_float_dsp_alloc()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-03 14:52:38 +01:00
Michael Niedermayer
e316caf712 avcodec/opusdec: Use avpriv_float_dsp_alloc()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-03 14:52:38 +01:00
Christophe Gisquet
9fa056ba75 pngdsp x86: use unaligned access
For test images manually generated to contain only up prediction,
timing results:
         8380x3032    255x185
before:   138635       1992
after:    139232       1996

Actually jumping to the proper version depending on the alignment:
8380x3032: 138767

A 0.5% speed improvement for gigantic images is not worth the code
duplication.

Fixes ticket #4148

Signed-off-by: Christophe Gisquet <christophe.gisquet@gmail.com>
Tested-by: Benoit Fouet <benoit.fouet@free.fr>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-03 11:56:22 +01:00
Michael Niedermayer
242f1152bf ffmpeg: drop usage of coded_frame
It causes all kinds of problems and there is no code in the muxers that reads
this field

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-03 03:06:43 +01:00
Jonathan Baecker
5a57f389f4 avdevice/decklink_common: fix heap corruption run time error
Signed-off-by: Jonathan Baecker <jonbae77@gmail.com>
Reviewed-by: Ramiro Polla <ramiro.polla@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-03 00:41:10 +01:00
Carl Eugen Hoyos
7a4be4315f Support muxing 4k AVC Intra in mov.
Reported and tested by Rens Dijkshoorn, rens onlinemedia nl
2014-12-02 23:35:40 +01:00
Michael Niedermayer
ebc29e8625 Merge commit '2e0935965b824bc641b7e0bafafcbb1e36027f79'
* commit '2e0935965b824bc641b7e0bafafcbb1e36027f79':
  Drop the unofficial extension prefix for MPEG and MPEG-TS formats

See: fdcb2873e1
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-02 22:56:07 +01:00
Michael Niedermayer
b329460c51 Merge commit '7319a47c7e7931ebf8f475cc2cffc7bcd333acee'
* commit '7319a47c7e7931ebf8f475cc2cffc7bcd333acee':
  mpegtsenc: recognize .mts as MPEG Transport Stream

Conflicts:
	libavformat/mpegtsenc.c

See: e2baaa21aa
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-02 22:53:22 +01:00
Michael Niedermayer
d76adfae9c Merge commit '8f8caca2242e1fe05f37493cfabcd3f4de198550'
* commit '8f8caca2242e1fe05f37493cfabcd3f4de198550':
  Add support for BDAV/m2ts-mode muxing

Conflicts:
	libavformat/mpegtsenc.c

See: 09a858da7d
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-02 22:42:35 +01:00
Michael Niedermayer
fc469e5c7f Merge commit '26e20dfd06ac62da596a9549867f990f1200a04e'
* commit '26e20dfd06ac62da596a9549867f990f1200a04e':
  options_table: fix colorspace minimum option value

See: 8c28a39c2c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-02 22:35:44 +01:00
Michael Niedermayer
02444f02f1 Merge commit '3cec81f4d4f26b62bc2d22bb450bbf51ec3a7f09'
* commit '3cec81f4d4f26b62bc2d22bb450bbf51ec3a7f09':
  mov: allocate the tag value dynamically

Conflicts:
	libavformat/mov.c

See: f31445a82d
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-02 22:26:40 +01:00
Michael Niedermayer
781a5a392c Merge commit 'e352b293712ff7cbde67eba3ce3f8510b037de09'
* commit 'e352b293712ff7cbde67eba3ce3f8510b037de09':
  mov: Add an option for exporting all metadata

Conflicts:
	libavformat/isom.h
	libavformat/mov.c
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-02 22:13:20 +01:00
Lukasz Marek
302ed9c43f ffserver_config: print warning when using default value
Some of the defaults may be harmful (like buffer size).
It is good user is aware of that.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-12-02 21:58:35 +01:00
Lukasz Marek
2f4233614a ffserver_config: set defaults basing on absence of set value
This prevents the situation when user set option to 0 and ffserver
threats it as not set value, so applies the default.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-12-02 21:58:34 +01:00
Lukasz Marek
c8ac46e924 ffserver_config: remove useless defaults
Options are already set to its defaults by AVOption API.
The only difference is for qmin, new default is 2, ffserver set to 3.
It is dead code because if condition is not meet unless user set option to 0.
Meeting condition would mean that ffserver overwrites explicity set option.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-12-02 21:58:34 +01:00
Lukasz Marek
8b0226f2a6 ffserver: use avcodec_copy_context to copy context
Copying context using dedicated function is safer that raw memcpy
which creates shallow copy.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-12-02 21:58:34 +01:00
Michael Niedermayer
d0b0fe6691 Merge commit '5639ed9abb58311f82cf3499b682d228290adb09'
* commit '5639ed9abb58311f82cf3499b682d228290adb09':
  mov: do not truncate the language-prefixed tag

Conflicts:
	libavformat/mov.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-02 21:45:44 +01:00
Michael Niedermayer
1537d0b432 Merge commit '604c9b1196c70d79bbbc1f23e75f6a8253a74da3'
* commit '604c9b1196c70d79bbbc1f23e75f6a8253a74da3':
  rtsp: move the CONFIG_ macros to the beginning of the check

Conflicts:
	libavformat/rtsp.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-02 21:39:05 +01:00
Michael Niedermayer
61d0a6dd95 Merge commit '7464e98f74c03d3efa0cdc8d7abad06e4c3c277a'
* commit '7464e98f74c03d3efa0cdc8d7abad06e4c3c277a':
  aac: Simplify decode_mid_side_stereo

Conflicts:
	libavcodec/aacdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-02 21:29:48 +01:00
Michael Niedermayer
9adc999d2a Merge remote-tracking branch 'cigaes/master'
* cigaes/master:
  configure: add a note about pkg-config --static.
  configure: add optional pkg-config helper and use it.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-02 19:48:04 +01:00
Michael Niedermayer
68b8e21b8b avcodec/aacdec: Use avpriv_float_dsp_alloc()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-02 19:32:45 +01:00
Michael Niedermayer
46b64e3098 Revert "avfilter/vf_interlace: more accurate pts calculation"
This reverts commit df8248f66e.

the revert produces a timebase and timestamps that are more close
to what users expect

Hoped-by: koda
2014-12-02 18:48:03 +01:00
Nicolas George
6c96aa0606 configure: add a note about pkg-config --static.
Try to detect "$cc -static" without "pkg-config --static".
Also, when a library detection using pkg-config fails,
make it explicit this was pkg-config.
2014-12-02 18:43:54 +01:00
Nicolas George
cfcaf6b38e configure: add optional pkg-config helper and use it.
The require variant dies if the package is not present.
The check variant does not import the flags to the used list.
The new variant imports the flags if the package is present
but does not die if it is not.
The new call graph is: require -> use -> check.

Use use_pkg_config for libx264 and libsmbclient: more readable
and three external call less per library.
2014-12-02 18:43:48 +01:00
Michael Niedermayer
59f1f764d6 avfilter/vf_tinterlace: Favor using standard timebases for the output
Reported-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Inspired by discussion with Kieran Kunhya <kierank@obe.tv>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-02 18:28:06 +01:00
Rong Yan
b4d41beebe avcodec/ppc/lossless_audiodsp_altivec: POWER LE support for scalarproduct_and_madd_int16_altivec()
adds macro GET_T()

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-02 17:13:47 +01:00
Florent Le Coz
2e0935965b Drop the unofficial extension prefix for MPEG and MPEG-TS formats
As per the RFCs:
http://tools.ietf.org/html/rfc3555#page-38
http://tools.ietf.org/html/rfc3003

CC: libav-stable@libav.org
2014-12-02 15:28:22 +00:00
Jean-Baptiste Mardelle
7319a47c7e mpegtsenc: recognize .mts as MPEG Transport Stream 2014-12-02 15:28:22 +00:00
Fredrik Axelsson
8f8caca224 Add support for BDAV/m2ts-mode muxing
Signed-off-by: Fredrik Axelsson <fraxbe@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-02 15:28:22 +00:00
Jon Morley
26e20dfd06 options_table: fix colorspace minimum option value
The min value for colorspace should be zero and not one since the first
valid index into the frame colorspace array is AVCOL_SPC_RGB which is 0.
2014-12-02 15:28:22 +00:00
Thilo Borgmann
3cec81f4d4 mov: allocate the tag value dynamically
This allows to load metadata entries longer than 1024 bytes.
Displaying them is still limited to 1024 characters, but applications
can load them fully now.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-12-02 15:28:22 +00:00
Vittorio Giovara
e352b29371 mov: Add an option for exporting all metadata 2014-12-02 15:28:22 +00:00
Vittorio Giovara
5639ed9abb mov: do not truncate the language-prefixed tag 2014-12-02 15:28:22 +00:00
Vittorio Giovara
604c9b1196 rtsp: move the CONFIG_ macros to the beginning of the check
With --disable-optimizations, the DCE of some compilers does not remove
such unused code, causing linking failure.
2014-12-02 15:28:22 +00:00
Luca Barbato
7464e98f74 aac: Simplify decode_mid_side_stereo
Might spare few cycles if the compiler is naive and
makes the function more readable.
2014-12-02 15:28:22 +00:00
Benoit Fouet
d7716961a8 avformat/apngdec: exit probing when skipping is not possible.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-02 16:02:01 +01:00
Benoit Fouet
543fceba9c apng: move shared header from avformat to avcodec.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-02 15:52:31 +01:00
Carl Eugen Hoyos
f151f5415a lavf/qcp: Print unknown GUID on error. 2014-12-02 11:40:01 +01:00
Carl Eugen Hoyos
7f6515e491 Also print GUIDs as shown in the Windows registry to ease debugging. 2014-12-02 11:39:06 +01:00
Carl Eugen Hoyos
ea5423a017 lavc/dirac_arith: Only compile x86 asm if ARCH_X86 is set.
Fixes ticket #3544.
2014-12-02 11:36:48 +01:00
Michael Niedermayer
42801505cd tests: Add vsynth2 which uses the new reference.pnm
The file is already present in git and by using it we can perform more tests
without the need of fate samples

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-02 03:39:56 +01:00
Michael Niedermayer
ed49b142bb tests: Rename vsynth2 to vsynth_lena
This avoids confusion with a growing number of vsynth tests

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-02 03:02:30 +01:00
Michael Niedermayer
24e7e0237b avformat/crypto: Use av_memdup()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-02 02:01:11 +01:00
Christian Suloway
00d4013d9f avformat/crypto: added encryption
Signed-off-by: Christian Suloway <csuloway@globaleagleent.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-02 01:46:10 +01:00
Christophe Gisquet
55a06b4619 doc: mention the noise_bsf parameter in the docs
This looks more like a seed than an amount, as the variable name
could lead to think.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-01 23:47:07 +01:00
Michael Niedermayer
9978916c53 Merge commit 'e4a77dc204f80a6876cbd91de9b71c30feebe119'
* commit 'e4a77dc204f80a6876cbd91de9b71c30feebe119':
  Make the RELEASE file match with the most recent tag

Conflicts:
	RELEASE

Not merged as the tag is not a FFmpeg version

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-01 21:33:07 +01:00
Michael Niedermayer
51f2422c2b avcodec/vorbisdec: Use avpriv_float_dsp_alloc()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-01 20:07:09 +01:00
Michael Niedermayer
00d4759134 avcodec/opus_celt: Use avpriv_float_dsp_alloc()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-01 20:03:23 +01:00
Michael Niedermayer
3384d76503 avcodec/wmaprodec: Use avpriv_float_dsp_alloc()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-01 18:07:59 +01:00
Michael Niedermayer
24fdf7334d avformat/utils: Search harder for missing stream information in flv by default
Fixes Ticket4133

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-01 15:49:32 +01:00
Reinhard Tartler
e4a77dc204 Make the RELEASE file match with the most recent tag 2014-12-01 07:51:14 -05:00
Michael Niedermayer
b50e003e1c avcodec/motion_est: use 2x8x8 for interlaced qpel
Fixes out of array read
Fixes Ticket4121

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-01 13:41:16 +01:00
Andreas Cadhalpun
928322c15f doc: correct license template for t2h.pm
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-01 00:47:35 +01:00
Andreas Cadhalpun
b28652599d doc: fix spelling errors
succesfully => successfully, reproducable => reproducible, specifiying => specifying, isnt => isn't, seperated => separated

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-01 00:31:06 +01:00
Michael Niedermayer
8653419e9d avformat/mxfdec: Reset structural_components_count when allocation fails
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-30 23:25:19 +01:00
Mark Reid
e5d217f048 libavformat/mxfdec.c: initial support for EssenceGroups
Previous version reviewed-by: Tomas Härdin <tomas.hardin@codemill.se>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-30 23:14:06 +01:00
Michael Niedermayer
21c0c0f9d4 LICENSE.md: Add tests/reference.pnm
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-30 19:12:22 +01:00
Michael Niedermayer
d828b08143 Merge commit '8895bf7b78650c0c21c88cec0484e138ec511a4b'
* commit '8895bf7b78650c0c21c88cec0484e138ec511a4b':
  Replace lena.pnm

Conflicts:
	tests/Makefile
	tests/ref/seek/vsynth2-asv1
	tests/ref/seek/vsynth2-asv2
	tests/ref/seek/vsynth2-ffv1
	tests/ref/seek/vsynth2-flashsv
	tests/ref/seek/vsynth2-flv
	tests/ref/seek/vsynth2-h261
	tests/ref/seek/vsynth2-h263
	tests/ref/seek/vsynth2-h263p
	tests/ref/seek/vsynth2-huffyuv
	tests/ref/seek/vsynth2-ljpeg
	tests/ref/seek/vsynth2-mjpeg
	tests/ref/seek/vsynth2-mpeg1
	tests/ref/seek/vsynth2-mpeg1b
	tests/ref/seek/vsynth2-mpeg2-422
	tests/ref/seek/vsynth2-mpeg2-idct-int
	tests/ref/seek/vsynth2-mpeg2-ilace
	tests/ref/seek/vsynth2-mpeg2-ivlc-qprd
	tests/ref/seek/vsynth2-mpeg2-thread
	tests/ref/seek/vsynth2-mpeg2-thread-ivlc
	tests/ref/seek/vsynth2-mpeg4
	tests/ref/seek/vsynth2-mpeg4-adap
	tests/ref/seek/vsynth2-mpeg4-error
	tests/ref/seek/vsynth2-mpeg4-nr
	tests/ref/seek/vsynth2-mpeg4-qpel
	tests/ref/seek/vsynth2-mpeg4-qprd
	tests/ref/seek/vsynth2-mpeg4-rc
	tests/ref/seek/vsynth2-mpeg4-thread
	tests/ref/seek/vsynth2-msmpeg4
	tests/ref/seek/vsynth2-msmpeg4v2
	tests/ref/seek/vsynth2-roqvideo
	tests/ref/seek/vsynth2-rv10
	tests/ref/seek/vsynth2-rv20
	tests/ref/seek/vsynth2-svq1
	tests/ref/seek/vsynth2-wmv1
	tests/ref/seek/vsynth2-wmv2
	tests/ref/vsynth/vsynth2-asv1
	tests/ref/vsynth/vsynth2-asv2
	tests/ref/vsynth/vsynth2-cljr
	tests/ref/vsynth/vsynth2-dnxhd-1080i
	tests/ref/vsynth/vsynth2-dnxhd-720p
	tests/ref/vsynth/vsynth2-dnxhd-720p-10bit
	tests/ref/vsynth/vsynth2-dnxhd-720p-rd
	tests/ref/vsynth/vsynth2-dv
	tests/ref/vsynth/vsynth2-dv-411
	tests/ref/vsynth/vsynth2-dv-50
	tests/ref/vsynth/vsynth2-ffv1
	tests/ref/vsynth/vsynth2-ffvhuff
	tests/ref/vsynth/vsynth2-flashsv
	tests/ref/vsynth/vsynth2-flv
	tests/ref/vsynth/vsynth2-h261
	tests/ref/vsynth/vsynth2-h263
	tests/ref/vsynth/vsynth2-h263-obmc
	tests/ref/vsynth/vsynth2-h263p
	tests/ref/vsynth/vsynth2-huffyuv
	tests/ref/vsynth/vsynth2-jpegls
	tests/ref/vsynth/vsynth2-ljpeg
	tests/ref/vsynth/vsynth2-mjpeg
	tests/ref/vsynth/vsynth2-mpeg1
	tests/ref/vsynth/vsynth2-mpeg1b
	tests/ref/vsynth/vsynth2-mpeg2
	tests/ref/vsynth/vsynth2-mpeg2-422
	tests/ref/vsynth/vsynth2-mpeg2-idct-int
	tests/ref/vsynth/vsynth2-mpeg2-ilace
	tests/ref/vsynth/vsynth2-mpeg2-ivlc-qprd
	tests/ref/vsynth/vsynth2-mpeg2-thread
	tests/ref/vsynth/vsynth2-mpeg2-thread-ivlc
	tests/ref/vsynth/vsynth2-mpeg4
	tests/ref/vsynth/vsynth2-mpeg4-adap
	tests/ref/vsynth/vsynth2-mpeg4-adv
	tests/ref/vsynth/vsynth2-mpeg4-error
	tests/ref/vsynth/vsynth2-mpeg4-nr
	tests/ref/vsynth/vsynth2-mpeg4-qpel
	tests/ref/vsynth/vsynth2-mpeg4-qprd
	tests/ref/vsynth/vsynth2-mpeg4-rc
	tests/ref/vsynth/vsynth2-mpeg4-thread
	tests/ref/vsynth/vsynth2-msmpeg4
	tests/ref/vsynth/vsynth2-msmpeg4v2
	tests/ref/vsynth/vsynth2-prores
	tests/ref/vsynth/vsynth2-qtrle
	tests/ref/vsynth/vsynth2-rgb
	tests/ref/vsynth/vsynth2-roqvideo
	tests/ref/vsynth/vsynth2-rv10
	tests/ref/vsynth/vsynth2-rv20
	tests/ref/vsynth/vsynth2-svq1
	tests/ref/vsynth/vsynth2-v210
	tests/ref/vsynth/vsynth2-wmv1
	tests/ref/vsynth/vsynth2-wmv2
	tests/ref/vsynth/vsynth2-yuv

See: c4abee734d
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-30 18:39:21 +01:00
Michael Niedermayer
7944065114 Merge commit '0f257e29c5520b215e573e7e3abde8e5a4743309'
* commit '0f257e29c5520b215e573e7e3abde8e5a4743309':
  Treat all '*.pnm' files as non-text file

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-30 18:18:20 +01:00
Christophe Gisquet
4c592c3908 ffmpeg: take bsf arguments from the command line
The format is now:
-bsf:X filter1[=opt1=str1/opt2=str2],filter2
ie the parameters are appended after the filter name using '='. As ','
has been reserved already for the list of filters, '/' is just an
example of token separation for now, but that could become part of the
API to avoid each bsf using its own tokenization.

The proper solution would be using AVOption, but this is overkill for now.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-30 13:11:34 +01:00
Michael Niedermayer
0b5adc3520 avcodec/adxenc: fix rounding
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-30 12:56:02 +01:00
Michael Niedermayer
6b0ab561d0 avcodec/adxenc: match prediction used in the decoder
The prediction used in the encoder was not correct

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-30 12:52:56 +01:00
Michael Niedermayer
93f959b672 avcodec/atrac3: Use avpriv_float_dsp_alloc()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-30 11:23:34 +01:00
Michael Niedermayer
1aca990bd9 avcodec/libmp3lame: Use avpriv_float_dsp_alloc()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-30 11:21:50 +01:00
Michael Niedermayer
2fbb9e647c avcodec/wma: Use avpriv_float_dsp_alloc()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-30 11:19:29 +01:00
Christophe Gisquet
6a2bfd52e5 h264_ps: move and export aspect_ratio
Needed for filters that may need it, like an SPS bsf.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-30 04:15:40 +01:00
Michael Niedermayer
e74f2be1ed avformat/riffdec: ask for samples with wav header size < 14
Based on commit by Hendrik Leppkes <h.leppkes@gmail.com>

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-30 01:55:36 +01:00
Neil Birkbeck
e4788e9cd9 avfilter/vf_yadif: fix extra leading dup frame when deint=1
Logic for handling single frame in yadif (0f9f24c9), caused deint=1 (e.g., yadif=0👎1) to output extra duplicate leading frame:

ffmpeg -i fate-suite/ffmpeg-synthetic/vsynth1/%02d.pgm  -vf yadif=0👎1,showinfo -f null -y /dev/null
 [Parsed_showinfo_1 @ 0x1d967d0] n:0 pts:0 pts_time:0 pos:-1 fmt:gray sar:0/1 s:352x432 i:P iskey:1 type:I checksum:E457EEA0 plane_checksum:[E457EEA0] mean:[126] stdev:[46.6]
 [Parsed_showinfo_1 @ 0x1d967d0] n:1 pts:0 pts_time:0 pos:-1 fmt:gray sar:0/1 s:352x432 i:P iskey:1 type:I checksum:E457EEA0 plane_checksum:[E457EEA0] mean:[126] stdev:[46.6]
(Outputs 51 frames)

After patch, vf "yadif=0👎1" behaves correctly (like "yadif=0👎0") and outputs 50 frames, first two:

[Parsed_showinfo_1 @ 0x1e307d0] n:0 pts:0 pts_time:0 pos:-1 fmt:gray sar:0/1 s:352x432 i:P iskey:1 type:I checksum:68E8D1EB plane_checksum:[68E8D1EB] mean:[126] stdev:[46.0]
[Parsed_showinfo_1 @ 0x1e307d0] n:1 pts:2 pts_time:0.04 pos:-1 fmt:gray sar:0/1 s:352x432 i:P iskey:1 type:I checksum:4E674BC7 plane_checksum:[4E674BC7] mean:[125] stdev:[46.0]
(Outputs 50 frames)

Signed-off-by: Neil Birkbeck <neil.birkbeck@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-29 21:59:47 +01:00
Michael Niedermayer
fc9ced41e4 avcodec/twinvq: Use avpriv_float_dsp_alloc()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-29 19:22:54 +01:00
Michael Niedermayer
2336c76d5a avcodec/ra288: Use avpriv_float_dsp_alloc()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-29 19:22:32 +01:00
Michael Niedermayer
b0464212bd avcodec/on2avc: Use avpriv_float_dsp_alloc()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-29 19:02:19 +01:00
Michael Niedermayer
14285c3331 avcodec/aacenc: Use avpriv_float_dsp_alloc()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-29 18:58:13 +01:00
Michael Niedermayer
cae851c789 avcodec/ac3enc: Use avpriv_float_dsp_alloc()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-29 18:54:27 +01:00
Michael Niedermayer
5bf4cd8e5b avutil/ppc/util_altivec: add () to VEC_SPLAT16 macro
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-29 13:40:33 +01:00
Michael Niedermayer
c299b6fd08 avutil/buffer: Move USE_ATOMICS to thread.h to avoid it becoming out of sync with it
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-29 12:26:22 +01:00
Dave Yeo
32eadfe453 libavutil/threads.h: correct an include to be local
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-29 11:56:28 +01:00
Dave Yeo
090a7801a8 libavutil/thread.h: Support OS/2 threads
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-29 11:56:22 +01:00
Vadim Kalinsky
2db29482f1 avutil/bprint: C++ compatible AVBPrint definition.
Previous version reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-29 03:51:35 +01:00
Lukasz Marek
0cb994dfe3 lavu/opt: add escaping to av_opt_serialize
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-29 00:58:42 +01:00
Reinhard Tartler
8895bf7b78 Replace lena.pnm
The new reference.pnm is a freely licensed replacement. The photo has
been taken by Reinhard Tartler on August 28 2014, and is licensed under
the expat license as stated at http://www.jclark.com/xml/copying.txt
2014-11-28 17:55:27 -05:00
Reinhard Tartler
0f257e29c5 Treat all '*.pnm' files as non-text file
This convinces the pre-receive hook to not consider all *.pnm files as
text files to reduce the patch sizes and avoids triggering whitespace
checks,

Contains a correction by Janne Grunau <janne-libav@jannau.net>
2014-11-28 17:52:43 -05:00
Neil Birkbeck
dd5d617956 avfilter/vf_idet: Fixing idet for single-frame inputs.
Handle single frame inputs similar to yadif (e.g., 0f9f24c9cf and 681e008d06)

Example:
  ffmpeg -r 1 -t 1 -i fate-suite/ffmpeg-synthetic/vsynth1/%02d.pgm  -vf idet,showinfo -f null -y /dev/null

Previously:
  Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used)
  [Parsed_idet_0 @ 0x36389d0] Repeated Fields: Neither:     0 Top:     0 Bottom:     0

After patch:
  [Parsed_showinfo_1 @ 0x1909810] n:0 pts:0 pts_time:0 pos:-1 fmt:gray sar:0/1 s:352x432 ...
  [Parsed_idet_0 @ 0x18f9bb0] Repeated Fields: Neither:     1 Top:     0 Bottom:     0

Fate looks good.

Signed-off-by: Neil Birkbeck <neil.birkbeck@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-28 23:38:59 +01:00
Michael Niedermayer
27897d2ef6 Merge commit '491805636cef50d3f582bd345e1460eeb739ea48'
* commit '491805636cef50d3f582bd345e1460eeb739ea48':
  rtmpproto: Fix a typo in a comment

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-28 22:01:45 +01:00
Michael Stypa
cb58c771ad fix Makefile objects for pulseaudio support
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-28 21:30:43 +01:00
Martin Storsjö
491805636c rtmpproto: Fix a typo in a comment
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-28 20:56:45 +02:00
Benoit Fouet
ebf2052a61 avcodec/pngdec: apng: fix output buffer filling when no blending is needed.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-28 17:55:18 +01:00
Michael Niedermayer
885a763cac avcodec/ppc/h264qpel_template: protect unistd.h by #if HAVE_UNISTD_H
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-28 16:11:02 +01:00
Benoit Fouet
af8804ac86 avcodec/pngdec: allow for some code path optimizations.
Use 'if (CONFIG_APNG_DECODER)' where needed, so that the compiler can
optimize out some portion of code.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-28 15:51:31 +01:00
Benoit Fouet
aff50ae1d1 avcodec/pngdec: do not blend on transparent black
There is no need to memset the zlib output buffer, as there is no
blending happening there. Instead, do not blend when the dispose
operation is set to 'background' (tranparent black).

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-28 15:51:23 +01:00
Rong Yan
bd67d0ead1 avcodec/ppc/h264qpel: POWER LE support for put_pixels16_l2_altivec() and avg_pixels16_l2_altivec()
add put_unligned_store() and avg_unligned_store() macros

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-28 15:43:47 +01:00
Rong Yan
8cc5a78e45 avcodec/ppc/h264qpel_template: POWER LE support for PREFIX_h264_qpel16_h_lowpass_altivec() PREFIX_h264_qpel16_v_lowpass_altivec() PREFIX_h264_qpel16_hv_lowpass_altivec()
add load_alignment() macro

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-28 15:33:18 +01:00
Rong Yan
89f3043c7f avcodec/ppc/h264chroma_template: POWER LE support for PREFIX_h264_chroma_mc8_altivec() PREFIX_no_rnd_vc1_chroma_mc8_altivec() CHROMA_MC8_ALTIVEC_CORE_SIMPLE() CHROMA_MC8_ALTIVEC_CORE()
add marcos GET_VSRC1() GET_VSRC()

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-28 15:32:38 +01:00
Rong Yan
57c89c50bd avcodec/ppc/h264dsp: POWER LE support for h264_idct8_add_altivec() h264_idct_dc_add_internal() h264_loop_filter_luma_altivec() write16x4() VEC_1D_DCT() weight_h264_W_altivec() biweight_h264_W_altivec() VEC_LOAD_U8_ADD_S16_STORE_U8() ALTIVEC_STORE_SUM_CLIP()
add marcos GET_2PERM() dstv_load() vdst_load() dest_unligned_store()

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-28 15:30:02 +01:00
Michael Niedermayer
f001a2bd34 Merge commit 'fcae9f212a6001d966c52dc22cd4b22e9851b428'
* commit 'fcae9f212a6001d966c52dc22cd4b22e9851b428':
  dashenc: Avoid a VLA-like construct

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-28 12:52:13 +01:00
Michael Niedermayer
5ce070c16c Merge commit 'a9d8d35e4833fc4dfbf557ce73c84e9ca6224427'
* commit 'a9d8d35e4833fc4dfbf557ce73c84e9ca6224427':
  dashenc: Add options to make segment names configurable

Conflicts:
	libavformat/dashenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-28 12:50:38 +01:00
Michael Niedermayer
21ff626ce0 Merge commit '01eac895ab350027467ffbe7278740f89ae8be75'
* commit '01eac895ab350027467ffbe7278740f89ae8be75':
  rtmpproto: Only prepend @setDataFrame for onMetaData and |RtmpSampleAccess

Conflicts:
	libavformat/rtmpproto.c

See: 60fd790f38
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-28 12:31:59 +01:00
Michael Niedermayer
900fff89c9 Merge commit '44127b157e9f8acb837d4bb3a094f56b40da3ef5'
* commit '44127b157e9f8acb837d4bb3a094f56b40da3ef5':
  rtmppkt: Make pkt->data reallocable

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-28 12:14:26 +01:00
Michael Niedermayer
42a095d095 Merge commit '3c3b8003a13d9c3668c0bb6d79d2376da3b2b352'
* commit '3c3b8003a13d9c3668c0bb6d79d2376da3b2b352':
  rtmpproto: Simplify code for copying data into the output packet

Conflicts:
	libavformat/rtmpproto.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-28 11:57:33 +01:00
Michael Niedermayer
a105c1f204 Merge commit '857e6667f9061ae261c0b951113e4efc4329b05e'
* commit '857e6667f9061ae261c0b951113e4efc4329b05e':
  rtmpproto: Clarify a comment

Conflicts:
	libavformat/rtmpproto.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-28 11:35:08 +01:00
Martin Storsjö
fcae9f212a dashenc: Avoid a VLA-like construct
This fixes the build on compilers that interpreted the earlier
code as a variable length array (which we intentionally disallow).

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-28 11:55:42 +02:00
Bryan Huh
a9d8d35e48 dashenc: Add options to make segment names configurable
This allows one to specify templated segment names for init-segments,
media-segments, and for the base-url in the case of single-file.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-28 10:48:15 +02:00
Martin Storsjö
01eac895ab rtmpproto: Only prepend @setDataFrame for onMetaData and |RtmpSampleAccess
Currently, when streaming to an RTMP server, any time a packet of type
RTMP_PT_NOTIFY is encountered, the packet is prepended with @setDataFrame
before it gets sent to the server. This is incorrect; only packets for
onMetaData and |RtmpSampleAccess should invoke @setDataFrame on the RTMP
server. Specifically, the current bug manifests itself when trying to
stream onTextData or onCuePoint invocations.

This fix addresses that problem and ensures that the @setDataFrame is
only prepended for onMetaData and |RtmpSampleAccess.

Since data is fed to the rtmp_write function in smaller pieces (depending
on the calling IO buffer size), we can't generally assume that the
whole packet (or even the whole command string) is available at once,
therefore we can only check the command string once the full packet
has been transferred to us for sending.

Based on a patch by Jeffrey Wescott.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-28 09:59:29 +02:00
Martin Storsjö
44127b157e rtmppkt: Make pkt->data reallocable
We try to avoid mixing av_malloc with av_realloc, since av_malloc
may be implemented with functions that can't (formally) be mixed
with the functions used in av_realloc.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-28 09:59:28 +02:00
Martin Storsjö
3c3b8003a1 rtmpproto: Simplify code for copying data into the output packet
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-28 09:59:27 +02:00
Martin Storsjö
857e6667f9 rtmpproto: Clarify a comment
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-28 09:59:25 +02:00
Michael Niedermayer
ea38e5a6b7 avcodec/hevc_ps: Check num_long_term_ref_pics_sps
Fixes out of array access
Fixes: signal_sigsegv_35bd0f0_1182_cov_791726764_STRUCT_B_Samsung_4.bit
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-28 03:57:13 +01:00
Benoit Fouet
cfd83a8af6 avcodec/pngdec: add support for 'over' blend operation for 'none' dispose operation.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-28 01:58:01 +01:00
Benoit Fouet
7dfee8d697 avcodec/pngdec: split P frames handling to a separate function.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-28 01:57:52 +01:00
Timo Rothenpieler
95fc80672f Move extralibs variables using ldl after ldl definition
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-28 01:31:41 +01:00
Michael Niedermayer
fae545ca2a Merge commit '1973079417e8701b52ba810a72cb6c7c6f7f9a56'
* commit '1973079417e8701b52ba810a72cb6c7c6f7f9a56':
  opusdec: make sure all substreams have the same number of coded samples

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-28 00:14:13 +01:00
Michael Niedermayer
449bd3c0c3 Merge commit '96fda42a8f9bf84beaaf7f5991d17f2a057de86c'
* commit '96fda42a8f9bf84beaaf7f5991d17f2a057de86c':
  vf_interlace: get rid of useless loads

See: ca59b5b6ec
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-27 23:46:45 +01:00
Michael Niedermayer
6db8cd8f37 Merge commit 'fbd6c97f9ca858140df16dd07200ea0d4bdc1a83'
* commit 'fbd6c97f9ca858140df16dd07200ea0d4bdc1a83':
  lavu: fix memory leaks by using a mutex instead of atomics

Conflicts:
	libavutil/buffer.c

The atomics code is left in place as a fallback for synchronization in the
absence of p/w32 threads. Our ABI did not requires applications to
only use threads (and matching ones) to what libavutil was build with
Our code also was not affected by the leak this change fixes, though
no question the atomics based implementation is not pretty at all.
First and foremost the code must work, being pretty comes after that.

If this causes problems, for example when libavutil is used by multiple
applications each using a different kind of threading system then the
default possibly has to be changed to the uglier atomics.

See: cea3a63ba3
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-27 23:42:16 +01:00
Lukasz Marek
f00e9c4b10 lavu/opt: add consts where possible 2014-11-27 23:27:14 +01:00
Lukasz Marek
3ff3990104 ffmpeg_opt: make use of recommended encoder configuration
So far ffmpeg used recommended configuration only for codec priv options.
ffmpeg will use now codec defaults and then apply recommended configuration
for all options. Recommended configuration possibly contains minimal
set of options to filful user configuration.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-27 23:19:46 +01:00
Lukasz Marek
500d608861 lavf/ffmenc: store recommended encoder configuration
ffmenc will store recommended encoder configuration if present.
This will allow the user to base on local defaults and
apply only explicitly set options.

If recommended encoder configuration is not present, then
non-default context's options are stored.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-27 23:19:41 +01:00
Lukasz Marek
568853b8f5 lavf/ffmdec: add common options to recommended encoder configuration
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-27 23:19:20 +01:00
Michael Niedermayer
4760278007 Merge commit '2443e522f0059176ff8717c9c753eb6fe7e7bbf1'
* commit '2443e522f0059176ff8717c9c753eb6fe7e7bbf1':
  lavu: add wrappers for the pthreads mutex API

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-27 22:08:17 +01:00
Vincent Bernat
d0f8b94b43 avformat/rtpproto: Allow to specify DSCP class
By appending `?dscp=26` to the URL, IP packets will be classified as
AF31 (assured forwarding for multimedia flows with low probability of
loss). On congested network, this allows a user to assign priorities to
flows.

Signed-off-by: Vincent Bernat <vincent@bernat.im>
2014-11-27 19:53:09 +01:00
Vincent Bernat
5269cef408 avformat/udp: Allow to specify DSCP class
By appending `?dscp=26` to the URL, IP packets will be classified as
AF31 (assured forwarding for multimedia flows with low probability of
loss). On congested network, this allows a user to assign priorities to
flows.

Signed-off-by: Vincent Bernat <vincent@bernat.im>
2014-11-27 19:53:09 +01:00
Michael Niedermayer
970a8f1c25 avcodec/mjpegdec: Fix integer overflow in shift
Fixes: signal_sigabrt_7ffff6ac7bb9_2683_cov_4120310995_m_ijpg.avi
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-27 19:30:31 +01:00
Clément Bœsch
92fa1d9231 avformat/mov: change conjugation for "Duplicate" 2014-11-27 18:13:57 +01:00
Clément Bœsch
5ab882d728 avformat/mov: strengthen some table allocations 2014-11-27 18:12:40 +01:00
Michael Niedermayer
98e8a9e2f2 ffmpeg: Print a debug message if the frame parameters mismatch the context
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-27 15:47:49 +01:00
Michael Niedermayer
57e5812198 avcodec/hevc_ps: More complete window reset
Fixes out of array read
Fixes: signal_sigsegv_35bcf26_471_cov_2806540268_CAINIT_A_SHARP_4.bit
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-27 15:47:49 +01:00
Stefano Sabatini
29208e6dcf lavu/imgutils: remove redundant and wrong check in av_image_fill_arrays 2014-11-27 14:24:16 +01:00
Anton Khirnov
1973079417 opusdec: make sure all substreams have the same number of coded samples
Fixes invalid writes with invalid multichannel streams.

CC:libav-stable@libav.org
2014-11-27 14:06:03 +01:00
Kieran Kunhya
96fda42a8f vf_interlace: get rid of useless loads
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-11-27 13:57:50 +01:00
wm4
fbd6c97f9c lavu: fix memory leaks by using a mutex instead of atomics
The buffer pool has to atomically add and remove entries from the linked
list of available buffers. This was done by removing the entire list
with a CAS operation, working on it, and then setting it back again
(using a retry-loop in case another thread was doing the same thing).

This could effectively cause memory leaks: while a thread was working on
the buffer list, other threads would allocate new buffers, increasing
the pool's total size. There was no real leak, but since these extra
buffers were not needed, but not free'd either (except when the buffer
pool was destroyed), this had the same effects as a real leak. For some
reason, growth was exponential, and could easily kill the process due
to OOM in real-world uses.

Fix this by using a mutex to protect the list operations. The fancy
way atomics remove the whole list to work on it is not needed anymore,
which also avoids the situation which was causing the leak.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-11-27 13:36:00 +01:00
Anton Khirnov
2443e522f0 lavu: add wrappers for the pthreads mutex API
Also add no-op fallbacks when threading is disabled.

This helps keeping the code clean if Libav is compiled for targets
without threading. Since we assume that no threads of any kind are used
in such configurations, doing nothing is ok by definition.

Based on a patch by wm4 <nfxjfg@googlemail.com>.
2014-11-27 13:36:00 +01:00
Matthew Oliver
0167fa0060 msvc: Fix compilation errors due to header include order.
Ensures that the header include order is such that winsock2.h is always
included before windows.h or that windows.h does not include winsock.h.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-27 12:40:18 +01:00
Rong Yan
22e557917d libavutil/ppc/util_altivec.h : fix load_with_perm_vec() add marcos vcswapi2s() vcswapc() VEC_SPLAT16() VEC_SLD16() for POWER LE
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-27 12:07:19 +01:00
Michael Niedermayer
4ae1d6021b Merge commit '675ac56b7ee0f204963fde55295197c5df80aa91'
* commit '675ac56b7ee0f204963fde55295197c5df80aa91':
  Revert "lavf: Don't try to update files atomically with renames on windows"

Conflicts:
	libavformat/dashenc.c
	libavformat/hdsenc.c
	libavformat/internal.h
	libavformat/smoothstreamingenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-27 11:52:33 +01:00
Michael Niedermayer
cc663bd13a Merge commit '79fd186a5035cf16fc0ab288d8f59da8b1ba2c0e'
* commit '79fd186a5035cf16fc0ab288d8f59da8b1ba2c0e':
  lavf: Use MoveFileEx instead of rename/_wrename on windows

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-27 11:35:54 +01:00
Michael Niedermayer
097de4d1d6 Merge commit '9326d64ed1baadd7af60df6bbcc59cf1fefede48'
* commit '9326d64ed1baadd7af60df6bbcc59cf1fefede48':
  Share the utf8 to wchar conversion routine between lavf and lavu

Conflicts:
	libavformat/os_support.h
	libavutil/file_open.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-27 11:10:26 +01:00
Martin Storsjö
675ac56b7e Revert "lavf: Don't try to update files atomically with renames on windows"
This reverts commit b9d08c77a4.

After taking MoveFileEx into use, we can replace files with renames
on windows as well.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-27 09:29:47 +02:00
Martin Storsjö
79fd186a50 lavf: Use MoveFileEx instead of rename/_wrename on windows
This allows getting the normal unix semantics, where a rename
allows replacing an existing file.

Based on a suggestion by Reimar Döffinger.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-27 09:29:29 +02:00
Martin Storsjö
9326d64ed1 Share the utf8 to wchar conversion routine between lavf and lavu
This doesn't add any dependency on library internals, since this
only is a static inline function that gets built into each of the
calling functions - this is only to reduce the code duplication.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-27 09:29:17 +02:00
Michael Niedermayer
9f9440bd81 avcodec/hevc_ps: Check return code from pps_range_extensions()
Fixes out of array read
Fixes: asan_heap-oob_177e222_885_cov_1532528832_MERGE_D_TI_3.bit
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-27 03:01:32 +01:00
Benoit Fouet
e2b8b4caf6 avformat/apngdec: validate frame dimensions.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-26 23:51:07 +01:00
Lukasz Marek
345cfd04d0 lavc/options: fix leaks in avcodec_free_context
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-26 23:32:33 +01:00
Lukasz Marek
3d0867917f ffserver: dont leak pb_buffer 2014-11-26 23:32:33 +01:00
Lukasz Marek
3cb0bec687 ffserver: dont leak child arguments
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-26 23:32:33 +01:00
Lukasz Marek
ec6e035b8b ffserver: export recommented encoder configuration
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-26 23:32:33 +01:00
Lukasz Marek
aaf6cc925f ffserver: allow skip setting defaults
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-26 23:32:33 +01:00
Lukasz Marek
6c2ed67c2f ffserver_config: remove ffserver_apply_stream_config function
This function became very short and can be logically merged with add_codec().

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-26 23:32:33 +01:00
Lukasz Marek
f61cb6453d ffserver_config: map ffserver options to AVOptions
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-26 23:32:29 +01:00
Lukasz Marek
d57a6d2087 ffserver_config: cosmetic: move line_num into FFServerConfig
Moving line_num into FFServerConfig as parser state,
saves many passes of it aside of FFServerConfig pointer.
2014-11-26 23:19:24 +01:00
Lukasz Marek
e98aced699 ffserver_config: cosmetic: simplify functions calls.
ffserver_save_avoption() and ffserver_opt_preset() have
redundant arguments. They can be obtained basing on media type.
This simplifies uses and reduce chance for a mistake.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-26 23:19:24 +01:00
Clément Bœsch
c2ea7069c4 avfilter/signalstats: re-use yuv/yuvu/yuvv vars in diff 2014-11-26 21:29:09 +01:00
Clément Bœsch
9cb1d81a60 avfilter/signalstats: localize a few variables 2014-11-26 21:29:09 +01:00
Clément Bœsch
82dda8e4ea avfilter/signalstats: add threading in compute_sat_hue_metrics 2014-11-26 21:29:09 +01:00
Clément Bœsch
7acbd56a8a avfilter/signalstats: isolate sat hue computation metrics in a function
This will be useful for the following commit
2014-11-26 21:29:09 +01:00
Clément Bœsch
9db78a296c avfilter/signalstats: add slice threading for subfilters 2014-11-26 21:29:09 +01:00
Clément Bœsch
fad6865748 avfilter/signalstats: fix repitition/repetition typo 2014-11-26 21:29:09 +01:00
Clément Bœsch
cc5c667eb1 avfilter/signalstats: reindent after previous commit 2014-11-26 21:29:08 +01:00
Clément Bœsch
56b98dfc4f avfilter/signalstats: integrate height loop into subfilters 2014-11-26 21:29:08 +01:00
Clément Bœsch
c7e8f610f2 avfilter/signalstats: remove pointless sub filter init system 2014-11-26 21:29:08 +01:00
Clément Bœsch
b424e67abf avfilter/signalstats: fix different buffers for out frame if burn is enabled
This was the original intend.
2014-11-26 21:29:08 +01:00
Kieran Kunhya
36091742d1 v210enc: Add SIMD optimised 8-bit and 10-bit encoders
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-26 20:30:47 +01:00
Michael Niedermayer
1d3a3b9f89 avcodec/rawdec: Check the return code of avpicture_get_size()
Fixes out of array access
Fixes: asan_heap-oob_22388d0_3435_cov_3297128910_small_roll5_FlashCine1.cine
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-26 19:01:17 +01:00
Michael Niedermayer
1b5d112406 avformat/mov: Fix memleaks for duplicate STCO/CO64/STSC atoms
Also see [FFmpeg-devel] [PATCH] avformat/mov: strengthen some table allocations
which contains more fixes but is unfinished

Fixes: signal_sigabrt_7ffff6ac7bb9_3484_cov_1830000177_starfox2.mov
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-26 18:36:17 +01:00
Michael Niedermayer
9a53707e86 avcodec/pngdec: Fix paeth prediction with small images
Fixes out of array read
Fixes: asan_heap-oob_20b0a06_1962_cov_1907976991_delete_node_small.png
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-26 17:01:26 +01:00
Michael Niedermayer
79ceaf827b avcodec/pngdec: Check IHDR/IDAT order
Fixes out of array access
Fixes: asan_heap-oob_20a6c26_2690_cov_3434532168_mail.png
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-26 16:00:01 +01:00
Benoit Fouet
8b8cb30d11 avformat/apngdec: use packet pts and duration instead of altering stream framerate.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-26 12:41:56 +01:00
Michael Niedermayer
0df95fa327 Merge commit '234fb81e3145e9c9aec4ec16266676fab7dc21fa'
* commit '234fb81e3145e9c9aec4ec16266676fab7dc21fa':
  movenc: Expose the fragment index as an avoption

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-26 12:27:01 +01:00
Michael Niedermayer
b78074fd13 Merge commit 'ee37620b6ae4783cda637408422044b2d14a688c'
* commit 'ee37620b6ae4783cda637408422044b2d14a688c':
  movenc: Add a flag for indicating a discontinuous fragment

Conflicts:
	libavformat/movenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-26 11:27:17 +01:00
Martin Storsjö
234fb81e31 movenc: Expose the fragment index as an avoption
This allows setting the right fragment number if doing
random-access writing of fragments, and also allows reading the
current sequence number.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-26 09:58:13 +02:00
Martin Storsjö
ee37620b6a movenc: Add a flag for indicating a discontinuous fragment
This allows creating a later mp4 fragment without sequentially
writing the earlier ones before (when called from a segmenter).

Normally when writing a fragmented mp4 file sequentially, the
first timestamps of a fragment are adjusted to match the
end of the previous fragment, to make sure the timestamp is the
same, even if it is calculated as the sum of previous fragment
durations. (And for the first packet in a file, the offset of
the first packet is written using an edit list.)

When writing an individual mp4 fragment discontinuously like this
(with potentially writing the earlier fragments separately later),
there's a risk of getting a gap in the timeline if the duration
field of the last packet in the previous fragment doesn't match up
with the start time of the next fragment.

Using this requires setting -avoid_negative_ts make_non_negative
(or -avoid_negative_ts 0).

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-26 09:56:56 +02:00
Michael Niedermayer
5f30522894 avcodec/flacdec: fix off by 1 error
Fixes assertion failure
Fixes: signal_sigsegv_324b284_1980_dilvie___the_dragonfly.flac
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-26 04:11:16 +01:00
Michael Niedermayer
e5c01ccdf5 avcodec/flacdec: Call ff_flacdsp_init() unconditionally
Fixes out of array access
Fixes: signal_sigsegv_324b135_3398_cov_246853371_short.flac
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-26 04:11:08 +01:00
Michael Niedermayer
2ad38c6e02 avformat/mxfdec: dont ask for samples with field dominance 0 anymore
Based on discussion and patch from
"[FFmpeg-devel] [PATCH]Do not ask for mxf samples with unknown field dominance"

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-26 02:07:57 +01:00
Benoit Fouet
4acefd2521 avformat/apngdec: account for blend and dispose operations.
When the dimensions are the entire frame ones, and the dispose operation
is to reset to background, or the new frame overwrites the new one, then
consider the frame as a key one.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-26 00:59:45 +01:00
Carl Eugen Hoyos
5badcdf20d Rename sync() functions in libavformat.
Fixes compilation on Android where the sync() definition in
unistd.h interferes with the static definitions in libavformat.
2014-11-25 23:49:58 +01:00
Lukasz Marek
1907ff0a67 lavc/utils: free private options on avcodec_open2 fail
It protects leaking string/binary/dict options from priv context.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-25 23:09:16 +01:00
Lukasz Marek
ea0d893817 lavu/opt: handle NULL obj in av_opt_next
It indirectly also fixes av_opt_free for NULL objs.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-25 23:09:16 +01:00
Lukasz Marek
2a89afb376 lavc/libxvid: return meaningful error codes
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-25 22:18:08 +01:00
Lukasz Marek
e29153f414 lavc/avuienc: fix mem leak in case of init failure
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-25 22:18:08 +01:00
Michael Niedermayer
23e91a1bfd Merge commit 'f20141d73f08ed0c8e875bd993a7143e19b266e3'
* commit 'f20141d73f08ed0c8e875bd993a7143e19b266e3':
  vorbis_parser: Include stdint.h in the header, to make it work standalone

See: e2e36a739d
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-25 21:38:13 +01:00
Benoit Fouet
155f4dd668 doc: add entry for APNG demuxer where needed.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-25 18:28:32 +01:00
Yu Xiaolei
bc3d02fa88 lavf/avio: clarify the buffer parameter of avio_alloc_context
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-25 18:19:00 +01:00
Michael Niedermayer
2f1de5ca13 avcodec/huffyuvdec: apply vertical filter in steps of 1 line for interlaced BGRA
Fixes out of array read
Fixes: signal_sigsegv_3287332_2301_cov_2994954934_huffyuv.avi
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-25 17:53:27 +01:00
Michael Niedermayer
d0879a93ea avformat/os_support: try to fix build when included from a c++ file like libavdevice/decklink*cpp
Found-by: Zeranoe
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-25 17:07:02 +01:00
Michael Niedermayer
8cd80b5fcb avformat/jacosubdec: Cleanup when avpriv_bprint_to_extradata() fails
Fixes memleaks
Fixes: asan_heap-oob_4d2250_814_cov_2745172097_JACOsub_capability_tester.jss
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-25 15:20:54 +01:00
Michael Niedermayer
3d5d95db3f avcodec/utils: Check that the data is complete in avpriv_bprint_to_extradata()
Fixes out of array read
Fixes: asan_heap-oob_4d2250_814_cov_2745172097_JACOsub_capability_tester.jss
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-25 14:48:04 +01:00
Michael Niedermayer
0eecf40935 avcodec/mjpegdec: Fix context fields becoming inconsistent
Fixes out of array access
Fixes: asan_heap-oob_1ca4f85_2760_cov_144449187_miss_congeniality_pegasus_ljpg.avi
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-25 13:54:20 +01:00
Martin Storsjö
f20141d73f vorbis_parser: Include stdint.h in the header, to make it work standalone
This fixes "make checkheaders".

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-25 14:01:46 +02:00
Michael Niedermayer
ca59b5b6ec avfilter/x86/vf_interlace: remove redundant instructions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-25 12:37:19 +01:00
Michael Niedermayer
3fe3c8abb1 Merge commit 'ca5c3ff90972a5c97aabda2ace57ba72dcd7d83b'
* commit 'ca5c3ff90972a5c97aabda2ace57ba72dcd7d83b':
  vf_interlace: x86: improve asm performance

Conflicts:
	libavfilter/x86/vf_interlace.asm

See: 05e4b25e9b
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-25 12:31:45 +01:00
Michael Niedermayer
8c9945285e Merge commit '57ed5a64feec4af1f16f9a74c63cfa9aa8147242'
* commit '57ed5a64feec4af1f16f9a74c63cfa9aa8147242':
  hnm4: change width/height to int to fix hypothetical integer overflows

See: e23b18321f
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-25 12:27:42 +01:00
Michael Niedermayer
ba1a19bc35 Merge commit '16158da9607f2f84232d3dd381406b2f2449ec74'
* commit '16158da9607f2f84232d3dd381406b2f2449ec74':
  hnm4: Use av_image_check_size

See: e23b18321f
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-25 12:19:08 +01:00
Michael Niedermayer
0e85a28fa4 Merge commit '51946d2de8bd4a4aada43b6ab41340b0f5eb4ecb'
* commit '51946d2de8bd4a4aada43b6ab41340b0f5eb4ecb':
  vc1: Use the correct shift amount

See: a52f443714
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-25 12:15:01 +01:00
Michael Niedermayer
79f77ce31c Merge commit 'd25afb579facc83fd3a839f21411124d0b09f0ba'
* commit 'd25afb579facc83fd3a839f21411124d0b09f0ba':
  vc1: Set the is_intra bitfield to all 1 when needed

Conflicts:
	libavcodec/vc1_block.c

See: 04152a31cb
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-25 12:00:11 +01:00
Michael Niedermayer
ed25ca1661 Merge commit 'b67138598ce158e3083f6295a27b63e2065d5ecb'
* commit 'b67138598ce158e3083f6295a27b63e2065d5ecb':
  vc1: Simplify a little setting the intra variables

Conflicts:
	libavcodec/vc1_block.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-25 11:33:51 +01:00
Michael Niedermayer
bcccb2c298 Merge commit '62e52b94e684491dfc5a6b7ca688bb86f7cd0f3f'
* commit '62e52b94e684491dfc5a6b7ca688bb86f7cd0f3f':
  vorbis_parser: Move vp check to avoid a null pointer dereference

See: 374c907fb3
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-25 11:20:27 +01:00
Michael Niedermayer
a63ec9d573 Merge commit 'c117da9d3e0db7dc311d817054988364b3ef4587'
* commit 'c117da9d3e0db7dc311d817054988364b3ef4587':
  lpc: remove unneeded {}

See: 85929b9caa
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-25 11:18:58 +01:00
Michael Niedermayer
0aa208837e Merge commit 'bc75b64cff37d58f3944e2da3da45c37f35f019a'
* commit 'bc75b64cff37d58f3944e2da3da45c37f35f019a':
  vc1pred: remove logically dead code

Conflicts:
	libavcodec/vc1_pred.c

See: fca435fee1
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-25 11:05:15 +01:00
Carl Eugen Hoyos
1f3d478898 avdevice/decklink_common: Fix "Cross-compiling FFmpeg on Debian for Windows with MinGW-w64"
Fixes Ticket4130

Requested and Tested by: Zeranoe
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-25 04:40:49 +01:00
Michael Niedermayer
67dbf8bec9 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Include config.h from huffyuvdsp.h.
  Include stddef from snow_dwt.h.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-25 04:12:26 +01:00
Michael Niedermayer
c724c82a78 doc/print_options: Fix build on mingw after 960aff379d
A cleaner fix is very welcome

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-25 04:04:00 +01:00
Michael Niedermayer
60420fa3dc avdevice/dshow: fix build, ensure that feature enable #defines are set before includes
dshow_capture.h sets up various flags before including windows headers
this must occur before other headers (like os_support.h) include these
headers without the setup

This could be fixed differently but for now this fixes building on mingw

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-25 04:02:48 +01:00
Michael Niedermayer
ca5c3ff909 vf_interlace: x86: improve asm performance
4775 decicycles -> 3688 decicycles
2014-11-25 02:00:06 +00:00
Michael Niedermayer
57ed5a64fe hnm4: change width/height to int to fix hypothetical integer overflows
CC: libav-stable@libav.org
Bug-Id: CID 1135770 / CID 1135771
2014-11-25 02:00:06 +00:00
Luca Barbato
16158da960 hnm4: Use av_image_check_size
As done for all the other codecs not calling it indirectly.

CC: libav-stable@libav.org
Bug-Id: CID 1135770 / CID 1135771
2014-11-25 02:00:06 +00:00
Michael Niedermayer
51946d2de8 vc1: Use the correct shift amount
`is_intra` is a 6bits bitfield.

CC: libav-stable@libav.org
Bug-Id: CID 1194380 / CID 1194381

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-11-25 02:00:06 +00:00
Luca Barbato
d25afb579f vc1: Set the is_intra bitfield to all 1 when needed
Keep the code as similar as possible across the codepaths to
ease spotting it for factorization.

Based on a patch from Michael Niedermayer <michaelni@gmx.at>.
2014-11-25 02:00:06 +00:00
Luca Barbato
b67138598c vc1: Simplify a little setting the intra variables
The code currently set the information in at least 4 places, spare
some pointless loops.

Make the code in the loop a little uniform to make easier factorize
it out later.
2014-11-25 02:00:06 +00:00
Michael Niedermayer
62e52b94e6 vorbis_parser: Move vp check to avoid a null pointer dereference
CC: libav-stable@libav.org
Bug-Id: CID 1251347
2014-11-25 02:00:06 +00:00
Michael Niedermayer
c117da9d3e lpc: remove unneeded {}
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-25 02:00:06 +00:00
Vittorio Giovara
bc75b64cff vc1pred: remove logically dead code
CC: libav-stable@libav.org
Bug-Id: CID 1245699 / CID 1245700
2014-11-25 02:00:06 +00:00
Michael Niedermayer
ecfafc5f2b Merge commit '960aff379da46dcaff61504a57714d4d4e758e41'
* commit '960aff379da46dcaff61504a57714d4d4e758e41':
  lavf: Use wchar functions for filenames on windows for mkdir/rmdir/rename/unlink

Conflicts:
	libavformat/os_support.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-25 02:52:54 +01:00
Michael Niedermayer
71ecfcf2d3 Merge commit 'b9d08c77a44390b0848c06f20bc0e9e951ba6a3c'
* commit 'b9d08c77a44390b0848c06f20bc0e9e951ba6a3c':
  lavf: Don't try to update files atomically with renames on windows

Conflicts:
	libavformat/dashenc.c
	libavformat/hdsenc.c
	libavformat/internal.h
	libavformat/smoothstreamingenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-25 02:14:15 +01:00
Carl Eugen Hoyos
20f3cdf0c8 Include config.h from huffyuvdsp.h.
Fixes a warning about undefined HAVE_BIGENDIAN when running make checkheaders.
2014-11-25 02:00:27 +01:00
Carl Eugen Hoyos
0e3ea5b28a Include stddef from snow_dwt.h.
Fixes make checkheaders.
2014-11-25 02:00:27 +01:00
Michael Niedermayer
b83beb131f Merge commit '40665d27e38e6a2f65037878202bd1a398c7683e'
* commit '40665d27e38e6a2f65037878202bd1a398c7683e':
  flvdec: Document how the duration is retrieved at the end of the file

Conflicts:
	libavformat/flvdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-25 01:56:05 +01:00
Michael Niedermayer
172d22a071 avcodec/mjpegdec: Add YUVA420 formats to *scale asserts
Fixes assertion failure
Fixes: signal_sigabrt_7ffff6ac7bb9_2042_cov_2593130068_ef1f8a057bb6056674fad92f6b8c0acd.jpg
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-25 01:42:39 +01:00
Michael Niedermayer
03a17f2bbf avcodec/mjpegdec: Print the number of bits in the unsupported pixel format error
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-25 01:34:32 +01:00
Michael Niedermayer
0bf416f262 avcodec/mjpegdec: Check for pixfmtid 0x42111100 || 0x24111100 with more than 8 bits
These cases are not supported yet

Fixes assertion failure
Fixes: signal_sigabrt_7ffff6ac7bb9_1_cov_1553101927_00.jpg
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-25 01:23:21 +01:00
Martin Storsjö
960aff379d lavf: Use wchar functions for filenames on windows for mkdir/rmdir/rename/unlink
This makes sure that the internal utf8 path names are handled
properly - the normal file handling functions assume path names
are in the native codepage, which isn't utf8.

This assumes that the tools outside of lavf don't use the mkdir
definition. (The tools don't do the same reading of command line
parameters as wchar either - they probably won't handle all possible
unicode file parameters properly, but at least work more predictably
if no utf8/wchar conversion is involved.)

This is moved further down in os_support.h, since windows.h shouldn't
be included before winsock2.h, while io.h needs to be included before
the manual defines for lseek functions.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-24 23:36:29 +02:00
Martin Storsjö
b9d08c77a4 lavf: Don't try to update files atomically with renames on windows
On windows, rename(2) will fail if the target file exists. On
unix this trick is used to make sure that people reading the file
either will get the full previous file, or the full new version
of the file, but no intermediate version.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-24 23:34:44 +02:00
Uwe L. Korn
40665d27e3 flvdec: Document how the duration is retrieved at the end of the file
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-24 23:34:30 +02:00
Michael Niedermayer
e6ea75c5e6 doc/examples/decoding_encoding: fix storing all channels
Fixes Ticket3355

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-24 22:01:33 +01:00
Benoit Fouet
9e1cfbd38a avformat/apngdec: transmit all the chunks between consecutive fcTL ones.
In order to support multiple IDAT of fdAT chunks following an fcTL one,
transmit all the chunks between two fcTL ones (or between fcTL and IEND
one).

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-24 21:10:03 +01:00
wm4
f41cf2e09e avformat/rawdec: raw formats have no timestamps
Some raw demuxers already had AVFMT_NOTIMESTAMPS set. Add it for all the
others.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-24 19:58:26 +01:00
Rodger Combs
39f247121e ffmpeg: fix accurate seeking with -copyts
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-24 17:31:26 +01:00
Boris Reisig
54170a33c2 avdevice/xcbgrab: fix undefined reference to xcb_shape_rectangles in xcbgrab.c
works with (--enable-libxcb-shape)  and without (--disable-libxcb-shape) now.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-24 16:57:47 +01:00
Michael Niedermayer
1d242f9816 avformat/mpegenc: assert that premux_packet is non null
Based on: 065923b078
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-24 16:54:06 +01:00
Michael Niedermayer
9a57309665 Merge commit 'fe42f94ce1023f9c2f7e86404c60afcee5b078a9'
* commit 'fe42f94ce1023f9c2f7e86404c60afcee5b078a9':
  dashenc: Don't segment all video streams when one stream gets a keyframe

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-24 14:07:35 +01:00
Michael Niedermayer
7a19a8fb69 Merge commit '6f26f14f134e753d6168591f30815b1c08c1498b'
* commit '6f26f14f134e753d6168591f30815b1c08c1498b':
  sidxindex: Write mimeType=audio/mp4 for audio-only representations

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-24 14:01:50 +01:00
Michael Niedermayer
96398cc123 Merge commit '208f3abb917757743313da0da714e525e03159d2'
* commit '208f3abb917757743313da0da714e525e03159d2':
  aacsbr: always initialize max_qmf_subbands

See: c6d3b3be15
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-24 13:48:31 +01:00
Michael Niedermayer
f41d409b7a Merge commit '55b59fab880a9fcdd30f97c5170af282087ac4f7'
* commit '55b59fab880a9fcdd30f97c5170af282087ac4f7':
  roqaudio: Always use the frame buffer on flush

Conflicts:
	libavcodec/roqaudioenc.c

See: a1af505d66
See: c0b17ea106
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-24 13:40:06 +01:00
Michael Niedermayer
d2e0543766 Merge commit '0562887a984388fdc7a9b71c9374ff9c756fb4f1'
* commit '0562887a984388fdc7a9b71c9374ff9c756fb4f1':
  tiffenc: initialize return value

Conflicts:
	libavcodec/tiffenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-24 13:28:57 +01:00
Michael Niedermayer
1db2d39dfd Merge commit '299d8ab104fb350254eb2e6d9ecdce892a2a55b1'
* commit '299d8ab104fb350254eb2e6d9ecdce892a2a55b1':
  cook: Make sure there is enough extradata

See: c9e4554329
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-24 13:18:41 +01:00
Michael Niedermayer
4fecf170d7 Merge commit '30b8eb0f87b0eaefdc115ef38f8ad87dd3a6e50b'
* commit '30b8eb0f87b0eaefdc115ef38f8ad87dd3a6e50b':
  sol: simplify sol_codec_id()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-24 13:10:16 +01:00
Michael Niedermayer
bcaef717ec Merge commit 'b99ca863506f0630514921b740b78364de67a3ff'
* commit 'b99ca863506f0630514921b740b78364de67a3ff':
  aacdec: avoid an out-of-bounds write

Conflicts:
	libavcodec/aacdec.c

See: ba02069a8e
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-24 13:09:35 +01:00
Michael Niedermayer
932d8d790c Merge commit '277ff7f5dc134f1c2dfc4ea0ef3540340482e3d2'
* commit '277ff7f5dc134f1c2dfc4ea0ef3540340482e3d2':
  lavu: move internal define to the only places where it is used

Conflicts:
	libavcodec/h264_cabac.c
	libavutil/internal.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-24 12:45:07 +01:00
Michael Niedermayer
010adacbe2 Merge commit '065923b0781b06a2604f69f4e2c2407b7750a854'
* commit '065923b0781b06a2604f69f4e2c2407b7750a854':
  mpegenc: prevent a NULL pointer dereference

Not merged, this is not needed, and could hide more serious issues

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-24 12:29:12 +01:00
Michael Niedermayer
ea41e6d637 Merge commit '9c12c6ff9539e926df0b2a2299e915ae71872600'
* commit '9c12c6ff9539e926df0b2a2299e915ae71872600':
  motion_est: convert stride to ptrdiff_t

Conflicts:
	libavcodec/me_cmp.c
	libavcodec/ppc/me_cmp.c
	libavcodec/x86/me_cmp_init.c

See: 9c669672c7
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-24 12:13:00 +01:00
Martin Storsjö
fe42f94ce1 dashenc: Don't segment all video streams when one stream gets a keyframe
This makes sure that segments actually start at a keyframe (and
makes sure we don't split segments twice in a row, with one segment
consisting of only a handful of packets), when one stream uses b-frames
while another one doesn't.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-24 11:09:40 +02:00
Martin Storsjö
6f26f14f13 sidxindex: Write mimeType=audio/mp4 for audio-only representations
This fixes playback with dash.js, when the input is one separate
mp4 file per track.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-24 09:23:14 +02:00
Michael Niedermayer
b4d8724ab2 avutil/file: fix av_tempfile() documentation
Found-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-24 04:59:02 +01:00
Lukasz Marek
c9d39fc8c6 lavc/huffyuvdec: fix mem leak in case of init failure
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-24 04:15:48 +01:00
Lukasz Marek
02cb7d4c9c lavc/smvjpegdec: fix mem leak in case of init failure
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-24 04:15:41 +01:00
Lukasz Marek
efe34e87eb lavc/libxvid: fix mem leak in case of init failure
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-24 04:15:24 +01:00
Vittorio Giovara
208f3abb91 aacsbr: always initialize max_qmf_subbands
Fixes a wordly warning from clang -Wsometimes-uninitialized.
2014-11-24 01:30:15 +00:00
Michael Niedermayer
55b59fab88 roqaudio: Always use the frame buffer on flush
Prevent NULL dereference.

CC: libav-stable@libav.org
Bug-Id: CID 703669
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-11-24 01:30:15 +00:00
Vittorio Giovara
0562887a98 tiffenc: initialize return value
'ret' can only be used without initialization if s->height <= 0, which can
only happen if avctx->height <= 0, which is validated elsewhere. Doesn't hurt
to still initialize it though.

CC: libav-stable@libav.org
Bug-Id: CID 732296
2014-11-24 01:30:15 +00:00
Luca Barbato
299d8ab104 cook: Make sure there is enough extradata
At least 8 bytes are needed (Mono audio).

Bug-Id: CID 741418
CC: libav-stable@libav.org
2014-11-24 01:30:15 +00:00
Vittorio Giovara
30b8eb0f87 sol: simplify sol_codec_id()
Bug-Id: CID 1238993
2014-11-24 01:30:15 +00:00
Vittorio Giovara
b99ca86350 aacdec: avoid an out-of-bounds write
Also move the check in the case it is actually used.

CC: libav-stable@libav.org
Bug-Id: CID 1087090
2014-11-24 01:30:15 +00:00
Vittorio Giovara
277ff7f5dc lavu: move internal define to the only places where it is used 2014-11-24 01:30:14 +00:00
Vittorio Giovara
065923b078 mpegenc: prevent a NULL pointer dereference
CC: libav-stable@libav.org
Bug-Id: CID 29261
2014-11-24 01:30:14 +00:00
Vittorio Giovara
9c12c6ff95 motion_est: convert stride to ptrdiff_t
CC: libav-stable@libav.org
Bug-Id: CID 700556 / CID 700557 / CID 700558
2014-11-24 01:30:10 +00:00
Michael Niedermayer
5182a2a235 avutil: remove FF_CONST_AVUTIL53, its no longer needed
version is 54 already

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-24 02:22:19 +01:00
Michael Niedermayer
8294f5042d Changelog: remove 24bit lossless wma entry for now, some samples work others do not yet work
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-24 00:36:58 +01:00
Jeffrey Wescott
60fd790f38 avformat/rtmpproto: only prepend @setMetaData for onMetaData and |RtmpSampleAccess
In current versions of ffmpeg, when streaming to an RTMP server, anytime a packet of type
RTMP_PT_NOTIFY is encountered, the packet is prepended with @setDataFrame before it gets sent
to the server. This is incorrect; only packets for onMetaData and |RtmpSampleAccess should
invoke @setDataFrame on the RTMP server. Specifically, the current bug manifests
itself when trying to stream onTextData or onCuePoint invocations.

This fix addresses that problem and ensures that the @setDataFrame is only prepended
for onMetaData and |RtmpSampleAccess.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-24 00:15:48 +01:00
Lukasz Marek
4e9745fbff lavc/rv30: fix mem leak in case of init failure
Also replaced return -1 with return AVERROR(EINVAL)

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-23 20:53:17 +01:00
Lukasz Marek
331fae80a1 lavc/mss1: fix mem leak in case of init failure
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-23 20:52:38 +01:00
James Almer
305b03097d lavf/apngdec: print currently unsupported in-stream tags in a more readable form
Also use length and not stream position

Reviewed-by: Benoit Fouet <benoit.fouet@free.fr>
Signed-off-by: James Almer <jamrial@gmail.com>
2014-11-23 13:01:26 -03:00
Carl Eugen Hoyos
78093cf849 Print a warning if vp6 is muxed into flv: The output is flipped.
Fixes ticket #4132.
2014-11-23 13:22:27 +01:00
Carl Eugen Hoyos
600e38f563 Fix standalone compilation of the apng decoder on x86. 2014-11-23 13:21:29 +01:00
Clément Bœsch
6e411d9cc7 avcodec/microdvddec: support non persistent italic marker '/'
Inspired from a patch by Michal Wazgird <mplayer@cyryl.net>

See https://lists.mplayerhq.hu/pipermail/mplayer-dev-eng/2014-November/072772.html
2014-11-23 13:13:38 +01:00
Clément Bœsch
8ef46f4a0c avcodec/microdvddec: support various broken form of color tags
Inspired by a patch from Michal Wazgird <mplayer@cyryl.net>

See https://lists.mplayerhq.hu/pipermail/mplayer-dev-eng/2014-November/072772.html
2014-11-23 12:17:54 +01:00
Reimar Döffinger
cad3148ea3 xface: reduce stack usage by directly storing 2 bytes data instead of pointers.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-11-23 06:51:18 +01:00
Reimar Döffinger
dfc6f56c5a xface: reduce table sizes.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-11-23 06:51:18 +01:00
Reimar Döffinger
6369a7b742 xface: Fix encoder crashes due to too small on-stack array.
Also add a FATE test.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-11-23 06:51:18 +01:00
Reimar Döffinger
d0682b5eb0 svq1enc: reduce stack usage of recursively-called function.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-11-23 06:51:18 +01:00
Reimar Döffinger
458aadf862 lpc: Reduce stack usage by allocating LLSModel in context.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-11-23 06:51:18 +01:00
Lukasz Marek
f87a34486a lavc/libvorbisdec: use better error codes
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-23 03:33:00 +01:00
Lukasz Marek
bceabbdaba lavc/libvorbisdec: fix mem leak in case of init failure
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-23 03:33:00 +01:00
Lukasz Marek
969382162f lavc/smacker: fix mem leak in case of init failure
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-23 03:25:34 +01:00
Lukasz Marek
691f9be622 lavc/anm: fix mem leak in case of init failure
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-23 03:25:25 +01:00
Michael Niedermayer
65ce8f8895 avcodec/x86/Makefile: fix order
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-23 01:49:04 +01:00
Michael Niedermayer
9f0fd17c61 Merge commit 'f856d9c2f314c493c672dfb9c876da182525da3d'
* commit 'f856d9c2f314c493c672dfb9c876da182525da3d':
  dashenc: Don't require the stream bitrate to be known

Conflicts:
	libavformat/dashenc.c

See: 5f8fcdd448
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-23 01:34:05 +01:00
Michael Niedermayer
6d8dda1693 Merge commit 'eec7f032a903e06d249d1e8aa6630b65292bf40f'
* commit 'eec7f032a903e06d249d1e8aa6630b65292bf40f':
  lavf: Remove a redundant include of sys/stat.h

Conflicts:
	libavformat/os_support.h

See: 49515cb840
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-23 01:18:51 +01:00
Michael Niedermayer
d899ea2017 Merge commit '4b68edd08ac352e314ae3fc701f90b081e549324'
* commit '4b68edd08ac352e314ae3fc701f90b081e549324':
  flvenc: Remove an unused variable

See: cc5f731541
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-23 01:16:32 +01:00
Matthew Oliver
293fee4bc2 libavcodec/tiff: Fix static linking of lzma with msvc.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-22 22:12:19 +01:00
Martin Storsjö
f856d9c2f3 dashenc: Don't require the stream bitrate to be known
Don't write any bitrate attribute if it isn't known. As long as one
doesn't want automatic bitrate switching, playback can work just
fine even if it isn't set.

If strict standard compliance is requested, this is still considered
an error, since the attribute is mandatory according to the spec.

Based on a patch by Rodger Combs.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-22 22:16:37 +02:00
Martin Storsjö
eec7f032a9 lavf: Remove a redundant include of sys/stat.h
The same file already includes this header a few lines further
above.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-22 22:11:44 +02:00
Michael Niedermayer
4b68edd08a flvenc: Remove an unused variable
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-22 22:10:52 +02:00
Michael Niedermayer
d3512a0e89 avcodec/x86/lossless_audiodsp: fix fallback code for 32bit
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-22 21:08:38 +01:00
Michael Niedermayer
ce6141259b avcodec/wmalosslessdec: support 24bit lossless
Not checked if its actually lossless
Fixes Ticket1847

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-22 20:51:15 +01:00
Michael Niedermayer
4327088da3 avcodec/x86/lossless_audiodsp: support len %16 == 8 in scalarproduct_and_madd_int16()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-22 20:40:36 +01:00
Michael Niedermayer
2f6550bb9a avcodec/mjpegdec: fix pixfmtid 0x14111100
Fixes part of Ticket 2004
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-22 19:38:43 +01:00
Reimar Döffinger
8437cc7206 ffv1dec: Avoid unnecessarily large stack usage and copies.
Ideally the compiler could figure this out on its own,
but it seems it can't.
An alternative that would avoid the messy explicit memcpy
would be to use a sub-struct for the parts that should
be preserved, which can then simply be assigned.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-11-22 19:06:12 +01:00
Michael Niedermayer
9146a47600 avfilter/graphparser: Use av_freep(), avoid leaving stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-22 18:56:37 +01:00
Michael Niedermayer
7df2981f04 avfilter/avf_concat: Use av_freep(), avoid leaving stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-22 18:47:26 +01:00
Michael Niedermayer
8e6a44cfc5 avdevice/iec61883: Use av_freep(), avoid leaving stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-22 18:44:35 +01:00
Benoit Fouet
90c9b49405 ffplay: fix mem leak when opening input or parsing options fail.
Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-22 15:55:07 +01:00
Michael Niedermayer
0b9a9e0e2c avcodec/libspeexdec: make array const
Found-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-22 14:10:47 +01:00
Reimar Döffinger
33fc1ccb49 h264_mb: Use smaller data type for refs in await_references.
As far as I can tell the value can never go outside
the int16_t type.
And especially the cost of the initialization is
reduced quite a bit by making it smaller.
Overall decoding speedup not measurable though.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-11-22 14:06:48 +01:00
Reimar Döffinger
478c61ccb2 h264_i386: Optimize decode_significance_8x8_x86 for 64 bit.
11674 -> 10877 decicycles on my Phenom II.
Overall speedup was unfortunately within measurement error.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-11-22 14:06:48 +01:00
Reimar Döffinger
c2c27e9e51 indeo2: move variable declarations into blocks using them.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-11-22 14:06:48 +01:00
Reimar Döffinger
79be253635 mxfdec: minor simplification.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-11-22 14:06:48 +01:00
Matthew Oliver
3bedd72a9e lavf: fix apngdec under msvc.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-22 13:20:34 +01:00
James Almer
14b9302f5f lavf/apngdec: properly skip currently unsupported in-stream tags
Signed-off-by: James Almer <jamrial@gmail.com>
Reviewed-by: Benoit Fouet <benoit.fouet@free.fr>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-22 13:14:28 +01:00
Mark Reid
08d81d0a01 libavformat/mxfdec.c: export source package uids and names as metadata
Changes since v1:
* renamed mxf_read_source_package -> mxf_read_package

v1 reviewed-by: Tomas Härdin <tomas.hardin@codemill.se>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-22 03:35:02 +01:00
Michael Niedermayer
230aeee94c doc: fix the the typos
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-22 02:09:09 +01:00
TOYAMA Shin-ichi
e01acd868b doc/decoders.texi: typo in description for option ifo_palette
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-22 02:07:01 +01:00
Michael Niedermayer
148506c965 Merge commit 'cd975d5658a1cbe99939df75db59d5ae9fbcb4e0'
* commit 'cd975d5658a1cbe99939df75db59d5ae9fbcb4e0':
  hevc: Spin the mv_mpv_mode calls in a stand alone function

Conflicts:
	libavcodec/hevc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-22 01:32:55 +01:00
Michael Niedermayer
70e3fae88d Merge commit '1f80742f49a9a4e846c9f099387881abc87150b2'
* commit '1f80742f49a9a4e846c9f099387881abc87150b2':
  qdm2: avoid integer overflow

See: ccfd8cffe8
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-21 23:46:17 +01:00
Michael Niedermayer
a82f3de053 Merge commit '312daa15891dc7abb77a404fe927d5ee35c52a71'
* commit '312daa15891dc7abb77a404fe927d5ee35c52a71':
  vp9: Use the correct upper bound for seg_id

Conflicts:
	libavcodec/vp9.h
	libavcodec/vp9block.c

Not merged, the value was correct before as far as i can see

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-21 23:37:04 +01:00
Luca Barbato
cd975d5658 hevc: Spin the mv_mpv_mode calls in a stand alone function
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-11-21 23:17:37 +01:00
Michael Niedermayer
ac967ad872 Merge commit 'd466d82faaf6e0e57a3a4be5e38e3902ef251ac3'
* commit 'd466d82faaf6e0e57a3a4be5e38e3902ef251ac3':
  dvdsubdec: Do not leak on failure path

Conflicts:
	libavcodec/dvdsubdec.c

See: 7fa9f7ef1c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-21 22:36:01 +01:00
Michael Niedermayer
ad2424e6b2 Merge commit 'a42d5c861fea8d18d997c6ba3f4a1d8aa95a288b'
* commit 'a42d5c861fea8d18d997c6ba3f4a1d8aa95a288b':
  libtwolame: prevent a NULL pointer dereference

See: a586b3d9b1
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-21 22:26:15 +01:00
Michael Niedermayer
b9ffafbfcc avfilter/formats: Alloc NULL fmts in SET_COMMON_FORMATS()
This avoids null pointer dereferences in case memory allocation has failed

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-21 22:15:32 +01:00
Michael Niedermayer
75819fafd8 avfilter/formats: free the correct pointer in ADD_FORMAT()
Also only free it when it was not previously allocated to return to the
state prior to the failing function call

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-21 22:13:44 +01:00
Michael Niedermayer
42f3cb419a Merge commit '863ee8a855b8ce27ffef41479eb66da58763faed'
* commit '863ee8a855b8ce27ffef41479eb66da58763faed':
  lavfi: clean memory on error in ADD_FORMAT()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-21 22:12:46 +01:00
Michael Niedermayer
15ed7ca437 Merge commit 'fd9badd3cb3b60f5c54dcea35523e1ecca2f67a6'
* commit 'fd9badd3cb3b60f5c54dcea35523e1ecca2f67a6':
  xwma: Do not leak on failure path

Conflicts:
	libavformat/xwma.c

See: 375a0c03a9
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-21 21:30:47 +01:00
Michael Niedermayer
5af0a701a1 Merge commit 'aa8b39d999589154f79300de9038994d0093cd34'
* commit 'aa8b39d999589154f79300de9038994d0093cd34':
  lavc: Move the libtwolame encoder registration to the list for external libraries

Conflicts:
	libavcodec/allcodecs.c

See: f5f98727b3
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-21 21:26:01 +01:00
Michael Niedermayer
0c3ebbf6a5 Changelog: add zygoaudio
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-21 20:21:56 +01:00
Michael Niedermayer
018ce90284 avcodec/libspeexdec: more verbose error message
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-21 20:08:56 +01:00
Michael Niedermayer
d96d8e121f avcodec/libspeexdec: support zygoaudio
Fixes Ticket1873

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-21 20:08:05 +01:00
Michael Niedermayer
2ae2c60554 avcodec/vp6: Use av_freep(), avoid leaving stale pointers
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-21 18:03:27 +01:00
Michael Niedermayer
6995be43ae avdevice/avdevice.c: Use av_freep(), avoid leaving stale pointers
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-21 18:03:11 +01:00
Michael Niedermayer
883f85fa8f avdevice/fbdev_common: Use av_freep(), avoid leaving stale pointers
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-21 18:02:41 +01:00
Michael Niedermayer
c05310d469 avdevice/pulse_audio_common: Use av_freep(), avoid leaving stale pointers
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-21 18:02:01 +01:00
Benoit Fouet
5d37d70b0b avformat/apngdec: add APNG demuxer.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-21 17:13:56 +01:00
Benoit Fouet
33acebd3cc avcodec/pngdec: add APNG support.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-21 17:13:56 +01:00
Michael Niedermayer
367c9d33d6 avformat: replace some odd 30-60 rates by higher less odd ones in get_std_framerate()
Fixes Ticket4012

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-21 13:56:13 +01:00
Vittorio Giovara
1f80742f49 qdm2: avoid integer overflow
CC: libav-stable@libav.org
Bug-Id: CID 700555
2014-11-21 12:37:50 +00:00
Luca Barbato
312daa1589 vp9: Use the correct upper bound for seg_id
And use a macro to make apparent why the value.

Bug-Id: CID 1108595
2014-11-21 12:37:05 +00:00
Luca Barbato
d466d82faa dvdsubdec: Do not leak on failure path
CC: libav-stable@libav.org
Bug-Id: CID 1198262
2014-11-21 12:36:19 +00:00
Vittorio Giovara
a42d5c861f libtwolame: prevent a NULL pointer dereference
CC: libav-stable@libav.org
Bug-Id: CID 1250330 / CID 1250335
2014-11-21 12:27:07 +00:00
Vittorio Giovara
863ee8a855 lavfi: clean memory on error in ADD_FORMAT()
CC: libav-stable@libav.org
Bug-Id: CID 1250334
2014-11-21 12:27:07 +00:00
Luca Barbato
fd9badd3cb xwma: Do not leak on failure path
CC: libav-stable@libav.org
Bug-Id: CID 1087092
2014-11-21 12:27:07 +00:00
Martin Storsjö
aa8b39d999 lavc: Move the libtwolame encoder registration to the list for external libraries
This makes sure the default behaviour of using the internal encoder
stays the same regardless if libtwolame is enabled or not (as for
any external library).

This fixes fate-lavf-mpg if libav is built with libtwolame enabled.

CC: libav-stable@libav.org
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-11-21 12:27:07 +00:00
Michael Niedermayer
f0ae0354d3 avformat/avidec: fix handling dv in avi
Fixes Ticket4086

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-21 03:34:13 +01:00
Lukasz Marek
ab922f9ef1 lavu/dict: add av_dict_get_string
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-21 01:25:54 +01:00
Lukasz Marek
7d75a399a4 lavc/options: fix rc_eq leak
rc_eq is an option, so it is copied by av_opt_copy(dest, src); above.
2014-11-21 01:19:53 +01:00
Michael Niedermayer
21ded9ce67 avcodec/imc: Use avpriv_float_dsp_alloc()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-20 22:46:44 +01:00
Michael Niedermayer
b054054c9b avcodec/dcadec: Use avpriv_float_dsp_alloc()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-20 22:46:08 +01:00
Michael Niedermayer
9018bd1197 avcodec/atrac1: Use avpriv_float_dsp_alloc()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-20 22:30:48 +01:00
Michael Niedermayer
8bce5c8e74 avcodec/ac3dec: Use avpriv_float_dsp_alloc()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-20 22:30:48 +01:00
Matthew Oliver
17b7f99d81 configure: disable strip when using icl.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-20 20:15:32 +01:00
Michael Niedermayer
bab11fe7bf avcodec/mpeg12dec: forward error codes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-20 16:31:27 +01:00
Michael Niedermayer
1852b2a0f4 avcodec/mpeg12dec: Use more specific error codes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-20 16:29:42 +01:00
Michael Niedermayer
0f8908aa1b avcodec/mpeg12dec: do not fail on invalid frame_rate_index
Fixes Ticket4073

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-20 15:09:42 +01:00
Michael Niedermayer
88b4c1a731 avcodec/mpeg12dec: Print error/warning messages on issues in mpeg1_decode_sequence()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-20 15:09:26 +01:00
Matthew Oliver
e39f8fad32 configure: Prevent icl being incorrectly detected as msvc.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>

Reviewed-by: Benoit Fouet <benoit.fouet@free.fr>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-20 12:12:20 +01:00
Michael Niedermayer
9266eb0c62 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  lavf/mux: Always call write_trailer() from av_write_trailer() to avoid a leak.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-20 11:41:30 +01:00
jessejiang
29d208d5d4 avutil/arm/float_dsp_init_vfp: replace restrict by av_restrict
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-20 11:17:42 +01:00
Carl Eugen Hoyos
25ccf5df72 lavf/mux: Always call write_trailer() from av_write_trailer() to avoid a leak.
Fixes ticket #4049.
2014-11-20 10:14:51 +01:00
Michael Niedermayer
c661601f45 Changelog: add WebP muxer
Suggested-by: jamrial
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-20 03:21:05 +01:00
Michael Niedermayer
4388e78a0f swscale/x86/rgb2rgb_template: handle the first 2 lines with C in rgb24toyv12_*()
This avoids out of array accesses
Should fix Ticket3451

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-20 01:20:31 +01:00
Michael Niedermayer
0dba982bb4 avformat/dtsdec: dts_probe: check reserved bit, check lfe, check sr_code similarity
Fixes misdetection of s16le
Fixes Ticket4109

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-20 00:21:09 +01:00
Michael Niedermayer
fbb6de2ad7 Merge commit '7fd10f66b722eccc2ada9128766d002f6d751f79'
* commit '7fd10f66b722eccc2ada9128766d002f6d751f79':
  hdsenc: Clear the previous codec tag when setting up the chained muxer

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-19 20:30:07 +01:00
Michael Niedermayer
f3dcabef33 Merge commit 'f918b8a2933a65020cbe490ec637d5485c11a692'
* commit 'f918b8a2933a65020cbe490ec637d5485c11a692':
  hdsenc: Use the right filename in an error message

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-19 20:24:11 +01:00
Michael Niedermayer
660a8b43ab avformat/avienc: write last frame duration
Fixes small part of Ticket 3052

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-19 20:23:04 +01:00
Michael Niedermayer
be44856483 avformat/avienc: factor frame skip code out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-19 20:18:03 +01:00
Michael Niedermayer
33bc81e437 ffmpeg: skip duration cliping for passthrough & drop modes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-19 20:18:03 +01:00
Clément Bœsch
de8cd93a05 doc/writing_filters: use ffmpeg.org instead of wikimedia.org for lena image
Less likely to change, and under our control.

Thanks-to: Michael Niedermayer
2014-11-19 19:55:02 +01:00
Michael Niedermayer
4e20e94921 ffmpeg: Check duration for overlap and clip in fps cfr/vfr code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-19 18:36:36 +01:00
Michael Niedermayer
c509202590 ffmpeg: Use input packet duration in vfr/cfr code if available and valid
Fixes Ticket3052
2014-11-19 18:35:40 +01:00
Michael Niedermayer
4ffec6d933 avcodec/twinvq: Use av_freep() to avoid leaving stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-19 13:44:40 +01:00
Michael Niedermayer
b9792afad1 avcodec/tta: Use av_freep() to avoid leaving stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-19 13:44:39 +01:00
Michael Niedermayer
beec818d99 avcodec/truemotion2: Use av_freep() to avoid leaving stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-19 13:44:30 +01:00
Michael Niedermayer
61fc1cbfbd ffmpeg: fix printed timestamp for droped frames
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-19 13:26:59 +01:00
Martin Storsjö
7fd10f66b7 hdsenc: Clear the previous codec tag when setting up the chained muxer
The chained flv muxer wants one set of tags - normally this set
could be signaled via the AVOutputFormat codec_tag field (as
smoothstreamingenc and dashenc do). hdsenc doesn't signal it, since
the FLV codec tag arrays aren't exported from flvenc.c. This can
lead to the caller keeping an original codec tag from the originating
container here, which would then be a mismatch for the FLV muxer.
Since we don't really care about what codec tag the caller might
have set, just clear it and let the lavf muxer layer set the right
one for the chained FLV muxer later instead.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-19 13:37:00 +02:00
Martin Storsjö
f918b8a293 hdsenc: Use the right filename in an error message
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-19 13:36:43 +02:00
Stefano Sabatini
484d42a097 lavf/concatdec: add timestamp log
Help debugging timestamp conversion issues.
2014-11-19 11:17:43 +01:00
Michael Niedermayer
9f6d48d696 ffmpeg: better CFR frame duplication selection
This improves the handling of cases where the frame duration is not known

Fixes Ticket 4119
Fixes Ticket 1578

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-19 05:14:32 +01:00
Michael Niedermayer
8b43b0e8b6 ffmpeg: fix variable type for end char
fixes warning

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-19 03:05:09 +01:00
dedicatedbroadcastsolutions
873dac50f5 avformat/mpegtsenc: change the min value for mpegts_start_pid to allow ATSC PIDs
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-19 00:49:18 +01:00
Rodger Combs
5f8fcdd448 dashenc: degrade gracefully if a stream's bitrate is unavailable
If a stream's bitrate is not set, this attempts to use its rc_max_rate;
if neither is set, it avoids writing a bandwidth attribute at all.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-18 21:18:53 +01:00
Clément Bœsch
568f1ecccf doc/writing_filters: fix reference to Lenna image 2014-11-18 21:12:17 +01:00
Clément Bœsch
6da12d46d3 doc/writing_filters: use a more portable sed command in the walk-through 2014-11-18 21:10:40 +01:00
Michael Niedermayer
30d3f9769f Merge commit '7813e6752bdab38a5686c301e869ee71d97bce69'
* commit '7813e6752bdab38a5686c301e869ee71d97bce69':
  configure: Fix enabling memalign_hack automatically

Conflicts:
	configure

See: 3d93ba5622
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-18 20:33:37 +01:00
Peter Hall
ea79dfbad3 avcodec/libvorbisenc: Give CODEC_CAP_SMALL_LAST_FRAME to libvorbis encoder.
The libvorbis encoder already supports a small last frame, but the layer
above doesn't know that because we didn't register the small last frame
capability.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-18 20:23:08 +01:00
Vadim Kalinsky
d1d3904273 avcodec/options: Set AVCodecContext->codec upon initialization.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-18 18:46:30 +01:00
Martin Storsjö
7813e6752b configure: Fix enabling memalign_hack automatically
simd_align_16 is a configure item that can be enabled or disabled,
it's not a variable containing a list of other configure items
as need_memalign previously. This was broken in eba2233b5.

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-18 18:53:57 +02:00
James Almer
bccae39072 lavf/ffmenc: fix memleak in ffm_write_header
Regression since 745730c9c2.
The dynamic buffer was not being used or freed.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2014-11-18 13:45:24 -03:00
Simon Thelen
43c1d82b86 doc/filters: use '|' instead of ':' in the documentation.
Using colons to separate the outdefs is deprecated. Switch to using '|'
to separate the list items.

Signed-off-by: Simon Thelen <ffmpeg-dev@c-14.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-18 16:38:09 +01:00
Michael Niedermayer
9e526213a2 avfilter/af_volume: Use avpriv_float_dsp_alloc()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-18 12:38:38 +01:00
Michael Niedermayer
aa97223f14 avfilter/af_amix: Use avpriv_float_dsp_alloc()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-18 12:24:16 +01:00
Michael Niedermayer
06d2742899 avcodec/nellymoser: Use avpriv_float_dsp_alloc()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-18 12:11:57 +01:00
Michael Niedermayer
4eae568a07 doc/APIchanges: Fix some wrong versions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-18 11:52:17 +01:00
Michael Niedermayer
a54a51cc9b avutil/float_dsp: add avpriv_float_dsp_alloc()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-18 11:43:01 +01:00
Michael Niedermayer
bb5e148299 libavcodec/tiffenc: Use av_freep() avoid leaving stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-18 11:33:58 +01:00
Michael Niedermayer
98fbf8ef67 libavcodec/libxavs: Use av_freep() avoid leaving stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-18 11:33:41 +01:00
Michael Niedermayer
ade140eb73 libavcodec/libx264: Use av_freep() avoid leaving stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-18 11:33:00 +01:00
Michael Niedermayer
4243415741 avcodec/mjpegdec: Support some subsampled GBR variants
Fixes Ticket4045

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-18 05:10:21 +01:00
Michael Niedermayer
0b75b6c3cd avformat/mp3dec: avoid seeking to negative positions
Fixes Ticket4038

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-18 04:04:37 +01:00
Michael Niedermayer
9bb6e1175f avcodec/internal: Add () to argument of FF_SIGNBIT() to ensure correct order or operations
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-18 03:42:40 +01:00
Michael Niedermayer
4cd4a6de4f Merge commit '2007082d2db25f9305b8a345798b840ea7784fdb'
* commit '2007082d2db25f9305b8a345798b840ea7784fdb':
  mov: check ff_get_wav_header() return value

Conflicts:
	libavformat/mov.c

See: 6d55a40b00
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-18 03:34:05 +01:00
Michael Niedermayer
cdbebae444 Merge commit '85dc006b1a829726dd5e3a9b0fcc6a1dbfe6dffa'
* commit '85dc006b1a829726dd5e3a9b0fcc6a1dbfe6dffa':
  lavc: fix bitshifts amount bigger than the type

Conflicts:
	libavcodec/internal.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-18 03:16:38 +01:00
Michael Niedermayer
8426edef4c Merge commit '771656bd85416cd6308b11aed6f2c69a8db9c21b'
* commit '771656bd85416cd6308b11aed6f2c69a8db9c21b':
  libvpxenc: clean memory on error

Conflicts:
	libavcodec/libvpxenc.c

See: 104b1d9e10
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-18 03:08:20 +01:00
Michael Niedermayer
7384ec19cf Merge commit 'a28468d0daf4be14761c16a3ddd33266b2380123'
* commit 'a28468d0daf4be14761c16a3ddd33266b2380123':
  librtmp: append the correct field to the string

See: d1970929b5
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-18 02:56:18 +01:00
Michael Niedermayer
9943c5a42b Merge commit '9257692ac15eff7b07540c1f61cebde0d8823fbd'
* commit '9257692ac15eff7b07540c1f61cebde0d8823fbd':
  lavf: Only initialize s->offset once when using avoid_negative_ts make_zero

Conflicts:
	libavformat/mux.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-18 02:46:07 +01:00
Vittorio Giovara
2007082d2d mov: check ff_get_wav_header() return value
CC: libav-stable@libav.org
Bug-Id: CID 717497
2014-11-18 00:40:06 +01:00
Vittorio Giovara
85dc006b1a lavc: fix bitshifts amount bigger than the type
CC: libav-stable@libav.org
Bug-Id: CID 1194387 / CID 1194389 / CID 1194393 / CID 1206638
2014-11-18 00:39:23 +01:00
Vittorio Giovara
771656bd85 libvpxenc: clean memory on error
CC: libav-stable@libav.org
Bug-Id: CID 733795
2014-11-18 00:38:56 +01:00
Vittorio Giovara
a28468d0da librtmp: append the correct field to the string
Also prevent a NULL pointer dereference.

CC: libav-stable@libav.org
Bug-Id: CID 1250329 / CID 1250331
2014-11-18 00:38:26 +01:00
Michael Niedermayer
afbaa9a737 avdevice/oss_audio: avoid strerror() and errbuf
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-17 23:46:56 +01:00
Michael Niedermayer
e60c025e73 Merge commit 'c302d034ba2690a935df8bf7e4f5d44ed86e8d5c'
* commit 'c302d034ba2690a935df8bf7e4f5d44ed86e8d5c':
  tools: Add a sidxindex tool

Conflicts:
	libavformat/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-17 23:09:22 +01:00
Michael Niedermayer
4dc305d784 Merge commit '40ed1cbf147d09fc0894bee160f0b6b6d9159fc5'
* commit '40ed1cbf147d09fc0894bee160f0b6b6d9159fc5':
  movenc: Allow writing a DASH sidx atom at the start of files

Conflicts:
	libavformat/movenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-17 23:02:02 +01:00
Michael Niedermayer
3fa4351d6b Merge commit '3847f3ab58b3b74604807394247bf68827258103'
* commit '3847f3ab58b3b74604807394247bf68827258103':
  movenc: Add tfra entries for all tracks in a moof

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-17 22:24:05 +01:00
Martin Storsjö
9257692ac1 lavf: Only initialize s->offset once when using avoid_negative_ts make_zero
When given a stream starting at dts=0, it would previously consider
s->offset as uninitialized and set an offset when the second packet
was written, ending up writing two packets with dts=0. By initializing
this field to AV_NOPTS_VALUE, we make sure that we only initialize it
once, on the first packet.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-17 23:18:55 +02:00
Michael Niedermayer
b5b15c4dd9 Merge commit 'fe5e6e34c05e274f98528be4f77f3c474473f977'
* commit 'fe5e6e34c05e274f98528be4f77f3c474473f977':
  lavf: Add an MPEG-DASH ISOFF segmenting muxer

Conflicts:
	Changelog
	libavformat/Makefile
	libavformat/allformats.c
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-17 22:13:50 +01:00
Michael Niedermayer
9e0b0c60bd Merge commit '2ded57371abead879bcee56da5131e5fac0d17ef'
* commit '2ded57371abead879bcee56da5131e5fac0d17ef':
  movenc: Add support for writing sidx atoms for DASH segments

Conflicts:
	Changelog
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-17 21:55:23 +01:00
Michael Niedermayer
1fddfaa282 Merge commit '2d9d6afb8d2f284f5e620ecc19f643d5cd3facb8'
* commit '2d9d6afb8d2f284f5e620ecc19f643d5cd3facb8':
  movenc: Factorize adding fragment info into a separate function

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-17 21:43:43 +01:00
Michael Niedermayer
b96c1cd78b Merge commit '0f9eb9165bb7d7982fdedf64f6bcec856f1bedd6'
* commit '0f9eb9165bb7d7982fdedf64f6bcec856f1bedd6':
  movenc: Include empty tracks in iods when writing fragmented mp4

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-17 21:22:47 +01:00
Michael Niedermayer
894d10332c avcodec/lcldec: support rgb24 with width%4 != 0
Fixes Ticket1216

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-17 21:06:31 +01:00
Carl Eugen Hoyos
92c07acce7 Read (display) aspect ratio from mxf files.
Fixes ticket #4107.
2014-11-17 17:54:32 +01:00
Martin Storsjö
c302d034ba tools: Add a sidxindex tool
This tool can write an MPD file for fragmented MP4 files with
a sidx index at the start of the file.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-17 16:17:07 +02:00
Martin Storsjö
40ed1cbf14 movenc: Allow writing a DASH sidx atom at the start of files
This is mapped to the faststart flag (which in this case
perhaps should be called "shift and write index at the
start of the file"), which for fragmented files will
write a sidx index at the start.

When segmenting DASH into files, there's usually one sidx
at the start of each segment (although it's not clear to me
whether that actually is necessary). When storing all of it
in one file, the MPD doesn't necessarily need to describe
the individual segments, but the offsets of the fragments can be
fetched from one large sidx atom at the start of the file. This
allows creating files for the DASH ISO BMFF on-demand profile.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-17 16:17:07 +02:00
Martin Storsjö
3847f3ab58 movenc: Add tfra entries for all tracks in a moof
Previously only tfra entries were added for the first track in each moof.

The frag_info array used for tfra can also be used for writing
other kinds of fragment indexes, where it's more important to
include all tracks.

When the separate_moof option is enabled (as in ismv), we write
a separate moof for each track, so this doesn't make any difference
in that case.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-17 16:17:07 +02:00
Martin Storsjö
fe5e6e34c0 lavf: Add an MPEG-DASH ISOFF segmenting muxer
This is mostly to serve as a reference example on how to segment
the output from the mp4 muxer, capable of writing the segment
list in four different ways:
- SegmentTemplate with SegmentTimeline
- SegmentTemplate with implicit segments
- SegmentList with individual files
- SegmentList with one single file per track, and byte ranges

The muxer is able to serve live content (with optional windowing)
or create a static segmented MPD.

In advanced cases, users will probably want to do the segmenting
in their own application code.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-17 16:17:07 +02:00
Martin Storsjö
2ded57371a movenc: Add support for writing sidx atoms for DASH segments
A flag "dash" is added, which enables the necessary flags for
creating DASH compatible fragments.

When this is enabled, one sidx atom is written for each track
before every moof atom.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-17 16:16:46 +02:00
Matthew Oliver
0b3c230542 configure: Enable mpcodec compilation without inline asm.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-17 15:16:34 +01:00
Matthew Oliver
70205f1799 mpcodecs: Use _INLINE guards for inline asm.
Enabled compilation with compiler without inline asm support.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-17 15:16:34 +01:00
Martin Storsjö
2d9d6afb8d movenc: Factorize adding fragment info into a separate function
By calling this after writing the moof the first time (for
calculating the moof size), we can avoid intermediate storage
of tfrf_offset in MOVTrack.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-17 16:13:02 +02:00
Martin Storsjö
0f9eb9165b movenc: Include empty tracks in iods when writing fragmented mp4
When writing fragmented streams with an empty initial moov,
we won't have any samples in any tracks when writing the
moov atom, thus trust that any tracks that are added actually
will be present.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-17 16:12:02 +02:00
Michael Niedermayer
cc5f731541 avformat/flvenc: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-17 13:08:05 +01:00
Michael Niedermayer
4127d97c8d Merge commit 'c64f3615118d757dcf76040fe5407bf2b3883206'
* commit 'c64f3615118d757dcf76040fe5407bf2b3883206':
  flvenc: Send new metadata when FLAG_METADATA_UPDATED is set.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-17 13:01:39 +01:00
Michael Niedermayer
bb7be3b763 Merge commit '4d0cd5f58c892276716f46f4b2702915e5018215'
* commit '4d0cd5f58c892276716f46f4b2702915e5018215':
  flvenc: move metadata updates into a single function

Conflicts:
	libavformat/flvenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-17 12:43:55 +01:00
Michael Niedermayer
c88ae843da Merge commit '8b573ddda75980f724f779ff75aacc2ff81d9e0e'
* commit '8b573ddda75980f724f779ff75aacc2ff81d9e0e':
  hevc: remove superfluous assignments and checks

Conflicts:
	libavcodec/hevc.c

See: 83976e40e8
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-17 12:26:36 +01:00
Michael Niedermayer
91a9ae5b6b Merge commit 'eac3ac1fe0774b65316852616b2672702dbc3f31'
* commit 'eac3ac1fe0774b65316852616b2672702dbc3f31':
  hevc: eliminate an unneeded intermediate variable

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-17 12:13:09 +01:00
Michael Niedermayer
0d5af820f7 Merge commit 'eb335f3c5ce37f2b93c993e28404d113bee843bc'
* commit 'eb335f3c5ce37f2b93c993e28404d113bee843bc':
  hevc: reduce variable scope

Conflicts:
	libavcodec/hevc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-17 12:07:49 +01:00
Michael Niedermayer
c23d7de22e Merge commit '84c0ece5fd9569c0f31804f02a199ecd0e7d13d8'
* commit '84c0ece5fd9569c0f31804f02a199ecd0e7d13d8':
  hevc: further reduce code duplication in hls_prediction_unit()

Conflicts:
	libavcodec/hevc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-17 12:01:47 +01:00
Michael Niedermayer
e078549421 Merge commit 'a7b365ae191f45a0d7ed7b34033d5d0cbdd47139'
* commit 'a7b365ae191f45a0d7ed7b34033d5d0cbdd47139':
  hevc: reduce code duplication in hls_prediction_unit()

Conflicts:
	libavcodec/hevc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-17 11:54:41 +01:00
Michael Niedermayer
30156eab6d Merge commit 'de1f8ead8993512925a3ee6c7491473414419e55'
* commit 'de1f8ead8993512925a3ee6c7491473414419e55':
  hevcdsp_template: templatize transquant_bypass

Conflicts:
	libavcodec/hevcdsp_template.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-17 11:41:35 +01:00
Michael Niedermayer
c192be1968 Merge commit '16c01fb4347312b6d29a6498dad627665b96a20e'
* commit '16c01fb4347312b6d29a6498dad627665b96a20e':
  hevc: remove an unused function parameter

Conflicts:
	libavcodec/hevc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-17 11:30:41 +01:00
Michael Niedermayer
e7fdfbdc58 Merge commit '84b9463984083f4e83948c73c1a5dbaf596ff3f7'
* commit '84b9463984083f4e83948c73c1a5dbaf596ff3f7':
  hevc: remove a redundant line

See: 83976e40e8
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-17 11:28:57 +01:00
Michael Niedermayer
f1b20930f2 Merge commit '2c6a7f9348378f887066fb1669c46b9485e8ef3e'
* commit '2c6a7f9348378f887066fb1669c46b9485e8ef3e':
  hevc: do not store rqt_root_cbf in the context

Conflicts:
	libavcodec/hevc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-17 11:20:32 +01:00
Michael Niedermayer
7cbe1e0447 Merge commit '920bca3e2332dced9c78bd14cfc2ff138188bd57'
* commit '920bca3e2332dced9c78bd14cfc2ff138188bd57':
  hevc: do not store pcm_flag in the context

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-17 11:06:13 +01:00
Andrew Stone
c64f361511 flvenc: Send new metadata when FLAG_METADATA_UPDATED is set.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-11-17 09:28:16 +01:00
Andrew Stone
4d0cd5f58c flvenc: move metadata updates into a single function
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-11-17 09:28:06 +01:00
Anton Khirnov
8b573ddda7 hevc: remove superfluous assignments and checks 2014-11-17 09:26:45 +01:00
Anton Khirnov
eac3ac1fe0 hevc: eliminate an unneeded intermediate variable 2014-11-17 09:26:45 +01:00
Anton Khirnov
eb335f3c5c hevc: reduce variable scope
Also, collapse the array into a scalar, since only one value is needed
at a time.
2014-11-17 09:26:45 +01:00
Anton Khirnov
84c0ece5fd hevc: further reduce code duplication in hls_prediction_unit() 2014-11-17 09:25:15 +01:00
Anton Khirnov
a7b365ae19 hevc: reduce code duplication in hls_prediction_unit() 2014-11-17 09:25:12 +01:00
Anton Khirnov
de1f8ead89 hevcdsp_template: templatize transquant_bypass 2014-11-17 09:25:12 +01:00
Anton Khirnov
16c01fb434 hevc: remove an unused function parameter 2014-11-17 09:25:12 +01:00
Anton Khirnov
84b9463984 hevc: remove a redundant line
pred_mode is overwritten a few lines immediately below.
2014-11-17 09:25:12 +01:00
Anton Khirnov
2c6a7f9348 hevc: do not store rqt_root_cbf in the context
It does not need to be accessed outside of hls_coding_unit().
2014-11-17 09:25:12 +01:00
Anton Khirnov
920bca3e23 hevc: do not store pcm_flag in the context
It does not need to be accessed outside of hls_coding_unit().
2014-11-17 09:25:12 +01:00
Michael Niedermayer
9421d974bc ffmpeg: Fix last newline at log level less than "info"
Fixes Ticket3058

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-17 04:25:01 +01:00
Michael Niedermayer
4be03a7a6c cmdutils: Exit in case of faulty stream specifiers
Avoids printing confusing and unrelated errors
Fixes Ticket2772

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-17 04:06:32 +01:00
Lukasz Marek
3f07dd6e39 ffserver_config: fix possible crash
Fixes CID #1254662

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-17 00:27:25 +01:00
Lukasz Marek
1a054bd187 ffserver_config: do not store preset name
Preset are translated to AVOptions.
It is not required to reparse anymore.

Fixes CID #1254667

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-17 00:27:25 +01:00
Reynaldo H. Verdejo Pinochet
33d6f90e3e ffserver: drop pointless explicit !=0 checks
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2014-11-16 20:25:55 -03:00
Michael Niedermayer
20bf91f832 avcodec/roqvideoenc: clear freed pointers
Avoid leaving stale pointers in memory

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-16 23:48:38 +01:00
Michael Niedermayer
7ababb85f9 avcodec/snow: clear freed pointers
Avoid leaving stale pointers in memory

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-16 23:48:38 +01:00
Michael Niedermayer
00672d2ce5 avcodec/rl2: clear freed pointers
Avoid leaving stale pointers in memory

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-16 23:48:38 +01:00
Michael Niedermayer
51ddaf6549 avformat/mpeg: fix memleak of sub_name on error
Fixes CID1254666

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-16 19:17:34 +01:00
Michael Niedermayer
62eca2f827 avdevice/xcbgrab: Fix/remove unneeded NULL checks
Fixes CID1254664

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-16 19:01:10 +01:00
Michael Niedermayer
374c907fb3 avcodec/vorbis_parser: Move vp check
Fixes null pointer dereference
Fixes CID1251347

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-16 18:06:03 +01:00
Michael Niedermayer
1de786777e avcodec/dvdsubdec: Check all fseek()s return codes
Fixes CID1254660

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-16 17:50:18 +01:00
Michael Niedermayer
530eb6acf8 avformat/hlsenc: Free context after hls_append_segment
Fixes reading uninitialized memory

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-16 04:32:54 +01:00
Michael Niedermayer
ce80f9fee9 avformat/segment: export inner muxer timebase
Fixes "Non-monotonous DTS in output stream 0:0"
Fixes Ticket4020

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-16 03:02:29 +01:00
Lukasz Marek
ec01283752 lavf/ffmdec: reident after last commit
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-16 01:57:26 +01:00
Lukasz Marek
745730c9c2 lavf/ffm: use AVOption API to store/restore stream properties
This is a generic solution that will not reqiore modifications when new options are added.
This also fixes problem with current implementation when qmin or qmax=-1.
Only 8 bits was sent and read back as 255.

Fixes #1275
Fixes #1461

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-16 01:13:38 +01:00
Lukasz Marek
a38e06c1aa ffserver_config: handle codec private options
This commit allows to set codec's private option.
As side effect, it also improves preset support.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-16 01:13:38 +01:00
Lukasz Marek
2657f00d3f ffmpeg_opt: use codec private context in ffserver streams
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-16 01:13:38 +01:00
Lukasz Marek
6690d4c3f5 lavf/ffm: store/restore private codec context
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-16 01:13:38 +01:00
Lukasz Marek
bee5844ddd lavu/opt: introduce av_opt_serialize()
Function allows to create string containing object's serialized options.
Such string may be passed back to av_set_options_string() in order to restore options.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-16 01:13:38 +01:00
Lukasz Marek
eec693328a lavu/opt: introduce av_opt_is_set_to_default()
New function allows to check if option is set to its default value

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-16 01:13:38 +01:00
Lukasz Marek
01974a58df lavc/options: initialize pkt_timebase
It's default in option_table.h is 0, but without this fix it is represented as 0/0.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-16 01:13:38 +01:00
Lukasz Marek
4a30277a59 lavc/options: set timecode_frame_start to -1 as option default
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-16 01:13:38 +01:00
Lukasz Marek
c544ffd2ae lavc/options_table: add pixel_format and video_size options
Adding these options simplify ffm format implementation based on AVOption API.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-16 01:13:38 +01:00
Lukasz Marek
c727006616 lavc/options_table: set min to -1 for timecode_frame_start
timecode_frame_start is set to -1 in avcodec_get_context_defaults3()
AVOptions API complains about it.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-16 01:13:38 +01:00
Michael Niedermayer
08ee02deca avfilter/vf_tinterlace: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-16 01:06:18 +01:00
Michael Niedermayer
f3cba01cce Merge commit 'c00365b46d464ce47716315c1801818d811bdb9a'
* commit 'c00365b46d464ce47716315c1801818d811bdb9a':
  aarch64: Make the function pointer tables position independent

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-16 01:05:31 +01:00
Martin Storsjö
c00365b46d aarch64: Make the function pointer tables position independent
This allows running the code on android, where 64 bit binaries with
text relocations aren't allowed to be loaded.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-16 01:07:24 +02:00
Clément Bœsch
77204f7366 avfilter/xbr: fix style in FILT4() calls 2014-11-15 22:48:22 +01:00
Clément Bœsch
7eece06934 avfilter/xbr: clarify default "interpolated" pixels assignments 2014-11-15 22:46:19 +01:00
Clément Bœsch
bca3c2cfc0 avfilter/xbr: refactor xbr[234]x into a single function
No speed difference.
2014-11-15 22:35:29 +01:00
Clément Bœsch
8bc1553cdb avfilter/xbr: add slice threading 2014-11-15 22:15:32 +01:00
Michael Niedermayer
bd7d8604bd avcodec/nellymoserenc: update comment to match 5c805d69a4
Found-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-15 22:12:35 +01:00
Clément Bœsch
454b714283 avfilter/xbr: add video and filtering flags to options
Fixes ffmpeg -h filter=xbr
2014-11-15 21:22:00 +01:00
Clément Bœsch
be96201e5b avfilter/xbr: use function pointers for xbr[234]x 2014-11-15 21:18:18 +01:00
Clément Bœsch
c4fb79a3db avfilter/xbr: remove FATE test entry from @todo
See 57688aecbd
2014-11-15 21:13:18 +01:00
Clément Bœsch
9a796f7f18 avfilter/xbr: consistent copyright header 2014-11-15 21:06:13 +01:00
Clément Bœsch
d1529273fb avfilter/xbr: make xbr[234]x a bit more consistent 2014-11-15 21:06:13 +01:00
Clément Bœsch
a99004a926 avfilter/xbr: misc style fixes 2014-11-15 21:01:40 +01:00
Clément Bœsch
fda209b741 avfilter/xbr: simplify left/up conditions 2014-11-15 21:01:40 +01:00
Clément Bœsch
a3c3ee6973 avfilter/xbr: misc cleanup in FILT[234] macros 2014-11-15 21:01:40 +01:00
Clément Bœsch
7e91f77547 avfilter/xbr: refactor src/dst pointers definitions into a macro 2014-11-15 21:01:39 +01:00
Clément Bœsch
18e4bf4f54 avfilter/xbr: refactor the 21 pixels definition into a macro 2014-11-15 21:01:39 +01:00
Clément Bœsch
6bf9786a9b avfilter/xbr: mark source pointers as const 2014-11-15 21:01:36 +01:00
Clément Bœsch
e070484040 avfilter/xbr: simplify width overread checks 2014-11-15 20:31:41 +01:00
Clément Bœsch
55f05ac0f1 avfilter/xbr: use different macro names for each dimension 2014-11-15 20:31:41 +01:00
Clément Bœsch
9f9c741771 avfilter/xbr: avoid unecessary macro redirections 2014-11-15 20:31:41 +01:00
Clément Bœsch
086487b633 avfilter/xbr: localize some filtering variables 2014-11-15 20:31:41 +01:00
Clément Bœsch
08bb6f919c avfilter/xbr: do not pass unchanging r2y to macros 2014-11-15 20:31:41 +01:00
Stefano Sabatini
aea7616d39 lavfi/xbr: remove relicensing notice from copyright header
The log is good enough for tracking those changes.
2014-11-15 20:13:53 +01:00
Michael Niedermayer
dcb10ef9bf Merge commit '2fa6d21124bd2fc0b186290f5313179263bfcfb7'
* commit '2fa6d21124bd2fc0b186290f5313179263bfcfb7':
  on2avc: Fix out of array access

See: ce6a1ff2a1
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-15 19:23:05 +01:00
Michael Niedermayer
89e705cd5c Merge commit '74d7db586a2e9aeb107e357739c7e4dde0b6991c'
* commit '74d7db586a2e9aeb107e357739c7e4dde0b6991c':
  dv: Drop a spurious check

Conflicts:
	libavcodec/dvdec.c

See: 5307fa00a4
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-15 19:11:14 +01:00
Arwa Arif
a2f05d3337 lavfi : change xBR filter to LGPL
Hyllian's message : "Hi, Put lgpl on this and use it as you wish. It's free!"

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-15 18:54:54 +01:00
Michael Niedermayer
7d37e45f6b avcodec/mpeg4video_parser: fix spurious extradata parse warnings
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-15 17:30:44 +01:00
Michael Niedermayer
10411afdff avcodec/mpeg4videodec: replace some return -1 by more specific error codes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-15 17:24:36 +01:00
Michael Niedermayer
18fcdc0981 avcodec/mpeg4videodec: forward return code in ff_mpeg4_decode_picture_header()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-15 17:09:37 +01:00
Michael Niedermayer
deccb4d827 avformat/http: simplify chained_options copying
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-15 14:30:32 +01:00
Brandon Lees
ffaf2074eb Fix the timeout option not working when connecting to a HTTP url that requires authentication.
In http_open_cnx, the patch restores the AVDictionary if connection needs to be re-tried
because of a authentication/redirect status code.

Previously, if a 401/407/30x status code was encountered, http_open_cnx would restart at the redo label, but any options
used by the underlying protocol would be missing because they were removed by the first attempt.

Signed-off-by: Brandon Lees <brandon@n-hega.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-15 14:30:32 +01:00
Shin-ichi Toyama
12630fa821 avcodec/dvdsubdec: New option for obtaining global palette from .IFO file (experimental)
Suggested-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-15 12:50:39 +01:00
Michael Niedermayer
2fa6d21124 on2avc: Fix out of array access
CC: libav-stable@libav.org
Bug-Id: CID 1206648
2014-11-15 12:50:05 +01:00
Luca Barbato
74d7db586a dv: Drop a spurious check
The buffer is always valid.

Bug-Id: CID 700682
2014-11-15 12:49:37 +01:00
Mika Raento
b08fd7ea78 mov.c: fix handling of seek return in read_mfra
this would cause mfra to be ignored in files larger than 2G

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-15 12:04:34 +01:00
Michael Niedermayer
42c8db69b6 Merge commit '8562c1483ba647f562e4c1df68a9231274b80e6b'
* commit '8562c1483ba647f562e4c1df68a9231274b80e6b':
  Icecast: Send content-type in all cases

See: 5e08b54f47
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-15 11:52:43 +01:00
Michael Niedermayer
f3c324a0fe Merge commit '3a6bb9735053c453f806ceab1d91124648d90aca'
* commit '3a6bb9735053c453f806ceab1d91124648d90aca':
  Icecast: Send 100-continue header if possible

See: 17dc39e76b
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-15 11:30:42 +01:00
Marvin Scholz
8562c1483b Icecast: Send content-type in all cases
This is needed because Icecast since version 2.4.1 doesn't default
to audio/mpeg anymore. AVOption default not used here, since a later
check if -content_type is set is performed and would break.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-11-15 09:15:39 +01:00
Marvin Scholz
3a6bb97350 Icecast: Send 100-continue header if possible
This allows for proper error reporting. Only do
this for non-legacy requests as only Icecast >2.4.0
will reply with a proper status.
Libav seems to accept both, 100 and 200 status codes, but
let's stay close to spec.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-11-15 09:14:04 +01:00
Michael Niedermayer
05e4b25e9b avfilter/x86/vf_interlace: rewrite asm
4775 decicycles -> 3688 decicycles

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-15 04:09:03 +01:00
Michael Niedermayer
fb3eb57369 avfilter/tinterlace: add Support for ff_lowpass_line_avx() & ff_lowpass_line_sse2()
Based-on: 2e1704059a by Kieran Kunhya

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-15 04:02:33 +01:00
Michael Niedermayer
18b46ecc93 avfilter/tinterlace: Move lowpass_line to a separate function and call it through a function pointer
This permits replacing it by a optimized implementation
Based-on / Idea-from: 2e1704059a by Kieran Kunhya

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-15 03:25:43 +01:00
Michael Niedermayer
9d548fce24 avfilter/tinterlace: split context definition into seperate header so it can be used by future optimizations
Idea from 2e1704059a from Kieran Kunhya

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-15 03:22:35 +01:00
Michael Niedermayer
f043965cd5 avfilter/vf_tinterlace: fix linesize vs. width
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-15 03:03:58 +01:00
Mark Reid
933eca91e6 libavformat/mxfdec.c: refactored resolving timecode component
Reviewed-by: Tomas Härdin <tomas.hardin@codemill.se>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-15 02:45:53 +01:00
Michael Niedermayer
05e0ea6050 avfilter/vf_tinterlace: Fix output top field first flag for MODE_INTERLACEX2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-15 02:45:13 +01:00
Michael Niedermayer
6f373d75e8 Merge commit '2e1704059ae8625beda2ffde847ad22c5ba416dc'
* commit '2e1704059ae8625beda2ffde847ad22c5ba416dc':
  vf_interlace: Add SIMD for lowpass filter

Conflicts:
	libavfilter/vf_interlace.c
	libavfilter/x86/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-15 02:39:49 +01:00
Michael Niedermayer
53ab7846ee Merge commit 'd16ec1b6db25bc348b0d4800c9a0c9b7070e3710'
* commit 'd16ec1b6db25bc348b0d4800c9a0c9b7070e3710':
  atrac3plus: always initialize refwaves

The initialization is not needed, the array is never read before
being written to. Its merged anyway for robustness in respect to
future changes

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-15 02:17:54 +01:00
Michael Niedermayer
85929b9caa avcodec/lpc: remove unneeded {}
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-15 02:08:20 +01:00
Michael Niedermayer
d4065a9f47 Merge commit '60e0ee7ca25bd3bea54043b0607efe4cd51acaf3'
* commit '60e0ee7ca25bd3bea54043b0607efe4cd51acaf3':
  lpc: always initialize ref and err

The initialization is not needed, its merged anyway as it might
help suppressing warnings and might make the code more robust against
future changes

See: c4a36b6f70
See: 0dd99628ea
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-15 02:05:25 +01:00
Michael Niedermayer
a5adeff457 Merge commit '3a6ddfb8745e4b306a5637927fb057f630345e2f'
* commit '3a6ddfb8745e4b306a5637927fb057f630345e2f':
  exr: check return value

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-15 01:55:21 +01:00
Michael Niedermayer
ac1735e76d Merge commit 'e4cb6abb2f46910c72178e2f987a0198f0fd10b1'
* commit 'e4cb6abb2f46910c72178e2f987a0198f0fd10b1':
  bgmc: fix sizeof arguments

See: 41bf943f70
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-15 01:53:22 +01:00
Michael Niedermayer
720a8d2b75 Merge commit '4b39cc1a093c239412ded522c4a899744e7f2008'
* commit '4b39cc1a093c239412ded522c4a899744e7f2008':
  riff: support ProRes in avi (APCN fourcc)

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-15 01:47:39 +01:00
Kieran Kunhya
2e1704059a vf_interlace: Add SIMD for lowpass filter
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-11-15 00:35:31 +01:00
Vittorio Giovara
d16ec1b6db atrac3plus: always initialize refwaves
CC: libav-stable@libav.org
Bug-Id: CID 1163851
2014-11-14 20:26:32 +01:00
Vittorio Giovara
60e0ee7ca2 lpc: always initialize ref and err
CC: libav-stable@libav.org
Bug-Id: CID 29585 / CID 700759
2014-11-14 20:25:52 +01:00
Vittorio Giovara
3a6ddfb874 exr: check return value
CC: libav-stable@libav.org
Bug-Id: CID 1198259
2014-11-14 20:25:21 +01:00
Thilo Borgmann
e4cb6abb2f bgmc: fix sizeof arguments
CC: libav-devel@libav.org
Bug-Id: CID 608084 / CID 700724
2014-11-14 20:25:02 +01:00
Vittorio Giovara
4b39cc1a09 riff: support ProRes in avi (APCN fourcc) 2014-11-14 20:24:38 +01:00
Thilo Borgmann
e6e6149630 doc/indevs: Rework and update documentation of AVFoundation device.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-14 18:28:12 +01:00
Thilo Borgmann
d525e662e4 Changelog: Mention AVFoundation screen capturing.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-14 18:28:12 +01:00
Thilo Borgmann
2045334239 lavd/avfoundation: Introduce device alias 'none' to allow the user to record only audio or video.
Changes the selection of a default device to none instead of the system default device.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-14 18:28:12 +01:00
Carl Eugen Hoyos
cde0ad5ea7 tests/Makefile: Fix path for creation of ffprobe-test.nut. 2014-11-14 17:35:26 +01:00
Benoit Fouet
00df32f6a9 avcodec/pngdec: split frame decoding in its own function.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-14 17:20:43 +01:00
Benoit Fouet
8cab24df07 avcodec/pngdec: create a function to handle small (<=4) bits per pixel values.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-14 17:13:08 +01:00
Benoit Fouet
24ca2ffad8 avcodec/pngdec: use else if instead of if for small bpp handling.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-14 17:12:39 +01:00
Benoit Fouet
c25b6ae8a2 avcodec/pngdec: fix some indentation/whitespaces
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-14 16:59:03 +01:00
Benoit Fouet
6499e63f7b avcodec/pngdec: create a function to decode tRNS chunk.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-14 16:58:37 +01:00
Benoit Fouet
4f313a50ee avcodec/pngdec: create a function to decode PLTE chunk.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-14 16:17:00 +01:00
Benoit Fouet
b35fa04152 avcodec/pngdec: create a function to decode IDAT chunk.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-14 16:16:47 +01:00
Benoit Fouet
3f1eaf590c avcodec/pngdec: create a function to decode pHYs chunk.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-14 15:58:35 +01:00
Benoit Fouet
1523d1484d avcodec/pngdec: create a function to decode IHDR chunk.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-14 15:58:02 +01:00
Benoit Fouet
98abb98cb1 avcodec/pngdec: rename decode_frame to decode_frame_png
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-14 15:35:12 +01:00
Peter Ross
b186b7131e avfilter/vf_lut: gammaval709()
See http://www.itu.int/rec/R-REC-BT.709
Item 1.2, overall opto-electronic transfer characteristics at source

Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-14 02:55:15 +01:00
Clément Bœsch
57688aecbd fate: add xBR filter tests 2014-11-13 22:45:45 +01:00
Aleksey Vasenev
8349001638 avfilter/vf_tinterlace: fix frame rate
Signed-off-by: Aleksey Vasenev <margtu-fivt@ya.ru>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-13 22:35:15 +01:00
Aleksey Vasenev
df8248f66e avfilter/vf_interlace: more accurate pts calculation
Signed-off-by: Aleksey Vasenev <margtu-fivt@ya.ru>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-13 22:35:15 +01:00
Carl Eugen Hoyos
3428865163 lavc/flashsv2enc: Fix encoding resolution error message. 2014-11-13 22:13:33 +01:00
Michael Niedermayer
5c805d69a4 avcodec/nellymoserenc: fix sign error
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-13 20:48:52 +01:00
Michael Niedermayer
4001fc4267 avcodec/4xm: remove duplicate assert
Found-by: carl
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-13 19:01:08 +01:00
Michael Niedermayer
dae7e4e63d tests/tiny_psnr: remove redundant initialization
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-13 17:54:20 +01:00
James Almer
3cec54b7d7 x86/flacdsp: add SSE2 and AVX decorrelate functions
Two to four times faster depending on instruction set, block size and channel count.
2014-11-13 13:47:55 -03:00
Peter Ross
2093c1dc51 cinedec: report white balance gain coefficients using metadata
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-13 15:31:19 +01:00
Michael Niedermayer
7a79c055e3 Merge commit 'a2448cfe167a4cd4eb631318550d4eef38fca24a'
* commit 'a2448cfe167a4cd4eb631318550d4eef38fca24a':
  jpeg2000: do not compute the same value twice

Conflicts:
	libavcodec/jpeg2000.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-13 15:20:40 +01:00
Michael Niedermayer
45660c7d1b Merge commit '59846452af762f6af5ced4399e8dcd709ca50fcd'
* commit '59846452af762f6af5ced4399e8dcd709ca50fcd':
  svq1enc: check ff_get_buffer return value

Conflicts:
	libavcodec/svq1enc.c

See: 7effc26ba7
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-13 14:54:06 +01:00
Michael Niedermayer
057b74d19c Merge commit '994ab1804b8bf532f44876927b07b51f1f63247f'
* commit '994ab1804b8bf532f44876927b07b51f1f63247f':
  ansi: check ff_set_dimensions return value

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-13 14:51:37 +01:00
Michael Niedermayer
04f6a5230d Merge commit 'c7384664ba0cbb12d882effafbc6d321ae706cff'
* commit 'c7384664ba0cbb12d882effafbc6d321ae706cff':
  avs: check ff_set_dimensions return value

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-13 14:51:03 +01:00
Michael Niedermayer
b697a3314e Merge commit '2b5c1efa1465d8646f8be525cace7a21404e40ad'
* commit '2b5c1efa1465d8646f8be525cace7a21404e40ad':
  g2meet: check ff_set_dimensions return value

Conflicts:
	libavcodec/g2meet.c

See: 3af9d8269e
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-13 14:31:48 +01:00
Michael Niedermayer
dfa0800c41 Merge commit 'c6d7c201dfa80502cb6cefbee7dc9160cedb5187'
* commit 'c6d7c201dfa80502cb6cefbee7dc9160cedb5187':
  indeo3: check ff_set_dimensions return value

See: 81ed7efbe2
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-13 14:29:52 +01:00
Michael Niedermayer
ecb748866e Merge commit '8e104619a627fcf5f4c2bd3c09d0c2d323aae745'
* commit '8e104619a627fcf5f4c2bd3c09d0c2d323aae745':
  shorten: check for return value

Conflicts:
	libavcodec/shorten.c

See: e20ebe491c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-13 14:21:58 +01:00
Michael Niedermayer
785f71fcd5 Merge commit 'd5d2d6c3b8cff61eb26c18bbd977881cf6d5524a'
* commit 'd5d2d6c3b8cff61eb26c18bbd977881cf6d5524a':
  dcadec: initialize variables before use

Conflicts:
	libavcodec/dcadec.c

See: 53918a1c54
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-13 14:21:18 +01:00
Michael Niedermayer
2c4d5d3497 Merge commit '1a9c1333b5d70b427c82cb98f383aa2fa9b2b319'
* commit '1a9c1333b5d70b427c82cb98f383aa2fa9b2b319':
  escape124: explicitly set get_bits1 variable

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-13 14:01:41 +01:00
Michael Niedermayer
9b424accbe Merge commit '2ffb0598dbdb81c40650952aa9299fa02fa5e834'
* commit '2ffb0598dbdb81c40650952aa9299fa02fa5e834':
  mlpdec: check for negative index

Conflicts:
	libavcodec/mlpdec.c

See: 8491ac3ad2

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-13 13:59:53 +01:00
Michael Niedermayer
e266e186cf Merge commit '6abe7edabb7d57e82d7ea6312d30cf05d2192c5b'
* commit '6abe7edabb7d57e82d7ea6312d30cf05d2192c5b':
  ffv1: fix out-of-bounds read

The change should be harmless but theres no out of array access before
the change

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-13 13:46:54 +01:00
Michael Niedermayer
198e55bfa7 Merge commit '5aa710f46119bb9c1c38542f80f5338eb8b5ffb2'
* commit '5aa710f46119bb9c1c38542f80f5338eb8b5ffb2':
  vorbisenc: add missing parenthesis

Conflicts:
	libavcodec/vorbisenc.c

See: f72b735d41
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-13 13:34:39 +01:00
Michael Niedermayer
b882079b12 Merge commit 'e9a6ae775dabef3942632e8d4ef95fff94a1b310'
* commit 'e9a6ae775dabef3942632e8d4ef95fff94a1b310':
  dpxenc: mention missing break

Conflicts:
	libavcodec/dpxenc.c

No change as the changed code is implemented differently in FFmpeg

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-13 13:32:08 +01:00
Michael Niedermayer
ccfae03815 Merge commit '4dda5e9b0829b119c17d950906c61d3ebffc494f'
* commit '4dda5e9b0829b119c17d950906c61d3ebffc494f':
  sunrastenc: mention missing break

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-13 13:31:08 +01:00
Michael Niedermayer
ef4e54e0df Merge commit '28d82b7675bea76a1349070a3cdd737d964d4775'
* commit '28d82b7675bea76a1349070a3cdd737d964d4775':
  vc1dec: refactor check with missing parenthesis

Conflicts:
	libavcodec/vc1_mc.c
	tests/ref/fate/vc1_ilaced_twomv

Theres no change to the reference checksums as this bug was not
in FFmpeg

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-13 13:23:42 +01:00
Michael Niedermayer
94cf1ef008 Merge commit '2c98dc75f2802a2fe91922d4a11b698b66420e5b'
* commit '2c98dc75f2802a2fe91922d4a11b698b66420e5b':
  vc1dec: always initialize tx and ty

Not merged, tx/ty are initialized on every codepath before use

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-13 13:11:41 +01:00
Michael Niedermayer
7f8ef7876e Merge commit 'e3f50f247155216229e34f165bae8c329d5a001e'
* commit 'e3f50f247155216229e34f165bae8c329d5a001e':
  dnxhdenc: check negative index

Conflicts:
	libavcodec/dnxhdenc.c

Not merged, the cid index thats taken out of our table will be found again in
said table.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-13 12:56:32 +01:00
Michael Niedermayer
76fa78911f Merge commit 'b1b1a7370e141c912e3d0bbaa668dcee05c3ad67'
* commit 'b1b1a7370e141c912e3d0bbaa668dcee05c3ad67':
  display: fix order of operands

Conflicts:
	libavcodec/h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-13 12:53:31 +01:00
Michael Niedermayer
946a5cb64d Merge commit 'bdcb5794f0c2d74371152303bffe4172671af264'
* commit 'bdcb5794f0c2d74371152303bffe4172671af264':
  nellymoserenc: fix array index

Not merged, the original code was correct.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-13 12:38:05 +01:00
Michael Niedermayer
0f29e92091 Merge commit 'aa7c429c4e8e561009176d51b7dcb626c85eb276'
* commit 'aa7c429c4e8e561009176d51b7dcb626c85eb276':
  nellymoserenc: fix array element ordering

See: 62722ae2d4
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-13 12:13:06 +01:00
Michael Niedermayer
7b824e8b25 Merge commit '8dd0a2c5cf40a8a49faae985adc11750b6429132'
* commit '8dd0a2c5cf40a8a49faae985adc11750b6429132':
  libopusenc: prevent an out-of-bounds read by returning early

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-13 12:12:27 +01:00
Michael Niedermayer
3c6e148e84 Merge commit 'b09cf8afc5199d359ac985ad7cea72a6a9f20e4e'
* commit 'b09cf8afc5199d359ac985ad7cea72a6a9f20e4e':
  libopusenc: check return value

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-13 12:02:05 +01:00
Michael Niedermayer
8e6084eebe Merge commit '29234f56818135faf2f1868ab324c073abd28fbd'
* commit '29234f56818135faf2f1868ab324c073abd28fbd':
  vp7: fix checking vp7_feature_value_size()

See: 28f8114bd2
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-13 12:00:29 +01:00
Michael Niedermayer
64e12aec96 Merge commit '68a35473ed423a14731c418939fba7913647979a'
* commit '68a35473ed423a14731c418939fba7913647979a':
  4xm: more thorought check for negative index and negative shift

Conflicts:
	libavcodec/4xm.c

Mostly not merged, the added checks, check for impossible conditions
for paranoias sake they are replaced by asserts but thats probably overkill
the vlc table does not contain out of range values or holes,
nor does it permit the log2 values to become negative. Whenever a
log2 value reaches 0 the selected table no longer contains an entry to trigger
the case that would decrease it further

Adding such impossible checks would confuse the reader

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-13 11:37:59 +01:00
Michael Niedermayer
3e1ac10345 avcodec/utils: Add ATRAC3+ to av_get_audio_frame_duration()
Fixes Ticket3979

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-13 02:48:40 +01:00
Vittorio Giovara
a2448cfe16 jpeg2000: do not compute the same value twice
CC: libav-stable@libav.org
Bug-Id: CID 1026771 / CID 1026772 / CID 1026773
2014-11-13 01:41:27 +01:00
Vittorio Giovara
59846452af svq1enc: check ff_get_buffer return value
CC: libav-stable@libav.org
Bug-Id: CID 747723
2014-11-13 01:41:27 +01:00
Vittorio Giovara
994ab1804b ansi: check ff_set_dimensions return value
CC: libav-stable@libav.org
Bug-Id: CID 1135737
2014-11-13 01:41:27 +01:00
Vittorio Giovara
c7384664ba avs: check ff_set_dimensions return value
CC: libav-stable@libav.org
Bug-Id: CID 1135738
2014-11-13 01:41:27 +01:00
Vittorio Giovara
2b5c1efa14 g2meet: check ff_set_dimensions return value
CC: libav-stable@libav.org
Bug-Id: CID 1135739
2014-11-13 01:41:26 +01:00
Vittorio Giovara
c6d7c201df indeo3: check ff_set_dimensions return value
CC: libav-stable@libav.org
Bug-Id: CID 1135740
2014-11-13 01:41:26 +01:00
Vittorio Giovara
8e104619a6 shorten: check for return value
Avoid a possible negative bitshift.

CC: libav-stable@libav.org
Bug-Id: CID 1194400
2014-11-13 01:41:26 +01:00
Vittorio Giovara
d5d2d6c3b8 dcadec: initialize variables before use
CC: libav-stable@libav.org
Bug-Id: CID 700751 / CID 700752
2014-11-13 01:41:26 +01:00
Vittorio Giovara
1a9c1333b5 escape124: explicitly set get_bits1 variable
Makes coverity less confused.

CC: libav-stable@libav.org
Bug-Id: CID 1203487
2014-11-13 01:41:26 +01:00
Vittorio Giovara
2ffb0598db mlpdec: check for negative index
CC: libav-stable@libav.org
Bug-Id: CID 970924
2014-11-13 01:41:26 +01:00
Vittorio Giovara
6abe7edabb ffv1: fix out-of-bounds read
CC: libav-stable@libav.org
Bug-Id: CID 1047234
2014-11-13 01:41:26 +01:00
Vittorio Giovara
5aa710f461 vorbisenc: add missing parenthesis
Bug-Id: CID 1238791
2014-11-13 01:41:26 +01:00
Vittorio Giovara
e9a6ae775d dpxenc: mention missing break
Bug-Id: CID 732229
2014-11-13 01:41:26 +01:00
Vittorio Giovara
4dda5e9b08 sunrastenc: mention missing break
Bug-Id: CID 732231
2014-11-13 01:41:26 +01:00
Vittorio Giovara
28d82b7675 vc1dec: refactor check with missing parenthesis
FATE tests updated accordingly, no visual difference.

CC: libav-stable@libav.org
Bug-Id: CID 1087087
2014-11-13 01:41:25 +01:00
Vittorio Giovara
2c98dc75f2 vc1dec: always initialize tx and ty
CC: libav-stable@libav.org
Bug-Id: CID 1245702 / CID 1245703
2014-11-13 01:41:25 +01:00
Vittorio Giovara
e3f50f2471 dnxhdenc: check negative index
CC: libav-stable@libav.org
Bug-Id: CID 700464
2014-11-13 01:41:25 +01:00
Vittorio Giovara
b1b1a7370e display: fix order of operands
CC: libav-stable@libav.org
Bug-Id: CID 1238828 / CID 1238832
2014-11-13 01:41:25 +01:00
Vittorio Giovara
bdcb5794f0 nellymoserenc: fix array index
CC: libav-stable@libav.org
Bug-Id: CID 732258
2014-11-13 01:41:25 +01:00
Michael Niedermayer
aa7c429c4e nellymoserenc: fix array element ordering
Fixes assertion failures and valgrind warnings in trellis encoder.

CC: libav-stable@libav.org
Bug-Id: CID 732256 / CID 732257
2014-11-13 01:41:25 +01:00
Vittorio Giovara
8dd0a2c5cf libopusenc: prevent an out-of-bounds read by returning early
CC: libav-stable@libav.org
Bug-Id: CID 1244188
2014-11-13 01:41:25 +01:00
Vittorio Giovara
b09cf8afc5 libopusenc: check return value
CC: libav-stable@libav.org
Bug-Id: CID 739870
2014-11-13 01:41:25 +01:00
Michael Niedermayer
29234f5681 vp7: fix checking vp7_feature_value_size()
CC: libav-stable@libav.org
Bug-Id: CID 1197061
2014-11-13 01:41:25 +01:00
Vittorio Giovara
68a35473ed 4xm: more thorought check for negative index and negative shift
CC: libav-stable@libav.org
Bug-Id: CID 1087094
2014-11-13 01:18:09 +01:00
Michael Niedermayer
2f6bb86f85 swscale/utils: support bayer input + scaling, and bayer input + any supported output
Fixes Ticket4053

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-12 23:59:37 +01:00
Lukasz Marek
173d51c982 lavu/opt: fix av_opt_get function
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-12 23:34:05 +01:00
Lukasz Marek
5aed6f56d9 ffserver_config: report not closed last tag
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-12 23:33:08 +01:00
Lukasz Marek
5dc0f607e7 lavu/opt: fix memleak in test
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-12 23:32:31 +01:00
Michael Niedermayer
d03867c248 avcodec/dvbsubdec: av_assert* instead of assert()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-12 20:08:24 +01:00
James Almer
84ccc317ce x86/flacdsp: separate decoder and encoder dsp initialization
Signed-off-by: James Almer <jamrial@gmail.com>
2014-11-12 14:41:45 -03:00
Michael Niedermayer
39dfe6801a avcodec/dvbsubdec: Cleanup on *malloc failure
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-12 17:54:52 +01:00
Rong Yan
e74e14608f libswscale/ppc/swscale_altivec.c : fix hScale_altivec_real() yuv2planeX_16_altivec() yuv2planeX_8() for little endian
add marcos GET_LS() GET_VF() LOAD_FILTER() LOAD_L1() GET_VF4() FIRST_LOAD() UPDATE_PTR() LOAD_SRCV() LOAD_SRCV8() GET_VFD() for POWER LE

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-12 15:15:03 +01:00
Carl Eugen Hoyos
1f4bce894a lavf/tcp: Clarify that the -timeout option takes microseconds. 2014-11-12 13:52:56 +01:00
Carl Eugen Hoyos
0ea54d698b lavd/avfoundation: Remove unused -frame_rate option. 2014-11-12 09:55:11 +01:00
Reimar Döffinger
5e8e2f3861 configure: Hack to treat x32 as x86_64.
Allows shared compilation on x32 with --disable-asm.
2014-11-12 09:53:01 +01:00
Michael Niedermayer
9d6ad68fa4 avcodec/h264_parser: Avoid adding SEI to the global header
Only consider SEI when no PPS has been found yet

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-12 03:28:15 +01:00
Michael Niedermayer
12aab852c5 Merge remote-tracking branch 'cus/stable'
* cus/stable:
  ffplay: signal the frame queue before closing audio

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-12 01:05:10 +01:00
Vignesh Venkatasubramanian
597d826123 lavf/webmdashenc: Representation IDs should be unique.
According to the DASH spec, Representation IDs should be unique
across all adaptation sets. Fixing that and updating the fate
reference file to reflect this change.

Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-12 00:21:37 +01:00
Michael Niedermayer
dadc1f5ee9 Merge commit 'c9c7d59b7d26f0328d612995dd9256337ae1cbfb'
* commit 'c9c7d59b7d26f0328d612995dd9256337ae1cbfb':
  tiff: Use av_mallocz_array

Conflicts:
	libavcodec/tiffenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-12 00:08:06 +01:00
Michael Niedermayer
1e16492b98 Merge commit 'c6074a30ba3b5fb4319ee6ee599656d58548cdc8'
* commit 'c6074a30ba3b5fb4319ee6ee599656d58548cdc8':
  opt: Fix the documentation mentioning av_set_string3

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-11 23:54:52 +01:00
Michael Niedermayer
940f5c08e5 Merge commit '1b667269062eb6aec0b8726393ea91b7f7f57fde'
* commit '1b667269062eb6aec0b8726393ea91b7f7f57fde':
  h264_parser: don't stop on SPS_EXT in split

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-11 23:21:12 +01:00
Michael Niedermayer
69b2d43d6a Merge commit '4cb9f1a77432de6f368df69bebbc082368a88c86'
* commit '4cb9f1a77432de6f368df69bebbc082368a88c86':
  h264_cabac: fix one fill_rectangle() indentation level

See: 4260ed462b
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-11 23:18:39 +01:00
Michael Niedermayer
70cbb47360 Merge commit '60b055133485891405722bc9722e2c74fc9764b8'
* commit '60b055133485891405722bc9722e2c74fc9764b8':
  png_parser: fix size of chunk_lenght

Conflicts:
	libavcodec/png_parser.c

See: 2ee6dca3b8
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-11 23:16:50 +01:00
Michael Niedermayer
287eb69973 Merge commit '443502aed8b814d883825e52e91e4f018955aa66'
* commit '443502aed8b814d883825e52e91e4f018955aa66':
  dvbsubdec: move shared codepath

Conflicts:
	libavcodec/dvbsubdec.c

The merged code is ignored and the factorization redone with
the code that is in FFmpeg.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-11 23:08:55 +01:00
Marton Balint
eaf4ab9802 ffplay: signal the frame queue before closing audio
Fixed regression caused by 631ac655c0 when ffplay
does not quit if the audio thread is blocked.

Signed-off-by: Marton Balint <cus@passwd.hu>
2014-11-11 23:02:00 +01:00
Michael Niedermayer
e0c36f5825 avcodec/dvbsubdec: Fix 8bit non_mod case
Untested, i failed to find a sample which triggers this case

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-11 22:57:01 +01:00
Michael Niedermayer
2813dabdd4 avcodec/dvbsubdec: use av_freep() for saftey
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-11 22:20:20 +01:00
Michael Niedermayer
4809ac75fc Merge commit '2383323661f3b8342b2c4d356fcfe8c5d1b045f8'
* commit '2383323661f3b8342b2c4d356fcfe8c5d1b045f8':
  dvbsubdec: improve error checking

Conflicts:
	libavcodec/dvbsubdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-11 22:19:54 +01:00
Michael Niedermayer
6229f7823e avcodec/dvbsubdec: Add return code to save_subtitle_set()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-11 22:15:14 +01:00
Michael Niedermayer
db36b6e2ac Merge commit '1bdd21d97528d870fbb4388e837abaf390f2f7d7'
* commit '1bdd21d97528d870fbb4388e837abaf390f2f7d7':
  dvbsubdec: add missing break

See: 8b973d4937
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-11 22:05:38 +01:00
Michael Niedermayer
261d2eaa7f Merge commit 'a6defd1f5b1bffcea7aa00ff379a6602cdaf2d05'
* commit 'a6defd1f5b1bffcea7aa00ff379a6602cdaf2d05':
  hevc_cabac: decrease CABAC_MAX_BIN

See: 8120668351
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-11 22:03:51 +01:00
Michael Niedermayer
4dd85093f1 Merge commit '9e9be5a20c0b36dce1cae11f5f5957886231a764'
* commit '9e9be5a20c0b36dce1cae11f5f5957886231a764':
  hevc_mvs: prevent unitialized use

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-11 21:57:41 +01:00
Lukasz Marek
db6be5416c fate: add opt-test 2014-11-11 21:52:26 +01:00
Lukasz Marek
b54effba4f lavu/opt: update tests
In general this commit prepares opt tests to be added to fate.

The commit set some non-zero defaults for test options.
It allows to check if defaults are really set.

Added printing of default values.

Added more cases for testing av_set_options_string

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-11 21:52:26 +01:00
Lukasz Marek
4efc79649b lavu/opt: add support for binary defaults
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-11 21:52:26 +01:00
Lukasz Marek
bb60142f56 lavu/opt: check for NULL before parsing
set_string_binary crashes when called with val==NULL

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-11 21:52:26 +01:00
Michael Niedermayer
7edb5eec4f Merge commit '0e1ebfebc8326069732795698a82f3fea0742a54'
* commit '0e1ebfebc8326069732795698a82f3fea0742a54':
  4xm: drop unnecessary check

Conflicts:
	libavcodec/4xm.c

The check is currently redundant, it is for saftey left in place though

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-11 21:38:55 +01:00
Michael Niedermayer
76bd8e16af Merge commit '7c61e4b1a0f9e9f5b7bc08879e9e101eb90b19ea'
* commit '7c61e4b1a0f9e9f5b7bc08879e9e101eb90b19ea':
  hpeldsp: Increase put_no_rnd_pixels_tab[][] size

See: 1e41b8cd07
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-11 21:36:15 +01:00
Michael Niedermayer
8d6b51b182 Merge commit 'db71c4926d948717ce3b74253eb385dc43dcb14d'
* commit 'db71c4926d948717ce3b74253eb385dc43dcb14d':
  mjpegenc: fix argument size in encode_mb

Conflicts:
	libavcodec/mjpegenc.c
	libavcodec/mjpegenc.h

See: 256f530603
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-11 21:34:45 +01:00
Michael Niedermayer
d312769166 Merge commit 'f349f4b5502c94943c30001b8a4d75daded3281c'
* commit 'f349f4b5502c94943c30001b8a4d75daded3281c':
  mpegvideo: fix size of array

See: 9f02d4ed0f
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-11 21:26:48 +01:00
Michael Niedermayer
9311026ec7 Merge commit '898e9a24ef13d8c56b4abf4ee0af09cdb0343e2d'
* commit '898e9a24ef13d8c56b4abf4ee0af09cdb0343e2d':
  mpegvideo: check mpv return value

Conflicts:
	libavcodec/mpegvideo.c

See: f4d73f0fb5
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-11 21:22:09 +01:00
Michael Niedermayer
aeb1621d1f Merge commit 'fe27aeaeab07142b1acd2690c64ee6973bdd7eba'
* commit 'fe27aeaeab07142b1acd2690c64ee6973bdd7eba':
  mpeg12enc: increase declared size of block function argument

See: 2cf514354b
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-11 21:16:00 +01:00
Michael Niedermayer
81e3f819bd Merge commit '52f954da7594c31ad94c9bcb54290145b59b27f5'
* commit '52f954da7594c31ad94c9bcb54290145b59b27f5':
  libavcodec: Unconditionally build xiph.o

Conflicts:
	libavcodec/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-11 20:58:33 +01:00
Marvin Scholz
2c0bf76bb3 MAINTAINERS: Add myself as maintainer for Icecast protocol
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-11 19:32:30 +01:00
Marvin Scholz
17dc39e76b Icecast: Use 100-continue if possible for proper error handling
Using 100-continue ffmpeg will only send data if the server confirms it,
so if there is an error with auth or mounpoint, this allows that it is
properly reported to the user. Else ffmpeg sends data and just quits at
some point without an error message.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-11 14:57:46 +01:00
Marvin Scholz
5e08b54f47 Icecast: always send a content-type
use a default (audio/mpeg for historical reason) if none. Required since Icecast 2.4.1
Not using AVOption default because this breaks content-type warnings (needs to
detect if no type was set by the user)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-11 14:49:08 +01:00
Luca Barbato
c9c7d59b7d tiff: Use av_mallocz_array
CC: libav-stable@libav.org
2014-11-11 12:01:00 +01:00
Luca Barbato
c6074a30ba opt: Fix the documentation mentioning av_set_string3
It is av_opt_set now.
2014-11-11 11:49:55 +01:00
John Stebbins
1b66726906 h264_parser: don't stop on SPS_EXT in split
Add SPS_EXT, SEI, and subset SPS to codes that are skipped during split.
These codes can come before the PPS and results in incomplete extradata.
2014-11-11 11:49:55 +01:00
Michael Niedermayer
4cb9f1a774 h264_cabac: fix one fill_rectangle() indentation level
Bug-Id: CID 1087088
2014-11-11 11:49:54 +01:00
Vittorio Giovara
60b0551334 png_parser: fix size of chunk_lenght
Fixes the comparison against constant value 0x7fffffff.

CC: libav-stable@libav.org
Bug-Id: CID 1198260
2014-11-11 11:49:54 +01:00
Vittorio Giovara
443502aed8 dvbsubdec: move shared codepath
CC: libav-stable@libav.org
Bug-Id: CID 1238839
2014-11-11 11:49:54 +01:00
Vittorio Giovara
2383323661 dvbsubdec: improve error checking
Use av_mallocz_array instead of iterating and check the returned memory.
Check returned memory and cleanly exit in case of error during the loop.
Avoid a null pointer dereference for invalid data.

CC: libav-stable@libav.org
Bug-Id: CID 29575
2014-11-11 11:49:54 +01:00
Jernej Fijačko
1bdd21d975 dvbsubdec: add missing break
Fix a memory leak too.

CC: libav-stable@libav.org
Bug-Id: CID 732230
2014-11-11 11:49:54 +01:00
Michael Niedermayer
a6defd1f5b hevc_cabac: decrease CABAC_MAX_BIN
Prevents shifts with undefined behavior, as no syntax element has a valid
value greater than 1 << 31.

Bug-Id: CID 1206635
2014-11-11 11:49:54 +01:00
Vittorio Giovara
9e9be5a20c hevc_mvs: prevent unitialized use
CC: libav-stable@libav.org
Bug-Id: CID 1244202
2014-11-11 11:49:47 +01:00
Changjiang Wei
6f2068e626 avcodec/hevc.c: for big negative mvy value, should wait line 0 of ref frame due to edge extending
Reviewed-by: Mickaël Raulet <mraulet@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-11 11:45:20 +01:00
Vittorio Giovara
0e1ebfebc8 4xm: drop unnecessary check
data_size is always >= 0 in this case.

CC: libav-stable@libav.org
Bug-Id: CID 1238788
2014-11-11 11:41:49 +01:00
Michael Niedermayer
7c61e4b1a0 hpeldsp: Increase put_no_rnd_pixels_tab[][] size
CC: libav-stable@libav.org
Bug-Id: CID 991852
2014-11-11 11:41:49 +01:00
Vittorio Giovara
db71c4926d mjpegenc: fix argument size in encode_mb
CC: libav-stable@libav.org
Bug-Id: CID 1047235
2014-11-11 11:41:49 +01:00
Rong Yan
cfaa233962 libavcodec/ppc/me_cmp.c : support little endian in sse8_altivec(), hadamard8_diff8x8_altivec() and hadamard8_diff16x8_altivec()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-11 11:37:13 +01:00
Rong Yan
bb38cb14cc libavcodec/ppc/me_cmp.c : factorize little and big endian code
add marcos GET_PERM() LOAD_PIX() for POWER LE

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-11 11:34:38 +01:00
Vittorio Giovara
f349f4b550 mpegvideo: fix size of array
CC: libav-stable@libav.org
Bug-Id: CID 1238789
2014-11-11 11:26:02 +01:00
Vittorio Giovara
898e9a24ef mpegvideo: check mpv return value
CC: libav-stable@libav.org
Bug-Id: CID 1238786
2014-11-11 11:26:02 +01:00
Michael Niedermayer
fe27aeaeab mpeg12enc: increase declared size of block function argument
CC: libav-stable@libav.org
Bug-Id: CID 1047236
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-11-11 11:26:02 +01:00
Martin Storsjö
52f954da75 libavcodec: Unconditionally build xiph.o
vorbis_parser.o is built unconditionally since 5e80fb7ff, and the
unconditionally built parts of it depend on xiph.o.

This fixes builds with --disable-everything.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-11 12:01:16 +02:00
Michael Niedermayer
a83af3fc33 Merge commit 'b776113e5d4a56759615196de98efe802e95a6b6'
* commit 'b776113e5d4a56759615196de98efe802e95a6b6':
  v4l2: Unify one instance of reading/storing errno

Conflicts:
	libavdevice/v4l2.c

See: 60950adc18
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-11 10:27:03 +01:00
Martin Storsjö
b776113e5d v4l2: Unify one instance of reading/storing errno
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-11 10:07:20 +02:00
Michael Niedermayer
48efe9ec86 avcodec/utvideodec: Fix undefined behavior in shift
Fixes: asan_heap-oob_2573085_3783_utvideo_rgba_median.avi
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-11 03:35:57 +01:00
Michael Niedermayer
35dcc8a040 avcodec/lagarith: fix integer overflow
Fixes: asan_heap-oob_1bf48fa_2513_lag-yuy2.avi
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-11 03:19:49 +01:00
Carl Eugen Hoyos
685f7227dc tests/Makefile: New try to fix fate-ffprobe with --target-path. 2014-11-11 01:48:28 +01:00
Lukasz Marek
758a66dc16 ffserver_config: drop requirement video size being multiple of 16
Such strong requirement constraint doesn't allow to use 360p.
Changed to warning when video size is not being multiple of 2.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-11 01:04:59 +01:00
Michael Niedermayer
5dcb99033d avcodec/wmaprodec: Fix integer overflow in sfb_offsets initialization
Fixes out of array read
Fixes: asan_heap-oob_2aec5b0_1828_classical_22_16_2_16000_v3c_0_exclusive_0_29.wma
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-10 23:09:39 +01:00
Jon Morley
8c28a39c2c options_table.h: min value for colorspace is 0 (AVCOL_SPC_RGB)
The min value for colorspace should be zero and not one since the first
valid index into the frame colorspace array is AVCOL_SPC_RGB which is 0.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-10 21:18:57 +01:00
Thilo Borgmann
48c29883fc lavd/avfoundation: Use internal av_strtok instead of std lib strtok
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-10 21:02:53 +01:00
Michael Niedermayer
7656c4c6e6 avcodec/utvideodec: fix assumtation that slice_height >= 1
Fixes out of array read
Fixes: asan_heap-oob_2573085_3783_utvideo_rgba_median.avi
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-10 19:45:36 +01:00
Michael Niedermayer
e981de81fe avcodec/lagarith: fix chroma plane width & height
Fixes out of array read
Fixes: asan_heap-oob_1bf48fa_2513_lag-yuy2.avi
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-10 17:54:50 +01:00
Stefano Sabatini
73f74f6b16 lavfi/xbr: apply misc cosmetical fixes 2014-11-10 11:55:53 +01:00
Michael Niedermayer
a602f88e2d Merge commit '28396d17ff1c1493b78d6eece484ffc27ed86d0d'
* commit '28396d17ff1c1493b78d6eece484ffc27ed86d0d':
  libfdk-aacdec: Support building with the latest version of fdk-aac

See: b44a242c3d
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-10 11:38:49 +01:00
Michael Niedermayer
a7d451c1dd Merge remote-tracking branch 'github/master'
* github/master:
  tests: Fix test name for pixfmts tests

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-10 11:25:29 +01:00
Martin Storsjö
28396d17ff libfdk-aacdec: Support building with the latest version of fdk-aac
The latest fdk-aac code drop (from android 5.0) changed the channel
layout enums (changing the value of existing enum constants), and
renamed the option for downmixing.

The failsafe comparison between ctype and FF_ARRAY_ELEMS(channel_counts)
can trigger warnings (-Wtautological-constant-out-of-range-compare)
when building with the old FDK AAC releases, where it can't be
out of range with the enum values used there.

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-10 09:43:57 +02:00
Timothy Gu
e1ee0521a6 tests: Fix test name for pixfmts tests 2014-11-09 21:37:18 -08:00
Clément Bœsch
ff9b21776b doc/filters: explicit and complete xBR documentation 2014-11-10 06:36:31 +01:00
Clément Bœsch
30466cac9d avfilter/xbr: drop yet another x2 reference 2014-11-10 06:34:11 +01:00
Clément Bœsch
937ebb8435 avfilter/xbr: fix filter description field 2014-11-10 06:32:27 +01:00
Clément Bœsch
548a5f7ef6 avfilter/xbr: fix TODO entry 2014-11-10 06:28:44 +01:00
Clément Bœsch
fc0a91e3cd avfilter/xbr: consistent use of @see 2014-11-10 06:26:45 +01:00
Clément Bœsch
ae65a84517 Changelog: explicit that xBR scaler is implemented as a filter 2014-11-10 06:24:54 +01:00
Michael Niedermayer
064a237669 avfilter/vf_xbr: Uppercase first letter of context type for consistency
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-10 03:45:00 +01:00
Arwa Arif
19d0949d31 lavfi: add xbr filter xBR
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-10 03:45:00 +01:00
Michael Niedermayer
f6a8c77afb avcodec/utils: Fix warning: comparison between enum foo and enum bar [-Wenum-compare]
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-10 02:54:24 +01:00
Michael Niedermayer
9889b29ff4 avcodec/utils: make sidedata remapping table static const
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-10 02:53:21 +01:00
Martin Storsjö
b44a242c3d libfdk-aacdec: Support building with the latest version of fdk-aac
The latest fdk-aac code drop (from android 5.0) changed the channel
layout enums (changing the value of existing enum constants), and
renamed the option for downmixing.

The failsafe comparison between ctype and FF_ARRAY_ELEMS(channel_counts)
can trigger warnings (-Wtautological-constant-out-of-range-compare)
when building with the old FDK AAC releases, where it can't be
out of range with the enum values used there.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-10 02:46:46 +01:00
Michael Niedermayer
715ccc2bc4 Merge commit '09f25533a564eab743f258d168697a11122914c4'
* commit '09f25533a564eab743f258d168697a11122914c4':
  v4l2: Preserve errno values

Conflicts:
	libavdevice/v4l2.c

See: 60950adc18
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-10 01:37:08 +01:00
Michael Niedermayer
d99653c9e4 Merge commit 'a1a259881fa7b23e2ffc0c2a43d4923fe42d0478'
* commit 'a1a259881fa7b23e2ffc0c2a43d4923fe42d0478':
  v4l2: Use av_strerror

Conflicts:
	libavdevice/v4l2.c

See: 60950adc18
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-10 01:19:24 +01:00
Michael Niedermayer
0960cc4cc6 Merge commit 'e3e317e0c015b164b6c2eb8913e393216d78de23'
* commit 'e3e317e0c015b164b6c2eb8913e393216d78de23':
  lavc: Compact the side-data passthrough

Conflicts:
	libavcodec/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-10 00:57:41 +01:00
Kieran Kunhya
b546023b93 swscale: fix yuv2yuvX_8 assembly on x86
use_mmx_vfilter check/fix by commiter
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-09 23:52:17 +01:00
Carl Eugen Hoyos
e971eef8c0 Set -scan_all_pmts 1 in ffmpeg, ffplay and ffprobe if not set by user.
Fixes ticket #3762.
2014-11-09 18:28:29 +01:00
Lukasz Marek
4e179436b6 lavu/opt: copy dict in av_opt_copy
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-09 17:56:08 +01:00
Lukasz Marek
457204ee15 lavu/opt: document av_opt_copy function 2014-11-09 17:56:08 +01:00
Lukasz Marek
db2caf0a80 lavc/options: fix shallow copy context
avcodec_copy_context leaves shallow copy of string/binary/dict options.
Double free/accessing freed memory may occur.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-09 17:56:08 +01:00
Marton Balint
86476c510e avfilter/avf_showwaves: fix off by one error in loop condition
It caused segfaults.

Signed-off-by: Marton Balint <cus@passwd.hu>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-09 16:44:10 +01:00
Marton Balint
7ba7277775 ffplay: only output null packet once on EOF
The generic decoder properly flushes the codecs with one null packet as well.

Signed-off-by: Marton Balint <cus@passwd.hu>
2014-11-09 13:48:18 +01:00
Marton Balint
cc4741888d ffplay: fix indentation after last commit
Signed-off-by: Marton Balint <cus@passwd.hu>
2014-11-09 13:48:18 +01:00
Marton Balint
631ac655c0 ffplay: implement separete audio decoder thread
Signed-off-by: Marton Balint <cus@passwd.hu>
2014-11-09 13:48:18 +01:00
Luca Barbato
09f25533a5 v4l2: Preserve errno values
av_log usually resets it.
2014-11-09 12:59:32 +01:00
Michael Niedermayer
d1970929b5 avformat/librtmp: fix swfurl
Found-by: JULIAN GARDNER <joolzg@btinternet.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-09 12:36:23 +01:00
Tristan Matthews
a1a259881f v4l2: Use av_strerror
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-11-09 12:29:59 +01:00
Luca Barbato
e3e317e0c0 lavc: Compact the side-data passthrough 2014-11-09 12:29:59 +01:00
Michael Niedermayer
55d592f7d9 avcodec/aacdec: Skip processing channel elements which have not been present
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-09 11:41:13 +01:00
Michael Niedermayer
f9fa560597 avcodec/aacenc: check input for NaN
Fixes Ticket3762

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-08 23:32:39 +01:00
Michael Niedermayer
41ad87ad8e avformat/mpegts: improve first valid PMT heuristic
This checks for audio+video instead of streams > 2
Fixes Ticket4090

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-08 21:35:20 +01:00
Michael Niedermayer
29b1af40f3 avformat/mpegts: add scan_all_pmts option
This allows selecting if the demuxer should consider all streams to be
found after the first PMT and add further streams during decoding or if it rather
should scan all that are within the analyze-duration and other limits

Fixes Ticket3762

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-08 21:35:20 +01:00
Michael Niedermayer
6f21fb7932 Revert "v4l2: setting device parameters early"
This reverts commit b1ad931233.

Fixes Ticket #3517

Conflicts:

	libavdevice/v4l2.c

Requested-by: Giorgio Vazzana <mywing81@gmail.com>
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-08 12:43:50 +01:00
Michael Niedermayer
b0ed88b4c0 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Remove fminf() emulation.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-08 12:26:55 +01:00
Michael Niedermayer
9ebfe38f38 Merge commit '9a5ac36b69ede4563e9ecd734141b12ea3280fbc'
* commit '9a5ac36b69ede4563e9ecd734141b12ea3280fbc':
  movenc: Require samples before trying to write edts

Conflicts:
	libavformat/movenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-08 11:41:29 +01:00
Carl Eugen Hoyos
4436a8f44d Remove fminf() emulation.
The emulation is unused and causes compilation trouble on systems
where fminf() is defined in <math.h> but missing from libm.
This should fix compilation on Debian powerpcspe.
2014-11-08 11:31:11 +01:00
Michael Niedermayer
4342b346d2 Merge commit '8cb7b7b461b52898765b38e3eff68c0ce88347f3'
* commit '8cb7b7b461b52898765b38e3eff68c0ce88347f3':
  movenc: Avoid leaking locally allocated data when returning on errors

Conflicts:
	libavformat/movenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-08 11:08:57 +01:00
Michael Niedermayer
0bdc5db520 Merge commit '95a449d3ce8e15522df47a80a8a4593ea5c2b1bb'
* commit '95a449d3ce8e15522df47a80a8a4593ea5c2b1bb':
  movenc: Remove an outdated comment

Conflicts:
	libavformat/movenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-08 10:57:10 +01:00
Martin Storsjö
9a5ac36b69 movenc: Require samples before trying to write edts
This avoids a potential crash if writing a fragmented psp mp4
(which probably is only a hypothetical scenario).

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-08 11:14:21 +02:00
Martin Storsjö
8cb7b7b461 movenc: Avoid leaking locally allocated data when returning on errors
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-08 11:14:08 +02:00
Martin Storsjö
95a449d3ce movenc: Remove an outdated comment
QuickTime does support files with an empty initial movie
these days.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-08 11:13:37 +02:00
Lukasz Marek
2b14593148 ffmpeg_opt: free incorrect priv_data for feed stream
new_output_stream creates a codec context with arbitraty picked codec.
Later data is updated, but priv_data are left alone.
There is a bit chance there is a mismatch between codecs.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-08 02:14:02 +01:00
Xiaohan Wang
33301f0017 Fix read-after-free in matroska_read_seek().
In matroska_read_seek(), |tracks| is assigned at the begining of the function.
However, functions like matroska_parse_cues() could reallocate the tracks so
that |tracks| can get invalidated.

This CL assigns |tracks| only before we use it so that it won't be invalidated.

BUG=427266
TEST=Test case in associated bug passes now.

Change-Id: I9c7065fe8f4311ca846076281df2282d190ed344

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-08 01:33:13 +01:00
Michael Niedermayer
c9a9a7a1fd Merge commit '9cbf70fa0e44613590b019cef1fe99aa3f3c5d9d'
* commit '9cbf70fa0e44613590b019cef1fe99aa3f3c5d9d':
  movenc: Write correct presentation timestamps in tfra

Conflicts:
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-08 01:04:04 +01:00
Carl Eugen Hoyos
e2e36a739d Fix make checkheaders for libavcodec/vorbis_parser.h. 2014-11-08 00:59:37 +01:00
Michael Niedermayer
872c0bcd3c Merge commit 'e7d20f12c5eff5570cd897f3ce3a88456024036b'
* commit 'e7d20f12c5eff5570cd897f3ce3a88456024036b':
  movenc: Remove a now redundant check

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-08 00:32:52 +01:00
Michael Niedermayer
2893d1b36d Merge commit '1d8a0c1b43e58332a3a15c67d4adc161713cade8'
* commit '1d8a0c1b43e58332a3a15c67d4adc161713cade8':
  movenc: Allow to request not to use edit lists

Conflicts:
	libavformat/movenc.c

See: 537ef8bebf
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-08 00:22:42 +01:00
Michael Niedermayer
0d71e825db Merge commit '897d5c3a4296f3da80b8699d1487328ca2de8e55'
* commit '897d5c3a4296f3da80b8699d1487328ca2de8e55':
  lavf: Print a warning if failed to avoid negative timestamps when requested

Conflicts:
	libavformat/mux.c

See: ec6a5fc6cc
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-07 23:22:10 +01:00
Michael Niedermayer
66e49ff3b9 Merge commit '1384df641994bf3d6cb51084290aa94752737bae'
* commit '1384df641994bf3d6cb51084290aa94752737bae':
  lavf: Add an option for avoiding negative timestamps

Conflicts:
	libavformat/avformat.h
	libavformat/mux.c
	libavformat/options_table.h
	libavformat/version.h

See: 3ba0dab76a
See: a89c012531
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-07 23:09:30 +01:00
Michael Niedermayer
ed736890d6 Merge commit '4981baf9b803f3c4866b2e97fdadb008c62dc7ad'
* commit '4981baf9b803f3c4866b2e97fdadb008c62dc7ad':
  avstring: Mark some character handling functions av_const

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-07 22:33:09 +01:00
James Almer
edff061fb0 x86/swr: add ff_float_to_int32_a_avx2
13797 decicycles in ff_float_to_int32_a_sse2, 32768 runs, 0 skips
8603 decicycles in ff_float_to_int32_a_avx2, 32766 runs, 2 skips

Reviewed-by: Christophe Gisquet <christophe.gisquet@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2014-11-07 15:01:35 -03:00
Michael Niedermayer
960c573cc5 avcodec/mjpegdec: support pix fmt id 0x22111111
Fixes: 4163724_300.jpg

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-07 15:37:11 +01:00
Michael Niedermayer
ddac3053cd avutil/ppc/util_altivec: add () to VEC_LD macro arguments
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-07 15:13:47 +01:00
Michael Niedermayer
1a1a98f644 avutil/ppc/util_altivec: make src pointers const, fix warnings
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-07 14:42:17 +01:00
Martin Storsjö
9cbf70fa0e movenc: Write correct presentation timestamps in tfra
Previously we wrote decoding timestamps here, while the specs
say it should be presentation timestamps.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-07 14:50:06 +02:00
Martin Storsjö
e7d20f12c5 movenc: Remove a now redundant check
When using the new first_trun flag instead of checking the track id,
we don't need to have a special case for the separate_moof flag
any longer.

This simplifies the complicated codepath ever so slightly.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-07 13:46:19 +02:00
Rong Yan
79e0255956 libavcodec/ppc/hpeldsp_altivec.c : fix ff_put_pixels16_altivec() put_no_rnd_pixels16_xy2_altivec() put_no_rnd_pixels8_xy2_altivec() avg_pixels8_altivec() avg_pixels8_xy2_altivec() put_pixels16_xy2_altivec() put_pixels8_xy2_altivec() ff_avg_pixels16_altivec() for POWER LE
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-07 12:32:03 +01:00
Martin Storsjö
1d8a0c1b43 movenc: Allow to request not to use edit lists
In this case, shift tracks to start from zero instead (potentially
stretching the first sample in tracks that start later than the
first one).

Some software does not support edit lists at all, the adobe flash
player seems to be one of these. This results in AV sync errors when
edit lists are used to adjust AV sync.

Some players, such as QuickTime, don't respect the duration for
audio packets, so if an audio track starts later than the video
track and the first audio sample gets a duration longer than the
actual amount of data in it, the result will be out of sync.

Based on patches by Michael Niedermayer.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-07 12:11:46 +02:00
Michael Niedermayer
897d5c3a42 lavf: Print a warning if failed to avoid negative timestamps when requested
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-07 12:11:46 +02:00
Michael Niedermayer
1384df6419 lavf: Add an option for avoiding negative timestamps
This is the same logic as is invoked on AVFMT_TS_NEGATIVE,
but which can be enabled manually, or can be enabled
in muxers which only need it in certain conditions.

Also allow using the same mechanism to force streams to start
at 0.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-07 12:11:35 +02:00
Henrik Gramner
4981baf9b8 avstring: Mark some character handling functions av_const
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-07 11:57:16 +02:00
Rong Yan
6a6c16cbcc libavutil/ppc/util_altivec.h : fix unaligned_load() vec_unaligned_load() add macros VEC_LD() VEC_MERGEH() VEC_MERGEL() VEC_ST() for POWER LE
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-07 10:51:35 +01:00
Michael Niedermayer
c11f731768 avformat/webpenc: preserve single image VP8X flags
Fixes Ticket4087

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-07 04:15:01 +01:00
Michael Niedermayer
b1c99f4c5f avcodec/aacdec: Add table of profile names
based on tables of aac encoders from libavcodec

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-07 03:09:50 +01:00
Michael Niedermayer
2daae445c0 avcodec/aacdec: print extension type when startcode debugging is on
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-07 03:09:50 +01:00
James Almer
b385c4c6a3 x86/swr: replace sse4 instructions in pack_6ch with sse ones
There's no benefit from using blendps here except on CPUs with AVX, where
it's faster than shufps according to Intel's documentation.
As such, rename the sse4 functions to sse/sse2 and use shufps instead.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2014-11-06 20:54:00 -03:00
Thilo Borgmann
93ab6693d8 lavd/avfoundation: Update documentation to mention audio capabilities.
Reviewed-by: Lou Logan <lou@lrcd.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-06 23:30:19 +01:00
Michael Niedermayer
c53a1507aa Merge commit '199d9f995da53fe2507821f6d96bbc692574e1a9'
* commit '199d9f995da53fe2507821f6d96bbc692574e1a9':
  mjpegdec: fix undefined shift

Conflicts:
	libavcodec/mjpegdec.c

See: b432960528
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-06 18:28:49 +01:00
Michael Niedermayer
ad0cf8e063 Merge commit 'ac4a5e3abd8a022ab32245ad527ffc37eabab8b1'
* commit 'ac4a5e3abd8a022ab32245ad527ffc37eabab8b1':
  pthreads_frame: Do not leak on failure path

See: 11679e1b90
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-06 18:17:33 +01:00
Michael Niedermayer
f663734738 Merge commit '5d29efe4b0154ce305d66fed2ac23e5842439256'
* commit '5d29efe4b0154ce305d66fed2ac23e5842439256':
  mpeg12dec: simplify context duplication

Not merged, theres no point in copying data and afterwards zeroing it
Also zeroing is not correct on its own

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-06 18:15:40 +01:00
Michael Niedermayer
98d6f0ffef Merge commit '37b3361e755361d4ff14a2973df001c0140d98d6'
* commit '37b3361e755361d4ff14a2973df001c0140d98d6':
  mpeg12enc: factor out check in encode_dc

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-06 17:28:40 +01:00
Michael Niedermayer
c96a44d0dd Merge commit '0a6664706168dc1049967bec311970d720581625'
* commit '0a6664706168dc1049967bec311970d720581625':
  mpegvideo_enc: factor out denominator and explicitly cast operands

Conflicts:
	libavcodec/mpegvideo_enc.c

See: c753b56b4d
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-06 17:21:36 +01:00
Michael Niedermayer
5241f90058 Merge commit 'e0a1d0a2b04eb5220d00fc7ce46a57cc5e3c7118'
* commit 'e0a1d0a2b04eb5220d00fc7ce46a57cc5e3c7118':
  mpegvideo_enc: rework direct mode check

Conflicts:
	libavcodec/mpegvideo_enc.c

See: ad98567198
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-06 17:14:38 +01:00
Vittorio Giovara
199d9f995d mjpegdec: fix undefined shift
Add a comment to explain the code.

CC: libav-stable@libav.org
Bug-Id: CID 1194388
2014-11-06 10:44:46 -05:00
Luca Barbato
ac4a5e3abd pthreads_frame: Do not leak on failure path
CC: libav-stable@libav.org
Bug-Id: CID 1135767
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-11-06 10:44:46 -05:00
Vittorio Giovara
5d29efe4b0 mpeg12dec: simplify context duplication
CC: libav-stable@libav.org
Bug-Id: CID 717453 / CID 717454 / CID 717915
2014-11-06 10:44:46 -05:00
Vittorio Giovara
37b3361e75 mpeg12enc: factor out check in encode_dc
Makes coverity less confused and the code more readable.

CC: libav-stable@libav.org
Bug-Id: CID 751744
2014-11-06 10:44:46 -05:00
Vittorio Giovara
0a66647061 mpegvideo_enc: factor out denominator and explicitly cast operands
CC: libav-stable@libav.org
Bug-Id: CID 608053
2014-11-06 10:44:46 -05:00
Vittorio Giovara
e0a1d0a2b0 mpegvideo_enc: rework direct mode check
Remove stray semicolon and share codepaths.

CC: libav-stable@libav.org
Bug-Id: CID 991857
2014-11-06 10:44:46 -05:00
Michael Niedermayer
d70e503ebc avfilter/af_aresample: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-06 15:58:28 +01:00
Giorgio Vazzana
be0356ca05 lavd/v4l2: use pixel format variable names consistently
We now use 'pixelformat' for V4L2_PIX_FMT_* (as they do in v4l2
documentation) and 'pix_fmt' for AVPixelFormat.

No functional change in the code.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-06 15:39:41 +01:00
Michael Niedermayer
8afaa03c53 avformat/riffenc: move MP3 LSF threshold to the midway point between the 2
No testcase available but this seems more correct

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-06 14:53:21 +01:00
Michael Niedermayer
d5999b7f28 avformat/yuv4mpegenc: Use AVFormatContext strict_std_compliance instead of AVCodecContext
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-06 14:48:50 +01:00
Michael Niedermayer
da8cb1c361 avformat/mmf: Use AVFormatContext strict_std_compliance instead of AVCodecContext
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-06 14:48:41 +01:00
Michael Niedermayer
470e116e3f avformat/flvenc: Use AVFormatContext strict_std_compliance instead of AVCodecContext
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-06 14:47:43 +01:00
Michael Niedermayer
e591608753 avcodec/xiph: make extradata argument const
Fixes "warning: passing argument 1 of avpriv_split_xiph_headers discards const qualifier from pointer target type"

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-06 14:41:38 +01:00
Michael Niedermayer
0de64082a9 Merge commit '05e59135b3539062465b5005b6d46ec0418a5fc4'
* commit '05e59135b3539062465b5005b6d46ec0418a5fc4':
  nutdec: do not set has_b_frames

Not merged, this change is not correct

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-06 14:32:43 +01:00
Michael Niedermayer
cffd2713e9 Merge commit 'acc897e6b15776ed438b88ffe330ec48f6b50e48'
* commit 'acc897e6b15776ed438b88ffe330ec48f6b50e48':
  lavc: make avpriv_flac_is_extradata_valid() private on the next bump

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-06 14:17:46 +01:00
Michael Niedermayer
94fe404c25 Merge commit 'e839de0f851535b5e19256b52f9865f0cb768a7c'
* commit 'e839de0f851535b5e19256b52f9865f0cb768a7c':
  oggenc: accept only STREAMINFO extradata

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-06 14:09:53 +01:00
Michael Niedermayer
cfef947f7f Merge commit 'c070a8751597e3aa1b443e88464da785d8966b14'
* commit 'c070a8751597e3aa1b443e88464da785d8966b14':
  lavc: make avpriv_flac_parse_streaminfo() private on the next bump

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-06 13:54:11 +01:00
Michael Niedermayer
b6a9956396 Merge commit '7784f47762d59e859b4d0f74b3e021ad9368ee2c'
* commit '7784f47762d59e859b4d0f74b3e021ad9368ee2c':
  lavf: stop using avpriv_flac_parse_streaminfo()

Conflicts:
	libavcodec/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-06 13:42:41 +01:00
Michael Niedermayer
a51eb6d34c Merge commit '56dc46a1893251e74be1ad63e54fb38d754bb1fe'
* commit '56dc46a1893251e74be1ad63e54fb38d754bb1fe':
  riffenc: do not fall back on AVCodecContext.frame_size for MP3

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-06 13:19:26 +01:00
Michael Niedermayer
042eba52a5 Merge commit '91e8d2eb1f7bf3af949008b106ec1ca037b88b0e'
* commit '91e8d2eb1f7bf3af949008b106ec1ca037b88b0e':
  lavf: use the format context strict_std_compliance instead of the codec one

Conflicts:
	libavformat/mux.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-06 13:10:01 +01:00
Michael Niedermayer
c04c43b3e4 avformat/oggparsevorbis: Check that initialization succeeded before declaring the end of headers
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-06 13:02:08 +01:00
Michael Niedermayer
4b2763cd13 avformat/oggparsevorbis: return proper error code from vorbis_header()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-06 13:01:06 +01:00
Michael Niedermayer
f74be3669d Merge commit '2f3fadfbe3c6ad52fad5c614b6067c5401227959'
* commit '2f3fadfbe3c6ad52fad5c614b6067c5401227959':
  lavc,lavf: switch to the new vorbis parse API

Conflicts:
	libavformat/oggparsevorbis.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-06 12:05:17 +01:00
Michael Niedermayer
7ffdc7bef2 avcodec/export av_vorbis_parse_frame_flags()
The other functions where changed in the previous merge

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-06 11:58:32 +01:00
Michael Niedermayer
44fa2671e0 Merge commit '5e80fb7ff226f136dbcf3fed00a2966bf8e9bd70'
* commit '5e80fb7ff226f136dbcf3fed00a2966bf8e9bd70':
  lavc: add a public API for parsing vorbis packets.

Conflicts:
	doc/APIchanges
	libavcodec/Makefile
	libavcodec/version.h
	libavcodec/vorbis_parser.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-06 11:21:47 +01:00
Michael Niedermayer
5f7887ca8d Merge commit '6896f95b2483e52e717e2c75a4fd24fcb0e14b67'
* commit '6896f95b2483e52e717e2c75a4fd24fcb0e14b67':
  vorbis_parser: add an AV prefix to VorbisParseContext

Conflicts:
	libavcodec/vorbis_parser.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-06 11:06:19 +01:00
Michael Niedermayer
a0617025dd Merge commit '8747926'
* commit '8747926':
  vorbis_parser: use a dedicated AVClass for logging

Conflicts:
	libavcodec/vorbis_parser.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-06 10:50:59 +01:00
Anton Khirnov
05e59135b3 nutdec: do not set has_b_frames
It is not supposed to be set by demuxers.
2014-11-06 09:05:37 +01:00
Anton Khirnov
acc897e6b1 lavc: make avpriv_flac_is_extradata_valid() private on the next bump 2014-11-06 09:04:56 +01:00
Anton Khirnov
e839de0f85 oggenc: accept only STREAMINFO extradata
The reasoning is the same as for
0097cbea69.
2014-11-06 09:04:32 +01:00
Anton Khirnov
c070a87515 lavc: make avpriv_flac_parse_streaminfo() private on the next bump 2014-11-06 09:04:12 +01:00
Anton Khirnov
7784f47762 lavf: stop using avpriv_flac_parse_streaminfo()
The only parameters needed by the demuxers are the sample rate and sample
count, which can be trivially extracted manually, without resorting to
an avpriv function.
2014-11-06 09:02:25 +01:00
Anton Khirnov
56dc46a189 riffenc: do not fall back on AVCodecContext.frame_size for MP3
It will not be set unless the codec context is used as the encoding
context, which is discouraged. For MP2, av_get_audio_frame_duration()
will already set the frame size properly. For MP3, set the frame size
explicitly.
2014-11-06 09:02:08 +01:00
Anton Khirnov
91e8d2eb1f lavf: use the format context strict_std_compliance instead of the codec one 2014-11-06 09:01:49 +01:00
Anton Khirnov
2f3fadfbe3 lavc,lavf: switch to the new vorbis parse API 2014-11-06 09:00:46 +01:00
Anton Khirnov
5e80fb7ff2 lavc: add a public API for parsing vorbis packets.
It is required by (at least) the ogg demuxer.

Mark the current semi-public apriv API for removal.
2014-11-06 08:51:25 +01:00
Anton Khirnov
6896f95b24 vorbis_parser: add an AV prefix to VorbisParseContext
This is done in preparation for making it public.
2014-11-06 08:47:54 +01:00
Anton Khirnov
874792641e vorbis_parser: use a dedicated AVClass for logging
Currently, the API takes an external AVCodecContext, which is used only
for extradata and logging. This change will allow to it to work without
an AVCodecContext in the following commits.
2014-11-06 08:47:21 +01:00
Michael Niedermayer
817663897e avcodec/mpegaudio_parser: fix off by 1 error in bitrate calculation
Fixes Ticket3918

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-06 00:05:22 +01:00
Nicolas George
90cdec5e26 ffmpeg: init sub2video.last_pts.
Get the heartbeat working when the video has negative timestamps.

Fix trac ticket #4062.

Signed-off-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-05 21:04:36 +01:00
Reimar Döffinger
a26d0ffa18 vdpau_mpeg4: Do not fail on unknown profile.
This is a regression, previous code did not require
users to set the profile to use VDPAU.
In addition, ASP is a superset of SP, so there is not
even a good reason to require it.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-11-05 20:07:31 +01:00
Andrey Utkin
4fd7067987 v4l2: support MPEG4 compressed streams
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-05 19:15:14 +01:00
Michael Niedermayer
a604de4fd8 avutil/time_internal: do not attempt to override *time_r() macros
Fixes build on somewhat odd setups with mingw
Fixes Ticket4075

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-05 18:44:15 +01:00
Kevin Mitchell
fdf22f973d avfilter/vf_idet: add a repeated field detection
This can be useful for determining telecine.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-05 12:10:42 +01:00
Thomas Volkert
07c3a4f693 avformat/udp: UDP-Lite (RFC 3828) support added
(This fixes ticket #1501)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-05 11:16:05 +01:00
Michael Niedermayer
513d57cc4d Merge commit 'a490391157dcf4dc6b65352ec3eea2781dd0a404'
* commit 'a490391157dcf4dc6b65352ec3eea2781dd0a404':
  rtmpproto: Ignore errors from the getStreamLength method

Conflicts:
	libavformat/rtmpproto.c

See: 09711545f5
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-05 10:17:07 +01:00
Martin Storsjö
a490391157 rtmpproto: Ignore errors from the getStreamLength method
It is never an error if this method failed. If rt->live was
explicitly set to 0 (known to be a recorded file), print it
as a warning, otherwise print it as a debug message.

Based on a patch by Michael Niedermayer.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-05 09:18:22 +02:00
Lou Logan
37425fcb04 doc: clarify -frames options behavior
Replace "frames to record" with "frames to output". The "to record"
makes it seem like an input option, or that it would capture the frames
instead of outputting them.

Reviewed-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Lou Logan <lou@lrcd.com>
2014-11-04 16:25:47 -09:00
Michael Niedermayer
43fee7ad92 Merge commit '4ff670d99bebd97429322719089363d83143477d'
* commit '4ff670d99bebd97429322719089363d83143477d':
  hwaccel: Deinitialize hardware acceleration early enough

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-05 02:10:46 +01:00
Michael Niedermayer
77f1199e8f avcodec/mpeg12dec: do not trust AVCodecContext input dimensions
Fixes initial wtv dimensions
Fixes Ticket4070
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-05 02:00:22 +01:00
Carl Eugen Hoyos
f2ffaae9ac Use -fno-optimize-sibling-calls on parisc also for gcc 4.9.
Fixes fate on hppa.
Found-by: Andreas Cadhalpun.
2014-11-05 01:35:48 +01:00
Michael Niedermayer
ae4bb6c488 Merge commit '77ab341c0c6cdf2bd437bb48d429e797d1e60da2'
* commit '77ab341c0c6cdf2bd437bb48d429e797d1e60da2':
  aacdec: add default case in channel layout

Conflicts:
	libavcodec/aacdec.c

Note, the default case is currently unreachable

See: a48b890392
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-04 22:35:41 +01:00
Rémi Denis-Courmont
4ff670d99b hwaccel: Deinitialize hardware acceleration early enough
The application will destroy the underlying hardware handles when
get_format() gets called again. Also this ensures the
deinitialization takes place if the get_format callback returns an
error.

Regression from 1c80c9d7ef.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-11-04 22:15:17 +01:00
Michael Niedermayer
df82125acb Merge commit '930ffd46e1e742674aa7cc1c2450020c63b5015b'
* commit '930ffd46e1e742674aa7cc1c2450020c63b5015b':
  aacsbr: change order of operation to prevent out of array read

Conflicts:
	libavcodec/aacsbr.c

See: c2340831b8
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-04 22:04:04 +01:00
Michael Niedermayer
ce63cb4ff2 Merge commit '9f6f407463ff8b7681befd04b6655bb7c6d9b3e1'
* commit '9f6f407463ff8b7681befd04b6655bb7c6d9b3e1':
  aacsbr: treat 1-d arrays as such

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-04 21:53:21 +01:00
Michael Niedermayer
d9103e848d Merge commit 'f52b8717617e94da90a45afdfff23e94f9ecf35c'
* commit 'f52b8717617e94da90a45afdfff23e94f9ecf35c':
  celp_filters: don't use filter lenght as loop bound

See: 3f01042142
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-04 21:39:06 +01:00
Michael Niedermayer
e1bcbca998 Merge commit 'c442190a6bfd8036f6c32b78e1e96ff3b830f8f0'
* commit 'c442190a6bfd8036f6c32b78e1e96ff3b830f8f0':
  error_resilience: initialize prev_* variables

Note, these variables are not used without initialization prior
to the change

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-04 21:28:48 +01:00
Michael Niedermayer
567ea2d64c Merge commit '240b22afe14ef477da1b439b9ed7bca6cc7d6c26'
* commit '240b22afe14ef477da1b439b9ed7bca6cc7d6c26':
  motion_est: remove dead code

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-04 21:10:02 +01:00
Michael Niedermayer
a28313b09e Merge commit '351d0f8b7a6ecce411ae75fb3511573c34317218'
* commit '351d0f8b7a6ecce411ae75fb3511573c34317218':
  get_bits: remove unused assignment

Conflicts:
	libavcodec/get_bits.h

See: ea6178fff8
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-04 21:03:06 +01:00
Michael Niedermayer
66b9e60af0 ffmpeg_opt: store canvas size in decoder context
Fixes canvas size
Fixes Ticket4074

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-04 20:55:15 +01:00
Michael Niedermayer
786594184a avformat/mpegts: fix iteration count in add_pid_to_pmt()
Fixes accessing uninitialized memory

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-04 19:31:59 +01:00
Michael Niedermayer
09024fe681 avfilter/af_aresample: Limit data per inserted packet
This avoids creating unwieldy large packets, which is allowed but
does not seem to be a good idea

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-04 17:17:24 +01:00
Michael Niedermayer
97da68172a avfilter/af_aresample: split flushing code out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-04 17:17:23 +01:00
Michael Niedermayer
e4f8a973aa swresample: Fix swr_drop_output so it does not flush the buffers
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-04 17:17:23 +01:00
Vittorio Giovara
77ab341c0c aacdec: add default case in channel layout
Bug-Id: CID 732291
2014-11-04 09:28:45 -05:00
Michael Niedermayer
930ffd46e1 aacsbr: change order of operation to prevent out of array read
CC: libav-stable@libav.org
Bug-Id: CID 732250
2014-11-04 09:28:45 -05:00
Benoit Fouet
dc351e1381 id3v2: prefer TDRC for date over TDRL.
TDRL is what we used as a replacement of TYER, and, according to
http://id3.org/id3v2.4.0-changes :
    TYER - Year
        This frame is replaced by the TDRC frame, 'Recording time'
        [F:4.2.5].
So change TDRL usages to TDRC.

Fixes ticket #3694

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-04 14:11:53 +01:00
Michael Niedermayer
3dae05f4f7 avformat/mpegts: also print PMT version in av_dlog()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-04 01:18:39 +01:00
Michael Niedermayer
09711545f5 avformat/rtmpproto: Do not fail when the length cannot be determined for live streams
Fixes Ticket4071

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-04 00:35:32 +01:00
Michael Niedermayer
db0471c40f avformat/mpegts: Continue parsing PMTs during duration estimation
This way if we by chance run into a valid PMT we have a more complete
set of streams, also do not reset streams in case we run into a worse
PMT

Fixes Ticket4046

alternatively Ticket4046 could be closed as invalid or wontfix as it contains
some PMTs which lack the 2 subtitle streams

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-03 22:55:07 +01:00
Michael Niedermayer
a7f25979dd avformat/utils: Leave skip_clear enabled until after estimate_timings()
Should make no difference but will be needed for subsequent commits

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-03 22:53:48 +01:00
Michael Niedermayer
a6593f7cc6 avformat/mpegts: Do not add pid if its already there with add_pid_to_pmt()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-03 22:25:55 +01:00
Michael Niedermayer
716674b151 avcodec/libwebpenc: add quality option
previously quality could only be set through qscale/global_quality but the scale
was inverted. Using a separate option avoids the confusion from qscale working
backward.

Reviewed-by: Benoit Fouet <benoit.fouet@free.fr>
Reviewed-by: Clément Bœsch <u@pkh.me>
Reviewed-by: Nicolas George <george@nsup.org>
Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-03 19:10:22 +01:00
Michael Niedermayer
bd0f866731 doc: Better documentation for the bitexact flag
Reviewed-by: Benoit Fouet <benoit.fouet@free.fr>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-03 18:54:51 +01:00
Vittorio Giovara
9f6f407463 aacsbr: treat 1-d arrays as such
CC: libav-stable@libav.org
Bug-Id: CID 1238802 / CID 1238793 / CID 1238785
        CID 1238808 / CID 1238809
2014-11-03 12:46:18 -05:00
Vittorio Giovara
f52b871761 celp_filters: don't use filter lenght as loop bound
CC: libav-stable@libav.org
Bug-Id: CID 717906 / CID 717907 / CID 717916 /
        CID 717917 / CID 717919 / CID 732259
2014-11-03 12:45:42 -05:00
Vittorio Giovara
c442190a6b error_resilience: initialize prev_* variables
CC: libav-stable@libav.org
Bug-Id: CID 732293 / CID 732294
2014-11-03 12:45:09 -05:00
Michael Niedermayer
898635ad9e avfilter/vf_idet: use exp2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-03 17:22:33 +01:00
Michael Niedermayer
4bbd8f05f7 avfilter/vf_idet: use av_rescale()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-03 17:22:16 +01:00
Michael Niedermayer
5d590d87b3 avfilter/vf_idet: fix rounding of av_dict_set_fxp()
fixes the remainder overflowing beyond .999

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-03 17:14:29 +01:00
Kevin Mitchell
fe6f5f2908 avfilter/vf_idet: add a "half_life" option for statistics
This can be useful for videos in which the interlacing pattern changes.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-03 16:31:26 +01:00
Vittorio Giovara
240b22afe1 motion_est: remove dead code
mb_type is initialized to 0 and never updated before the check.

Bug-Id: CID 1238782
2014-11-03 10:15:53 -05:00
Vittorio Giovara
351d0f8b7a get_bits: remove unused assignment
Bug-Id: CID 1238816
2014-11-03 10:15:07 -05:00
Benoit Fouet
50138ea4f7 configure: add xcb cflags and extralibs to cflags and extralibs.
Replace xcb_event by xcb, as the former is no more used and the latter
is needed on configurations where only xcb is available, and not
libxcb_shm and/or libxcb_xfixes.

Signed-off-by: Benoit Fouet <benoit.fouet@free.fr>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-03 13:31:09 +01:00
Michael Niedermayer
206c98f303 avcodec/options_table fix min of audio channels and sample rate
Found-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-03 13:21:07 +01:00
Michael Niedermayer
ea0b9218f4 Merge commit '2f221b6a9365aa400061e16266f2d1242f7169f8'
* commit '2f221b6a9365aa400061e16266f2d1242f7169f8':
  movenc: Define the flag bits using shifts instead of as decimal numbers

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-03 11:52:55 +01:00
Martin Storsjö
2f221b6a93 movenc: Define the flag bits using shifts instead of as decimal numbers
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-03 11:43:58 +02:00
Stefano Sabatini
f0158e6f0c lavf/flvenc: fail in case the muxed packet is too big
Avoid the creation of files which cannot be successfully decoded by
ffmpeg, for example generated with:
ffmpeg -f lavfi -i sine -af "aselect='not(between(t,100,500))',aresample=min_comp=0.001:min_hard_comp=0.100000" -acodec pcm_s16le -t 1000 -y out_audio.flv
2014-11-03 09:31:48 +01:00
Clément Bœsch
4f4de7f49e README: fix 2 typo in the doc/examples sentence 2014-11-03 09:21:45 +01:00
Reynaldo H. Verdejo Pinochet
33aacb7750 ffserver_config: add fixme on buffer_aggressivity/eq deprecation
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2014-11-02 22:10:54 -03:00
Reynaldo H. Verdejo Pinochet
17cc78505c ffserver_config: simplify some if true conditions
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2014-11-02 22:05:54 -03:00
Reynaldo H. Verdejo Pinochet
200270cc8b ffserver_config: fix line lengths
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2014-11-02 21:54:23 -03:00
Carl Eugen Hoyos
d457478fb0 Silence warnings for fic files with zero-sized cursors.
Fixes ticket #4072.
2014-11-03 00:43:08 +01:00
Carl Eugen Hoyos
e6b7246a68 lavf/movenc: Write G.726 bitrate to make the files decodable.
Fixes ticket #4069.
2014-11-03 00:38:13 +01:00
Lukasz Marek
9c097f1cfc ffserver_config: improve AVOption handing
AVOption are checked right after found in config file.
It allows to report exact line in config file.

Options provided more than once are threated as errors.

It also fixes flag options handing.
Flags may occur more than once in config file.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-03 00:32:25 +01:00
Lukasz Marek
2121e3e130 ffserver_config: improve error handling
Replace atoi with more advanced parsing routine.
Set maximum port value to 65535 (not 65536).
Other checks.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-02 23:44:22 +01:00
Michael Niedermayer
63e62cfbe2 avformat/img2enc: Use localtime_r() for thread saftey
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-02 20:09:16 +01:00
Michael Niedermayer
5ece4f8b73 avformat/sbgdec: Use localtime_r() for thread saftey
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-02 20:08:59 +01:00
Michael Niedermayer
76886589ee avformat/wavenc: Use localtime_r() for thread saftey
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-02 20:08:12 +01:00
Michael Niedermayer
32a2876b12 avformat/segment: use time_internal.h, simplify code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-02 20:07:34 +01:00
Michael Niedermayer
bab09864b4 avcodec/jacosubdec: use time_internal.h, simplify code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-02 20:06:40 +01:00
Michael Niedermayer
013c3eb05c avfilter/vf_drawtext: use gm_time_r() for thread saftey
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-02 19:20:26 +01:00
Michael Niedermayer
a52cb42ba6 avformat/matroskadec: use gmtime_r() for thread saftey
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-02 19:19:07 +01:00
Michael Niedermayer
70b7cf9c39 avformat/webpenc: removed unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-02 11:43:48 +01:00
Michael Niedermayer
547fce9585 avcodec/h264_slice: Clear table pointers to avoid stale pointers
Might fix Ticket3889

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-02 01:56:38 +01:00
Michael Niedermayer
f5abd12c4d avformat/img2enc: remove webp extension as we have a dedicated webp muxer
Found-by: jamrial
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-02 01:00:57 +01:00
Lukasz Marek
e9899ca3dd ffserver_config: dont pass pointer to enum as pointer to int
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-02 00:01:29 +01:00
Michael Niedermayer
5aaf5df06d avcodec/libwebpenc: support "P" frames in webp animations
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-01 20:10:52 +01:00
Michael Niedermayer
6d64a14e6d avformat: add webp muxer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-01 20:10:52 +01:00
Rodger Combs
ae437c7ce7 avformat/assenc: Add ignore_gaps option
Signed-off-by: Clément Bœsch <u@pkh.me>
2014-11-01 19:38:48 +01:00
Kevin Mitchell
ae6118de19 avfilter/idet: add current frame classification to metadata
Fixes ticket 3832

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-01 18:04:35 +01:00
Kevin Mitchell
2847843868 avfilter/idet: add metadata to "current" frame instead of "next" frame
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-01 18:03:38 +01:00
Thomas Volkert
8d9277c3c0 avformat/rtpdec_h261: code aligned to the HEVC code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-01 16:33:52 +01:00
Reimar Döffinger
46353759cb mpeg4vdpau: Fix priv data size.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-11-01 15:43:52 +01:00
Michael Niedermayer
e5054c8eed avcodec/pthread_slice: Use av_freep() to avoid leaving stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-01 11:36:41 +01:00
Michael Niedermayer
842745fe17 avcodec/pthread_frame: Simplify code by using av_reallocp_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-01 11:36:41 +01:00
Michael Niedermayer
cc769931ab avcodec/parser: use av_freep() to avoid leaving stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-01 11:36:41 +01:00
Lukasz Marek
d2d97b34a0 ffserver_config: fix compilation warning
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-01 02:11:52 +01:00
Lukasz Marek
ed1f8915da ffserver_config: postpone codec context creation
So far AVCodecContext was created without codec specified.
This causes internal data to not be initialized to defaults.

This commit postpone context creation until all information is gathered.

Partially fixes #1275
2014-11-01 01:04:12 +01:00
Lukasz Marek
fe72622819 lavd/alsa: implement get_device_list callbacks
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-01 01:02:02 +01:00
Michael Niedermayer
7f7facdeda doc/formats: document libavformats bitexact flag
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-31 23:28:45 +01:00
Michael Niedermayer
d5633dfc28 doc: document -dump_separator
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-31 23:14:18 +01:00
Michael Niedermayer
0c6c5d7bcb avcodec/mjpegenc: use av_freep(), avoid leaving stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-31 13:36:19 +01:00
Michael Niedermayer
d15a94ba20 configure: fix escaping in xcb cflags / libs
Fixes build with open64

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-31 11:45:21 +01:00
Michael Niedermayer
dd2f868644 Merge commit 'aae6b3b918b4133b8cc2d1631196c1d406d0351a'
* commit 'aae6b3b918b4133b8cc2d1631196c1d406d0351a':
  movenc: Don't write any iso brands in ismv files

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-31 02:52:43 +01:00
Michael Niedermayer
77eff7a58a Merge commit 'c55d1d382cd41345a79782ace41f9b43f45dca9a'
* commit 'c55d1d382cd41345a79782ace41f9b43f45dca9a':
  movenc: Don't write any tfdt atom for ismv files

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-31 02:37:49 +01:00
Michael Niedermayer
61f1c96ef1 Merge commit '00c67fe1d0bc7c2ce49daac9c80ea39d5a663b73'
* commit '00c67fe1d0bc7c2ce49daac9c80ea39d5a663b73':
  movenc: Write a 0 duration in mdhd and tkhd for an empty initial moov

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-31 02:23:33 +01:00
Michael Niedermayer
8065a0cdbe Merge commit 'cf589faa5b7aed3bb38e08dcd00bd951e69686d1'
* commit 'cf589faa5b7aed3bb38e08dcd00bd951e69686d1':
  movenc: Add a flag for using default-base-is-moof in tfhd atoms

Conflicts:
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-31 01:46:25 +01:00
Michael Niedermayer
f76cd09d46 doc: Add documentation for the whitelist options
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-31 01:36:47 +01:00
Michael Niedermayer
fc8d59fa6f avcodec/h264_parser: Use av_freep() to avoid leaving stale pointers
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-30 23:58:52 +01:00
Michael Niedermayer
2a26b22a17 avcodec/cngdec: Use av_freep() to avoid leaving stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-30 23:36:51 +01:00
Michael Niedermayer
a1cb8779e2 avcodec/crystalhd: use av_freep() to avoid stale pointers
this leaves some av_free() where the pointer is overwritten
shortly later

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-30 23:35:32 +01:00
Michael Niedermayer
adfc3b81b1 avcodec/dvbsubdec: use av_freep() to avoid leaving stale pointers
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-30 23:29:33 +01:00
Michael Niedermayer
25a360286d avcodec/dvbsubdec: merge declaration and init
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-30 23:28:15 +01:00
Martin Storsjö
aae6b3b918 movenc: Don't write any iso brands in ismv files
We deviate slightly from the iso specs for these files.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-30 23:17:00 +02:00
Martin Storsjö
c55d1d382c movenc: Don't write any tfdt atom for ismv files
The tfdt atom shouldn't be needed in those cases, we already
write tfxd atoms for ismv anyway, which is roughly equivalent.

This avoids having to declare the iso6 brand for ismv files.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-30 23:16:56 +02:00
Martin Storsjö
00c67fe1d0 movenc: Write a 0 duration in mdhd and tkhd for an empty initial moov
ISO/IEC 14496-12:2012/Cor 1:2013 is explicit about how this should be
handled. All zeros doesn't mean that the full file has got a zero
duration, only that the track samples described within the initial moov
have got zero duration. An all ones duration means an indeterminate
duration.

Keep writing a duration consisting of all ones for the ISM mode -
older windows media player versions won't play a file if this is
zero. (Newer windows media player versions play either version fine.)

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-30 23:16:50 +02:00
Michael Niedermayer
47f1596ece avcodec/dxtory: use unaligned copy for unaligned addresses
Fixes undefined behavior
Fixes: asan_heap-oob_112c6b3_13_012.avi
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-30 19:43:03 +01:00
Michael Niedermayer
e91ba2efa9 avcodec/svq1dec: zero terminate embedded message before printing
Fixes out of array access
Fixes: asan_stack-oob_49b1e5_10_009.mov
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-30 18:23:09 +01:00
Michael Niedermayer
10e32618ac avcodec/cook: check that the subpacket sizes fit in block_align
Fixes out of array read
Fixes: asan_heap-oob_fb5c50_19_018.rmvb
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-30 16:54:17 +01:00
Michael Niedermayer
db442c8736 avdevice/xcbgrab: Fix offset support
Found-by: carl
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-30 14:34:07 +01:00
Tobias Rapp
0c9f0da0f7 ffprobe.xsd: add packets_and_frames element definition
This allows validation of ffprobe XML output if -show_packets and
-show_frames are both set.

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2014-10-30 12:34:49 +01:00
Carl Eugen Hoyos
792f0f2045 Fix compilation of xcbgrab if xcb/shape.h is not available.
Old versions of libxcb do not provide xcb_shape_rectangles().
The issue can be fixed differently but this small change fixes
some fate platforms and a user reported compilation problem.

Reported and tested by trac user kevmitch.
Fixes ticket #4067.
2014-10-30 10:22:34 +01:00
Carl Eugen Hoyos
8c0ae9015a Fix xcbgrab build if shm is not available. 2014-10-30 10:05:45 +01:00
Carl Eugen Hoyos
0e89d006d8 Fix disabling libxcb-shm and libxcb-xfixes. 2014-10-30 10:03:45 +01:00
Michael Niedermayer
7f24e1e1a2 Merge commit '600d5ee6b12bad144756b0772319bb04796bc528'
* commit '600d5ee6b12bad144756b0772319bb04796bc528':
  movenc: Signal iso6 in compatible_brands when using tfdt

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-30 02:53:52 +01:00
Michael Niedermayer
be787bccc0 Merge commit 'a9911a1b2df37ca808e06dc30627215f4ec9a9e4'
* commit 'a9911a1b2df37ca808e06dc30627215f4ec9a9e4':
  doc: Document the omit_tfhd_offset flag to the mp4 muxer

Conflicts:
	doc/muxers.texi

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-30 02:45:36 +01:00
Michael Niedermayer
ad600e10da Merge commit '1e0b81abe86dc09dd34d60d57f92de5f12d65818'
* commit '1e0b81abe86dc09dd34d60d57f92de5f12d65818':
  movenc: Use a local variable consistently

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-30 02:37:03 +01:00
Michael Niedermayer
39cce77faf Merge commit 'b2b79eca6fae2466a53c5daa163a37e2474364fc'
* commit 'b2b79eca6fae2466a53c5daa163a37e2474364fc':
  movenc: Don't check the custom IO flag when using faststart

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-30 02:25:02 +01:00
Michael Niedermayer
647405d111 Merge commit '573b1de2d7f1db71030f91ecdded7d0bc071f6b6'
* commit '573b1de2d7f1db71030f91ecdded7d0bc071f6b6':
  movenc: Don't use track_id to decide which track is the first in a moof

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-30 02:17:54 +01:00
Michael Niedermayer
32e666c354 avcodec/g2meet: check tile dimensions to avoid integer overflow
Fixes out of array access
Fixes: asan_heap-oob_12a55d3_30_029.wmv
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-30 01:22:32 +01:00
Carl Eugen Hoyos
f05855414e lavc/utils: Make pix_fmt desc pointer const.
Fixes an "initialization discards qualifiers from pointer target type" warning.
2014-10-30 00:27:04 +01:00
Carl Eugen Hoyos
23ec8db8a0 Autodetect libxcb. 2014-10-30 00:26:27 +01:00
Thomas Mundt
d1b5ad3967 mxfenc: fix indentation after last commit
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-29 23:49:13 +01:00
Michael Niedermayer
a8605be30f Merge commit '84bf64d3598c98a748e609195358ea04b0cfd140'
* commit '84bf64d3598c98a748e609195358ea04b0cfd140':
  bethsoftvid: simplify return handling

See: 5ee6527c43
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-29 22:47:11 +01:00
Michael Niedermayer
a3b1e42ec4 Merge commit 'e9ba3098319f78c91470c05da988d865491852c5'
* commit 'e9ba3098319f78c91470c05da988d865491852c5':
  assdec: check av_new_packet return value

Conflicts:
	libavformat/assdec.c

See: 7c9f9685ae
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-29 22:09:56 +01:00
Martin Storsjö
cf589faa5b movenc: Add a flag for using default-base-is-moof in tfhd atoms
Similarly to the omit_tfhd_offset flag added in e7bf085b, this
avoids writing absolute byte positions to the file, making them
more easily streamable.

This is a new feature from 14496-12:2012, so application support
isn't necessarily too widespread yet (support for it in libav was
added in 20f95f21f in July 2014).

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-29 23:04:04 +02:00
Martin Storsjö
600d5ee6b1 movenc: Signal iso6 in compatible_brands when using tfdt
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-29 23:03:52 +02:00
Martin Storsjö
a9911a1b2d doc: Document the omit_tfhd_offset flag to the mp4 muxer
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-29 23:03:45 +02:00
Martin Storsjö
1e0b81abe8 movenc: Use a local variable consistently
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-29 23:03:45 +02:00
Martin Storsjö
b2b79eca6f movenc: Don't check the custom IO flag when using faststart
The custom IO flag actually never is set for muxers, only for
demuxers, so the check was pointless (unless a user intentionally
would set the flag to signal using custom IO).

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-29 23:02:02 +02:00
Martin Storsjö
573b1de2d7 movenc: Don't use track_id to decide which track is the first in a moof
If one track doesn't have any samples within a moof, no traf/trun
is written for it. When the omit_tfhd_offset flag is set, none
of the tfhd atoms have any base_data_offset set, and the implicit
offset (end of previous track fragment data, or start of the moof
for the first trun) is used.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-29 23:01:27 +02:00
Michael Niedermayer
66b2a3fa31 Merge commit '2cd28693a59050717cb7da6cb229e606b1dee356'
* commit '2cd28693a59050717cb7da6cb229e606b1dee356':
  jack: Use av_strerror

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-29 21:59:30 +01:00
Michael Niedermayer
7729f43312 avdevice/fbdev_dec: use errno instead of ret for av_log
Should fix printing the wrong value

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-29 21:44:19 +01:00
Michael Niedermayer
265c4771cc Merge commit '043ea6f7bfc59399b6b3659da785ec4cc68a008e'
* commit '043ea6f7bfc59399b6b3659da785ec4cc68a008e':
  fbdev: Use av_strerror

Conflicts:
	libavdevice/fbdev_dec.c

See: f6b56b1f26
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-29 21:43:25 +01:00
Michael Niedermayer
9a534eda46 Merge commit 'f64d7e919eabd427f3e6dd4a1219e448c78deb42'
* commit 'f64d7e919eabd427f3e6dd4a1219e448c78deb42':
  mtv: improve header check and avoid division by zero

Conflicts:
	libavformat/mtv.c

See: 8b9b6332df
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-29 21:27:33 +01:00
Michael Niedermayer
e08ff208c7 Merge commit 'b3d11437ca55d81eeb10c923343ad69b73895fa8'
* commit 'b3d11437ca55d81eeb10c923343ad69b73895fa8':
  oggenc: remove unneeded null check

See: a147c1b2b1
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-29 20:49:43 +01:00
Michael Niedermayer
363effbb99 Merge commit 'a9179b5bd6f143b4a7ff48bb0d00c8f0a7cafb4b'
* commit 'a9179b5bd6f143b4a7ff48bb0d00c8f0a7cafb4b':
  configure: Check only for xcb

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-29 20:43:36 +01:00
Thomas Mundt
1700fa013e avformat/utils: support more AVC Intra formats without SPS/PPS header
add support for AVC Intra 50 720p and 1080p without SPS/PPS header in mxf and mov demuxers. I got the SPS/PPS tables from libbmx.

Reviewed-by: tomas.hardin@codemill.se
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-29 20:08:32 +01:00
Michael Niedermayer
a0528d9ddd avformat/mpjpeg: make boundary tag user customizable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-29 18:31:32 +01:00
wm4
e5813d96d6 avformat/subtitles: reduce log level of UTF-16 warning
Applications can use this to silence the message.
2014-10-29 18:29:43 +01:00
James Almer
faa9d29829 lavu/atomic: add support for the new memory model aware gcc built-ins
__sync built-ins are considered legacy and will be deprecated.
These new memory model aware built-ins have been available since GCC 4.7.0

Use them by default when available except for __atomic_compare_exchange_n(),
which is slower, and is instead implemented as a fallback for when and if gcc
removes the legacy __sync built-ins.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2014-10-29 14:09:58 -03:00
Vittorio Giovara
84bf64d359 bethsoftvid: simplify return handling
Fixes a double free in case of av_packet_new_side_data() failure.
2014-10-29 17:02:27 +00:00
Vittorio Giovara
e9ba309831 assdec: check av_new_packet return value
CC: libav-stable@libav.org
Bug-Id: CID 703626
2014-10-29 16:54:43 +00:00
Luca Barbato
2cd28693a5 jack: Use av_strerror 2014-10-29 16:54:43 +00:00
Luca Barbato
043ea6f7bf fbdev: Use av_strerror 2014-10-29 16:54:43 +00:00
Vittorio Giovara
f64d7e919e mtv: improve header check and avoid division by zero
CC: libav-stable@libav.org
Bug-Id: CID 732203 / CID 732204
2014-10-29 16:54:43 +00:00
Michael Niedermayer
b3d11437ca oggenc: remove unneeded null check
The code would have segfaulted before if oggstream were NULL.

CC: libav-stable@libav.org
Bug-Id: CID 732218
2014-10-29 16:54:37 +00:00
James Almer
931da6a5e9 lavd/v4l2: don't use avpriv_ prefix for internal functions
No need to keep the old symbols around until a major bump since lavd functions
with the avpriv_ prefix were never exposed.

Signed-off-by: James Almer <jamrial@gmail.com>
Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-29 16:12:14 +01:00
Michael Niedermayer
df74811cd5 avcodec/utils: Align dimensions by at least their chroma sub-sampling factors.
Fixes: out of array accesses
Fixes: asan_heap-oob_112c6b3_13_012.avi
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-29 14:16:54 +01:00
Michael Niedermayer
0c42f47e38 avcodec/libutvideodec: Try to fix build failure with old libutvideo
Found-by: Jan Ehrhardt <phpdev@ehrhardt.nl>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-29 13:15:26 +01:00
Thomas Mundt
2114e88432 avformat/mxfenc: AVC Intra support
To keep h264 parsing simple and fast, I used the framesize for selecting the right Panasonic codec label. The framesize is fixed for Panasonic AVC Intra.

This patch only supports AVCI50/100. But in all flavours, i.e. with no SPS/PPS in header.

Reviewed-by: tomas.hardin@codemill.se
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-29 11:55:21 +01:00
Carl Eugen Hoyos
fd1652b3ba Improve the fieldmatch documentation about mixed telecined content.
The fieldmatch filter has no problem with mixed telecined and
progressive content but the decimate filter does not detect the
changing framerate and drops progressive frames.
2014-10-29 10:17:37 +01:00
Michael Niedermayer
c1e035ea89 avformat/mxfdec: fix null pointer dereference
Fixes: signal_sigsegv_b5b3d4_2_001.mxf
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-29 03:54:49 +01:00
Michael Niedermayer
5b86447080 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Mention in the documentation that fieldmatch needs cfr input.
  Use v4l2 input format automatically if filename starts with "/dev/video"
  Print a warning if a subtitle demuxer changes utf16 to utf8.
  Do not set the lame quality if the user didn't request it.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-29 02:54:46 +01:00
Carl Eugen Hoyos
238ed47fae Mention in the documentation that fieldmatch needs cfr input.
This can be improved in the decimate filter but for the moment
explicitely mentioning that mixed telecined and progressive
content is unsupported is an improvement.

Fixes ticket #3968.
2014-10-29 01:59:52 +01:00
Andrey Utkin
b608fba672 Use v4l2 input format automatically if filename starts with "/dev/video"
Signed-off-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
2014-10-29 01:59:25 +01:00
Carl Eugen Hoyos
19a6431ec2 Print a warning if a subtitle demuxer changes utf16 to utf8.
This does not fix anything but gives users a chance to
know that they must not pass -sub_charenc UTF-16 to ffmpeg.

Fixes ticket #4059.
2014-10-29 01:32:44 +01:00
Carl Eugen Hoyos
2612214555 Do not set the lame quality if the user didn't request it.
This makes FFmpeg's mp3 output more similar to lame's output.
2014-10-29 01:31:06 +01:00
Michael Niedermayer
f3c0e0bf6f avcodec/dnxhddec: treat pix_fmt like width/height
Fixes out of array accesses
Fixes: asan_heap-oob_22c9a39_16_015.mxf
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-29 00:57:52 +01:00
Tomas Härdin
1a25c336aa mxfdec: Tighten RIP length bounds in mxf_read_random_index_pack()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-28 18:59:48 +01:00
Tomas Härdin
b83affdc94 mxfdec: Merge last_partition and footer_partition
FooterPartition offset specified in RIP takes precedence over any value written
in PartitionPacks. This fixes the same issue f06f6da tries to fix without
introducing an extra variable.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-28 18:59:31 +01:00
Tomas Härdin
1b17b64ee4 Revert "avformat/mxfdec: detect loops during header parsing"
This reverts commit 1c010fd035.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-28 18:59:16 +01:00
Tomas Härdin
37c3686155 mxfdec: Parse PreviousPartition in mxf_seek_to_previous_partition()
Without this patch the demuxer can get stuck in a loop if PreviousPartition
points somewhere where there's no PartitionPack, or if klv_read_packet() syncs
back up to the current partition.

This should fix Ticket3278 properly and unbreak Ticket4040.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-28 18:58:59 +01:00
Tomas Härdin
fc1b89d887 mxfdec: Break out parts of mxf_read_header() into separate functions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-28 18:58:34 +01:00
Michael Niedermayer
f1c21a200b avformat/mvdec: Check size in read_table() for validity
This check is redundant with the previous commit but it provides
better error messages and feedback while the previous commit
ensures that var_read_string() doesnt return uninitialized arrays
if it itself is feeded with an invalid size possibly through a
different future codepath.

Fixes: asan_heap-oob_49b1e5_12_011.movie
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-28 17:51:14 +01:00
Michael Niedermayer
86e5749285 avformat/mvdec: Check size for validity in var_read_string()
Fixes out of array read
Fixes: asan_heap-oob_49b1e5_12_011.movie
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-28 17:06:16 +01:00
Michael Niedermayer
e70312dfc2 avcodec/dxa: check dimensions
Fixes out of array access
Fixes: asan_heap-oob_11222fb_21_020.dxa
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-28 15:30:05 +01:00
Luca Barbato
a9179b5bd6 configure: Check only for xcb
xcb-utils are not needed anymore.
2014-10-28 13:57:32 +00:00
Christophe Gisquet
beb944786e dvenc: mark encoder as intra
And thus allow various multithreading.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-28 12:48:58 +01:00
Christophe Gisquet
4fa772acbb dv: increase VLC reading bits to 10
This also requires a bump in the table size of bit patterns to 1664.
From 356 to 348 cycles.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-28 12:22:03 +01:00
Michael Niedermayer
280da99a8f avdevice/xcbgrab: set avclass category
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-28 12:07:20 +01:00
Michael Niedermayer
c2e995674f Merge commit '4ad1eba011860224831ce0bb3123f6f55716b68a'
* commit '4ad1eba011860224831ce0bb3123f6f55716b68a':
  lavd: fix building x11grab after a6674d2

no change as the buggy line was not in FFmpeg

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-28 11:20:20 +01:00
Michael Niedermayer
dd5123a04c Merge commit 'ce91b2eae6ea52fc1a7003566d26db20ca62d745'
* commit 'ce91b2eae6ea52fc1a7003566d26db20ca62d745':
  vdpau: return MAIN instead of BASELINE for H.264 CBP

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-28 11:05:12 +01:00
Michael Niedermayer
ab9ba88877 Merge commit '26ab504ad8d2b23535c9a0ad43bf1fd0e6aa0893'
* commit '26ab504ad8d2b23535c9a0ad43bf1fd0e6aa0893':
  vdpau/h264: request MAIN rather than BASELINE VDPAU profile for CBP

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-28 10:58:12 +01:00
Anton Khirnov
4ad1eba011 lavd: fix building x11grab after a6674d2 2014-10-28 07:22:00 +01:00
Rémi Denis-Courmont
ce91b2eae6 vdpau: return MAIN instead of BASELINE for H.264 CBP
This is the same as the previous change, but for applications using the
old API (such as VLC 2.2).

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-10-28 07:06:33 +01:00
Rémi Denis-Courmont
26ab504ad8 vdpau/h264: request MAIN rather than BASELINE VDPAU profile for CBP
The H.264 Constrained Baseline Profile (CBP) is a subset of both the
Main Profile and the Baseline Profile. In principles, a hardware
decoder that supports either of those can decode CBP content. As it
happens, Main is supported by all VDPAU drivers, and Baseline is not.

So favor map CBP to MP for now. Hopefully in the future libvdpau will
offer an explicit choice for CBP.

This fixes bug 757.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-10-28 07:06:13 +01:00
Michael Niedermayer
39680cacee avcodec/dirac_arith: fix integer overflow
Fixes: asan_heap-oob_1078676_9_008.drc
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-28 02:15:40 +01:00
Michael Niedermayer
5145d22b88 avcodec/diracdec: Tighter checks on CODEBLOCKS_X/Y
Fixes very long but finite loop
Fixes: asan_heap-oob_107866c_42_041.drc
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-28 01:25:57 +01:00
Michael Niedermayer
526886e606 avcodec/diracdec: Use 64bit in calculation of codeblock coordinates
Fixes integer overflow
Fixes out of array read
Fixes: asan_heap-oob_107866c_42_041.drc
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-28 01:25:28 +01:00
Michael Niedermayer
d4e8cc35b3 Merge commit '11467ecf519788f2e2f49c63a17eb600e618489e'
* commit '11467ecf519788f2e2f49c63a17eb600e618489e':
  mxfdec: reduce loop bound in mxf_read_pixel_layout()

See: 187630b244
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-27 23:34:05 +01:00
Michael Niedermayer
0894b9405c avformat/bethsoftvid: print error in case the side date failed to be allocated
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-27 23:20:21 +01:00
Michael Niedermayer
5ee6527c43 Merge commit 'e6c66f1e4ea19a3aa6ed999c5cb92e1b682c7600'
* commit 'e6c66f1e4ea19a3aa6ed999c5cb92e1b682c7600':
  bethsoftvid: check return value and clean memory

Conflicts:
	libavformat/bethsoftvid.c

See: 3632f35c8e
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-27 23:19:08 +01:00
Michael Niedermayer
9612dcd6b2 avformat/filmstripdec: Fix several integer overflows
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-27 22:57:17 +01:00
Michael Niedermayer
76b9043e90 Merge commit 'b46b233baffc2076a1a17a264ba9553ae0d4878f'
* commit 'b46b233baffc2076a1a17a264ba9553ae0d4878f':
  filmstripdec: avoid integer overflow

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-27 22:57:07 +01:00
Michael Niedermayer
f769671f86 Merge commit '090c67d586e3916f9acc49e010b6389d07f97153'
* commit '090c67d586e3916f9acc49e010b6389d07f97153':
  matroskaenc: write correct Display{Width, Height} in stereo encoding

Conflicts:
	libavformat/matroskaenc.c

See: 6103faaa51
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-27 22:18:03 +01:00
Michael Niedermayer
a38a1d516f Merge commit 'a6674d2e7771dbf7a4a5556f5e126be83cadac96'
* commit 'a6674d2e7771dbf7a4a5556f5e126be83cadac96':
  xcbgrab: XCB-based screen capture

Conflicts:
	Changelog
	configure
	libavdevice/Makefile
	libavdevice/alldevices.c
	libavdevice/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-27 21:26:51 +01:00
Michael Niedermayer
a050cf0c45 avcodec/sgidec: fix count check
Fixes: asan_heap-oob_22b30d4_39_038.sgi
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-27 20:55:57 +01:00
Michael Niedermayer
3b20ed8548 avcodec/sgidec: fix linesize for 16bit
Fixes: asan_heap-oob_22b30d4_39_038.sgi
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-27 20:49:47 +01:00
Tomas Härdin
11467ecf51 mxfdec: reduce loop bound in mxf_read_pixel_layout()
Makes coverity less confused and code more readable.

Bug-Id: CID 732262
2014-10-27 19:08:02 +00:00
Vittorio Giovara
e6c66f1e4e bethsoftvid: check return value and clean memory
CC: libav-stable@libav.org
Bug-Id: CID 733777
2014-10-27 18:21:40 +00:00
Vittorio Giovara
b46b233baf filmstripdec: avoid integer overflow
CC: libav-stable@libav.org
Bug-Id: CID 732246
2014-10-27 18:21:40 +00:00
Vittorio Giovara
090c67d586 matroskaenc: write correct Display{Width, Height} in stereo encoding
should be the raw amount of pixels (for example 3840x1080 for full HD side by
side) and the DisplayWidth/Height in pixels should be the amount of pixels for
one plane (1920x1080 for that full HD stream)."

So, move the aspect ratio check in the mkv_write_stereo_mode() function
and always write the embl when stereo format and/or aspect ration is set.
Also add a few comments to that function.

CC: libav-stable@libav.org
Found-by: Asan Usipov <asan.usipov@gmail.com>
2014-10-27 18:21:35 +00:00
Thilo Borgmann
ed2e97ce6a lavd/avfoundation: Fix compilation for non MAC OS devices by conditional compilation of screen capture capabilities.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-27 16:38:19 +01:00
Michael Niedermayer
852aaead1f avcodec/hevc_ps: Check default display window bitstream and skip if invalid
Fixes Ticket4035

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-27 14:03:09 +01:00
Michael Niedermayer
69a9a90d2e avcodec/h264_parser: rewrite the parse_nal_units() loop logic based on h264.c
Fixes Ticket4011

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-27 04:58:49 +01:00
Michael Niedermayer
3b678da5e3 avcodec/h264: simplify find_start_code()
this also uses avpriv_find_start_code(), though no speed change is expected as
the area searched is generally small

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-27 04:26:33 +01:00
Michael Niedermayer
4898440f6b Move get_avc_nalsize() and find_start_code() to h264.h
This allows sharing them with the h264 parser

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-27 04:22:42 +01:00
Kieran Kunhya
61e42c1124 avformat/mpegts: Add support for Opus in MPEG-TS
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-26 22:29:47 +01:00
Kieran Kunhya
74141f693d avcodec: Add support for Opus in MPEG-TS
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-26 22:29:07 +01:00
Christophe Gisquet
05da586fef dv: move inverse weight tables to decoder
The encoder has its own tables and does not access the idct_factor
member of the DVVideoContext structure.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-26 19:21:59 +01:00
Christophe Gisquet
6fe02d25ee dv: fix weight table for 2x4x8 transform
The coefficients must be in the appropriate zigzag scan order.
Also fix their values at the same time, as they were pretty wrong.

Fixes ticket #2970.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-26 18:51:52 +01:00
Matthew Oliver
2060f4cbba avutil/intmath: enable builtin intrinsics for icl and msvc.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-26 17:20:55 +01:00
Michael Niedermayer
c0002ddb01 ffmpeg_opt: Check the return code from strftime()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-26 17:07:29 +01:00
Michael Niedermayer
f0390638e0 avformat/matroskadec: Check the return code from strftime()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-26 17:07:29 +01:00
Michael Niedermayer
a9564e859b avformat/mlvdec: Check the return code from strftime()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-26 17:07:29 +01:00
Luca Barbato
a6674d2e77 xcbgrab: XCB-based screen capture
Matches the x11grab screen capture by features.
2014-10-26 08:47:41 +01:00
Michael Niedermayer
abaa41b642 Merge commit 'ed6dad3737bf7bb2d5e9fa9511dfdb44806010e8'
* commit 'ed6dad3737bf7bb2d5e9fa9511dfdb44806010e8':
  lavf: Implement ff_brktimegm using gmtime_r

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-26 03:22:52 +01:00
Michael Niedermayer
4360c6ff61 Merge commit '6b9b42cc5576e1819ad1e29d98940066fd14b2d6'
* commit '6b9b42cc5576e1819ad1e29d98940066fd14b2d6':
  drawtext: Remove the ifdef for localtime_r

Conflicts:
	libavfilter/vf_drawtext.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-26 03:12:37 +01:00
Michael Niedermayer
4a39d4c65a Merge commit '82ee7d0dda0fec8cdb670f4e844bf5c2927ad9de'
* commit '82ee7d0dda0fec8cdb670f4e844bf5c2927ad9de':
  Use gmtime_r instead of gmtime and localtime_r instead of localtime

Conflicts:
	libavformat/mov.c
	libavformat/mxfenc.c
	libavformat/wtvdec.c
	libavutil/parseutils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-26 02:38:26 +01:00
Michael Niedermayer
edb069e556 Merge commit '3f8f1c6ff24ee858eb5b0bf47ef6d4605299a87e'
* commit '3f8f1c6ff24ee858eb5b0bf47ef6d4605299a87e':
  lavu: Provide fallbacks for gmtime_r and localtime_r

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-26 02:26:45 +01:00
Michael Niedermayer
3b709fd912 Merge commit '9dcf2397219ca796f0fafce2a703770d6fd09920'
* commit '9dcf2397219ca796f0fafce2a703770d6fd09920':
  lavf: Check the return value of strftime

Conflicts:
	libavformat/wtvdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-26 02:06:40 +01:00
Michael Niedermayer
50697ac5b2 Merge commit '851ace79a307bea54b44bd6f7ecd3b7861c28ec6'
* commit '851ace79a307bea54b44bd6f7ecd3b7861c28ec6':
  wtv: Avoid needlessly calling gmtime twice with the same argument

Conflicts:
	libavformat/wtvdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-26 02:21:42 +02:00
Mark Reid
90bf1e3046 libavformat/mxfdec: read source timecode from pulldown component
Reviewed-by: Tomas Härdin <tomas.hardin@codemill.se>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-25 23:15:04 +02:00
Martin Storsjö
ed6dad3737 lavf: Implement ff_brktimegm using gmtime_r
While a standalone implementation is nice, we already depend on
gmtime and gmtime_r in a number of places.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-26 00:14:54 +03:00
Martin Storsjö
6b9b42cc55 drawtext: Remove the ifdef for localtime_r
If it isn't available in the system, we've got a fallback to
the normal localtime function, so normal code can assume it is
available as long as time_internal.h is included.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-26 00:14:54 +03:00
Martin Storsjö
82ee7d0dda Use gmtime_r instead of gmtime and localtime_r instead of localtime
gmtime isn't thread safe in general. In msvcrt (which lacks gmtime_r),
the buffer used by gmtime is thread specific though.

One call to localtime is left in avconv_opt.c, where thread safety
shouldn't matter (instead of making avconv depend on the libavutil
internal header).

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-26 00:14:54 +03:00
Martin Storsjö
3f8f1c6ff2 lavu: Provide fallbacks for gmtime_r and localtime_r
This allows writing most code as if they always are is available.

These are ok to use from other libraries even though it's not a
public header, since they only provide an inline declaration, and
doesn't add an actual dependency on lavu internals. (This can be
considered more a build system compatibility fallback than a
libavutil feature.)

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-26 00:14:54 +03:00
Martin Storsjö
9dcf239721 lavf: Check the return value of strftime
If the buffer provided to strftime is too small, the buffer contents
are indeterminate - it does not guarantee actually null terminating
the buffer.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-26 00:14:54 +03:00
Martin Storsjö
851ace79a3 wtv: Avoid needlessly calling gmtime twice with the same argument
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-26 00:14:54 +03:00
Thilo Borgmann
a6555f88aa lavd/avfoundation: Add support for screen capturing.
Patch based on pull-request by Joseph Benden <joe@benden.us>

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-25 22:09:06 +02:00
Michael Niedermayer
13ee94a480 avformat/rdt: Forward whitelists to rdt demuxer
Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-25 21:17:27 +02:00
Lukasz Marek
5f55819850 opts: add list device sources/sinks options
Allows to list sources/sinks of the devices that implement
that functionality.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-10-25 20:20:31 +02:00
Lukasz Marek
1cff908589 doc/fftools-common-opts: document -devices option
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-10-25 19:55:18 +02:00
Christophe Gisquet
1086f09da3 dv: more precise weight table for 8x8
It is derived from the actual equations of the specs. In
particular, it is closer to the inverse of what the encoder uses.

fate tests accordingly updated.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-25 19:01:45 +02:00
Christophe Gisquet
80b29c2d0c dv: use smaller type for weight tables
Reviewed-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-25 16:54:12 +02:00
Christophe Gisquet
eacf2e8eb3 dv: better split weight tables assignment
This is a mostly cosmetical patch in preparation for the following.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-25 16:44:43 +02:00
Michael Niedermayer
ff03df6475 avformat/mpeg: Use av_find_input_format() instead of directly linking to the demuxer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-25 16:28:41 +02:00
Michael Niedermayer
2ce1054257 avformat/rtpdec_asf: Use av_find_input_format() instead of directly linking to the demuxer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-25 16:28:03 +02:00
Michael Niedermayer
39a7ded22d tools/ffhash: read errno before calling functions which might change it
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-25 16:12:16 +02:00
Michael Niedermayer
e7513e1286 avformat: Read errno before av_log() as the callback from av_log() might affect errno
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-25 13:48:56 +02:00
Michael Niedermayer
af03ba9aa2 avformat/hdsenc: Read errno before av_log() as the callback from av_log() might affect errno
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-25 13:28:51 +02:00
Michael Niedermayer
0d96d44c4f avfilter: Read errno before av_log() as the callback from av_log() might affect errno
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-25 13:28:51 +02:00
Michael Niedermayer
a630969535 avdeviece: Read errno before av_log() as the callback from av_log() might affect errno
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-25 13:28:51 +02:00
Michael Niedermayer
dd5c2fe177 avcodec: Read errno before av_log() as the callback from av_log() might affect errno
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-25 13:28:51 +02:00
Michael Niedermayer
2fc970a6b8 cmdutils: Read errno before av_log() as the callback from av_log() might affect errno
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-25 13:28:51 +02:00
Michael Niedermayer
92d366f6ab avformat: Print error message on failure of ff_rename()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-25 13:28:51 +02:00
Michael Niedermayer
eeb9242b62 Merge commit '50dbe6b3544fa64d5611e16553bf542fd71276b8'
* commit '50dbe6b3544fa64d5611e16553bf542fd71276b8':
  mov: fix assigment check

Conflicts:
	libavformat/mov.c

See: af2e5061bb
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-25 04:57:48 +02:00
Michael Niedermayer
48579041ba Merge commit '7df3b426bbfbd7efd9a0f56393e3cc78413b0869'
* commit '7df3b426bbfbd7efd9a0f56393e3cc78413b0869':
  mxfenc: Fix possible integer overflows

Conflicts:
	libavformat/mxfenc.c

See: e3ba817b95
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-25 04:55:17 +02:00
Michael Niedermayer
5408d8828a Merge commit 'ad6b00d85f686324aa2bd93e39261fa1d411f141'
* commit 'ad6b00d85f686324aa2bd93e39261fa1d411f141':
  mxfdec: add missing break

See: cbda76c7c6
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-25 04:53:01 +02:00
Michael Niedermayer
8be93ba049 Merge commit '28c020d4df9b060a58a124a7a5406d4313fbe249'
* commit '28c020d4df9b060a58a124a7a5406d4313fbe249':
  matroskaenc: check avio_open_dyn_buf return value

Conflicts:
	libavformat/matroskaenc.c

See: b1f517f503
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-25 04:45:23 +02:00
Michael Niedermayer
3ae818f6ab Merge commit 'e0caa1eb4e518111a81801db0d2ccdd2733ba94b'
* commit 'e0caa1eb4e518111a81801db0d2ccdd2733ba94b':
  matroskadec: check return values

Conflicts:
	libavformat/matroskadec.c

See: 1116491c53
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-25 04:37:27 +02:00
Michael Niedermayer
45fd593531 Merge commit '3c1199c3c4cbdb4ffff0de89f06d5a08acefe356'
* commit '3c1199c3c4cbdb4ffff0de89f06d5a08acefe356':
  matroskadec: fix leak on error

Conflicts:
	libavformat/matroskadec.c

See: 2fe4b6210c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-25 04:32:16 +02:00
Michael Niedermayer
97a8f4dd11 Merge commit '7785ce1c769369abf85b276148548a5510aabb5f'
* commit '7785ce1c769369abf85b276148548a5510aabb5f':
  lavf: replace rename() with ff_rename()

Conflicts:
	libavformat/hdsenc.c
	libavformat/internal.h

See: 95d2fc6a76
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-25 04:24:16 +02:00
Michael Niedermayer
af89c14418 Merge commit '0b66fb4505e0bb43de3797f63f3290f0188d67cc'
* commit '0b66fb4505e0bb43de3797f63f3290f0188d67cc':
  flac_picture: prevent a possible out of bound write

This is only partly merged, the condition this checks for
is impossible to be true as it would imply avio_read() to
read more than the size passed to it

See: 731f7eaaad
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-25 04:03:41 +02:00
Michael Niedermayer
d609566270 Merge commit 'f1ed83e23add1c26c50b146727e4c2399dfc0b3a'
* commit 'f1ed83e23add1c26c50b146727e4c2399dfc0b3a':
  img2dec: check av_new_packet return value

Conflicts:
	libavformat/img2dec.c

See: 3f8148911c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-25 03:37:21 +02:00
Michael Niedermayer
6d2a2bfb59 Merge commit '1967cd4e4c1cd96dfa195ce14e4b212ddb70586d'
* commit '1967cd4e4c1cd96dfa195ce14e4b212ddb70586d':
  audiointerleave: check av_new_packet return value

Conflicts:
	libavformat/audiointerleave.c

See: 3ca8a23288
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-25 03:27:13 +02:00
Michael Niedermayer
1945db1f13 Merge commit 'ac84c1ce24a285f9cf16d4297bce73b1c4a6e435'
* commit 'ac84c1ce24a285f9cf16d4297bce73b1c4a6e435':
  avfilter: check filter link validity

Conflicts:
	libavfilter/avfilter.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-25 03:08:19 +02:00
Vittorio Giovara
50dbe6b354 mov: fix assigment check
CC: libav-stable@libav.org
Bug-Id: CID 1197050
2014-10-24 23:48:57 +01:00
Tomas Härdin
7df3b426bb mxfenc: Fix possible integer overflows
None of these are likely unless the user is writing a file with two billion
streams or a duration of around two months.

CC: libav-stable@libav.org
Bug-Id: CID 700568 / CID 700569 / CID 700570 /
        CID 700571 / CID 700572 / CID 700573
2014-10-24 23:48:57 +01:00
Vittorio Giovara
ad6b00d85f mxfdec: add missing break
CC: libav-stable@libav.org
Bug-Id: CID 732232
2014-10-24 23:48:57 +01:00
Vittorio Giovara
28c020d4df matroskaenc: check avio_open_dyn_buf return value
CC: libav-stable@libav.org
Bug-Id: CID 703629
2014-10-24 23:48:57 +01:00
Vittorio Giovara
e0caa1eb4e matroskadec: check return values
CC: libav-stable@libav.org
Bug-Id: CID 733712
2014-10-24 23:48:51 +01:00
Vittorio Giovara
3c1199c3c4 matroskadec: fix leak on error
CC: libav-stable@libav.org
Bug-Id: CID 1026767
2014-10-24 23:43:25 +01:00
Luca Barbato
7785ce1c76 lavf: replace rename() with ff_rename()
The new function wraps errno so that its value is correctly reported
when other functions overwrite it (eg. in case of logging).

CC: libav-stable@libav.org
Bug-Id: CID 1135748
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-10-24 23:42:53 +01:00
Vittorio Giovara
0b66fb4505 flac_picture: prevent a possible out of bound write
At "mimetype[len] = 0;" mimetype is a 64 element array and len might be
equal to or greater than that.

CC: libav-stable@libav.org
Bug-Id: CID 1061055
2014-10-24 23:42:53 +01:00
Vittorio Giovara
f1ed83e23a img2dec: check av_new_packet return value
CC: libav-stable@libav.org
Bug-Id: CID 1087077
2014-10-24 23:42:53 +01:00
Vittorio Giovara
1967cd4e4c audiointerleave: check av_new_packet return value
CC: libav-stable@libav.org
Bug-Id: CID 1087078
2014-10-24 23:42:53 +01:00
Vittorio Giovara
ac84c1ce24 avfilter: check filter link validity
Remove now redundant check.

CC: libav-stable@libav.org
Bug-Id: CID 700371
2014-10-24 23:42:19 +01:00
Michael Niedermayer
4ef02ddd81 Changelog: add entry for libutvideo 422P10
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-25 00:22:04 +02:00
Michael Niedermayer
59a4792830 avcodec/libutvideodec: Support YUV422P10
Based on ConvertToPlanar() from libutvideo
libutvideo sadly does not seem to support exporting its internal planar buffers

Reviewed-by: Benoit Fouet <benoit.fouet@free.fr>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-25 00:15:15 +02:00
Eric Zimmerman
4ba5420e4d Added support for G2M5 codec
This has also been independently found and fixed similarly by carl in
f4a3bbf4a3cd375121ea2495817f3e50e831ed48
The 2nd magic check is taken from carls implementation

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-24 19:36:09 +02:00
Michael Niedermayer
4641ae352e avformat: Add and use ff_copy_whitelists()
Fixes potential security issue in case of running out of memory

Found-by: ubitux
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-24 19:23:23 +02:00
Benoit Fouet
e56425d1a7 avcodec/aacdec: warn user when remapping streams.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-24 18:54:06 +02:00
Michael Niedermayer
279b2a4deb avformat/mp3dec: also accept Lavc as shortname to read delays
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-24 18:06:26 +02:00
Michael Niedermayer
2dbee1a393 avformat/mp3enc: Squeeze our mp3 encoder tag into the 9byte shortname instead of randomly truncating
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-24 16:15:25 +02:00
Michael Niedermayer
e744e9a305 Merge commit 'ef363ebd596da18f889a7d4845023a23dfac84c9'
* commit 'ef363ebd596da18f889a7d4845023a23dfac84c9':
  mp3enc: write full LAME frame

Conflicts:
	libavformat/mp3enc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-24 15:30:12 +02:00
Michael Niedermayer
6ef5e29220 Merge commit '88b32673db39440422a73ec3047d3326c96b4fb2'
* commit '88b32673db39440422a73ec3047d3326c96b4fb2':
  avconv: copy stream-level side data when streamcopying

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-24 13:14:33 +02:00
Michael Niedermayer
7ad34f4456 Merge commit 'c63418e0a3afbcdbc59fd65c270d45efafe092ce'
* commit 'c63418e0a3afbcdbc59fd65c270d45efafe092ce':
  doc: reword the mp3 muxer documentation

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-24 12:59:27 +02:00
Michael Niedermayer
899d3706d8 Merge commit '99143140dea12363af680d02e23cb42cfe191679'
* commit '99143140dea12363af680d02e23cb42cfe191679':
  mp3dec: fix reading the Xing tag

Conflicts:
	libavformat/mp3dec.c

See: 19ff479f69
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-24 12:49:53 +02:00
Michael Niedermayer
2c5ae57776 Merge commit '6df9d9b55d3f56ee7782639a7678eeeaf77f14ea'
* commit '6df9d9b55d3f56ee7782639a7678eeeaf77f14ea':
  lavf: Use av_gettime_relative

Conflicts:
	libavformat/hls.c

See: f78bc96b7c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-24 12:40:36 +02:00
Michael Niedermayer
2896b98183 Merge commit 'd0c093021943e9b9c23528b12cd61ca2a5b01b4f'
* commit 'd0c093021943e9b9c23528b12cd61ca2a5b01b4f':
  avconv: Use av_gettime_relative

Conflicts:
	ffmpeg.c

See: 76191c08f8
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-24 12:30:55 +02:00
Michael Niedermayer
872e087305 Merge commit '248d8fb60c59c8e044d9c8f78f23383b7cdecf72'
* commit '248d8fb60c59c8e044d9c8f78f23383b7cdecf72':
  avplay: Use av_gettime_relative

Conflicts:
	ffplay.c

See: 0ca0b4c29c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-24 12:19:35 +02:00
Michael Niedermayer
63001833c5 Merge commit 'e205429fcf9de3182bce2f4cfd1d6401596a8666'
* commit 'e205429fcf9de3182bce2f4cfd1d6401596a8666':
  tools: Use av_gettime_relative

See: 41120e6e40
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-24 11:57:33 +02:00
Michael Niedermayer
8fd07fa6cc Merge commit '6fdf35fe35d8c1c467708238100648a7a47c930d'
* commit '6fdf35fe35d8c1c467708238100648a7a47c930d':
  lavc: Use av_gettime_relative

See: b052bccbe4
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-24 11:41:34 +02:00
Michael Niedermayer
e96ca404ea Merge commit '1bd0bdcdc236099d5c0d179696951f35f5310fa5'
* commit '1bd0bdcdc236099d5c0d179696951f35f5310fa5':
  lavu: Add av_gettime_relative

Conflicts:
	libavutil/time.c
	libavutil/time.h
	libavutil/version.h

See: 0eec06ed87
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-24 11:06:56 +02:00
Anton Khirnov
ef363ebd59 mp3enc: write full LAME frame
Most importantly, it contains the encoder delay and replaygain info.
2014-10-24 09:03:16 +02:00
Anton Khirnov
88b32673db avconv: copy stream-level side data when streamcopying 2014-10-24 09:03:16 +02:00
Anton Khirnov
c63418e0a3 doc: reword the mp3 muxer documentation
Make it more structured.
2014-10-24 09:03:16 +02:00
Anton Khirnov
99143140de mp3dec: fix reading the Xing tag
The quality scale field is only supposed to be present if the fourth bit
is set. In practice, lame always sets it, but other tools might not.

CC:libav-stable@libav.org
2014-10-24 09:03:16 +02:00
Martin Storsjö
6df9d9b55d lavf: Use av_gettime_relative
The ones left using av_gettime are NTP timestamps (for RTCP,
which is specified to send the actual current realtime clock
in RTCP SR packets), and the NUT muxer timestamper, which is
documented as using wallclock time.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-24 09:53:45 +03:00
Martin Storsjö
d0c0930219 avconv: Use av_gettime_relative
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-24 09:53:45 +03:00
Martin Storsjö
248d8fb60c avplay: Use av_gettime_relative
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-24 09:53:44 +03:00
Olivier Langlois
e205429fcf tools: Use av_gettime_relative
Whenever av_gettime() is used to measure relative period of time,
av_gettime_relative() is prefered as it guarantee monotonic time
on supported platforms.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-24 09:53:43 +03:00
Olivier Langlois
6fdf35fe35 lavc: Use av_gettime_relative
Whenever av_gettime() is used to measure relative period of time,
av_gettime_relative() is prefered as it guarantee monotonic time
on supported platforms.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-24 09:53:42 +03:00
Martin Storsjö
1bd0bdcdc2 lavu: Add av_gettime_relative
Since av_gettime() is used in a number of places where actual
real time clock is required, the monotonic clock introduced in
ebef9f5a5 would have consequences that are hard to handle. Instead
split it into a separate function that can be used in the cases
where only relative time is desired.

On platform where no monotonic clock is available, the difference
between the two av_gettime functions is not clear, and one could
mistakenly use the relative clock where an absolute one is
required. Therefore add an offset, to make it evident that the
time returned from av_gettime_relative never is actual current
real time, even though it is based on av_gettime.

Based on a patch by Olivier Langlois.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-24 09:53:41 +03:00
Andrey Utkin
08e6832a94 avformat/rtsp: pass return code from ffurl_open() on its failure
Previously, AVERROR(EIO) was returned. Now the value is passed from
lower level, thus it is possible to distinguish ECONNREFUSED, ETIMEDOUT,
ENETUNREACH etc.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-23 23:53:14 +02:00
Michael Niedermayer
7f2af3f56b avformat/rtsp: add av_assert0() to clarify that the else case is supposed to be unreachable
If its reachable then theres a bug as err would be uninitialized

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-23 23:48:45 +02:00
Michael Niedermayer
20aac40571 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Print an error if -r and -vsync 0 are used together.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-23 23:32:36 +02:00
Michael Niedermayer
00dbd7c4ae avcodec/utils: Print the codec name that is missing on the whitelist
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-23 23:30:41 +02:00
Carl Eugen Hoyos
7a649e0783 Print an error if -r and -vsync 0 are used together.
Fixes ticket #4041.
2014-10-23 23:27:46 +02:00
Michael Niedermayer
a1d06a0121 avcodec/options_table: Fix codec_whitelist flags
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-23 23:02:48 +02:00
Andrey Utkin
70c9d40008 avformat/http: pass return code from http_open_cnx_internal() on its failure
Previously, AVERROR(EIO) was returned on failure of
http_open_cnx_internal(). Now the value is passed to upper level, thus
it is possible to distinguish ECONNREFUSED, ETIMEDOUT, ENETUNREACH etc.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-23 20:58:21 +02:00
Michael Niedermayer
5ea0753a15 avformat/concatdec: Forward whitelists to the subdemuxers.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-23 18:19:37 +02:00
Michael Niedermayer
feb9057b83 Forward whitelists to the asf demuxer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-23 18:19:37 +02:00
Michael Niedermayer
b76234c00c avformat/avidec: Forward whitelists to the subtitle demuxer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-23 18:19:37 +02:00
Michael Niedermayer
ad83cfec5a avformat/mpeg: Forward whitelists to the mpegps demuxer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-23 18:19:37 +02:00
Michael Niedermayer
ad5f861b8c avformat/libquvi: Forward whitelists to subdemuxer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-23 18:19:37 +02:00
James Almer
7292b0477a x86/hpeldsp: fix loop in {avg,avg_no_rnd}_pixels16_x2_mmx
Handle it inside the __asm__() block.
Fixes fate-vc1_ilaced_twomv when using the gcc-usan toolchain.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2014-10-23 13:11:05 -03:00
Michael Niedermayer
c5e337431b avformat/sapdec: Forward whitelists to sdp demuxer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-23 15:28:49 +02:00
Michael Niedermayer
24cd4e5071 avformat/hls: forward whitelists to mpegts demuxer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-23 15:26:46 +02:00
Michael Niedermayer
2de9c5ed98 avutil/avstring: fix hardcoded separator in av_match_list()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-23 12:22:21 +02:00
Michael Niedermayer
3c0b98dced avutil/avstring: Reimplement av_match_list()
av_match_list() is only used for whitelists, fix it so it works with
multi-named formats like "mov,mp4,m4a,3gp,3g2,mj2"

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-23 04:35:24 +02:00
Michael Niedermayer
cebe8c8095 avformat/format: Use av_match_name() instead of list in av_match_ext()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-23 04:33:09 +02:00
Eejya Singh
6dc99fdf0e Added STL demuxer and decoder
Signed-off-by: Clément Bœsch <u@pkh.me>
2014-10-22 23:12:38 +02:00
Lukasz Marek
27c61c32ce ffserver_conf: factorize parse function per config tag
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-10-22 22:37:40 +02:00
Lukasz Marek
d2f8ca4959 ffserver_config: clean up variable initialization
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-10-22 22:37:40 +02:00
Lukasz Marek
f524d2e47c ffserver: move configuration code to separate file
This commit doesn't change any existing logic.
It moves ffserver configuration related code to separate file.
It intends to make maintaining easier.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-10-22 22:37:40 +02:00
Christophe Gisquet
0e8bfd3c93 avcodec/tiffenc: properly compute packet size
The bytes per row is a better indication of it.

Helps resolving ticket #3874 by fixing ffmpeg's encoder and transforming
the issue in a issue with non-compliant decoders. ffmpeg's one is ok,
but unfortunately, many others aren't handling correctly unusual chroma
samplings.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-22 22:28:02 +02:00
Michael Niedermayer
9bdb7a6c1a ffmpeg: avoid endlessly reading from one input while another is unavailable
Testcase in Ticket 4051

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-22 22:26:32 +02:00
Michael Niedermayer
ec6a5fc6cc avformat/mux: Fix assertion failure due to max_interleave_delta and poor input
Fixes Ticket4051

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-22 16:28:49 +02:00
Neil Birkbeck
ad5c43bb36 avfilter/vf_idet: Fixes issue with idet not flushing last frame.
Uses a similar approach as vf_yadif to flush the last frame in idet.

Quick test with 50 frames from vsynth1:
./ffmpeg.old -i fate-suite/ffmpeg-synthetic/vsynth1/%02d.pgm -vf idet -f mp4 -y /dev/null 2>&1  | grep Multi
 (gives) [Parsed_idet_0 @ 0x261ebb0] Multi frame detection: TFF:0 BFF:0 Progressive:48 Undetermined:1

./ffmpeg -i fate-suite/ffmpeg-synthetic/vsynth1/%02d.pgm -vf idet -f mp4 -y /dev/null 2>&1  | grep Multi
 (gives) [Parsed_idet_0 @ 0x35a0bb0] Multi frame detection: TFF:0 BFF:0 Progressive:49 Undetermined:1

Fate tests have been updated.

(In testing, it seems this filter will also need a subsequent patch for single frame input)

Signed-off-by: Neil Birkbeck <neil.birkbeck@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-22 15:07:36 +02:00
Michael Niedermayer
a39201818f avformat/matroskadec: Fix cluster parsing loop which gathers seek information
Fixes Ticket2263
Fixes Ticket3934

Reviewed-by: Rodger Combs <rodger.combs@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-22 13:40:28 +02:00
James Almer
e397edbfba tools/crypto_bench: add CAST5 support
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2014-10-21 22:15:43 -03:00
Michael Niedermayer
c5ffd7aee5 avcodec/mjpegdec: use FF_CEIL_RSHIFT() for width
No testcase known

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-22 02:28:54 +02:00
Carl Eugen Hoyos
b6e8f10bcb lavf/cinedec: Fix a typo in the file header. 2014-10-22 01:37:02 +02:00
Michael Niedermayer
42316907b8 Merge commit 'af7ca6ea124b82b337a6b96e10963e88eba57ebe'
* commit 'af7ca6ea124b82b337a6b96e10963e88eba57ebe':
  nutdec: check av_new_packet return value

Conflicts:
	libavformat/nutdec.c

See: bb502411dd
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-22 00:26:37 +02:00
Michael Niedermayer
dd3f1563d7 Merge commit 'b69183f65d0f6f4cd7a4e6c0deb57d59b0185aba'
* commit 'b69183f65d0f6f4cd7a4e6c0deb57d59b0185aba':
  nutenc: check for negative index rather than assert

Conflicts:
	libavformat/nutenc.c

Not merged, the assert is correct

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-22 00:09:00 +02:00
Michael Niedermayer
979062fe2f Merge commit 'be42c0b8d57fe2ea769892d102ffd5561dc18709'
* commit 'be42c0b8d57fe2ea769892d102ffd5561dc18709':
  rmdec: stricter error check to avoid theoretical unitialized use

Conflicts:
	libavformat/rmdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-21 23:47:44 +02:00
Michael Niedermayer
840bc8e284 Merge commit '7207dd8f829baee58b4df6c97c19ffde77039e8d'
* commit '7207dd8f829baee58b4df6c97c19ffde77039e8d':
  rmdec: check av_new_packet return value

Conflicts:
	libavformat/rmdec.c

See: c01a462cda
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-21 23:01:26 +02:00
Lukasz Marek
6aa1cfed0b lavd/fbdev_common: report error during probing fbdev device
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-10-21 22:57:32 +02:00
Lukasz Marek
da833a6d09 lavd/fbdev_dec: use default device when not provided
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-10-21 22:57:32 +02:00
Michael Niedermayer
3099008f07 Merge commit '629b2ed0ac77d7c4bf1aeac5e70cafee5fa0fcae'
* commit '629b2ed0ac77d7c4bf1aeac5e70cafee5fa0fcae':
  flvdec: make sure to check create_stream and report the same error

Conflicts:
	libavformat/flvdec.c

See: d7d5b5dfc1
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-21 22:35:30 +02:00
Michael Niedermayer
1922357e5a Merge commit 'f22aa6b841dc54fa1dd804303885b1e230a5f629'
* commit 'f22aa6b841dc54fa1dd804303885b1e230a5f629':
  flvdec: avoid unitialized use of a struct member

See: 396ddcf22d
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-21 22:27:17 +02:00
Michael Niedermayer
4542615063 Merge commit 'e73d26bbd65f1ac5fc73ef3fd24cab1bed8ba2e2'
* commit 'e73d26bbd65f1ac5fc73ef3fd24cab1bed8ba2e2':
  smoothstreamingenc: explict cast to avoid overflow

Conflicts:
	libavformat/smoothstreamingenc.c

See: b399816d9c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-21 22:00:04 +02:00
Michael Niedermayer
2f74b8d0ed Merge commit '04d8af5f17961b9b7076b8c974e360feb08787c2'
* commit '04d8af5f17961b9b7076b8c974e360feb08787c2':
  fate-mpeg4: use TARGET_SAMPLES for resize tests

Conflicts:
	tests/fate/mpeg4.mak

See: c40a1bd253
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-21 21:44:48 +02:00
Michael Niedermayer
d5a3a20d1e avcodec/mjpegdec: simplify chroma_height calculation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-21 21:36:17 +02:00
Mika Raento
17702f1fc5 mov.c: reasonable bitrate for fragmented mp4
If using MFRA for timestamps, the stream may start from a large offset
and/or have gaps. With this change we calculate the bitrate based on
frames we've seen.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-21 18:06:18 +02:00
Michael Niedermayer
059c842818 avcodec/mjpegdec: Support 24111100 pix fmt id
Fixes 129533924_640.jpg

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-21 16:41:47 +02:00
Vittorio Giovara
af7ca6ea12 nutdec: check av_new_packet return value
CC: libav-stable@libav.org
Bug-Id: CID 733713
2014-10-21 14:37:48 +01:00
Vittorio Giovara
b69183f65d nutenc: check for negative index rather than assert
CC: libav-stable@libav.org
Bug-Id: CID 703721
2014-10-21 14:37:48 +01:00
Vittorio Giovara
be42c0b8d5 rmdec: stricter error check to avoid theoretical unitialized use
CC: libav-stable@libav.org
Bug-Id: CID 90558
2014-10-21 14:37:48 +01:00
Vittorio Giovara
7207dd8f82 rmdec: check av_new_packet return value
CC: libav-stable@libav.org
Bug-Id: CID 733714
2014-10-21 14:37:48 +01:00
Vittorio Giovara
629b2ed0ac flvdec: make sure to check create_stream and report the same error
CC: libav-stable@libav.org
Bug-Id: CID 732242
2014-10-21 14:37:48 +01:00
Vittorio Giovara
f22aa6b841 flvdec: avoid unitialized use of a struct member
CC: libav-stable@libav.org
Bug-Id: CID 718141
2014-10-21 14:37:48 +01:00
Vittorio Giovara
e73d26bbd6 smoothstreamingenc: explict cast to avoid overflow
CC: libav-stable@libav.org
Bug-Id: CID 732248
2014-10-21 14:37:48 +01:00
Rodger Combs
1372c55786 doc/ffmpeg.texi: document the new -start_at_zero option
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-21 13:38:44 +02:00
Stefano Sabatini
843d7bb3a6 lavfi/concat: accept a single segment
Simplify scripting operations, so that n=1 is not to be considered as a
special case.
2014-10-21 13:28:40 +02:00
Stefano Sabatini
7ba2e134fb lavfi/afade: fix cur_sample computation
Use the correct timebase conversion.
2014-10-21 13:28:08 +02:00
Thilo Borgmann
6e6b79e7b8 lavf/mov.c: Prevent memory leak in case of invalid metadata reads.
Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-21 12:36:52 +02:00
Janne Grunau
04d8af5f17 fate-mpeg4: use TARGET_SAMPLES for resize tests 2014-10-21 09:57:10 +02:00
Andrey Utkin
282c9354f1 avformat/rtsp: Use ff_rtsp_averror()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-21 03:52:27 +02:00
Andrey Utkin
24dfd6e79b avformat/rtspcodes: introduce ff_rtsp_averror()
Currently this is another name for ff_http_averror()

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-21 03:51:14 +02:00
Rodger Combs
315f9e929d ffmpeg_opt: Add -start_at_zero option.
This automatically shifts input timestamps to start at 0 instead of the file's
starting timestamp when using -copyts.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-21 03:31:33 +02:00
Michael Niedermayer
832b4c0a86 avcodec/libutvideodec: print extradata size if unsupported
Reviewed-by: Benoit Fouet <benoit.fouet@free.fr>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-21 03:05:49 +02:00
Michael Niedermayer
cec4e1c7c7 Merge commit 'd2771a1dc0a3695e8873adc16d068077f2417eea'
* commit 'd2771a1dc0a3695e8873adc16d068077f2417eea':
  rtpproto: Free the addrinfo pointer on failure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-20 23:05:06 +02:00
Michael Niedermayer
5753d96771 Merge commit '96bfb677478514db73d1b63b4213c97ad4269e8f'
* commit '96bfb677478514db73d1b63b4213c97ad4269e8f':
  nutdec: Prevent a memory corruption

Conflicts:
	libavformat/nutdec.c

See: 05dd5368a9
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-20 22:35:37 +02:00
Michael Niedermayer
e162db66a2 Merge commit '350ed1829268d343b791208c8fd1cddd44d52a8e'
* commit '350ed1829268d343b791208c8fd1cddd44d52a8e':
  rtpdec_hevc: drop unnecessary check

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-20 22:25:14 +02:00
Michael Niedermayer
20d3348e8a Merge commit '322b571d5591978efd6f6fee12181ac8900079fe'
* commit '322b571d5591978efd6f6fee12181ac8900079fe':
  rtmpproto: remove dead code

See: 3a8b66af6c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-20 22:09:23 +02:00
Michael Niedermayer
2e0ac145d5 Merge commit 'd1afd3e1d6e43f4d37ae147091f270124ac48e04'
* commit 'd1afd3e1d6e43f4d37ae147091f270124ac48e04':
  vf_format: check input validity

See: ee16e0cacc
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-20 22:02:45 +02:00
Lukasz Marek
e493814d61 lavd: export all symbols with av_ prefix
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-10-20 22:01:36 +02:00
Michael Niedermayer
6ef4e0c8b8 Merge commit '7b48bf95242ebf95366d24d32e4cfca6aa77c5e2'
* commit '7b48bf95242ebf95366d24d32e4cfca6aa77c5e2':
  wtv: clean memory on error

See: e47024d72f
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-20 21:52:51 +02:00
Michael Niedermayer
c04f125bb4 Merge commit '9fbc613f0df1628e7e78bca791fa8833846f8210'
* commit '9fbc613f0df1628e7e78bca791fa8833846f8210':
  wtv: check seek_by_sector return value

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-20 21:43:44 +02:00
Michael Niedermayer
36552345d0 Merge commit 'd7f530b0d67fe3996dbfa990a47c865e0d1400a2'
* commit 'd7f530b0d67fe3996dbfa990a47c865e0d1400a2':
  aviobuf: check context before using it

See: 7441d1ec33
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-20 21:25:37 +02:00
Michael Niedermayer
54112629f1 Merge commit '02484d1a9316a9309fc1830825345ab79f6a8d60'
* commit '02484d1a9316a9309fc1830825345ab79f6a8d60':
  avio: fix sizeof argument

See: a96577df38
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-20 21:17:25 +02:00
Michael Niedermayer
ab077b3d7a Merge commit '8ab3b71e4b343cec3fa369a880ab4496d7345154'
* commit '8ab3b71e4b343cec3fa369a880ab4496d7345154':
  idcin: fix return check

See: ee884c3023
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-20 21:00:18 +02:00
Rong Yan
a001db2e2c configure: fix bug to ensure that HAVE_VSX is only enabled when HAVE_ALTIVEC is enabled and in LE environment
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-20 19:58:02 +02:00
Thilo Borgmann
f31445a82d lavf/mov.c: Allocate buffer in case of long metadata entries.
Fixes ticket #4018

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-20 19:27:34 +02:00
Brad Smith
04a4fb81b3 v4l2: Make use of the VIDIOC_ENUM_FRAMESIZES ioctl on OpenBSD
Make use of the V4L2 VIDIOC_ENUM_FRAMESIZES ioctl on OpenBSD.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-20 14:56:58 +02:00
Kevin Mitchell
ff68ceb1b5 avfilter/vf_idet: add both multiple and single frame detection metadata
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-20 14:52:27 +02:00
Luca Barbato
d2771a1dc0 rtpproto: Free the addrinfo pointer on failure
CC: libav-stable@libav.org
Bug-Id: CID 1238797
2014-10-20 10:47:29 +01:00
Luca Barbato
96bfb67747 nutdec: Prevent a memory corruption
Chapters do not have an event_flags field.

Bug-Id: CID 1231990
2014-10-20 10:47:03 +01:00
Vittorio Giovara
350ed18292 rtpdec_hevc: drop unnecessary check
len is always >=1 in that case.

Bug-Id: CID 1238784
2014-10-20 10:44:42 +01:00
Vittorio Giovara
322b571d55 rtmpproto: remove dead code
Expression already evaluated before, redundant since
0533868642.

Bug-Id: CID 732199
2014-10-20 10:44:22 +01:00
Vittorio Giovara
d1afd3e1d6 vf_format: check input validity
CC: libav-stable@libav.org
2014-10-20 10:38:38 +01:00
Vittorio Giovara
7b48bf9524 wtv: clean memory on error
CC: libav-stable@libav.org
Bug-Id: CID 718002
2014-10-20 10:38:38 +01:00
Vittorio Giovara
9fbc613f0d wtv: check seek_by_sector return value
CC: libav-stable@libav.org
Bug-Id: CID 1198258
2014-10-20 10:38:38 +01:00
Vittorio Giovara
d7f530b0d6 aviobuf: check context before using it
Avoid a possible null pointer dereference.

CC: libav-stable@libav.org
Bug-Id: CID 1135769
2014-10-20 10:38:38 +01:00
Michael Niedermayer
02484d1a93 avio: fix sizeof argument
CC: libav-stable@libav.org
Bug-Id: CID 732284
2014-10-20 10:38:38 +01:00
Vittorio Giovara
8ab3b71e4b idcin: fix return check
CC: libav-stable@libav.org
Bug-Id: CID 732198
2014-10-20 10:38:37 +01:00
Michael Niedermayer
b5583fc3e0 avutil/cast5: Fix off by one error
Fixes fate-cast5 on alpha

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-20 05:41:26 +02:00
Andrey Utkin
81ce3f8e80 avformat/http: Use ff_http_averror()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-20 04:31:59 +02:00
Andrey Utkin
9d86ce783b avformat/http: Introduce ff_http_averror()
int ff_http_averror(int status_code, int default_averror)

This helper function returns AVERROR_ value from 3-digit HTTP status
code.

Second argument, default_averror, is used if no specific AVERROR_ is
available. It is introduced because in different places of code
different return codes are used - -1, AVERROR(EIO), AVERROR_INVALIDDATA.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-20 04:31:46 +02:00
Michael Niedermayer
d4e62ebae7 avcodec/snowenc: remove redundant FF_MPV_OFFSET()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-20 04:09:43 +02:00
Clément Bœsch
c669af0f24 avcodec/ass: add ASS trailing \r\n in one single place 2014-10-19 23:24:34 +02:00
Clément Bœsch
3d25869605 avcodec/ass: assume raw=0 in ff_ass_add_rect_bprint 2014-10-19 23:24:34 +02:00
Andrey Utkin
65639e6bef avutil/error: Introduce new error codes for 4XX and 5XX replies from remote servers
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-19 22:32:14 +02:00
Michael Niedermayer
f63d381387 ffprobe: Add support for color_trc/color_pri/chroma_loc
Idea from: a2c00d22e7
Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-19 20:15:37 +02:00
Kacper Michajłow
f22cf88fd3 rtmpproto: Don't mistake app for playpath.
For URLs "rtmp://server[:port]/foo" determine what `foo` refers to. If
application name has been defined by the user assume that `foo` is a
playpath, otherwise assume application name.

Signed-off-by: Kacper Michajłow <kasper93@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-19 18:52:30 +02:00
Nicholas Robbins
22cfa1f759 libavfi: added option to vf_perspective to specify transformation by giving destinations of corners of source.
Signed-off-by: Nicholas Robbins <nickrobbins@yahoo.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-19 17:59:53 +02:00
Kevin Mitchell
9d51bad625 avfilter/vf_idet: add counts to frame metadata
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-19 15:03:13 +02:00
Michael Niedermayer
a71a5c911e avformat/riff: Add UGY2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-19 14:38:19 +02:00
Simon Thelen
69071e8e9c doc/filters: fix localtime drawtext example.
The colon after the localtime function call needs an additional layer of
escaping or else everything until the next colon is treated as a
fontfile.

Signed-off-by: Simon Thelen <ffmpeg-dev@c-14.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-19 05:06:15 +02:00
Michael Niedermayer
057ea2a982 avformat: Add format_whitelist
This allows restricting demuxers to a list of needed ones for improved security
Note, some demuxers themselfs open other demuxers, these are only restricted if
AVOptions are forwarded to them. Please check that your code does that.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-19 04:37:30 +02:00
Michael Niedermayer
5c8eb16769 avcodec: add codec_whitelist
This allows restricting decoders to a list of needed ones for improved security

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-19 04:36:52 +02:00
Michael Niedermayer
e23af4662d avcodec/utils: Display pixel format information as none ... if unknown instead of omitting it
This is similar to 20a5956b8d

The difference this change makes affects only rather few files
but looks like:
Stream #0:1: Video: mjpeg, 90k tbr, 90k tbn, 90k tbc
vs.
Stream #0:1: Video: mjpeg, none(bt470bg/unknown/unknown), 90k tbr, 90k tbn, 90k tbc

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-19 04:18:13 +02:00
Michael Niedermayer
765abb3b76 avcodec/libvpxenc: use av_freep(), do not leave stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-19 03:04:04 +02:00
Michael Niedermayer
c5e295cb9d avcodec/mpegaudiodec_template: use av_freep(), do not leave stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-19 03:03:40 +02:00
Michael Niedermayer
993a2487de avcodec/nellymoserenc: use av_freep(), do not leave stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-19 03:03:04 +02:00
Michael Niedermayer
52bf4ad674 Merge commit '0034314a69e76a53534a74cceef865cfcb7b42cc'
* commit '0034314a69e76a53534a74cceef865cfcb7b42cc':
  rtmp: Always call rtmp_close() on rtmp_open() failure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-18 23:48:21 +02:00
Michael Niedermayer
fa040c2247 Merge commit 'fc1eda543c6ef043300612db90da5cfd972af650'
* commit 'fc1eda543c6ef043300612db90da5cfd972af650':
  swscale: fix sign extensions in yuv planar conversion

Conflicts:
	libswscale/rgb2rgb_template.c

See: a07e9d72a1
See: a30972609c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-18 23:40:50 +02:00
Michael Niedermayer
837605704d Merge commit 'b7c77912b62163b3b46ce93fe42fff3c83604c82'
* commit 'b7c77912b62163b3b46ce93fe42fff3c83604c82':
  oss_audio: use a macro to simplify ioctl() error checking

Conflicts:
	libavdevice/oss_audio.c

See: 69c7aad494
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-18 23:22:33 +02:00
Michael Niedermayer
85cf049d50 Merge commit '963f76144897d3f7684d82ec21e51dd50ea1106e'
* commit '963f76144897d3f7684d82ec21e51dd50ea1106e':
  avresample: Make sure the even check does not overflow

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-18 22:53:23 +02:00
Michael Niedermayer
9bcc430481 Merge commit '088eca28164c8cd3b72b0c3d3f9e3fe5ee5cb28f'
* commit '088eca28164c8cd3b72b0c3d3f9e3fe5ee5cb28f':
  avresample: prevent theoretical division by zero

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-18 22:15:23 +02:00
Michael Niedermayer
733db64ce0 Merge commit '0d989dbfc4bc5bc1d563e967449116a7a9865258'
* commit '0d989dbfc4bc5bc1d563e967449116a7a9865258':
  af_resample: check av_opt_set_dict return value

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-18 22:04:36 +02:00
Michael Niedermayer
3a4c22f806 Merge commit '6d96c7ea89600655b1f18a3b12f3f041fa714152'
* commit '6d96c7ea89600655b1f18a3b12f3f041fa714152':
  vf_showinfo: Forward the av_image_get_linesize error

Conflicts:
	libavfilter/vf_showinfo.c

See: 2aecfd4f20
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-18 21:50:34 +02:00
Michael Niedermayer
0b2f860db5 Merge commit 'f401792595dd7760f531e8a3bd2336e9033bd45a'
* commit 'f401792595dd7760f531e8a3bd2336e9033bd45a':
  vf_drawtext: Do not leak the mmapped textfile

Conflicts:
	libavfilter/vf_drawtext.c

See: 6956b048d8
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-18 21:33:04 +02:00
Michael Niedermayer
f4445c7be4 avcodec/wmv2enc: add priv_class
Fixes ratecontrol code

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-18 20:06:29 +02:00
Michael Niedermayer
bf301258b4 avcodec/snowenc: add FF_MPV_COMMON_OPTS
This fixes the ratecontrol code with snow
adding FF_MPV_COMMON_OPTS is needed as the generic rate control options
are currently in the (unrelated) MpegEncContext

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-18 19:41:48 +02:00
Michael Niedermayer
25f4e9387d Merge commit '530c1441fd1426b6a4bb33485ff3226e1ae0ad45'
* commit '530c1441fd1426b6a4bb33485ff3226e1ae0ad45':
  lavc: make lmax/lmin into private options of mpegvideo encoders

Conflicts:
	libavcodec/avcodec.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-18 19:23:00 +02:00
Michael Niedermayer
ae6ba2db8f avcodec/mjpegenc: add priv_class to encoders
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-18 19:13:20 +02:00
Alexander Drozdov
0034314a69 rtmp: Always call rtmp_close() on rtmp_open() failure
Prevent possible memory leaks.

Connect to nginx and request a non-existent resource to
trigger the issue.

CC: libav-stable@libav.org

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Uwe L. Korn <uwelk@xhochy.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-10-18 17:37:11 +02:00
Vittorio Giovara
fc1eda543c swscale: fix sign extensions in yuv planar conversion
Casting the left-most byte to unsigned avoids an undefined
result of the shift by 24 if bit 7 is set.

yuvPlanartouyvy_c and yuvPlanartoyuy2_c are affected.

CC: libav-stable@libav.org
Bug-Id: CID 732281 / CID 732282
2014-10-18 16:15:10 +01:00
Timothy Gu
b7c77912b6 oss_audio: use a macro to simplify ioctl() error checking
Also add a note about SNDCTL_DSP_GETFMTS which may fail even if OSS is
available.

CC: libav-stable@libav.org
Bug-Id: CID 1238992
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-10-18 16:15:10 +01:00
Luca Barbato
963f761448 avresample: Make sure the even check does not overflow
CC: libav-stable@libav.org
Bug-Id: CID 732225
2014-10-18 16:15:10 +01:00
Vittorio Giovara
088eca2816 avresample: prevent theoretical division by zero
CC: libav-stable@libav.org
Bug-Id: CID 1231986
2014-10-18 16:15:10 +01:00
Vittorio Giovara
0d989dbfc4 af_resample: check av_opt_set_dict return value
CC: libav-stable@libav.org
Bug-Id: CID 1087076
2014-10-18 16:15:10 +01:00
Vittorio Giovara
6d96c7ea89 vf_showinfo: Forward the av_image_get_linesize error
CC: libav-stable@libav.org
Bug-Id: CID 1087086
2014-10-18 16:15:10 +01:00
Luca Barbato
f401792595 vf_drawtext: Do not leak the mmapped textfile
And validate its size while at it.

CC: libav-stable@libav.org
Bug-Id: CID 1244189
2014-10-18 16:15:09 +01:00
Giorgio Vazzana
b48c95b6c9 libavutil: Add missing av_free() to cast5 selftest
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-18 16:57:54 +02:00
Michael Niedermayer
709ab39cb9 Merge commit '15ec053c4c0b198a2e93eb8e60c8f41e091e0c40'
* commit '15ec053c4c0b198a2e93eb8e60c8f41e091e0c40':
  lavc: make border_masking into private options of mpegvideo encoders

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-18 15:58:55 +02:00
Michael Niedermayer
1a5871d1be Merge commit 'c4f7bee0872d5e2e0e91673dd4b0f18de4a3d866'
* commit 'c4f7bee0872d5e2e0e91673dd4b0f18de4a3d866':
  lavc: deprecate unused mb_threshold field

Conflicts:
	libavcodec/options_table.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-18 15:42:29 +02:00
Michael Niedermayer
8be1120deb Merge commit '685be3d1aecf965281128f3b631ed965bcfa754d'
* commit '685be3d1aecf965281128f3b631ed965bcfa754d':
  libvpxenc: add static-thresh private option

Conflicts:
	libavcodec/libvpxenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-18 15:33:57 +02:00
Michael Niedermayer
c48e8d9dca Merge commit '59b55c494e01de09dfd7cbf9cbbe7223265ac283'
* commit '59b55c494e01de09dfd7cbf9cbbe7223265ac283':
  lavc: deprecate unused me_threshold field

Conflicts:
	ffmpeg.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-18 15:04:42 +02:00
Michael Niedermayer
fc67d937cc Merge commit '66a68ddd1ac376b24db8695058bc8fc28f5bada6'
* commit '66a68ddd1ac376b24db8695058bc8fc28f5bada6':
  lavc: make rc_buffer_aggressivity/rc_initial_cplx into private options of mpegvideo encoders

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-18 14:18:41 +02:00
Michael Niedermayer
ec8f56efad Merge commit 'a75c2eb25a62105c09b48521aef429dc8a231637'
* commit 'a75c2eb25a62105c09b48521aef429dc8a231637':
  lavc: make rc_eq into private options of mpegvideo encoders

Conflicts:
	libavcodec/options_table.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-18 14:06:15 +02:00
Michael Niedermayer
17a065cf20 Merge commit '946f95354ba76ef73c9b66889d86ab5fba4fb486'
* commit '946f95354ba76ef73c9b66889d86ab5fba4fb486':
  lavc: make rc_qmod_* into private options of mpegvideo encoders

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-18 13:52:06 +02:00
Michael Niedermayer
7412835204 Merge commit 'a6e4ce9fd50897dc6d9c2ada4b6b8090de7de5bf'
* commit 'a6e4ce9fd50897dc6d9c2ada4b6b8090de7de5bf':
  lavc: make rc_qsquish a private option of mpegvideo encoders

Conflicts:
	libavcodec/avcodec.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-18 13:30:38 +02:00
Michael Niedermayer
17d16008be Merge commit '6cbbf0592f4f3940aac7f687850d1b726a2ea836'
* commit '6cbbf0592f4f3940aac7f687850d1b726a2ea836':
  resample: Avoid off-by-1 errors in PTS calcs.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-18 12:47:37 +02:00
Michael Niedermayer
7321fc2f43 tests/fate/mpeg4: add -sws_flags +bitexact
Should fix fate-mpeg4-resolution-change tests

Found-by: ubitux
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-18 12:44:32 +02:00
Michael Niedermayer
83a897656a Merge commit 'fb238f8230c1b0314985482207add548c68f83cf'
* commit 'fb238f8230c1b0314985482207add548c68f83cf':
  urlprotocol: remove unused url_interrupt_cb declaration

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-18 12:16:04 +02:00
Anton Khirnov
530c1441fd lavc: make lmax/lmin into private options of mpegvideo encoders 2014-10-18 05:29:14 +02:00
Anton Khirnov
15ec053c4c lavc: make border_masking into private options of mpegvideo encoders 2014-10-18 05:28:40 +02:00
Anton Khirnov
c4f7bee087 lavc: deprecate unused mb_threshold field 2014-10-18 05:28:29 +02:00
Anton Khirnov
685be3d1ae libvpxenc: add static-thresh private option
Currently, this option is accessed through AVCodecContext.mb_threshold,
which originally controlled reusing MB data when transcoding mpeg to
mpeg. Since the libvpx meaning is completely different from the original
mpegvideo meaning, it is better to use a separate private option for
this.
2014-10-18 05:28:03 +02:00
Anton Khirnov
59b55c494e lavc: deprecate unused me_threshold field 2014-10-18 05:26:56 +02:00
Anton Khirnov
66a68ddd1a lavc: make rc_buffer_aggressivity/rc_initial_cplx into private options of mpegvideo encoders 2014-10-18 05:26:29 +02:00
Anton Khirnov
a75c2eb25a lavc: make rc_eq into private options of mpegvideo encoders 2014-10-18 05:23:51 +02:00
Anton Khirnov
946f95354b lavc: make rc_qmod_* into private options of mpegvideo encoders 2014-10-18 05:23:05 +02:00
Anton Khirnov
a6e4ce9fd5 lavc: make rc_qsquish a private option of mpegvideo encoders 2014-10-18 05:21:50 +02:00
Timothy B. Terriberry
6cbbf0592f resample: Avoid off-by-1 errors in PTS calcs.
The rounding used in the PTS calculations in filter_frame() does
not actually match the number of samples output by the resampler.
This leads to off-by-1 errors in the timestamps indicating gaps and
underruns, even when the input timestamps are all contiguous.

Bug-Id: 753

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-10-18 05:01:59 +02:00
Anton Khirnov
fb238f8230 urlprotocol: remove unused url_interrupt_cb declaration
It is a remnant of the old interrupt callback API.
2014-10-18 05:01:20 +02:00
Michael Niedermayer
7891b4fa59 Merge commit '9bec3ca2b878c83d2337bc6095bd51c3e3f8eef0'
* commit '9bec3ca2b878c83d2337bc6095bd51c3e3f8eef0':
  rtmpproto: Add pause support

Conflicts:
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-18 03:12:10 +02:00
Michael Niedermayer
178764e833 Merge commit 'f4cd8b80b9cb2a9a4112d8abb1d3b93cd3b4e467'
* commit 'f4cd8b80b9cb2a9a4112d8abb1d3b93cd3b4e467':
  rtmpproto: Track last received timestamp

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-18 03:01:35 +02:00
Benoit Fouet
e06263ef1e configure: add pkg-config support for libx264
Reviewed-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
Tested-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-18 02:36:25 +02:00
Supraja Meedinti
0eabbe2101 libavutil: Add CAST128 symmetric block cipher
Only ECB mode is supported at the moment

Signed-off-by: Supraja Meedinti <supraja0493@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-18 01:33:45 +02:00
Marton Balint
2c4d6a342d ffplay: update documentation
Reviewed-by: Lou Logan <lou@lrcd.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2014-10-18 00:48:49 +02:00
Marton Balint
0edf3e7a28 ffplay: remove manual bug option handling code
It is supported as a codec option, and those are already parsed.

Signed-off-by: Marton Balint <cus@passwd.hu>
2014-10-17 23:44:04 +02:00
Marton Balint
9dac7977a9 ffplay: remove delays when paused from video and subtitle thread
Once the frame queue is full, we will wait anyway.

Signed-off-by: Marton Balint <cus@passwd.hu>
2014-10-17 23:44:04 +02:00
Uwe L. Korn
9bec3ca2b8 rtmpproto: Add pause support
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-17 23:13:51 +03:00
Uwe L. Korn
f4cd8b80b9 rtmpproto: Track last received timestamp
Some RTMP commands need the most recent timestamp as their parameter, so
keep track of it. This must be the most recent one and not e.g. the max
received timestamp as it can decrease again through seeking.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-17 23:13:37 +03:00
Mika Raento
75c8d7c2b4 hlsenc.c, segment.c: propagate defaults to mpegts
This fixes the abnormally high ts overhead in the files produced by the
HLS and segments muxers. See https://trac.ffmpeg.org/ticket/2857 . For
example makes it much more likely that it can produces streams that fit
under the 64kb App store limit.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-17 21:31:25 +02:00
Michael Niedermayer
0b0d47e4b2 Merge commit 'bae557edcea996328e8ff48b9e074a4210f7e6b4'
* commit 'bae557edcea996328e8ff48b9e074a4210f7e6b4':
  dump: display codec tags when available

Conflicts:
	libavcodec/utils.c

See: d2d7b7134f
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-17 21:13:01 +02:00
Michael Niedermayer
45fed258ee Merge commit '66e9f839536238945fbfe9d2041b6891cb150e45'
* commit '66e9f839536238945fbfe9d2041b6891cb150e45':
  libfdk-aacdec: Enable Dynamic Range Control Metadata Support

Conflicts:
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-17 20:45:43 +02:00
Michael Niedermayer
e18fc35a07 avcodec/libfdk-aacdec: use av_feeep() to avoid leaving stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-17 20:36:14 +02:00
Michael Niedermayer
5a1aa55905 Merge commit 'b01a2204b5cff7bb920f42fda1bb0103f450fe93'
* commit 'b01a2204b5cff7bb920f42fda1bb0103f450fe93':
  libfdk-aacdec: Enable Decoder Downmix including Downmix Metadata Support

Conflicts:
	libavcodec/libfdk-aacdec.c
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-17 20:35:43 +02:00
Benoit Fouet
242f8bb3a8 avformat/id3v2: support buggy id3v2.3 tag length in id3v2.4
Some encoders do not use syncsafe sizes in v2.4 id3 tags. Check the next
tag to try to choose between the two.

Fixes ticket #4003

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-17 16:05:53 +02:00
Benoit Fouet
ac1594bc17 gitignore: add test_copy.ffmeta
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-17 15:57:12 +02:00
Vittorio Giovara
bae557edce dump: display codec tags when available
For both audio and video.
2014-10-17 14:45:07 +01:00
Michael Niedermayer
3dda0bbe42 Merge commit 'e65c776d18dc14df8a279e017760862f9fc8763b'
* commit 'e65c776d18dc14df8a279e017760862f9fc8763b':
  rtmpproto: Add getStreamLength call to query duration

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-17 15:34:27 +02:00
Michael Niedermayer
6cf9d02cea Merge commit '324b23dde1bc8638959eb32419c95a93906db272'
* commit '324b23dde1bc8638959eb32419c95a93906db272':
  rtmpproto: Add function to read a number response

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-17 15:21:40 +02:00
Michael Niedermayer
1eda312aca Merge commit '47e3e1097e09da7f973908e09df15e3bb7c5e1f4'
* commit '47e3e1097e09da7f973908e09df15e3bb7c5e1f4':
  cmdutils: Use the correct guard

Conflicts:
	cmdutils.c

See: 35daf3ca81
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-17 14:57:40 +02:00
Omer Osman
66e9f83953 libfdk-aacdec: Enable Dynamic Range Control Metadata Support
For streams which contain DRC metadata, the FDK decoder is able to
control rendering of the decoded output. The rendering parameters
are detailed in fdk_aac_dec_options [].

The default behavior is left up to the decoder.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-17 15:48:31 +03:00
Omer Osman
b01a2204b5 libfdk-aacdec: Enable Decoder Downmix including Downmix Metadata Support
The FDK decoder is capable of producing mono and stereo downmix from
multichannel streams. These streams may contain metadata that control
the downmix process. The decoder requires an Ancillary Buffer in order to
correctly apply downmix in streams containing downmix Metadata. The
decoder does not have an API interface to inform of the presence of
Metadata in the stream, and therefore the Ancillary Buffer is always
allocated whenever a downmix is requested.

When downmixing multichannel streams, the decoder requires the output
buffer in aacDecoder_DecodeFrame call to be of fixed size in order to
hold the actual number of channels contained in the stream. For example,
for a 5.1ch to stereo downmix, the decoder requires that the output buffer
is allocated for 6 channels, regardless of the fact that the output is in
fact two channels.

Due to this requirement, the output buffer is allocated for the maximum
output buffer size in case a downmix is requested (and also during
decoder init). When a downmix is requested, the buffer used for output
during init will also be used for the entire duration the decoder is open.
Otherwise, the initial decoder output buffer is freed and the decoder
decodes straight into the output AVFrame.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-17 15:48:30 +03:00
Michael Niedermayer
7dba57d1fa Merge commit '0db6bbb24c1a9f6b5527f460361a5a4132248eee'
* commit '0db6bbb24c1a9f6b5527f460361a5a4132248eee':
  avformat: Make avformat_free_context handle NULL

See: ee23dcf534
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-17 14:23:01 +02:00
Michael Niedermayer
61c6e69709 Merge commit 'c92965dbfbb7e2b49df14db2fd0e23a29295730a'
* commit 'c92965dbfbb7e2b49df14db2fd0e23a29295730a':
  avconv: check return value

Conflicts:
	ffmpeg.c

See: 4930cd13d6
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-17 14:09:15 +02:00
Michael Niedermayer
1dd38e99fd Merge commit 'c802a2e718fb3619291f310f851f1a1cdcf4f581'
* commit 'c802a2e718fb3619291f310f851f1a1cdcf4f581':
  avconv: fix leak in filter error

Conflicts:
	ffmpeg_filter.c

See: 14369f59c5
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-17 13:47:49 +02:00
Michael Niedermayer
9d1155dae3 Merge commit 'aeb23fc4549a25ef32ff085d2a76227f90caf403'
* commit 'aeb23fc4549a25ef32ff085d2a76227f90caf403':
  avprobe: Remove a pointless check

Conflicts:
	avprobe.c

No change as the code does not exist in ffprobe

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-17 13:35:27 +02:00
Michael Niedermayer
ee73a69020 Merge commit 'e58a140cf91d1a9cdfa3115d73c923dab0e9e7dc'
* commit 'e58a140cf91d1a9cdfa3115d73c923dab0e9e7dc':
  avplay: Always free opts

Conflicts:
	ffplay.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-17 13:28:50 +02:00
Michael Niedermayer
019ff7a0c3 Merge commit 'cf83c0173917a44b89a25ea2b435429bbf9ee767'
* commit 'cf83c0173917a44b89a25ea2b435429bbf9ee767':
  avplay: Always free find_stream_info options

Conflicts:
	ffplay.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-17 13:17:05 +02:00
Michael Niedermayer
c40a1bd253 tests/fate/mpeg4: fix samples path
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-17 13:07:55 +02:00
Michael Niedermayer
a708689fda Merge commit 'f29c226af0ecc34c417b646580a9acd7d8bbaf48'
* commit 'f29c226af0ecc34c417b646580a9acd7d8bbaf48':
  fate: add mpeg4 tests for frame size changes

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-17 12:59:07 +02:00
Michael Niedermayer
1aed82846c avformat/m4vdec: mark as possibly containing discontinuities
This will be needed for the resolution change mpeg4 test

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-17 12:51:49 +02:00
Uwe L. Korn
e65c776d18 rtmpproto: Add getStreamLength call to query duration
In (non-live) streams with no metadata, the duration of a stream can
be retrieved by calling the RTMP function getStreamLength with the
playpath. The server will return a positive duration upon the request if
the duration is known, otherwise either no response or a duration of 0
will be returned.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-17 12:07:19 +03:00
Uwe L. Korn
324b23dde1 rtmpproto: Add function to read a number response
Packets that contain a number as a result to a rtmp function call are
structured the same way (String, Number, Null, Number). This new method
also includes more bounds checks to better handle packets that are not
structured as expected.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-17 12:07:19 +03:00
Luca Barbato
47e3e1097e cmdutils: Use the correct guard
The OptionDef arrays are terminated with a { NULL } element not NULL.

CC: libav-stable@libav.org
Bug-Id: CID 703769
2014-10-17 09:55:46 +01:00
Luca Barbato
0db6bbb24c avformat: Make avformat_free_context handle NULL
Work as the other free()-like functions.

Bug-Id: CID 1087081
CC: libav-stable@libav.org
2014-10-17 09:55:46 +01:00
Vittorio Giovara
c92965dbfb avconv: check return value
CC: libav-stable@libav.org
Bug-Id: CID 1224275
2014-10-17 09:55:46 +01:00
Vittorio Giovara
c802a2e718 avconv: fix leak in filter error
CC: libav-stable@libav.org
Bug-Id: CID 1005311
2014-10-17 09:55:46 +01:00
Luca Barbato
aeb23fc454 avprobe: Remove a pointless check
The element is always valid.

CC: libav-stable@libav.org
Bug-Id: CID 732276
2014-10-17 09:55:46 +01:00
Luca Barbato
e58a140cf9 avplay: Always free opts
CC: libav-stable@libav.org
Bug-Id: CID 733793
2014-10-17 09:55:46 +01:00
Luca Barbato
cf83c01739 avplay: Always free find_stream_info options
CC: libav-stable@libav.org
Bug-Id: CID 1238794
2014-10-17 09:55:46 +01:00
Janne Grunau
f29c226af0 fate: add mpeg4 tests for frame size changes 2014-10-17 09:58:31 +02:00
Moritz Barsnick
bbd8c85263 doc/filters.texi: fix several typos in the vidstab* sections
Also create an anchor for the unsharp filter, and references to
it in its mentions.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-17 06:23:13 +02:00
James Almer
864f9326fb x86/vf_noise: move asm code to a separate file
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2014-10-17 00:44:35 -03:00
Michael Niedermayer
f6bb2cd1b0 swresample/resample: fix invert_initial_buffer() after flush
Fixes: asan_heap-uaf_2071250_7_139.ogg
Fixes: assertion failure
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-16 22:35:27 +02:00
Michael Niedermayer
080c846f59 swresample: do not put multiple statements in one line
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-16 18:18:40 +02:00
Benoit Fouet
8bcf425d06 avformat/id3v2: silence a warning when CONFIG_ZLIB is unset.
dlen is only read when CONFIG_ZLIB is set, so mark it as possibly
unused.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-16 15:54:02 +02:00
Michael Niedermayer
4f1a252fd3 avfilter/vf_noise: Use a separate seed for each plane
This should reduce the correlation between planes

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-16 15:05:17 +02:00
Michael Niedermayer
ed3efbcd0c avfilter/vf_noise: use per component rand_shift
This allows using different shifts per plane

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-16 15:04:49 +02:00
Michael Niedermayer
aba61b22f7 avfilter/vf_noise: move shift calculation to filter_frame()
This makes the temporal noise case deterministic with threads

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-16 14:28:47 +02:00
Michael Niedermayer
411be72dcb avfilter/vf_noise: fix high resolution support
Fixes Ticket4017
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-16 13:23:39 +02:00
Michael Niedermayer
a9b613b60e Merge commit '979932378ae3fbf452e312eb759cc7ce175f78de'
* commit '979932378ae3fbf452e312eb759cc7ce175f78de':
  ismindex: use tfhd default duration if no sample duration

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-16 12:45:01 +02:00
Michael Niedermayer
293a8e426f Merge commit '460b509a34fb5fad3bedac8429f53594d3923ea8'
* commit '460b509a34fb5fad3bedac8429f53594d3923ea8':
  rtsp: Check a memory allocation

See: c69f230a3a
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-16 12:28:52 +02:00
Carl Eugen Hoyos
392b4b663c Fix initialisers in dct-test.c.
Silences a warning when running fate on unusual platforms:
libavcodec/dct-test.c:101:21: warning: missing braces around initializer [-Wmissing-braces]
libavcodec/dct-test.c:101:21: warning: (near initialization for 'fdct_tab_arch[0]') [-Wmissing-braces]
libavcodec/dct-test.c:102:21: warning: missing braces around initializer [-Wmissing-braces]
libavcodec/dct-test.c:102:21: warning: (near initialization for 'idct_tab_arch[0]') [-Wmissing-braces]
2014-10-16 12:01:26 +02:00
Mika Raento
979932378a ismindex: use tfhd default duration if no sample duration
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-16 09:22:22 +03:00
Michael Lynch
460b509a34 rtsp: Check a memory allocation
CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-16 09:19:03 +03:00
Di Wu
0e406aba14 mpegts: add the judgement if a new program is created successfully
Add the judement after create a new program to avoid segment fault.

Signed-off-by: Di Wu <di1028.wu@samsung.com>
Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-16 04:21:21 +02:00
Michael Niedermayer
d267a0f8c1 avformat/util: Simplify av_guess_frame_rate() by using AVCodecContext.framerate
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-16 02:46:11 +02:00
Michael Niedermayer
004f1c6cf1 avformat/utils: Try to correct the codec_framerate in ff_compute_frame_duration() for the encoding case
No testcase where this makes a difference is known

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-16 02:46:02 +02:00
Michael Niedermayer
46f52274f3 avformat/oggparsedirac: use AVCodecContext.framerate
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-16 01:31:09 +02:00
Michael Niedermayer
7b6a97edd1 avcodec/avcodec: more verbose documentation for time_base
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-16 00:28:57 +02:00
Michael Niedermayer
2f7bd04afb avcodec/avcodec: fix non doxy comment
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-16 00:10:38 +02:00
Michael Niedermayer
917f86f479 Merge commit '79dd756e143a54efc25d64e90505f0dca6cbc4ec'
* commit '79dd756e143a54efc25d64e90505f0dca6cbc4ec':
  rtmpproto: Fix a typo

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-16 00:02:54 +02:00
Michael Niedermayer
f09162c06b Merge commit 'ced7238cd01cc2199acf9225305628641a27c1d7'
* commit 'ced7238cd01cc2199acf9225305628641a27c1d7':
  rtpdec_hevc: Use av_realloc instead of av_malloc+memcpy

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-15 23:23:53 +02:00
Michael Niedermayer
60a876fe7b Merge commit '752e71e74f50e7a6f9a19edb8e775b2ea2fb94d8'
* commit '752e71e74f50e7a6f9a19edb8e775b2ea2fb94d8':
  rtpdec_hevc: Rename a variable for clarity

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-15 22:03:11 +02:00
Michael Niedermayer
16f9f7b881 Merge commit '74b02377980321934e33969c84733ace7e9f4eeb'
* commit '74b02377980321934e33969c84733ace7e9f4eeb':
  mov: Correctly check the color transfer characteristics range

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-15 21:40:13 +02:00
Michael Niedermayer
cacc1dcadc Merge commit '1ac5a29b2e5ddeae068deb9d6e0e803a91941d4d'
* commit '1ac5a29b2e5ddeae068deb9d6e0e803a91941d4d':
  imc: fix order of operations in coefficients read

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-15 21:25:10 +02:00
Michael Niedermayer
1b54e6b12b avformat/mov: auodetect "use_mfra_for"
Reviewed-by: Mika Raento <mikie@iki.fi>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-15 20:17:23 +02:00
Yu Xiaolei
8091fe3071 build: mov_muxer requires ac3_parser
Reviewed-by: Benoit Fouet <benoit.fouet@free.fr>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-15 20:15:59 +02:00
Michael Lynch
c69f230a3a avformat/rtsp: check memory allocation
Reviewed-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Commit message by: Benoit Fouet <benoit.fouet@free.fr>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-15 20:04:32 +02:00
Martin Storsjö
79dd756e14 rtmpproto: Fix a typo
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-15 21:00:39 +03:00
Martin Storsjö
ced7238cd0 rtpdec_hevc: Use av_realloc instead of av_malloc+memcpy
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-15 20:54:32 +03:00
Martin Storsjö
752e71e74f rtpdec_hevc: Rename a variable for clarity
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-15 20:54:30 +03:00
Lou Logan
8a95379990 doc/encoders: add basic libx265 documentation
Fixes ticket #3944.

Signed-off-by: Lou Logan <lou@lrcd.com>
2014-10-15 09:45:54 -08:00
Clément Bœsch
52b0a0ecaa avcodec/ass: add FFmpeg signature 2014-10-15 19:25:06 +02:00
Clément Bœsch
d281a87ae3 avformat/assdec: typo fix 2014-10-15 19:25:06 +02:00
Clément Bœsch
462f2876ce avcodec/ass_split: realign after addition of new fields 2014-10-15 19:25:06 +02:00
Clément Bœsch
3e86ead383 avcodec/ass_split: assume default order when "Format:" line is not found
Fixes the decoding of the ASS stream in a mkv from a fansub release from
Coalgirls.
2014-10-15 19:25:06 +02:00
Clément Bœsch
d9f272fe33 avcodec/ass_split: extend recognized fields in ASS splitter
This simplifies the logic for the fix in the next commit.
2014-10-15 19:25:06 +02:00
Clément Bœsch
40b9f28641 avcodec/ass: output missing fields in AVSubtitles and output files
Fixes Ticket #3207
2014-10-15 19:25:06 +02:00
Clément Bœsch
bf700a995d avformat/assenc: support remuxing old V4 ASS form (SSA) 2014-10-15 19:24:40 +02:00
Clément Bœsch
b243393e8b fate: fix some subtitles tests dependencies 2014-10-15 19:24:39 +02:00
Clément Bœsch
d97d4795fd fate: add rawdiff and use it for subtitles
We want subtitles tests to match exactly line endings and trailing
characters.
2014-10-15 19:24:39 +02:00
Clément Bœsch
8022bb1d92 fate: make subtitles tests output to stdout instead of md5
This makes tracking subtitles changes simpler.
2014-10-15 19:24:39 +02:00
Lou Logan
b629b421d7 doc/filters: update link to OpenCV docs
Signed-off-by: Lou Logan <lou@lrcd.com>
2014-10-15 09:18:54 -08:00
Michael Niedermayer
a9ed4f1d15 Merge commit 'e5cfc8fdad901c9487fe896421972852f38bcf5'
* commit 'e5cfc8fdad901c9487fe896421972852f38bcf5':
  sdp: Provide out of bound parameter sets for HEVC if extradata is set

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-15 19:16:55 +02:00
Michael Niedermayer
6afc319eee Merge commit '9b7f932ee568cadfc0f556a061fcc00cb63f9780'
* commit '9b7f932ee568cadfc0f556a061fcc00cb63f9780':
  rtpdec_hevc: Parse out of band vps/sps/pps/sei from fmtp lines

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-15 19:04:22 +02:00
Michael Niedermayer
137f7a630b Merge commit '557d4c4ecae080729e68df54ed2bd8420d0f037a'
* commit '557d4c4ecae080729e68df54ed2bd8420d0f037a':
  avconv: replace AVCodecContext.time_base with framerate

Conflicts:
	ffmpeg.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-15 18:56:44 +02:00
Michael Niedermayer
a92192d2e4 avformat/utils: use av_reduce() to simplify code and avoid overflow in ff_compute_frame_duration()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-15 18:23:21 +02:00
Michael Niedermayer
2b37864e7f Merge commit '2d6e58497e76836604364b037df9b00ba3d75b69'
* commit '2d6e58497e76836604364b037df9b00ba3d75b69':
  lavf: switch to AVCodecContext.framerate for demuxing

Conflicts:
	libavformat/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-15 18:19:58 +02:00
Michael Niedermayer
18255441dd avcodec/dpx: fix framerate
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-15 16:08:36 +02:00
Michael Niedermayer
220a15c074 avcodec/vc1: fix time_base and framerate
They are not just inverses of each other.
This should restore behavior to before the introduction of framerate

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-15 16:08:36 +02:00
Michael Niedermayer
09450c5509 avcodec/h264: fix time_base and framerate
They are not just inverses of each other.
This should restore behavior to before the introduction of framerate

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-15 16:08:36 +02:00
Michael Niedermayer
620e7f0f3b avcodec/mpeg12dec: fix time_base and framerate
They are not just inverses of each other.
This should restore behavior to before the introduction of framerate

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-15 15:54:02 +02:00
Michael Niedermayer
801876fb07 avcodec/utils: fix time_base after the framerate addition
time_base != 1/framerate for example for interlaced video

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-15 15:52:35 +02:00
Michael Niedermayer
17085a0251 Merge commit '7ea1b3472a61de4aa4d41b571e99418e4997ad41'
* commit '7ea1b3472a61de4aa4d41b571e99418e4997ad41':
  lavc: deprecate the use of AVCodecContext.time_base for decoding

Conflicts:
	libavcodec/avcodec.h
	libavcodec/h264.c
	libavcodec/mpegvideo_parser.c
	libavcodec/utils.c
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-15 15:49:31 +02:00
Vittorio Giovara
74b0237798 mov: Correctly check the color transfer characteristics range
Reported-by: Ruoyu <liangry@ucweb.com>
2014-10-15 14:48:40 +01:00
Vittorio Giovara
1ac5a29b2e imc: fix order of operations in coefficients read
Reported-by: Ruoyu <liangry@ucweb.com>
2014-10-15 14:48:07 +01:00
Michael Niedermayer
51c810e62b Merge commit 'd565fef1b83b6c5f8afb32229260b79f67c68109'
* commit 'd565fef1b83b6c5f8afb32229260b79f67c68109':
  vdpau: add AV_HWACCEL_FLAG_IGNORE_LEVEL to skip the codec level check

Conflicts:
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-15 12:30:07 +02:00
Michael Niedermayer
fd937866f7 Merge commit 'c1724623ce0433c6a9ee72133b1fd4db75ec7193'
* commit 'c1724623ce0433c6a9ee72133b1fd4db75ec7193':
  vdpau: have av_vdpau_bind_context() fail on unsupported flag

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-15 12:17:59 +02:00
Michael Niedermayer
a72e75bf98 Merge commit 'e09a947c1a856d9d34199a13ee378fe46be53d3a'
* commit 'e09a947c1a856d9d34199a13ee378fe46be53d3a':
  doc: fix typing mistake

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-15 12:08:26 +02:00
Martin Storsjö
e5cfc8fdad sdp: Provide out of bound parameter sets for HEVC if extradata is set
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-15 12:12:54 +03:00
Martin Storsjö
9b7f932ee5 rtpdec_hevc: Parse out of band vps/sps/pps/sei from fmtp lines
These are assembled into extradata in the order vps/sps/pps/sei.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-15 12:12:02 +03:00
Anton Khirnov
557d4c4eca avconv: replace AVCodecContext.time_base with framerate 2014-10-15 06:38:16 +00:00
Anton Khirnov
2d6e58497e lavf: switch to AVCodecContext.framerate for demuxing 2014-10-15 06:37:55 +00:00
Anton Khirnov
7ea1b3472a lavc: deprecate the use of AVCodecContext.time_base for decoding
When decoding, this field holds the inverse of the framerate that can be
written in the headers for some codecs. Using a field called 'time_base'
for this is very misleading, as there are no timestamps associated with
it. Furthermore, this field is used for a very different purpose during
encoding.

Add a new field, called 'framerate', to replace the use of time_base for
decoding.
2014-10-15 06:37:43 +00:00
Rémi Denis-Courmont
d565fef1b8 vdpau: add AV_HWACCEL_FLAG_IGNORE_LEVEL to skip the codec level check
Decoding acceleration may work even if the codec level is higher than
the stated limit of the VDPAU driver. Or the problem may be considered
acceptable by the user. This flag allows skipping the codec level
capability checks and proceed with decoding.

Applications should obviously not set this flag by default, but only if
the user explicitly requested this behavior (and presumably knows how
to turn it back off if it fails).

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-10-15 06:21:56 +00:00
Rémi Denis-Courmont
c1724623ce vdpau: have av_vdpau_bind_context() fail on unsupported flag
Currently, no flags are supported.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-10-15 06:21:47 +00:00
Rémi Denis-Courmont
e09a947c1a doc: fix typing mistake
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-10-15 06:21:39 +00:00
Michael Niedermayer
676110e6d4 avformat/mxfdec: cleanup if parsing the header metadata fails
Fixes memleaks
Fixes: asan_static-oob_87d116_10_201.mxf
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-15 06:08:34 +02:00
Michael Niedermayer
0834f2056c avformat/mxfdec: Fix memleak of packages_refs
Fixes: asan_static-oob_87d116_10_201.mxf
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-15 06:08:34 +02:00
Michael Niedermayer
aae4f5108d avformat/mxfdec: Fix memleak of primer_packs
Fixes: asan_static-oob_87d116_10_201.mxf
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-15 06:08:28 +02:00
Michael Niedermayer
e3b28f10bb avformat/mxfdec: Fix termination of mxf_data_essence_container_uls
Fixes: asan_static-oob_87d116_10_201.mxf
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-15 02:09:17 +02:00
Michael Niedermayer
5552594a44 Merge commit 'a74f8121d88e0bdf0d69c22e4b3713032da9300a'
* commit 'a74f8121d88e0bdf0d69c22e4b3713032da9300a':
  mov: Handle tfdt atoms

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-14 22:24:12 +02:00
Michael Niedermayer
99c26805e9 Merge commit 'c2c22c75cf89e2faab34d1ee1d392cfb065439ea'
* commit 'c2c22c75cf89e2faab34d1ee1d392cfb065439ea':
  movenc: Write tfdt atoms

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-14 22:03:51 +02:00
Michael Niedermayer
f43ac02723 avcodec/iirfilter: Make ff_iir_filter_free_state() also zero the freed pointer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-14 20:46:15 +02:00
Michael Niedermayer
43fb16cf74 avcodec/iirfilter: Change ff_iir_filter_free_coeffs() so it clears the pointers as well
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-14 18:30:52 +02:00
Michael Niedermayer
9946da4976 avcodec/flac_parser: use av_freep(), do not leave stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-14 18:30:31 +02:00
Michael Niedermayer
fd367668e1 avcodec/flac_parser: use av_freep(), do not leave stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-14 18:29:49 +02:00
Michael Niedermayer
5ee6fb7583 avfilter/vf_pp: add gbrp support
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-14 17:15:56 +02:00
Martin Storsjö
a74f8121d8 mov: Handle tfdt atoms
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-14 13:52:32 +03:00
Martin Storsjö
c2c22c75cf movenc: Write tfdt atoms
These allow getting the absolute start timestamp of a fragment
without reading preceding timestamps. This fixes sync between
tracks if starting from fragments in different streams that don't
align exactly.

This also is a prerequisite for producing DASH content.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-14 13:52:32 +03:00
Michael Niedermayer
d58fa9482e avformat/mp3enc: use initial_padding
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-14 03:53:17 +02:00
Michael Niedermayer
83f84e4c53 ffmpeg: Fix stream copy with initial_padding
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-14 03:30:03 +02:00
Michael Niedermayer
4694c0bb7c Merge commit 'eabdc2a830f1ab1a3f12243eb7e2fba801cb81f0'
* commit 'eabdc2a830f1ab1a3f12243eb7e2fba801cb81f0':
  lavf: use initial_padding instead of deprecated delay

Conflicts:
	libavformat/matroskaenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-14 03:00:17 +02:00
Michael Niedermayer
320ce9f284 avcodec/ac3enc_template: use the initial_padding field
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-14 02:46:51 +02:00
Michael Niedermayer
da2189596d Merge commit '2df0c32ea12ddfa72ba88309812bfb13b674130f'
* commit '2df0c32ea12ddfa72ba88309812bfb13b674130f':
  lavc: use a separate field for exporting audio encoder padding

Conflicts:
	libavcodec/audio_frame_queue.c
	libavcodec/avcodec.h
	libavcodec/libvorbisenc.c
	libavcodec/utils.c
	libavcodec/version.h
	libavcodec/wmaenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-14 02:16:16 +02:00
Michael Niedermayer
1f20fa2da8 avcodec/aacdec: print element types when debug startcode is set
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-14 01:54:57 +02:00
Michael Niedermayer
b9918a7688 Merge commit 'c80a816142699dea9cf9fa66689a7838a487ed7e'
* commit 'c80a816142699dea9cf9fa66689a7838a487ed7e':
  h263dec: call get_format() on resolution changes

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-14 00:04:18 +02:00
Michael Niedermayer
40f2b16d52 avformat/utils: print more information with av_dlog() in compute_pkt_fields()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-13 23:45:52 +02:00
Michael Niedermayer
d3d265bae2 Merge commit '1f29e5d7a2b0950f3b6820896e97e2c02e6a10a9'
* commit '1f29e5d7a2b0950f3b6820896e97e2c02e6a10a9':
  h263dec: call get_format after setting resolution and profile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-13 22:13:04 +02:00
Anton Khirnov
eabdc2a830 lavf: use initial_padding instead of deprecated delay 2014-10-13 19:10:30 +00:00
Anton Khirnov
2df0c32ea1 lavc: use a separate field for exporting audio encoder padding
Currently, the amount of padding inserted at the beginning by some audio
encoders, is exported through AVCodecContext.delay. However
- the term 'delay' is heavily overloaded and can have multiple different
  meanings even in the case of audio encoding.
- this field has entirely different meanings, depending on whether the
  codec context is used for encoding or decoding (and has yet another
  different meaning for video), preventing generic handling of the codec
  context.

Therefore, add a new field -- AVCodecContext.initial_padding. It could
conceivably be used for decoding as well at a later point.
2014-10-13 19:09:01 +00:00
Benoit Fouet
f87134c7a1 avformat/movenc: add support for syncframes concatenation for E-AC-3.
E-AC-3 samples should contain 6 audio blocks, so concatenate syncframes
in order to achieve this.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-13 19:24:06 +02:00
Benoit Fouet
4da7111eb8 avcodec/aacdec: map LFE[0] to SCE[1] for 4.0 audio.
Fixes ticket #3930

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-13 17:50:20 +02:00
Michael Niedermayer
0b7e5d0d75 postproc: fix qp count
Found-by: ubitux
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-13 16:12:30 +02:00
Michael Niedermayer
57884172e0 avformat/mov: fix mix of declaration and statement
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-13 16:12:30 +02:00
Rémi Denis-Courmont
c80a816142 h263dec: call get_format() on resolution changes
Fail safe if the pixel format changes.
2014-10-13 16:05:04 +02:00
Rémi Denis-Courmont
1f29e5d7a2 h263dec: call get_format after setting resolution and profile
Bug-Id: 541
2014-10-13 16:04:53 +02:00
Paul B Mahol
a586b3d9b1 libavcodec/libtwolame: fix null pointer dereference
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2014-10-13 12:22:41 +00:00
Mika Raento
a59808dd57 mov.c: allow reading fragment start dts/pts from fragmented mp4
This introduces a new option to the mov demuxer: -use_mfra_for
(pts|dts). When it's given and moofs and a MFRA are present, the MFRA's
TFRAs are read for fragment start times.

Unfortunately some programs that produce fragmented mp4s use the TFRA
time field for dts and some for pts. There is no realistic way to detect
which is the case, hence the responsibility is punted onto the user.
This also means that no behavioural change is enabled by default - you
must pass either dts or pts for anything to happen.

Without this change, timestamps for some discontinuous fragmented mp4 are
wrong, and cause audio/video desync and are not usable for generating
HLS.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-13 12:20:55 +02:00
Michael Niedermayer
b8c50becc8 avfilter/vf_pp: support AV_PIX_FMT_GRAY8
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-13 01:56:14 +02:00
Michael Niedermayer
7a11333387 libpostproc: support grayscale
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-13 01:55:36 +02:00
Michael Niedermayer
25a4180825 Merge commit '76c70e33d2244a688832f03b53862eb5d9ad3b01'
* commit '76c70e33d2244a688832f03b53862eb5d9ad3b01':
  icecast: Do not use chunked post

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-13 01:27:25 +02:00
Michael Niedermayer
094b3ce835 Merge commit 'e44ee1eb8db7393e9d43207c2e1812720e292e6d'
* commit 'e44ee1eb8db7393e9d43207c2e1812720e292e6d':
  movenc: Simplify code by using an existing local pointer

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-13 01:15:20 +02:00
Michael Niedermayer
20a66868a2 Merge commit 'dad12ce452a9d69c0d9d53c375003947d5f1b02e'
* commit 'dad12ce452a9d69c0d9d53c375003947d5f1b02e':
  movenc: Print a warning for an unhandled case of nonzero start dts with empty_moov

Conflicts:
	libavformat/movenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-13 01:10:13 +02:00
Michael Niedermayer
ca5a77191b Merge commit 'dbb472cb2f2f799295a12b4922a6a8be2cccfdee'
* commit 'dbb472cb2f2f799295a12b4922a6a8be2cccfdee':
  movenc: Write edit lists for fragmented files as well, if necessary

Conflicts:
	libavformat/movenc.c

The default for writing EDTS for fragmented mp4 is left at disabled
this can be overridden via command line with -use_editlist
but EDTS + fragments still does not fully work, which is why it is
left disabled by default

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-13 01:02:36 +02:00
James Almer
ccd04f4320 fate: add test for vp90-2-trac3849.webm
Regression test for the bug from trac ticket #3849 fixed in commit 14e30255

Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2014-10-12 19:45:25 -03:00
Michael Niedermayer
687cc836ea Merge commit '95ee4e2ce774e0339632d067161596bf3dadfc72'
* commit '95ee4e2ce774e0339632d067161596bf3dadfc72':
  movenc: Add some comments explaining subtle details in writing the edit lists

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-12 22:48:49 +02:00
Michael Niedermayer
031285dedf Merge commit '72f801619a1ae91969fee9a7d72519422433c998'
* commit '72f801619a1ae91969fee9a7d72519422433c998':
  movenc: Adjust edit lists to trim out parts of tracks with negative pts

Conflicts:
	libavformat/movenc.c

See: 66b45d8f7a
See: 14fd34d73b
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-12 22:39:17 +02:00
Michael Niedermayer
5afe1233c5 Merge commit '8bef43388132b53f59a6e90add18900a3bb4cc60'
* commit '8bef43388132b53f59a6e90add18900a3bb4cc60':
  smoothstreamingenc: Simplify code by removing a redundant variable

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-12 22:29:47 +02:00
Michael Niedermayer
941aaa39e8 postproc/postprocess: fix quant store for fq mode
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-12 22:22:39 +02:00
Michael Niedermayer
9a460db63b avfilter/vf_pp: add yuv 4:4:0 support
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-12 22:22:39 +02:00
Michael Niedermayer
1d3c87d6cd postprocess: add YUV 4:4:0 support
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-12 22:22:39 +02:00
James Almer
59d8050df1 avfilter: remove obsolete FF_API_DRAWTEXT_OLD_TIMELINE cruft 2014-10-12 15:54:58 -03:00
Mark McGough
76c70e33d2 icecast: Do not use chunked post
Icecast uses HTTP 1.0 while Libav uses HTTP 1.1 and enables by
default chunked post.

Icecast actually forwards the HTTP chunk headers to the listener
as part of the media stream (without the chunk encoding HTTP headers)
causing the players to lose sync.

Disabling the option is enough to feed icecast properly.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-10-12 19:54:07 +02:00
Martin Storsjö
e44ee1eb8d movenc: Simplify code by using an existing local pointer
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-12 17:48:09 +03:00
Martin Storsjö
dad12ce452 movenc: Print a warning for an unhandled case of nonzero start dts with empty_moov
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-12 17:46:56 +03:00
Martin Storsjö
dbb472cb2f movenc: Write edit lists for fragmented files as well, if necessary
This is necessary to get the right timestamp offset for content
that starts with dts != 0.

This currently only helps when writing fragmented files with a non-empty
moov atom. When writing an empty moov atom, we don't have any packets
yet, so we don't know the starting dts for the tracks.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-12 17:46:31 +03:00
Martin Storsjö
95ee4e2ce7 movenc: Add some comments explaining subtle details in writing the edit lists
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-12 17:46:01 +03:00
Michael Niedermayer
72f801619a movenc: Adjust edit lists to trim out parts of tracks with negative pts
This makes sure that audio preroll for e.g. AAC is signaled correctly.

Previously we only wrote the edit list correctly if we had negative
dts but started with pts == 0 (e.g. for video with B-frames).

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-12 17:45:55 +03:00
Martin Storsjö
8bef433881 smoothstreamingenc: Simplify code by removing a redundant variable
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-12 17:42:42 +03:00
Michael Niedermayer
acea53fea0 avcodec/eatgv: use av_freep(), do not leave stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-12 12:22:28 +02:00
Michael Niedermayer
28b829b8bb avcodec/eatqi: use av_freep(), do not leave stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-12 12:22:16 +02:00
Michael Niedermayer
20df02680c avcodec/error_resilience: avoid pointer arithmetic with NULL
move the code after the existing NULL check
Fixes: signal_sigsegv_844d59_10_signal_sigsegv_a17bb7_366_mpegts_mpeg2video_mp2_dvbsub_topfield.rec

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-12 04:49:08 +02:00
Michael Niedermayer
bec077a1ab Merge commit 'bd239c9a2e151c0aeeb653a571f130aae7320894'
* commit 'bd239c9a2e151c0aeeb653a571f130aae7320894':
  lavf: Don't drop both pts and dts if timestamps are invalid

Conflicts:
	libavformat/utils.c
	tests/ref/fate/vc1-ism

See: cd6851c5ef
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-12 00:56:26 +02:00
Michael Niedermayer
bd239c9a2e lavf: Don't drop both pts and dts if timestamps are invalid
In these cases, only drop dts. Because if we drop both we have no
timestamps at all for some files.

This improves playback of HLS streams from GoPro cameras.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-12 01:32:52 +03:00
Michael Niedermayer
0db1f2c2c7 avcodec/mjpegdec: sanity check bits
Fixes undefined shift
Fixes: asan_heap-oob_16668e9_2_asan_heap-oob_16668e9_346_miss_congeniality_pegasus_mjpg.avi

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-12 00:28:07 +02:00
Karl Kiniger
903156aa8a vf_drawtext: add missing clear of pointers after av_expr_free()
Fixes segfault when using sendcmd with drawtext.

Since LIBAVFILTER_VERSION_MAJOR 5 FF_API_DRAWTEXT_OLD_TIMELINE
evaluates to 0.

Signed-off-by: Karl Kiniger <karl.kiniger@med.ge.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-11 23:16:31 +02:00
Michael Niedermayer
e24e5986a6 avcodec/dct: use av_freep(), do not leave stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-11 22:51:33 +02:00
Michael Niedermayer
3521c70dab avcodec/dirac_parser: use av_freep(), do not leave stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-11 22:51:15 +02:00
Michael Niedermayer
c712d240b1 avcodec/eamad: use av_freep(), do not leave stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-11 22:50:51 +02:00
Simon Thelen
8c4ca4aa5a ffmpeg_opt: abort if -to <= -ss
Makes ffmpeg abort instead of continuing when stop_time <= start_time.

Closes ticket #4015.

Signed-off-by: Simon Thelen <ffmpeg-dev@c-14.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-11 22:20:39 +02:00
Christophe Gisquet
140f535517 proresenc_ks: use chroma sampling in autoselection
If the chroma planes aren't subsampled, automatically select
the 4:4:4:4 profile.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-11 16:47:19 +02:00
Ruoyu
c44d8d9552 avutil/lzo: fix resource leak
Signed-off-by: Ruoyu <liangry@ucweb.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-11 12:15:26 +02:00
Michael Niedermayer
fba894615d swscale: support internal scaler cascades
Fixes Ticket3170

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-11 05:05:17 +02:00
Michael Niedermayer
b8a55994f0 avcodec/mpeg12dec: print aspect_ratio_info in debug output
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-11 03:22:16 +02:00
Michael Niedermayer
ae17a0c258 Merge commit '1d4579e38ecad578c86516fad2837a273d11b320'
* commit '1d4579e38ecad578c86516fad2837a273d11b320':
  tcp: Add AVOption support

Conflicts:
	libavformat/tcp.c

See: 2e009c6042
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-11 00:39:01 +02:00
Clément Bœsch
937aac4f97 avformat/assenc: make sure we crawl extradata only if it's non-null 2014-10-10 23:49:38 +02:00
Michael Niedermayer
d246397161 Merge commit 'cd9d6399fd00f5aeacaa90cdc0b74c3570024119'
* commit 'cd9d6399fd00f5aeacaa90cdc0b74c3570024119':
  tls: Support passing old-style tcp options

See: 4f4eb380f0
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-10 22:28:49 +02:00
Michael Niedermayer
76d1ffffd0 Merge commit '3df8d52fcdc9036b4074fdc612d487ece8bb5b7f'
* commit '3df8d52fcdc9036b4074fdc612d487ece8bb5b7f':
  rtsp: Add rtsps to the probe

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-10 21:36:27 +02:00
Michael Niedermayer
7028475f75 Merge commit 'c839b0439f0b01c72a6d253920d2e342b30f8bcb'
* commit 'c839b0439f0b01c72a6d253920d2e342b30f8bcb':
  rtsp: Support tls when in listen mode

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-10 21:29:10 +02:00
Michael Niedermayer
c9791925a1 Merge commit '8b2e9636c57b22582143467a8a06b509b47b92f9'
* commit '8b2e9636c57b22582143467a8a06b509b47b92f9':
  rtsp: Support tls-encapsulated RTSP

Conflicts:
	libavformat/rtsp.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-10 21:18:41 +02:00
Michael Niedermayer
544f811453 Merge commit 'c27328e749ff3be648411765cd17362fee017341'
* commit 'c27328e749ff3be648411765cd17362fee017341':
  rtsp: Check for command strings without spaces

Conflicts:
	libavformat/rtspdec.c

See: a0568ed254
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-10 21:05:49 +02:00
Michael Niedermayer
cec7afd036 Merge commit '09e1ccc8cddc946da5e10841f10dc5ebdd187d9d'
* commit '09e1ccc8cddc946da5e10841f10dc5ebdd187d9d':
  sctp: Use AVERROR_BUG instead of abort()

Conflicts:
	libavformat/sctp.c

See: 2e59142fa9
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-10 20:51:52 +02:00
Michael Niedermayer
fc6aa30459 Merge commit 'eb4f9069002e73648f6640cd054fc814cfda75b8'
* commit 'eb4f9069002e73648f6640cd054fc814cfda75b8':
  lavf: More informative error message

Conflicts:
	libavformat/mux.c

See: 30ced7e69f
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-10 20:38:51 +02:00
Christophe Gisquet
cb530dda7d utvideoenc: properly set slice height/last line
Mimic decoder and obey sampling.

Does not affect fate tests for utvideo.
Fixes ticket #3949.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-10 20:08:24 +02:00
Michael Niedermayer
171d971dbf avutil/softfloat: Fix undefined shift in av_add_sf()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-10 19:36:12 +02:00
Benoit Fouet
5e6fd132ff avformat/movenc: add EAC3 muxing support.
Support only one independent substream right now, and only syncframes
containing 6 blocks.

Fixes part of ticket #3074

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-10 19:07:08 +02:00
James Almer
5402d1bce5 float_dsp-test: allow forcing cpuflags
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2014-10-10 13:51:51 -03:00
Michael Niedermayer
ea77d3b889 avcodec/atrac3: use av_freep(), do not leave stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-10 17:10:02 +02:00
Michael Niedermayer
3537ddb76f avcodec/cavs: use av_freep(), do not leave stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-10 17:09:46 +02:00
Luca Barbato
1d4579e38e tcp: Add AVOption support 2014-10-10 16:29:07 +02:00
Luca Barbato
cd9d6399fd tls: Support passing old-style tcp options
Make tcp and tls urls near-interchangeable.
2014-10-10 16:29:07 +02:00
Luca Barbato
3df8d52fcd rtsp: Add rtsps to the probe 2014-10-10 16:29:06 +02:00
Luca Barbato
c839b0439f rtsp: Support tls when in listen mode 2014-10-10 16:29:06 +02:00
Luca Barbato
8b2e9636c5 rtsp: Support tls-encapsulated RTSP 2014-10-10 16:29:06 +02:00
Luca Barbato
c27328e749 rtsp: Check for command strings without spaces
Prevent a NULL-pointer dereference.

CC: libav-stable@libav.org
2014-10-10 16:29:06 +02:00
Luca Barbato
09e1ccc8cd sctp: Use AVERROR_BUG instead of abort()
Trying to write to a stream id larger the the maximum requested is
a programming error, still there is no reason to leave a
reachable abort() in the codebase.

CC: libav-stable@libav.org
2014-10-10 16:29:06 +02:00
Luca Barbato
eb4f906900 lavf: More informative error message
Print the timestamp values and not just the stream index.
2014-10-10 16:29:06 +02:00
Rong Yan
0d71bd5a94 libavcodec/ppc/hpeldsp_altivec.c : fix ff_put_pixels16_altivec() for POWER LE
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-10 14:24:22 +02:00
Rong Yan
c1fa5d1bd4 libavcodec/ppc/me_cmp.c : fix sad16_altivec() sse16_altivec() sad16_xy2_altivec() sad16_x2_altivec() sad16_y2_altivec() sad8_altivec() for POWER LE
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-10 14:24:22 +02:00
Di Wu
162b521108 vp9: enable multi-thread decoding when refreshctx is equal to 0
In vp9_decode_frame function, ff_thread_finish_setup is not called
when refreshctx is equal to 0, and the next decoding thread can not
start work until the cunrrent frame has been decoded completely. So
ff_thread_finish_setup needs to be called to enable Multi-thread
decoding in this condition.

Signed-off-by: Di Wu <di1028.wu@samsung.com>
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2014-10-10 09:13:44 -03:00
Rong Yan
c5ca76ad3b libavcodec/ppc/mpegvideoencdsp.c : fix pix_norm1_altivec() and pix_sum_altivec() for POWER LE
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-10 13:32:02 +02:00
Rong Yan
31dea05170 libavcodec/ppc/pixblockdsp.c : fix get_pixels_altivec() and diff_pixels_altivec() for POWER LE
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-10 13:31:49 +02:00
Michael Niedermayer
54df78af65 Merge commit 'b7c3bfd5eb3153f7de8039f96e7911b2a1d46cae'
* commit 'b7c3bfd5eb3153f7de8039f96e7911b2a1d46cae':
  w32pthreads: use the condition variable API directly when targeting newer versions of Windows

Conflicts:
	compat/w32pthreads.h

See: 8c6992bf0c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-10 12:25:50 +02:00
Michael Niedermayer
09c538b6e6 Merge commit '73ea3ffcd55b0b1d23ba4769d65996a8d58ffa11'
* commit '73ea3ffcd55b0b1d23ba4769d65996a8d58ffa11':
  w32pthreads: use the CONDITION_VARIABLE typedef if available

Conflicts:
	compat/w32pthreads.h
	configure

See: 0c06949314
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-10 12:13:09 +02:00
James Almer
b7c3bfd5eb w32pthreads: use the condition variable API directly when targeting newer versions of Windows
Wrap the function calls in a similar fashion to how it's being done
with the critical section API.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-10 11:27:30 +03:00
James Almer
73ea3ffcd5 w32pthreads: use the CONDITION_VARIABLE typedef if available
This silences warnings about passing arguments from incompatible pointer type
when targeting Windows Vista or newer.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-10 11:27:26 +03:00
Michael Niedermayer
19b4c0ccf9 ffprobe: Simplify by using av_color_range_name()
Idea from: a2c00d22e7
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-10 04:24:55 +02:00
Michael Niedermayer
e96fb980dc avformat/format: move mime_type_opt declaration to where its used
also remove a related dead store

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-10 03:08:11 +02:00
Michael Niedermayer
27123a77c1 avformat/os_support: include unistd.h before defining lseek to lseek64 on android
fixes build failure

Found-by: James Almer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-10 02:32:32 +02:00
Michael Niedermayer
9665a0fdf6 avutil/error: Add AVERROR_INPUT_CHANGED & AVERROR_OUTPUT_CHANGED to error_entries[]
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-10 02:02:11 +02:00
Vignesh Venkatasubramanian
233f3ad869 lavf/webm_dash: Allow filenames without directories
Fix basename computation code to allow just file names without any
directories in the path.

Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-10 00:46:37 +02:00
Marton Balint
ce928d7d2b ffplay: dont leave swresampler in half initialized state
On init failure, let's just free it, so next time it will be recreated from
start.

Also fixes Coverity CID 1241515.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Marton Balint <cus@passwd.hu>
2014-10-09 23:18:37 +02:00
James Almer
8c6992bf0c compat/w32pthreads: use the condition variable API directly when targeting newer versions of Windows
Wrap the function calls in a similar fashion to how it's being done
with the critical section API.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2014-10-09 17:51:46 -03:00
Frank Galligan
241b306b1e Fix writing first audio Cues in dash mode.
In dahsmode Matroska is not writing the first Cluster for every
audio stream in the Cues element.

Signed-off-by: Frank Galligan <frankgalligan@gmail.com>
Reviewed-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-09 21:50:48 +02:00
James Almer
0c06949314 compat/w32pthreads: use the CONDITION_VARIABLE typedef if available
This silences warnings about passing arguments from incompatible pointer type
when targeting Windows Vista or newer.

Tested-by: Matt Oliver <protogonoi@gmail.com>
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2014-10-09 13:26:44 -03:00
Michael Niedermayer
99afec08f8 avutil/softfloat: add some asserts
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-09 17:02:59 +02:00
Michael Niedermayer
44198a728d avutil/softfloat: Fix dependence on signed overflow in av_normalize1_sf()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-09 16:52:56 +02:00
Michael Niedermayer
f3b54ee989 avutil/Makefile: add softfloat to TESTPROGS
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-09 16:02:14 +02:00
Benoit Fouet
7cda31cb92 avformat/mov: E-AC-3 streams need parsing too.
syncframes in E-AC-3 can be combined to provide 6 audio blocks per
sample, thus requiring parsing for proper decoding.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-09 15:38:09 +02:00
Yu Xiaolei
d5a6f11272 lavf: fix 2GB file seek limit on Android
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-09 13:08:33 +02:00
Michael Niedermayer
7b973e7341 Merge commit '2bc220958c7570020d87ee353db65460b518998a'
* commit '2bc220958c7570020d87ee353db65460b518998a':
  ismindex: handle discontinuous streams better

Conflicts:
	tools/ismindex.c

See: d3834f2901
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-09 12:25:52 +02:00
Mika Raento
d3834f2901 ismindex: handle discontinuous streams better
Reads the fragment duration from the trun sample data, rather than
assuming that there are no gaps. Creates much better playlists for our
inputs.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-09 12:15:48 +02:00
Mika Raento
2bc220958c ismindex: handle discontinuous streams better
Read the fragment duration from the trun sample data, rather than
assuming that there are no gaps.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-09 11:21:49 +03:00
Michael Niedermayer
5d36e8527f avformat/mov: Fix 'warning: format specifies type unsigned short but the argument has type int'
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-09 05:49:25 +02:00
Michael Niedermayer
8cfb9ccfef avcodec/utils: Fix "warning: pointer type mismatch in conditional expression"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-09 05:46:13 +02:00
Michael Niedermayer
0578623039 avformat/dump: use format dump_separator if the codec one is not set
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-09 05:41:42 +02:00
Michael Niedermayer
f9a1317479 avcodec/utils: Add missing AV_PIX_FMT_YUVJ411P to color_range override code.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-09 05:28:10 +02:00
Michael Niedermayer
cf7b90dea2 fix seperator typo
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-09 04:19:13 +02:00
Michael Niedermayer
f6777ce6fe Merge commit '1a02e78653a5c7674e6c43b6e6f2748dbd2091d7'
* commit '1a02e78653a5c7674e6c43b6e6f2748dbd2091d7':
  vc1: initialize color properties

See: ddabecbbf5
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-09 03:06:20 +02:00
Michael Niedermayer
5b134a0544 Merge commit 'eddf95283fbba1b469b76e7518bc3941f671b193'
* commit 'eddf95283fbba1b469b76e7518bc3941f671b193':
  vp9: initialize color space and range properties

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-09 02:49:16 +02:00
Michael Niedermayer
3bc86462a2 Merge commit '65875a8b3b079752da25a61ec188d2e3d90a569f'
* commit '65875a8b3b079752da25a61ec188d2e3d90a569f':
  vp8: initialize color space and range properties

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-09 02:36:58 +02:00
Michael Niedermayer
349a32c436 Merge commit '0d8a3656ba4c0ae8e4e0c91ff6b07d72a317f9f6'
* commit '0d8a3656ba4c0ae8e4e0c91ff6b07d72a317f9f6':
  mov: support the Color Parameter Atoms 'colr'

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-09 02:27:53 +02:00
Michael Niedermayer
6414c3ecd0 Merge commit '586ea0379c207a942c1f2d61e0b3a63c458cc598'
* commit '586ea0379c207a942c1f2d61e0b3a63c458cc598':
  avcodec: fix colorspace option description

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-09 02:23:15 +02:00
Michael Niedermayer
923a242282 Merge commit '91eef402037ae5a51d89ade6cb71cdd70b291c8b'
* commit '91eef402037ae5a51d89ade6cb71cdd70b291c8b':
  avcodec: add enum values on chroma sample location

Conflicts:
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-09 02:14:54 +02:00
Michael Niedermayer
7652b176fc Merge commit '9d5fed6dc4cccb0689f694112f5026988bebc472'
* commit '9d5fed6dc4cccb0689f694112f5026988bebc472':
  avcodec: fix descriptions on color transfer options

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-09 02:14:23 +02:00
Michael Niedermayer
04d8f616fd Merge commit '167e6f1489368a4693145da61cb022c113a285bc'
* commit '167e6f1489368a4693145da61cb022c113a285bc':
  dump: Update streams and chapters printout format

See: cab2860c8a
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-09 02:11:04 +02:00
Michael Niedermayer
5f43a7957b Merge commit '9f3a70c44224ed92d91df65bb9470a2649e7d019'
* commit '9f3a70c44224ed92d91df65bb9470a2649e7d019':
  dump: print the original coded dimensions when available

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-09 01:46:26 +02:00
Michael Niedermayer
af28960412 Merge commit '41e86146e7240f9d42e8cdb86a94bb3eb2bbe15f'
* commit '41e86146e7240f9d42e8cdb86a94bb3eb2bbe15f':
  dump: print detailed color space information

full color triplets are only printed if they are not all equal, otherwise
they are printed as before

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-09 01:26:34 +02:00
Michael Niedermayer
f0a6874de8 avformat: Allow choosing the dump format field separator.
The default is to maintain the previous ", " for now.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-09 00:56:58 +02:00
Michael Niedermayer
e051d09c58 avcodec: Allow choosing the dump format field separator.
The default is to maintain the previous ", " for now.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-09 00:56:31 +02:00
Michael Niedermayer
f22f873ef0 Merge commit '20a5956b8daeee4cb59d6fa00ec809b02c04d7f8'
* commit '20a5956b8daeee4cb59d6fa00ec809b02c04d7f8':
  dump: split audio and video probing on multiple lines

Conflicts:
	libavcodec/utils.c
	libavformat/dump.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-09 00:56:23 +02:00
Michael Niedermayer
bb44f7d5d7 Merge commit '5a419b2dd1881889d436f55741fd3ff3f9f436c4'
* commit '5a419b2dd1881889d436f55741fd3ff3f9f436c4':
  pixdesc: return color properties names

Conflicts:
	libavutil/pixdesc.c
	libavutil/pixdesc.h
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-08 22:53:48 +02:00
Michael Niedermayer
7eb959bf0b Merge commit '04ccd584a70fad4ebb29ca340d704970ff313cbc'
* commit '04ccd584a70fad4ebb29ca340d704970ff313cbc':
  pixfmt: mark further reserved values

Conflicts:
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-08 22:37:59 +02:00
Michael Niedermayer
1b6172dcf6 Merge commit 'c732c62cee43f651775af5547cff99d418248542'
* commit 'c732c62cee43f651775af5547cff99d418248542':
  doc: expand description for some color properties

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-08 22:28:45 +02:00
Michael Niedermayer
dc5560efda Merge commit 'a2c00d22e71d13b72828147be86aa9e961c6cae6'
* commit 'a2c00d22e71d13b72828147be86aa9e961c6cae6':
  avprobe: print color properties for show_streams

Conflicts:
	avprobe.c

Not merged as this code does not build and is incomplete, some parts only
appear in later commits.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-08 22:20:33 +02:00
Michael Niedermayer
10dd62737e Merge commit '147f2e91eece6b9021ff5b7f8a3b5ce053566659'
* commit '147f2e91eece6b9021ff5b7f8a3b5ce053566659':
  avcodec: make sure color_range is properly initialized

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-08 22:08:11 +02:00
Michael Niedermayer
d5a3caef93 Merge commit '04d14c9b68b03e8dbc6e3003c1ee06892dd32576'
* commit '04d14c9b68b03e8dbc6e3003c1ee06892dd32576':
  vc1: Split the decoder in components

Conflicts:
	libavcodec/Makefile
	libavcodec/vc1dec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-08 22:00:09 +02:00
Michael Niedermayer
9da679e77f Merge commit '7ae9791b641d1183910b6e7faca23f7ae08f8579'
* commit '7ae9791b641d1183910b6e7faca23f7ae08f8579':
  avformat: bump version after mime_type change

Conflicts:
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-08 21:45:41 +02:00
Michael Niedermayer
911ba8fb19 Merge commit 'b15b06ebf582ae81e47d236524c9ad6e10c8a0a7'
* commit 'b15b06ebf582ae81e47d236524c9ad6e10c8a0a7':
  avformat: use const char* instead of uint8_t* for AVProbeData.mime_type

Conflicts:
	libavformat/format.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-08 21:35:40 +02:00
Michael Niedermayer
be695ee389 avformat/matroskadec: do not trust the default duration to be the real 1/timebase if its less than 5fps
Fixes Ticket3980

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-08 20:39:37 +02:00
Vittorio Giovara
1a02e78653 vc1: initialize color properties 2014-10-08 18:17:50 +01:00
Vittorio Giovara
eddf95283f vp9: initialize color space and range properties 2014-10-08 18:17:50 +01:00
Vittorio Giovara
65875a8b3b vp8: initialize color space and range properties 2014-10-08 18:17:50 +01:00
Vittorio Giovara
0d8a3656ba mov: support the Color Parameter Atoms 'colr' 2014-10-08 18:17:50 +01:00
Vittorio Giovara
586ea0379c avcodec: fix colorspace option description 2014-10-08 18:17:50 +01:00
Marc-Antoine Arnaud
91eef40203 avcodec: add enum values on chroma sample location 2014-10-08 18:17:50 +01:00
Marc-Antoine Arnaud
9d5fed6dc4 avcodec: fix descriptions on color transfer options
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-10-08 18:17:49 +01:00
Sylvain Rabot
167e6f1489 dump: Update streams and chapters printout format
This matches the -map option which requires '%d:%d' format.
2014-10-08 18:17:49 +01:00
Vittorio Giovara
9f3a70c442 dump: print the original coded dimensions when available 2014-10-08 18:17:49 +01:00
Vittorio Giovara
41e86146e7 dump: print detailed color space information 2014-10-08 18:17:49 +01:00
Vittorio Giovara
20a5956b8d dump: split audio and video probing on multiple lines
Also always report pixel format.
2014-10-08 18:17:49 +01:00
Vittorio Giovara
5a419b2dd1 pixdesc: return color properties names 2014-10-08 18:17:49 +01:00
Vittorio Giovara
04ccd584a7 pixfmt: mark further reserved values 2014-10-08 18:17:49 +01:00
Vittorio Giovara
c732c62cee doc: expand description for some color properties 2014-10-08 18:17:49 +01:00
Vittorio Giovara
a2c00d22e7 avprobe: print color properties for show_streams 2014-10-08 18:17:49 +01:00
Vittorio Giovara
147f2e91ee avcodec: make sure color_range is properly initialized 2014-10-08 18:17:49 +01:00
Luca Barbato
04d14c9b68 vc1: Split the decoder in components
Speed up the overall compilation time.
2014-10-08 18:34:48 +02:00
Vittorio Giovara
7ae9791b64 avformat: bump version after mime_type change 2014-10-08 15:59:51 +01:00
Tobias Rapp
33db99548b Changelog: add "ffprobe -show_pixel_formats option"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-08 16:58:14 +02:00
Carl Eugen Hoyos
1d4480d376 tests/Makefile: Fix fate-ffprobe with --target-path
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-08 16:26:20 +02:00
Andreas Cadhalpun
b15b06ebf5 avformat: use const char* instead of uint8_t* for AVProbeData.mime_type
This makes the field consistent with AVInputFormat.mime_type and the
argument type of av_match_name.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-10-08 15:13:15 +01:00
Michael Niedermayer
f703c8cc09 avcodec/avpicture: use av_freep(), do not leave stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-08 16:09:31 +02:00
Michael Niedermayer
fa8c6c1350 avcodec/atrac3plusdec: use av_freep(), do not leave stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-08 16:09:23 +02:00
Michael Niedermayer
f66fed6c42 avcodec/bfi: use av_freep(), do not leave stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-08 16:08:28 +02:00
Michael Niedermayer
e97f38ce63 ffserver: use av_freep(), do not leave stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-08 15:22:24 +02:00
Michael Niedermayer
b530e2e351 avcodec/vorbisdec: use av_freep(), do not leave stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-08 15:17:27 +02:00
Michael Niedermayer
3c1378ce0a Merge commit '2d91abade29e43bb45c881d45909b8ee77e904e2'
* commit '2d91abade29e43bb45c881d45909b8ee77e904e2':
  x86: h264_intrapred: Don't treat 32-bit integers as 64-bit

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-08 11:48:58 +02:00
Michael Niedermayer
36e4b750a7 Merge commit '82f8eb5f773d87e3d9c0066ef19b501a461ddfae'
* commit '82f8eb5f773d87e3d9c0066ef19b501a461ddfae':
  jpeg2000: split off inverse MCT as Jpeg2000DSP

Conflicts:
	libavcodec/Makefile
	libavcodec/jpeg2000dec.c
	libavcodec/jpeg2000dsp.c
	libavcodec/jpeg2000dsp.h

See: c9f2ec8a34
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-08 11:40:56 +02:00
Henrik Gramner
2d91abade2 x86: h264_intrapred: Don't treat 32-bit integers as 64-bit
The upper halves are not guaranteed to be zero in x86-64.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-10-08 08:15:52 +00:00
James Almer
82f8eb5f77 jpeg2000: split off inverse MCT as Jpeg2000DSP
This makes the addition of arch optimized functions easier.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-10-08 08:02:55 +00:00
Michael Niedermayer
f3296b9454 avcodec/h264: Undefined behavior (left shift of 12852653 by 8 places cannot be represented in type 'int')
Fixes: asan_heap-oob_84f75d_8_asan_heap-oob_a2a00a_341_mbc.ts

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-08 05:35:10 +02:00
Michael Niedermayer
344f8d307a swresample/audioconvert: Fix undefined behavior (left shift of negative value)
Fixes: asan_heap-oob_4da4f3_8_asan_heap-oob_4da4f3_419_scene1a.mm

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-08 05:35:06 +02:00
Michael Niedermayer
9db9b209e3 avcodec/mmvideo: Fix undefined behavior (left shift of negative value)
Fixes: asan_heap-oob_4da4f3_8_asan_heap-oob_4da4f3_419_scene1a.mm

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-08 05:35:01 +02:00
Tobias Rapp
1acc9189b4 ffprobe: add pixel format chroma sub-sampling output
Adds output of chroma sub-sampling information to
ffprobe -show_pixel_formats option.

Note: This patch just prints the "raw" log2_charoma_w/h values instead
of the previously suggested mapping into a chroma sub-sampling pattern
string like "4:2:2".

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-07 23:18:15 +02:00
Tobias Rapp
7d327d6242 ffprobe: add pixel format component bit depth output
Adds output of bit depth per pixel format component to
ffprobe -show_pixel_formats option.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-07 23:18:15 +02:00
Tobias Rapp
b36b2c89df ffprobe: add pixel format flags output
Adds output of pixel format flags to ffprobe -show_pixel_formats option.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-07 23:18:15 +02:00
Tobias Rapp
143a8a44f4 ffprobe: add -show_pixel_formats option
Adds option -show_pixel_formats to ffprobe which lists all
available pixel formats with some details.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-07 23:18:15 +02:00
Clément Bœsch
abaf4245a1 avfilter: add w/h parameters in timeline
Fixes Ticket #4008.
2014-10-07 15:05:50 +02:00
Michael Niedermayer
158b3fb584 avformat/tiertexseq: use av_freep(), do not leave stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-07 13:46:29 +02:00
Michael Niedermayer
2d6f31730c avfilter/af_adelay: use av_freep(), do not leave stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-07 13:44:26 +02:00
Michael Niedermayer
aba873bbd0 Merge commit '9a03c2323593173a201cb75edd1b49887cf811ed'
* commit '9a03c2323593173a201cb75edd1b49887cf811ed':
  h263dec: Force padding bug workaround for H.263.

This is not merged as it breaks a good part of the error concealment/resilience for H.263
Also, messenger.h263 plays fine in ffmpeg.
If anyone has any other h263 files that do not work, please open an issue on trak or
mail me!

See: d225b0f7aa
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-07 13:00:08 +02:00
Michael Niedermayer
33c8500db4 Merge commit 'd208d1eba3799c58fd6d3602d31de3e686f14aec'
* commit 'd208d1eba3799c58fd6d3602d31de3e686f14aec':
  hevc_mvs: make sure to always initialize the temporal MV fully

Conflicts:
	libavcodec/hevc_mvs.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-07 12:29:07 +02:00
Michael Niedermayer
018ca8b7f6 Merge commit '79a60c8e779242b5ba4c531b2c706c871e8e6420'
* commit '79a60c8e779242b5ba4c531b2c706c871e8e6420':
  hevc_mvs: initialize the temporal MV in case of missing ref

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-07 12:21:43 +02:00
Josh Allmann
9a03c23235 h263dec: Force padding bug workaround for H.263.
Fixes decoding of http://samples.mplayerhq.hu/V-codecs/h263/h263-raw/messenger.h263

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-10-07 07:30:32 +00:00
Anton Khirnov
d208d1eba3 hevc_mvs: make sure to always initialize the temporal MV fully
The spec requires this.

Fixes uninitialized reads on some samples.

Remove now unnecessary initialization of the whole merge candidate list.
2014-10-07 07:13:01 +00:00
Anton Khirnov
79a60c8e77 hevc_mvs: initialize the temporal MV in case of missing ref
The caller expects the MV to always be initialized.
2014-10-07 07:12:55 +00:00
Michael Niedermayer
0026c4ecfd avformat/hls: use av_freep(), do not leave stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-07 04:29:27 +02:00
Michael Niedermayer
f0d1b3acdf avcodec/escape124: use av_freep(), do not leave stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-07 03:42:20 +02:00
Michael Niedermayer
1c5647f419 avcodec/proresenc_kostya: use av_freep(), do not leave stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-07 03:41:40 +02:00
Michael Niedermayer
c9eac8062e avcodec/avpacket: use av_freep(), do not leave stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-07 03:40:57 +02:00
Michael Niedermayer
b60938e4fd avcodec/avpacket: simplify freeing pkt->data
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-07 03:40:15 +02:00
Mark Reid
5c50214eed avformat/mxfdec: read reel_name and source timecode from physical source package
Reviewed-by: Tomas Härdin <tomas.hardin@codemill.se>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-07 03:13:06 +02:00
Michael Niedermayer
3726d07a2a Merge commit '28816050e47b6dba430a52e429d21a864cffda8e'
* commit '28816050e47b6dba430a52e429d21a864cffda8e':
  lavf: Set the stream time base hint properly for chained muxers

Conflicts:
	libavformat/segment.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-07 02:51:08 +02:00
Michael Niedermayer
4db0e8fd33 Merge commit 'b76249443864c88ffb2d41ab8d1de7432e985dc7'
* commit 'b76249443864c88ffb2d41ab8d1de7432e985dc7':
  sdp: Simplify parsing/conversion of H264 extradata

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-07 02:40:02 +02:00
Michael Niedermayer
a52384dcda Merge commit '153fadc390d05aa47e5e2c56290401898fe41a23'
* commit '153fadc390d05aa47e5e2c56290401898fe41a23':
  ff_get_format: fix infinite loop

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-07 02:15:26 +02:00
Martin Storsjö
28816050e4 lavf: Set the stream time base hint properly for chained muxers
This avoids warnings about using the codec time base as time
base hint.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-06 23:30:52 +03:00
Martin Storsjö
b762494438 sdp: Simplify parsing/conversion of H264 extradata
By using ff_avc_write_annexb_extradata instead of the h264_mp4toannexb
BSF, the code for doing the conversion itself is kept much shorter,
there's less state to restore at the end, we don't risk leaving the
AVCodecContext in an inconsistent state if returning early due to
errors, etc.

Also add a missing free if the base64 encoding fails.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-06 23:29:58 +03:00
Michael Niedermayer
d47dd84391 Merge commit '577899a6458ccad9026eb268f10dc0b39c224c8d'
* commit '577899a6458ccad9026eb268f10dc0b39c224c8d':
  lavc: specify the behavior of av_lockmgr_register on failure.

Conflicts:
	libavcodec/avcodec.h
	libavcodec/utils.c
	libavcodec/version.h

See: a950edb472
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-06 21:08:55 +02:00
Rémi Denis-Courmont
153fadc390 ff_get_format: fix infinite loop
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-10-06 18:39:45 +00:00
Manfred Georg
577899a645 lavc: specify the behavior of av_lockmgr_register on failure.
The register function now specifies that the user callback should
leave things in the same state that it found them on failure but
that failure to destroy is ignored by the library.  The register
function is now explicit about its behavior on failure
(it unregisters the previous callback and destroys all mutex).

Signed-off-by: Manfred Georg <mgeorg@google.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-10-06 18:20:17 +00:00
Michael Niedermayer
67ddf21611 avcodec/vdpau: do not dereference hwctx before checking it for NULL
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-06 17:39:28 +02:00
Michael Niedermayer
4d8356b678 Merge commit '8de1d67967a9f9e22c66cb0c1e518ae4f30d07dd'
* commit '8de1d67967a9f9e22c66cb0c1e518ae4f30d07dd':
  avconv_vdpau: update to new VDPAU interface

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-06 16:31:51 +02:00
Michael Niedermayer
0e57c05118 avcodec/vdpau: fix render2() check
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-06 16:23:36 +02:00
Michael Niedermayer
403133ab5e ffmpeg: add vdpau_old to allow continued testing of the older (but not oldest) API
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-06 16:09:02 +02:00
Michael Niedermayer
573d333010 Merge commit 'bef067f88c74190cdf7e76d12f02e12e069974aa'
* commit 'bef067f88c74190cdf7e76d12f02e12e069974aa':
  vdpau: check video surface and decoder capabilities

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-06 15:12:19 +02:00
Michael Niedermayer
a61899a0f1 Merge commit 'e3e158e81f0666b8fe66be9ce1cad63a535920e0'
* commit 'e3e158e81f0666b8fe66be9ce1cad63a535920e0':
  vdpau: add av_vdpau_bind_context()

Conflicts:
	doc/APIchanges
	libavcodec/vdpau.h
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-06 15:04:03 +02:00
Michael Niedermayer
067d11bf71 Merge commit '502cde409ca5ee97ef70c2cdede88b9101746ff6'
* commit '502cde409ca5ee97ef70c2cdede88b9101746ff6':
  vdpau: force reinitialization when output resolution changes

Conflicts:
	libavcodec/vdpau.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-06 14:17:40 +02:00
Michael Niedermayer
ec6a855b3a avcodec/vdpau: warn if the user application has not setup avctx->hwaccel_context instead of potentially crashing
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-06 14:10:37 +02:00
Michael Niedermayer
0ba887bbf4 Merge commit '89ac99ba5f2dc9f69ad3bc294753930eb0b3e4a4'
* commit '89ac99ba5f2dc9f69ad3bc294753930eb0b3e4a4':
  vdpau: pass codec-specific parameters from hwaccel

Conflicts:
	libavcodec/vdpau.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-06 13:21:52 +02:00
Michael Niedermayer
8df41976b7 avcodec/vdpau_internal: add comment to #endif
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-06 12:47:08 +02:00
Michael Niedermayer
10b6d7462c Merge commit 'ce083282f0a8b7d63c4047c30b7bac498f9806dd'
* commit 'ce083282f0a8b7d63c4047c30b7bac498f9806dd':
  vdpau: common support for managing the VdpDecoder in avcodec

Conflicts:
	libavcodec/vdpau.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-06 12:38:26 +02:00
Michael Niedermayer
b64b719ad5 Merge commit 'fcc1022611f79c2f3aa2f392a5ce14c74be9c1d7'
* commit 'fcc1022611f79c2f3aa2f392a5ce14c74be9c1d7':
  vdpau: factor out common end-of-frame handling

Conflicts:
	libavcodec/vdpau.c
	libavcodec/vdpau_h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-06 12:09:17 +02:00
Michael Niedermayer
567c0dcee6 Merge commit '319424d25c53f82b87187ce03ed984d438f1bee6'
* commit '319424d25c53f82b87187ce03ed984d438f1bee6':
  vdpau: add helper for VDPAU to libav error codes conversion

Conflicts:
	libavcodec/vdpau.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-06 11:38:06 +02:00
Rémi Denis-Courmont
8de1d67967 avconv_vdpau: update to new VDPAU interface
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-10-06 06:20:40 +00:00
Rémi Denis-Courmont
bef067f88c vdpau: check video surface and decoder capabilities
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-10-06 06:20:40 +00:00
Rémi Denis-Courmont
e3e158e81f vdpau: add av_vdpau_bind_context()
This function provides an explicit VDPAU device and VDPAU driver to
libavcodec, so that the application is relieved from codec specifics
and VdpDevice life cycle management.

A stub flags parameter is added for future extension. For instance, it
could be used to ignore codec level capabilities (if someone feels
dangerous).

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-10-06 06:20:40 +00:00
Rémi Denis-Courmont
502cde409c vdpau: force reinitialization when output resolution changes
This is necessary to recreate the decoder with the correct parameters,
as not all codecs invoke get_format() in this case.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-10-06 06:18:56 +00:00
Michael Niedermayer
6b347f519d swresample/swresample: replace always true if() by av_assert0()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-06 01:29:15 +02:00
Michael Niedermayer
f9fefa499f swresample/swresample: fix sample drop loop end condition
Fixes Ticket3985

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-06 01:29:06 +02:00
Michael Niedermayer
02f7665a3c avformat/mov: do not overwrite extradata in mov_read_glbl()
Fixes regression from Ticket3962

This basically favors the first global header while since 34751f8313
it was the last. If this heuristic turns out worse, do not hesitate to revert this and
reopen 3962 as a feature request for multiple STSD

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-06 00:17:33 +02:00
James Almer
fb7d8d50bc swscale: remove obsolete FF_API_SWS_FORMAT_NAME cruft
Signed-off-by: James Almer <jamrial@gmail.com>
2014-10-05 17:10:29 -03:00
James Almer
ddc3768161 avformat: remove obsolete FF_API_READ_PACKET cruft
Signed-off-by: James Almer <jamrial@gmail.com>
2014-10-05 17:10:26 -03:00
James Almer
ecf457f3ac avformat: remove obsolete FF_API_CLOSE_INPUT_FILE cruft
Signed-off-by: James Almer <jamrial@gmail.com>
2014-10-05 17:10:23 -03:00
James Almer
3bd9f17b8a avformat: remove obsolete FF_API_SET_PTS_INFO cruft
Signed-off-by: James Almer <jamrial@gmail.com>
2014-10-05 17:10:20 -03:00
James Almer
a578b93c73 avformat: remove obsolete FF_API_NEW_STREAM cruft
Signed-off-by: James Almer <jamrial@gmail.com>
2014-10-05 17:10:15 -03:00
James Almer
cc787709ee avformat: remove obsolete FF_API_FORMAT_PARAMETERS cruft
Signed-off-by: James Almer <jamrial@gmail.com>
2014-10-05 17:10:13 -03:00
James Almer
903a0acba4 avformat: remove obsolete FF_API_ALLOC_OUTPUT_CONTEXT cruft
Signed-off-by: James Almer <jamrial@gmail.com>
2014-10-05 17:10:07 -03:00
James Almer
e524a9b1ff avutil: remove obsolete FF_API_INTFLOAT cruft
Signed-off-by: James Almer <jamrial@gmail.com>
2014-10-05 17:10:03 -03:00
James Almer
3e57520982 avutil: remove obsolete FF_API_SAMPLES_UTILS_RETURN_ZERO cruft
Signed-off-by: James Almer <jamrial@gmail.com>
2014-10-05 17:09:56 -03:00
James Almer
71718de814 avutil: remove obsolete FF_API_FIND_OPT cruft
Signed-off-by: James Almer <jamrial@gmail.com>
2014-10-05 17:09:53 -03:00
James Almer
1abb77285c avutil: remove obsolete FF_API_GET_BITS_PER_SAMPLE_FMT cruft
Signed-off-by: James Almer <jamrial@gmail.com>
2014-10-05 17:09:49 -03:00
James Almer
42111bb960 avcodec: remove obsolete FF_API_FAST_MALLOC cruft
Signed-off-by: James Almer <jamrial@gmail.com>
2014-10-05 17:09:44 -03:00
Michael Niedermayer
c02ea58c5f avformat/options_table: add FF_COMPLIANCE_UNOFFICIAL
Fixes ticket 3959

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-05 21:43:17 +02:00
Michael Niedermayer
70eba7695c configure: add -lrt to libavutil when needed for nanosleep
This is similar to 7d97511e13

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-05 18:51:12 +02:00
Benoit Fouet
904cfd257d avcodec/h264_mp4toannexb_bsf: reset the new IDR flag when SPS/PPS is seen.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-05 14:47:04 +02:00
Michael Niedermayer
436206c175 avcodec/webp: add assert to ensure palette is not larger than 256
it should not be possible to be larger as its stored as 8bit value
but we would be overwriting a stack buffer if it is ...

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-05 13:00:40 +02:00
Pascal Massimino
19fb476841 avcodec/webp: add optimization: use local palette with extra padding
for big enough pictures.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-05 12:47:44 +02:00
Rémi Denis-Courmont
89ac99ba5f vdpau: pass codec-specific parameters from hwaccel
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-10-05 10:41:31 +00:00
Rémi Denis-Courmont
ce083282f0 vdpau: common support for managing the VdpDecoder in avcodec
Using the not so new init and uninit callbacks, avcodec can now take
care of creating and destroying the VDPAU decoder instance.

The application is still responsible for creating the VDPAU device
and allocating video surfaces - this is necessary to keep video
surfaces on the GPU all the way to the output. But the application
will no longer needs to care about any codec-specific aspects.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-10-05 10:17:02 +00:00
Rémi Denis-Courmont
fcc1022611 vdpau: factor out common end-of-frame handling
Also add error handling.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-10-05 10:13:44 +00:00
Rémi Denis-Courmont
319424d25c vdpau: add helper for VDPAU to libav error codes conversion
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-10-05 10:08:53 +00:00
Matthew Oliver
e81eca0ce5 configure: Set large address aware.
Enables >2GB memory usage for 32 bit compiles on Windows.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-05 05:33:36 +02:00
Alexander Strasser
e079d43af8 avformat/img2dec: Attempt to detect non-escaped glob patterns too (-pattern_type glob)
Fixes ticket #3948

Based-on-patch-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-05 03:56:42 +02:00
Michael Niedermayer
345160a9cd Merge commit '2a5ac99e6e06078713f684fee2466c91f677b303'
* commit '2a5ac99e6e06078713f684fee2466c91f677b303':
  x11grab: Check the XQueryPointer return value

Conflicts:
	libavdevice/x11grab.c

See: 69c34a6ac9
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-05 03:42:55 +02:00
Michael Niedermayer
8e5be0fffe Merge commit '5b9c817dc7577b6d44acc94d73b9c77c52cda489'
* commit '5b9c817dc7577b6d44acc94d73b9c77c52cda489':
  x11grab: Check XFixesGetCursorImage return value

Conflicts:
	libavdevice/x11grab.c

See: a65c0a3fe8

The warning with adjusted text is kept from a65c0a3fe8
but drawing the cursor is not disabled in case XFixesGetCursorImage() fails

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-05 03:22:55 +02:00
Michael Niedermayer
98baa8151a Merge commit '89fa2b5616274194d90bde0aeebf6adbd1245193'
* commit '89fa2b5616274194d90bde0aeebf6adbd1245193':
  x11grab: Check for XFixes availability at runtime

See: a65c0a3fe8
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-05 03:14:35 +02:00
Michael Niedermayer
de52af9017 Merge commit '68211c70afcfd4d675029cc85fba7dee8de53bdf'
* commit '68211c70afcfd4d675029cc85fba7dee8de53bdf':
  vc1: Do not assume seek happens after decoding

See: 6801eb0a09
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-05 02:58:48 +02:00
Michael Niedermayer
684508ba15 avformat/img2dec: Support -loop with pipes
Fixes Ticket3976

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-05 01:49:25 +02:00
Antonio Ospite
2a5ac99e6e x11grab: Check the XQueryPointer return value
The paint_mouse_pointer() code uses XFixes to retrieve the cursor
coordinates, but XFixes gives no information about which screen the
pointer is on; this results in always drawing the cursor on the
captured screen even if the mouse pointer was on another screen.

For example, when capturing from screen 1 (i.e. -f x11grab -i ":0.1")
the cursor was being drawn in the captured image even when the mouse
pointer was actually on screen 0, which is wrong and visually confusing.

CC: libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-10-04 23:46:46 +02:00
Luca Barbato
5b9c817dc7 x11grab: Check XFixesGetCursorImage return value
It could return NULL if the cursor is outside the screen, the connection
timed out or the system is out of memory.

CC: libav-stable@libav.org
2014-10-04 23:46:46 +02:00
Luca Barbato
89fa2b5616 x11grab: Check for XFixes availability at runtime 2014-10-04 23:46:46 +02:00
Luca Barbato
68211c70af vc1: Do not assume seek happens after decoding
If a seek is requested before the decoding start there is no
current picture.

CC: libav-stable@libav.org
2014-10-04 23:46:46 +02:00
Michael Niedermayer
550f3e9df3 avcodec/on2avc: Check number of channels
Fixes out of array access
Fixes: asan_heap-oob_4da4f3_7_asan_heap-oob_4da4f3_173_Xmen_avc_500.vp6

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-04 22:15:54 +02:00
Michael Niedermayer
578da1f0dd Merge commit '36f3aec3630f27df64f4ff2b52a1c9ced760eb52'
* commit '36f3aec3630f27df64f4ff2b52a1c9ced760eb52':
  fate-vc1_ilaced_twomv: use -flags +bitexact

Conflicts:
	tests/ref/fate/vc1_ilaced_twomv

See: 233d1acb70
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-04 21:38:16 +02:00
Mickaël Raulet
4ba6371a83 x86/hevc: get rid off packusdw for ssse3 compatibility
cherry picked from commit df8ebe304df453f26c28ff8f11d607f49b90a4c2

Fixes out of array access
Fixes: asan_stack-oob_1046454_9_asan_stack-oob_15a9e7c_170_WP_MAIN10_B_Toshiba_3.bit

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-04 21:14:15 +02:00
Michael Niedermayer
df8394c693 avcodec/hevc: fix chroma transform_add size
Fixes accessing misaligned address
Fixes: signal_sigsegv_1feb99c_10_signal_sigsegv_2d1d35c_79_cov_691940146_EXT_A_ericsson_3.bit

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-04 17:51:52 +02:00
Carl Eugen Hoyos
aaf65bc2a5 lavc/libx264: Fix compilation with libx264 version < 142. 2014-10-04 17:43:24 +02:00
Michael Niedermayer
9734a7a1de avcodec/h264: Check mode before considering mixed mode intra prediction
Fixes out of array read
Fixes: asan_heap-oob_e476fc_2_asan_heap-oob_1333ec6_61_CAMACI3_Sony_C.jsv

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-04 14:53:13 +02:00
Clément Bœsch
138902dfb6 avformat/assdec: make sure pos is initialized
Fixes use of uninitialized memory
Fixes: signal_sigsegv_504fb0_10_signal_sigsegv_504fb0_343_mewmew_ssa.avi

Found-by: Mateusz j00ru Jurczyk and Gynvael Coldwind
2014-10-04 12:27:58 +02:00
Michael Niedermayer
dceebe1a60 Merge commit '7d97511e13ef30cd99bae0e36400de055b72918d'
* commit '7d97511e13ef30cd99bae0e36400de055b72918d':
  configure: Add -lrt dependency to avutil's pc file.

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-04 12:04:51 +02:00
Janne Grunau
36f3aec363 fate-vc1_ilaced_twomv: use -flags +bitexact
Also updates the reference since it was generated by the non-bitexact
x86 specific code.
2014-10-04 11:21:32 +02:00
Josh Allmann
7d97511e13 configure: Add -lrt dependency to avutil's pc file.
This is needed for clock_gettime.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-10-04 09:10:04 +02:00
Michael Niedermayer
27f6da2921 avformat/mpegts: use a padded buffer in read_sl_header()
Fixes overread
Fixes: asan_heap-oob_84f75d_8_asan_heap-oob_a2a00a_341_mbc.ts

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-04 05:15:11 +02:00
Michael Niedermayer
c3d7f00ee3 avformat/mpegts: Check desc_len / get8() return code
Fixes out of array read
Fixes: signal_sigsegv_844d59_10_signal_sigsegv_a17bb7_366_mpegts_mpeg2video_mp2_dvbsub_topfield.rec

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-04 04:30:59 +02:00
Michael Niedermayer
8c50704ebf avcodec/vorbisdec: Fix off by 1 error in ptns_to_read
Fixes read of uninitialized memory
Fixes: asan_heap-uaf_18dac2b_9_asan_heap-uaf_22eb375_208_beta3_test_small.ogg

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-04 03:13:39 +02:00
Thomas Volkert
1c4c78ee40 sdp: add support for H.261
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-04 00:53:13 +02:00
Michael Niedermayer
075a165d27 avcodec/svq3: Dont memcpy AVFrame
This avoids out of array accesses

Fixes: asan_heap-uaf_21f42e4_9_asan_heap-uaf_21f42e4_278_gl2.mov

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-04 00:21:17 +02:00
Michael Niedermayer
c727401aa9 avcodec/smc: fix off by 1 error
Fixes out of array access
Fixes: asan_heap-oob_1685bf0_5_asan_heap-oob_1f35116_430_smc.mov

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-03 22:51:29 +02:00
Michael Niedermayer
883bc7d2e7 Merge commit '55f03d872640175a00bfa262da4652b7312b905f'
* commit '55f03d872640175a00bfa262da4652b7312b905f':
  hlsenc: Add parameter -hls_allow_cache

Conflicts:
	doc/muxers.texi
	libavformat/hlsenc.c
	libavformat/version.h

See: 3edb9aaea6
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-03 21:46:40 +02:00
Michael Niedermayer
dd3bfe3cc1 avcodec/qpeg: fix off by 1 error in MV bounds check
Fixes out of array access
Fixes: asan_heap-oob_153760f_4_asan_heap-oob_1d7a4cf_164_VWbig6.avi

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-03 21:09:40 +02:00
Michael Niedermayer
8f1457864b avcodec/gifdec: factorize interleave end handling out
also change it to a loop
Fixes out of array access
Fixes: asan_heap-oob_ca5410_8_asan_heap-oob_ca5410_97_ID_LSD_Size_Less_Then_Data_Inter_3.gif

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-03 20:20:23 +02:00
Michael Niedermayer
e7e5114c50 avcodec/cinepak: fix integer underflow
Fixes out of array access
Fixes: asan_heap-oob_4da0ba_6_asan_heap-oob_4da0ba_241_cvid_crash.avi

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-03 19:34:28 +02:00
Joakim Roubert
55f03d8726 hlsenc: Add parameter -hls_allow_cache
The -hls_allow_cache parameter enables explicitly setting the
EXT-X-ALLOW-CACHE tag in the manifest file. That tag indicates
whether the client MAY or MUST NOT cache downloaded media
segments for later replay.

Valid values are 1 (=YES) or 0 (=NO) and the EXT-X-ALLOW-CACHE
will not show in the manifest for other values (or if
-hls_allow_cache is not used.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-03 20:20:28 +03:00
Michael Niedermayer
e830902934 avcodec/pngdec: Calculate MPNG bytewidth more defensively
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-03 18:06:33 +02:00
Michael Niedermayer
3e2b745020 avcodec/pngdec: Check bits per pixel before setting monoblack pixel format
Fixes out of array accesses
Fixes: asan_heap-oob_14dbfcf_4_asan_heap-oob_1ce5767_179_add_method_small.png

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-03 17:37:15 +02:00
Michael Niedermayer
e1c0cfaa41 avcodec/tiff: more completely check bpp/bppcount
Fixes pixel format selection
Fixes out of array accesses
Fixes: asan_heap-oob_1766029_6_asan_heap-oob_20aa045_332_cov_1823216757_m2-d1d366d7965db766c19a66c7a2ccbb6b.tif

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-03 16:33:06 +02:00
Michael Niedermayer
8b0e96e1f2 avcodec/mmvideo: Bounds check 2nd line of HHV Intra blocks
Fixes out of array access
Fixes: asan_heap-oob_4da4f3_8_asan_heap-oob_4da4f3_419_scene1a.mm

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-03 14:46:43 +02:00
Michael Niedermayer
97cb9b6cbb Revert "avformat/img2dec: reduce bmppipe probe score"
This seems not needed anymore

This reverts commit 321c3cd1a9.

Found-by: carl
2014-10-03 14:15:02 +02:00
Michael Niedermayer
d225b0f7aa avcodec/h263dec: Fix decoding messenger.h263
Fixes http://samples.mplayerhq.hu/V-codecs/h263/h263-raw/messenger.h263
Fixes regression since b239f3f6

Found-by: Josh Allmann
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-03 12:55:17 +02:00
Michael Niedermayer
105654e376 avcodec/utils: Add case for jv to avcodec_align_dimensions2()
Fixes out of array accesses
Fixes: asan_heap-oob_12304aa_8_asan_heap-oob_4da4f3_300_intro.jv

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-03 04:48:29 +02:00
James Almer
0de1d6287e x86/mlpdec: add ff_mlp_rematrix_channel_{sse4,avx2}
2x to 2.5x faster than the C version.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2014-10-02 22:11:55 -03:00
James Almer
ddb813b0ef mlpdec: move rematrix_channels code to output_data()
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2014-10-02 22:11:51 -03:00
Michael Niedermayer
5c378d6a6d avcodec/mjpegdec: check bits per pixel for changes similar to dimensions
Fixes out of array accesses
Fixes: asan_heap-oob_16668e9_2_asan_heap-oob_16668e9_346_miss_congeniality_pegasus_mjpg.avi

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-03 02:18:13 +02:00
Michael Niedermayer
06e7d58410 avcodec/jpeglsdec: Check run value more completely in ls_decode_line()
previously it could have been by 1 too large
Fixes out of array access
Fixes: asan_heap-oob_12240f5_1_asan_heap-oob_12240f5_448_t8c1e3.jls
Fixes: asan_heap-oob_12240f5_1_asan_heap-oob_12240f5_448_t8nde0.jls
Fixes: asan_heap-oob_12240fa_1_asan_heap-oob_12240fa_448_t16e3.jls

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-03 02:18:08 +02:00
Michael Niedermayer
77b3e110d2 avcodec: bump micro version for av_lockmgr_register() changes in a950edb472
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-02 22:14:02 +02:00
Manfred Georg
a950edb472 avcodec/utils: av_lockmgr_register defines behavior on failure.
The register function now specifies that the user callback should
leave things in the same state that it found them on failure but
that failure to destroy is ignored by the library.  The register
function is now explicit about its behavior on failure
(it unregisters the previous callback and destroys all mutex).

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-02 21:18:49 +02:00
wm4
cdd6f059a6 avcodec, avutil: allow more control about how samples are skipped
Add CODEC_FLAG2_SKIP_MANUAL (exposed as "skip_manual"), which makes
the decoder export sample skip information via side data, instead
of applying it automatically. The format of the side data is the
same as AV_PKT_DATA_SKIP_SAMPLES, but since AVPacket and AVFrame
side data constants overlap, AV_FRAME_DATA_SKIP_SAMPLES needs to
be introduced.

This is useful for applications which want to do the timestamp
calculations manually, or which actually want to retrieve the
padding.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-02 20:21:00 +02:00
Vignesh Venkatasubramanian
a9b10e1510 lavf/webm_dash: some fields should go into Representation
Width, Height and Sample Rate should be in the AdaptationSet tag
only if all the contained representations have the same width,
height and sampling rate. Otherwise they should go into the
Representation tag. This patch adds this functionality and a fate
test for the same.

Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-02 19:20:05 +02:00
Michael Niedermayer
0d92b0d5f4 avutil/avstring: Factor av_match_list() out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-02 18:51:05 +02:00
Yusuke Nakamura
6ea357ea83 Fix compilation of jpeg2000dsp when disabling the encoder.
Signed-off-by: James Almer <jamrial@gmail.com>
2014-10-02 12:56:13 -03:00
Derek Buitenhuis
23c9ebffb5 avfilter: Properly check for failed format query
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-10-02 12:22:49 +01:00
Derek Buitenhuis
1dbc3e8ac8 avfilter/aresample: Check for memory alloc failure for out sample rates
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-10-02 12:22:37 +01:00
Carl Eugen Hoyos
81cee700f7 Support decoding 32bit pcm audio in mov.
Such files are written by Convergent Design's Odyssey 7Q recorder.
2014-10-02 10:04:43 +02:00
Carl Eugen Hoyos
6efe4137ce Stop demuxing wtv on eof.
Fixes ticket #3991.
Fixes ticket #3995.
Fixes ticket #3997.

Reviewed-by: Peter Ross
Reviewed-by: Paul B Mahol
2014-10-02 09:41:57 +02:00
Carl Eugen Hoyos
80ca627abb Check for oom in the dirac parser.
Fixes ticket #3996.
2014-10-02 09:31:41 +02:00
James Almer
c9f2ec8a34 jpeg2000: split off inverse MCT decoding as Jpeg2000DSP
This makes the addition of arch optimized functions easier.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2014-10-02 03:21:45 -03:00
Benoit Fouet
c29d999f71 avformat/mxfenc: add jpeg2000 support.
Fixes ticket #1542

reviewed-by: Matthieu Bouron <matthieu.bouron@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-02 04:19:37 +02:00
Michael Niedermayer
8cde94ec0d avformat/flvenc: fix codec_id_text check
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-02 03:58:54 +02:00
Michael Niedermayer
5dd4e644f3 Merge commit 'd10d1b86550d254bd1e746ed613bf6885978879c'
* commit 'd10d1b86550d254bd1e746ed613bf6885978879c':
  libx265: enable psnr reporting when requested by the user

See: 3956b12fde
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-01 21:24:01 +02:00
Vignesh Venkatasubramanian
b1071db3df lavf/webm_dash: Fix incorrect bandwidth computation
Fix incorrect bandwidth computation in some cases. When the cue end
descriptor is null (i.e.) start_time_ns == -1, existing bandwidth
computed (if any) should be returned rather than returning 0.

Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-01 20:47:18 +02:00
Vignesh Venkatasubramanian
8acb76567a lavf/webm_dash: fix hardcode in cues_end computation
Fix an incorrect hard code in cues_end computation. Updating the fate
test reference files related to the fix as well. The earlier computation
was clearly wrong as the cues_end field was greater than the file size
itself in some cases.

Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-01 20:47:11 +02:00
James Almer
acebff8e5d x86/mpegvideoencdsp: improve ff_pix_sum16_sse2
~15% faster.

Also add an mmxext version that takes advantage of the new code, and
build it alongside with the mmx version only on x86_32.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2014-10-01 13:07:22 -03:00
Michael Niedermayer
f2e53808e3 avformat/movenc: automatically set AVC-Intra tag
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-01 16:39:20 +02:00
Michael Niedermayer
0a7afedc48 avcodec/libx264: add avcintra-class
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-01 16:39:19 +02:00
Michael Niedermayer
23f0e2edec avformat/movenc: AVC Intra support
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-01 16:39:13 +02:00
Michael Niedermayer
d10d1b8655 libx265: enable psnr reporting when requested by the user
This is similar to what is done in libx264.c

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-10-01 14:31:48 +01:00
Christophe Gisquet
9a3653c9ec hevc: reuse edge emu buffer for coefficients
Kind of hackish but...

Reviewed-by: Mickael Raulet <Mickael.Raulet@insa-rennes.fr>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-01 12:12:28 +02:00
Manfred Georg
79551d2c7a avcodec/utils: Force mutex to NULL after destruction.
A badly behaving user provided mutex manager (such as that in OpenCV) may not reset the mutex to NULL on destruction.  This can cause a problem for a later mutex manager (which may assert that the mutex is NULL before creating).

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-01 00:56:53 +02:00
wm4
c8422f04a3 avformat/aviobuf: fix avio_flush() for read streams
avio_flush() did nothing useful for read streams. Fix it to behave as
expected, and discard the currently read buffer properly.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-30 21:31:08 +02:00
Jeffrey Wescott
07de0db74b avformat/flvenc: When using "-c:d copy", don't require a codec for passing the AMF metadata through from input to output. 2014-09-30 20:27:07 +02:00
Michael Niedermayer
cda5d89def avcodec/bitstream_filter: Use av_bitstream_filter_next() instead of direct access in av_bitstream_filter_init()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-30 20:27:07 +02:00
Clément Bœsch
0eb4a42812 avcodec/srtdec: use AVBPrint API 2014-09-30 20:21:15 +02:00
Clément Bœsch
55180b3299 Kill timed SRT 2014-09-30 20:21:14 +02:00
Benoit Fouet
d5ddcb5f8e avcodec/h264_mp4toannexb_bsf: use the given padding in h264_extradata_to_annexb().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-30 13:12:36 +02:00
Benoit Fouet
1cf4d2e9be avcodec/h264_mp4toannexb_bsf: add a case when only SPS/PPS is in the stream.
When only SPS or PPS is present in the stream, copy the missing one from
AVCC before insertion to the output stream.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-30 11:33:06 +02:00
Alexander Drozdov
08ccc474b7 RTMP: fix FD leak in rtmp_open()
If we setup AVIO interrupt callback and it will be returns 1 on socket
timeouts and we try to connect to non-existing streams on some servers
(like nginx-rtmp) we got FD leak.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-30 11:26:25 +02:00
Michael Niedermayer
61c0683080 avcodec/mpegvideo_enc: Fix leak on bitstream buffer reallocation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-30 05:19:20 +02:00
Michael Niedermayer
1441641d78 avcodec/mpegvideo_enc: Allocate only a small buffer and reallocate as needed
This should reduce the memory requirement

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-29 21:50:53 +02:00
Michael Niedermayer
a2d5f6b9db Merge commit '19133e96d30e3f80dbae236ef081aedef419a6bf'
* commit '19133e96d30e3f80dbae236ef081aedef419a6bf':
  lavf: fix memleaks in avformat_find_stream_info()

Conflicts:
	libavformat/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-29 21:25:09 +02:00
Michael Niedermayer
56c47364c3 Merge commit '2cd7c99498b1bcb450c328459cf85a686ce83456'
* commit '2cd7c99498b1bcb450c328459cf85a686ce83456':
  h264: reset ret to avoid propagating minor failures

See: 47048aa30b
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-29 21:05:20 +02:00
Michael Niedermayer
46807921f7 Merge commit 'e3a00acde05c925617dc19b5373969d864bf8414'
* commit 'e3a00acde05c925617dc19b5373969d864bf8414':
  hevc: Initialize mergecand_list to 0

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-29 21:02:15 +02:00
Michael Niedermayer
77ab7407c2 Merge commit 'a05f5052fef3b3743fab7846da12861d8a8098ec'
* commit 'a05f5052fef3b3743fab7846da12861d8a8098ec':
  sdp: Make opus declaration conform to the spec

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-29 20:26:15 +02:00
Justin Ruggles
19133e96d3 lavf: fix memleaks in avformat_find_stream_info()
When AVFMT_FLAG_NOBUFFER is set, the packets are not added to the
AVFormatContext packet list, so they need to be freed when they are
no longer needed.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-09-29 17:54:25 +00:00
Michael Niedermayer
cf32181b70 avcodec/put_bits: Add rebase_put_bits()
Reviewed-by: Benoit Fouet <benoit.fouet@free.fr>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-29 15:22:37 +02:00
Michael Niedermayer
2cd7c99498 h264: reset ret to avoid propagating minor failures
Unbreak 772d150a6e.

CC: libav-stable@libav.org
Bug-Id: 750 / 905753
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-09-29 12:33:55 +01:00
Luca Barbato
e3a00acde0 hevc: Initialize mergecand_list to 0
Unbreak cf6090dc62.

CC: libav-stable@libav.org
Sample-Id: hevc-conformance-LTRPSPS_A_Qualcomm_1
2014-09-29 12:33:46 +01:00
Michael Niedermayer
8ba6945487 avcodec/utils: Fix off by 1 error causing unneeded allocation in ff_fast_malloc()
Reviewed-by: Benoit Fouet <benoit.fouet@free.fr>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-29 12:56:45 +02:00
Timothy B. Terriberry
a05f5052fe sdp: Make opus declaration conform to the spec
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-09-29 13:48:42 +03:00
Michael Niedermayer
3f5095f213 avformat/hlsenc: fix outter typo
Found-by: beastd
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-29 00:19:43 +02:00
Michael Niedermayer
755f7929c6 avcodec/mpegvideo_enc: Only enforce rc_max_available_vbv_use on first encoding attempt
This reduces repeatly re-encoding to achieve VBV compliance

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-28 23:59:44 +02:00
Michael Niedermayer
b1a0fccd02 avformat/hlsenc: export inner muxer timebase
Fixes "Non-monotonous DTS in output stream 0:0"
Fies Ticket 3797

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-28 22:27:33 +02:00
Michael Niedermayer
579a0fdc21 avutil/lls: Make unchanged function arguments const
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-28 19:32:07 +02:00
Michael Niedermayer
d22e88d120 avcodec/x86/fmtconvert: Fix operand size in ff_int32_to_float_fmul_array8_sse*
Fixes acodec-dca2 fate failure

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-28 19:04:06 +02:00
Michael Niedermayer
b28f470df0 avutil/pca: Make argument of ff_pca_add() const
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-28 16:17:18 +02:00
Michael Niedermayer
04152a31cb avcodec/vc1dec: Fixing is_intra, 2nd attempt
This also un-does the fate changes from a52f443714,
leaving this fix without even small differences in the output, that is
a sample for which this makes a vissible difference is very welcome

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-28 15:10:40 +02:00
Michael Niedermayer
a52f443714 avcodec/vc1dec: fix is_intra block vs. mb bug
Fixes CID1194380

There are no vissible differences in the changed fate samples. Only
a tiny number of pixels change by tiny amounts in the frames i checked
If someone has a file that shows a vissible difference, please post it.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-28 14:27:35 +02:00
Reimar Döffinger
b7082d953f configure: add noexecstack to linker options if supported.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-09-28 10:01:24 +01:00
Michael Niedermayer
3956b12fde avcodec/libx265: enable psnr reporting when requested by the user
This is similar to what is done in libx264.c

Fixes Ticket3567

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-28 04:14:43 +02:00
Michael Niedermayer
4d9a46fe31 avcodec/libx264: mark unchanged pointer arguments as const
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-28 03:40:13 +02:00
Joakim Roubert
3edb9aaea6 avformat/hlsenc: Added parameter -hls_allow_cache
The -hls_allow_cache parameter enables explicitly setting the
EXT-X-ALLOW-CACHE tag in the manifest file. That tag indicates
whether the client MAY or MUST NOT cache downloaded media
segments for later replay.

Valid values are 1 (=YES) or 0 (=NO) and the EXT-X-ALLOW-CACHE
will not show in the manifest for other values (or if
-hls_allow_cache is not used.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-28 03:09:05 +02:00
Thilo Borgmann
dd16a0d8cc lavd/avfoundation: Add basic PCM audio support.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-28 02:31:38 +02:00
Michael Niedermayer
d85ebea3f3 avcodec/ac3enc_template: fix out of array read
Found-by: Andreas Cadhalpun
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-27 20:34:44 +02:00
Michael Niedermayer
5672107ed6 Merge commit '551746680462538bb5ad7adf55fb1248190428ec'
* commit '551746680462538bb5ad7adf55fb1248190428ec':
  configure: Provide a safe default for unknonw libcs

Conflicts:
	configure

This is not merged as it does not work with musl here, while
our previous solution does.

See: 170e2fd7c3
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-27 18:23:39 +02:00
Luca Barbato
5517466804 configure: Provide a safe default for unknonw libcs
Support musl out of box.

Amend commit 9d2cee52d3 that got
wrongly merged in its stead.
2014-09-27 18:01:44 +02:00
Clément Bœsch
5ec90c90c6 avcodec/subviewerdec: remove old compat code 2014-09-27 17:55:29 +02:00
Clément Bœsch
180d7f330b avcodec/microdvddec: remove old compat code 2014-09-27 17:55:22 +02:00
Clément Bœsch
71f6275169 avformat/assdec: make sure to free allocated data in case of error 2014-09-27 17:49:49 +02:00
Clément Bœsch
0e6bad1229 avformat/assenc: mux an event header if none are found in extradata 2014-09-27 17:32:14 +02:00
Clément Bœsch
3a6fa38fb1 avformat/assdec: add myself to Copyright 2014-09-27 17:32:14 +02:00
Clément Bœsch
0aa5c5a89e avformat/assdec: reindent after previous commit 2014-09-27 17:32:13 +02:00
Clément Bœsch
9ec52e5533 avformat/assdec: make sure "Comments:" events end up in the header 2014-09-27 17:32:13 +02:00
Clément Bœsch
ff5f5cbb46 avformat/assdec: output ASS packets
After this the order from the original file is stored through readorder
when doing ffmpeg -i input.ass -c copy output.mkv.

And now that the ASS muxer honors the ReadOrder, extracting the ass back
(without transcoding) restores the original order.
2014-09-27 17:32:13 +02:00
lvqcl
e58fc44649 avutil/x86/cpu: fix cpuid sub-leaf selection
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-27 13:21:31 +02:00
Michael Niedermayer
233d1acb70 tests/fate/microsoft: add -flags +bitexact to ilaced_twomv
Should fix fate failure on alpha and pre sse2 x86

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-27 13:07:03 +02:00
Christophe Gisquet
f183febcda hevc: remove CodingTree
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-27 11:50:41 +02:00
Paul B Mahol
bfdf0f078a avfilter/signalstats: add more pixel formats
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2014-09-27 07:28:06 +00:00
Michael Niedermayer
2ec4a84dca ffplay: Separate AVFrame from AVSubtitle
This is more robust and should avoid false positives in coverity
That is if the type is ever mixed up, after this patch that would
just be a null pointer dereference instead of a random possibly
out of array access

Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-27 03:54:36 +02:00
Michael Niedermayer
be5dd8aa55 Merge commit '4e03b2097ca59843ed65424a572b7acd5345f088'
* commit '4e03b2097ca59843ed65424a572b7acd5345f088':
  mpeg12: Always invoke the get_format() callback

Conflicts:
	libavcodec/mpeg12dec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-27 03:38:48 +02:00
Michael Niedermayer
28b1698a7c Merge commit 'ce42316321145c435029dc288c2b5f1d48519dde'
* commit 'ce42316321145c435029dc288c2b5f1d48519dde':
  h264: Always invoke the get_format() callback

Conflicts:
	libavcodec/h264_slice.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-27 03:21:56 +02:00
Michael Niedermayer
01831fd004 Merge commit '1c80c9d7ef809180042257200c7b5f6b81d0b0e2'
* commit '1c80c9d7ef809180042257200c7b5f6b81d0b0e2':
  hwaccel: Call ->get_format again if hwaccel init fails

Conflicts:
	libavcodec/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-27 02:42:30 +02:00
Michael Niedermayer
eb1ac04e59 Merge commit '9d2cee52d37c7340f85a5d41110282aac03e6855'
* commit '9d2cee52d37c7340f85a5d41110282aac03e6855':
  configure: Assume a standard-compliant default libc

See: 170e2fd7c3
Note, the change is not merged to avoid breaking netbsd and others.
once the netbsd (and any other breakages are dealt with the
else based solution could be used and 170e2fd7c3
could then be reverted)

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-27 02:25:31 +02:00
Michael Niedermayer
ac6b5bb834 Merge commit '6cfbe1de5ac6c57c41459626f7ac32841d63ace8'
* commit '6cfbe1de5ac6c57c41459626f7ac32841d63ace8':
  avconv: Use only audio and video to guess discontinuities

Conflicts:
	ffmpeg.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-27 02:06:39 +02:00
James Almer
26cd7b1e1a x86/fmtconvert: add ff_int32_to_float_fmul_array8_{sse,sse2}
About two times faster than the c wrapper.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2014-09-26 20:48:40 -03:00
Michael Niedermayer
b7a5538870 Merge commit '883e98bc25755327565d8ae0f565a6c886f24816'
* commit '883e98bc25755327565d8ae0f565a6c886f24816':
  probe: Bump the score for mime type matching

Conflicts:
	libavformat/format.c

See: bcac0f4010
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-27 01:35:46 +02:00
Michael Niedermayer
5a5d454dcc Merge commit 'd995f0a1550c9148140eab34c7d770e90925c004'
* commit 'd995f0a1550c9148140eab34c7d770e90925c004':
  log: Unbreak no-tty support on 256color terminals

Conflicts:
	libavutil/log.c

No change, FFmpeg is not affected by this bug

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-27 01:29:24 +02:00
Reynaldo H. Verdejo Pinochet
a9ea79bb49 libavfilter/af_amix: avoid derreferencing possible null
ff_all_channel_layouts() might return null on alloc failure.

Fixes CID1241516

Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2014-09-26 18:42:39 -03:00
Reynaldo H. Verdejo Pinochet
32288234a2 libavfilter/af_channelmap: avoid derreferencing possible null
ff_all_channel_layouts() might return null on alloc failure.

Fixes CID1241517

Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2014-09-26 18:42:39 -03:00
Reynaldo H. Verdejo Pinochet
e3e051c42c libavfilter/af_join: avoid derreferencing possible null
ff_all_channel_layouts() might return null on alloc failure.

Fixes CID1241518

Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2014-09-26 18:42:39 -03:00
Michael Niedermayer
7618d360ca Merge commit '7703995a2e8760e66ff35148bf029e0f9e30dbe6'
* commit '7703995a2e8760e66ff35148bf029e0f9e30dbe6':
  flac: Remove unused headers

Conflicts:
	libavcodec/flacdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-26 22:33:28 +02:00
Michael Niedermayer
c895fa7f66 Merge commit 'cc4992aaf3dbb0af88d9727983d75636baf1f8cc'
* commit 'cc4992aaf3dbb0af88d9727983d75636baf1f8cc':
  ac3enc: allow Dolby Pro Logic IIz as the Dolby Surround EX mode.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-26 22:18:12 +02:00
Michael Niedermayer
15fda8bcf1 Merge commit '4c2fd4b262347273afe97865ba451a1abde43ae6'
* commit '4c2fd4b262347273afe97865ba451a1abde43ae6':
  ac3enc: allow Dolby Pro Logic II as a preferred downmix mode.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-26 22:07:35 +02:00
Michael Niedermayer
b7caf89401 Merge commit 'b39ebcddd47daf37659796aaa7d068668086507a'
* commit 'b39ebcddd47daf37659796aaa7d068668086507a':
  fate: Add VC-1 interlaced twomv test

Note, this test is not free of artifacts on both sides of the merge

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-26 21:48:53 +02:00
Rémi Denis-Courmont
4e03b2097c mpeg12: Always invoke the get_format() callback
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-09-26 21:28:37 +02:00
Rémi Denis-Courmont
ce42316321 h264: Always invoke the get_format() callback
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-09-26 21:28:37 +02:00
Rémi Denis-Courmont
1c80c9d7ef hwaccel: Call ->get_format again if hwaccel init fails
This allows the application to fall back on another hwaccel or,
more likely, software decoding.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-09-26 21:28:36 +02:00
Luca Barbato
9d2cee52d3 configure: Assume a standard-compliant default libc
Non-standard compliant libc should be supported on a per-case basis
anyway.
2014-09-26 20:56:16 +02:00
Luca Barbato
6cfbe1de5a avconv: Use only audio and video to guess discontinuities
Data and subtitle streams might cause false positive.
2014-09-26 20:56:16 +02:00
Andreas Cadhalpun
883e98bc25 probe: Bump the score for mime type matching
It should be more trustworthy than extension matching.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-09-26 20:56:16 +02:00
Luca Barbato
d995f0a155 log: Unbreak no-tty support on 256color terminals 2014-09-26 20:56:16 +02:00
Michael Niedermayer
ecf5526578 Merge commit 'a97328afef0ccebfc8c3d9f9fdb8e93cbf1058ab'
* commit 'a97328afef0ccebfc8c3d9f9fdb8e93cbf1058ab':
  vc1: Use logical instead of bitwise or for twomv

See: 1e2ab98460
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-26 20:55:00 +02:00
Michael Niedermayer
bde8eb7fa3 Merge commit 'b5fe13448b13bfdd48a75b7e12387e11e3526d7c'
* commit 'b5fe13448b13bfdd48a75b7e12387e11e3526d7c':
  vc1: Use logical instead of bitwise or for coded_inter

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-26 20:47:43 +02:00
Tristan Matthews
7703995a2e flac: Remove unused headers
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-09-26 10:33:01 -07:00
Tim Walker
cc4992aaf3 ac3enc: allow Dolby Pro Logic IIz as the Dolby Surround EX mode.
This is actually defined in the A/52 specification.
2014-09-26 17:09:14 +02:00
Tim Walker
4c2fd4b262 ac3enc: allow Dolby Pro Logic II as a preferred downmix mode.
Some encoders already use this value even
though it's reserved in the A/52 specification.
2014-09-26 17:09:13 +02:00
Tim Walker
b39ebcddd4 fate: Add VC-1 interlaced twomv test
CC: libav-stable@libav.org
2014-09-26 16:55:59 +02:00
Michael Niedermayer
a97328afef vc1: Use logical instead of bitwise or for twomv
CC: libav-stable@libav.org
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Tim Walker <tdskywalker@gmail.com>
2014-09-26 16:55:36 +02:00
Tim Walker
b5fe13448b vc1: Use logical instead of bitwise or for coded_inter
This appears to be the intended behavior.
2014-09-26 16:18:42 +02:00
Peter Ross
1964251be7 libavformat/iff: print error message when DSDIFF compression type is not supported
Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-26 12:51:40 +02:00
Michael Niedermayer
ee2e5acdb1 avcodec/dxtory: remove unused variables
Found-by: Benoit Fouet <benoit.fouet@free.fr>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-26 12:51:40 +02:00
Michael Niedermayer
4c57be124f Merge commit 'b97f6ef956293fe06ae1e99bd295f42613081f37'
* commit 'b97f6ef956293fe06ae1e99bd295f42613081f37':
  pcm-dvd: Move a variable to a smaller scope

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-26 12:30:02 +02:00
Michael Niedermayer
b0458e62c8 Merge commit '4d5b99dacdbb56373e5abe2ad35fc87b5c0c5bd2'
* commit '4d5b99dacdbb56373e5abe2ad35fc87b5c0c5bd2':
  caf: Give context structure a consistent name

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-26 12:24:00 +02:00
Thilo Borgmann
f2254e36c0 lavd/avfoundation: Use microseconds as common timebase.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-26 12:13:57 +02:00
Diego Biurrun
b97f6ef956 pcm-dvd: Move a variable to a smaller scope
This avoids an unused variable warning on big-endian systems.
2014-09-26 02:15:34 -07:00
Clément Bœsch
9ae83ece8a avformat/srtdec: simpler and more lenient probing
Fixes Ticket #3935.
2014-09-26 11:12:41 +02:00
wm4
7dd2005e1a avformat: add SUP/PGS subtitle demuxer
Signed-off-by: Clément Bœsch <u@pkh.me>
2014-09-26 10:35:14 +02:00
Diego Biurrun
4d5b99dacd caf: Give context structure a consistent name 2014-09-26 00:44:41 -07:00
Thilo Borgmann
1ea7a3e04e lavd/avfoundation: Simplify debug message generation.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-26 05:05:31 +02:00
Thilo Borgmann
92827e1869 lavd/avfoundation: Using the actual stream index instead of hardcoded value.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-26 05:05:11 +02:00
Thilo Borgmann
a69c70e148 lavd/avfoundation: Split adding a device and getting the device configuration into separate functions.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-26 04:18:24 +02:00
Carl Eugen Hoyos
88c937fdc8 Autodetect jpg images.
Based on 2d3842f5 by Michael Niedermayer.

Fixes ticket #2541.
2014-09-26 00:06:41 +02:00
Carl Eugen Hoyos
475e3799cd Support libopenjpeg 2.x via libopenmj2.
Based on a patch by Marius Cirsta.

Fixes ticket #2016.
2014-09-26 00:06:41 +02:00
Carl Eugen Hoyos
8de7bdd756 Show correct pix_fmt for vp9 videos != AV_PIX_FMT_YUV420P. 2014-09-26 00:06:41 +02:00
Michael Niedermayer
a43bcaafe2 avcodec/dxtory: Support dxtory-2.0.127.avi
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-25 23:46:56 +02:00
Carl Eugen Hoyos
c0f9df30dd lavc/x86/idctdsp.h: Fix make checkheaders. 2014-09-25 22:18:25 +02:00
James Almer
a829870b2f avcodec/svq1enc: align buffer used by simd functions
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2014-09-25 16:00:20 -03:00
James Almer
4b892e469b x86/cavsdsp: fix buffer alignment in cavs_idct8_add_mmx()
It may be used by ff_add_pixels_clamped_sse2().
Should fix fate-cavs failures on some systems.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2014-09-25 16:00:16 -03:00
Thilo Borgmann
e113692c89 lavu/ffmpeg_opt: Check return value of avcodec_find_encoder().
Prevents a segfault if a stream featuring a known but unavailable codec (like external lib codec) should be opened.

Bug found by: Jonas Geistert <j.geistert@yahoo.de>

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-25 18:03:09 +02:00
Michael Niedermayer
ce6e46be72 avformat/img2dec: enable generic seeking for image pipes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-25 17:47:45 +02:00
Michael Niedermayer
6d35aba167 avformat/img2dec: initialize pkt->pos for image pipes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-25 17:16:14 +02:00
Michael Niedermayer
2497914a18 avformat/img2dec: pass error code and signal EOF
Found-by: Daemon404
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-25 16:20:23 +02:00
Michael Niedermayer
1dbdcb4a8c avformat/img2dec: fix error code at EOF for pipes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-25 15:22:42 +02:00
Michael Niedermayer
454f98b881 Merge commit '4620affa24eedb167482198aa04126bcedd05620'
* commit '4620affa24eedb167482198aa04126bcedd05620':
  m4vdec: K&R formatting cosmetics

Conflicts:
	libavformat/m4vdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-25 14:02:55 +02:00
Michael Niedermayer
59f4966756 Merge commit '86a361081d3eb4e999d75bc2a462f01d88cbd2e5'
* commit '86a361081d3eb4e999d75bc2a462f01d88cbd2e5':
  lmlm4: K&R formatting cosmetics

Conflicts:
	libavformat/lmlm4.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-25 13:51:43 +02:00
Michael Niedermayer
8f3d3e5f83 Merge commit '95d312d6c82e7485f43c3ddda0f369af0e41c83b'
* commit '95d312d6c82e7485f43c3ddda0f369af0e41c83b':
  concat: K&R formatting cosmetics

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-25 13:45:30 +02:00
Michael Niedermayer
9b53691f73 Merge commit '28f5cd312c9da9072108edf8b7685d009374ea96'
* commit '28f5cd312c9da9072108edf8b7685d009374ea96':
  fate: Switch ra4-288 test from framecrc() to pcm()

Conflicts:
	tests/fate/real.mak

The test is kept disabled as it still does not pass on x86-64 due to float
rounding

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-25 13:37:40 +02:00
Michael Niedermayer
a6fd685fed Merge commit 'd07ddc93e29a4fdf12cd426953a7ecd5abe5e36d'
* commit 'd07ddc93e29a4fdf12cd426953a7ecd5abe5e36d':
  avcodec: Fix a doxy comment to refer to the right function

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-25 12:09:32 +02:00
Gabriel Dume
4620affa24 m4vdec: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-09-25 01:58:51 -07:00
Gabriel Dume
86a361081d lmlm4: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-09-25 01:44:32 -07:00
Gabriel Dume
95d312d6c8 concat: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-09-25 01:44:31 -07:00
Katerina Barone-Adesi
28f5cd312c fate: Switch ra4-288 test from framecrc() to pcm()
The decoder is float-based and the test needs to allow for some fuzz.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-09-25 01:44:31 -07:00
Martin Storsjö
d07ddc93e2 avcodec: Fix a doxy comment to refer to the right function
CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-09-25 10:01:25 +03:00
Michael Niedermayer
303fc9b368 avcodec/mpegvideo_enc: write a log message at verbose level if frame re-encoding occurs due to VBV
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-25 05:28:32 +02:00
James Almer
4f4f08e6f0 x86/idctdsp: port {put,add}_pixels_clamped to yasm
Also add sse2 versions for both.
put_pixels_clamped port and sse2 version originally written by Timothy Gu.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2014-09-24 21:52:13 -03:00
James Almer
c99a882814 avcodec/idctdsp: change {put,add}_pixels_clamped to ptrdiff_t line_size
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2014-09-24 21:43:19 -03:00
Michael Niedermayer
6441d522e9 Merge commit '2f172f1ae984b763c06069adb51d0053b3834f4b'
* commit '2f172f1ae984b763c06069adb51d0053b3834f4b':
  rtsp: Clear the session id on redirects

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-25 01:08:44 +02:00
Michael Niedermayer
d8ddac363e Merge commit 'ddf5fb71ee9c8b2d9a23c0f661a84896cd7050fc'
* commit 'ddf5fb71ee9c8b2d9a23c0f661a84896cd7050fc':
  rtpenc: HEVC/H.265 support

Conflicts:
	Changelog
	libavformat/rtpenc.c
	libavformat/rtpenc_hevc.c
	libavformat/version.h

See: 6821a5a4ad
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-25 00:17:36 +02:00
Michael Niedermayer
b8d3f7fc21 Merge commit 'a2efbecc4ed12d287cf29856418c4da4a7648d95'
* commit 'a2efbecc4ed12d287cf29856418c4da4a7648d95':
  libavformat: Move avc mp4 startcode parsing to a shared file

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-25 00:09:42 +02:00
James Almer
ad26e83f9c avcodec/x86: use function pointers for {put,add}_pixels_clamped
Same behavior as in simple_idct.
This way the best optimized versions available will be used instead.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2014-09-24 18:52:32 -03:00
Philip DeCamp
857fc0a71f libavutil/opt: fix av_opt_set_channel_layout() to access correct memory address
Signed-off-by: Philip DeCamp <decamp@mit.edu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-24 22:57:40 +02:00
Martin Storsjö
2f172f1ae9 rtsp: Clear the session id on redirects
This fixes handling redirects in case the server provided a session
id within the redirect reply.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-09-24 23:34:02 +03:00
Thomas Volkert
ddf5fb71ee rtpenc: HEVC/H.265 support
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-09-24 23:33:26 +03:00
Martin Storsjö
a2efbecc4e libavformat: Move avc mp4 startcode parsing to a shared file
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-09-24 23:33:17 +03:00
James Almer
70277d1d23 x86/videodsp: add ff_emu_edge_{hfix,hvar}_avx2
~15% faster than sse2.

Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2014-09-24 16:12:55 -03:00
Michael Niedermayer
280ef183db libavformat/ffmetadec: Make unchanged function arguments const
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-24 19:17:55 +02:00
Michael Niedermayer
ab6f4fd4a7 libavformat/dv: Make unchanged function arguments const
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-24 19:11:05 +02:00
Michael Niedermayer
af19d2ed1e libavformat/avienc: Make unchanged function arguments const
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-24 18:34:21 +02:00
Michael Niedermayer
d6ed67780b libavformat/avidec: Make unchanged function arguments const
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-24 18:33:55 +02:00
Michael Niedermayer
e27f781aeb Merge commit 'c463dfc7e49929a9891884312b23b27d14729c51'
* commit 'c463dfc7e49929a9891884312b23b27d14729c51':
  rtpdec_hevc: Drop a duplicated, nonstandard entry

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-24 17:25:34 +02:00
Michael Niedermayer
3cd252d29a doc/APIchanges: fix typo
Found-by: ubitux
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-24 17:14:56 +02:00
Michael Niedermayer
ac682955e9 postproc: add basic deblock filter visualization support
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-24 16:58:47 +02:00
Michael Niedermayer
266b3d4fe4 ffplay: use av_codec_get_pkt_timebase()
Reviewed-by: Benoit Fouet <benoit.fouet@free.fr>
Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-24 13:44:56 +02:00
Vittorio Giovara
c463dfc7e4 rtpdec_hevc: Drop a duplicated, nonstandard entry
The RFC spec draft only specifies the "H265" name - there is no
specification saying how to interpret "HEVC" (if such a packet
format is specified it could be an entirely different format).

Since this is a very new standard (still a draft), there is little
need for compatibility with existing, broken implementations. Therefore
remove the extra alias, to avoid the risk of encouraging incorrect
usage.

Intentionally keeping the ff_hevc_dynamic_handler name for the
handler, to use "hevc" consistently as name for the codec instead
of "h265" within the library internals as long as there only is one
single variant in actual use.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-09-24 10:44:14 +03:00
Michael Niedermayer
170e2fd7c3 configure: Check if "-D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600" is needed for localtime_r()
Fixes build with musl

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-24 05:04:24 +02:00
Michael Niedermayer
3bc036171f configure: fail if SDL is unavailable and --enable-sdl is specified
Reviewed-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-24 02:32:56 +02:00
Michael Niedermayer
fb01a18462 configure: reindent the --disable-sdl related code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-24 02:32:52 +02:00
Michael Niedermayer
a7ed01082f configure: support --disable-sdl
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-24 02:32:49 +02:00
Christophe Gisquet
3fe962940f hevc: move intermediate bidir buffer
Other buffers are already there.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-24 01:26:12 +02:00
Christophe Gisquet
de60ce391d hevc: remove unneeded buffer.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-24 01:26:12 +02:00
James Almer
164d6c7f5b x86/videodsp: fix warning about discarded 'const' qualifier
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2014-09-23 19:59:20 -03:00
James Almer
789274dca8 avcodec/libvpxdec: don't check for formats other than i420 when vp9 decoding is disabled
Should fix ticket #3958.

Reviewed-by: James Zern <jzern@google.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2014-09-23 19:50:28 -03:00
Michael Niedermayer
00d3bb1a07 tests/fate-run.sh: Cat .err file in case of error with V>0
This may make fate failures where only the console output is available
easier to analyze

Suggested-by: Andreas Cadhalpun
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-24 00:35:38 +02:00
Carl Eugen Hoyos
9f0ba52f34 Skip decklink_common_c.h when running make checkheaders. 2014-09-23 22:51:36 +02:00
Michael Niedermayer
55179987e7 Merge remote-tracking branch 'cus/stable'
* cus/stable:
  ffplay: move pts calculating code to generic decoder
  ffplay: factorize decoder functions to generic decoder
  ffplay: handle fullscreen status on resize event

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-23 22:09:54 +02:00
Bernd Kuhls
6b733be755 Fix compile error on arm4/arm5 platform
Since these commits
http://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=adf8227cf4e7b4fccb2ad88e1e09b6dc00dd00ed
http://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=db7f1c7c5a1d37e7f4da64a79a97bea1c4b6e9f8

compilation on arm4/arm5 fails:

libavcodec/libavcodec.so: undefined reference to
`ff_startcode_find_candidate_armv6'

Because libavcodec/arm/Makefile contains
ARMV6-OBJS-$(CONFIG_STARTCODE)         += arm/startcode_armv6.o
function ff_startcode_find_candidate_armv6 is not included for older ARM
archs. The bug was found during automatic buildroot builds:

http://autobuild.buildroot.net/results/ec7/ec71e4f16ee9106747dff5f15999cbd17903e76f//build-end.log
Quote from configure summary:
ARCH                      arm (armv4t)
big-endian                no
runtime cpu detection     yes
ARMv5TE enabled           no
ARMv6 enabled             no
ARMv6T2 enabled           no

http://autobuild.buildroot.net/results/be7/be72eb182eaccf0064a32c9dfc2ac1c0d6555506/build-end.log
ARCH                      arm (armv5te)
big-endian                no
runtime cpu detection     yes
ARMv5TE enabled           yes
ARMv6 enabled             no
ARMv6T2 enabled           no

This patch provides the necessary #if clauses as discussed with Michael:
https://ffmpeg.org/pipermail/ffmpeg-devel/2014-September/163329.html

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-23 21:11:05 +02:00
Marton Balint
1f5a3cf688 ffplay: move pts calculating code to generic decoder
Signed-off-by: Marton Balint <cus@passwd.hu>
2014-09-23 21:08:40 +02:00
Marton Balint
9e0d1c00b5 ffplay: factorize decoder functions to generic decoder
Signed-off-by: Marton Balint <cus@passwd.hu>
2014-09-23 21:08:40 +02:00
Marton Balint
32f1a288e2 ffplay: handle fullscreen status on resize event
In some cases resize events can happen even during fullscreen, so let's pass
the proper flag to SDL_SetVideoMode.

Fixes ticket #3964.

Reported-by: Jeff Dwork <jeff@reggie.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2014-09-23 21:08:35 +02:00
Benoit Fouet
6843b9dc78 avformat/riffenc: Filter out "BottomUp" in ff_put_bmp_header()
Fixes Ticket1304

Commit message and extradata size bugfix by commiter
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-23 18:24:40 +02:00
Pascal Massimino
e5b3112996 avcodec/webp: fix default palette color 0xff000000 -> 0x00000000
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-23 17:15:20 +02:00
Michael Niedermayer
b0f7de3e7c avcodec/asvenc: fix AAN scaling
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-23 17:04:02 +02:00
Michael Niedermayer
0bb5ad7a06 avcodec/asvenc: Fix integer overflow in level
Warn if the qscale is too low for the input data and clip levels to
minimize artifacts

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-23 15:46:52 +02:00
James Almer
6b2caa321f x86/vp9: add AVX and AVX2 MC
Roughly 25% faster MC than ssse3 for blocksizes 32 and 64.

Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2014-09-22 22:35:03 -03:00
Michael Niedermayer
2284413206 ffmpeg: replace impossible dts/pts combinations by a reasonable guess instead of hard failing
Fixes stream copy from tserror270.ts

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-23 01:38:12 +02:00
Nicholas Robbins
bdb7f08666 doc/decoders: adding documentation for lavc/dvdsubdec.c option "forced_subs_only"
Signed-off-by: Nicholas Robbins <nickrobbins@yahoo.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-22 23:35:49 +02:00
Nicholas Robbins
c7d21dee28 libavcodec/dvdsubdec: Add option forced_subs_only to only decode forced subtitle frames.
Signed-off-by: Nicholas Robbins <nickrobbins@yahoo.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-22 21:01:13 +02:00
Michael Niedermayer
1cf28fd5f3 avformat/asfenc: Make asf_write_indexs index argument const
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-22 18:53:44 +02:00
Michael Niedermayer
d902a3f4cb avformat/adtsenc: buf isnt changed in adts_decode_extradata(), make it const
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-22 18:47:14 +02:00
Michael Niedermayer
544380aaf0 avcodec/4xm: Make src of decode_p_block() const
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-22 18:09:28 +02:00
Michael Niedermayer
3a7f9db180 avcodec/snow: Make block argumrnt of ff_snow_pred_block() const
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-22 18:06:56 +02:00
Michael Niedermayer
3c4fc6a782 postproc/postprocess_template: mark unchanged function arguments const
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-22 17:49:55 +02:00
Michael Niedermayer
bd68909753 postprocess: prefetch* dont change anything, thus their arguments should be const
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-22 17:42:10 +02:00
Michael Niedermayer
fe5093aafc Revert "configure: Refactor setting of feature test macro _XOPEN_SOURCE"
This fixes build on netbsd and probably other bsd based Platforms

This reverts commit 56b8d10676.
2014-09-22 17:12:35 +02:00
Thomas Volkert
5820358bbc Add missing entry for maintainer of rtpenc_hevc.*
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-22 15:01:04 +02:00
Benoit Fouet
9c843fb1d0 avformat/avidec: ensure that palette does not contain the BottomUp info.
Considering the palette is located at the end of extradata may be flawed
when the extradata contains the palette followed by the BottomUp field.
When the BottomUp field is present, exclude it from the palette.
Fixes part of ticket #1304

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-22 11:01:27 +02:00
Benoit Fouet
591e06b0e2 avformat/img2: remove useless 'pix' duplicated entry.
The second entry will never be selected, so let's save some bytes in the
library.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-22 10:25:31 +02:00
Thomas Volkert
e1cddd1a0c rtpenc_h263_rfc2190: avoid misleading error output
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-22 03:45:34 +02:00
Michael Niedermayer
f3aaec781a avdevice/version: bump minor for the decklink input
Found-by: jamrial
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-22 03:25:22 +02:00
Deti Fliegl
bac6cfcb3a avdevice: add decklink input support
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-22 02:55:24 +02:00
Deti Fliegl
a5e040ee3c avdevice/decklink: move general code of decklink encoder to common file
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-22 01:39:50 +02:00
Jörg Krause
56b8d10676 configure: Refactor setting of feature test macro _XOPEN_SOURCE
Some C libraries, eg glibc, uclibc, and musl, uses feature test macros
to expose definitions conforming to the standards ISO C, POSIX and
extensions. According to which feature test macros are defined by the
user or the compiler, a header file, eg <features.h>, used by these
libraries internally defines various other macros.

glibc and uclibc also defines release test macros, eg __GLIBC__ and
__UCLIBC__ in <features.h>. musl does not have (and does not want) a
macro __MUSL__. Therefore it is not possible to check for the musl
library.

However, building FFmpeg with musl needs the feature test macro
_XOPEN_SOURCE=600 to be defined.

Signed-off-by: Jörg Krause <jkrause@posteo.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-22 00:34:56 +02:00
Nicolas George
eb7a6d0813 lavu/bprint: add const to av_bprint_is_complete() argument. 2014-09-21 19:42:21 +02:00
Clément Bœsch
08e2b0da2c avformat/assenc: mux all extradata at once
Before this commit, the code was muxing up to the 2nd line after
"[Events]" (assuming it to be the "Format:" line). The remaining are
generally "Comment:" directives which can stay in that place. mkvextract
behaves that way so it seems there is no reason for that extra
complexity.
2014-09-21 18:55:12 +02:00
Clément Bœsch
e60770679b avformat/assenc: return correct error code 2014-09-21 18:50:16 +02:00
Clément Bœsch
ce8dc93aef avcodec/webvttdec: add some memory checks 2014-09-21 18:41:45 +02:00
Clément Bœsch
36c3a0167a avcodec/textdec: add some memory checks 2014-09-21 18:41:45 +02:00
Clément Bœsch
947a5111dd avcodec/subviewerdec: add some memory checks 2014-09-21 18:41:45 +02:00
Clément Bœsch
592716227c avcodec/srtdec: add some memory checks 2014-09-21 18:41:45 +02:00
Clément Bœsch
6a65da3a18 avcodec/samidec: add some memory checks 2014-09-21 18:41:45 +02:00
Clément Bœsch
8e7808b524 avcodec/realtextdec: add some memory checks 2014-09-21 18:41:45 +02:00
Clément Bœsch
27a9bee243 avcodec/mpl2dec: add some memory checks 2014-09-21 18:41:45 +02:00
Clément Bœsch
e833b02f2f avcodec/movtextdec: add some memory checks 2014-09-21 18:41:45 +02:00
Clément Bœsch
ac95b436db avcodec/microdvddec: add some memory checks 2014-09-21 18:41:45 +02:00
Clément Bœsch
4c85073044 avcodec/jacosubdec: add some memory checks 2014-09-21 18:41:45 +02:00
Clément Bœsch
d210c0e777 avcodec/ass: add ff_ass_add_rect_bprint() helper 2014-09-21 18:41:45 +02:00
Thomas Volkert
dcdc1cbf43 rtpdec_hevc: do not print an error message if the received packet has a valid header but lacks additional bytes as payload
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-21 15:07:26 +02:00
wm4
6c7f1155bb avformat/mp3dec: avoid early EOF with concatenated gapless mp3s
Consider a file created with something like:

    cat file1.mp3 file2.mp3 > result.mp3

Then if file2.mp3 has gapless information, result.mp3 would stop playing
something in the middle. This happens because the gapless info directs
the decoder to discard all samples after a certain position. To make
matters worse, the gapless info of file2.mp3 will be used when playing
the file1.mp3 part, because the gapless info is located at the end of
the file.

While handling concatenated gapless files correctly would be insane and
a lot of effort (especially without scanning the whole file on opening),
it's easy to prevent at least early EOF. Playback will happen to work,
even if it's slightly broken.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-21 14:57:12 +02:00
Hendrik Leppkes
36bf549b27 mlpdec: support TrueHD streams with an Atmos substream
The fourth substream is being discarded, since its not raw audio data,
but an encoded Atmos stream which needs a specialized decoder.

Fixes decoding of the true hd stream from Transformers\ -\ Age\ of\ Extinction\ 2014\ 1080P-003.mkv

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-21 14:38:32 +02:00
Hendrik Leppkes
ff34b2d6d3 mlpdec: support major sync headers with optional extension blocks
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-21 13:32:56 +02:00
Thomas Volkert
6821a5a4ad rtpenc: HEVC/H.265 support
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-21 12:49:08 +02:00
Michael Niedermayer
e927682e1b avfilter/vf_scale: Allow chroma samples to be above and to the left of luma samples
Found-by: Kierank
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-21 12:24:03 +02:00
Michael Niedermayer
61af6bebb4 swscale: Allow chroma samples to be above and to the left of luma samples
Found-by: Kierank
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-21 12:23:24 +02:00
Michael Niedermayer
950ce21d4a Merge commit '103391ca90b2f7c56ae756d76c76f7c3dfa28dd4'
* commit '103391ca90b2f7c56ae756d76c76f7c3dfa28dd4':
  dca: Remove some commented-out cruft

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-21 11:51:34 +02:00
Michael Niedermayer
28dce3cdbc avcodec/alacenc: Remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-20 23:54:00 +02:00
Christophe Gisquet
9950073655 alacenc: remove unneeded masking
The extra bits have already been masked, so this was not doing anything.

Noticed-by: Justin Ruggles
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-20 20:58:43 +02:00
Christophe Gisquet
a084493535 alacenc: fix incorrect buffer use
The issue lies in actually dead code ("for now it's not used").

Noticed-by: Justin Ruggles
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-20 20:45:57 +02:00
wm4
d87fe2687f avformat/mp3dec: fix gapless audio support
The code already had skipping of initial padding, but discarding
trailing frame padding was missing.

This is somewhat questionable, because it will make the decoder discard
any data after the declared file size in the LAME header. But note that
skipping full frames at the end of the stream is required. Encoders
actually create such files.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-20 19:46:25 +02:00
Diego Biurrun
103391ca90 dca: Remove some commented-out cruft 2014-09-20 13:49:52 +02:00
Pascal Massimino
7ac6b8cfa7 avfilter/idet: typo fix: PROGRSSIVE -> PROGRESSIVE
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-20 12:09:14 +02:00
James Almer
33c752be51 x86/me_cmp: port mmxext vsad functions to yasm
Also add mmxext versions of vsad8 and vsad_intra8, and sse2 versions of
vsad16 and vsad_intra16.
Since vsad8 and vsad16 are not bitexact, they are accordingly marked as
approximate.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2014-09-19 20:50:20 -03:00
Michael Niedermayer
5c073bbb57 avcodec/dvdsubdec: fix VD/SD identifier name
Found-by: Nicholas Robbins <nickrobbins-at-yahoo.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-19 23:47:20 +02:00
Daniel Bomar
af1818276e avformat/os_support: Add _DEFAULT_SOURCE to hide warning about _SVID_SOURCE depreciation
As suggested, this just adds _DEFAULT_SOURCE while preserving
_SVID_SOURCE for whatever old systems still need it.

Signed-off-by: Daniel Bomar <dbdaniel42@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-19 22:32:05 +02:00
Michael Niedermayer
adaa274fa8 tests/utils: make arguments const that arent changed
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-19 20:25:30 +02:00
James Almer
6edd6a4f00 avcodec/dv_profile: deprecate internal function that shouldn't be public
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2014-09-19 14:32:38 -03:00
Michael Niedermayer
5ccd08d26d postproc/postprocess: Avoid some ifs in do_a_deblock_C()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-19 17:00:15 +02:00
Pascal Massimino
4fd21d58a7 libavcodec/webp: treat out-of-bound palette index as translucent black
See https://code.google.com/p/webp/issues/detail?id=206
for a description of the problem/fix.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>

This patch makes the decoder follow the recommendation of the spec.
There is some disagreement (see "[FFmpeg-devel] [PATCH]: libavcodec/webp")
about what would be best to be written in the spec, so in case the spec
is changed again, this potentially would need to be amended or reverted
2014-09-19 16:33:05 +02:00
Gianluigi Tiesi
59af5383c1 avcodec/libilbc: support for latest git of libilbc
in the latest git commits of libilbc developers removed WebRtc_xxx typedefs

This commit uses int types instead,
it's safe to apply also for previous versions since
WebRtc_Word16 was always a typedef of int16_t and
WebRtc_UWord16 a typedef of uint16_t

Reviewed-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-19 09:29:07 +02:00
Michael Niedermayer
7f8d28f686 postproc: Replace CLIP by av_clip_uint8
drop "#define CLIP av_clip_uint8"

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-19 02:52:52 +02:00
Michael Niedermayer
5a9ca68e15 postproc/postprocess: remove redundant casts
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-18 21:11:37 +02:00
Michael Niedermayer
859d7d4640 postproc/postprocess: Use FF_ARRAY_ELEMS() in pp_free_context() instead of hard-coding their size
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-18 21:10:18 +02:00
Michael Niedermayer
d9b141c05f postproc/postprocess: Remove unused argument from reallocAlign()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-18 21:08:44 +02:00
Michael Niedermayer
27f936eca8 Merge branch 'postprocwork'
* postprocwork:
  postproc/postprocess: use av_strtok()
  postprocess: make some variables in pp_get_mode_by_name_and_quality() const
  postproc: simplify forwarding return codes
  libpostproc/postprocess: avoid some if()
  fate: add fate-filter-pp1

This is merged instead of just fast forward pushed due to a bug in the git hook
which does not allow commits to change filter-video.mak except merge commits.
filter-video.mak contains a few tabs, which are needed due to Makefile syntax

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-18 14:46:50 +02:00
Michael Niedermayer
9e8be46252 postproc/postprocess: use av_strtok()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-18 14:43:43 +02:00
Michael Niedermayer
921caf6203 postprocess: make some variables in pp_get_mode_by_name_and_quality() const
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-18 14:43:43 +02:00
Michael Niedermayer
44dabf1f42 postproc: simplify forwarding return codes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-18 14:43:43 +02:00
Michael Niedermayer
9f9ebe631d libpostproc/postprocess: avoid some if()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-18 14:43:43 +02:00
Michael Niedermayer
074eef56ef fate: add fate-filter-pp1
This tests a few more filters with forced quantizers

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-18 14:43:43 +02:00
James Almer
77f9a81cca x86/me_cmp: combine sad functions into a single macro
No point in having the sad8 functions separate now that the loop is no
longer unrolled.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2014-09-17 23:52:36 -03:00
Michael Niedermayer
986f63d17f Merge commit '2bb2c2bd75e5f4b28a945511cda77e0a1a44c758'
* commit '2bb2c2bd75e5f4b28a945511cda77e0a1a44c758':
  rtpenc_chain: Pass the initial time_base hint on to the chained muxer

See: [FFmpeg-devel] [PATCH] avformat/rtpenc_chain: Set timebase
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-18 02:14:53 +02:00
Michael Niedermayer
343643fdca Merge commit '3f2c70355ab722bc9f741bd3ed8224c7cfb62379'
* commit '3f2c70355ab722bc9f741bd3ed8224c7cfb62379':
  configure: Use the right variables in check_host_cpp

See: 453944cc77
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-18 01:43:13 +02:00
Andreas Cadhalpun
739f179dd6 vf_deshake: rename Transform.vector to Transform.vec to avoid compiler confusion
The token 'vector' is a keyword in the Vector/SIMD Multimedia Extension data types and thus should not be used as a variable name.

This fixes building on powerpc/ppc64el.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-18 00:48:15 +02:00
Vitor Sessak
55d11d277b swscale/x86: do not expect registers to be preserved across inline ASM blocks
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-18 00:03:29 +02:00
Michael Niedermayer
41d82b85ab avcodec/x86/vp9lpf: Always include x86util.asm
Fixes executable stack

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-17 23:37:46 +02:00
Martin Storsjö
2bb2c2bd75 rtpenc_chain: Pass the initial time_base hint on to the chained muxer
In practice this hint is ignored - the rtp muxer always overwrites
the stream time base without taking the hint into account. But as
a general practice this is the correct way to pass a time base hint
on to a chained muxer.

This avoids warnings about using the codec time base as hint
being deprecated.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-09-17 22:53:27 +03:00
Jörg Krause
3f2c70355a configure: Use the right variables in check_host_cpp
HOSTCPPFLAGS and HOSTCFLAGS are only set in config.mak.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-09-17 22:53:26 +03:00
Michael Niedermayer
8c71de762b Merge commit 'c5560e72d0bb69f8a1ac9536570398f84388f396'
* commit 'c5560e72d0bb69f8a1ac9536570398f84388f396':
  apetag: Fix APE tag size check

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-17 20:42:26 +02:00
Michael Niedermayer
43633c5388 fate: disable fate-ra4-288, the code uses floats and does not produce the same results on different platforms
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-17 20:27:24 +02:00
Michael Niedermayer
a4cefc25ed Merge commit '44caf99ecae7bc1b907fab849ecaa72dd340ba2e'
* commit '44caf99ecae7bc1b907fab849ecaa72dd340ba2e':
  fate: Add tests for RealAudio 1.0 (14.4) and RealAudio 2.0 (with 28.8)

Conflicts:
	tests/fate/real.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-17 20:26:44 +02:00
James Almer
fffc9a077d avfilter: remove obsolete FF_API_FILL_FRAME cruft
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2014-09-17 15:23:26 -03:00
Michael Niedermayer
9ac08d93b2 Merge commit '2dd09ebf5597fd5e4a573bee9cccf21ae821f286'
* commit '2dd09ebf5597fd5e4a573bee9cccf21ae821f286':
  cmdutils: Print a more sensible message in show_filters() w/o libavfilter

Conflicts:
	cmdutils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-17 19:59:10 +02:00
Katerina Barone-Adesi
c5560e72d0 apetag: Fix APE tag size check
The size variable is (correctly) unsigned, but is passed to several functions
which take signed parameters, such as avio_read, sometimes after having
numbers added to it. So ensure that size remains within the bounds that
these functions can handle.

CC: libav-stable@libav.org
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-09-17 06:37:05 -07:00
Katerina Barone-Adesi
44caf99eca fate: Add tests for RealAudio 1.0 (14.4) and RealAudio 2.0 (with 28.8)
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-09-17 05:16:08 -07:00
Michael Niedermayer
85f2c0124d avcodec/x86/me_cmp: fix sad8xh
This adds back support for 8x4 and 8x16
it does not support 8x2, i think nothing uses that

Found-by: ubitux
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-17 14:08:24 +02:00
James Almer
0456d169c4 x86/me_cmp: port mmxext and sse2 sad functions to yasm
Also add a missing c->pix_abs[0][0] initialization, and sse2 versions of
sad16_x2, sad16_y2 and sad16_xy2 (%15 to %20 faster than mmxext).
Since the _xy2 versions are not bitexact, they are accordingly marked as
approximate.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-17 11:12:50 +02:00
Paul B Mahol
f1a8943ddd doc/filters: remove aconvert
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2014-09-17 07:55:56 +00:00
James Almer
d1c49bcae9 avfilter: remove obsolete FF_API_ACONVERT_FILTER cruft
Signed-off-by: James Almer <jamrial@gmail.com>
2014-09-17 07:43:03 +00:00
Michael Niedermayer
9ffa705edd ffplay: try to fix build failure on apple
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-17 04:43:51 +02:00
Michael Niedermayer
22a20dbb7a Merge remote-tracking branch 'cus/stable'
* cus/stable:
  ffplay: use frame queue to determine last used pos
  ffplay: factorize frame queue operations

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-17 03:23:19 +02:00
Michael Niedermayer
3c020b6959 avformat/avienc: Dont search for startcodes in inserted empty avi frames
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-17 00:39:09 +02:00
Lou Logan
9c9aec33c0 doc/filters: add geq gradient examples
Radial gradient by Víctor Paesa. Linear gradient by Paul Gentemann.

Also-by: Víctor Paesa <victorpaesa@googlemail.com>
Also-by: Paul Gentemann <beriukay@gmail.com>
Signed-off-by: Lou Logan <lou@lrcd.com>
2014-09-16 14:06:38 -08:00
Michael Niedermayer
474d858fd9 Revert "avformat/rtpproto: fix strict aliasing violations with sockaddr"
It appears this breaks build with MSVC
until someone who has MSVC setup has time to investigate and
workaround/fix this, its better to revert so that build is not broken
Thats even more so as the original commit only fixed a hypothetical issue

This reverts commit e587a428d7.
2014-09-16 23:43:13 +02:00
Marton Balint
164376483f ffplay: use frame queue to determine last used pos
Signed-off-by: Marton Balint <cus@passwd.hu>
2014-09-16 22:22:09 +02:00
Marton Balint
5a5128bab9 ffplay: factorize frame queue operations
Create a generic frame and a frame queue struct to handle video picture queues
and subtitle picture queues with common code. Also add the possibility to queue
AVFrames, however at the moment we only use SDL_Overlay buffers for video and
AVSubtitles for subtitles.

Signed-off-by: Marton Balint <cus@passwd.hu>
2014-09-16 22:22:09 +02:00
Clément Bœsch
4b58349bc8 avfilter/ass: add shaping option
The documentation is mostly based on ass.h public header.
2014-09-16 21:23:33 +02:00
Clément Bœsch
8a9c5db29e avfilter/ass: better log level mapping 2014-09-16 21:23:33 +02:00
Clément Bœsch
a87527ad67 avfilter/ass: make sure the log level are in available range 2014-09-16 21:23:33 +02:00
Michael Niedermayer
7d43fbe3ae Merge commit '45ff7c93dd84a254cc96acc589e5ac3d7bd16bce'
* commit '45ff7c93dd84a254cc96acc589e5ac3d7bd16bce':
  dca: K&R formatting cosmetics

Conflicts:
	libavcodec/dca_parser.c
	libavcodec/dcadec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-16 20:31:02 +02:00
Michael Niedermayer
9bf260b2d2 Merge commit '9030c58a780a02fb8256cb75cd39275eaad786d1'
* commit '9030c58a780a02fb8256cb75cd39275eaad786d1':
  configure: Disable i686 for i586 and lower CPUs

See: cdb3eee7c4
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-16 20:08:21 +02:00
Diego Biurrun
2dd09ebf55 cmdutils: Print a more sensible message in show_filters() w/o libavfilter
Also avoid an unused variable warning for compilers w/o av_unused support.
2014-09-16 09:37:14 -07:00
Michael Niedermayer
a07b0ffdc3 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Add a closing LF to Webm-manifest files.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-16 18:28:37 +02:00
Michael Niedermayer
4a99134f1a tools/crypto_bench: fix build when AV_READ_TIME is unavailable
Found-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-16 18:25:43 +02:00
Carl Eugen Hoyos
7c3ba1b83a Add a closing LF to Webm-manifest files.
Fixes fate-webm-dash-manifest on AIX.

Reviewed-by: Nicolas George
2014-09-16 17:24:56 +02:00
Clément Bœsch
d469aa8cfa sws: use av_clip() instead of av_clip_c() 2014-09-16 16:57:20 +02:00
Clément Bœsch
de0e49c245 avformat/flacenc: use av_clip() instead of av_clip_c() 2014-09-16 16:57:20 +02:00
Steven Liu
2c21e8b1a4 lavf/hls: add hls_ts_option
Same as COMMITID 4f5493fe23.

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2014-09-16 16:30:03 +02:00
Stefano Sabatini
3a0c70f1e3 doc/examples/transcoding: use av_packet_rescale_ts()
Simplify.
2014-09-16 14:55:33 +02:00
Gabriel Dume
45ff7c93dd dca: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-09-16 04:42:32 -07:00
Mikulas Patocka
9030c58a78 configure: Disable i686 for i586 and lower CPUs 2014-09-16 03:48:13 -07:00
Michael Niedermayer
5ddfac81c4 Merge commit '2d589273dd36c5eb271a035ea0e669b64dae257f'
* commit '2d589273dd36c5eb271a035ea0e669b64dae257f':
  configure: Split adding of CFLAGS and CPPFLAGS for hardened toolchain

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-16 11:58:40 +02:00
Diego Biurrun
2d589273dd configure: Split adding of CFLAGS and CPPFLAGS for hardened toolchain 2014-09-16 00:18:53 -07:00
Michael Niedermayer
688a40b4ed avcodec/h264_sei: ff_h264_decode_sei: dont try to parse trailing zeroes
reduces noise for tserrors.ts

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-16 04:07:22 +02:00
Michael Niedermayer
aaeae281a8 avformat/mpegtsenc: More verbose warning messages in case of missing video ES startcodes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-16 03:56:37 +02:00
Michael Niedermayer
b76d6132e3 avformat/network: move sockaddr_union after sockaddr_storage compatibility code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-16 01:19:53 +02:00
Clément Bœsch
864d124bb7 build: simplify libwebp check
Tested (compilation and runtime) with libwebp 0.2.0, 0.2.1 and 0.4.1.
2014-09-15 23:54:34 +02:00
Michael Niedermayer
2156161056 Merge commit '00431bf874e1044b01e09a2266ef85d4ff8d44cc'
* commit '00431bf874e1044b01e09a2266ef85d4ff8d44cc':
  ismindex: handle time discontinuities and nonzero start time

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-15 22:39:31 +02:00
Mika Raento
f685f7d7a8 hlsenc: single_file, support HLS ver 4 byteranges
This adds a new option -hls_flags single_file that creates one .ts file
for HLS and adds byteranges to the .m3u8 file, instead of creating one
.ts file for each segment.

This is helpful at least for storing large number of videos, as the
number of files per video is drastically reduced and copying and storing
those files takes less requests and inodes.

This is based on work by Nicolas Martyanoff, discussed on ffmpeg-devel
in July 2014. That patch seems abandoned by the author, and contained
unrelated changes. This patch tries to add the minimum amount of code to
support the byterange playlists.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-15 22:16:44 +02:00
James Almer
ad1dadac86 avfilter: remove obsolete FF_API_BUFFERSRC_BUFFER cruft
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2014-09-15 15:54:06 -03:00
James Almer
95a064f530 avutil: remove obsolete FF_API_OLD_OPENCL cruft
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2014-09-15 15:50:17 -03:00
James Almer
af7d260626 avutil: remove obsolete FF_API_LLS1 cruft
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2014-09-15 15:50:10 -03:00
Mika Raento
00431bf874 ismindex: handle time discontinuities and nonzero start time
The input file may not have consistent start times, stream durations and
chunk durations. This patch at least removes negative durations that
make chromecast unhappy, and correctly sets starting time on chunks so
that the split (or .ismf) outputs match the manifest.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-09-15 19:54:36 +03:00
James Almer
4ae6bcc025 RELEASE: update to 2.4.git
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2014-09-15 13:11:10 -03:00
Michael Niedermayer
e587a428d7 avformat/rtpproto: fix strict aliasing violations with sockaddr
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-15 13:31:00 +02:00
Michael Niedermayer
8c1dc1f6ed avformat/network: add union for avoiding strict aliassing violations with sockaddr*
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-15 13:31:00 +02:00
James Almer
91459bd320 avcodec: remove obsolete FF_API_DSPUTIL cruft
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2014-09-14 22:13:05 -03:00
Michael Niedermayer
6beea6f017 avcodec/tiff: fix odd dimensioned yuv
Fixes Ticket3893

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-15 01:38:02 +02:00
Deb Mukherjee
04b0dda853 avcodec/libvpxdec: Adds decode support for formats other than 420
Handles decoding of new VP9 profiles 1-3 with different color sampling
and bit-depths.

For high bitdepth (profiles 2 and 3) support, we currently need to link
with the highbitdepth branch of libvpx with --enable-experimental
and --enable-vp9-high config options on. But eventually this branch will
be merged into master, whereafter to enable high bitdepth
support you will need to link with libvpx with configure option
--enable-vp9-highbitdepth on.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-14 20:27:28 +02:00
Clément Bœsch
b24d74e44a avcodec/microdvddec: indent fix 2014-09-14 20:00:11 +02:00
Clément Bœsch
fcfa3ebed1 avcodec/utils: remove avcodec_ prefix for internal symbol 2014-09-14 19:07:09 +02:00
Michael Niedermayer
b227be34db avcodec/mjpegenc: the AMV encoder doesnt support yuv422
Fixes Ticket3883

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-14 17:09:38 +02:00
Michael Niedermayer
808db3e687 Changelog: add 2.4
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-14 16:47:26 +02:00
Michael Niedermayer
68bca03951 doc/examples: remove unneeded NULL checks
dst_file cannot be NULL

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-14 16:45:50 +02:00
Michael Niedermayer
da2186be81 MAINTAINERS: Add 2.4 to maintained releases, drop 2.3
2.2 is used by 4 distributions, 2.3 by none, thus continuing maintaining
2.2 makes more sense than 2.3 see:
https://trac.ffmpeg.org/wiki/Downstreams

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-14 16:00:00 +02:00
Clément Bœsch
5eef7042d8 Changelog/RELEASE_NOTES: prepare for 2.4 2014-09-14 13:41:49 +02:00
Michael Niedermayer
fa1b563196 doc/APIchanges: Update hashes and dates
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-14 12:45:36 +02:00
Clément Bœsch
b97e27082b doc/APIchanges: attempt to split releases
Based on several git show origin/release/X.Y:doc/APIchanges.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-14 12:44:06 +02:00
Andreas Cadhalpun
365b9cf624 doc: mention important API changes in the RELEASE_NOTES
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-14 03:09:35 +02:00
Reynaldo H. Verdejo Pinochet
2638af2fc5 ffserver: drop custom skip_spaces() impl
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2014-09-13 21:01:01 -03:00
Reynaldo H. Verdejo Pinochet
4c8be331bc ffserver: use correct error for stream not found
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2014-09-13 21:01:01 -03:00
Andreas Cadhalpun
8f537420ae doc: mention in APIChanges that AVProbeData must be initialized due to the new mime_type field
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-14 01:13:25 +02:00
Michael Niedermayer
5312fb13b4 RELEASE_NOTES: add version numbers
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-14 00:14:58 +02:00
Michael Niedermayer
c2a7607a1c RELEASE_NOTES: Add next versions name (Fresnel)
The name is "randomly" picked from previous suggestions
If people prefer something else, suggest it quickly

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-13 23:51:00 +02:00
Michael Niedermayer
36ea35bbc0 avformat/utils: free s->pb for image2 as it can be used with and without a file
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-13 23:25:17 +02:00
Clément Bœsch
89d42da5c6 avformat/assenc: honor ReadOrder 2014-09-13 23:02:51 +02:00
Michael Niedermayer
52c85b194b avdevice/lavfi: dont assign variables to themselfs
Fixes "warning: explicitly assigning a variable of type int to itself"

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-13 22:32:21 +02:00
Michael Niedermayer
8407cbbfc9 Fix "passing argument 1 of av_free discards const qualifier from pointer target type"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-13 22:32:20 +02:00
Michael Niedermayer
296cd9c432 avformat/mpegts: Improve probe heuristic by considering the overall frequency of 0x47 headers
Fixes Ticket3939

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-13 22:08:21 +02:00
Clément Bœsch
b96d864fd6 avcodec/mjpegdec: Fix chroma width rounding
Fixes vertical line at the right side
Fixes Ticket 3929

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-13 20:25:27 +02:00
Michael Niedermayer
ceb2fe027f avcodec/bmp_parser: delay frame end detection to the next header or EOF
Fixes Ticket3687

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-13 17:46:18 +02:00
Michael Niedermayer
3c6d824b80 avcodec/bmp_parser: simplify
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-13 17:21:31 +02:00
Michael Niedermayer
b11d1889ef avcodec/bmp_parser: fix parsing a single bmp which has a fsize < its header
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-13 17:10:13 +02:00
Clément Bœsch
d86cf4a91d avformat/vobsub: fix NULL dereference 2014-09-13 15:15:32 +02:00
Michael Niedermayer
8572dbc5db avcodec/ac3en: use FF_ALLOC(Z)_ARRAY()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-13 13:28:38 +02:00
Andreas Cadhalpun
bcac0f4010 lavf/format.c: use AVPROBE_SCORE_MIME instead of AVPROBE_SCORE_EXTENSION for matching mime types
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-13 00:37:35 +02:00
Andreas Cadhalpun
d5e802609a doc: document the addition of the AVProbeData.mime_type field and it's implications
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-13 00:36:14 +02:00
Mikulas Patocka
cdb3eee7c4 configure: Fix miscompilation for i586
If the CPU is 386, 486 or pentium, we must not use cmov in inline
assembler.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-12 22:57:31 +02:00
Michael Niedermayer
b3fd2b175c avformat/img2dec: Fail probing when no data is yet available and the filename contains no number/glob patterns either.
Fixes Ticket3901

the seek test error codes change due to a change in the failure path,
this could be avoided by changing the respective error codes to EINVAL

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-12 19:01:44 +02:00
Michael Niedermayer
917d14e6a2 avformat/format: Run image2 probe again when file content data is available
Reviewed-by: Benoit Fouet <benoit.fouet@free.fr>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-12 18:20:38 +02:00
Michael Niedermayer
321c3cd1a9 avformat/img2dec: reduce bmppipe probe score
bmp pipe needs the bmp parser which is not bug free and should thus not be favored
over the bmp image2 demuxer
that also means this change could be reverted in case bmp pipe is improved so it
handles all single bmp images correctly

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-12 18:19:11 +02:00
James Darnley
e3fb2b0eb7 docs: add example around the suggested commit message format
It gets rendered inline in HTML and becomes not very clear.

Reviewed-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-12 01:59:44 +02:00
Jörg Krause
453944cc77 configure: fix check_cmd in check_host_cpp
Use correct cpp and c flags variables for the host libc.

Signed-off-by: Jörg Krause <jkrause@posteo.de>
Reviewed-by: Benoit Fouet <benoit.fouet@free.fr>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-11 18:42:23 +02:00
Rong Yan
8e8db16a2c avutil/ppc/float_dsp_altivec: ppc: Fix bug in ff_vector_fmul_add_altivec() affecting little endian environments on POWER8
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-11 18:36:34 +02:00
Michael Niedermayer
4a203b7737 avcodec/png_parser: Return the buffered data at the end
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-11 16:47:01 +02:00
Michael Niedermayer
a6153bde3d avcodec/pngdec: print the actual number of bytes left in the error case
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-11 16:47:01 +02:00
Michael Niedermayer
de4a4ca1a0 avformat/img2_alias_pix: Add AVClass and image2 AVOptions
This fixes the default timebase and allows overriding the framerate

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-11 15:34:13 +02:00
Michael Niedermayer
8b4714614f avformat/img2_alias & brender_pix: fix function names
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-11 15:16:24 +02:00
Michael Niedermayer
646d663f71 avformat/img2_brender_pix: Add AVClass and image2 AVOptions
This fixes the default timebase and allows overriding the framerate

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-11 15:10:59 +02:00
Michael Niedermayer
5303a644f5 avformat/img2: Make AVOptions available to img* demuxers defined in other files
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-11 15:10:15 +02:00
Michael Niedermayer
ea7ebadeb7 avformat/rmdec: very basic MLTI support
Fixes Ticket2152

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-11 14:13:03 +02:00
Michael Niedermayer
16de4d927e ffmpeg: Do av_buffersink_set_frame_size() when reconfiguring the filtergraph not just when changing audio resample parameters
Fixes Ticket3562

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-11 04:55:58 +02:00
Michael Niedermayer
5e3da25618 Merge commit '775a0b04f0cf8102fe322b2ee03fe1a0633dea04'
* commit '775a0b04f0cf8102fe322b2ee03fe1a0633dea04':
  doc: Fix syntax and logical errors in avconv stream combination example

Conflicts:
	doc/ffmpeg.texi

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-11 01:27:38 +02:00
Michael Niedermayer
3e56ae67d3 avcodec/h264: Use FF_ALLOCZ_ARRAY_OR_GOTO()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-10 22:37:35 +02:00
Michael Niedermayer
7258b5eb65 avcodec/dnxhdenc: Use FF_ALLOCZ_ARRAY_OR_GOTO()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-10 22:37:35 +02:00
Michael Niedermayer
743d489c9a avcodec/mpegvideo: Use FF_ALLOCZ_ARRAY_OR_GOTO()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-10 20:50:32 +02:00
Michael Niedermayer
6f48c60956 avcodec/twinvq: Use FF_ALLOC_ARRAY_OR_GOTO()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-10 20:44:19 +02:00
Diego Biurrun
775a0b04f0 doc: Fix syntax and logical errors in avconv stream combination example
Bug-Id: 661
CC: libav-stable@libav.org
2014-09-10 20:30:36 +02:00
Michael Niedermayer
c4a0c64f14 avcodec/aacenc: Use FF_ALLOCZ_ARRAY_OR_GOTO()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-10 15:18:29 +02:00
Michael Niedermayer
7fe59eeaaf avcodec/ac3enc_template: Use FF_ALLOC_ARRAY_OR_GOTO()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-10 15:18:29 +02:00
Michael Niedermayer
8b7a39d7ea avcodec/adpcmenc: Use FF_ALLOC_ARRAY_OR_GOTO()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-10 15:18:29 +02:00
Michael Niedermayer
3294fc8c47 avformat/concatdec: fix "warning: explicitly assigning a variable of type int to itself"
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-10 11:48:39 +02:00
Michael Niedermayer
1b5ccae0f2 avformat/mp3dec: Improve seeking frame sync code
Fixes Ticket3884

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-10 02:32:41 +02:00
Pascal Massimino
649b7a9946 av_filter/x86/idet: use HADDD where appropriate
Signed-off-by: James Almer <jamrial@gmail.com>
2014-09-09 19:02:49 -03:00
Clément Bœsch
c7d8dbad14 avformat: remove FF_API_ASS_SSA dead code 2014-09-09 21:34:23 +02:00
Michael Niedermayer
35a9959aca avcodec/snow: make new_picture const
Fixes "assignment discards const qualifier from pointer target type"

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-09 21:02:37 +02:00
Michael Niedermayer
96b069450c Merge commit 'ee0ebd3c1412fdd9d80aa97c98d1a20b893f1f47'
* commit 'ee0ebd3c1412fdd9d80aa97c98d1a20b893f1f47':
  dv: K&R formatting cosmetics

Conflicts:
	libavcodec/dv.c
	libavcodec/dv.h
	libavcodec/dv_profile.c
	libavcodec/dvdec.c
	libavcodec/dvenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-09 19:30:55 +02:00
Michael Niedermayer
5309e7e6aa Merge commit 'f629705b0239c80fddc1b0b15ed4bb9042c77d23'
* commit 'f629705b0239c80fddc1b0b15ed4bb9042c77d23':
  x86inc: Make INIT_CPUFLAGS support an arbitrary number of cpuflags

See: 428aa14a48
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-09 19:10:29 +02:00
Michael Niedermayer
d2f1f2c74f Merge commit 'ec217218c27d53c5b323323e6ef862bcdbcabe5f'
* commit 'ec217218c27d53c5b323323e6ef862bcdbcabe5f':
  x86inc: Free up variable name "n" in global namespace

See: a4dbabc8b3
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-09 19:08:32 +02:00
Michael Niedermayer
87120217b5 Merge commit '176a0fca3fd64f91d585f96137388e00d8c101b6'
* commit '176a0fca3fd64f91d585f96137388e00d8c101b6':
  x86inc: Make ym# behave the same way as xm#

See: 720c21d11f
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-09 18:59:01 +02:00
Pascal Massimino
e3fd6a3a4e av_filter/x86/idet: MMX/SSE2 implementation of 16bits filter_line()
tested on http://ps-auxw.de/10bit-h264-sample/10bit-eldorado.mkv
MMX: ~30% faster decoding overall
SSE2:~40% faster

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-09 16:47:22 +02:00
Gabriel Dume
ee0ebd3c14 dv: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-09-09 05:30:28 -07:00
Michael Niedermayer
881f96c4c2 avcodec/rawenc: drop sizeof(AVFrame) dependency
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-09 13:22:33 +02:00
Michael Niedermayer
b63052839a Merge commit '9752d07d33d5370f7819865fbb5e582b982aad06'
* commit '9752d07d33d5370f7819865fbb5e582b982aad06':
  dirac: K&R formatting cosmetics

Conflicts:
	libavcodec/dirac.c
	libavcodec/dirac_parser.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-09 12:12:29 +02:00
Henrik Gramner
f629705b02 x86inc: Make INIT_CPUFLAGS support an arbitrary number of cpuflags
Previously there was a limit of two cpuflags.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-09-09 02:00:25 -07:00
Loren Merritt
ec217218c2 x86inc: Free up variable name "n" in global namespace
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-09-09 02:00:19 -07:00
Henrik Gramner
176a0fca3f x86inc: Make ym# behave the same way as xm#
This makes more sense for future implementations of templates with zmm registers.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-09-09 01:45:14 -07:00
Gabriel Dume
9752d07d33 dirac: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-09-09 01:39:47 -07:00
Michael Niedermayer
f7bbe0f414 avformat/mpeg: update comment on probe score
Found-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-09 02:51:59 +02:00
Antonio Ospite
69c34a6ac9 avdevice/x11grab: fix cursor drawing in multi-screen setup
The code uses XFixes to retrieve the cursor coordinates, but XFixes
gives no information of what screen the pointer is on; this results in
always drawing the cursor on the captured screen even if the mouse
pointer was on another screen.

For example, when capturing from screen 1 (i.e. -f x11grab -i ":0.1")
the cursor was being drawn in the captured image even when the mouse
pointer was actually on screen 0, which is wrong and visually confusing.

Use XQueryPointer to check that the pointer is actually on the screen
which is being captured.

Signed-off-by: Antonio Ospite <ao2@ao2.it>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-09 02:22:06 +02:00
Antonio Ospite
5a8e51f661 avdevice/x11grab: rename the "w" Window to "root" in paint_mouse_pointer
This specifies better the meaning of the variable, and is also in
preparation of a subsequent change which will introduce a temporary
Window variable for which "w" is an good name.

Signed-off-by: Antonio Ospite <ao2@ao2.it>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-09 02:22:01 +02:00
Michael Niedermayer
02946120fc avfilter/vf_cropdetect: Do not check lines or columns twice on black frames
Idea from patch by: hjiodjf 97xgw46 <jfbvxt@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-09 02:06:17 +02:00
Michael Niedermayer
5109ce2017 avformat/mpeg: increase score for short mpeg-ps by 1
Fixes Ticket 3855

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-09 01:10:55 +02:00
Michael Niedermayer
6daff3bd8f Merge commit '1ec335513f95bf2441f81d761ea127325ecd81a0'
* commit '1ec335513f95bf2441f81d761ea127325ecd81a0':
  time: Add missing zero

Conflicts:
	libavutil/time.c

See: ebef9f5a56

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-08 22:14:32 +02:00
Gabriel Dume
1ec335513f time: Add missing zero
Leftover of 56d7df91e010a177a80cfc8dbe394305

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-09-08 21:46:12 +02:00
Michael Niedermayer
1360db7e88 avcodec/mpeg4videodec: fix 'libavcodec/mpeg4videodec.c:2762:22: warning: unused variable mpeg4_vdpau_class [-Wunused-const-variable]'
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-08 21:31:47 +02:00
Michael Niedermayer
a67b6c9541 avcodec/cabac_functions: fix "warning: UNCHECKED_BITSTREAM_READER is not defined, evaluates to 0"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-08 21:06:47 +02:00
Michael Niedermayer
baee313aa9 avcodec/diracdec: Fix "warning: comparison of constant 4 with expression of type enum dirac_subband is always true [-Wtautological-constant-out-of-range-compare]"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-08 20:47:47 +02:00
Carl Eugen Hoyos
552ce6874c Revert the default for ffplay to -noautoexit.
Reviewed-by: Marton Balint
2014-09-08 17:51:12 +02:00
Carl Eugen Hoyos
42b4da75b7 Print bits_per_raw_sample for ffprobe -show_streams.
Fixes ticket #3919.
2014-09-08 17:49:20 +02:00
Carl Eugen Hoyos
2b1f6a3516 Print the actual bit depth for audio if it is different from the sample_fmt bit depth.
This is already done for video.
2014-09-08 17:49:11 +02:00
Michael Niedermayer
5a6dd925cb avcodec/ac3dec_fixed: remove unused arrays
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-08 16:59:16 +02:00
Michael Niedermayer
951f6fa3f3 avformat/rtpdec_qt: Fix 'warning: passing argument 2 of ffio_init_context discards const qualifier from pointer target type'
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-08 16:56:19 +02:00
Stefano Sabatini
24db666d15 MAINTAINERS: add myself as segment maintainer 2014-09-08 15:23:04 +02:00
Stefano Sabatini
f51de9cac2 lavf/segment: abort in case of invalid segment format options 2014-09-08 15:22:55 +02:00
Hendrik Leppkes
e9c08e32d6 avformat/utils: Exclude the header size when computing duration from bit_rate
This improves the estimate for MP3s with cover art tags.

Fixes Ticket2931

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-08 05:22:05 +02:00
Michael Niedermayer
f044fc0372 Merge commit '1274ea8dbaec44355bde07f6bb31fec0c4e6fd2d'
* commit '1274ea8dbaec44355bde07f6bb31fec0c4e6fd2d':
  Split off floating point AAN (I)DCT into separate components

Conflicts:
	configure
	libavcodec/Makefile
	libavcodec/dct-test.c
	libavcodec/idctdsp.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-08 00:54:55 +02:00
Michael Niedermayer
1a59a28838 Merge commit 'fcf597625c7a991ca389f3a9b8ff4f5e383301c0'
* commit 'fcf597625c7a991ca389f3a9b8ff4f5e383301c0':
  ismindex: Avoid writing ismf files if no base name has been specified

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-08 00:45:33 +02:00
Michael Niedermayer
aecd064744 Merge commit '803e82276b3716bf6012ec69e8854dae14a4fd2b'
* commit '803e82276b3716bf6012ec69e8854dae14a4fd2b':
  libavformat: Check mkdir return error codes

Conflicts:
	libavformat/hdsenc.c
	libavformat/smoothstreamingenc.c

See: c89f8f80cc
See: a3886ea3c5
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-08 00:39:26 +02:00
Reynaldo H. Verdejo Pinochet
5e7524195c ffserver: tests, force +global_header for ASF
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2014-09-07 18:01:43 -03:00
Diego Biurrun
1274ea8dba Split off floating point AAN (I)DCT into separate components 2014-09-07 13:36:26 -07:00
Martin Storsjö
fcf597625c ismindex: Avoid writing ismf files if no base name has been specified
Previously, this could create files named "(null).ismf", if the -ismf
parameter is specified (before an input file name), but without
specifying any base name.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-09-07 23:20:30 +03:00
Martin Storsjö
803e82276b libavformat: Check mkdir return error codes
Previously, the returned error codes were intentionally ignored
(see fadd3a6821), to avoid aborting if the directory already
existed. If the mkdir actually failed, this was caught when
opening files within the directory fails anyway.

By handling the error code here (but explicitly ignoring EEXIST),
the error messages and return codes in these cases are more
appropriate and less confusing.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-09-07 23:20:29 +03:00
Andreas Cadhalpun
a5b20bf4b2 doc/filters.texi: improve the wording of the expr_int_format documentation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-07 18:29:06 +02:00
Michael Niedermayer
7c1835c52a avformat/m4vdec: Check for non startcode 00 00 00 sequences in probe
Fixes miss detection of PCM as m4v
Fixes Ticket 3928

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-07 16:39:39 +02:00
Michael Niedermayer
cfce6f7efd avcodec/mpegvideo: Set err on failure in ff_mpv_common_frame_size_change()
Found-by: ubitux
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-07 14:26:19 +02:00
Michael Niedermayer
0d0f7f0ba4 avcodec/mpegvideo: check that the context is initialized in ff_mpv_common_frame_size_change()
The function otherwise would initialize the context without setting context_initialized
alternatively we could set context_initialized

Fixes valgrind anomalies related to ticket 3928

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-07 13:26:22 +02:00
Michael Niedermayer
2762323c37 avcodec/mpegvideo: Use "goto fail" for all error paths in ff_mpv_common_frame_size_change()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-07 13:26:22 +02:00
Michael Niedermayer
94c61cd9ae avcodec/mpegvideo: free_context_frame() cannot fail, make it return void
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-07 13:26:22 +02:00
Stefano Sabatini
de1f0c94cd doc/muxers/segment: reword text for examples, improve consistency 2014-09-07 13:17:46 +02:00
Stefano Sabatini
4f5493fe23 lavf/segment: add segment_format_options option 2014-09-07 13:17:46 +02:00
Reimar Döffinger
2c5c37ade1 libswresample: move condition to start of loop.
This avoids several issue like calculating sum/maxcoef
incorrectly due to adding up matrix entries that will
be overwritten, as well as out-of-range writes to
s->matrix if the maximum allowed number of channels is used.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-09-07 11:31:34 +02:00
Reimar Döffinger
284123d7fd Remove pointless if.
A branch to avoid some calculation seems unlikely to have any benefits.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-09-07 11:31:33 +02:00
Reimar Döffinger
2231d5b671 libswresample: Avoid needlessly large on-stack array.
We only actually need to use a tiny part of it.
Unfortunately we seem to have no real test coverage on
the code, so this is a bit risky.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-09-07 11:31:33 +02:00
Michael Niedermayer
ab84effded ffmpeg: Copy extradata if it has been initialized later from the encoder
Fixes Ticket3909

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-07 03:13:44 +02:00
Michael Niedermayer
033a5334ba avcodec/h264: Allow partial escaping
Fixes Ticket3923

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-07 01:58:18 +02:00
Michael Niedermayer
c2430304df avformat/swfdec: Do not change the pixel format
This is currently not supported
Fixes part of Ticket 3539

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-07 00:39:52 +02:00
Michael Niedermayer
1b2390e2bc avfilter/af_silenceremove: remove dead code
Fixes CID1237284

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-06 21:36:56 +02:00
Michael Niedermayer
cbb277988a avcodec/hevc_ps: Always initialize backup in decode_vui()
Fixes CID1237283

Reviewed-by: Christophe Gisquet <christophe.gisquet@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-06 21:36:56 +02:00
Clément Bœsch
d8f08047dc RELEASE_NOTES: mention the ffplay -autoexit behaviour change 2014-09-06 21:28:53 +02:00
Reimar Döffinger
3dbf569032 huffyuvdec: avoid large stack use.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-09-06 21:01:09 +02:00
Reimar Döffinger
092d1977cc cabac: Allow hardcoding CABAC table.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-09-06 20:59:20 +02:00
Reimar Döffinger
0f1281b2b8 cabac: initialize all of ff_h264_cabac_tables programmatically.
Moves it from .data to .bss, slightly reducing binary size.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-09-06 20:59:20 +02:00
Reimar Döffinger
87c7fb2b21 aacsbr: support hardcoding tables.
For sbr_qmf_window_us there is even a question if it maybe
should be fully hardcoded all the time.
Since half of it is coded, it ends up in .data and not .bss.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-09-06 20:59:20 +02:00
Mickaël Raulet
684d0a0b23 avcodec/hevc: fix dead code
fix CID 1231985

cherry picked from commit 745a35a777eaa5f77b8660b44098110a29916aae
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-06 20:36:27 +02:00
Michael Niedermayer
5732b21884 ffplay: make autoexit the default
See: f9bc65e399
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-06 20:24:59 +02:00
Michael Niedermayer
f9bc65e399 Merge commit '041caf1a63f091745b95a6d51c23fbdcb604d4ce'
* commit '041caf1a63f091745b95a6d51c23fbdcb604d4ce':
  avplay: Exit by default at the end of playback

Conflicts:
	Changelog
	ffplay.c

Changes to ffplay not merged as they would break -autoexit as a way to override -noautoexit,
the change of the default will be implemented in the next commit

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-06 20:23:29 +02:00
Andreas Cadhalpun
b76d6eb3bd avformat/mpegts: fix spelling error
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-06 19:38:37 +02:00
Diego Biurrun
041caf1a63 avplay: Exit by default at the end of playback
This is the expected behavior shared by all other cli multimedia players.

Bug-Id: 732
2014-09-06 16:52:59 +02:00
Clément Bœsch
b2c0b80f62 avfilter/ebur128: rework channel weighting definition code
Should fix CID1194399 (Bad bit shift operation)
2014-09-06 13:47:59 +02:00
Michael Niedermayer
1654ca7d4e avcodec/mjpegdec: fix rounding of chroma_height
Fixes green line at the bottom
Fixes Ticket3913

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-06 03:13:57 +02:00
db0company
c701178900 doc: Copyright in CSS, CSS split in 2 files
Reviewed-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-06 01:37:31 +02:00
Giorgio Vazzana
d7e088849e lavd/v4l2: introduce enqueue_buffer()
Additionally, make sure a buffer gets enqueued again (even in error paths) after
it has been succesfully dequeued.

Tested-by: Dmitry Volyntsev <xeioexception@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-06 00:05:59 +02:00
wm4
c368538667 avformat/srtdec: speed up probing 2014-09-05 23:13:08 +02:00
wm4
b7f641dc9b avformat/realtextdec: UTF-16 support
Also remove ff_smil_extract_next_chunk - this was the last user of it.
2014-09-05 23:13:07 +02:00
wm4
231a514dd3 avformat/samidec: UTF-16 support
ff_smil_extract_next_chunk() is still used by RealText.
2014-09-05 23:13:07 +02:00
wm4
d658ef18e3 avformat/srtdec: UTF-16 support 2014-09-05 23:13:07 +02:00
wm4
3e8426170c avformat/assdec: UTF-16 support
Use the UTF-16 BOM to detect UTF-16 encoding. Convert the file contents
to UTF-8 on the fly using FFTextReader, which acts as converting wrapper
around AVIOContext. It also can work on a static buffer, needed for
format probing. The FFTextReader wrapper now also takes care of skipping
the UTF-8 BOM.

Fix Ticket #3496.
2014-09-05 23:13:07 +02:00
Michael Niedermayer
dcb29d37d4 avcodec/mpegvideo: set codec tags in ff_mpv_decode_init()
Fixes Ticket3912

Reviewed-by: Benoit Fouet <benoit.fouet@free.fr>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-05 20:48:23 +02:00
Michael Niedermayer
4dee4a4470 avcodec/mpegvideo: Factor ff_mpv_decode_init() out
Reviewed-by: Benoit Fouet <benoit.fouet@free.fr>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-05 20:48:06 +02:00
Giorgio Vazzana
0b890425e3 lavd/v4l2: simplify list_formats()
We can avoid passing file descriptor fd explicitely.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-05 20:25:58 +02:00
Michael Niedermayer
0a7239ae25 Merge commit '2143948381c8118bdc2f50bd4079520b9885bd54'
* commit '2143948381c8118bdc2f50bd4079520b9885bd54':
  Drop unnecessary av_unused attributes.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-05 20:21:47 +02:00
Paul B Mahol
7bd0079e9e MAINTAINERS: fix typo
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2014-09-05 17:32:41 +00:00
Paul B Mahol
422619646e add silenceremove filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2014-09-05 17:30:57 +00:00
Michael Niedermayer
1e4e760f76 Merge commit '213e606752d16f51337e94431962fb5d7749c07e'
* commit '213e606752d16f51337e94431962fb5d7749c07e':
  Replace av_unused attributes by block structures

Conflicts:
	libavcodec/h264_loopfilter.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-05 19:24:49 +02:00
Michael Niedermayer
73aeb27cfe Merge commit '096a1d5b46391f65dfd0bee6292e9962f53bd7c8'
* commit '096a1d5b46391f65dfd0bee6292e9962f53bd7c8':
  rdft: Move some variables into a separate block

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-05 19:16:15 +02:00
Michael Niedermayer
8c6cfffa01 Merge commit 'b574e1e97ea7067a5fcd3876e30a67df0e4e6611'
* commit 'b574e1e97ea7067a5fcd3876e30a67df0e4e6611':
  get_bits: Add OPEN_READER macro variant w/o size_plus8

Conflicts:
	libavcodec/get_bits.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-05 19:08:27 +02:00
Giorgio Vazzana
7865cafec2 lavd/v4l2: simplify list_framesizes()
We can avoid passing file descriptor fd explicitely.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-05 18:52:34 +02:00
Giorgio Vazzana
55cf7d9713 lavd/v4l2: remove unneeded variable in device_init()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-05 18:43:28 +02:00
Giorgio Vazzana
3da359c140 lavd/v4l2: simplify first_field()
There is no need to pass fd as a second parameter. Additionally remove
unneeded curly braces.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-05 18:36:04 +02:00
Giorgio Vazzana
39750b7364 lavd/v4l2: Replace s1 with ctx for consistency.
No functional change in the code.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-05 18:10:42 +02:00
Giorgio Vazzana
d247a40aad MAINTAINERS: add myself as lavd/v4l2 maintainer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-05 17:42:27 +02:00
Henrik Gramner
428aa14a48 x86inc: Make INIT_CPUFLAGS support an arbitrary number of cpuflags
Previously there was a limit of two cpuflags.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-05 14:06:03 +02:00
Diego Biurrun
2143948381 Drop unnecessary av_unused attributes. 2014-09-05 13:55:04 +02:00
Diego Biurrun
213e606752 Replace av_unused attributes by block structures
This is more portable and avoids warnings with compilers that do not
properly support av_unused.
2014-09-05 13:55:04 +02:00
Diego Biurrun
096a1d5b46 rdft: Move some variables into a separate block
This avoids an unused variable warning with hardcoded tables.
2014-09-05 13:55:03 +02:00
Diego Biurrun
b574e1e97e get_bits: Add OPEN_READER macro variant w/o size_plus8
This avoids a trillion warnings from MSVC.
2014-09-05 13:55:03 +02:00
Benoit Fouet
4f10495055 tiff: fix {2,4}bpp grayscale palettes.
Create a default grayscale palette for 2 or 4 bpp grayscale tiff, if
there is no palette defined.
Fixes ticket #3915

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-05 12:57:22 +02:00
James Darnley
db8970d7b6 vfi/x86/vf_idet: fix incorrect use of paddq
paddq is an SSE2 instruction so it cannot be used for MMX.

This was probably just a typo because the sums are dwords anyway.

Reviewed-by: Pascal Massimino <pascal.massimino@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-05 12:49:34 +02:00
Pascal Massimino
161fc0f463 avfilter/x86/idet: fix license header (GPL -> LGPL)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-05 12:22:36 +02:00
Michael Niedermayer
0940066b80 Merge commit 'b21e989a3c076d94cfdde0303724db841dd60cad'
* commit 'b21e989a3c076d94cfdde0303724db841dd60cad':
  ismindex: produce .ismf file

Conflicts:
	tools/ismindex.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-05 12:14:42 +02:00
Mark Harris
ef16d12606 doc/filters.texi: fix time duration references
Make time duration references consistent, using @ref links, and
eliminate incorrect syntax [-]HH[:MM[:SS[.m...]]].

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2014-09-05 11:20:07 +02:00
Stefano Sabatini
6f0fc1a96b lavf/ffmdec: return proper error code in ffm2_read_header()
Also log an error message in case of invalid packet size.
2014-09-05 11:20:07 +02:00
Stefano Sabatini
39b517fac0 lavc/libvpxenc: show crf CQ value in error message 2014-09-05 11:20:07 +02:00
Mika Raento
b21e989a3c ismindex: produce .ismf file
This is a non-standard file that maps the MSS segment names to offsets
in the ISMV file. This can be used to build a custom MSS streaming
server without splitting the ISMV into separate files.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-09-05 09:54:55 +03:00
Michael Niedermayer
2178abd3b5 Merge commit 'd7913bf59ccbf781ce57c5d58998e8f25d10e040'
* commit 'd7913bf59ccbf781ce57c5d58998e8f25d10e040':
  changelog: Move Ogg subtypes aliases entry to the correct release

Conflicts:
	Changelog

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-05 04:45:30 +02:00
James Almer
52ec81c67d x86/hevc_res_add: add missing guards to hevc_transform_add32_8_avx2
Should fix compilation with old Yasm/Nasm versions.

Signed-off-by: James Almer <jamrial@gmail.com>
2014-09-04 23:34:01 -03:00
Henrik Gramner
720c21d11f x86inc: Make ym# behave the same way as xm#
This makes more sense for future implementations of templates with zmm registers.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-05 01:55:28 +02:00
Loren Merritt
a4dbabc8b3 x86inc: free up variable name "n" in global namespace
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-05 01:41:50 +02:00
James Almer
c3d2426cca x86/hevc_res_add: add ff_hevc_transform_add32_8_avx2
~20% faster than AVX.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2014-09-04 20:21:29 -03:00
Michael Niedermayer
467a55a4ee avutil/md5: workaround clang 3.5 #20849
This avoids several failures on fate.ffmpeg.org, and thus makes real
bugs easier to spot

Reviewed-by: James Darnley <james.darnley@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-05 00:43:48 +02:00
James Darnley
46ef45ab59 lavc/x86/v210: give cpuflag to INIT macro
This lets the cglobal macro automatically append a suffix to the function name.
This means that INIT_XMM avx must be used rather than INIT_AVX.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-05 00:35:07 +02:00
Diego Biurrun
d7913bf59c changelog: Move Ogg subtypes aliases entry to the correct release 2014-09-04 15:12:46 -07:00
skal
406a9ccffe avfilter/vf_idet: MMX/MMXEXT/SSE2 implementation of idet's filter_line()
integration by Neil Birkbeck, with help from Vitor Sessak.
core SSE2 loop by Skal (pascal.massimino@gmail.com)

Reviewed-by: Clément Bœsch <u@pkh.me>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-04 22:19:00 +02:00
Michael Niedermayer
53b0892005 Merge commit 'd9792b773516a560ecb99694b8ee745a50027fac'
* commit 'd9792b773516a560ecb99694b8ee745a50027fac':
  Mark 11 release in the changelog

Conflicts:
	Changelog

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-04 20:50:01 +02:00
Michael Niedermayer
69a68d3013 Merge commit '12f0388f9cb32016ac0dacaeca631b088b29bb96'
* commit '12f0388f9cb32016ac0dacaeca631b088b29bb96':
  Add release notes for 11.

Conflicts:
	doc/RELEASE_NOTES

Mostly not merged

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-04 20:34:40 +02:00
Michael Niedermayer
ddc6adaa28 Merge commit '4d55e9de27894ddfb337b28cd7aa6d14a12666d2'
* commit '4d55e9de27894ddfb337b28cd7aa6d14a12666d2':
  vc1: Split bits used in libavformat into a separate header

Conflicts:
	libavformat/movenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-04 20:09:01 +02:00
Michael Niedermayer
5a20f1885d Merge commit 'f20518568a77a6138fc74021ce56013ab72907ba'
* commit 'f20518568a77a6138fc74021ce56013ab72907ba':
  build: Split WMA frequencies into a separate object file

Conflicts:
	configure
	libavcodec/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-04 19:46:06 +02:00
Michael Niedermayer
91a8b933fb Merge commit '803f8992f11d1eb301672cd13c685a7b1d04c467'
* commit '803f8992f11d1eb301672cd13c685a7b1d04c467':
  build: cosmetics: Group hwaccel OBJS declarations together

Conflicts:
	libavcodec/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-04 19:18:08 +02:00
Michael Niedermayer
a52e74db17 Merge commit '2b8b0da09cf0dc2535de42f95110eb633f36d8c8'
* commit '2b8b0da09cf0dc2535de42f95110eb633f36d8c8':
  fdctdsp: cosmetics: Drop one unnecessary if-block level

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-04 19:10:33 +02:00
Diego Biurrun
d9792b7735 Mark 11 release in the changelog
Also fix some typos in the entries for the 11 release.
2014-09-04 17:01:36 +02:00
Anton Khirnov
12f0388f9c Add release notes for 11.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-09-04 07:14:27 -07:00
Diego Biurrun
4d55e9de27 vc1: Split bits used in libavformat into a separate header
This reduces inter-library dependencies.
2014-09-04 07:11:03 -07:00
Andreas Cadhalpun
c4abee734d Remove non-free tests/lena.pnm and adapt FATE tests to depend on lena.pnm in the SAMPLES directory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-04 15:21:50 +02:00
Steven Liu
03efd73082 avformat/flvdec: read the correct bits into the tag type
from the flv spec, the flvtag define the tagtype as one byte,
the spec desc is:
Reserved  UB[2] Reserved for FMS, should be 0
Filter    UB[1] Indicates if packets are filtered.
                0 = No pre-processing required.
                1 = Pre-processing (such as decryption) of the packet is
                    required before it can be rendered.
                    Shall be 0 in unencrypted files, and 1 for encrypted
tags.
                    See Annex F. FLV Encryption for the use of filters.
TagType   UB[5] Type of contents in this tag. The following types are
                defined:
                        8 = audio
                        9 = video
                        18 = script data

Signed-off-by: Steven Liu <qi.liu@chinacache.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-04 14:54:23 +02:00
Diego Biurrun
f20518568a build: Split WMA frequencies into a separate object file
These are the only WMA bits shared with binkaudio. Splitting them off
reduces the binnkaudio dependency on general WMA code.
2014-09-04 05:19:46 -07:00
Diego Biurrun
803f8992f1 build: cosmetics: Group hwaccel OBJS declarations together 2014-09-04 05:19:39 -07:00
Dmitry Volyntsev
fe8f4c71e3 libavdevice/v4l2: fix descriptors leak on error paths
Signed-off-by: Dmitry Volytnsev <xeioexception@gmail.com>
Reviewed-by: Benoit Fouet <benoit.fouet@free.fr>
Reviewed-by: Giorgio Vazzana <mywing81@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-04 13:52:44 +02:00
Michael Niedermayer
4f63d6d3b5 avdevice/x11grab: fix error handling in pixel formats
Reviewed-by: Benoit Fouet <benoit.fouet@free.fr>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-04 13:42:53 +02:00
Michael Niedermayer
bb8b752553 postproc: use FFMIN/FFMAX where appropriate
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-04 03:50:46 +02:00
Timothy Gu
17ad5fbb8a Use makeinfo to generate html doc for the new website
texi2html is deprecated by upstream in favor of makeinfo/texi2any. See:

- https://www.gnu.org/software/texinfo/manual/texinfo/html_node/texi2html.html
- https://wiki.debian.org/Texi2htmlTransition
- https://lists.debian.org/debian-devel/2013/05/msg01516.html

This is actually two separate changes.

Based on a patch by Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>.

Fixes Trac ticket #3232.

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2014-09-04 02:34:20 +02:00
Michael Niedermayer
75a9859ac6 Merge commit 'd2a4e4b9cc9a0c2661e1c1d6f6b51babac2cec1b'
* commit 'd2a4e4b9cc9a0c2661e1c1d6f6b51babac2cec1b':
  wma: K&R formatting cosmetics

Conflicts:
	libavcodec/wma.c
	libavcodec/wmadec.c
	libavcodec/wmaenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-03 22:10:21 +02:00
Reimar Döffinger
235d401bfa vorbisenc: avoid large stack allocation.
Code is only used during initialization, so malloc/free
should be fine to use.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-09-03 21:22:59 +02:00
Reimar Döffinger
fcfc90ed65 svq1enc: remove pointless array element.
Not sure it was meant to be used for something at some point though.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-09-03 21:22:58 +02:00
Reimar Döffinger
6724254118 ffv1enc: reduce stack usage.
A bit more complex than e.g. adding it to the context, but
using the context for something that will be used only during
initialization seemed a bit wasteful.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-09-03 21:22:58 +02:00
Lou Logan
efaa4a8dbf doc/demuxers: document gif demuxer
Signed-off-by: Lou Logan <lou@lrcd.com>
2014-09-03 10:16:05 -08:00
Jörg Krause
02a2e171ad libavutil/error: fix build with musl toolchain
Add the feature test macro which is required for building with the
musl toolchain.

The feature test macro _XOPEN_SOURCE = 600 provides the XSI-compliant
version of strerror_r().

Signed-off-by: Jörg Krause <jkrause@posteo.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-03 20:01:25 +02:00
Michael Niedermayer
d9a416fa1a Merge commit 'c487972ed0e1eaebdbe4a13cdd191e119be0b19c'
* commit 'c487972ed0e1eaebdbe4a13cdd191e119be0b19c':
  ismindex: recover from completely empty streams

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-03 15:04:34 +02:00
Michael Niedermayer
4bc4f6f170 Merge commit '95e177eeb21f3e968aa9353bc69d1946966cc835'
* commit '95e177eeb21f3e968aa9353bc69d1946966cc835':
  rtpdec: HEVC/H.265 support

Conflicts:
	Changelog
	libavformat/rtpdec_hevc.c
	libavformat/version.h

See: 96b2ba68c4
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-03 14:56:53 +02:00
Michael Niedermayer
dc81c0a0dc Merge commit 'ebef9f5a56d7df91e010a177a80cfc8dbe394305'
* commit 'ebef9f5a56d7df91e010a177a80cfc8dbe394305':
  time: Use clock_gettime if the monotonic clock is available

Conflicts:
	configure

The change to av_gettime() isnt merged, a patch will be posted to the mailing list
that would do the switch

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-03 14:24:53 +02:00
Michael Niedermayer
7509a95656 Merge commit '65e78a2e4b111627c0ebdf2c9baec95e5e21560d'
* commit '65e78a2e4b111627c0ebdf2c9baec95e5e21560d':
  x11grab: Refactor pixel format parsing

Conflicts:
	libavdevice/x11grab.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-03 13:58:41 +02:00
Michael Niedermayer
33bf66af02 Merge commit 'bb3ead7e54fec205c595cfb8b1d8900d50d3d1cc'
* commit 'bb3ead7e54fec205c595cfb8b1d8900d50d3d1cc':
  x11grab: Fallback to normal XImage if SHM is not supported

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-03 13:30:24 +02:00
Michael Niedermayer
34e80af860 Merge commit 'c19a49e565bd06ea47947d50779ba236df9d4943'
* commit 'c19a49e565bd06ea47947d50779ba236df9d4943':
  ppc: Support little endian intreadwrite

Conflicts:
	libavutil/ppc/intreadwrite.h

See: d37c620c84
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-03 13:13:29 +02:00
Michael Niedermayer
e489e83466 avformat/mpegts: Change order of structs to match 7968059e5c
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-03 12:54:41 +02:00
Michael Niedermayer
ee83f667af Merge commit '7968059e5c3cd8f91407f379c11bbf71a1b84c74'
* commit '7968059e5c3cd8f91407f379c11bbf71a1b84c74':
  mpegts: Allow custom max resync size

Conflicts:
	libavformat/mpegts.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-03 12:44:14 +02:00
Michael Niedermayer
4d13d440ee Merge commit '94f084324e648876508bed546d950762f10b875e'
* commit '94f084324e648876508bed546d950762f10b875e':
  texi2pod: Make it output a single encoding string

Conflicts:
	doc/texi2pod.pl

See: 12ce58bebd
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-03 12:24:47 +02:00
Diego Biurrun
2b8b0da09c fdctdsp: cosmetics: Drop one unnecessary if-block level 2014-09-03 03:13:56 -07:00
Michael Niedermayer
eacf42dd50 Merge commit '4912b634b517c8acfc476c5d47f10be83fe7e18b'
* commit '4912b634b517c8acfc476c5d47f10be83fe7e18b':
  x265: Use the encoder defaults

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-03 12:10:09 +02:00
Gabriel Dume
d2a4e4b9cc wma: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-09-03 03:09:08 -07:00
Mika Raento
c487972ed0 ismindex: recover from completely empty streams
This creates best-effort results from input that is missing stream
contents, there are warnings printed when this happens.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-09-03 12:06:40 +03:00
Michael Niedermayer
928cb84b32 avcodec/idctdsp: Initialize ff_put/add_pixels_clamped correctly so that the optimized functions are also used
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-03 05:19:06 +02:00
Michael Niedermayer
50841da143 avcodec/mpeg4videodec: fix automatic use of the xvid idct on non x86
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-03 05:19:06 +02:00
Michael Niedermayer
feac9cbed0 Merge commit 'eda7571ea1a41c835e3a02fa9517e5bc67d7adce'
* commit 'eda7571ea1a41c835e3a02fa9517e5bc67d7adce':
  wmv2: K&R formatting cosmetics

Conflicts:
	libavcodec/wmv2.c
	libavcodec/wmv2dec.c
	libavcodec/wmv2enc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-03 04:13:37 +02:00
Michael Niedermayer
5b58d79a99 Merge commit '7a1d6ddd2c6b2d66fbc1afa584cf506930a26453'
* commit '7a1d6ddd2c6b2d66fbc1afa584cf506930a26453':
  xvid: Add C IDCT

Conflicts:
	libavcodec/dct-test.c
	libavcodec/xvididct.c

See: 298b3b6c1f
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-03 04:09:38 +02:00
Michael Niedermayer
5db23c07a3 Merge commit '95c0cec03acec0a80cc1c7db48f3b2355d9e767b'
* commit '95c0cec03acec0a80cc1c7db48f3b2355d9e767b':
  idctdsp: Add global function pointers for {add|put}_pixels_clamped functions

Conflicts:
	libavcodec/arm/idctdsp_init_arm.c
	libavcodec/dct.h
	libavcodec/idctdsp.c
	libavcodec/jrevdct.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-03 03:19:40 +02:00
Thomas Volkert
95e177eeb2 rtpdec: HEVC/H.265 support
As specified in draft-ietf-payload-rtp-h265-06.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-09-03 02:39:24 +02:00
Luca Barbato
ebef9f5a56 time: Use clock_gettime if the monotonic clock is available
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-09-03 02:38:03 +02:00
Luca Barbato
65e78a2e4b x11grab: Refactor pixel format parsing 2014-09-03 02:38:03 +02:00
Luca Barbato
bb3ead7e54 x11grab: Fallback to normal XImage if SHM is not supported 2014-09-03 02:38:03 +02:00
Luca Barbato
c19a49e565 ppc: Support little endian intreadwrite 2014-09-03 02:38:03 +02:00
Luca Barbato
7968059e5c mpegts: Allow custom max resync size 2014-09-03 02:38:03 +02:00
Luca Barbato
94f084324e texi2pod: Make it output a single encoding string
Intermixing =encoding utf-8 in the file can confuse some pod2man
implementations.
2014-09-03 02:14:17 +02:00
Luca Barbato
4912b634b5 x265: Use the encoder defaults
Reset the settings as it is done for x264.
2014-09-03 02:14:17 +02:00
Gabriel Dume
eda7571ea1 wmv2: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-09-02 16:14:22 -07:00
Pascal Massimino
7a1d6ddd2c xvid: Add C IDCT
Thanks to Pascal Massimino and Michael Militzer for relicensing as LGPL.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-09-02 14:41:13 -07:00
Diego Biurrun
95c0cec03a idctdsp: Add global function pointers for {add|put}_pixels_clamped functions
These function pointers already existed in the ARM code. Adding them globally
allows calls to the function pointers to access arch-optimized versions of the
functions transparently.
2014-09-02 14:41:13 -07:00
Michael Niedermayer
9e59a7be1c Merge commit '91d305790ea0f6fe0f54b48236da42181c39c18b'
* commit '91d305790ea0f6fe0f54b48236da42181c39c18b':
  get_bits: Rename HAVE_BITS_REMAINING --> BITS_AVAILABLE

Conflicts:
	libavcodec/golomb.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-02 22:18:12 +02:00
Michael Niedermayer
c8be5258de Merge commit 'ff4d1aa8bc3f4fe9d1f684f760b29c51adb569ef'
* commit 'ff4d1aa8bc3f4fe9d1f684f760b29c51adb569ef':
  flv: K&R formatting cosmetics

Conflicts:
	libavcodec/flv.h
	libavcodec/flvdec.c
	libavcodec/flvenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-02 22:07:06 +02:00
Michael Niedermayer
4c73123333 Merge commit 'f61e47dd68582529bcf6d42d861c70a320cd1b67'
* commit 'f61e47dd68582529bcf6d42d861c70a320cd1b67':
  asv: K&R formatting cosmetics

Conflicts:
	libavcodec/asvdec.c
	libavcodec/asvenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-02 21:57:46 +02:00
Michael Niedermayer
50c6bffb67 Merge commit '74512f7e369da40e1148c92b58cd8e59f7737b8f'
* commit '74512f7e369da40e1148c92b58cd8e59f7737b8f':
  8svx: Return proper error codes

Conflicts:
	libavcodec/8svx.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-02 21:45:58 +02:00
Reimar Döffinger
098af26067 vf_deshake: Avoid doing a malloc+free for every single frame.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-09-02 19:20:28 +02:00
Reimar Döffinger
4ea8406e38 vf_deshake: reduce stack usage.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-09-02 19:20:28 +02:00
Reimar Döffinger
3980ab12b7 rangecoder-test: Allow running with small stack size.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-09-02 19:20:28 +02:00
Reimar Döffinger
e48cd2de98 rl.h: Use on-stack temporary VLC tables instead of having them static.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-09-02 19:20:28 +02:00
Reimar Döffinger
2ca78936c7 rl.h: remove deprecated and now unused vlc member.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-09-02 19:20:27 +02:00
Tobias Rapp
2c43cfe2d4 cmdutils: Add some whitespace when printing layouts
Adds some more whitespace between channel layout name and decomposition.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-02 18:44:07 +02:00
Michael Niedermayer
1c55d0ff32 avformat/swfdec: Use side data to communicate w/h changes to the decoder
Fixes reading from freed data
Fixes part of Ticket3539

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-02 13:37:07 +02:00
Michael Niedermayer
1587989518 avcodec/rawdec: Support CODEC_CAP_PARAM_CHANGE
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-02 13:35:36 +02:00
Diego Biurrun
91d305790e get_bits: Rename HAVE_BITS_REMAINING --> BITS_AVAILABLE
The HAVE_ prefix is reserved for macros set by configure.
2014-09-02 13:10:38 +02:00
Gabriel Dume
ff4d1aa8bc flv: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-09-02 04:03:45 -07:00
Gabriel Dume
f61e47dd68 asv: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-09-02 03:45:21 -07:00
Gabriel Dume
74512f7e36 8svx: Return proper error codes
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-09-02 03:42:13 -07:00
Mika Raento
502fc3b3d4 segment: fix copying stream metadata
To get mpegts metadata copied when segmenting.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-02 12:31:04 +02:00
Mika Raento
413fa76f61 segment: use mpegts_flags instead of the deprecated resend_headers option
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-02 12:31:04 +02:00
Michael Niedermayer
0ffe32cf8f avformat/segment: Use avformat_alloc_output_context2()
This avoids having to assign oformat, allows returning the
correct error code and allocates priv_data

Based on patch by: Mika Raento <mika.raento@elisa.fi>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-02 12:31:04 +02:00
Carl Eugen Hoyos
3668168afa Support decoding of ImageJ png in avi.
Fixes ticket #3916.
2014-09-02 12:02:03 +02:00
Mika Raento
58e0402e02 segment: don't access outside seg->frames array
Fixes wrong number of segments output and undefined memory access.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-02 11:38:36 +02:00
Michael Niedermayer
35469835bb Merge commit 'e48d1ea541be4592ebac89875557407ca958b7a9'
* commit 'e48d1ea541be4592ebac89875557407ca958b7a9':
  ismindex: improve diagnostics

Conflicts:
	tools/ismindex.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-02 11:20:13 +02:00
Mika Raento
e48d1ea541 ismindex: improve diagnostics
This improves error messages for completely and somewhat broken inputs.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-09-02 09:48:44 +03:00
Mark Harris
4cabee50f6 tools/normalize.py: both input and output file names are required 2014-09-02 07:31:34 +02:00
Clément Bœsch
e6b125e3be avutil/pixelutils: add small buffers tests 2014-09-02 07:29:41 +02:00
Rong Yan
6abeaf2781 build sys: enable the decoding_encoding example under the ffmpeg/doc/examples
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-02 04:19:15 +02:00
Carl Eugen Hoyos
7cf1f0f4af Fix standalone compilation of the snow decoder. 2014-09-01 23:30:57 +02:00
Mark Harris
1b3a98f137 doc/filters.texi: fix filter name in examples
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-01 21:50:52 +02:00
Thomas Volkert
f8164f6728 Add missing changelog entry
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-01 21:40:34 +02:00
Michael Niedermayer
f9aadf1fc4 Merge commit 'e205fe6831fe1b5445f7827b5c916425620b4ab5'
* commit 'e205fe6831fe1b5445f7827b5c916425620b4ab5':
  mpeg4videodec: Fix low_delay error message

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-01 21:01:33 +02:00
Michael Niedermayer
f626eaa58e Merge commit '63f800ca5f4f6b38f3789a7edb03bfabe8bacdd2'
* commit '63f800ca5f4f6b38f3789a7edb03bfabe8bacdd2':
  aac_adtstoasc_bsf: Return proper error code

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-01 20:51:44 +02:00
Michael Niedermayer
38c4316fff Merge commit 'b8962d64cc71af241601bcab5c3fcdc5735ef4ae'
* commit 'b8962d64cc71af241601bcab5c3fcdc5735ef4ae':
  dxva2: Clean up definition of _WIN32_WINNT

Conflicts:
	libavcodec/dxva2.h

See: 89946c8403
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-01 20:45:50 +02:00
Michael Niedermayer
052cd1ce72 Merge commit '4600a85eaa6182e5a27464f6b9cae5a9ddbf3098'
* commit '4600a85eaa6182e5a27464f6b9cae5a9ddbf3098':
  dxva2: Pass variable of correct type to IDirectXVideoDecoder_GetBuffer()

Conflicts:
	libavcodec/dxva2_h264.c
	libavcodec/dxva2_mpeg2.c
	libavcodec/dxva2_vc1.c

See: 64c53fa16a
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-01 20:31:13 +02:00
Michael Niedermayer
b01d2a5533 ffmpeg: Enable compute_edt only when the subtitles are used for a output stream instead of a filter
Fixes/works around Ticket3768

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-01 19:51:58 +02:00
Michael Niedermayer
a2dbf379f0 avcodec/dvbsubdec: make compute_edt user settable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-01 19:51:58 +02:00
Reimar Döffinger
e8d0b84e8a h261dec, ituh263dec: Move condition.
Stops compiler from doing incredibly stupid things.
With vsynth1-flv inner loop goes from 3501 to 3275
decicycles.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-09-01 19:41:20 +02:00
Reimar Döffinger
36c0043344 h261dec, ituh263dec: ensure CLOSE_READER is done on error paths, too.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-09-01 19:41:20 +02:00
Reimar Döffinger
2a00812d82 h261dec, ituh263dec: Avoid unnecessary -1 inside inner loop.
3646 -> 3597 decicycles in inner loop when decoding
vsynth1-flv.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-09-01 19:41:20 +02:00
Timothy Gu
8d6ec61186 general: Fix usage of @float
makeinfo chokes on that.

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-01 16:21:44 +02:00
Gabriel Dume
e205fe6831 mpeg4videodec: Fix low_delay error message
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-09-01 05:37:00 -07:00
Gabriel Dume
63f800ca5f aac_adtstoasc_bsf: Return proper error code
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-09-01 05:37:00 -07:00
Diego Biurrun
b8962d64cc dxva2: Clean up definition of _WIN32_WINNT
Only set a value if _WIN32_WINNT is undefined or smaller than 0x0600. This is
cleaner than unconditional definition and avoids a number of redefinition
warnings. Also only define a value in one of the two dxva2 headers.
2014-09-01 12:23:59 +02:00
Diego Biurrun
4600a85eaa dxva2: Pass variable of correct type to IDirectXVideoDecoder_GetBuffer()
This avoids related incompatible pointer type warnings.
2014-09-01 12:23:58 +02:00
Clément Bœsch
343f07e15c RELEASE_NOTES: mention libmodplug detection change 2014-09-01 11:36:02 +02:00
Stefano Sabatini
d4ec07dfe7 lavu/avstring: check for overlong encodings in av_utf8_decode()
Fix reopened trac ticket #1163.
2014-09-01 10:47:24 +02:00
Clément Bœsch
36952786a5 build: use pkg-config to detect libmodplug
Fix static build, at least for OSX.
2014-09-01 09:03:26 +02:00
Michael Niedermayer
97b88096dc Merge commit '37c46743ee42df1d6986ba3c996e3af5b95511f7'
* commit '37c46743ee42df1d6986ba3c996e3af5b95511f7':
  avcodec: fix missing doxygen comment marker

See: 22652dc2b8
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-01 04:20:23 +02:00
Michael Niedermayer
4250753497 avformat/mpegts: favor DESC_types over probed codecs
Fixes Ticket3766
Fixes dvb_teletext detection

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-01 03:22:34 +02:00
Michael Niedermayer
37c46743ee avcodec: fix missing doxygen comment marker 2014-09-01 00:52:22 +01:00
Reynaldo H. Verdejo Pinochet
b627385b4b ffserver: tests, use image2 instead of pgmyuv
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2014-08-31 18:18:40 -04:00
Reimar Döffinger
935453102b ituh263dec: Optimize new RL_VLC based decoding.
Together with the switch to RL_VLC this results in
a speedup of about 30% in this inner loop.
Overall speedup only relevant for medium to high bitrate
streams.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-31 20:13:58 +02:00
Reimar Döffinger
c0d32686dd h261dec: Optimize new RL_VLC based decoding.
Together with the switch to RL_VLC this results in about
10% speedup for this inner loop.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-31 20:13:51 +02:00
Reimar Döffinger
da0a670b3c h261, h263 decoders: convert to RL_VLC.
Some additional optimizations in following patch.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-31 20:09:54 +02:00
Reimar Döffinger
3efc174fd6 aacps_tablegen: replace TABLE_CONST by const.
Doesn't change generated code, just is more consistent
and a bit less error-prone.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-31 18:33:27 +02:00
Reimar Döffinger
1a558cec64 intmath.h: Remove duplicated ARM include.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-31 18:33:27 +02:00
Michael Niedermayer
f0d4f00f24 avcodec/mjpegdec: fix green line at the bottom with upscale v
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-31 15:33:30 +02:00
Michael Niedermayer
63a52ca134 avcodec/mjpegdec: fix green vertical line at the right with upscale h
Fixes Ticket3891

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-31 15:16:36 +02:00
Reimar Döffinger
6d7aa437e1 vf_drawtext: move "static const" before "struct".
This is consistent with all other occurrences.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-31 10:41:42 +02:00
Reimar Döffinger
2ca7edda89 lavu/hash.c: Add missing "static const".
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-31 10:33:02 +02:00
Reimar Döffinger
03bf457241 Add av_cold to table generation functions.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-31 10:33:02 +02:00
Reimar Döffinger
4fe448738e WMA: add "const" to avoid warnings with hardcoded tables.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-31 10:31:09 +02:00
Reimar Döffinger
3bc5d2a064 ac3dec_fixed: add missing "static const".
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-31 10:25:36 +02:00
Reimar Döffinger
c9a4ec7969 lavfi: add const/static const to pix_fmts arrays.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-31 10:25:36 +02:00
Reimar Döffinger
18464d7270 sipr16kdata.h: add forgotten const.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-31 10:25:36 +02:00
Reimar Döffinger
2bb66cc8be fft_template: Move variables to where they are used.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-31 10:25:36 +02:00
Reimar Döffinger
1654514ab0 fft: add ff_ prefix to some global arrays.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-31 10:25:36 +02:00
Michael Niedermayer
e0237208b4 avcodec/h264: Do not get stuck on IDR inter frames
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-31 04:09:06 +02:00
Reimar Döffinger
8c63a0d171 xv.c: Add missing const to lookup table.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-30 18:02:45 +02:00
Paul B Mahol
bd6f145820 avformat/dfa: use avio_feof()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2014-08-30 15:50:22 +00:00
wm4
b173f5c155 oggdec: fix invalid free on error
The read_packet callback passes a pointer to a stack-allocated AVPacket.
Attempting to free it with av_free() makes no sense.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-30 16:38:14 +02:00
Reimar Döffinger
e2cd28c926 fft: add missing const.
This table was the largest object in FFmpeg's .data,
and really should be in .rodata.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-30 16:33:00 +02:00
Michael Niedermayer
ce36d80881 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  lavf/rtpdec_hevc: Fix compilation with -DDEBUG.
  ffmpeg: Clean up if filter initialisation failed to avoid a memleak.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-30 14:38:44 +02:00
Christophe Gisquet
a808733675 proresenc_ks: allow auto-selecting profile
The user may not know how to select the profile, nor what he needs, in
particular to encode alpha.

Therefore, use an automatic selection as default, and warn when the
manually selected profile may cause issues.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-30 14:16:26 +02:00
Michael Niedermayer
1402873601 avcodec/vp3data: use more compact data types
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-30 13:45:15 +02:00
Carl Eugen Hoyos
f22c24bd7a lavf/rtpdec_hevc: Fix compilation with -DDEBUG. 2014-08-30 13:01:51 +02:00
Carl Eugen Hoyos
494cbc4238 ffmpeg: Clean up if filter initialisation failed to avoid a memleak.
Fixes ticket #3858.

Reviewed-by: Nicolas George
2014-08-30 13:01:51 +02:00
Michael Niedermayer
e16b7338d8 avcodec/aarch64/h264qpel_init_aarch64: mark src as const
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-30 12:48:31 +02:00
Michael Niedermayer
97cebf3139 avformat/udp: Move variables used only with HAVE_PTHREAD_CANCEL, under the #if
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-30 12:43:58 +02:00
Michael Niedermayer
19bf1ed1f4 avformat/id3v2: Fix "warning: unused variable uncompressed_buffer_size" if zlib is unavailable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-30 12:21:07 +02:00
Michael Niedermayer
0daff3ce76 avfilter/vf_mp: remove incorrect usage of AVFrame.type
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-30 12:16:46 +02:00
Michael Niedermayer
596636a474 avcodec/snow: check coeffs for validity
Fixes deadlock
Fixes integer overflow
Fixes Ticket 3892

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-30 02:12:10 +02:00
Reimar Döffinger
d9e2aceb7f Add missing "const" all over the place.
Only "./configure --enable-gpl" on x86 was tested.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-29 18:57:25 +02:00
Reimar Döffinger
be4aac302b patcheck: check for pointer arrays that are not const.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-29 18:57:25 +02:00
Peter Ross
9b8eedd736 avformat/wtvdec: seek over broken chunks
Fixes ticket #3898

Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-29 14:00:58 +02:00
Michael Niedermayer
72732f2ddd avformat/webmdashenc: use av_strlcpy() and allocate enough space
Fixes out of array read

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-29 13:02:34 +02:00
Michael Niedermayer
5ce98e774e fate/vpx: make webm dash manifest tests depend on the WEBM_DASH_MANIFEST demuxer
Found-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-29 12:39:59 +02:00
Paul B Mahol
be3d8073ed avcodec/wavpack: increase WV_MAX_SAMPLES
This is maximal number of samples per frame that current wavpack
can create.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2014-08-29 10:37:49 +00:00
Vignesh Venkatasubramanian
4c9204783a fate: Add basic tests for WebM Dash Manifest
Add fate tests that test out the functionality of WebM DASH
Manifest XML generation. This patch contains the vpx.mak file
changes and the reference gold XML files.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-29 04:25:29 +02:00
Michael Niedermayer
22652dc2b8 avcodec/avcodec: fix missing doxygen comment marker
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-29 01:31:10 +02:00
Michael Niedermayer
37520a91ac avformat: drop redundant MATROSKA_VIDEO_STEREO_MODE_COUNT identifier
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-29 01:26:52 +02:00
Michael Niedermayer
7771daaea7 Merge commit '9e8bbe7d4d1dcd5fec491dbfbb98ed2038a7bed5'
* commit '9e8bbe7d4d1dcd5fec491dbfbb98ed2038a7bed5':
  license: Mention that vf_interlace is GPL, not LGPL

Conflicts:
	LICENSE.md

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-29 01:08:57 +02:00
Michael Niedermayer
39cd9fdbf8 Merge commit '4d686fb721b485ebbc4c7779d927d876c1e630f7'
* commit '4d686fb721b485ebbc4c7779d927d876c1e630f7':
  matroskaenc: convert avstream stereo3d side data during encoding

Conflicts:
	libavformat/matroskaenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-29 00:44:47 +02:00
Michael Niedermayer
fcc3909908 Merge commit 'd4ae8ac92f619507aadd021bb67b517d39d3a36f'
* commit 'd4ae8ac92f619507aadd021bb67b517d39d3a36f':
  matroskadec: parse stereo mode on decoding

Conflicts:
	Changelog
	libavformat/matroska.c
	libavformat/matroskadec.c

See: 4c509fe305 and others
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-28 23:48:23 +02:00
Michael Niedermayer
31f9c228c0 ffmpeg: Fix missing {} in Stream to Packet side data code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-28 23:34:20 +02:00
Michael Niedermayer
f30a8154ab Merge commit '9301486408a480629336af4d7fd873c0f28fb2d5'
* commit '9301486408a480629336af4d7fd873c0f28fb2d5':
  avcodec: add stream-level stereo3d side data

Conflicts:
	doc/APIchanges
	libavcodec/avcodec.h
	libavcodec/utils.c
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-28 22:23:01 +02:00
Michael Niedermayer
56cc754c76 Merge commit 'f2583bc86eb5d7decc639fc9a36edc93e6003eef'
* commit 'f2583bc86eb5d7decc639fc9a36edc93e6003eef':
  matroska: list supported extensions

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-28 22:12:36 +02:00
Michael Niedermayer
c6a3b00924 Merge commit '58396e806c65fe0eb00e6ccf1980f810cdceed05'
* commit '58396e806c65fe0eb00e6ccf1980f810cdceed05':
  x11grab: Use a typedef for the context, as most other code does

Conflicts:
	libavdevice/x11grab.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-28 22:06:48 +02:00
Michael Niedermayer
1fc3963188 Merge commit '7bb505a33ca131906b2ceb2f298e104c862740ea'
* commit '7bb505a33ca131906b2ceb2f298e104c862740ea':
  x11grab: Drop a spurious space in the extension reporting message

Conflicts:
	libavdevice/x11grab.c

See: 9af2097120
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-28 21:51:34 +02:00
Michael Niedermayer
65c9e2d003 Merge commit '20e82b41fcad23ebbb18d89948aebfcc53921198'
* commit '20e82b41fcad23ebbb18d89948aebfcc53921198':
  x11grab: Small near-cosmetic refactorings

Conflicts:
	libavdevice/x11grab.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-28 21:39:19 +02:00
Michael Niedermayer
5393c9dadd Merge commit 'f07a4290a0e8f31796e348edd3ed06b8d15132d8'
* commit 'f07a4290a0e8f31796e348edd3ed06b8d15132d8':
  x11grab: K&R formatting cosmetics

Conflicts:
	libavdevice/x11grab.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-28 21:21:47 +02:00
Diego Biurrun
9e8bbe7d4d license: Mention that vf_interlace is GPL, not LGPL 2014-08-28 19:47:43 +02:00
Vittorio Giovara
4d686fb721 matroskaenc: convert avstream stereo3d side data during encoding
Write the StereoMode Embl to bitstream.
2014-08-28 12:35:27 -04:00
Vittorio Giovara
d4ae8ac92f matroskadec: parse stereo mode on decoding
Convert the Matroska stereo format to the Stereo3D format, and add a
Stereo3D side data to the stream.

Bump the doctype version supported.

Bug-Id: 728 / https://bugs.debian.org/757185
2014-08-28 12:33:26 -04:00
Vittorio Giovara
9301486408 avcodec: add stream-level stereo3d side data 2014-08-28 12:33:26 -04:00
Vittorio Giovara
f2583bc86e matroska: list supported extensions 2014-08-28 12:33:25 -04:00
Paul B Mahol
0ddb0516f1 avformat/soxenc: return more meaningful error code
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2014-08-28 15:52:25 +00:00
Michael Niedermayer
ef768ab976 avcodec/h264: Move h264_vdpau_class under ifdef to avoid unused variable warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-28 16:03:28 +02:00
Michael Niedermayer
87961a8a50 avcodec/flashsv2enc: fix "unused variable" warnings
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-28 15:50:35 +02:00
Luca Barbato
58396e806c x11grab: Use a typedef for the context, as most other code does
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-08-28 15:49:05 +02:00
Luca Barbato
7bb505a33c x11grab: Drop a spurious space in the extension reporting message
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-08-28 15:46:56 +02:00
Deb Mukherjee
b543a29020 avcodec/libvpxenc: Adds support for constant quality mode in VP9.
Changes in the parameter mapping for libvpx to support the constant
quality mode in VP9. The assumption in the patch is that if crf is
provided but bitrate is 0, then the 'constant quality' mode of VP9
is used. However if both are present, the 'constrained quality' mode
is used as before.

Reviewed-by: James Zern <jzern@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-28 15:21:57 +02:00
Luca Barbato
20e82b41fc x11grab: Small near-cosmetic refactorings
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-08-28 15:20:12 +02:00
Luca Barbato
f07a4290a0 x11grab: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-08-28 14:58:48 +02:00
Michael Niedermayer
d6bd29492c avformat/icoenc: Remove deprecated use of codec_name
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-28 14:34:55 +02:00
Stefano Sabatini
fa39f8c0e2 doc/ffprobe: fix -show_entries example 2014-08-28 12:20:18 +02:00
Deb Mukherjee
b6a0b8bcf4 Adds support for setting aq_mode in libvpx encoder
Reviewed-by: James Zern <jzern@google.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2014-08-27 23:12:47 -03:00
James Darnley
8c1b942ad7 Replace incorrect use of "multiply" with "multiple"
Also replace the plural form "multiplies" with "multiples".
2014-08-27 16:00:17 -08:00
Michael Niedermayer
e6516944a3 avformat/rtpdec_asf: fix compiler warning about const qualifier being discarded
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-27 23:53:53 +02:00
Michael Niedermayer
35debfc366 avformat/rdt: fix compiler warning about const qualifier being discarded
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-27 23:52:40 +02:00
Michael Niedermayer
7a2c380e93 avformat/aviobuf: remove uses of deprecated url_feof()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-27 22:30:07 +02:00
Michael Niedermayer
5403a288a7 Merge commit '8d27bf1cff35be406b0fd89d832e1852d4c573bc'
* commit '8d27bf1cff35be406b0fd89d832e1852d4c573bc':
  x86: xvid: K&R formatting cosmetics

Conflicts:
	libavcodec/x86/xvididct_sse2.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-27 21:20:39 +02:00
Michael Niedermayer
b3b05a11d3 Merge commit 'dcb7c868ec7af7d3a138b3254ef2e08f074d8ec5'
* commit 'dcb7c868ec7af7d3a138b3254ef2e08f074d8ec5':
  cosmetics: Make naming scheme of Xvid IDCT consistent with other IDCTs

Conflicts:
	libavcodec/mpeg4videodec.c
	libavcodec/x86/Makefile
	libavcodec/x86/dct-test.c
	libavcodec/x86/xvididct_sse2.c
	libavcodec/xvididct.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-27 21:09:30 +02:00
Michael Niedermayer
3ff5ca89fc Merge commit '1f156af4274dc72d588620f6bedb4e9e66023c92'
* commit '1f156af4274dc72d588620f6bedb4e9e66023c92':
  x86: xvid_idct: Drop unused definitions

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-27 21:01:54 +02:00
Michael Niedermayer
42196083fe Merge commit '404731bd20e1df5880e6fe381e975ba48afc75b2'
* commit '404731bd20e1df5880e6fe381e975ba48afc75b2':
  pulse: Set the wallclock option as default

Conflicts:
	libavdevice/pulse_audio_dec.c

No change, the option was already default in FFmpeg since a long time

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-27 20:51:39 +02:00
Michael Niedermayer
a59d922d24 Merge commit 'ff771f79b55a346b4163d814b58ee4c98114745e'
* commit 'ff771f79b55a346b4163d814b58ee4c98114745e':
  vc1: Initialize start_code_found to 0

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-27 20:44:40 +02:00
James Almer
7997d78643 lavc/libwebpenc: use WebPMemoryWriterClear()
WebPMemoryWriterClear() must be used instead of free() when libwebp ABI version is > 0x0203

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2014-08-27 15:42:13 -03:00
Michael Niedermayer
7c51f5bd39 swr: aarch64 audio_convert and neon clobber test
Ported from avresample
Code by:  Mans Rullgard, Janne Grunau, Martin Storsjo

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-27 20:06:37 +02:00
Timothy Gu
25cb697d0c bktr: Fix Fabrice's name
Signed-off-by: Timothy Gu <timothygu99@gmail.com>

This file with the incorrect name was added after the name was fixed in all other files.
This is thus fixing a mistake

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-27 19:17:58 +02:00
James Almer
d3e9bee6f7 lavf/mp3enc: don't abort if audio packets can't be buffered
Instead skip the picture streams and flush the queued audio packets.
Should address ticket #3851.

Signed-off-by: James Almer <jamrial@gmail.com>
2014-08-27 13:51:34 -03:00
Diego Biurrun
8d27bf1cff x86: xvid: K&R formatting cosmetics 2014-08-27 05:58:04 -07:00
Jean-Francois Thibert
12df9b9a15 Improved AC3 decoder level support (heavy drc, dialnorm)
Added support for AC3 heavy dynamic range compression used
to restrict the output range and added a setting to specify
the output target level and use the dialog normalization
field to apply it in the digital domain.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-27 14:31:39 +02:00
Michael Niedermayer
7a67ab5cba ffmpeg_opt: reduce diff to libav in opt_target() by 16 lines
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-27 14:27:30 +02:00
Diego Biurrun
dcb7c868ec cosmetics: Make naming scheme of Xvid IDCT consistent with other IDCTs 2014-08-27 04:54:05 -07:00
Diego Biurrun
1f156af427 x86: xvid_idct: Drop unused definitions 2014-08-27 04:36:41 -07:00
Michael Niedermayer
2082c00ea2 Merge commit 'f5245a9c6206878b892adf3ccbccc9311c202af5'
* commit 'f5245a9c6206878b892adf3ccbccc9311c202af5':
  avconv: fix parsing the AVOptions for -target

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-27 12:55:31 +02:00
Michael Niedermayer
ad207f1119 Merge commit '1688eef25385089026aba55da1885f70a57815ab'
* commit '1688eef25385089026aba55da1885f70a57815ab':
  avconv: fix the muxrate values for -target

Conflicts:
	ffmpeg_opt.c

No change, as ffmpegs muxrate is in bits/sec

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-27 12:38:53 +02:00
Luca Barbato
404731bd20 pulse: Set the wallclock option as default 2014-08-27 12:36:59 +02:00
Luca Barbato
ff771f79b5 vc1: Initialize start_code_found to 0
Leftover of a4d3c20035.
2014-08-27 12:36:41 +02:00
Michael Niedermayer
127aee4ccb Merge commit '75bbaf2493a71ee66eaabe3c21fadd84d07888de'
* commit '75bbaf2493a71ee66eaabe3c21fadd84d07888de':
  mpegenc: limit the maximum muxrate

Conflicts:
	libavformat/mpegenc.c

See: 28d35dbe9f
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-27 12:00:10 +02:00
Anton Khirnov
f5245a9c62 avconv: fix parsing the AVOptions for -target
CC: libav-stable@libav.org
2014-08-27 06:21:55 +00:00
Anton Khirnov
1688eef253 avconv: fix the muxrate values for -target
The mpegenc private option values are in 50-byte units.

CC: libav-stable@libav.org
2014-08-27 06:21:55 +00:00
Anton Khirnov
75bbaf2493 mpegenc: limit the maximum muxrate
It is written to the file as a 22-bit value.

CC: libav-stable@libav.org
2014-08-27 06:21:54 +00:00
Michael Niedermayer
9e8ab36f54 avformat/mxfenc: dont warn about d10_channelcount being ignored if its not set
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-27 02:13:50 +02:00
Michael Niedermayer
570397c731 Merge commit 'e87f5e4e5f2e2e36b0b7826d708cda7049877af0'
* commit 'e87f5e4e5f2e2e36b0b7826d708cda7049877af0':
  h264: fully check cropping amount from sps

Conflicts:
	libavcodec/h264_slice.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-26 22:01:45 +02:00
Michael Niedermayer
9c41b59423 Merge commit '0a024268261d05ccdcf7e03c85fb78d22037a464'
* commit '0a024268261d05ccdcf7e03c85fb78d22037a464':
  libxvid: K&R formatting cosmetics

Conflicts:
	libavcodec/libxvid.c
	libavcodec/libxvid_rc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-26 21:45:39 +02:00
Michael Niedermayer
ffa90d99fd Merge commit '56a721f020273d69daa8dcb0d99e42a43a0a0d4d'
* commit '56a721f020273d69daa8dcb0d99e42a43a0a0d4d':
  doc: fix a typo

Conflicts:
	doc/APIchanges

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-26 20:48:07 +02:00
Michael Niedermayer
7206221d56 Merge commit '4c8bd8ddb049950347a5018fecbca7ee25d48c44'
* commit '4c8bd8ddb049950347a5018fecbca7ee25d48c44':
  os_support: Adjust an outdated #endif comment

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-26 20:40:40 +02:00
ThomasVolkert
e15824e75b avformat/rtpdec_h261: Fix sanity checks
Fixes mbap and quant

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-26 20:37:58 +02:00
Hii
604c4eab2b libx264: fix -b_qfactor and -chromaoffset
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-26 20:03:42 +02:00
Vittorio Giovara
e87f5e4e5f h264: fully check cropping amount from sps
Even if sps.crop is true, the cropping amount may be zero.
Fixes a sample with a valid but broken container cropping.
2014-08-26 13:31:29 -04:00
Gabriel Dume
0a02426826 libxvid: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-08-26 19:22:17 +02:00
Gabriel Dume
56a721f020 doc: fix a typo
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-08-26 17:27:15 +02:00
Diego Biurrun
4c8bd8ddb0 os_support: Adjust an outdated #endif comment 2014-08-26 06:34:41 -07:00
Michael Niedermayer
46ad2c4aed avformat/utils: remove assert that tests the same condition as the if() directly above
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-26 15:23:23 +02:00
Michael Niedermayer
bf16872fec avformat/nsvdec: fix out-commented asserts so the function names exist
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-26 15:21:25 +02:00
Michael Niedermayer
85f0bde4f0 avcodec/snowenc: remove out-commented assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-26 15:20:58 +02:00
Michael Niedermayer
cf0e8e7ad4 Merge commit '4e9e6fa99f3ff83cedbf6c378d62065ae419a3b9'
* commit '4e9e6fa99f3ff83cedbf6c378d62065ae419a3b9':
  mpeg: Write H264 streams at offset 2

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-26 14:05:07 +02:00
Michael Niedermayer
ba650ea118 Merge commit 'a4d3c20035946cbc1509aec2dc28d51c2a2f9a8e'
* commit 'a4d3c20035946cbc1509aec2dc28d51c2a2f9a8e':
  vc1: Fix the skip condition

Conflicts:
	libavcodec/vc1_parser.c

See: ede411dd03
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-26 13:01:06 +02:00
Michael Niedermayer
d5ee74e57d Merge commit 'ab56fabe6294524e99815451ad01e4ff50c6d734'
* commit 'ab56fabe6294524e99815451ad01e4ff50c6d734':
  vfwcap: Add fallback define for HWND_MESSAGE

The merged commit reverts the HWND_MESSAGE removial, and adds a #ifndef around
    commit 8bc52dbd9d
        vfwcap: Drop fallback VfW defines
        The defines were added long ago when MinGW still lacked them.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-26 12:22:55 +02:00
James Almer
c2c56d54ee configure: update libvpx_vp9_encoder check
Required to add support for the aq_mode setting.
Any libvpx snapshot prior to 1.3.0 is not recommended for vp9 encoding for that matter.

Reviewed-by: James Zern <jzern@google.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2014-08-26 00:53:50 -03:00
Luca Barbato
4e9e6fa99f mpeg: Write H264 streams at offset 2
It hints that the content is H264 according to HD-DVD.
2014-08-26 03:43:13 +02:00
Luca Barbato
a4d3c20035 vc1: Fix the skip condition
As written in the comment above, skip must be added only if a
start code is found.
2014-08-26 03:43:13 +02:00
ThomasVolkert
96b2ba68c4 avformat/rtpdec: support for HEVC/H.265 RTP payload format (draft v6) depacketizing 2014-08-26 02:18:08 +02:00
Diego Biurrun
ab56fabe62 vfwcap: Add fallback define for HWND_MESSAGE
Some obsolete versions of the MinGW32 runtime (<4.0.0) lack the definition.
2014-08-25 16:41:22 -07:00
Michael Niedermayer
1f7e6c0713 doc/snow: remove possibly wrong todo item
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-26 01:19:26 +02:00
Michael Niedermayer
e96109f93c ffplay: use av_malloc_array()
Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-26 00:41:09 +02:00
Alexander Strasser
db85d11d9d libavformat/ftp: Do not leak memory in routine ftp_features
Setting the pointer to NULL inside both ftp_send_command
and ftp_features is redundant. Generally always setting to
NULL in ftp_send_command seems safer, but throughout the file
that parameter was always passed initialized. So I do it here
too for consistency.

Should fix CID1231988 (RESOURCE_LEAK)

OKed-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
2014-08-26 00:52:29 +02:00
Christophe Gisquet
f75baa6c9b huffyuvdec: decode the last odd sample
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-25 23:24:07 +02:00
Christophe Gisquet
6ee7681723 huffyuvenc: write last odd sample
If width is odd, last sample wouldn't be written.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-25 23:12:30 +02:00
Michael Niedermayer
2a85826e57 avcodec/vp9: Use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-25 22:55:11 +02:00
Vignesh Venkatasubramanian
080acf7771 lavf/matroskadec: Ensure cues_end is initialized
Ensure that cues_start and cues_end are always initialized and
the webm_dash_manifest_cues function returns appropriate error if
they are not computed correctly.

This fixes coverity defect CID1231991.

Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-25 18:25:39 +02:00
Michael Niedermayer
bb29896793 avutil/opencl: use av_malloc(z)_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-25 16:06:10 +02:00
Michael Niedermayer
52fca28c3b avcodec/vorbisenc: use av_malloc(z)_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-25 16:03:54 +02:00
Michael Niedermayer
beaf86bd02 doc/APIchanges: fill in dates and hashes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-25 15:57:37 +02:00
Michael Niedermayer
d647ef0c80 avcodec/mpegvideo_parser: consider vbv_delay in bitrate heuristic also for mpeg2
Fixes bitrate detection in CBR mpeg2
Fixes ticket3678
2014-08-25 14:15:43 +02:00
Michael Niedermayer
08a110ca87 Merge commit '6ee1cb5740e7490151db7dcec7e20ceaf8a2fe1f'
* commit '6ee1cb5740e7490151db7dcec7e20ceaf8a2fe1f':
  libavformat: use MSG_NOSIGNAL when applicable

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-25 13:27:21 +02:00
Michael Niedermayer
215db2935b Merge commit 'b263f8ffe7599d9cd27ec477a12700da8eb2790d'
* commit 'b263f8ffe7599d9cd27ec477a12700da8eb2790d':
  lavf: add AVFormatContext.max_ts_probe

Conflicts:
	doc/APIchanges
	libavformat/avformat.h
	libavformat/utils.c
	libavformat/version.h

lavf-fate/mp3 changes as the estimated input bitrate changes and that is
copied to the output

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-25 13:25:09 +02:00
Michael Niedermayer
f1b04f803e Merge commit '6ca11f7157d0ffd11ea9a4211b04981b46dc75d6'
* commit '6ca11f7157d0ffd11ea9a4211b04981b46dc75d6':
  doc/APIchanges: fill in missing hashes and dates

Conflicts:
	doc/APIchanges

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-25 12:09:29 +02:00
Rémi Denis-Courmont
6ee1cb5740 libavformat: use MSG_NOSIGNAL when applicable
If the remote end of a connection oriented socket hangs up, generating
an EPIPE error is preferable over an unhandled SIGPIPE signal.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-08-25 10:49:14 +03:00
Anton Khirnov
b263f8ffe7 lavf: add AVFormatContext.max_ts_probe
It allows to configure how long will avformat_find_stream_info() wait
to get the first timestamp.
2014-08-25 05:17:54 +00:00
Anton Khirnov
6ca11f7157 doc/APIchanges: fill in missing hashes and dates 2014-08-25 05:16:26 +00:00
Michael Niedermayer
a2841d92c3 Revert "pnmenc: use bits_per_raw_sample"
This reverts commit 1506ea947d.

Revert requested by carl as well as author in "Re: [FFmpeg-devel] [PATCH]Fix pnm encoding with bpc set"
2014-08-25 02:59:17 +02:00
Michael Niedermayer
30f680ee0a avcodec/vc1dec: fix null pointer dereference
Fixes Ticket3860

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-25 02:18:31 +02:00
Reynaldo H. Verdejo Pinochet
07bc24973b ffserver: tests, use Metadata title in config
'Title' was deprecated with 9985710a5a

Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2014-08-24 20:03:22 -04:00
Reynaldo H. Verdejo Pinochet
d67d407239 ffserver: tests, use new port/bindaddress config
Comming from commit 1013d8dd69
the old Port and BindAddress config vars have been deprecated
in favor of HTTPPort and HTTPBindAddress respectively.

Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2014-08-24 20:03:22 -04:00
Michael Niedermayer
3fe9e7be4c avcodec/utils: add GBRP16 to avcodec_align_dimensions2()
Fixes Ticket3869

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-24 23:33:40 +02:00
Michael Niedermayer
511398031c Merge commit '424b929b5cb9ca4094099f25179829260d4b0fa3'
* commit '424b929b5cb9ca4094099f25179829260d4b0fa3':
  pulse: Add a wallclock option to be compatible with other other captures

Conflicts:
	libavdevice/pulse_audio_dec.c

wallclock mode was supported and default in FFmpeg already before this commit.
its thus left the default

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-24 21:33:59 +02:00
Michael Niedermayer
c2c4cee866 avformat/matroskaenc: Check alpha_mode
Fixes CID1231992

Suggested-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-24 20:33:17 +02:00
Carl Eugen Hoyos
cc0acdbd68 lavc/h264_slice: Add a missing newline to an error message. 2014-08-24 15:33:10 +02:00
Michael Niedermayer
f155e01ab0 Merge remote-tracking branch 'ubitux/codecview'
* ubitux/codecview:
  avfilter: add codecview filter

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-24 14:53:36 +02:00
Clément Bœsch
f888331769 avfilter: add codecview filter 2014-08-24 14:35:11 +02:00
Luca Barbato
424b929b5c pulse: Add a wallclock option to be compatible with other other captures
alsa and x11grab use av_gettime() to report timestamps.

Bug-Id: 647
2014-08-24 14:04:49 +02:00
Paul B Mahol
6dfa70f272 Correct few "ffmpeg" typos
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2014-08-24 11:05:42 +00:00
Paul B Mahol
b73b36bfa5 avcodec/xan: fix style issue
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2014-08-24 10:54:11 +00:00
Christophe Gisquet
3e892b2bcd x86: hevc_mc: split differently calls
In some cases, 2 or 3 calls are performed to functions for unusual
widths. Instead, perform 2 calls for different widths to split the
workload.

The 8+16 and 4+8 widths for respectively 8 and more than 8 bits can't
be processed that way without modifications: some calls use unaligned
buffers, and having branches to handle this was resulting in no
micro-benchmark benefit.

For block_w == 12 (around 1% of the pixels of the sequence):
Before:
12758 decicycles in epel_uni, 4093 runs, 3 skips
19389 decicycles in qpel_uni, 8187 runs, 5 skips
22699 decicycles in epel_bi, 32743 runs, 25 skips
34736 decicycles in qpel_bi, 32733 runs, 35 skips

After:
11929 decicycles in epel_uni, 4096 runs, 0 skips
18131 decicycles in qpel_uni, 8184 runs, 8 skips
20065 decicycles in epel_bi, 32750 runs, 18 skips
31458 decicycles in qpel_bi, 32753 runs, 15 skips

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-24 12:05:33 +02:00
Christophe Gisquet
38e2aa3759 x86: hevc_mc: correct unneeded use of SSE4 code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-24 11:43:33 +02:00
Christophe Gisquet
1506ea947d pnmenc: use bits_per_raw_sample
This allows writing actual bitdepth in RGB48 when it isn't actually 16.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-24 11:23:34 +02:00
Michael Niedermayer
2f0f937577 Changelog: add "H.261 RTP payload format (RFC 4587)"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-24 04:11:37 +02:00
Michael Niedermayer
1aa153d644 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  fate: Fix ffprobe tests with --target-path set.
  doc/ffmpeg: Try to clarify that the input option -r is not the same as -framerate.
  Do not print a useless error number if mov header reading fails.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-24 03:58:14 +02:00
ThomasVolkert
50a4d5cfc6 Add support for H.261 RTP payload format (RFC 4587) 2014-08-24 03:53:30 +02:00
Carl Eugen Hoyos
7c0c97cc05 fate: Fix ffprobe tests with --target-path set. 2014-08-24 03:04:23 +02:00
Carl Eugen Hoyos
6f78c70324 doc/ffmpeg: Try to clarify that the input option -r is not the same as -framerate. 2014-08-24 02:49:06 +02:00
Carl Eugen Hoyos
0744daa887 Do not print a useless error number if mov header reading fails.
The error string is printed by ffmpeg as for other demuxers.
2014-08-24 02:45:58 +02:00
Michael Niedermayer
ab1e431288 avcodec/tiff: Make pixel format checks tighter
Fixes assertion failure with imgsrc001-lzma.tiff

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-24 01:55:19 +02:00
James Almer
b140b51ebb lavc/tiff: add support for LZMA compression
Derived from deflate code.
Requires liblzma.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-24 01:21:39 +02:00
Michael Niedermayer
2e3c1699ae Merge commit '749b1f1359b5af0a08221923b016551b18ab6171'
* commit '749b1f1359b5af0a08221923b016551b18ab6171':
  configure: add --enable-rpath

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-23 22:46:06 +02:00
Michael Niedermayer
e3601ceeb8 Merge commit '5caf039ba2b4be067568a30146f29008d8db28d0'
* commit '5caf039ba2b4be067568a30146f29008d8db28d0':
  Prepare for 11_beta2 Release

Conflicts:
	RELEASE

Not merged as theres no FFmpeg 11_beta2

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-23 22:08:15 +02:00
Michael Niedermayer
9bff8cfc91 Merge commit 'f9f34cb9983ec6f4ef119c34b726d3b39c143110'
* commit 'f9f34cb9983ec6f4ef119c34b726d3b39c143110':
  ogg: Use separate classes for the aliases

Conflicts:
	libavformat/oggenc.c

See: 2ccc6ff03a
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-23 21:42:13 +02:00
Clément Bœsch
554d819062 avutil/pixelutils: faster pixelutils_sad_16x16
501 to 439 decicycles.

See 45c7f3997e.
2014-08-23 20:12:56 +02:00
Reinhard Tartler
749b1f1359 configure: add --enable-rpath
This option facilitates testing shared libarary builds: for instance
fate builders do no longer need to set LD_LIBRARY_PATH as the binaries will
get the right search paths hardcoded into their executable file.

This option is only meant to be used for testing purposes: The installed
libraries must not move around in the file system, and doing so will
cause a lot of subtle problems. For more information why using RPATH is
dangerous, please refer to

https://blog.flameeyes.eu/2010/06/the-why-and-how-of-rpath
2014-08-23 10:53:21 -04:00
Reinhard Tartler
5caf039ba2 Prepare for 11_beta2 Release 2014-08-23 10:12:16 -04:00
Clément Bœsch
f4dec0dba0 doc/filters: fix Shwo/Show typo 2014-08-23 16:07:55 +02:00
Reimar Döffinger
8fc9bd0d32 dict.c: Free non-strduped av_dict_set arguments on error.
Unfortunately this was not explicitly documented and thus
might be risky.
But all uses I could find in FFmpeg and one in VLC had a memleak
in these cases, and I could not find any that relied on the previous
behaviour.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-23 15:28:48 +02:00
Clément Bœsch
45c7f3997e avutil/pixelutils: faster pixelutils_sad_[au]_16x16
~560 → ~500 decicycles

This is following the comments from Michael in
https://ffmpeg.org/pipermail/ffmpeg-devel/2014-August/160599.html

Using 2 registers for accumulator didn't help. On the other hand,
some re-ordering between the movs and psadbw allowed going ~538 to ~500.
2014-08-23 10:18:53 +02:00
Muhammad Faiz
c82a288f87 avfilter/showcqt: add fontcolor option 2014-08-23 10:01:22 +02:00
Michael Niedermayer
1fa35e4352 avcodec/h264_slice: More complete cleanup in h264_slice_header_init()
Fixes null pointer dereference
Fixes Ticket3873

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-23 03:47:14 +02:00
Michael Niedermayer
949057c958 avcodec/h264: do proper cleanup in ff_h264_alloc_tables() in case DPB alloc fails
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-23 03:47:14 +02:00
Luca Barbato
f9f34cb998 ogg: Use separate classes for the aliases
Unbreak 051aadeed1
2014-08-23 02:42:18 +02:00
Michael Niedermayer
7444cf9a9c avcodec/imc: Fix bitstream buffer padding
Fixes buffer overread

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-23 01:34:28 +02:00
Christophe Gisquet
585047bb7d h264: do not return on sidedata allocation failure
Not having allocated it is not a good reason to leave the object
in an undetermined state. Though a particular setting like the
AV_EF_* flags could be useful to control that behaviour.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-23 01:01:57 +02:00
Michael Niedermayer
aaaf7261b7 avcodec/hevc_ps: fix 1 vs. 0 typo
Found-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-22 23:00:41 +02:00
Timothy Gu
8495c6086d vidstabutils: improve documentation
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-22 22:19:20 +02:00
Timothy Gu
6e51e746c4 vidstab*: Remove accidentally exported av_2_vs_pixel_format()
Also correctly namespace other functions in vidstabutils, and decrease
difference from Libav.

Initial-patch-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-22 22:18:46 +02:00
Michael Niedermayer
d2a0624296 Merge commit '3526ab891c28396ada8b58bf7647309bab30de1d'
* commit '3526ab891c28396ada8b58bf7647309bab30de1d':
  qt-faststart: Undefine fseeko/ftello before defining them

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-22 21:55:27 +02:00
Michael Niedermayer
8f3caf52fc Merge commit '1019b7c4edff537499c4a6cb0d65abae04ce58f6'
* commit '1019b7c4edff537499c4a6cb0d65abae04ce58f6':
  os_support: Undefine lseek/stat/fstat before defining them

Conflicts:
	libavformat/os_support.h

See: ef122ff507
See: ed3c0fe85d
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-22 21:49:14 +02:00
Michael Niedermayer
300d489ac9 Merge commit '051aadeed104ecbe8ee4850ec2d7e5394f5e1ccd'
* commit '051aadeed104ecbe8ee4850ec2d7e5394f5e1ccd':
  ogg: Provide aliases for Speex, Opus and audio-only ogg

Conflicts:
	Changelog
	libavformat/oggenc.c
	libavformat/version.h

See: 2ccc6ff03a
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-22 21:41:00 +02:00
Michael Niedermayer
3e07a056a8 Merge commit 'cb7b1a2dfb547ab78342a7a9d5cd729d77d90421'
* commit 'cb7b1a2dfb547ab78342a7a9d5cd729d77d90421':
  electronicarts: set the framerate for TGQ/TQI

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-22 21:00:06 +02:00
Michael Niedermayer
ce1059d5c9 Merge commit '7b6aae23e12f41cdfac7f1069debfe44d9a3d136'
* commit '7b6aae23e12f41cdfac7f1069debfe44d9a3d136':
  electronicarts: read the framerate for MAD

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-22 20:50:16 +02:00
Christophe Gisquet
4adad5a19a wavpackenc: reset trailer info on block encoding
In some cases, in particular if several blocks are needed because of
the channel layout (e.g. 2.1), the information used to write the
trailing bits terminating the sample data was not reset.

This would cause potential desync on the decoder, although decoded
samples were actually mostly fine.

Fixes ticket #3879.
2014-08-22 18:44:16 +00:00
Christophe Gisquet
a59f85d106 wavpack: check number of channels
This means container and codec disagree. The codec is supposed to
know better so this could be an error instead.
2014-08-22 18:43:30 +00:00
Michael Niedermayer
350dd85345 Merge commit '4d6c5152849e23a4cc0f6a6ac2880c01ebcd301b'
* commit '4d6c5152849e23a4cc0f6a6ac2880c01ebcd301b':
  electronicarts: do not fail on zero-sized chunks

Conflicts:
	libavformat/electronicarts.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-22 19:01:26 +02:00
Michael Niedermayer
e356f6c55d Merge commit 'dc4b2e7d33903a6b9380e8a84b22b3a20facbb08'
* commit 'dc4b2e7d33903a6b9380e8a84b22b3a20facbb08':
  rv34: use ff_mpeg_update_thread_context only when decoder is fully initialized

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-22 18:49:52 +02:00
Michael Niedermayer
de9e0386b2 Merge commit 'b0bfd09f88da8b7c7666faf0ac7d5e74559dba9f'
* commit 'b0bfd09f88da8b7c7666faf0ac7d5e74559dba9f':
  configure: Suppress "potentially uninitialized variable" warnings from MSVC

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-22 18:43:26 +02:00
Diego Biurrun
3526ab891c qt-faststart: Undefine fseeko/ftello before defining them
This avoids a number of redefinition warnings on MinGW64.
2014-08-22 18:35:20 +02:00
Diego Biurrun
1019b7c4ed os_support: Undefine lseek/stat/fstat before defining them
This avoids a number of redefinition warnings on MinGW64.
2014-08-22 18:35:19 +02:00
Christophe Gisquet
2346f2b5db x86: hevcdsp: use compilation-time-fixed constant
The stride for some buffers is known.

Reviewed-by: Mickaël Raulet <mraulet@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-22 16:26:30 +02:00
Christophe Gisquet
dad7f15567 hevcdsp: remove more instances of compile-time-fixed parameters
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-22 15:22:42 +02:00
Christophe Gisquet
d4f44b66d3 hevcdsp: remove compilation-time-fixed parameter
The dststride parameter is always MAX_PB_SIZE.

Reviewed-by: Mickaël Raulet <mraulet@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-22 14:57:37 +02:00
Christophe Gisquet
b9f3912a65 hevc: move MAX_PB_SIZE declaration
Reviewed-by: Mickaël Raulet <mraulet@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-22 14:21:46 +02:00
Luca Barbato
051aadeed1 ogg: Provide aliases for Speex, Opus and audio-only ogg
Since they are aliases for ogg enabling any of them enables ogg as well.
2014-08-22 13:23:50 +02:00
Christophe Gisquet
fb1a98ec5b x86: hevc_mc: assume 2nd source stride is 64
Reviewed-by: Mickaël Raulet <mraulet@gmail.com
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-22 13:21:37 +02:00
Anton Khirnov
cb7b1a2dfb electronicarts: set the framerate for TGQ/TQI
It is hardcoded to 15fps.
2014-08-22 11:15:20 +00:00
Anton Khirnov
7b6aae23e1 electronicarts: read the framerate for MAD 2014-08-22 11:15:20 +00:00
Anton Khirnov
4d6c515284 electronicarts: do not fail on zero-sized chunks
At least one FATE sample contains such chunks and happens to work simply
by accident (due to find_stream_info() swallowing the error).

CC: libav-stable@libav.org
2014-08-22 11:15:20 +00:00
Janne Grunau
dc4b2e7d33 rv34: use ff_mpeg_update_thread_context only when decoder is fully initialized
MpegEncContext based decoders are only fully initialized after the first
ff_thread_get_buffer() call. The RV30/40 decoders may fail before a frame
buffer was requested. ff_mpeg_update_thread_context() fails on half
initialized MpegEncContexts. Since this can only happen before a the
first frame was decoded there is no need to call
ff_mpeg_update_thread_context().

Based on patches by John Stebbins and tested by John Stebbins.

CC: libav-stable@libav.org
2014-08-22 13:11:43 +02:00
Christophe Gisquet
e32eddaa51 wavpackenc: make assert more thorough
It was only validating that normal data wasn't filling the buffer.
However, extra data may be written afterwards.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-22 12:30:10 +02:00
Christophe Gisquet
ddad093972 wavpackenc: fix number of samples per block
Currently, the encoder will try to reduce it down to 150000, but the
decoder will complain starting at 131072 (WV_MAX_SAMPLES). Therefore,
change the loop limit.

Fixes ticket #3881.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-22 12:18:08 +02:00
Michael Niedermayer
1b5ec6a0c3 avcodec/fic: Check if a frame is available before using it
Fixes null pointer dereference
Fixes: ficvf.avi
Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-22 02:22:31 +02:00
Michael Niedermayer
fccd85b9f3 avcodec: fix aac/ac3 parser bitstream buffer size
Buffers containing copies of the AAC and AC3 header bits were not padded
before parsing, violating init_get_bits() buffer padding requirement,
leading to potential buffer read overflows.
This change adds FF_INPUT_BUFFER_PADDING_SIZE bytes to the bit buffer
for parsing the header in each of aac_parser.c and ac3_parser.c.

Based on patch by: Matt Wolenetz <wolenetz@chromium.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-22 01:24:40 +02:00
Christophe Gisquet
b3d6543caf dpxenc: fix padding in encode_gbrp12
It was added per pixel instead of per line.

Reviewed-by: James Darnley <james.darnley@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-21 23:02:48 +02:00
Christophe Gisquet
0625a38066 hevc_ps: check overflow and test alternate syntax
Some streams were found to have what appeared to be truncated SPS.
Their syntax seem to be valid at least until the end of the VUI, so
try that syntax if the parsing would overflow the SPS in the
conforming syntax.

Fixes ticket #3872.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-21 22:04:43 +02:00
Michael Niedermayer
fca76dc61e Merge commit '13c90bc9a359e969cc2b7f7e8199b02a0e4c6ec9'
* commit '13c90bc9a359e969cc2b7f7e8199b02a0e4c6ec9':
  adts: Return more meaningful error codes

Conflicts:
	libavformat/adtsenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-21 21:56:33 +02:00
Michael Niedermayer
2bfd4ff16d Merge commit '593aaee953f8b07c141ff115e67bae85ef0350c7'
* commit '593aaee953f8b07c141ff115e67bae85ef0350c7':
  setpts: Add missing inttypes.h #include for PRId64

Conflicts:
	libavfilter/setpts.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-21 21:47:43 +02:00
Michael Niedermayer
4f49c39a2f Merge commit '8fc6a70c2167b645b7a37d0cbc0e276e7b787cc9'
* commit '8fc6a70c2167b645b7a37d0cbc0e276e7b787cc9':
  mpeg12enc: Add missing #include for PICT_FRAME

See: 9517900bef
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-21 21:39:40 +02:00
Michael Niedermayer
f6ff1cb1ba Merge commit '7cb66ebc0be48489785f7166c9d15eac594b0763'
* commit '7cb66ebc0be48489785f7166c9d15eac594b0763':
  error_resilience: Drop asserts from guess_mv()

Conflicts:
	libavcodec/error_resilience.c

Not merged, the asserts in FFmpeg build and work fine

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-21 21:30:31 +02:00
Michael Niedermayer
24e81a0a8d Merge commit '11cd727fbd603197cb1e49654fce3352d56f8fd8'
* commit '11cd727fbd603197cb1e49654fce3352d56f8fd8':
  vsrc_movie: Adjust a silly typo from b977b287f6

Conflicts:
	libavfilter/src_movie.c

No change, the typo is not part of FFmpeg

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-21 21:23:14 +02:00
James Almer
54ca4dd43b x86/hevc_res_add: refactor ff_hevc_transform_add{16,32}_8
* Reduced xmm register count to 7 (As such they are now enabled for x86_32).
* Removed four movdqa (affects the sse2 version only).
* pxor is now used to clear m0 only once.

~5% faster.

Reviewed-by: Christophe Gisquet <christophe.gisquet@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2014-08-21 15:01:33 -03:00
Christophe Gisquet
4a5cc34b46 wavpackenc: assert on too small buffer
bytestream2_* will not cause buffer overflow, but in that case, this means
the allocation would be incorrect and the encoded result invalid. Therefore,
assert no overflow occurred.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-21 17:59:06 +02:00
Diego Biurrun
b0bfd09f88 configure: Suppress "potentially uninitialized variable" warnings from MSVC
The same is done for GCC and clang already.
2014-08-21 17:55:28 +02:00
Michael Niedermayer
a9f3bb14ba avformat/mov: use 64bit for size in mov_skip_multiple_stsd()
Fixes integer overflow
Fixes Ticket 3866

Reviewed-by: Christophe Gisquet <christophe.gisquet@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-21 17:49:37 +02:00
Stefano Sabatini
7e4a4bda0e doc/filters/apad: extend documentation 2014-08-21 16:59:18 +02:00
Stefano Sabatini
aade9884e9 lavfi/apad: fix logic when whole_len or pad_len options are specified
In particular, allow pad_len and whole_len to have value set to 0, which
means that no padding will be added. Previously a value set to 0 meant
that that the filter had to pad forever.

The new semantics is clearer, also simplifies scripting since the option
value might be automatically computed, so that no checks need to be done
in case it is 0.

The old semantics was never documented and the logic was broken (the
filter was always adding samples indefinitely), so this should not break
backward compatibility.
2014-08-21 16:59:07 +02:00
Christophe Gisquet
4728cdd880 imc: reject files with unfathomable sampling rates
With huge sampling rates, the table derivation method does not converge fast
enough. While fixing it using e.g. Newton-Rhapson-like methods (the curve is
nicely convex) is possible, it is much simpler to reject these cases.

The value of 96000 was arbitrarily chosen as a realistic value, though
1000000 would still work and converge.

Fixes ticket #3868.

Suggested-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-21 14:20:46 +02:00
Michael Niedermayer
b09ea25fec avfilter/vf_lenscorrection: fix memleak
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-21 13:35:30 +02:00
Nidhi Makhijani
13c90bc9a3 adts: Return more meaningful error codes
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-08-21 04:25:48 -07:00
Diego Biurrun
593aaee953 setpts: Add missing inttypes.h #include for PRId64
Also convert a debug av_log() to av_dlog().
2014-08-21 04:18:24 -07:00
Diego Biurrun
8fc6a70c21 mpeg12enc: Add missing #include for PICT_FRAME 2014-08-21 04:18:23 -07:00
Diego Biurrun
7cb66ebc0b error_resilience: Drop asserts from guess_mv()
The asserts check struct members that are not referenced in guess_mv()
and one of them fails to compile.
2014-08-21 04:18:23 -07:00
Diego Biurrun
11cd727fbd vsrc_movie: Adjust a silly typo from b977b287f6 2014-08-21 04:18:23 -07:00
Clément Bœsch
f5ddce0753 doc/APIChanges: fill 2 hashes from my recent API additions 2014-08-21 12:36:28 +02:00
Clément Bœsch
980a5b01fd avutil/motion_vector.h: fix coordinate types
See b0352b1997 for more information on the
feature.
2014-08-21 12:27:34 +02:00
Michael Niedermayer
32cb6c1fe2 avfilter/vf_lenscorrection: get rid of floats in init code
The only remaining floats are in the user interface, they are left as they
should not cause a problem in practice

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-21 11:54:30 +02:00
Michael Niedermayer
2450ca0f33 avfilter/vf_lenscorrection: get rid of all floats per frame
there are some still left for 1 time initialization

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-21 11:42:57 +02:00
Michael Niedermayer
c1b663bc92 avfilter/vf_lenscorrection: get rid of some floats 2014-08-21 11:42:56 +02:00
Christophe Gisquet
50a35f0d2e fate: add test for old (v1) huffyuv and rgba
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-21 02:20:07 +02:00
Christophe Gisquet
331b1f7d81 huffyuvdec: fix old (v1) rgba
Commit deadcf5e misplaced a hunk.

Fixes ticket #3877.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-21 02:19:55 +02:00
Clément Bœsch
e298b2f5d6 avfilter/showwaves: align const mode values (cosmetics) 2014-08-20 22:32:06 +02:00
Clément Bœsch
5abcc8e1a0 doc/filters: fix cline option name recently added 2014-08-20 22:30:38 +02:00
Clément Bœsch
e35fb5add4 avfilter/showwaves: add split_channels option 2014-08-20 22:18:38 +02:00
Clément Bœsch
ba29746feb avfilter/showwaves: split out draw sample code 2014-08-20 22:18:35 +02:00
Clément Bœsch
f2f6d45dbd avfilter/showwaves: add "cline" mode (centered line) 2014-08-20 22:16:50 +02:00
James Almer
76a99d467f x86/hecv_res_add: add ff_hevc_transform_add{8,16,32}_8_avx
~15% faster than sse2

Reviewed-by: Mickaël Raulet <mraulet@gmail.com>
Reviewed-by: Christophe Gisquet <christophe.gisquet@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2014-08-20 16:54:52 -03:00
Lou Logan
d2163f5e28 doc/ffmpeg: fix metadata language example
Signed-off-by: Lou Logan <lou@lrcd.com>
2014-08-20 10:44:22 -08:00
Michael Niedermayer
a5cbff22b2 avfilter/avf_showspectrum: fix colums typo
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-20 18:49:01 +02:00
Michael Niedermayer
2076095549 avformat/asfdec: Check av_new_packet()s return code
Fixes CID1041093

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-20 18:32:59 +02:00
Michael Niedermayer
05dd5368a9 avformat/nutdec: always initialize event_flags
Fixes: CID1231990

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-20 16:45:08 +02:00
Michael Niedermayer
7caacc50ae avcodec/hevc_ps: do cleanup in case of unsupported bit depth
Fixes memleak
Fixes CID1231989

Reviewed-by: Timothy Gu <timothygu99@gmail.com>
Reviewed-by: Mickaël Raulet <mraulet@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-20 15:14:53 +02:00
Stefano Sabatini
cb0524f7a0 lavfi/apad: fix if_( style 2014-08-20 12:35:16 +02:00
James Almer
9f498f4e6f x86/hevc_res_add: fix register count in hevc_transform_add{16,32}_10_avx2
Signed-off-by: James Almer <jamrial@gmail.com>
2014-08-19 21:34:52 -03:00
Pierre Edouard Lepere
a6af4bf64d x86: hevc: adding transform_add
Reviewed-by: James Almer <jamrial@gmail.com>
Approved-by: Ronald S. Bultje
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-20 01:28:56 +02:00
Michael Niedermayer
5a22877e9d Merge commit '67a7695c142561fe60f21adffe89c133385d37c9'
* commit '67a7695c142561fe60f21adffe89c133385d37c9':
  avfilter: Remove unused variable from ff_get_video_buffer()

Conflicts:
	libavfilter/video.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-20 00:23:15 +02:00
James Almer
201a511bb9 lavc/tiff: add support for YUV deflate
Signed-off-by: James Almer <jamrial@gmail.com>
2014-08-19 18:48:39 -03:00
James Almer
b4231b4fed lavc/tiff: move unpack_yuv() above the deflate functions
Signed-off-by: James Almer <jamrial@gmail.com>
2014-08-19 18:48:31 -03:00
Jon Morley
18e70006e7 avcodec/adpcm: Fix incorrect AVSampleFormat for sample_fmts_s16p
The AVSampleFormat list of sample_fmts_s16p is missing the trailing "P" for planar formats. AV_SAMPLE_FMT_S16 vs AV_SAMPLE_FMT_S16P

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-19 23:09:16 +02:00
Michael Niedermayer
f0c0ae37c6 avcodec/tiff: Check that pix_fmt is a yuv variant for TIFF_PHOTOMETRIC_YCBCR
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-19 21:09:07 +02:00
Michael Niedermayer
6ea69a8ffa avcodec/tiff: do not use photometric to detect pix_fmt
They should match but they do not always
Fixes assertion failure
no testcase with unmodified source available

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-19 21:09:07 +02:00
Moritz Barsnick
66d02d3ca6 align and correct messages regarding bitstream filters
The messages regarding the recommended use of bitstream filters are somewhat different.
This also adds the ":v" stream specifier to "-bsf h264_mp4toannexb".

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-19 20:18:01 +02:00
Michael Niedermayer
b1cf83b3d4 Merge commit 'b977b287f61fea48ecd6251d54a26334213b7ec6'
* commit 'b977b287f61fea48ecd6251d54a26334213b7ec6':
  vsrc_movie: Avoid a variable indirection in movie_get_frame()

Conflicts:
	libavfilter/src_movie.c

no change as theres no such code in src_movie.c in FFmpeg

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-19 19:58:17 +02:00
Michael Niedermayer
746095bc29 Merge commit '6af2930222ee5d8ce19f3b999a78d85a3c457391'
* commit '6af2930222ee5d8ce19f3b999a78d85a3c457391':
  pcm: Drop av_unused attribute from variable that is always used

Conflicts:
	libavcodec/pcm.c

No change as there is no such av_unused variable in ffmpeg

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-19 19:13:49 +02:00
Michael Niedermayer
4042c8eee1 Merge commit '14d2006ca6c0e2b54784b93560f09e0e19c0a270'
* commit '14d2006ca6c0e2b54784b93560f09e0e19c0a270':
  pcm: Drop unused variable from DECODE_PLANAR macro

Conflicts:
	libavcodec/pcm.c

No change as the changed code isnt in ffmpeg

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-19 19:11:58 +02:00
Diego Biurrun
67a7695c14 avfilter: Remove unused variable from ff_get_video_buffer() 2014-08-19 09:50:18 -07:00
Michael Niedermayer
580e81fca5 Merge commit 'd456baafb68cd80c0f537f1d843076e4dd853558'
* commit 'd456baafb68cd80c0f537f1d843076e4dd853558':
  vc1: Add missing parentheses to conditions in vc1_decode_b_mb_intfr()

Conflicts:
	libavcodec/vc1dec.c

See: 1e2ab98460
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-19 18:50:11 +02:00
Michael Niedermayer
c18a3b3e8e Merge commit '8bc52dbd9dffb1b2fa4a6aeed2d298d036b619b2'
* commit '8bc52dbd9dffb1b2fa4a6aeed2d298d036b619b2':
  vfwcap: Drop fallback VfW defines

Conflicts:
	libavdevice/vfwcap.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-19 18:33:46 +02:00
Michael Niedermayer
b07dc81a9e Merge commit '86dfcfd0e30d6645eea2c63c1c60a0550e7c97ea'
* commit '86dfcfd0e30d6645eea2c63c1c60a0550e7c97ea':
  mov: Drop unused parameter from ff_mov_read_esds()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-19 18:27:51 +02:00
Christophe Gisquet
2ba58bec20 wavpackenc: proper buffer allocation
The allocation didn't account for headers, that can be easily 79 bytes.
As a result, buffers allocated for a few samples (e.g. 5 in the original
bug) could be undersized.

Fixed ticket #2881.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-19 18:04:25 +02:00
Christophe Gisquet
11a39bdf53 wavpack: report if there is no bits left
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-19 17:47:46 +02:00
rogerdpack
ea97859c8c gdigrab: fix gdi object leak if using mouse
based on patch from hlszl1983@163.com

Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-19 16:07:28 +02:00
Paul B Mahol
9a07c15f48 avcodec/pafaudio: use paf.h instead
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2014-08-19 13:35:44 +00:00
Paul B Mahol
02dc75f218 avcodec/pafvideo: remove unused header
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2014-08-19 13:35:02 +00:00
Diego Biurrun
b977b287f6 vsrc_movie: Avoid a variable indirection in movie_get_frame()
This avoids an unused variable warning with MSVC since the variable is
only used in a debug mode printf statement.
2014-08-19 06:22:08 -07:00
Diego Biurrun
6af2930222 pcm: Drop av_unused attribute from variable that is always used 2014-08-19 06:22:08 -07:00
Diego Biurrun
14d2006ca6 pcm: Drop unused variable from DECODE_PLANAR macro 2014-08-19 06:22:07 -07:00
Diego Biurrun
d456baafb6 vc1: Add missing parentheses to conditions in vc1_decode_b_mb_intfr() 2014-08-19 06:22:07 -07:00
Diego Biurrun
8bc52dbd9d vfwcap: Drop fallback VfW defines
The defines were added long ago when MinGW still lacked them.
2014-08-19 06:22:07 -07:00
Diego Biurrun
86dfcfd0e3 mov: Drop unused parameter from ff_mov_read_esds()
This is cleaner and avoids an uninitialized variable warning with MSVC.
2014-08-19 06:22:07 -07:00
Michael Niedermayer
f0e51be8d0 avcodec/proresenc_kostya: allocate 1 slice more to avoid triggering the reallocation warning when the used space is actually less than the allocated
Reviewed-by: Christophe Gisquet <christophe.gisquet@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-19 14:04:50 +02:00
Michael Niedermayer
76a8cb9d7b avcodec/proresenc_kostya: set initial max_slice_size based on frame_size_upper_bound
If the initial max_slice_size is 0 then reallocation is disabled for the first
slice.

Reviewed-by: Christophe Gisquet <christophe.gisquet@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-19 14:04:30 +02:00
Christophe Gisquet
1467780772 huffyuvenc: add a non-deterministic option
Not actually used in huffyuvenc, but rather in setting the frame
threading.

Example for some files:
context=0:       851974   27226   1137281
context=1,ND=0:  471819   22604    972351
context=1,ND=1:  472875   22673    972582

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-19 13:47:18 +02:00
Pavel Koshevoy
6380f2e367 avfilter/atempo: Flush all buffered input samples
Fixes ticket #3829

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-19 12:53:09 +02:00
Ben Hagen
c9a5497a0b avformat/cinedec: allow number zero in metadata 2014-08-19 11:23:49 +02:00
Lukasz Marek
3c19744218 lavu/log: add device category macros
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-18 22:37:03 +02:00
Lukasz Marek
96602f4e34 lavd/pulse_audio_dec: use default source when no input provided
PulseAudio expilitly requires name of the source.
This patch makes it use default source when not provided.
It simplifies programistic use.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-18 22:36:46 +02:00
Christophe Gisquet
30cac8313a alac: add option to decoded incorrect ALAC
Prior to 56.1.100, incorrect ALAC files for 24bps content were produced, in
particular not decoding losslessly.

Add an option to allow correctly decoding those streams.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-18 21:59:23 +02:00
Michael Niedermayer
cdd0ad7be1 Merge commit '41e1354c101004ccd46dc08d3dd6e956e83a6b51'
* commit '41e1354c101004ccd46dc08d3dd6e956e83a6b51':
  proresenc: Properly account for alpha plane

Conflicts:
	libavcodec/proresenc_kostya.c

See: 117bc8e6ff
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-18 20:27:41 +02:00
Michael Niedermayer
e348a81a66 Merge commit '45ce880a9b3e50cfa088f111dffaf8685bd7bc6b'
* commit '45ce880a9b3e50cfa088f111dffaf8685bd7bc6b':
  proresenc: Realloc if buffer is too small

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-18 20:21:02 +02:00
Michael Niedermayer
e8a2f8cc12 Merge commit '58b68e4fdea22e22178e237bda950b09cc6f363a'
* commit '58b68e4fdea22e22178e237bda950b09cc6f363a':
  proresenc: Report buffer overflow

Conflicts:
	libavcodec/proresenc_kostya.c

See: 52b81ff463
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-18 20:11:31 +02:00
Michael Niedermayer
43b769b0c4 Merge commit 'b16699f2da9c1d41eff852ec3a0c81f74fd44421'
* commit 'b16699f2da9c1d41eff852ec3a0c81f74fd44421':
  proresenc: Remove unneeded parameters from encode_alpha_plane()

Conflicts:
	libavcodec/proresenc_kostya.c

See: bf10f09bcc
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-18 20:01:14 +02:00
Michael Niedermayer
3f0c76e262 Merge commit '12640e4cbb142be0cd025bcf37f1ea437bdfecd0'
* commit '12640e4cbb142be0cd025bcf37f1ea437bdfecd0':
  tiff: Return proper error for missing LZMA compression

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-18 19:52:22 +02:00
Michael Niedermayer
f47751a56c Merge commit 'dd35d451fbc34795a8d19ac6c281bed53c42a29b'
* commit 'dd35d451fbc34795a8d19ac6c281bed53c42a29b':
  doc: Change wrong term to avoid confusion

Conflicts:
	doc/developer.texi

No change, as the wrong term is not part of our docs

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-18 19:51:40 +02:00
Andrey Myznikov
79593096c4 avformat/a64: Avoid segfault in a64_write_header() when stream codec is not open
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-18 19:48:18 +02:00
Christophe Gisquet
41e1354c10 proresenc: Properly account for alpha plane
The packet buffer allocation considers the alpha channel as DCT-coded,
while it is actually run-coded and thus requires a larger buffer.

CC: libav-stable@libav.org

Signed-off-by: Diego Biurrun <diego@biurrun.de>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-08-18 18:58:01 +02:00
Christophe Gisquet
45ce880a9b proresenc: Realloc if buffer is too small
The buffer allocation may be incorrect (e.g. with an alpha plane),
and currently causes the buffer to be set to NULL by init_put_bits,
causing a crash later on.

So, detect that situation, and if detected, reallocate the buffer
and ask for a sample that shows the problem.

CC: libav-stable@libav.org

Signed-off-by: Diego Biurrun <diego@biurrun.de>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-08-18 18:57:06 +02:00
Christophe Gisquet
58b68e4fde proresenc: Report buffer overflow
If the allocated size, despite best efforts, is too small, exit
with the appropriate error.

CC: libav-stable@libav.org

Signed-off-by: Diego Biurrun <diego@biurrun.de>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-08-18 18:51:44 +02:00
Christophe Gisquet
b16699f2da proresenc: Remove unneeded parameters from encode_alpha_plane()
Signed-off-by: Diego Biurrun <diego@biurrun.de>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-08-18 18:48:14 +02:00
Paul B Mahol
b6543421f5 avformat/iff: rudimentary support for animations
For now only first frame is decoded.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2014-08-18 13:51:52 +00:00
Diego Elio Pettenò
12640e4cbb tiff: Return proper error for missing LZMA compression
The LZMA support is a semi-official extension supported by libtiff 4.0.0
and later.

Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.eu>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-08-18 14:23:24 +02:00
Clément Bœsch
b0352b1997 avcodec: export motion vectors in frame side data on demand
The reasoning behind this addition is that various third party
applications are interested in getting some motion information out of a
video "for free" when it is available.

It was considered to export other information as well (such as the intra
information about the block, or the quantization) but the structure
might have ended up into a half full-generic, half full of codec
specific cruft. If more information is necessary, it should either be
added in the "flags" field of the AVMotionVector structure, or in
another side-data.

This commit also includes an example exporting them in a CSV stream.
2014-08-18 14:13:57 +02:00
Michael Niedermayer
c5f43c8888 avdevice/v4l2: try to fix build for openbsd
Found-by: carl
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-18 14:03:03 +02:00
Paul B Mahol
3dca5a5c41 wvdec: check for eof in wv_read_block_header()
Fixes Ticket #3865
Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2014-08-18 11:30:35 +00:00
Gabriel Dume
dd35d451fb doc: Change wrong term to avoid confusion
A function declaration is the prototype.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-08-18 13:29:25 +02:00
Paul B Mahol
90b2f31367 cafdec: check for eof in read_info_chunk()
Fixes Ticket #3864
Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2014-08-18 10:32:57 +00:00
Michael Niedermayer
ca2160b5b3 Merge commit '42604902292ebaba39b13e8efd98419908518019'
* commit '42604902292ebaba39b13e8efd98419908518019':
  Prepare for 11_beta1 Release

Conflicts:
	RELEASE

No change, not merged

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-18 10:24:23 +02:00
Christophe Gisquet
4ddb3a6df0 gifdec: use truncated width for image manipulation
Some files seem to have an off-by-one error. In most cases, it appears to
be on the image width. Therefore, if the decoded image doesn't fit in the
screen:
- If it is wider than the screen (and the lzw decoding buffer), reject it;
- Otherwise, decode the indicated amount, but only write a truncated amount
  to the screen.

Fixes ticket #3538.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-18 09:49:01 +02:00
James Almer
853c1fb668 lavf/wavdec: add sanity check for AVCodecContext.channels
Fixes ticket #3862.
As a side effect, this also fixes aac_latm in wav.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-18 09:29:25 +02:00
Andre Wolokita
44e95a017c lavd/v4l2: do not fail when VIDIOC_ENUMSTD returns ENODATA
As of September 14 2012, v4l_enumstd() will return ENODATA
when a device's std field is set to 0. That is, the device
does not have a standard format. In order to properly
handle this case, v4l2_set_parameters should catch the
ENODATA code and break instead of failing.

Below is the v4l2-core commit describing this change.

>>commit a5338190efc7cfa8c99a6856342a77d21c9a05cf
>>Author: Hans Verkuil <hans.verkuil@cisco.com>
>>Date:   Fri Sep 14 06:45:43 2012 -0300
>>
>>    [media] v4l2-core: tvnorms may be 0 for a given input, handle that case
>>
>>    Currently the core code looks at tvnorms to see whether ENUMSTD
>>    or G_PARM should be enabled. This is not a good check for drivers
>>    that support the STD API on one input and the DV Timings API on another.
>>    In that case tvnorms may be 0.
>>    Instead check whether s_std is present (for ENUMSTD) or whether g_std or
>>    current_norm is present for g_parm.
>>    Also, in the enumstd core function return ENODATA if tvnorms is 0,
>>    because in that case the current input does not support the STD API
>>    and ENUMSTD should return ENODATA for that.
>>
>>    Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
>>    Reviewed-by: Sakari Ailus <sakari.ailus@iki.fi>
>>    Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2014-08-18 09:20:00 +02:00
Reynaldo H. Verdejo Pinochet
fb2de3c4d1 ffserver: warn if config uses a system port
Should be harmless as far as users know what they are doing
but an informative warning wont hurt. For details, refer to
http://tools.ietf.org/html/rfc6335

Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2014-08-17 22:51:45 -04:00
Stefano Sabatini
1013d8dd69 ffserver: deprecate Port and BindAddress options in favor of HTTPPort and HTTPBindAddress
The new option names are more explicit.

Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2014-08-17 22:51:45 -04:00
Reinhard Tartler
4260490229 Prepare for 11_beta1 Release 2014-08-17 22:18:19 -04:00
Christophe Gisquet
96d2178325 alacenc: fix extra bits extraction
The raw coded bits are extracted prior to decorrelation, as is correctly
performed by the decoder, and not after.

Fixes ticket #2768.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-18 02:51:34 +02:00
Christophe Gisquet
c0d18cc085 alacenc: increase predictor buffer
This change is almost cosmetical only, and reduces the changes needed to
fix the 24bps case.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-18 02:50:20 +02:00
Mark Reid
882fb53cb7 avformat/mxf: added ULs for demuxing avid media composer mxf files
The AAF SDK refers to these ULs as Legacy. These ULs are the same as the
ones found in FFmbc's version of mxf.c and the ones found in libMXF
Fixes Ticket#1554, Ticket#3100 and Ticket#3450
2014-08-18 02:36:32 +02:00
Michael Niedermayer
00aa2ebb1c Merge commit '369380e1c4c6fc9b0d9ff04ec23d46b252ba7110'
* commit '369380e1c4c6fc9b0d9ff04ec23d46b252ba7110':
  mxf: Support AAC

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-17 23:06:38 +02:00
Michael Niedermayer
887d85fdcc Merge commit '747cd9560c2248ff2834f29cd2190646330e4676'
* commit '747cd9560c2248ff2834f29cd2190646330e4676':
  mxf: Add the UL for the MPEG2VideoDescriptor

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-17 22:00:50 +02:00
Michael Niedermayer
ecb7f1dd52 Merge commit '304089aca7d238ae184e09993b5c737aa22e2c2c'
* commit '304089aca7d238ae184e09993b5c737aa22e2c2c':
  mxf: Add UID print helpers

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-17 21:50:06 +02:00
Michael Niedermayer
c939eea107 Merge commit '11db644a8e54f02e54d2eaad343a87fcb697c15e'
* commit '11db644a8e54f02e54d2eaad343a87fcb697c15e':
  lavr: Update the planar check in ff_audio_convert

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-17 21:43:06 +02:00
Michael Niedermayer
eb706575ba Merge commit '96ce6d6f119a16e489941c629a2805204322b717'
* commit '96ce6d6f119a16e489941c629a2805204322b717':
  doc: Add more information in the README

Conflicts:
	README.md

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-17 21:41:55 +02:00
Michael Niedermayer
3d40ba3d81 Merge remote-tracking branch 'cigaes/master'
* cigaes/master:
  lavf/http: remove special case for cookies attributes.
  lavf/http: fix cookie parsing.

Reviewed-by: Ronald S. Bultje
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-17 20:49:01 +02:00
Nicolas George
4bebce0617 lavf/http: remove special case for cookies attributes.
With the previous change, unknown attributes are all ignored,
as specified by the RFC.
2014-08-17 20:07:27 +02:00
Nicolas George
481cbc5ad5 lavf/http: fix cookie parsing.
The current code would use any unknown attribute-value pair
as the cookie value.
RFC 6265 states that the first key-value pair is the actual
cookie, and the attribute-value pairs only start after.

With the current code:
Set-Cookie: test=good_value; path=/; dummy=42
gives this:
Cookie: dummy=42
instead of this with the new code:
Cookie: test=good_value
2014-08-17 20:07:27 +02:00
Piotr Bandurski
a3329a09f9 avcodec/lcldec: fix decoding of YUV444 sample
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-17 18:53:06 +02:00
Luca Barbato
369380e1c4 mxf: Support AAC
Update mxf_set_audio_pts to use the container-provided information.

The UL is marked as "to be changed in the future", but the current
samples in the wild do use it.
2014-08-17 16:11:16 +02:00
Luca Barbato
747cd9560c mxf: Add the UL for the MPEG2VideoDescriptor 2014-08-17 16:11:02 +02:00
Luca Barbato
304089aca7 mxf: Add UID print helpers
And use it to print non-parsed ULs.
2014-08-17 16:11:02 +02:00
Luca Barbato
11db644a8e lavr: Update the planar check in ff_audio_convert
Leftover from fbc0b86599.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-08-17 16:11:02 +02:00
Michael Niedermayer
94f60b6544 avcodec/h264_mb: fix grayscale only decoding with weighted prediction
Fixes Ticket3412

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-17 15:00:16 +02:00
Michael Niedermayer
b6c9266722 avcodec/rpza: fix +- error
Fixes Ticket3471

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-17 14:39:43 +02:00
Michael Niedermayer
afe23e430e vcodec/rpza: print mismatching size in case of error
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-17 14:30:06 +02:00
Michael Niedermayer
cabcd8ff66 avformat/movenchint: use av_freep() for safety
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-17 13:27:20 +02:00
Nicolas George
4f3e2f107b ffprobe: add -show_data_hash option. 2014-08-17 11:30:55 +02:00
Timothy Gu
32c712f143 vidstabutils: fix indentation
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-17 11:28:23 +02:00
Michael Niedermayer
427bcdf035 avformat/mpegts: Use differential score for analyze()
This avoids high scores in random data that has a high 0x47 frequency

Fixes Ticket3844

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-16 23:24:51 +02:00
Michael Niedermayer
b7d5e016a3 swresample: Add AVFrame based API
Based on commit fb1ddcdc8f by Luca Barbato <lu_zero@gentoo.org>
Adapted for libswresample by Michael Niedermayer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-16 20:39:37 +02:00
Michael Niedermayer
3574d34aca Merge remote-tracking branch 'cus/stable'
* cus/stable:
  mpegts: always parse pcr

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-16 20:00:26 +02:00
Ben Hagen
6928ea7eb0 cinedec: add shutter and crop metadata 2014-08-16 19:14:49 +02:00
Michael Niedermayer
e7f3b507a3 avcodec/mips/compute_antialias_float: remove unused variable
Reviewed-by: James Darnley <james.darnley@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-16 15:58:41 +02:00
Michael Niedermayer
97bb456b6b avcodec/hevc_mvs: dont redundantly initialize ref_idx_curr
Reviewed-by: James Darnley <james.darnley@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-16 15:58:40 +02:00
Michael Niedermayer
74c81106d2 avformat/udp: remove unneeded variable initialization
Found-by: James Darnley <james.darnley@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-16 15:58:40 +02:00
Michael Niedermayer
7916053ced avformat/udp: dont mix integers with pointers
Reviewed-by: James Darnley <james.darnley@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-16 15:58:40 +02:00
Michael Niedermayer
0014541e9a avcodec/dvbsubdec: dont mix integers with pointers
Reviewed-by: James Darnley <james.darnley@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-16 15:58:40 +02:00
Michael Niedermayer
2d7cec14be avcodec/dvdsubdec: Dont mix integers with pointers
Reviewed-by: James Darnley <james.darnley@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-16 15:58:40 +02:00
Reimar Döffinger
bddc592001 dict.c: empty dictionaries should be a NULL pointer.
Ensure this is even the case if they are empty because
we failed adding the first entry.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-16 14:47:06 +02:00
Reimar Döffinger
a0941c8a2b Use new av_dict_set_int helper function.
Get rid of the many, slightly differing, implementations
of basically the same thing.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-16 14:31:41 +02:00
Reimar Döffinger
c2829dc925 dict.c: Add av_dict_set_int helper function.
This allows getting rid of the many, slightly differing, implementations
of basically the same thing.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-16 14:30:18 +02:00
Marton Balint
51748b6377 mpegts: always parse pcr
Previously pcr transmitted without payload but as part of the video stream was
not parsed.

Signed-off-by: Marton Balint <cus@passwd.hu>
2014-08-16 13:24:39 +02:00
Michael Niedermayer
82e0cb360a avformat/thp: dont mix integers with pointers
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-16 12:04:45 +02:00
Michael Niedermayer
65f05eff0a avfilter/lavfutils/ff_load_image: Return error if no frame could be decoded
Based-on suggestion by JULIAN GARDNER <joolzg@btinternet.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-16 01:34:34 +02:00
Luca Barbato
96ce6d6f11 doc: Add more information in the README
And convert it to Markdown.
2014-08-16 00:49:22 +02:00
Clément Bœsch
11aab8d6cb ffmpeg: look for encoding options in both avcodec and avformat
This patch is the same as 8a1714ad85 but
applied to encoding. It fixes the current clash of the -password option
between tta decoder and the icecast protocol.
2014-08-15 23:56:09 +02:00
Michael Niedermayer
81a663f49e Drop remaining unneeded != NULL
Reviewed-by: Clément Bœsch <u@pkh.me>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-15 22:47:45 +02:00
Michael Niedermayer
60dbed6067 Merge commit '4b1f5e5090abed6c618c8ba380cd7d28d140f867'
* commit '4b1f5e5090abed6c618c8ba380cd7d28d140f867':
  cosmetics: Write NULL pointer inequality checks more compactly

Conflicts:
	libavcodec/dvdsubdec.c
	libavcodec/h263dec.c
	libavcodec/libxvid.c
	libavcodec/rv10.c
	libavcodec/utils.c
	libavformat/format.c
	libavformat/matroskadec.c
	libavformat/segment.c
	libavutil/opt.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-15 21:26:12 +02:00
Michael Niedermayer
fb33bff990 Merge commit 'f929ab0569ff31ed5a59b0b0adb7ce09df3fca39'
* commit 'f929ab0569ff31ed5a59b0b0adb7ce09df3fca39':
  cosmetics: Write NULL pointer equality checks more compactly

Conflicts:
	cmdutils.c
	ffmpeg_opt.c
	ffplay.c
	libavcodec/dvbsub.c
	libavcodec/dvdsubdec.c
	libavcodec/dvdsubenc.c
	libavcodec/dxa.c
	libavcodec/libxvid_rc.c
	libavcodec/mpegvideo.c
	libavcodec/mpegvideo_enc.c
	libavcodec/rv10.c
	libavcodec/tiffenc.c
	libavcodec/utils.c
	libavcodec/vc1dec.c
	libavcodec/zmbv.c
	libavdevice/v4l2.c
	libavformat/matroskadec.c
	libavformat/movenc.c
	libavformat/sdp.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-15 21:00:50 +02:00
Michael Niedermayer
3bb2297351 Merge commit 'efd26bedec9a345a5960dbfcbaec888418f2d4e6'
* commit 'efd26bedec9a345a5960dbfcbaec888418f2d4e6':
  build: Add explanatory comments to (optimization) blocks in the Makefiles

Conflicts:
	libavcodec/ppc/Makefile
	libavcodec/x86/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-15 20:25:12 +02:00
Michael Niedermayer
c1df467d73 Merge commit '835f798c7d20bca89eb4f3593846251ad0d84e4b'
* commit '835f798c7d20bca89eb4f3593846251ad0d84e4b':
  mpegvideo: cosmetics: Lowercase ugly uppercase MPV_ function name prefixes

Conflicts:
	libavcodec/h261dec.c
	libavcodec/intrax8.c
	libavcodec/mjpegenc.c
	libavcodec/mpeg12dec.c
	libavcodec/mpeg12enc.c
	libavcodec/mpeg4videoenc.c
	libavcodec/mpegvideo.c
	libavcodec/mpegvideo.h
	libavcodec/mpegvideo_enc.c
	libavcodec/rv10.c
	libavcodec/x86/mpegvideoenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-15 20:11:56 +02:00
Michael Niedermayer
9c712d0b16 vformat/utils: call flush_packet_queue() from avformat_free_context()
This avoids some theoretical memleaks

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-15 19:48:28 +02:00
Andrey Myznikov
609d5db803 Fix packet_buffer memory leak in avformat_free_context
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-15 19:20:12 +02:00
Gabriel Dume
4b1f5e5090 cosmetics: Write NULL pointer inequality checks more compactly
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-08-15 05:34:13 -07:00
Michael Niedermayer
3eba0a9190 Merge commit 'a6a27fede94efe48aad1dcc9d5e000d2de71c7b2'
* commit 'a6a27fede94efe48aad1dcc9d5e000d2de71c7b2':
  vfwcap: Replace deprecated av_destruct_packet() by av_free_packet()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-15 12:45:35 +02:00
Michael Niedermayer
edd0dc854d Merge commit '7c371754fbc0dcc23bd00278b147f8095ccc5625'
* commit '7c371754fbc0dcc23bd00278b147f8095ccc5625':
  atomic_win32: Drop unnecessary atomic.h #include

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-15 12:38:36 +02:00
Michael Niedermayer
6afd726b7b Merge commit '6baeadd11083774ebd823dd5e1a744c2150a3bfc'
* commit '6baeadd11083774ebd823dd5e1a744c2150a3bfc':
  w32pthreads: Mark functions in compatibility wrapper as av_unused

Conflicts:
	compat/w32pthreads.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-15 12:31:29 +02:00
Gabriel Dume
f929ab0569 cosmetics: Write NULL pointer equality checks more compactly
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-08-15 03:18:18 -07:00
Michael Niedermayer
1e81b185ae Merge commit '7ccb847f0f1f28199fa254847b91b6e50fb92832'
* commit '7ccb847f0f1f28199fa254847b91b6e50fb92832':
  http: Reduce scope of a variable in parse_content_encoding()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-15 12:12:35 +02:00
Diego Biurrun
efd26bedec build: Add explanatory comments to (optimization) blocks in the Makefiles 2014-08-15 02:55:21 -07:00
Diego Biurrun
835f798c7d mpegvideo: cosmetics: Lowercase ugly uppercase MPV_ function name prefixes 2014-08-15 01:26:33 -07:00
Diego Biurrun
a6a27fede9 vfwcap: Replace deprecated av_destruct_packet() by av_free_packet() 2014-08-15 09:53:02 +02:00
Diego Biurrun
7c371754fb atomic_win32: Drop unnecessary atomic.h #include
The file does not require atomic.h. Also kills function redefinition warnings.
2014-08-15 09:52:57 +02:00
Diego Biurrun
6baeadd110 w32pthreads: Mark functions in compatibility wrapper as av_unused
This avoids annoying warnings about unused functions. The compatibility
wrapper is designed to provide a complete (stub) API, so some functions
being unused by some files is natural and no reason for a warning.
2014-08-15 09:37:38 +02:00
Diego Biurrun
7ccb847f0f http: Reduce scope of a variable in parse_content_encoding()
Also fixes an unused variable warning with zlib disabled.
2014-08-15 09:37:38 +02:00
Michael Niedermayer
d3a22491c7 ffmpeg: remove 32 channel limit from audio_channels_map
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-15 05:38:47 +02:00
Christophe Gisquet
33fefdb449 ffmpeg: fix streamcopy with side data
The issue is that, when the main packet data buffer is changed, streamcopy
uses a temporary new packet to store that buffer, frees the old packet, and
replace it with the new packet.

However, in doing so, it forgets about the side data, which gets freed, but
is still needed and referenced. Then, when the packet gets freed again in
the normal code path, it attempts to free its side data which has already
been freed.

Therefore, simply avoid the first free on side data by removing that side
data from the packet.

Fixes ticket #3773.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-15 03:43:17 +02:00
Michael Niedermayer
6c1ee1a114 avcodec/h261dec: Fix context initialization sequence
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-15 02:53:48 +02:00
Michael Niedermayer
595c63357c Merge commit '552bc42df48784ae3ce0d499ece5b33f3cc7576a'
* commit '552bc42df48784ae3ce0d499ece5b33f3cc7576a':
  h261dec: Fix order of initialization

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-15 02:41:47 +02:00
Michael Niedermayer
012062cfd5 Merge commit 'b869eea7ea8f5d8331fcd6355f848bb6a6e06b14'
* commit 'b869eea7ea8f5d8331fcd6355f848bb6a6e06b14':
  h263dec: Fix order of initialization

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-15 02:28:49 +02:00
Michael Niedermayer
2fd87a3d78 Merge commit '998c9f15d1ca8c7489775ebcca51623b915988f1'
* commit '998c9f15d1ca8c7489775ebcca51623b915988f1':
  idct: remove call to ff_idctdsp_init from ff_MPV_common_init

Conflicts:
	libavcodec/dnxhdenc.c
	libavcodec/h263dec.c
	libavcodec/mpegvideo.c
	libavcodec/mpegvideo.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-15 02:25:14 +02:00
Michael Niedermayer
8b6cbc3c33 avutil/opt: remove disabled old ABI compatibility code
Fixes some unused variable warnings

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-14 20:42:53 +02:00
Michael Niedermayer
fce8817a01 avformat/format: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-14 20:40:11 +02:00
James Darnley
7ce6c021dc lavc/flacdsp: change lpc_encoder function pointer prototype
This should help to clarify the API.

Reviewed-by: Christophe Gisquet <christophe.gisquet@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-14 20:11:35 +02:00
Michael Niedermayer
c6c345ea92 Merge remote-tracking branch 'cigaes/master'
* cigaes/master:
  lavfi/avf_showspectrum: check RDFT context init.
  lavfi/avf_showspectrum: add full frame sliding mode.
  lavfi/avf_showspectrum: use automatic framing.
  lavfi/avf_showspectrum: do not push the frame at EOF.
  lavfi/avf_showspectrum: fix output pts computation.
  lavfi/avf_showspectrum: set output frame rate.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-14 19:42:38 +02:00
Clément Bœsch
37bfeca78c avfilter/select: larger pixel sad computation 2014-08-14 19:11:13 +02:00
Clément Bœsch
10d96d8d66 avfilter/select: re-align a few comments 2014-08-14 18:52:53 +02:00
John Stebbins
552bc42df4 h261dec: Fix order of initialization
ff_MPV_common_init requires the frame dimensions which get parsed in
h261_decode_picture_header.
2014-08-14 07:58:50 -07:00
John Stebbins
b869eea7ea h263dec: Fix order of initialization
ff_MPV_common_init requires the frame dimensions which get parsed in
*_decode_picture_header.
2014-08-14 07:58:50 -07:00
John Stebbins
998c9f15d1 idct: remove call to ff_idctdsp_init from ff_MPV_common_init
One step in untangling the mpegvideo code and fixing some problems in
the order that initialization is being done in h263dec and h261dec.
2014-08-14 07:58:49 -07:00
Michael Niedermayer
5c7899a483 avcodec/mjpegdec: Support AV_PIX_FMT_YUV420P16 with upscale_h
Fixes assertion failure
Fixes: test42f.jpg
Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-14 16:20:55 +02:00
Christophe Gisquet
58d380f9a7 libavcodec: bump micro to reflect dpx changes
The encoder produces files that are no longer compatible with previous
versions of the decoder, and may actually cause decoding issues for other
software, so indicate that change to allow decoder quirks.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-14 16:05:10 +02:00
Michael Niedermayer
6c36b3afe7 avcodec/lcldec: initialize encoded correctly
Fixes out of array read
Fixes: yuv111_no_compr_crash.avi

Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-14 15:19:47 +02:00
Nicolas George
638eec2ac3 lavfi/avf_showspectrum: check RDFT context init.
Fix a segfault with large window size.
2014-08-14 15:11:39 +02:00
Nicolas George
7c10e32ae5 lavfi/avf_showspectrum: add full frame sliding mode. 2014-08-14 14:59:23 +02:00
Nicolas George
ec33df6045 lavfi/avf_showspectrum: use automatic framing.
The framework can ensure that each input frame has exactly
the correct number of samples, except the last one.
2014-08-14 14:59:19 +02:00
Christophe Gisquet
117bc8e6ff proresenc_kostya: properly account for alpha
The packet buffer allocation considered as dct-coded, while it is
actually run-coded and thus requires a larger buffer.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-14 14:28:58 +02:00
Nicolas George
d4de6d4fad lavfi/avf_showspectrum: do not push the frame at EOF.
It is always identical to the last pushed frame.
The samples in the last incomplete window were ignored,
this is unchanged.
Possible enhancement: pad the last incomplete window with
silence.
2014-08-14 14:23:59 +02:00
Nicolas George
65b284a4ae lavfi/avf_showspectrum: fix output pts computation. 2014-08-14 14:23:59 +02:00
Nicolas George
a3aaaec891 lavfi/avf_showspectrum: set output frame rate. 2014-08-14 14:23:59 +02:00
Christophe Gisquet
4ba45c189c dpx: use aligned line starts
SMPTE 268M-2003 specifies that each line starts at a 4-bytes boundary.
Therefore, modify correspondingly the input buffer strides and size.

Partially fixes ticket #3692: DLAD_8b_3c_big.dpx still has inverted
colors, which might be related to endianness.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-14 13:35:24 +02:00
Michael Niedermayer
b634c12cb9 Merge commit '93f29948e4b06acfb96e7f82d373ef86d6dc55f7'
* commit '93f29948e4b06acfb96e7f82d373ef86d6dc55f7':
  mpeg4video: Fix doxygen comment syntax to document correct struct member

Conflicts:
	libavcodec/mpeg4video.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-14 12:50:40 +02:00
Michael Niedermayer
8d403d9c89 Merge commit '0528226a05cc08b74197547fba0b1939bf68990d'
* commit '0528226a05cc08b74197547fba0b1939bf68990d':
  a64: Return correct error code on invalid data stream

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-14 12:42:59 +02:00
Michael Niedermayer
de7b08cbc1 Merge commit 'e070d0a5ca9047192e324a3f87006b316e2a08a7'
* commit 'e070d0a5ca9047192e324a3f87006b316e2a08a7':
  frame: Remove some FF_API_AVFRAME_COLORSPACE leftovers

Conflicts:
	libavutil/frame.c

No change, as these leftovers have already been removed

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-14 12:34:17 +02:00
Michael Niedermayer
87988d6569 Merge commit 'ab059f0aa896e01e8e4529f5f714fde111f05377'
* commit 'ab059f0aa896e01e8e4529f5f714fde111f05377':
  vaapi: set the scaling list correctly.

See: 3fec40b601
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-14 12:32:47 +02:00
Nidhi Makhijani
93f29948e4 mpeg4video: Fix doxygen comment syntax to document correct struct member
Also fix some comment typos.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-08-14 11:59:59 +02:00
Nidhi Makhijani
0528226a05 a64: Return correct error code on invalid data stream
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-08-14 01:22:47 -07:00
Diego Biurrun
e070d0a5ca frame: Remove some FF_API_AVFRAME_COLORSPACE leftovers 2014-08-14 00:44:47 -07:00
Edgar Hucek
ab059f0aa8 vaapi: set the scaling list correctly.
Fixes VAAPI decoding artefacts.

CC:libav-stable@libav.org

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-08-14 05:50:08 +00:00
James Almer
dffbac0956 lavf/oggparsevp8: use ff_vorbis_stream_comment()
commit db68ef89 did not update the vp8 parser

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-14 05:47:06 +02:00
Christophe Gisquet
7cdef77b50 dpx: warn if encrypted
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-14 04:31:07 +02:00
Christophe Gisquet
69849a2d6e dpxenc: enforce alignment requirement
S268M-2003 specifies that each line start is aligned on a 4-byte boundary.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-14 04:24:14 +02:00
Anton Khirnov
d92550d191 lavf: eliminate ff_get_audio_frame_size()
It is basically a wrapper around av_get_audio_frame_duration(), with a
fallback to AVCodecContext.frame_size. However, that field is set only
when the stream codec context is actually used for encoding or decoding,
which is discouraged.

For muxing, it is generally the responsibility of the caller to set the
packet duration.
For demuxing, if the duration is not stored at the container level, it
should be set by the parser.

Therefore, removing the frame_size fallback should not break any
important case.
(cherry picked from commit 30e50c5027)

Conflicts:

	libavformat/utils.c

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-14 03:12:58 +02:00
Michael Niedermayer
7b59217b60 Move WMA case from ff_get_audio_frame_size() to av_get_audio_frame_duration()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-14 03:03:56 +02:00
Michael Niedermayer
ed488d1535 Move frame_size fallback from ff_get_audio_frame_size() to av_get_audio_frame_duration()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-14 03:00:39 +02:00
Michael Niedermayer
986ec3417a avformat/utils: Remove demuxer specific frame_size fallback from ff_get_audio_frame_size()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-14 02:39:59 +02:00
Michael Niedermayer
1d7544b752 Merge commit 'e8049af1325dd59a51546c15b2e71a0f578e9d27'
* commit 'e8049af1325dd59a51546c15b2e71a0f578e9d27':
  mpegts: Do not try to write a PMT larger than SECTION_SIZE

Conflicts:
	libavformat/mpegtsenc.c

See: 842b6c14bc
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-14 02:13:46 +02:00
Michael Niedermayer
af5ec18225 Merge commit '353240541d4ec317471b5cbcaa3e027d00ff8f5c'
* commit '353240541d4ec317471b5cbcaa3e027d00ff8f5c':
  cpu-test: Add unistd.h #include for getopt()

No change as we already have a #include <unistd.h>

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-14 01:42:12 +02:00
Michael Niedermayer
0de0c75ebb Merge commit '30e50c50274f88f0f5ae829f401cd3c7f5266719'
* commit '30e50c50274f88f0f5ae829f401cd3c7f5266719':
  lavf: eliminate ff_get_audio_frame_size()

Conflicts:
	libavformat/utils.c

Not merged as the removed code is needed for some bugfixes and
would break the fate tests

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-14 01:12:12 +02:00
Michael Niedermayer
082d52354f doc: fix toolname
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-14 01:00:49 +02:00
Michael Niedermayer
b8e4c11d93 Merge commit '481a3667495425db9fdffb653292b6460fb68208'
* commit '481a3667495425db9fdffb653292b6460fb68208':
  cmdutils: allow matching by metadata in stream specifiers

Conflicts:
	Changelog
	cmdutils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-14 00:41:21 +02:00
Michael Niedermayer
c8571c61ec Merge commit '8ddc32629a6d6be77256694c9e322dde134609f3'
* commit '8ddc32629a6d6be77256694c9e322dde134609f3':
  mem: add av_strndup() for duplicating substrings

Conflicts:
	libavutil/mem.c
	libavutil/mem.h
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-14 00:29:06 +02:00
Michael Niedermayer
097bf149c9 Merge commit 'aa51b0492bfced6d650fb5ff419e2b13fde6833d'
* commit 'aa51b0492bfced6d650fb5ff419e2b13fde6833d':
  avconv: rename output_packet() to process_input_packet()

Conflicts:
	ffmpeg.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-14 00:23:30 +02:00
Michael Niedermayer
ad1b571b26 Merge commit '159a06dfc83d189f753c4583583ddfb571552ff5'
* commit '159a06dfc83d189f753c4583583ddfb571552ff5':
  stereo3d: initialize AVStereo3D to zero

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-14 00:17:47 +02:00
Michael Niedermayer
e260c8180e Merge commit '4e629ef80e62a54636cb46033998177dd08cf3ad'
* commit '4e629ef80e62a54636cb46033998177dd08cf3ad':
  http: Fix authentication, broken since 6a463e7fb

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-14 00:12:56 +02:00
Michael Niedermayer
a8db787932 Merge commit 'db68ef898a3802e51b6f41fd600d0d46d058e3f8'
* commit 'db68ef898a3802e51b6f41fd600d0d46d058e3f8':
  ogg: update event_flags with STREAM_/METADATA_UPDATED whenever metadata changes.

Conflicts:
	libavformat/oggparsevorbis.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-14 00:05:49 +02:00
Michael Niedermayer
a90364d001 Merge commit 'cc3e88a2b9e7ecf62e4ea1c41ce1623cea67ee96'
* commit 'cc3e88a2b9e7ecf62e4ea1c41ce1623cea67ee96':
  mov: update AVFormatContext.event_flags with METADATA_UPDATED whenever metadata changes.

Conflicts:
	libavformat/mov.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-13 23:51:03 +02:00
Michael Niedermayer
1110a030c7 Merge commit 'fa3a5dd4dea34baa6bb2f7fe6006fc4b2888f2aa'
* commit 'fa3a5dd4dea34baa6bb2f7fe6006fc4b2888f2aa':
  nutdec: update AVFormatContext.event_flags with STREAM_/METADATA_UPDATED whenever metadata changes.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-13 23:44:53 +02:00
Michael Niedermayer
314c198413 Merge commit '0f789322efa78a672e4c3027e5cc12b8a947043a'
* commit '0f789322efa78a672e4c3027e5cc12b8a947043a':
  flvdec: update AVFormatContext.event_flags with METADATA_UPDATED whenever metadata changes.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-13 23:36:30 +02:00
Michael Niedermayer
9f97f7c546 Merge commit '93c04e095dc37ebdab22174e88cfa91e24940866'
* commit '93c04e095dc37ebdab22174e88cfa91e24940866':
  Expose metadata found in onCuePoint events in .flv files.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-13 23:14:23 +02:00
Michael Niedermayer
f01a1281ee Merge commit '019d3fccc4dcf5c8379112f697ce9eb08edee9b9'
* commit '019d3fccc4dcf5c8379112f697ce9eb08edee9b9':
  Set protocol-level metadata in AVFormatContext any time a packet is read.

Conflicts:
	libavformat/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-13 23:02:56 +02:00
Michael Niedermayer
313d75cd43 Merge commit '7e38903b5c86a759549e70647ae42bb22d353b14'
* commit '7e38903b5c86a759549e70647ae42bb22d353b14':
  http: enable icy metadata by default.

Conflicts:
	Changelog
	libavformat/http.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-13 22:54:31 +02:00
Michael Niedermayer
69a5cd9fea Merge commit '7601f9412a2d3387617a45966b65b452a632c27a'
* commit '7601f9412a2d3387617a45966b65b452a632c27a':
  http: export icecast metadata as an option with name "metadata".

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-13 22:52:53 +02:00
Michael Niedermayer
2ba4577809 Merge commit 'a8c104a511f97e4ea617df73b31737e28a8a5126'
* commit 'a8c104a511f97e4ea617df73b31737e28a8a5126':
  AVOption: add support for dictionary types.

Conflicts:
	libavutil/opt.c
	libavutil/opt.h
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-13 22:39:54 +02:00
Michael Niedermayer
ed8e6d535c Merge commit 'afbd4b7e093adf6d7a830b32759ca3ba8500363d'
* commit 'afbd4b7e093adf6d7a830b32759ca3ba8500363d':
  lavf: add AVFormatContext/AVStream fields for signaling to the user when events happen.

Conflicts:
	libavformat/avformat.h
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-13 22:22:52 +02:00
Luca Barbato
e8049af132 mpegts: Do not try to write a PMT larger than SECTION_SIZE
Prevent out of array writes.

Similar to what Michael Niedermayer did to address the same issue.

Bug-Id: CVE-2014-2263
CC: libav-stable@libav.org

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-08-13 12:43:26 -07:00
Diego Biurrun
353240541d cpu-test: Add unistd.h #include for getopt() 2014-08-13 12:37:25 -07:00
Clément Bœsch
ec14f53dbd reset and complete RELEASE_NOTES for the next version 2014-08-13 21:03:55 +02:00
Ronald S. Bultje
14e3025518 vp9: ignore reference segmentation map if error_resilience flag is set.
Fixes ffvp9_fails_where_libvpx.succeeds.webm from ticket 3849.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-13 20:46:00 +02:00
Clément Bœsch
8fcd9386ec Changelog: notify about the recent performance boost in dctdnoiz filter 2014-08-13 20:02:21 +02:00
Anton Khirnov
30e50c5027 lavf: eliminate ff_get_audio_frame_size()
It is basically a wrapper around av_get_audio_frame_duration(), with a
fallback to AVCodecContext.frame_size. However, that field is set only
when the stream codec context is actually used for encoding or decoding,
which is discouraged.

For muxing, it is generally the responsibility of the caller to set the
packet duration.
For demuxing, if the duration is not stored at the container level, it
should be set by the parser.

Therefore, removing the frame_size fallback should not break any
important case.
2014-08-13 17:41:11 +00:00
Clément Bœsch
c85e0ca68a avfilter/dctdnoiz: add slice threading 2014-08-13 19:32:00 +02:00
Anton Khirnov
481a366749 cmdutils: allow matching by metadata in stream specifiers 2014-08-13 17:24:18 +00:00
Anton Khirnov
8ddc32629a mem: add av_strndup() for duplicating substrings 2014-08-13 17:24:18 +00:00
Anton Khirnov
aa51b0492b avconv: rename output_packet() to process_input_packet()
It more accurately describes what this function does
2014-08-13 17:24:18 +00:00
Felix Abecassis
159a06dfc8 stereo3d: initialize AVStereo3D to zero
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-08-13 17:24:18 +00:00
Martin Storsjö
4e629ef80e http: Fix authentication, broken since 6a463e7fb
The cur_*auth_type variables were set before the http_connect call
prior to 6a463e7fb - their sole purpose is to record the
authentication type used to do the latest request, since parsing
the http response sets the new type in the auth state.

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-08-13 20:22:28 +03:00
Michael Niedermayer
cf24e10a09 Merge commit '72199e1041b4052544e181ad90b431ca6704da12'
* commit '72199e1041b4052544e181ad90b431ca6704da12':
  configure: Check for nanosleep in headers as well, not only in libs

See: 223c374a9d
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-13 18:45:15 +02:00
Michael Niedermayer
a0f3db8f60 Merge commit '428b0578c64241fc677fed7083cc8fe65e10f32e'
* commit '428b0578c64241fc677fed7083cc8fe65e10f32e':
  w32threads: Use newer thread synchronization functions when targeting Vista

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-13 18:33:06 +02:00
Michael Niedermayer
9f7a2ecb29 Merge commit '8bf3bf69ad7333bf0c45f4d2797fc2c61bc8922f'
* commit '8bf3bf69ad7333bf0c45f4d2797fc2c61bc8922f':
  http: Stop reading after receiving the whole file for non-chunked transfers

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-13 18:26:40 +02:00
Andrew Stone
db68ef898a ogg: update event_flags with STREAM_/METADATA_UPDATED whenever metadata changes.
Originally, AVFormatContext and a metadata dict were provided to ff_vorbis_comment(),
but this presented issues if an AVStream was being updated or the metadata on
AVFormatContext wasn't actually being updated. To remedy this, ff_vorbis_stream_comment()
explicitly updates a stream's metadata and sets any necessary flags.

ff_vorbis_comment() does not modify any flags, and any calls to it that update
AVFormatContext's metadata (just a single call) must also update
AVFormatContext.event_flags after detecting any metadata changes to the provided
dictionary, as signaled by a positive return value.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-08-13 16:25:19 +00:00
Andrew Stone
cc3e88a2b9 mov: update AVFormatContext.event_flags with METADATA_UPDATED whenever metadata changes.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-08-13 16:24:09 +00:00
Andrew Stone
fa3a5dd4de nutdec: update AVFormatContext.event_flags with STREAM_/METADATA_UPDATED whenever metadata changes.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-08-13 16:23:36 +00:00
Andrew Stone
0f789322ef flvdec: update AVFormatContext.event_flags with METADATA_UPDATED whenever metadata changes.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-08-13 16:23:28 +00:00
Stefano Sabatini
a539f1cbbd doc/filters: correct confusing statements about *showinfo shown values
Fix trac issue #3850.
2014-08-13 18:14:24 +02:00
Andrew Stone
93c04e095d Expose metadata found in onCuePoint events in .flv files.
Currently, only onMetaData is used, but some providers (wrongly)
put metadata into onCuePoint events, and it's still nice to be
able to use that data.

onCuePoint events also present metadata slightly differently than
onMetaData events: all metadata is found inside an object called
"parameters". In order to extract this metadata, it's easiest to
recurse through the object tree and pull out anything found in
child objects and put it in the top-level metadata.

Reference: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/2/help.html?content=00001404.html

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-08-13 16:11:43 +00:00
Andrew Stone
019d3fccc4 Set protocol-level metadata in AVFormatContext any time a packet is read.
If any option named "metadata" is set inside the context, it is pulled up to
the context and then the option is cleared.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-08-13 16:10:49 +00:00
Andrew Stone
7e38903b5c http: enable icy metadata by default.
It won't hurt servers that don't care about the header,
and those that do will include it by default.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-08-13 16:10:15 +00:00
Andrew Stone
7601f9412a http: export icecast metadata as an option with name "metadata".
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-08-13 16:09:05 +00:00
Andrew Stone
a8c104a511 AVOption: add support for dictionary types.
In order to support metadata being set as an option, it's necessary to be able
to set dictionaries as values.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-08-13 16:07:40 +00:00
Andrew Stone
afbd4b7e09 lavf: add AVFormatContext/AVStream fields for signaling to the user when events happen.
The only flags, for now, indicate if metadata was updated and are set after each call to
av_read_frame(). This comes with the caveat that, on stream start, it might not be set properly
as packets might be buffered in AVFormatContext.packet_buffer before being given to the user
in av_read_frame().

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-08-13 16:04:48 +00:00
Paul B Mahol
e3212bfd14 avfitler/vf_perspective: support slice threading
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2014-08-13 14:04:21 +00:00
Michael Niedermayer
1e519b9d40 avutil: turn arm setend into a cpuflag
this allows disabling and enabling it
it also prevents crashes if vfpv3 and neon are disabled which previously
would have enabled the flag

And last but not least one can enable setend on cpus like cortex-a8 where
its fast but disabled by default

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-13 14:50:15 +02:00
Martin Storsjö
72199e1041 configure: Check for nanosleep in headers as well, not only in libs
On mingw64 with c++11 support, the link libraries do contain a
nanosleep function, while it isn't exposed via the headers. Using
check_func_headers instead of a plain check_func fixes this
misdetection.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-08-13 14:39:01 +03:00
Martin Storsjö
428b0578c6 w32threads: Use newer thread synchronization functions when targeting Vista
When explicitly targeting Vista or newer (which only happens if the
caller explicitly sets _WIN32_WINNT to a high enough value via the
extra cflags option - otherwise configure script sets
-D_WIN32_WINNT=0x0502), we already unconditionally link to the
ConditionVariable functions, since 4622f11f9.

Similarly use the newer -Ex versions of CreateEvent, CreateSemaphore,
InitializeCriticalSection and WaitForSingleObject, that all appeared
in Vista. When building Windows Store applications, the older versions
of these functions aren't available, only the -Ex functions. When
doing such a build, the user can set -D_WIN32_WINNT=0x0600 to
forcibly use the newer functions instead.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-08-13 14:38:18 +03:00
Martin Storsjö
8bf3bf69ad http: Stop reading after receiving the whole file for non-chunked transfers
Previously this logic was only used if the server didn't
respond with Connection: close, but use it even for that case,
if the server response is non-chunked.

Originally the http code has relied on Connection: close to close
the socket when the file/stream is received - the http protocol
code just kept reading from the socket until the socket was closed.
In f240ed18 we added a check for the file size, because some
http servers didn't respond with Connection: close (and wouldn't
close the socket) even though we requested it, which meant that the
http protocol blocked for a long time at the end of files, waiting
for a socket level timeout.

When reading over tls, trying to read at the end of the connection,
when the peer has closed the connection, can produce spurious (but
harmless) warnings. Therefore always voluntarily stop reading when
the specified file size has been received, if not using a chunked
transfer encoding. (For chunked transfers, we already return 0
as soon as we get the chunk header indicating end of stream.)

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-08-13 14:34:25 +03:00
James Almer
9f61d6d8fb lavc/dnxhd: ff_dnxhd_cid_table is not exported
Signed-off-by: James Almer <jamrial@gmail.com>
Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-13 13:12:52 +02:00
James Darnley
0a52bbdc31 cvcodec/flacdsp_lpc_template: osmetic fix
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-13 05:01:35 +02:00
James Darnley
54a51d3840 lavc/flacenc: partially unroll loop in flac_enc_lpc_16
It now does 12 samples per iteration, up from 4.

From 1.8 to 3.2 times faster again.  3.6 to 5.7 times faster overall.
Runtime is reduced by a further 2 to 18%.  Overall runtime reduced by
4 to 50%.

Same conditions as before apply.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-13 03:09:26 +02:00
James Almer
a8592db9bb avcodec/idctdsp: make add/put_pixels_clamped_c internal functions
This reduces code duplication and differences with the fork.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-13 01:44:41 +02:00
James Darnley
0081a14e7d lavc/flacenc: add sse4 version of the 16-bit lpc encoder
From 1.8 to 2.4 times faster.  Runtime is reduced by 2 to 39%.  The
speed-up generally increases with compression_level.

This lpc encoder is not used with levels < 3 so it provides no speed-up
in these cases.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-13 01:14:47 +02:00
James Almer
7cafdfe9c7 lavfi: duplicate ff_log2_tab
Fixes compilation failures on msvc/icl shared builds

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-13 01:00:38 +02:00
Pascal Massimino
298b3b6c1f avcodec: add C xvid IDCT support
Thanks to Pascal Massimino and Michael Militzer for permission to use under LGPL

The xvid idct code is from xvid, and nearly unchanged to make future syncing easy
the integration into ffmpeg is done by the commiter
the commit message is written by the commiter
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-12 21:58:45 +02:00
James Almer
9ffac3d00d lsws: duplicate ff_log2_tab
libswscale uses the table but wasn't duplicating it like the rest of the libs.
This should fix compilation failures on msvc/icl after lavu stopped exporting
internal functions and tables.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-12 20:52:21 +02:00
Michael Niedermayer
113229922a Merge commit 'da7d839a0d3ec40423a665dc85e0cfaed3f92eb8'
* commit 'da7d839a0d3ec40423a665dc85e0cfaed3f92eb8':
  ffv1dec: check that global parameters do not change in version 0/1

Conflicts:
	libavcodec/ffv1dec.c

See: b05cd1ea7e
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-12 17:09:39 +02:00
Michael Niedermayer
b097d1765b Merge commit '3187fa14a326908f9471a038e3b5b24c0eaf655e'
* commit '3187fa14a326908f9471a038e3b5b24c0eaf655e':
  hevc_mvs: avoid deriving tmvp in amvp

See: 373677f958
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-12 16:59:27 +02:00
Michael Niedermayer
980aa2ae35 Merge commit '14ca0aa69b5d954ce56d0826ab9f1f70e535c92a'
* commit '14ca0aa69b5d954ce56d0826ab9f1f70e535c92a':
  hevc: wait proper position for tmvp

Conflicts:
	libavcodec/hevc_mvs.c

See: ed248e7f70
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-12 16:52:49 +02:00
Michael Niedermayer
17cbc6457b Merge commit 'cf6090dc6252f2b276aa4133e3d73a89f4c6046c'
* commit 'cf6090dc6252f2b276aa4133e3d73a89f4c6046c':
  hevc: use intreadwrite

Conflicts:
	libavcodec/hevc_mvs.c

See: 7a4a5515b0
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-12 16:39:58 +02:00
Michael Niedermayer
5195512add Merge commit 'ed53cc217f6a6e4ddb35e3f01a79496091dc82dc'
* commit 'ed53cc217f6a6e4ddb35e3f01a79496091dc82dc':
  hevc: derive partial merge list

Conflicts:
	libavcodec/hevc_mvs.c

See: 4576eff05d
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-12 16:27:39 +02:00
Michael Niedermayer
cde2de4a05 Merge commit '3505b19652ea34089a4cd08d4d3358fcc0a3db8b'
* commit '3505b19652ea34089a4cd08d4d3358fcc0a3db8b':
  hevc: derive partially amvp list

Conflicts:
	libavcodec/hevc_mvs.c

See: bbeaae96eb
See: 3ad0460831
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-12 16:20:42 +02:00
Michael Niedermayer
e6ffe7bcfc Merge commit '09182b3224370e1d636631e77f201a8388766bd6'
* commit '09182b3224370e1d636631e77f201a8388766bd6':
  hevc: simplify rounding

Conflicts:
	libavcodec/hevc_mvs.c

See: 2e471e4703
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-12 16:07:07 +02:00
Michael Niedermayer
2278146a0c Merge commit 'd1b1c3bb5ef1bee409c06c3bcacfb8674e1cb574'
* commit 'd1b1c3bb5ef1bee409c06c3bcacfb8674e1cb574':
  hevc: reorder loops

Conflicts:
	libavcodec/hevc.c

See: eca1957c4c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-12 15:59:33 +02:00
Carl Eugen Hoyos
b703322059 Remove useless configure option "--enable-sram". 2014-08-12 14:27:37 +02:00
Ronald S. Bultje
45bed0ab30 vp9/x86: fix bug in intra_pred_hd_32x32.
Fixes mismatch in first keyframe in sample
ffvp9_fails_where_libvpx.succeeds.webm from ticket 3849. There's still
a second mismatch a few frames into the sample.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-12 13:11:21 +02:00
James Almer
c97870d1a1 x86/dca: remove unused header
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-12 12:46:53 +02:00
James Almer
e20ff251a6 x86/ttadsp: remove an unnecessary mova
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-12 12:29:05 +02:00
Michael Niedermayer
da7d839a0d ffv1dec: check that global parameters do not change in version 0/1
Such changes are neither allowed nor supported

Found-by: ami_stuff
Bug-Id: CVE-2013-7020
CC: libav-stable@libav.org
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-08-12 10:21:21 +00:00
Christophe Gisquet
3187fa14a3 hevc_mvs: avoid deriving tmvp in amvp
Reduces the number of calls to tmvp derivation from 933685 to 586271 on
a sequence.

Reviewed-by: Mickaël Raulet <mraulet@insa-rennes.fr>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-08-12 10:13:43 +00:00
Christophe Gisquet
14ca0aa69b hevc: wait proper position for tmvp
The position is either rounded or not checked, so delay the wait to
check the proper value.

Reviewed-by: Mickaël Raulet <mraulet@insa-rennes.fr>

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-08-12 10:13:21 +00:00
Christophe Gisquet
cf6090dc62 hevc: use intreadwrite
When dealing with MVs, both components may be processed at a time.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-08-12 10:03:20 +00:00
Christophe Gisquet
ed53cc217f hevc: derive partial merge list
The merge list only needs to be derived up to the merge index.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-08-12 09:59:30 +00:00
Christophe Gisquet
3505b19652 hevc: derive partially amvp list
When the candidate has been found, no need to derive others.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-08-12 09:58:14 +00:00
Christophe Gisquet
09182b3224 hevc: simplify rounding
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-08-12 09:57:25 +00:00
Christophe Gisquet
d1b1c3bb5e hevc: reorder loops
iterate over memory in a more continuous order

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-08-12 09:57:05 +00:00
Martin Storsjö
223c374a9d configure: Check for nanosleep in headers as well, not only in libs
On mingw64 with c++11 support, the link libraries do contain a
nanosleep function, while it isn't exposed via the headers. Using
check_func_headers instead of a plain check_func fixes this
misdetection.

Suggested-by: Hendrik Leppkes <h.leppkes@gmail.com>
See: [FFmpeg-devel] [PATCH] fix: 'make' with mingw32
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-12 11:25:05 +02:00
Carl Eugen Hoyos
99867fc0c4 Fix warning if https protocol was requested but isn't available. 2014-08-12 10:03:36 +02:00
Carl Eugen Hoyos
fddea3f074 Check for hevc startcode when muxing into mpeg-ts. 2014-08-12 08:48:20 +02:00
James Almer
d6711ee648 lavu: stop exporting internal functions
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-12 04:35:52 +02:00
James Almer
744f15b6b3 lavu: rename ff_opencl_set_parameter() to avpriv_opencl_set_parameter()
It was wrongly being exported and used by libavfilter.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-12 03:49:45 +02:00
Daniel Oberhoff
9f617a14a0 avfilter: ported lenscorrection filter from frei0r
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-12 03:33:30 +02:00
Christophe Gisquet
52b81ff463 proresenc_kostya: report buffer overflow
If the allocated size, despite best efforts, is too small, exit
with the appropriate error.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-12 00:46:37 +02:00
Christophe Gisquet
bf10f09bcc proresenc_kostya: remove unneeded parameters
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-12 00:46:37 +02:00
Reimar Döffinger
2c0454cd20 Add missing initialization for AVProbeData.
This has become necessary since the new mime field was added.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-11 21:10:22 +02:00
Michael Niedermayer
9a162146ca avcodec/snow: fix null pointer dereference in cleanup after allocation failure
Fixes: snowf.avi
Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-11 15:37:15 +02:00
Michael Niedermayer
ba47d519e5 avcodec/huffyuvdec: fix overread checks
Fixes: ffvhuff_f.avi
Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-11 15:17:11 +02:00
Michael Niedermayer
11512d70fa avcodec/get_bits: add BITS_LEFT() for finding the bits left with an opened reader
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-11 15:15:54 +02:00
James Almer
7b3de03c8f lavf: stop exporting internal functions
Except for those currently used by ffserver.

Signed-off-by: James Almer <jamrial@gmail.com>

Also left some others that seemed used by applications other than ffserver

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-11 14:29:56 +02:00
James Almer
31b7ab9f06 lavf/mpegts: remove obsolete ff_mpegts_parse_* cruft
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-11 13:46:53 +02:00
James Almer
59ecd4882d lavc/raw: remove obsolete ff_raw_pix_fmt_tags cruft
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-11 13:46:23 +02:00
James Almer
8f2634f970 lavc: stop exporting internal functions and tables
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-11 13:23:48 +02:00
Michael Niedermayer
9eda4e8bd7 avcodec/idctdsp: move add/put_pixels_clamped_c to header
This allows sharing them with the xvid IDCT

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-11 13:08:46 +02:00
Christophe Gisquet
5ec85c9750 hevc: do generic validation of bitstream
After finishing parsing VPS/SPS/PPS/slice header, check remaining bits,
and if an overconsumption occurred, report invalid data.

Liked-by: BBB
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-11 02:47:05 +02:00
Ronald S. Bultje
bfffce4d08 hevc: add missing comma in log message.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-11 02:27:27 +02:00
Michael Niedermayer
6801eb0a09 avcodec/vc1dec: do not crash when flushing without an allocated frame
Fixes Ticket3837
Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-11 02:16:43 +02:00
Michael Niedermayer
f4e814f787 swresample: check av_opt_set for failure in swr_alloc_set_opts()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-11 01:34:34 +02:00
Luca Barbato
c4ac48c5a1 swresample: document the need to configure the context using AVOptions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-11 00:35:56 +02:00
Michael Niedermayer
49456a95eb avformat/movenc: Fix printf type
Found-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-11 00:09:09 +02:00
Michael Niedermayer
7727345613 Merge commit '08b94f160a2c966bb83e32bde0e52246fafa2155'
* commit '08b94f160a2c966bb83e32bde0e52246fafa2155':
  configure: Don't pass MSVC compiler options -M[TD] to armasm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 23:47:48 +02:00
Michael Niedermayer
d177f27517 Merge commit 'cc1d8c54c19dd14fb851e3e7a7793d6b3bd75e94'
* commit 'cc1d8c54c19dd14fb851e3e7a7793d6b3bd75e94':
  avcodec: Postpone FF_IDCT_XVIDMMX removal until the next version bump

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 23:41:51 +02:00
Carl Eugen Hoyos
788cf6f0c6 Remove panscan information in av_frame_copy_props() if resolution changes.
Fixes ticket #3750.
2014-08-10 22:31:33 +02:00
Michael Niedermayer
3539d6c63a avcodec/iff: check pixfmt for rgb8 / rgbn
Fixes out of array access

Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 22:05:55 +02:00
Michael Niedermayer
9bcdb98839 avcodec/iff: Factorize av_pix_fmt_desc_get() out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 21:53:39 +02:00
Mark Reid
cab39afb1a avformat/movenc: check that reel_name length doesn't exceed UINT16_MAX
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 21:32:05 +02:00
Michael Niedermayer
bd87965247 Merge commit 'd63443b9684fa7b3e086634f7b44b203b6d9221e'
* commit 'd63443b9684fa7b3e086634f7b44b203b6d9221e':
  lavc: drop the av_fast_{re,m}alloc compatibility wrappers

Conflicts:
	libavcodec/utils.c

See: a973e01501
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 20:51:15 +02:00
Michael Niedermayer
d123d9abef Merge commit '8dca0877e3e1457e9ec79ffa1ead1135aabb791c'
* commit '8dca0877e3e1457e9ec79ffa1ead1135aabb791c':
  mpegts: Return proper error code on invalid input data

Conflicts:
	libavformat/mpegtsenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 20:34:28 +02:00
Michael Niedermayer
c24be3c4a2 Merge commit '59cc0812207e3c2e2f2e559d60d0a8f9296a8847'
* commit '59cc0812207e3c2e2f2e559d60d0a8f9296a8847':
  Prepare for 11_alpha2 Release

Conflicts:
	RELEASE

Not merged, as our release numbers differ

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 20:32:00 +02:00
Michael Niedermayer
3787495e1f Merge commit 'ab0742d2f34d70415620441b7ed7da2f03a0c14f'
* commit 'ab0742d2f34d70415620441b7ed7da2f03a0c14f':
  configure: Suggest upgrading gas-preprocessor instead of just installing

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 20:31:14 +02:00
Martin Storsjö
08b94f160a configure: Don't pass MSVC compiler options -M[TD] to armasm
The -MD option (for enabling a dynamically linked crt) gets interpreted
as a cpp option for generating dependency information (into a file named
'-.d', when preprocessing to a pipe). We shouldn't be passing
any and all C compiler flags to armasm (which is a plain assembler,
only with cpp bolted on via gas-preprocessor), but these are the
main conflicting ones.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-08-10 21:29:06 +03:00
Diego Biurrun
cc1d8c54c1 avcodec: Postpone FF_IDCT_XVIDMMX removal until the next version bump 2014-08-10 10:41:55 -07:00
Michael Niedermayer
7e4e45d227 Merge commit '9f8cf50e3be04b8e178086edaa4598826143303d'
* commit '9f8cf50e3be04b8e178086edaa4598826143303d':
  configure: Enable gas-preprocessor on all OSes but only if available

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 19:16:42 +02:00
Michael Niedermayer
f51c3e3a84 Merge commit 'f4312352fc52cc47c1ba398a33f629d32a737e91'
* commit 'f4312352fc52cc47c1ba398a33f629d32a737e91':
  configure: Add probe identification of MS armasm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 18:54:15 +02:00
Michael Niedermayer
d6efed84b1 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  lavf/img2dec: Initialize a stack variable.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 18:48:07 +02:00
Michael Niedermayer
61b9ce00a3 Merge commit '2597a842a0a2c7e8aa76f32733d27bf64817ae86'
* commit '2597a842a0a2c7e8aa76f32733d27bf64817ae86':
  tiff: Improve grayscale support

Conflicts:
	libavcodec/tiff.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 18:40:46 +02:00
Michael Niedermayer
78eaaa857e Merge commit 'fb1ddcdc8f51b9d261ae8e9c26b91e81f7b6bf45'
* commit 'fb1ddcdc8f51b9d261ae8e9c26b91e81f7b6bf45':
  avresample: Introduce AVFrame-based API

Conflicts:
	libavresample/utils.c
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 18:20:37 +02:00
Carl Eugen Hoyos
273fc0139e lavf/img2dec: Initialize a stack variable.
Fixes a valgrind warning about using unitialised memory.
Hopefully fixes crashes on several platforms reported through fate.
2014-08-10 18:20:12 +02:00
Christophe Gisquet
0d0d24af01 hevc_ps: verify P/T/L information
This makes the SPS parsing a little, but barely, safer.

Reviewed-by: Mickaël Raulet <mraulet@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 18:05:33 +02:00
Anton Khirnov
d63443b968 lavc: drop the av_fast_{re,m}alloc compatibility wrappers
They were only needed until the bump.
2014-08-10 15:40:38 +00:00
Michael Niedermayer
07262c7199 avcodec/options_table: leave xvidmmx AVOption in place
Also mark it as deprecated through its help text

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 17:30:27 +02:00
Christophe Gisquet
84bc45880a hevc_mvs: set candidate availabilities
They might be left uninitialized otherwise since 3ad04608.

Fixes ticket #3840.

Found-by: Carl Eugen Hoyos <ce@hoyos.ws>
Reported-by: Piotr Bandurski <ami_stuff@o2.pl>

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 17:13:18 +02:00
Derek Buitenhuis
43654a22c0 Revert "lavc/utils: Do not require dimensions for PNG."
mplayer-specifc hacks should not be in our codebase. mplayer should fix
its own code. It is not our responsibility to work around their broken
code.

This reverts commit e8e575633f.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-08-10 15:58:13 +01:00
Nidhi Makhijani
8dca0877e3 mpegts: Return proper error code on invalid input data
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-08-10 07:24:30 -07:00
Reinhard Tartler
59cc081220 Prepare for 11_alpha2 Release 2014-08-10 10:07:55 -04:00
Martin Storsjö
ab0742d2f3 configure: Suggest upgrading gas-preprocessor instead of just installing
Older versions don't support all the features we test for now.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-08-10 16:25:45 +03:00
Diego Biurrun
9f8cf50e3b configure: Enable gas-preprocessor on all OSes but only if available
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-08-10 16:25:45 +03:00
Martin Storsjö
f4312352fc configure: Add probe identification of MS armasm
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-08-10 16:25:45 +03:00
Diego Elio Pettenò
2597a842a0 tiff: Improve grayscale support
Only use PAL8 if palette is present, else use GRAY8 for pixfmt.

Instead of simulating a grayscale palette, use real grayscale pixels, if no
palette is actually defined.

Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.eu>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-08-10 15:21:44 +02:00
Luca Barbato
fb1ddcdc8f avresample: Introduce AVFrame-based API 2014-08-10 14:26:37 +02:00
Christophe Gisquet
7117547298 hevc: fix incorrect sao buffer size
It previously used the output, cropped size, causing overreads/writes.

Fixes ticket #3839.

This issue was introduced by d249e682, which is not part of any release

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 12:34:57 +02:00
James Almer
6985ef7813 lavfi: stop exporting internal functions
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 04:51:19 +02:00
James Almer
ddce2b2654 tools/fourcc2pixfmt: use avpriv_get_raw_pix_fmt_tags()
lavc doesn't export ff_raw_pix_fmt_tags[] anymore.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 04:50:31 +02:00
Michael Niedermayer
e18d9d90f1 Merge commit '8c6f430291374cf6d2cfb85cdbb809803b5a7d83'
* commit '8c6f430291374cf6d2cfb85cdbb809803b5a7d83':
  mpeg: Suppress a compiler warning on callback type

Conflicts:
	libavformat/mpegenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 02:20:54 +02:00
Michael Niedermayer
a71fcfad89 Merge commit '9325d88eba8038b3e2a4485e473a018410379e2d'
* commit '9325d88eba8038b3e2a4485e473a018410379e2d':
  lavc: remove obsolete and disabled avpriv functions

Conflicts:
	libavcodec/dv_profile.c
	libavcodec/dv_profile.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 02:09:13 +02:00
Michael Niedermayer
329832d779 Merge commit '24c788f4878729a42150581d7ed7e9a11daf874d'
* commit '24c788f4878729a42150581d7ed7e9a11daf874d':
  Remove obsolete FF_API_REFERENCE_DTS cruft.

Conflicts:
	libavformat/avformat.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 02:01:34 +02:00
Michael Niedermayer
a973e01501 avcodec: disable FF_API_FAST_MALLOC
It causes build failures in some cases and the functions are provided by
libavutil so the wraper should not be needed anymore

Found-by: jamrial
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 01:53:10 +02:00
Michael Niedermayer
c218d8218d Merge commit '24e87f7f425a52b1e69661dcb2fbe0555a76f30b'
* commit '24e87f7f425a52b1e69661dcb2fbe0555a76f30b':
  Remove obsolete FF_API_PROBE_MIME cruft.

Conflicts:
	libavformat/avformat.h
	libavformat/format.c
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 01:36:21 +02:00
Michael Niedermayer
0f7ca2d778 Merge remote-tracking branch 'cigaes/master'
* cigaes/master:
  lavf/avio: do not include bprint.h.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 01:34:05 +02:00
Michael Niedermayer
287602f9d8 Merge commit '472f9ed312ec784f7c72876b77163f4741880d05'
* commit '472f9ed312ec784f7c72876b77163f4741880d05':
  Remove obsolete FF_API_AVFRAME_COLORSPACE cruft.

Conflicts:
	libavcodec/utils.c
	libavutil/frame.h
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 01:29:24 +02:00
Michael Niedermayer
97f8c7a03e bump libpostproc and libswresample
this is needed / avoids some headaches  as one of their dependancies
(libavutil) was bumped

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 01:17:02 +02:00
Michael Niedermayer
74be0f82a7 swresample-test: make it independant of the internal SWR_CH_MAX
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 01:15:43 +02:00
Michael Niedermayer
36bce999f5 libavfilter/af_amerge: Do not depend on SWR_CH_MAX
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 01:08:46 +02:00
Michael Niedermayer
ce1bb4b75d avfilter/af_pan: Do not use SWR_CH_MAX
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 01:08:45 +02:00
Michael Niedermayer
ced765ceb3 avfilter/af_pan: check if the number of channels where sucessfully set
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 01:08:45 +02:00
Michael Niedermayer
d9e7dc3e16 ffmpeg: do not use SWR_CH_MAX
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 01:08:45 +02:00
Michael Niedermayer
65cb02e87a avcodec/version: delay removial of FF_API_AUDIO_CONVERT/FF_API_AVCODEC_RESAMPLE
Some applications still use this deprecated API
Its not nice to remove it when its still in use and as long as it doesnt
cause us any work to keep it.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 00:38:48 +02:00
Michael Niedermayer
a57ece0cb4 Merge commit '1985c2e75c607ac51bfd8dc87d2957a5edf2b6f8'
* commit '1985c2e75c607ac51bfd8dc87d2957a5edf2b6f8':
  Bump major versions of all libraries.

Conflicts:
	doc/APIchanges
	libavcodec/version.h
	libavdevice/version.h
	libavfilter/version.h
	libavformat/version.h
	libavutil/version.h
	libswscale/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 00:26:45 +02:00
Michael Niedermayer
80c1cb522c avcodec/version: leave old audio API
If people prefer we can also drop it

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 00:21:56 +02:00
Michael Niedermayer
6fac482624 avcodec/flacdec: fix handling of av_samples_fill_arrays() return value
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 00:21:55 +02:00
Michael Niedermayer
70b8668fb5 drop LLS1, rename LLS2 to LLS
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-09 23:20:31 +02:00
Michael Niedermayer
5e1832c29c avutil: delay removial of FF_API_GET_CHANNEL_LAYOUT_COMPAT
avoids fate failure of join filter

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-09 23:19:54 +02:00
Michael Niedermayer
c89afc9acf delay removial of FF_API_CODEC_ID, FF_API_OLD_AVOPTIONS and FF_API_OLD_ENCODE_VIDEO
This prevents a build failure when bumping.
the uses could easily be updated / removed, if people prefer.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-09 23:19:16 +02:00
Michael Niedermayer
889cb3ae23 avcodec: remove deprecated use of FF_IDCT_XVIDMMX
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit eedc3f36532e4c6de782fe1c2dc59d192418a8fc)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-09 22:45:57 +02:00
Michael Niedermayer
3e41d2e612 Merge commit 'f4c444e17d137c786f0ed2da0e5943df505d5f9e'
* commit 'f4c444e17d137c786f0ed2da0e5943df505d5f9e':
  Postpone API-incompatible changes until the next bump.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-09 22:19:45 +02:00
Michael Niedermayer
499ff6a052 Merge commit '7acdd3a1275bcd9cad48f9632169f6bbaeb39d84'
* commit '7acdd3a1275bcd9cad48f9632169f6bbaeb39d84':
  hevc_filter: avoid excessive calls to ff_hevc_get_ref_list()

Conflicts:
	libavcodec/hevc_filter.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-09 21:49:55 +02:00
Luca Barbato
8c6f430291 mpeg: Suppress a compiler warning on callback type 2014-08-09 21:39:36 +02:00
Michael Niedermayer
5a3a83f01d Merge commit '52a2c17ec006282f388071a831dfb21288611253'
* commit '52a2c17ec006282f388071a831dfb21288611253':
  hevc_refs: drop the handling of negative coordinates in ff_hevc_get_ref_list()

Conflicts:
	libavcodec/hevc_refs.c

See: c8dd048ab8
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-09 21:35:11 +02:00
Michael Niedermayer
8d7c4cc082 Merge commit 'a7a17e3f1915ce69b787dc58c5d8dba0910fc0a4'
* commit 'a7a17e3f1915ce69b787dc58c5d8dba0910fc0a4':
  hevc_filter: move some conditions out of loops

Conflicts:
	libavcodec/hevc_filter.c

This is possibly less readable than the variant used before.
Thus please take a look and if people agree its worse, dont
hesitate to revert.

See: 83976e40e8
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-09 21:29:33 +02:00
Michael Niedermayer
3f2495d98c Merge commit '70211539a39ca3854f8a9e97d51dc27caa079943'
* commit '70211539a39ca3854f8a9e97d51dc27caa079943':
  hevc: deobfuscate slice/tile boundary handling for DBF

Conflicts:
	libavcodec/hevc.c
	libavcodec/hevc_filter.c

See: a5c621aa85
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-09 21:01:55 +02:00
Michael Niedermayer
73e9d4cd6f Merge commit '55019715785790836f60870180e1764b06e6591c'
* commit '55019715785790836f60870180e1764b06e6591c':
  hevc_filter: drop more redundant checks

Conflicts:
	libavcodec/hevc_filter.c

No change, as the removed checks where not in FFmpeg

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-09 20:51:48 +02:00
Michael Niedermayer
ca80c65726 Merge commit '65b8b6c476454d201348737527a1d9471f689278'
* commit '65b8b6c476454d201348737527a1d9471f689278':
  hevc_filter: drop redundant checks

Conflicts:
	libavcodec/hevc_filter.c

No change as the removed checks where not in ffmpeg

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-09 20:48:53 +02:00
Michael Niedermayer
adba796eb4 Merge commit '4d1ff2a489f4c60501b1a6a2d1f3874e61a77df9'
* commit '4d1ff2a489f4c60501b1a6a2d1f3874e61a77df9':
  hevc: calculate the dbf strength in hls_pcm_sample() only if dbf is enabled

Conflicts:
	libavcodec/hevc.c

See: 83976e40e8
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-09 20:34:27 +02:00
Clément Bœsch
d7594beede avfilter/dctdnoiz: remove a few indirections in idcts
No change in the generated asm.
2014-08-09 20:34:14 +02:00
Anton Khirnov
9325d88eba lavc: remove obsolete and disabled avpriv functions 2014-08-09 16:59:34 +00:00
Anton Khirnov
24c788f487 Remove obsolete FF_API_REFERENCE_DTS cruft. 2014-08-09 16:59:26 +00:00
Anton Khirnov
24e87f7f42 Remove obsolete FF_API_PROBE_MIME cruft. 2014-08-09 16:59:21 +00:00
Anton Khirnov
472f9ed312 Remove obsolete FF_API_AVFRAME_COLORSPACE cruft. 2014-08-09 16:59:13 +00:00
Anton Khirnov
1985c2e75c Bump major versions of all libraries. 2014-08-09 16:58:33 +00:00
Anton Khirnov
f4c444e17d Postpone API-incompatible changes until the next bump. 2014-08-09 16:57:10 +00:00
Anton Khirnov
7acdd3a127 hevc_filter: avoid excessive calls to ff_hevc_get_ref_list()
1) each of the loops run within a single CTB, so the relevant reference
list is constant
2) when that CTB is, or lies on the same slice as, the current one, we
can use a simple access instead of a relatively expensive call to
ff_hevc_get_ref_list()
2014-08-09 16:15:51 +00:00
Anton Khirnov
52a2c17ec0 hevc_refs: drop the handling of negative coordinates in ff_hevc_get_ref_list()
It makes no sense and cannot happen in any place from which this
function is called.
2014-08-09 16:15:38 +00:00
Anton Khirnov
a7a17e3f19 hevc_filter: move some conditions out of loops 2014-08-09 16:15:11 +00:00
Anton Khirnov
70211539a3 hevc: deobfuscate slice/tile boundary handling for DBF
Use named constants instead of magic numbers, avoid using variables with
inverse meaning from what their name implies.
2014-08-09 16:13:48 +00:00
Anton Khirnov
5501971578 hevc_filter: drop more redundant checks
The if() around those loops ensures this condition is always false.
2014-08-09 16:13:37 +00:00
Anton Khirnov
65b8b6c476 hevc_filter: drop redundant checks
ff_hevc_deblocking_boundary_strengths() is never called if the
deblocking filter is disabled for the slice.
2014-08-09 16:13:24 +00:00
Anton Khirnov
4d1ff2a489 hevc: calculate the dbf strength in hls_pcm_sample() only if dbf is enabled 2014-08-09 16:13:11 +00:00
Nicolas George
f87db44685 lavf/avio: do not include bprint.h.
See f75786f and 04bc370.
2014-08-09 15:51:04 +02:00
Michael Niedermayer
f75786f3bc avformat/avio: Fix "warning: struct AVBPrint declared inside parameter list"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-09 15:30:03 +02:00
Michael Niedermayer
25eeff9600 avcodec/avdct: add "xvid" alias AVOption and use FF_IDCT_XVID
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-09 12:42:07 +02:00
Michael Niedermayer
3841f2ae66 Merge commit 'd35b94fbabd8beb5d566c0b5d01688aff62c3b36'
* commit 'd35b94fbabd8beb5d566c0b5d01688aff62c3b36':
  avcodec: Rename xvidmmx IDCT to xvid

Conflicts:
	doc/APIchanges
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-09 12:11:13 +02:00
Michael Niedermayer
64d029de41 avformat/matroskaenc: fix MAX_CUEPOINT_SIZE calculation
Fixes assertion failure
Fixes Ticket3822

as a side-effect this makes some mkv files a few bytes smaller

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-09 05:05:09 +02:00
Mark Reid
d6af706eee avformat/movenc: write reel_name metadata to tmcd atom
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-09 03:08:25 +02:00
Carl Eugen Hoyos
4b63bcef90 Autodetect jpeg-ls files. 2014-08-08 22:43:15 +02:00
Michael Niedermayer
0dcebb9f63 Merge commit '84d173d3de97c753234ab0c0b50551d51413d663'
* commit '84d173d3de97c753234ab0c0b50551d51413d663':
  xvididct: Ensure that the scantable permutation is always set correctly

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-08 22:17:04 +02:00
Michael Niedermayer
5ff2b33401 Merge commit '6f1960ab71b4f18551243ce22d01913108265233'
* commit '6f1960ab71b4f18551243ce22d01913108265233':
  idct: cosmetics: Drop one unnecessary if-block level

Conflicts:
	libavcodec/idctdsp.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-08 21:53:20 +02:00
Michael Niedermayer
eb2def0ff2 Merge commit '444c73583d2848a542330c03949e1f933ac68f53'
* commit '444c73583d2848a542330c03949e1f933ac68f53':
  configure: Only run gas checks on ARM and PowerPC

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-08 21:38:58 +02:00
Michael Niedermayer
0472c5f8a1 Merge commit '0026e356d044e72b6e743b234708b8b8af457ac0'
* commit '0026e356d044e72b6e743b234708b8b8af457ac0':
  configure: Die if gas is unavailable under aarch64 as well as ARM

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-08 21:38:12 +02:00
Michael Niedermayer
a698efbc9d Merge commit 'e4c9e59a4547adaaa0ce9f25b0d0c5b91ae15472'
* commit 'e4c9e59a4547adaaa0ce9f25b0d0c5b91ae15472':
  mpeg: K&R formatting cosmetics

Conflicts:
	libavformat/mpegenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-08 21:31:54 +02:00
Michael Niedermayer
fd1e4d66f1 Merge commit '454697603e4efdfc04fadec40518d56c7dc1e5dd'
* commit '454697603e4efdfc04fadec40518d56c7dc1e5dd':
  mpegts: Use av_free() to free memory allocated by av_strdup()

Conflicts:
	libavformat/mpegtsenc.c

See: 92deb28945
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-08 21:25:32 +02:00
Justin Jacobs
87dc8b3af9 avformat/matroskadec: Check avpriv_new_chapter() for failure
Fixes null pointer dereference

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-08 21:16:30 +02:00
Diego Biurrun
d35b94fbab avcodec: Rename xvidmmx IDCT to xvid
The Xvid IDCT is not MMX-specific.
2014-08-08 11:13:30 -07:00
Diego Biurrun
84d173d3de xvididct: Ensure that the scantable permutation is always set correctly
This fixes cases where the scantable permuation would get overwritten by
the general idctdsp initialization.
2014-08-08 11:13:29 -07:00
Diego Biurrun
6f1960ab71 idct: cosmetics: Drop one unnecessary if-block level 2014-08-08 11:13:29 -07:00
Clément Bœsch
1ba7c6ead2 avfilter/dctdnoiz: use 32-bit (float) operations instead of 64 (double) for DCTs
This makes the code about 1.5x faster without any noticeable difference
in the output.
2014-08-08 20:00:14 +02:00
Clément Bœsch
eb16a6d229 avfilter/dctdnoiz: remove forward declarations after previous commit 2014-08-08 20:00:14 +02:00
Clément Bœsch
aaf82dc0fa avfilter/dctdnoiz: make color [de]correlation less clumsy
This has no impact on overall performance, since the block DCT taking
most of the time anyway.
2014-08-08 20:00:13 +02:00
Muhammad Faiz
94494dab91 avfilter/showcqt: add and extend tlength and volume options
Add a tlength option with frequency and timeclamp variable

Add to the volume option support for frequency and timeclamp variable,
   a_weighting, b_weighting and c_weighting functions

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-08 18:59:02 +02:00
Marek Fort
d1e750cd51 avformat/mov: Support reading Avid's metadata for DNXHD codec.
The AALP atom is necessary to properly decode the alpha channel.
Needed for ticket #3707

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-08 18:39:04 +02:00
Carl Eugen Hoyos
f73d75384f Autodetect webp files. 2014-08-08 16:14:18 +02:00
Carl Eugen Hoyos
e4d983e2db configure: Check if libwebp compilation will succeed. 2014-08-08 16:06:10 +02:00
Diego Biurrun
444c73583d configure: Only run gas checks on ARM and PowerPC
Standalone GNU assembly is not used on x86.
2014-08-08 05:30:32 -07:00
Diego Biurrun
0026e356d0 configure: Die if gas is unavailable under aarch64 as well as ARM 2014-08-08 05:30:32 -07:00
Luca Barbato
e4c9e59a45 mpeg: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-08-08 05:22:09 -07:00
Diego Biurrun
454697603e mpegts: Use av_free() to free memory allocated by av_strdup() 2014-08-08 03:12:57 -07:00
James Almer
d34ec64a22 replace calls to url_feof() with avio_feof()
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-08 00:48:38 +02:00
James Almer
5c3c67126f lavf/avio: rename url_feof() to avio_feof()
It's a public function and should use the avio_ namespace

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-08 00:48:22 +02:00
Mark Reid
f1e626a357 avformat/mov: read reel_name metadata from tmcd atom
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 23:37:55 +02:00
Michael Niedermayer
92a28e9f56 avformat/mpegtsenc: Use av_freep() for pids
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 23:04:32 +02:00
Michael Niedermayer
31eaecfee9 avformat/mpegtsenc: Free services array completely on failure
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 23:04:23 +02:00
Michael Niedermayer
12b59e57f3 avformat/mpegtsenc: Use correct deallocation code on failure of pids array allocation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 23:02:10 +02:00
Michael Niedermayer
5f8300afc6 mpegtsenc: Check dynarray_add() for failure
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 23:02:10 +02:00
Michael Niedermayer
92deb28945 avformat/mpegtsenc: use the correct deallocation functions
Found-by: Carl Eugen Hoyos <ce@hoyos.ws>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 23:01:51 +02:00
Michael Niedermayer
efcf1fcad3 Merge commit '5b220e1e19c17b202d83d9be0868d152109ae8f0'
* commit '5b220e1e19c17b202d83d9be0868d152109ae8f0':
  mpegts: Fix memory leaks and related crashes in mpegs_write_header()

Conflicts:
	libavformat/mpegtsenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 22:11:37 +02:00
Michael Niedermayer
3224a319c0 Merge commit 'f8ab9f2fe3730a0e8c3c1eb7c486f7c0041fb3fc'
* commit 'f8ab9f2fe3730a0e8c3c1eb7c486f7c0041fb3fc':
  mpegts: Avoid unnecessary variable shadowing

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 22:06:06 +02:00
Michael Niedermayer
066d776501 Merge commit '6d6bd3a3db24747ae5e10716f4782129c38951f6'
* commit '6d6bd3a3db24747ae5e10716f4782129c38951f6':
  mpegts: Drop some unnecessary parentheses

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 21:42:34 +02:00
Clément Bœsch
cec59eb63f avfilter/dctdnoiz: add 8x8 dct and make it the default
8x8 is about 5x faster than 16x16 on 1080p input. Since a block size of
8x8 makes the filter almost usable (time wise) and it's not obvious if
8x8 or 16x16 is better from a quality PoV (it really depends on the
input and parameters), the filter now defaults to 8x8, and as a result
libavfilter is micro bumped.
2014-08-07 21:24:12 +02:00
Michael Niedermayer
ec0b08d20b Merge commit 'b7b1bf9166ac3102c401295fdd5d4933c512aa50'
* commit 'b7b1bf9166ac3102c401295fdd5d4933c512aa50':
  mpegts: K&R formatting cosmetics

Conflicts:
	libavformat/mpegtsenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 21:16:06 +02:00
Michael Niedermayer
c6a596f626 doc/APIchanges: Correct function reference.
The commit bb789016d4
un-deprecated sws_getContext()

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 21:00:46 +02:00
Michael Niedermayer
4917fecf4a Merge commit 'bb789016d423d2cfacd2904ac66257bdf7f0964e'
* commit 'bb789016d423d2cfacd2904ac66257bdf7f0964e':
  swscale: Undeprecate sws_getContext()

Conflicts:
	libswscale/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 20:52:40 +02:00
Michael Niedermayer
a561662fb7 Merge commit 'ad1ee5fa75a3d69d54c0691048939e94ab5a7f0d'
* commit 'ad1ee5fa75a3d69d54c0691048939e94ab5a7f0d':
  avcodec: Undeprecate reordered_opaque

Conflicts:
	doc/APIchanges
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 20:43:11 +02:00
Michael Niedermayer
2bf87dcc2d Merge commit 'a7e541c9926d531a100ba0d36f4e56956dd84651'
* commit 'a7e541c9926d531a100ba0d36f4e56956dd84651':
  h264: fix interpretation of interleved stereo modes

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 20:22:16 +02:00
Marek Fort
4e70104aba avformat/movenc: XMP metadata support.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 20:11:09 +02:00
Marek Fort
054c506e3d avformat/mov: XMP metadata suppor.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 20:11:09 +02:00
Clément Bœsch
06362ab750 avfilter/dctdnoiz: rewrite [f/i]dct
This removes the avcodec dependency and make the code almost twice as
fast. More to come.

The DCT factorization is based on "Fast and numerically stable
algorithms for discrete cosine transforms" from Gerlind Plonkaa &
Manfred Tasche (DOI: 10.1016/j.laa.2004.07.015).
2014-08-07 19:59:07 +02:00
Diego Biurrun
5b220e1e19 mpegts: Fix memory leaks and related crashes in mpegs_write_header() 2014-08-07 07:52:17 -07:00
Diego Biurrun
f8ab9f2fe3 mpegts: Avoid unnecessary variable shadowing 2014-08-07 07:52:17 -07:00
Diego Biurrun
6d6bd3a3db mpegts: Drop some unnecessary parentheses 2014-08-07 07:52:17 -07:00
Diego Biurrun
b7b1bf9166 mpegts: K&R formatting cosmetics 2014-08-07 07:48:54 -07:00
Michael Niedermayer
75bd83d448 avdevice/lavfi: Simplify non-AV stream check
Fixes a clang warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 15:41:17 +02:00
Michael Niedermayer
8fa695a9e3 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Do not automatically map subtitles if the decoder and encoder properties are different.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 14:51:59 +02:00
James Almer
350f4be12d lavf: remove nonexistent functions from the version file
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 13:35:35 +02:00
James Almer
dd2b0c1cde lavc: remove nonexistent functions from the version file
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 13:20:59 +02:00
Carl Eugen Hoyos
7d585bc94c Do not automatically map subtitles if the decoder and encoder properties are different.
Fixes ticket #3819.
2014-08-07 13:18:00 +02:00
James Almer
1fd880cef3 lavd/dshow: use av_codec_get_id()
ff_codec_get_id() is a lavf internal function

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 13:03:17 +02:00
Diego Biurrun
bb789016d4 swscale: Undeprecate sws_getContext()
sws_getCachedContext is not a full replacement for the function.
2014-08-07 04:03:00 -07:00
Diego Biurrun
ad1ee5fa75 avcodec: Undeprecate reordered_opaque
It allows attaching other external, opaque data to the frame and passing it
through the reordering process, for cases when the caller wants other data
than just the plain packet pts.  There is no way to cleanly achieve this
without the field.
2014-08-07 04:03:00 -07:00
James Almer
0ab00a75e4 avcodec/raw: add avpriv_get_raw_pix_fmt_tags()
Used to expose ff_raw_pix_fmt_tags[] to other libav* libraries

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 12:52:38 +02:00
Felix Abecassis
a7e541c992 h264: fix interpretation of interleved stereo modes
Column and row frame packing arrangements were inverted.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-08-07 11:31:47 +01:00
Michael Niedermayer
4c404611da Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Do not return a probe score from set_codec_from_probe_data() if the codec was ignored.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 12:17:35 +02:00
Carl Eugen Hoyos
7c73d21523 lavf/mpegts: Do not return the result of a (void) function from a void function.
Fixes compilation with Sun C 5.10.
2014-08-07 09:55:40 +02:00
Carl Eugen Hoyos
ef17a0c7ba Do not return a probe score from set_codec_from_probe_data() if the codec was ignored.
This is a workaround for the issue that stream probing can use
the score of another codec type for mpeg stream autodetection.
Fixes ticket #3821.
2014-08-07 09:12:34 +02:00
James Almer
5b12b4fc4b lavf/mpegts: rename ff_mpegts_parse_*() to avpriv_mpegts_parse_*()
The were wrongly being exported and used by libavdevice

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 04:28:11 +02:00
Michael Niedermayer
1c59419419 Merge commit 'b50173a4dd47b9c3c89845b781fa958ccf860929'
* commit 'b50173a4dd47b9c3c89845b781fa958ccf860929':
  movenc: fix QT chapter track character encoding

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 02:54:23 +02:00
Michael Niedermayer
403367d5a9 Merge commit 'da9cc22d5bd5f59756c2037b02966376da2cf323'
* commit 'da9cc22d5bd5f59756c2037b02966376da2cf323':
  movenc: add track title to tracks

Conflicts:
	libavformat/movenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 02:42:15 +02:00
Michael Niedermayer
71f33051e5 Merge commit 'd9432789bd119f0e37bcf65cebda05d36aafd4ed'
* commit 'd9432789bd119f0e37bcf65cebda05d36aafd4ed':
  movenc: remove pointless loop around BITEXACT test

Conflicts:
	libavformat/movenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 02:35:39 +02:00
Michael Niedermayer
4213fc5b9e avcodec/svq1dec: Fix multiple bugs from "svq1: do not modify the input packet"
Add padding, clear size, use the correct pointer.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 02:27:07 +02:00
Michael Niedermayer
e55e09949e Merge commit '7b588bb691644e1b3c168b99accf74248a24e3cf'
* commit '7b588bb691644e1b3c168b99accf74248a24e3cf':
  svq1: do not modify the input packet

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 02:08:56 +02:00
Michael Niedermayer
c628627995 Merge commit 'c7d9b473e28238d4a4ef1b7e8b42c1cca256da36'
* commit 'c7d9b473e28238d4a4ef1b7e8b42c1cca256da36':
  cdgraphics: do not return 0 from the decode function

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 01:56:50 +02:00
Michael Niedermayer
91b4ed0918 Merge commit 'a1599f3f7ea8478d1f6a95e59e3bc6bc86d5f812'
* commit 'a1599f3f7ea8478d1f6a95e59e3bc6bc86d5f812':
  cdgraphics: switch to bytestream2

Conflicts:
	libavcodec/cdgraphics.c

See: ad002e1a13
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 01:45:22 +02:00
James Almer
8dfb8190d7 libavcodec/rawdec: remove old ff_find_pix_fmt() function
It's been dead code for more than a year

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 00:44:07 +02:00
Michael Niedermayer
6a44699746 avformat/dtsdec: check more of the dca headers in dts_probe()
Fixes misdetection of 664461_flac_16_44100_2.wav
Fixes Ticket3830

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-06 22:28:46 +02:00
Michael Niedermayer
7a34b7d80f avcodec/dca: Make ff_dca_convert_bitstream() available to libavformat, needed for dts_probe()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-06 22:28:35 +02:00
John Stebbins
b50173a4dd movenc: fix QT chapter track character encoding
An encoding ("encd") box is required to tell QT that the string is UTF8
2014-08-06 13:27:17 -07:00
John Stebbins
da9cc22d5b movenc: add track title to tracks 2014-08-06 13:27:17 -07:00
John Stebbins
d9432789bd movenc: remove pointless loop around BITEXACT test 2014-08-06 13:27:17 -07:00
Anton Khirnov
7b588bb691 svq1: do not modify the input packet
The input data must remain constant, make a copy instead. This is in
theory a performance hit, but since I failed to find any samples
using this feature, this should not matter in practice.

Also, check the size of the header, avoiding invalid reads on truncated
data.

CC:libav-stable@libav.org
2014-08-06 18:59:27 +00:00
Michael Niedermayer
40a820d6d8 Merge commit 'ed6d9ce914d552eeda16af857da97c4b1aea1e3f'
* commit 'ed6d9ce914d552eeda16af857da97c4b1aea1e3f':
  configure: Include the armcc build number in the compiler identification

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-06 20:56:05 +02:00
Anton Khirnov
c7d9b473e2 cdgraphics: do not return 0 from the decode function
0 means no data consumed, so it can trigger an infinite loop in the
caller.

CC:libav-stable@libav.org
2014-08-06 18:32:42 +00:00
Anton Khirnov
a1599f3f7e cdgraphics: switch to bytestream2
Fixes possible invalid memory accesses on corrupted data.

CC:libav-stable@libav.org
Bug-ID: CVE-2013-3674
2014-08-06 18:32:38 +00:00
Michael Niedermayer
5836fe20c6 Merge commit 'cbc808d726afdf53d866264722785c1304c17390'
* commit 'cbc808d726afdf53d866264722785c1304c17390':
  jpeg2000: enable 4 component pixel formats

See: f0358dc1d3
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-06 20:29:09 +02:00
Christophe Gisquet
75837e9add x86: sbrdsp/fft: reuse ps_neg constant
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-06 19:25:08 +02:00
Christophe Gisquet
51dd80e751 x86: diracdsp: reuse constants
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-06 19:25:02 +02:00
Christophe Gisquet
6622a6cff3 x86: dwt: better share constants
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-06 19:24:57 +02:00
Christophe Gisquet
71db2d08b1 x86: better share ff_pw_2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-06 19:24:49 +02:00
Christophe Gisquet
4e128ab0b1 x86: vpx/h264/hevc/mpeg2: share constants
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-06 18:36:31 +02:00
Martin Storsjö
ed6d9ce914 configure: Include the armcc build number in the compiler identification
This tries to find the most expressive part of the output of
armcc --vsn to include, giving a compiler identification of
"ARM Compiler 5.04 update 2 (build 82)" instead of just
"ARM Compiler 5.04" for armcc 5.0.

4.x versions of armcc output the following, for "armcc --vsn":
ARM C/C++ Compiler, RVCT4.0 [Build 925]
For evaluation purposes only
Software supplied by: ARM Limited

ARM C/C++ Compiler, 4.1 [Build 894]
For evaluation purposes only
Software supplied by: ARM Limited

5.0 versions output this:
Product: ARM Compiler 5.04
Component: ARM Compiler 5.04 update 2 (build 82)
Tool: armcc [5040081]
For evaluation purposes only
Software supplied by: ARM Limited

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-08-06 19:15:59 +03:00
Michael Niedermayer
305f72aee7 avcodec: Change get_pixels() to ptrdiff_t linesize
Found-by: ubitux
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-06 15:50:54 +02:00
Michael Niedermayer
6b1df5544e avutil/cpu: check av_parse_cpu_caps() table during cpu-test
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-06 14:27:45 +02:00
Michael Niedermayer
fe0157a19a avutil/cpu: Make cpu flag names match between cpu-test and av_parse_cpu_caps() tables
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-06 14:27:45 +02:00
Michael Niedermayer
efc4fe9d74 avutil/cpu: add aarch64 entries to 2nd table
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-06 14:27:45 +02:00
Vittorio Giovara
cbc808d726 jpeg2000: enable 4 component pixel formats
Bug-Id: 721
CC: libav-stable@libav.org
Sample-Id: 31230.mov
2014-08-06 12:23:21 +01:00
Christophe Gisquet
6786848585 hevc_deblock: change tc type
The x86 asm expects int32_t so use that type.

Reviewed-by: Mickaël Raulet <mraulet@insa-rennes.fr>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-06 12:38:26 +02:00
Timothy Gu
9f02a2b224 transcode_aac: fix const return value
Fixes Trac #3613.

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-06 04:01:19 +02:00
Michael Niedermayer
a32e306be3 doc/muxers: document which applications are known to need disable_chpl.
Thanks to: John Stebbins <stebbins@jetheaddev.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-06 03:59:37 +02:00
Michael Niedermayer
9101ef6757 avutil/cpu: output cpu data to stdout
Errors go to stderr, but the cpu stats are non error output for cputest

This fixes echoing the cpu test results

Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-06 02:01:08 +02:00
Michael Niedermayer
a8689ba872 tests/fate/libavutil: switch cpu-test back to runecho so its results are vissible
(needs next commt too)

Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-06 01:57:35 +02:00
Michael Niedermayer
6552b0558a avutil/pixelutils: check for malloc failure
Found-by: Daemon404
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-06 01:45:29 +02:00
Michael Niedermayer
84ac2f93ca avutil/pixelutils: avoid on stack arrays
The arrays are fairly large and could cause problems on some embedded systems
also they are not endian safe as they mix 32 and 8bit

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-06 01:27:38 +02:00
Michael Niedermayer
1b168e3bcf avutil/cpu: fix cpu-test to work with ffmpegs cpuflags syntax
Found-by: jamrial
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-06 00:36:19 +02:00
Michael Niedermayer
296b01d7f9 Merge commit 'a7153444df9040bf6ae103e0bbf6104b66f974cb'
* commit 'a7153444df9040bf6ae103e0bbf6104b66f974cb':
  huffyuvdec: check width size for yuv422p

Conflicts:
	libavcodec/huffyuvdec.c

See: 6abb9a901f
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-06 00:08:03 +02:00
Michael Niedermayer
3ce55d2e32 Merge commit '70cd3b8e659c3522eea5c16a65d14b8658894a94'
* commit '70cd3b8e659c3522eea5c16a65d14b8658894a94':
  mmvideo: check horizontal coordinate too

See: 8d3c99e825
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-05 23:43:12 +02:00
Michael Niedermayer
a7153444df huffyuvdec: check width size for yuv422p
Avoid out of array accesses.

CC: libav-stable@libav.org
Bug-Id: CVE-2013-0848
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-08-05 20:01:59 +00:00
Michael Niedermayer
70cd3b8e65 mmvideo: check horizontal coordinate too
Fixes out of array accesses.

Bug-Id: CVE-2013-3672
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-08-05 19:16:12 +00:00
Clément Bœsch
97478ef5fe avfilter/select: fix "t" eval variable comment 2014-08-05 21:15:13 +02:00
Clément Bœsch
eaeb61c3a6 avfilter/select: remove optional avcodec dependency 2014-08-05 21:05:53 +02:00
Clément Bœsch
164b7ccf21 avfilter/mp_decimate: remove avcodec dependency 2014-08-05 21:05:52 +02:00
Clément Bœsch
def03d3439 avfilter/deshake: remove avcodec dependency 2014-08-05 21:05:52 +02:00
Clément Bœsch
f50ec59751 build: remove wrong avcodec dep in decimate
This was probably a mistake with mpdecimate. The decimate filter doesn't
depend on avcodec.
2014-08-05 21:05:52 +02:00
Clément Bœsch
28a2107a8d avutil: add pixelutils API 2014-08-05 21:05:52 +02:00
Michael Niedermayer
6931d12745 Merge commit '849b9d34c7ef70b370c53e7af3940f51cbc07d0f'
* commit '849b9d34c7ef70b370c53e7af3940f51cbc07d0f':
  wmalosslessdec: fix mclms_coeffs* array size

See: ec9578d54d
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-05 19:41:19 +02:00
Michael Niedermayer
00d2346885 Merge commit '15201e256035a3e8f9d3d7b96fc327467e1a8ead'
* commit '15201e256035a3e8f9d3d7b96fc327467e1a8ead':
  configure: check $as first before using $gas as GNU as

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-05 19:31:08 +02:00
Michael Niedermayer
0160fe454c Merge commit 'd395895cdb2ac8c95bd488549e7f893bd4dcc248'
* commit 'd395895cdb2ac8c95bd488549e7f893bd4dcc248':
  fate: generate tests/pixfmts.mak for all targets requiring it

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-05 19:10:51 +02:00
Michael Niedermayer
592a854f8c avformat/iff: Fix "source comment"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-05 18:16:46 +02:00
Michael Niedermayer
2569227689 avfilter/vf_noise: make constant things const
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-05 17:04:13 +02:00
Michael Niedermayer
849b9d34c7 wmalosslessdec: fix mclms_coeffs* array size
Fixes corruption of context

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
Bug-Id: CVE-2014-2098
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-08-05 14:58:03 +00:00
mrskman
6f3e15af84 avfilter/avf_showwaves: New p2p mode for showwaves filter
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-05 14:12:35 +02:00
Michael Niedermayer
a53a107a2f Merge commit '0897d2fdc7755849c3ae58d8b543ef734c200d3c'
* commit '0897d2fdc7755849c3ae58d8b543ef734c200d3c':
  movenc: Add option to disable nero chapters

Conflicts:
	doc/muxers.texi

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-05 13:58:10 +02:00
Michael Niedermayer
2e2e6b1be5 Merge commit '2601a9447efb778930b01ac58d2cc1d02498db4e'
* commit '2601a9447efb778930b01ac58d2cc1d02498db4e':
  mpegts: Add HEVC definitions

Conflicts:
	libavformat/mpegts.h

See: b2880a3de9
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-05 13:52:32 +02:00
Michael Niedermayer
94d4f9d405 Merge commit '89616408e38ac7257e36976723df0e23d6ee1157'
* commit '89616408e38ac7257e36976723df0e23d6ee1157':
  mpegts: Define the section length with a constant

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-05 13:45:26 +02:00
Michael Niedermayer
9988899993 Merge commit '701e8b42e12ad625c64ceae2252acb1de390278c'
* commit '701e8b42e12ad625c64ceae2252acb1de390278c':
  vc-1: Optimise parser (with special attention to ARM)

Conflicts:
	libavcodec/vc1_parser.c

See: a0d7f9ec9a
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-05 13:37:07 +02:00
Janne Grunau
15201e2560 configure: check $as first before using $gas as GNU as
llvm's integrated assembler supports the AArch64 asm on darwin since
August 2014. So check $as first before using gas-preprocessor.pl via
$gas. Makes the checks specific for that the architecture specific asm
needs. PPC Altivec and AArch64 needs on ':vararg' for macro arguments.
Arm needs in addition the '.altmacro' directive.
2014-08-05 13:11:50 +02:00
Michael Niedermayer
bf7ed956ff Merge commit 'adf8227cf4e7b4fccb2ad88e1e09b6dc00dd00ed'
* commit 'adf8227cf4e7b4fccb2ad88e1e09b6dc00dd00ed':
  vc-1: Add platform-specific start code search routine to VC1DSPContext.

Conflicts:
	configure
	libavcodec/arm/vc1dsp_init_arm.c
	libavcodec/vc1dsp.c
	libavcodec/vc1dsp.h

See: 9d8ecdd8ca
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-05 13:00:41 +02:00
Michael Niedermayer
77aafadc56 Merge commit 'db7f1c7c5a1d37e7f4da64a79a97bea1c4b6e9f8'
* commit 'db7f1c7c5a1d37e7f4da64a79a97bea1c4b6e9f8':
  h264: Move start code search functions into separate source files.

Conflicts:
	libavcodec/arm/Makefile
	libavcodec/arm/h264dsp_init_arm.c
	libavcodec/h264_parser.c
	libavcodec/h264dsp.c
	libavcodec/startcode.c
	libavcodec/startcode.h

See: 270cede3f3
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-05 12:46:10 +02:00
Janne Grunau
d395895cdb fate: generate tests/pixfmts.mak for all targets requiring it
All subtargets which should run the fate-filter-pixdesc% need to
generate and include tests/pixfmts.mak. Most noteable missing target was
fate itself.
2014-08-05 12:18:59 +02:00
John Stebbins
0897d2fdc7 movenc: Add option to disable nero chapters
And add flag to muxer documentation.
Nero chapters break some taggers (mp3tag and iTunes).

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-08-05 11:36:08 +02:00
Femi Adeyemi-Ejeye
2601a9447e mpegts: Add HEVC definitions
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-08-05 11:30:50 +02:00
James Almer
de417982e8 x86/vp9lpf: use fewer instructions in SPLATB_MIX
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-05 02:47:54 +02:00
Bernd Kuhls
bf6c84d7eb Fix compile error on bfin.
After the removal of all Blackfin architecture optimizations in
http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b55d3bbeed375f7b74442c4dd274d116a3e3d2e1
some includes were left behind leading to a compile error:

CC      libavformat/adtsenc.o
In file included from ./libavcodec/get_bits.h:35,
                 from ./libavcodec/ac3_parser.h:27,
                 from libavformat/ac3dec.c:23:
./libavcodec/mathops.h:43:29: error: bfin/mathops.h: No such file or directory

This compile error was found by buildroot autobuild system:
http://autobuild.buildroot.net/results/ae0/ae056f267e907091d09d2a1546d6f1ae02fa23b9/

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-05 01:54:47 +02:00
Michael Niedermayer
aee99a5d44 swscale/swscale_internal: fix ya16 -> rgba
Fixes Ticket644

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-05 01:51:11 +02:00
Thilo Borgmann
86b7821e29 lavd/avfoundation: Add device category.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-05 01:36:26 +02:00
Michael Niedermayer
76bf39ab4b Merge commit 'eee813eec7d3c0b0689f80665d3f796401742935'
* commit 'eee813eec7d3c0b0689f80665d3f796401742935':
  fate: Only generate tests/pixfmts.mak if some pixfmts fate test is run

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-05 01:20:20 +02:00
Michael Niedermayer
debb88776c Merge commit '990e2f3555bb0adae122d3599938ddcfee46e2d1'
* commit '990e2f3555bb0adae122d3599938ddcfee46e2d1':
  avcodec: Suppress deprecation warnings from DTG code scheduled for removal

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-05 01:15:11 +02:00
Michael Niedermayer
6b646fb9e2 Merge commit '086a541857812b2e0435db38fbabfddc7d19e53c'
* commit '086a541857812b2e0435db38fbabfddc7d19e53c':
  fate: png-suite

Conflicts:
	tests/fate/image.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-05 00:53:50 +02:00
Michael Niedermayer
700bf1fa4e swscale/swscale_unscaled: fix ya16 input
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-05 00:33:27 +02:00
Michael Niedermayer
8f83fb9991 Merge commit '60cbd6ad84de0931314030b81df87b69d6196587'
* commit '60cbd6ad84de0931314030b81df87b69d6196587':
  tiff: support reading gray+alpha at 8 bits

Conflicts:
	libavcodec/tiff.c

See: f746f37901
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 22:52:01 +02:00
Michael Niedermayer
47080b6d17 Merge commit 'bcc5f69b33e27b5e11aaea8304ee02f8d895cdab'
* commit 'bcc5f69b33e27b5e11aaea8304ee02f8d895cdab':
  tiff: support reading gray+alpha at 16 bits

Conflicts:
	libavcodec/tiff.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 22:45:33 +02:00
Michael Niedermayer
59412e3a07 Merge commit 'e64f0bf2d2b1347ec9461f0e82852a62e8c6ffbe'
* commit 'e64f0bf2d2b1347ec9461f0e82852a62e8c6ffbe':
  png: support reading gray+alpha at 16 bits

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 22:38:12 +02:00
Michael Niedermayer
e1795bc380 Merge commit '2257165bff243534982f4ddabae4e65e2a35f2ab'
* commit '2257165bff243534982f4ddabae4e65e2a35f2ab':
  png: disable broken MMX/SIMD code for bpp <= 2

See: d1c48025a7
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 22:34:52 +02:00
Michael Niedermayer
2f5bf2f7f2 Merge commit 'f84a1b597c29dc035b8d5529ef88c2d7ff057820'
* commit 'f84a1b597c29dc035b8d5529ef88c2d7ff057820':
  swscale: support AV_PIX_FMT_YA16 as input

Conflicts:
	libswscale/swscale_unscaled.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 22:32:13 +02:00
Luca Barbato
89616408e3 mpegts: Define the section length with a constant
The specification says the value is expressed in 10 bits including
the 4-byte CRC.
2014-08-04 22:22:54 +02:00
Ben Avison
701e8b42e1 vc-1: Optimise parser (with special attention to ARM)
The previous implementation of the parser made four passes over each input
buffer (reduced to two if the container format already guaranteed the input
buffer corresponded to frames, such as with MKV). But these buffers are
often 200K in size, certainly enough to flush the data out of L1 cache, and
for many CPUs, all the way out to main memory. The passes were:

1) locate frame boundaries (not needed for MKV etc)
2) copy the data into a contiguous block (not needed for MKV etc)
3) locate the start codes within each frame
4) unescape the data between start codes

After this, the unescaped data was parsed to extract certain header fields,
but because the unescape operation was so large, this was usually also
effectively operating on uncached memory. Most of the unescaped data was
simply thrown away and never processed further. Only step 2 - because it
used memcpy - was using prefetch, making things even worse.

This patch reorganises these steps so that, aside from the copying, the
operations are performed in parallel, maximising cache utilisation. No more
than the worst-case number of bytes needed for header parsing is unescaped.
Most of the data is, in practice, only read in order to search for a start
code, for which optimised implementations already existed in the H264 codec
(notably the ARM version uses prefetch, so we end up doing both remaining
passes at maximum speed). For MKV files, we know when we've found the last
start code of interest in a given frame, so we are able to avoid doing even
that one remaining pass for most of the buffer.

In some use-cases (such as the Raspberry Pi) video decode is handled by the
GPU, but the entire elementary stream is still fed through the parser to
pick out certain elements of the header which are necessary to manage the
decode process. As you might expect, in these cases, the performance of the
parser is significant.

To measure parser performance, I used the same VC-1 elementary stream in
either an MPEG-2 transport stream or a MKV file, and fed it through avconv
with -c:v copy -c:a copy -f null. These are the gperftools counts for
those streams, both filtered to only include vc1_parse() and its callees,
and unfiltered (to include the whole binary). Lower numbers are better:

                Before          After
File  Filtered  Mean   StdDev   Mean   StdDev  Confidence  Change
M2TS  No        861.7  8.2      650.5  8.1     100.0%      +32.5%
MKV   No        868.9  7.4      731.7  9.0     100.0%      +18.8%
M2TS  Yes       250.0  11.2     27.2   3.4     100.0%      +817.9%
MKV   Yes       149.0  12.8     1.7    0.8     100.0%      +8526.3%

Yes, that last case shows vc1_parse() running 86 times faster! The M2TS
case does show a larger absolute improvement though, since it was worse
to begin with.

This patch has been tested with the FATE suite (albeit on x86 for speed).

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-08-04 22:22:54 +02:00
Ben Avison
adf8227cf4 vc-1: Add platform-specific start code search routine to VC1DSPContext.
Initialise VC1DSPContext for parser as well as for decoder.
Note, the VC-1 code doesn't actually use the function pointer yet.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-08-04 22:22:54 +02:00
Ben Avison
db7f1c7c5a h264: Move start code search functions into separate source files.
This permits re-use with parsers for codecs which use similar start codes.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-08-04 22:22:54 +02:00
Michael Niedermayer
6017c98036 Merge commit 'e9abafca278f87e1ecc6d50091d99b73ff63c9a6'
* commit 'e9abafca278f87e1ecc6d50091d99b73ff63c9a6':
  avutil: add AV_PIX_FMT_YA16 pixel format

Conflicts:
	libavutil/pixdesc.c
	libavutil/pixfmt.h
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 22:12:24 +02:00
Michael Niedermayer
4c8bc6fdee Merge commit 'e96c3b81cadd0ba84d43b1f3a54980df3785d9a5'
* commit 'e96c3b81cadd0ba84d43b1f3a54980df3785d9a5':
  avutil: rename AV_PIX_FMT_Y400A to AV_PIX_FMT_YA8

Conflicts:
	libavcodec/libopenjpegdec.c
	libavcodec/libopenjpegenc.c
	libavcodec/raw.c
	libavutil/pixdesc.c
	libavutil/pixfmt.h
	libavutil/version.h
	libswscale/swscale_internal.h
	libswscale/swscale_unscaled.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 21:48:00 +02:00
Michael Niedermayer
0b25261d29 Merge commit 'e0d73fda361729d207e51fa2afd8ba6102e58d98'
* commit 'e0d73fda361729d207e51fa2afd8ba6102e58d98':
  avutil: add alias names for gray 8/16 colour spaces

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 21:33:29 +02:00
Michael Niedermayer
073c074447 Merge commit 'd2962e9f89cca6ff40f0c9d5ffc9c4397b8b1b26'
* commit 'd2962e9f89cca6ff40f0c9d5ffc9c4397b8b1b26':
  pixdesc: Support pixelformat aliases

Conflicts:
	doc/APIchanges
	libavutil/pixdesc.c
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 21:32:03 +02:00
Michael Niedermayer
8862c49661 Merge commit '5420099cab1e915b191cceccec4364f54cec6e52'
* commit '5420099cab1e915b191cceccec4364f54cec6e52':
  swscale: correctly pad destination buffer in rgb conversion

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 21:18:17 +02:00
Diego Biurrun
eee813eec7 fate: Only generate tests/pixfmts.mak if some pixfmts fate test is run 2014-08-04 11:08:35 -07:00
Diego Biurrun
990e2f3555 avcodec: Suppress deprecation warnings from DTG code scheduled for removal 2014-08-04 11:08:35 -07:00
Michael Niedermayer
4e855c11b5 avformat/util: change av_find_default_stream_index() to use a score based system
Disfavor video streams with unknown resolution and no packets
Fixes seeking in audio-only-speex.flv

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 18:06:26 +02:00
Christophe Gisquet
e8c003edd2 x86: hevc_deblock: remove unnecessary masking
The unpacks/shuffles later on makes it unnecessary.

Before:
1508 decicycles in h, 2096759 runs, 393 skips
2512 decicycles in v, 2095422 runs, 1730 skips

After:
1477 decicycles in h, 2096745 runs, 407 skips
2484 decicycles in v, 2095297 runs, 1855 skips

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 17:46:04 +02:00
James Almer
b7863c972c x86/hevc_mc: use fewer instructions in hevc_put_hevc_{uni, bi}_w[24]_{8, 10, 12}
Signed-off-by: James Almer <jamrial@gmail.com>
Reviewed-by: Christophe Gisquet <christophe.gisquet@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 14:47:15 +02:00
James Almer
b1a44e6bf5 x86/hevc_mc: remove an unnecessary pxor
Signed-off-by: James Almer <jamrial@gmail.com>
Reviewed-by: Mickaël Raulet <mraulet@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 14:35:08 +02:00
Michael Niedermayer
fac292b8cd Merge commit '23dfa00b88fc927d4c1854ab4fc60f5c6398f3ac'
* commit '23dfa00b88fc927d4c1854ab4fc60f5c6398f3ac':
  fate: explicitly set the default THREADS value

Conflicts:
	tests/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 14:23:46 +02:00
Michael Niedermayer
491c52d3b0 Merge commit 'eb9244f20210fd420fb9b3c98126f9cae525d1cc'
* commit 'eb9244f20210fd420fb9b3c98126f9cae525d1cc':
  Add Icecast protocol

Conflicts:
	Changelog
	configure
	doc/protocols.texi
	libavformat/icecast.c
	libavformat/version.h

See: e3dc2c86fc
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 14:14:13 +02:00
Vittorio Giovara
086a541857 fate: png-suite
Every supported format is converted to RGB.
2014-08-04 12:57:39 +01:00
Carl Eugen Hoyos
60cbd6ad84 tiff: support reading gray+alpha at 8 bits
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-08-04 12:57:39 +01:00
Vittorio Giovara
bcc5f69b33 tiff: support reading gray+alpha at 16 bits 2014-08-04 12:57:38 +01:00
Vittorio Giovara
e64f0bf2d2 png: support reading gray+alpha at 16 bits 2014-08-04 12:57:38 +01:00
Vittorio Giovara
2257165bff png: disable broken MMX/SIMD code for bpp <= 2
The decoder was producing different results when ASM was disabled.
Based on a long debug session with Kostya.
2014-08-04 12:57:38 +01:00
Vittorio Giovara
f84a1b597c swscale: support AV_PIX_FMT_YA16 as input
Based on a long debug session with Kostya.
2014-08-04 12:56:05 +01:00
Vittorio Giovara
e9abafca27 avutil: add AV_PIX_FMT_YA16 pixel format 2014-08-04 12:55:08 +01:00
Vittorio Giovara
e96c3b81ca avutil: rename AV_PIX_FMT_Y400A to AV_PIX_FMT_YA8
The rationale is that you have a packed format in form
<greyscale sample> <alpha sample> <greyscale sample> <alpha sample>
and shortening greyscale to 'G' might make one thing about Greenscale instead.
An alias pixel format and color space name are provided for compatibility.
2014-08-04 12:55:08 +01:00
Vittorio Giovara
e0d73fda36 avutil: add alias names for gray 8/16 colour spaces 2014-08-04 12:55:08 +01:00
Luca Barbato
d2962e9f89 pixdesc: Support pixelformat aliases
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-08-04 12:55:07 +01:00
Kostya Shishkov
5420099cab swscale: correctly pad destination buffer in rgb conversion
Bug-Id: 772
CC: libav-stable@libav.org
Found-By: Justin Ruggles <justin.ruggles@gmail.com>
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-08-04 12:55:07 +01:00
ePirat
e3dc2c86fc libavformat: Add Icecast protocol
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 13:33:44 +02:00
Michael Niedermayer
7d03732f7e ffmpeg: Do not fail if a demuxer and decoder use the same option identifer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 13:33:44 +02:00
Michael Niedermayer
22a0249deb Merge commit 'bb41115d56930b9f5d59e79dca254d1201246967'
* commit 'bb41115d56930b9f5d59e79dca254d1201246967':
  imgutils: Do not declare avpriv_set_systematic_pal2 in the public header

Conflicts:
	libavutil/internal.h
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 12:41:15 +02:00
Janne Grunau
23dfa00b88 fate: explicitly set the default THREADS value
This makes the default of '1' more explicit than defaulting to '1' in
fate-run.sh and regression-funcs.sh if THREADS is not set.
Fixes the reported thread count in fate-cpu if THREADS is not set.
2014-08-04 12:20:56 +02:00
Marvin Scholz
eb9244f202 Add Icecast protocol
Icecast is basically a convenience wrapper around the HTTP protocol.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-08-04 12:56:42 +03:00
Diego Biurrun
bb41115d56 imgutils: Do not declare avpriv_set_systematic_pal2 in the public header 2014-08-04 02:52:33 -07:00
Michael Niedermayer
71d008ebe4 Merge commit '1ef9e8376466bb1e2c147e47554b94cab9c8b04a'
* commit '1ef9e8376466bb1e2c147e47554b94cab9c8b04a':
  avcodec: Deprecate dtg_active_format field in favor of avframe side-data

Conflicts:
	doc/APIchanges
	libavcodec/avcodec.h
	libavcodec/mpeg12dec.c
	libavcodec/version.h
	libavfilter/vf_showinfo.c
	libavutil/frame.h
	libavutil/version.h

See: 2a3c36e920
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 06:11:34 +02:00
Kieran Kunhya
2a3c36e920 Deprecate AFD field and add AFD as side-data
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 05:36:44 +02:00
Michael Niedermayer
2793b218bd Merge commit 'd0393d79bc3d61c9f2ff832c0e273b7774ff0269'
* commit 'd0393d79bc3d61c9f2ff832c0e273b7774ff0269':
  huffyuv: Check and propagate function return values

Conflicts:
	libavcodec/huffyuvdec.c

See: f67a0d1152
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 05:29:55 +02:00
Michael Niedermayer
d5fde13bd2 Merge commit '6234058148d6e1ee765913b678a22385a87bffac'
* commit '6234058148d6e1ee765913b678a22385a87bffac':
  huffyuv: Return proper error codes

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 04:58:13 +02:00
Michael Niedermayer
2b9044a6f0 Merge commit '3160bdc7f7bc27bb67561270b4e730cd2d844afd'
* commit '3160bdc7f7bc27bb67561270b4e730cd2d844afd':
  huffyuv: Use avpriv_report_missing_feature() where appropriate

Conflicts:
	libavcodec/huffyuvdec.c

Not merged, the error messages are not about missing support of features
of the input file. avpriv_report_missing_feature() speaks about
"... your file has a feature which has not been implemented"
Thats would simply not be correct

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 04:55:49 +02:00
Michael Niedermayer
e9cd8f4d20 Merge commit 'b7616f5716dce68c749d5dfeab19cf595a11807c'
* commit 'b7616f5716dce68c749d5dfeab19cf595a11807c':
  huffyuv: Eliminate some pointless casts

Conflicts:
	libavcodec/huffyuvdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 04:42:04 +02:00
Michael Niedermayer
c1e7fb60d1 Merge commit 'c065f4a0c652cc569c927c95148111b3aa2962dc'
* commit 'c065f4a0c652cc569c927c95148111b3aa2962dc':
  huffyuv: K&R formatting cosmetics

Conflicts:
	libavcodec/huffyuvdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 04:34:17 +02:00
Michael Niedermayer
2aeeb3ba1f Merge commit 'f89d76c10355242c39b08f253c1d1524f45ef778'
* commit 'f89d76c10355242c39b08f253c1d1524f45ef778':
  mpeg4video: Initialize xvididct for all threads

Conflicts:
	libavcodec/mpeg4videodec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 04:14:43 +02:00
Michael Niedermayer
66eacd5580 Merge commit 'a238b83b13640e3192d7d4aaad2242f13a9a84a1'
* commit 'a238b83b13640e3192d7d4aaad2242f13a9a84a1':
  aarch64: use MACH-O const data asm directive in const macro

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 04:06:34 +02:00
Michael Niedermayer
7fd60d1e7a Merge commit 'ac6b95dbc0b53b3ea461bd5e5e7f7f31d2983733'
* commit 'ac6b95dbc0b53b3ea461bd5e5e7f7f31d2983733':
  aarch64: add ',' between assembler macro arguments where missing

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 04:06:13 +02:00
Michael Niedermayer
7fd7aa6b2b Merge commit 'caf5ef852bf71984d3322bbeaf48cfb04ac8255f'
* commit 'caf5ef852bf71984d3322bbeaf48cfb04ac8255f':
  cpu-test: test av_cpu_count

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 04:05:36 +02:00
Michael Niedermayer
01fc6533aa Merge commit '07d8fa58121be8fe315bd51ab760547fe209a745'
* commit '07d8fa58121be8fe315bd51ab760547fe209a745':
  fate: add informative cpu test

Conflicts:
	tests/fate/libavutil.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 03:51:17 +02:00
Michael Niedermayer
b4d4f8f826 Merge commit '6a463e7fb4f028c52d2e2d054f9483f4fff492bc'
* commit '6a463e7fb4f028c52d2e2d054f9483f4fff492bc':
  http: Refactor http_open_cnx

See: c2a170ac0d
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 03:44:11 +02:00
Rodger Combs
c2a170ac0d avformat/http: fix tls/tcp protocol after a 302 move in https
Fixes ticket 3824

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 03:33:40 +02:00
Michael Niedermayer
05ff1a2c05 swresample/swresample: Treat mono as planar
This might in some cases improve performance.

Idea from: fbc0b86599
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 03:05:05 +02:00
Michael Niedermayer
c62fea7574 Merge commit 'fbc0b8659967ea54a8472b5f795270d38bb085dd'
* commit 'fbc0b8659967ea54a8472b5f795270d38bb085dd':
  lavr: Do not change the sample format for mono audio

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 02:49:48 +02:00
Michael Niedermayer
8f6d36b3cb avutil/mem: document NULL related saftey of av_freep()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 02:34:54 +02:00
Kieran Kunhya
1ef9e83764 avcodec: Deprecate dtg_active_format field in favor of avframe side-data
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-08-03 15:43:02 -07:00
Diego Biurrun
d0393d79bc huffyuv: Check and propagate function return values
Bug-Id: CVE-2013-0868

inspired by a patch from Michael Niedermayer <michaelni@gmx.at>
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Diego Biurrun <diego@biurrun.de>

CC: libav-stable@libav.org
2014-08-03 15:35:30 -07:00
Diego Biurrun
6234058148 huffyuv: Return proper error codes 2014-08-03 15:18:58 -07:00
Diego Biurrun
3160bdc7f7 huffyuv: Use avpriv_report_missing_feature() where appropriate 2014-08-03 15:18:58 -07:00
Diego Biurrun
b7616f5716 huffyuv: Eliminate some pointless casts 2014-08-03 15:18:58 -07:00
Diego Biurrun
c065f4a0c6 huffyuv: K&R formatting cosmetics 2014-08-03 15:18:58 -07:00
Anton Khirnov
f89d76c103 mpeg4video: Initialize xvididct for all threads
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-08-03 15:18:58 -07:00
Janne Grunau
a238b83b13 aarch64: use MACH-O const data asm directive in const macro 2014-08-04 00:17:21 +02:00
Janne Grunau
ac6b95dbc0 aarch64: add ',' between assembler macro arguments where missing
llvm's integrated assembler does not accept spaces as macro argument
delimiter when targeting darwin. Using a explicit delimiter is a good
idea in principle since it makes case like 'macro 4 -2' vs 'macro 4 - 2'
clear.
2014-08-04 00:17:21 +02:00
Janne Grunau
caf5ef852b cpu-test: test av_cpu_count
Add CPU count and number threads as informative values for fate.
2014-08-04 00:17:21 +02:00
Janne Grunau
07d8fa5812 fate: add informative cpu test
libavutil/cpu-test prints raw and effective cpu flags to STDERR. Detected
cpu flags can be useful for debugging fate errors.

No comparison of the result against a expected result since that would
require fate config specific references.
2014-08-04 00:17:21 +02:00
Michael Niedermayer
a7e87fef21 avfilter/vf_spp: Use dct->get_pixels()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-03 23:36:01 +02:00
Michael Niedermayer
e680c731a2 avcodec/avdct: Add get_pixels()
Suggested-by: ubitux
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-03 23:34:35 +02:00
Luca Barbato
6a463e7fb4 http: Refactor http_open_cnx
Split return value handling from the actual opening.

Incidentally fixes the https -> http redirect issue reported by
Compn on behalf of rcombs.

CC: libav-stable@libav.org
2014-08-03 23:13:27 +02:00
Justin Ruggles
fbc0b86599 lavr: Do not change the sample format for mono audio
This treats mono as planar internally within libavresample rather
than changing the sample format.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-08-03 23:13:26 +02:00
Michael Niedermayer
9400603140 Merge commit '9f17685dfb70a73823aca16ad246ee3b831d1de8'
* commit '9f17685dfb70a73823aca16ad246ee3b831d1de8':
  avcodec: Deprecate unused defines and options

Conflicts:
	doc/APIchanges
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-03 20:53:00 +02:00
Michael Niedermayer
76aec9e6b4 Merge commit 'bad81800bb51f43d28d656abf5d45b477e3b3198'
* commit 'bad81800bb51f43d28d656abf5d45b477e3b3198':
  avcodec: options: Add missing deprecation ifdefs around emu_edge

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-03 19:45:38 +02:00
Michael Niedermayer
85aaa4e6d5 Merge commit '072916d903d3a925bcd0c864f12254157cab63c1'
* commit '072916d903d3a925bcd0c864f12254157cab63c1':
  filtfmts: Replace deprecated uses of AVFilterPad

Conflicts:
	libavfilter/filtfmts.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-03 19:35:08 +02:00
Michael Niedermayer
f1d6fc7794 Merge commit '6a928293dd29c7f0dcf09107980a1d651c9957df'
* commit '6a928293dd29c7f0dcf09107980a1d651c9957df':
  examples: filter_audio: Add missing mem.h header for av_freep()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-03 19:18:25 +02:00
Michael Niedermayer
e896a5bdd6 Merge commit 'c6a1ac2dd9808a4753dd005ab5747dda68ab454f'
* commit 'c6a1ac2dd9808a4753dd005ab5747dda68ab454f':
  vf_fps: Replace use of deprecated AVFilterBufferRef by AVFrame

See: a05a44e205
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-03 19:12:14 +02:00
Michael Niedermayer
2212bff9a2 Merge commit 'c697c590fbf296b1679b80c8f4071e4c8a6c884b'
* commit 'c697c590fbf296b1679b80c8f4071e4c8a6c884b':
  lcl: Disentangle pointers to input data and decompression buffer

Conflicts:
	libavcodec/lcldec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-03 18:58:19 +02:00
Michael Niedermayer
149c1a26c4 Merge commit 'df507d5aa063c2ce31fac9f76c6f3bbe9a20c445'
* commit 'df507d5aa063c2ce31fac9f76c6f3bbe9a20c445':
  tiff: Replace deprecated PIX_FMT names by modern ones

Conflicts:
	libavcodec/tiff.c

See: ac627b3d38
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-03 18:38:17 +02:00
Michael Niedermayer
b7f8d3de2c Merge commit '7835c24e19d9e1cb43fba5a02ce9d81d518f1300'
* commit '7835c24e19d9e1cb43fba5a02ce9d81d518f1300':
  dv: Update DV-profile-related functions to current public API

Conflicts:
	libavcodec/dvdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-03 18:29:38 +02:00
Michael Niedermayer
6cdf409884 avformat/mpegtsenc: do not flush after everything
there is flushing code in the avformat core that does this in a more
controlled way.

Fixes ticket2748

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-03 18:10:04 +02:00
Michael Niedermayer
fee982048e avformat/mux: flush after header writing, like after packets
This makes problematic unconditional flushes in mpegts redundant
And is thus part of a fix for ticket 2748

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-03 18:10:04 +02:00
Michael Niedermayer
b4d525eb63 avcodec/pnm: check buf[0] before using buf[1]
Fixes CSA warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-03 14:01:03 +02:00
Diego Biurrun
9f17685dfb avcodec: Deprecate unused defines and options 2014-08-03 03:24:16 -07:00
Diego Biurrun
bad81800bb avcodec: options: Add missing deprecation ifdefs around emu_edge 2014-08-03 03:24:15 -07:00
Diego Biurrun
072916d903 filtfmts: Replace deprecated uses of AVFilterPad
Also add missing mem.h header for av_freep().
2014-08-03 03:23:51 -07:00
Michael Niedermayer
4fed019821 avcodec/takdec: remove unused variable
Found-by: CSA
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-03 11:35:25 +02:00
Michael Niedermayer
7dbc27dc1d avcodec/takdec: move tmp declaration to where its used
Makes the code a bit easier to read

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-03 11:34:51 +02:00
Stefano Sabatini
ac1e3882cc doc/ffserver: merge paragraph starting with "What happens next?" with previous one
The name of the paragraph sounded a bit silly, and its text is small so
it's better to merge it with the previous paragraph.
2014-08-03 11:27:27 +02:00
Diego Biurrun
6a928293dd examples: filter_audio: Add missing mem.h header for av_freep() 2014-08-03 01:29:43 -07:00
Diego Biurrun
c6a1ac2dd9 vf_fps: Replace use of deprecated AVFilterBufferRef by AVFrame 2014-08-03 01:29:43 -07:00
Diego Biurrun
c697c590fb lcl: Disentangle pointers to input data and decompression buffer
This is cleaner and avoids a cast plus a related const qualifier warning.
2014-08-03 01:29:43 -07:00
James Almer
d0f56ca071 x86/hevc_deblock: improve 8bit transpose store macros
Up to four instructions less depending on function and instruction set.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-03 04:24:15 +02:00
Michael Niedermayer
2e6fdcb7f3 avformat/tee: flip assigment direction
Found-by: CSA
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-03 03:18:52 +02:00
Clément Bœsch
ee7ee9b1b4 avcodec/mpeg12dec: fix vissible typo after 17c65651 2014-08-03 00:02:23 +02:00
Michael Niedermayer
17c6565186 avcodec/mpeg12dec: Document Ticket3809 fix
Suggested-by: Reimar
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-02 23:10:23 +02:00
Michael Niedermayer
c103c48525 avcodec/error_resilience: make error an local variable where possible
This makes the code easier to understand as the scope of the variable is
smaller.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-02 22:04:08 +02:00
Michael Niedermayer
459996325d avcodec/error_resilience: comment out unused assignment
Its not removed as the code which uses this is out-commented too.

Found-by: CSA
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-02 22:01:59 +02:00
Diego Biurrun
df507d5aa0 tiff: Replace deprecated PIX_FMT names by modern ones 2014-08-02 12:54:37 -07:00
Diego Biurrun
7835c24e19 dv: Update DV-profile-related functions to current public API 2014-08-02 12:54:37 -07:00
Michael Niedermayer
d73371b58c avcodec/mmvideo: remove unused return value and assignment
Found-by: CSA
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-02 21:46:24 +02:00
Michael Niedermayer
08b6591cf6 avcodec/avuienc: move pointer declaration to where its used
Found-by: CSA
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-02 20:13:08 +02:00
Michael Niedermayer
17fef17f67 avfilter/lavfutils: remove redundant variable init
Found-by: CSA
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-02 20:03:10 +02:00
Michael Niedermayer
146e498c9e Merge commit 'ffa4d4ef0bd66c4e8bde7357b69bdedc78123ea8'
* commit 'ffa4d4ef0bd66c4e8bde7357b69bdedc78123ea8':
  ppc: fft: Build AltiVec optimizations in the standard way

Conflicts:
	libavcodec/ppc/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-02 19:40:18 +02:00
Michael Niedermayer
1d8d21b90a ffserver: initialize pbuffer in prepare_sdp_description()
also check pbuffer before use

Found-by: CSA
Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-02 18:32:37 +02:00
Michael Niedermayer
e706fe7640 avcodec/wavpackenc: Fix log2sample() result value
Found-by: CSA
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-02 18:15:12 +02:00
Michael Niedermayer
2b501b553f avformat/dtsdec: skip the first 4k in dts_probe()
DTS primarly needs to be separated from PCM, and PCM can contain cliping and
overshoots at the very start which can mimic DTS headers.

If this isnt sufficient then more of the DTS stream has to be decoded
and analyzed

Fixes ticket3784

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-02 17:25:04 +02:00
Michael Niedermayer
e6fabd6e9b avformat/dtsdec: fix signedness in reference pcm highpass in dts_probe()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-02 17:24:42 +02:00
Michael Niedermayer
dd551dc7ff avformat/dtsdec: count LE and BE separately in dts_probe()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-02 17:21:03 +02:00
Diego Biurrun
ffa4d4ef0b ppc: fft: Build AltiVec optimizations in the standard way 2014-08-02 07:40:37 -07:00
Matthew Oliver
66627075d9 msvc: fix implicitly declared read/close.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-02 14:52:17 +02:00
Michael Niedermayer
3fa9692ae2 avcodec/hevc: move HEVCLocalContext declaration into loop
Found-by: CSA
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-02 05:15:57 +02:00
Michael Niedermayer
92be540636 avcodec/h264_parser: remove redundant assignment
Found-by: CSA
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-02 05:14:18 +02:00
Michael Niedermayer
e85bc9df87 Merge commit 'f0e959481968b6d906931127237ed981b6414f6e'
* commit 'f0e959481968b6d906931127237ed981b6414f6e':
  af_channelmap: Set the frame channel layout

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-02 04:47:31 +02:00
Michael Niedermayer
dcd984e24d Merge commit '87efaa97ceb0ad5820870855d6df3e569e6eac7e'
* commit '87efaa97ceb0ad5820870855d6df3e569e6eac7e':
  af_join: Set the output frame format

See: e0dd8cadcc
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-02 04:45:26 +02:00
Michael Niedermayer
98e42a249e avformat/format: Check for av_guess_format() failure
Fixes null pointer dereference
Fixes Ticket3812

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-02 04:16:02 +02:00
Michael Niedermayer
26ffa8eaee avformat/format: use av_match_name() in av_guess_codec()
Fixes part of Ticket2236

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-02 03:39:38 +02:00
Michael Niedermayer
956f4087c6 ffmpeg_opt: Use av_guess_codec() instead of AVOutputFormat->*codec
Fixes part of ticket2236

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-02 03:29:42 +02:00
Michael Niedermayer
bcc898dd26 avcodec/dvdsub_parser: print message if packet is smaller than the packet size field
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-02 01:17:24 +02:00
Michael Niedermayer
81c1657a59 avcodec/dvdsub_parser: Check buf_size before reading 32bit packet size
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-02 01:15:37 +02:00
Luca Barbato
f0e9594819 af_channelmap: Set the frame channel layout
Otherwise the frame would show the first layout matching the
channel count.
2014-08-02 00:58:21 +02:00
Luca Barbato
87efaa97ce af_join: Set the output frame format 2014-08-02 00:58:21 +02:00
Michael Niedermayer
cfdb30d2f1 avcodec/dvdsub_parser: never return 0 when the input isnt 0
Fixes a infinite loop
Fixes Ticket3804

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-02 00:27:23 +02:00
Michael Niedermayer
afd62b3f18 Merge commit 'fa14804c83a7108a50c63d1f2180e30c75909529'
* commit 'fa14804c83a7108a50c63d1f2180e30c75909529':
  flv: Index the audio stream

Conflicts:
	libavformat/flvdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-01 21:34:31 +02:00
Michael Niedermayer
f95298c913 avcodec/mpeg12dec: fix support for interlaced mpeg2 with missing last slice
Fixes Ticket3809

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-01 21:10:43 +02:00
Michael Niedermayer
7f852962dc avcodec/mpeg12dec: print the amount of overread
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-01 21:06:13 +02:00
Benoit Fouet
f9bd6d61bc h264_mp4toannexb_bsf: rename first_idr to new_idr
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-01 17:58:30 +02:00
Michael Niedermayer
293124cae8 Merge commit '7ab551f9fd9a63586649a7df8790ddaeac55420f'
* commit '7ab551f9fd9a63586649a7df8790ddaeac55420f':
  h264: prevent theoretical infinite loop in SEI parsing

Conflicts:
	libavcodec/h264_sei.c

Not merged, as this would remove 2 bitstream compliance checks.
The specification does not allow the bitstream to end in the middle
of these variable length elements and we have no samples which
have such non compliant truncation either so its better to error
out. Which is simpler as well

This issue also has been fixed long ago
See: 9decfc17bb

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-01 17:47:15 +02:00
Michael Niedermayer
229a1e8694 Merge commit 'b2e059a1ffbdaaa985c6a7dcdd684fa034725238'
* commit 'b2e059a1ffbdaaa985c6a7dcdd684fa034725238':
  pixdesc: K&R formatting cosmetics

Conflicts:
	libavutil/pixdesc.c
	libavutil/pixdesc.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-01 16:56:42 +02:00
Michael Niedermayer
5727d387fb Merge commit '92a36a6b3338df5f5cff573a486e182005367c24'
* commit '92a36a6b3338df5f5cff573a486e182005367c24':
  pngdec: correctly indent macros

Conflicts:
	libavcodec/pngdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-01 16:48:09 +02:00
Michael Niedermayer
c87f645a75 Merge commit '52269f48e835a52023656f8330262ae70e6061c4'
* commit '52269f48e835a52023656f8330262ae70e6061c4':
  Revert "vf_interlace: deprecate lowpass option"

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-01 16:39:28 +02:00
Michael Niedermayer
79d0e164cf Merge commit '4da8cdbb91ddbac118b79076cad4dc28ba72e86f'
* commit '4da8cdbb91ddbac118b79076cad4dc28ba72e86f':
  tscc: Eliminate pointless variable indirections in decode_frame()

Conflicts:
	libavcodec/tscc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-01 16:34:20 +02:00
Michael Niedermayer
96cea6269a Merge commit '5735552f1f17ea01dcbc99b08f54b5bf52176a8f'
* commit '5735552f1f17ea01dcbc99b08f54b5bf52176a8f':
  pngenc: Drop pointless pointer cast in png_write_row()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-01 16:24:23 +02:00
Michael Niedermayer
f54e01c24e Merge commit 'a786c8259dafeca9744252230b5d78f67810770c'
* commit 'a786c8259dafeca9744252230b5d78f67810770c':
  idct: Split off Xvid IDCT

Conflicts:
	libavcodec/Makefile
	libavcodec/mpeg4videodec.c
	libavcodec/x86/Makefile
	libavcodec/x86/idctdsp_init.c

This split is somewhat restructured leaving the xvid IDCT available
outside mpeg4 if manually selected.

The code also could not be merged unchanged as it conflicted with a
bugfix in FFmpeg

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-01 16:21:52 +02:00
Michael Niedermayer
ad99837b63 Merge commit '03c9f357a4c2307a7913cea2cbf0ba817e80beb6'
* commit '03c9f357a4c2307a7913cea2cbf0ba817e80beb6':
  ppc: idctdsp: Immediately return if no AltiVec is available

Conflicts:
	libavcodec/ppc/idctdsp.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-01 15:11:05 +02:00
Luca Barbato
fa14804c83 flv: Index the audio stream
And leverage the video index if the video is just disabled as wm4
did in an initial patch.
2014-08-01 15:04:51 +02:00
Michael Niedermayer
713dbe0655 Merge commit '706208ef47bffd525c982975d2756f7b2b220b8d'
* commit '706208ef47bffd525c982975d2756f7b2b220b8d':
  fate: Split fate-pixdesc tests and dispatch them through Make

Conflicts:
	tests/fate-run.sh
	tests/ref/fate/filter-pixdesc

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-01 15:03:22 +02:00
Michael Niedermayer
9e052df86d avfilter/vf_pullup: 2nd try to workaround gcc 4.4.3 bug on arm
The first try failed to work with some build flags

The gcc version affected is very old and unmaintained AFAIK thus i made no
attempt to report this to the gcc developers.

The workaround is pushed as it may still affect users and does affect one
fate client

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-01 14:17:53 +02:00
Vittorio Giovara
7ab551f9fd h264: prevent theoretical infinite loop in SEI parsing
Properly address CVE-2011-3946 and parse bitstream as described in the spec.

CC: libav-stable@libav.org
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2014-08-01 13:08:32 +01:00
Luca Barbato
b2e059a1ff pixdesc: K&R formatting cosmetics
Also change some comments to multiline.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-08-01 13:07:53 +01:00
Vittorio Giovara
92a36a6b33 pngdec: correctly indent macros 2014-08-01 13:07:53 +01:00
Vittorio Giovara
52269f48e8 Revert "vf_interlace: deprecate lowpass option"
This reverts commit 35b05c5184.
A warning is introduced in case this option is used.
2014-08-01 13:02:29 +01:00
Diego Biurrun
4da8cdbb91 tscc: Eliminate pointless variable indirections in decode_frame() 2014-08-01 04:08:46 -07:00
Diego Biurrun
5735552f1f pngenc: Drop pointless pointer cast in png_write_row() 2014-08-01 04:08:45 -07:00
Carl Eugen Hoyos
a80191379b Fix standalone compilation of the WebVTT decoder. 2014-08-01 12:50:38 +02:00
Carl Eugen Hoyos
970c7d9b69 Add forgotten APIchanges entry for probesize2.
Update some git hashes.
2014-08-01 12:49:56 +02:00
Benoit Fouet
42f25fe009 h264_mp4toannexb_bsf: always set idr_sps_pps_seen when SPS/PPS is seen.
In order not to break a sequence like "SPS IDR SPS IDR", the boolean
telling that the SPS/PPS has been seen should always be set.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-01 12:20:14 +02:00
Benoit Fouet
66af2a01d2 h264: remove useless assignment.
source index, as well as dest one, is unconditionnaly set afterwards,
before being effectively used.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-01 12:20:01 +02:00
Diego Biurrun
a786c8259d idct: Split off Xvid IDCT
The Xvid IDCT is only required to decode some Xvid-encoded MPEG-4 files,
so there is no point in having it as an unconditional part of idctdsp.
2014-08-01 01:25:18 -07:00
Diego Biurrun
03c9f357a4 ppc: idctdsp: Immediately return if no AltiVec is available
This is how all the other init functions operate.
2014-08-01 01:23:11 -07:00
Diego Biurrun
706208ef47 fate: Split fate-pixdesc tests and dispatch them through Make
This allows running all the tests individually and/or in parallel.
2014-08-01 01:18:30 -07:00
Michael Niedermayer
7db3a46a3d Merge commit 'd98e6c5d5d80c1dfe0c30f2e73d41a3aea0b920d'
* commit 'd98e6c5d5d80c1dfe0c30f2e73d41a3aea0b920d':
  pgssubdec: Check RLE size before copying

See: c0d68be555
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-01 04:46:50 +02:00
Michael Niedermayer
d98e6c5d5d pgssubdec: Check RLE size before copying
Make sure the buffer size does not exceed the expected
RLE size.

Prevent an out of array bound write.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Bug-Id: CVE-2013-0852

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-08-01 02:13:32 +02:00
Lou Logan
d76675d9c0 doc/indevs: mention required configure options
For x11grab, libcdio, and libdc1394 input devices.

Signed-off-by: Lou Logan <lou@lrcd.com>
2014-07-31 15:00:41 -08:00
James Almer
62baf5b853 x86/hevc_deblock: use existing x86util transpose macro in chroma_{10, 12}
Cosmetic change. No measurable difference in speed.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-31 22:56:21 +02:00
Michael Niedermayer
39133efc1b avdevice/oss_audio: Check SNDCTL_DSP_GETFMTS failure, print a warning but continue
Found-by: CSA and Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-31 21:19:15 +02:00
Michael Niedermayer
fc19edd8f5 avfilter/trim: remove duplicate assignment
Found-by: CSA
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-31 20:53:15 +02:00
Michael Niedermayer
a75a60f686 avutil/pixdesc: remove unneeded assignment
Found-by: CSA
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-31 20:44:46 +02:00
Michael Niedermayer
5bedbc3da2 avcodec/diracdec: remove unneeded assignment
Found-by: CSA
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-31 20:40:10 +02:00
Michael Niedermayer
590c2996ee avcodec/flac_parser: remove duplicate assignent
Found-by: CSA
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-31 20:35:54 +02:00
Michael Niedermayer
1af563b5df avcodec/ratecontrol: remove unneeded statement
Found-by: CSA
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-31 20:35:54 +02:00
Reimar Döffinger
f0de01856f dict.c: minor simplification.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-07-31 20:10:29 +02:00
Anshul Maheswhwari
fcb11ec291 v4l2enc: adding AVClass
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-31 18:59:20 +02:00
Michael Niedermayer
0782fb6bcb libavcodec/h264_parser: Increase parse_history, fix huge resolutions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-31 16:39:04 +02:00
Benoit Fouet
bf428bb314 h264_mp4toannexb_bsf: account for consecutive IDR pictures.
If there are consecutive IDR pictures, then SPS/PPS should be prepended
to all of them, not only the first one.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-31 15:59:47 +02:00
Michael Niedermayer
dd200c56c0 avcodec/dvdsubdec: free subtitle rectangles if nothing is output
Fixes assertion failure
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-31 14:17:46 +02:00
Michael Niedermayer
ceff29b9ad avcodec/resample: check for malloc failure
Found-by: CSA
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-31 13:04:28 +02:00
Michael Niedermayer
72555f4a38 avcodec/pthread_slice: Check for malloc failure
Found-by: CSA
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-31 12:56:21 +02:00
Michael Niedermayer
37ec7d291e avcodec/mpeg4video_parser: Check for extradata parsing failure
Found-by: CSA
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-31 12:56:21 +02:00
Gerion Entrup
dc315cdb4e doc: add very basic libcdio documentation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-31 02:54:17 +02:00
Nicolas Martyanoff
467e9d6186 avformat/hlsenc: add some empty lines to make the code easier to read
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-31 00:33:49 +02:00
Nicolas Martyanoff
706fcffce1 avformat/hlsenc: rename some identifers to make the code easier to read
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-31 00:31:49 +02:00
Nicolas Martyanoff
53f10e0368 avformat/hlsenc: Add some comments to make the code easier to read
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-31 00:04:05 +02:00
Michael Niedermayer
a99de9ca2c Merge commit 'a0ce85ac7de098d3f9b53b51b77a09bad700a011'
* commit 'a0ce85ac7de098d3f9b53b51b77a09bad700a011':
  configure: Globally add ZLIB_CONST to CPPFLAGS if zlib is enabled

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-30 23:34:25 +02:00
Diego Biurrun
a0ce85ac7d configure: Globally add ZLIB_CONST to CPPFLAGS if zlib is enabled 2014-07-30 11:55:40 -07:00
Reimar Döffinger
1c84aad718 movdec: remove nonsensical snprintf.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-07-30 20:25:29 +02:00
Reimar Döffinger
04aec74f45 mxfdec: add missing "const" to array declaration.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-07-30 20:25:29 +02:00
Michael Niedermayer
547d64a49a ffprobe: print some basic information about avframe side data
Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-30 19:23:08 +02:00
Michael Niedermayer
ba3e3311ef avutil/frame: add av_frame_side_data_name()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-30 19:19:22 +02:00
Michael Niedermayer
6f622e5fcb avfilter/f_select: avoid double->int in debug output
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-30 17:50:35 +02:00
Michael Niedermayer
bcbfb95b0e avfilter/f_select: Set var_values[VAR_KEY] correctly
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-30 17:49:26 +02:00
Michael Niedermayer
887d8d293f avfilter/f_select: avoid using doubles for equals checks and casts to enums
This might silence some warnings.

Issue found from: a8d803a320
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-30 17:37:09 +02:00
Michael Niedermayer
7994c1cd76 Merge commit 'a8d803a320fb08b3ad5db4fffc79abd401206905'
* commit 'a8d803a320fb08b3ad5db4fffc79abd401206905':
  vf_select: Drop a debug av_log with an unchecked double to enum conversion

Conflicts:
	libavfilter/f_select.c

Not merged, see next commit for the bugfix

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-30 17:32:15 +02:00
Nicolas George
91244073fd ffmpeg_filter: refuse to configure input without a decoder.
The decoder is necessary in order to filter frames.
This makes the error message clearer in this case:
currently, it will usually fail because the pixel or sample
format is not defined and is converted into "(null)"
(non-portable).

Enhance trac ticket #3779.
2014-07-30 14:40:45 +02:00
Carl Eugen Hoyos
ff9a154157 Add int64_t probesize2 instead of int probesize to AVFormatContext.
Allows to set a probesize >2G.
Tested-by: Oliver Fromme
2014-07-30 11:09:25 +02:00
Carl Eugen Hoyos
355121bcb5 lavf/mux: Fix a typo checking aspect ratios.
Fixes ticket #3813.
2014-07-30 11:03:29 +02:00
gerion.entrup@t-online.de
f2855eb4d7 avformat/movenc: add m4b to list of ipod playable files
m4b is the extension used by iDevices to detect audiobooks.
2014-07-30 04:19:58 +02:00
Christophe Gisquet
a507623bad x86: hevc_mc: fix register count usage
A macro was using a fixed register, causing too many GPRs to be
declared as used.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-29 22:50:50 +02:00
Michael Niedermayer
d38edeee9b avformat/format: fix memleak and error code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-29 21:38:15 +02:00
Michael Niedermayer
4182728c78 avformat/format.c: remove duplicate include, put libavutil includes together
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-29 21:35:07 +02:00
Michael Niedermayer
6d69503883 avformat/format: simplify ifdeffery
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-29 21:33:10 +02:00
Michael Niedermayer
58eaa95116 Merge commit 'ccbf370f2000b9b27f4af259c23007d67f7ea46e'
* commit 'ccbf370f2000b9b27f4af259c23007d67f7ea46e':
  mpegvideo: move vol_control_parameters to the only place it is used

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-29 21:26:59 +02:00
Michael Niedermayer
92de445034 Merge commit 'fa38573cd9ce4ab727f86f57c03b113cfd4c9d0a'
* commit 'fa38573cd9ce4ab727f86f57c03b113cfd4c9d0a':
  matroska: Register mime types

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-29 21:18:11 +02:00
Michael Niedermayer
8cad746093 Merge commit '02cf0c9e42967de1e4d2803bee3573bc5b735fdd'
* commit '02cf0c9e42967de1e4d2803bee3573bc5b735fdd':
  aac: Register the mime type

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-29 21:12:07 +02:00
Michael Niedermayer
9694695a21 avformat: fix probe mime version checks
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-29 21:02:48 +02:00
Michael Niedermayer
80a3a6611f Merge commit '3a19405d574a467c68b48e4b824c76617fd59de0'
* commit '3a19405d574a467c68b48e4b824c76617fd59de0':
  avformat: Use the mime type information in input probe

Conflicts:
	libavformat/format.c
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-29 20:57:42 +02:00
Michael Niedermayer
31e0b5d3cb Merge commit '69e7336b8e16ee65226fc20381baf537f4b125e6'
* commit '69e7336b8e16ee65226fc20381baf537f4b125e6':
  avstring: Expose the simple name match function

Conflicts:
	libavutil/avstring.c
	libavutil/avstring.h
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-29 20:24:42 +02:00
Michael Niedermayer
e066f01539 Merge commit 'e253a9e2b3d683eb51db7c776326eb07de10ad4c'
* commit 'e253a9e2b3d683eb51db7c776326eb07de10ad4c':
  avformat: Move av_probe_input* to format.c

Conflicts:
	libavformat/format.c
	libavformat/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-29 20:02:09 +02:00
Diego Biurrun
a8d803a320 vf_select: Drop a debug av_log with an unchecked double to enum conversion
CC: libav-stable@libav.org
2014-07-29 09:37:01 -07:00
Nidhi Makhijani
ccbf370f20 mpegvideo: move vol_control_parameters to the only place it is used
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-07-29 09:13:18 -07:00
Luca Barbato
fa38573cd9 matroska: Register mime types 2014-07-29 17:47:32 +02:00
Luca Barbato
02cf0c9e42 aac: Register the mime type
Speed up probing ADTS live streams that are not frame-aligned such
as http://mp3.streampower.be/radio1.aac .
2014-07-29 17:47:32 +02:00
Luca Barbato
3a19405d57 avformat: Use the mime type information in input probe
It should provide a quicker guess for elementary streams provided
by http.
2014-07-29 17:47:26 +02:00
Luca Barbato
69e7336b8e avstring: Expose the simple name match function
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-07-29 17:46:29 +02:00
Nicolas Martyanoff
0c889da8cb avformat/hlsenc: fix cleanup after avformat_write_header()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-29 16:24:11 +02:00
Luca Barbato
e253a9e2b3 avformat: Move av_probe_input* to format.c 2014-07-29 15:18:51 +02:00
James Almer
73c4f63ba5 x86/hevc_deblock: add add ff_hevc_[hv]_loop_filter_luma_{8, 10, 12}_avx
~5% faster than SSSE3

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-29 14:04:59 +02:00
James Almer
88ba821f23 x86/hevc_deblock: improve luma functions register allocation
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-29 13:38:05 +02:00
James Almer
c74b08c5c6 x86/hevc_deblock: remove some unnecessary instructions
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-29 13:27:44 +02:00
Christophe Gisquet
65746bfbae hevc_filter: run vertical and horizontal together
This should help cache locality. On win64:
Before: 1397x cycles, 16216 bytes
After:  1369x cycles, 16040 bytes

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-29 03:56:43 +02:00
James Almer
4f91bb0ff0 x86/hevc_deblock: use psignw instead of pmullw where possible
It's slightly faster

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-29 03:42:29 +02:00
Michael Niedermayer
983109bbd9 Merge commit '942269fd00cb48328e4cffb6e21a0b691ce9f6bc'
* commit '942269fd00cb48328e4cffb6e21a0b691ce9f6bc':
  caf: Use correct printf conversion specifiers for POSIX int types

Conflicts:
	libavformat/cafdec.c

See: 1f36ebf63a
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-29 01:40:23 +02:00
Michael Niedermayer
d55d8229fb Merge commit '019a28cd630286ecb2b06ee62025a17c821b493e'
* commit '019a28cd630286ecb2b06ee62025a17c821b493e':
  sanm: Use correct printf conversion specifiers for POSIX int types

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-29 01:22:46 +02:00
Michael Niedermayer
60831f441d Merge commit '59ca29a560ba0cfe97457de8cedf77db434f0de4'
* commit '59ca29a560ba0cfe97457de8cedf77db434f0de4':
  dump: Use correct printf conversion specifiers for POSIX int types

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-29 00:41:00 +02:00
Michael Niedermayer
a91c5ed008 Merge commit '4f8cf0dc4ef6110174056df7edd9dc2f2a988b6d'
* commit '4f8cf0dc4ef6110174056df7edd9dc2f2a988b6d':
  x86: build: Restore ordering of OBJS lines

Conflicts:
	libavcodec/x86/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-29 00:34:53 +02:00
Michael Niedermayer
621d4089a4 Merge commit 'e4a462e3eafdfe336f4d079c3ba72a9cdb4748b0'
* commit 'e4a462e3eafdfe336f4d079c3ba72a9cdb4748b0':
  configure: Use require_pkg_config for Speex

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-29 00:28:23 +02:00
Michael Niedermayer
8b1e920676 Merge commit '259fe7280d0b63dc7a8ff017d44f26d3a84cfde8'
* commit '259fe7280d0b63dc7a8ff017d44f26d3a84cfde8':
  mxf: Extract origin information from material and source track

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-29 00:18:03 +02:00
Michael Niedermayer
4a4d0258ee Merge commit 'c9d982aa11a6267611c3770792f0e04b48438348'
* commit 'c9d982aa11a6267611c3770792f0e04b48438348':
  mxf: Detect Vanc/Vbi SMPTE-436M mxf track

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-29 00:12:03 +02:00
Michael Niedermayer
25a2060890 Merge commit 'dc71f1958846bb1d96de43a4603983dc8450cfcc'
* commit 'dc71f1958846bb1d96de43a4603983dc8450cfcc':
  video4linux2: Avoid a floating point exception

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-29 00:06:32 +02:00
Carl Eugen Hoyos
63c0b41904 Fix standalone compilation of the adts muxer. 2014-07-28 23:25:54 +02:00
Diego Biurrun
942269fd00 caf: Use correct printf conversion specifiers for POSIX int types 2014-07-28 13:19:05 -07:00
Diego Biurrun
019a28cd63 sanm: Use correct printf conversion specifiers for POSIX int types 2014-07-28 13:19:04 -07:00
Diego Biurrun
59ca29a560 dump: Use correct printf conversion specifiers for POSIX int types 2014-07-28 13:19:04 -07:00
Diego Biurrun
4f8cf0dc4e x86: build: Restore ordering of OBJS lines 2014-07-28 13:19:04 -07:00
Luca Barbato
e4a462e3ea configure: Use require_pkg_config for Speex
Distributors and integrators nowadays have less problems by leveraging
pkg-config files than having to set custom CFLAGS and LDFLAGS.
2014-07-28 22:17:42 +02:00
Marc-Antoine Arnaud
259fe7280d mxf: Extract origin information from material and source track
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-07-28 22:17:42 +02:00
Marc-Antoine Arnaud
c9d982aa11 mxf: Detect Vanc/Vbi SMPTE-436M mxf track
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-07-28 22:17:42 +02:00
Bernhard Übelacker
dc71f19588 video4linux2: Avoid a floating point exception
This avoids a segfault in avconv_opt.c:opt_target when trying to
determine the norm.
2014-07-28 13:11:41 -07:00
James Almer
664e9e4331 x86/hevc_deblock: load less data in hevc_h_loop_filter_luma_8
Reading 8 bytes is enough.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-28 21:55:22 +02:00
James Almer
f137876182 x86/hevc_idct: add a colon to labels
This fixes a warning spam when using NASM

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-28 21:43:32 +02:00
Michael Niedermayer
1e51af13c7 avdevice/pulse_audio_enc: use getter function for AVFrame.channels
This is required by the API/ABI for things outside libavutil

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-28 20:06:11 +02:00
Michael Niedermayer
d554d004a6 tests/fate.sh: If cat *.rep fails try it with a for loop.
Fixes fate on haiku, where cat dies due to too many arguments
xargs could be used too but we do not use xargs currently so it
would be an additional dependency.

Also the plain cat is left in place as it is faster than the loop

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-28 18:34:16 +02:00
Michael Niedermayer
f3158c3f29 version.sh: Print versions based on the last git tag for release branches
release branches are detected by checking if "git" is not in RELEASE
This changes "N-64706-g2f71aeb" to "n2.3-8-g2f71aeb"
for git master theres no change

This should improve the readability of lists of versions which come from
more than 1 release branch or master + release. fate.ffmpeg.org is
one possible example

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-28 15:44:59 +02:00
Michael Niedermayer
243236a6f5 avcodec/hevc: fix "discards const qualifier from pointer target type" warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-28 14:34:47 +02:00
Michael Niedermayer
772dfd5f6e avcodec/hevc: add some const to cbf arrays
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-28 14:28:56 +02:00
Mickaël Raulet
42ffa226f9 hevc: clean up non relevant TODO
cherry picked from commit a2ef95f043d89d05482af19460c9e9afdadec685

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-28 14:27:04 +02:00
Anton Khirnov
a5c621aa85 hevc: rename variable in boundary strength to b more explicit
Signed-off-by: Mickaël Raulet <mraulet@insa-rennes.fr>

cherry picked from commit 348bebedc0012aae201419669fca1eb61ec93ca6
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-28 14:20:19 +02:00
Michael Niedermayer
e0492311c8 Merge commit 'e76f2d11970484266e67a12961f2339a5c2fccf9'
* commit 'e76f2d11970484266e67a12961f2339a5c2fccf9':
  hevc: eliminate the last element from TransformTree

Conflicts:
	libavcodec/hevc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-28 14:02:03 +02:00
Michael Niedermayer
4a73fa19ca Merge commit '4aa80808bcc2a30fcd7ce5b38594319df3a85b36'
* commit '4aa80808bcc2a30fcd7ce5b38594319df3a85b36':
  hevc: eliminate unnecessary cbf_c{b,r} arrays

Conflicts:
	libavcodec/hevc.c

See: 77ef9fd1e9
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-28 13:54:51 +02:00
Michael Niedermayer
0a1ffc5788 Merge commit '0daa2554636ba1d31f3162ffb86991e84eb938a8'
* commit '0daa2554636ba1d31f3162ffb86991e84eb938a8':
  hevc: do not store the transform inter_split flag in the context

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-28 13:09:28 +02:00
Michael Niedermayer
2fb8aa9b10 Merge commit '53a11135f2fb2123408b295f9aaae3d6f861aea5'
* commit '53a11135f2fb2123408b295f9aaae3d6f861aea5':
  hevc: simplify splitting the transform tree blocks

Conflicts:
	libavcodec/hevc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-28 13:03:59 +02:00
Michael Niedermayer
453224f10b Merge commit 'e36a2f4c5280e2779b0e88974295a711cf8d88be'
* commit 'e36a2f4c5280e2779b0e88974295a711cf8d88be':
  hevc: eliminate an unnecessary array

Conflicts:
	libavcodec/hevc.c

See: 255086a7e0
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-28 12:54:14 +02:00
Michael Niedermayer
c11255ae8b Merge commit '4b169321b84502302f2badb056ebee4fdaea94fa'
* commit '4b169321b84502302f2badb056ebee4fdaea94fa':
  codec_desc: fix some typos in long codec names

See: 60b59d657e
See: c3ca70204b
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-28 12:46:49 +02:00
Michael Niedermayer
2e5c8b0649 Merge commit 'c5fca0174db9ed45be821177f49bd9633152704d'
* commit 'c5fca0174db9ed45be821177f49bd9633152704d':
  lavc: add a property for marking codecs that support frame reordering

Conflicts:
	doc/APIchanges
	libavcodec/avcodec.h
	libavcodec/codec_desc.c
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-28 12:36:28 +02:00
Anton Khirnov
e76f2d1197 hevc: eliminate the last element from TransformTree
Replace it by passing an additional parameter to transform_unit()
2014-07-28 08:10:35 +00:00
Anton Khirnov
4aa80808bc hevc: eliminate unnecessary cbf_c{b,r} arrays
They are replaced by passing additional parameters to the transform
functions.
2014-07-28 08:09:18 +00:00
Anton Khirnov
0daa255463 hevc: do not store the transform inter_split flag in the context
It does not need to be preserved.
2014-07-28 08:05:47 +00:00
Anton Khirnov
53a11135f2 hevc: simplify splitting the transform tree blocks 2014-07-28 08:04:19 +00:00
Anton Khirnov
e36a2f4c52 hevc: eliminate an unnecessary array
We do not need to store the value of the split flag.
2014-07-28 08:03:53 +00:00
Anton Khirnov
4b169321b8 codec_desc: fix some typos in long codec names
The rv20 typo spotted by Hendrik Leppkes <h.leppkes@gmail.com>
2014-07-28 08:03:13 +00:00
Anton Khirnov
c5fca0174d lavc: add a property for marking codecs that support frame reordering 2014-07-28 08:02:50 +00:00
Michael Niedermayer
5003b8b9c3 MAINTAINERS: update list of releases i maintain
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-28 06:16:34 +02:00
Michael Niedermayer
a06c14a48e avfilter/vf_spp: support setting dct avoptions from the filter graph string
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-28 05:16:03 +02:00
Michael Niedermayer
cab8fc624b avfilter/vf_scale: fix log message category
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-28 05:15:16 +02:00
Michael Niedermayer
2f717be22a avcodec/avdct: Add avcodec_dct_get_class()
This should have been in the initial commit of AVDCT

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-28 05:14:39 +02:00
Michael Niedermayer
a7762384cf RELEASE: update, we are after 2.3 not 2.2
Found-by: jamrial
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-28 03:11:04 +02:00
Anton Khirnov
77ef9fd1e9 hevc: eliminate unnecessary cbf_c{b,r} arrays
- They are be replaced by passing additional parameters to the transform
functions.
- Adaptation to 4:2:2

Signed-off-by: Mickaël Raulet <mraulet@insa-rennes.fr>
cherry picked from commit f518bb22531c648f1c37f978b0c7ad2e71e04c25
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-28 00:55:44 +02:00
Mickaël Raulet
772f7f4edd hevc: fix skip_flag
cherry picked from commit 509ae456551005b9bf9b4d9730b6247c97fdd990

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-28 00:47:28 +02:00
Mickaël Raulet
3b777db132 hevc: remove non necessary parameters to ff_hevc_set_qpy
cherry picked from commit 6f58c111ad9920d983bb18eacf901193bac5d937

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-28 00:39:13 +02:00
Lou Logan
db0578a0e7 doc/decoders: mention native Opus decoder
Signed-off-by: Lou Logan <lou@lrcd.com>
2014-07-27 13:46:48 -08:00
Carl Eugen Hoyos
bcb7220d1c Fix standalone compilation of the webm_dash_manifest demuxer. 2014-07-27 23:27:14 +02:00
Carl Eugen Hoyos
54326e0c50 Fix standalone compilation of the legacy mpegvideo decoder.
Second try.
2014-07-27 23:22:10 +02:00
Carl Eugen Hoyos
6898c14959 Fix standalone compilation of the legacy mpegvideo decoder. 2014-07-27 23:13:10 +02:00
Mickaël Raulet
449e3c8515 fate/hevc: update fate with 9 bitstreams
- all of them testing HEVC version 1

cherry picked from commit adcdabb4dd062694fb8de6df0faecaad1c36ba33

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-27 22:44:58 +02:00
Michael Niedermayer
7f53f11363 Merge commit '42eb9154a83e9a7aedb1168b2f1112af765cf2b5'
* commit '42eb9154a83e9a7aedb1168b2f1112af765cf2b5':
  fate: support testing of release branches

Conflicts:
	tests/fate.sh

The communication protocol is left at version 0 as our fate server
hasnt been updated to support this yet

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-27 22:03:13 +02:00
Michael Niedermayer
3d93ba5622 configure: fix memalign hack auto detection
Should fix fate on haiku

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-27 21:03:31 +02:00
Michael Niedermayer
f285056810 doc/examples/muxing: fix "-flags" option
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-27 19:58:47 +02:00
Christophe Gisquet
81943a10b5 x86: hevc_mc: load less data in epel filters
Before:
5679 decicycles in epel_bi, 2059976 runs, 37176 skips
3468 decicycles in epel_uni, 1040886 runs, 7690 skips

After:
5323 decicycles in epel_bi, 2059493 runs, 37659 skips
3262 decicycles in epel_uni, 1040871 runs, 7705 skips

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-27 18:34:39 +02:00
Christophe Gisquet
36284ae981 x86: hevc_mc: replace one lea by add
Should have been in 036f11bdb5.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-27 17:42:56 +02:00
Michael Niedermayer
e3fac20824 avfilter/vf_spp: use AVDCT
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-27 17:21:40 +02:00
Michael Niedermayer
932ff70956 avcodec: add avdct
This provides a public sustainable API/ABI for DCT functions.
Only externally used dct functions are included.
The structure is extensible without ABI issues compared to the
existing dct contexts.

See Mailing list and IRC log of 2014-07-26/27

Reviewed-by: ubitux
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-27 17:21:40 +02:00
Janne Grunau
42eb9154a8 fate: support testing of release branches
Adding 'branch=release/10' to the fate config file will check the
release/10 branch instead of master. If no branch is specified it will
use 'master' so that existing config are still valid.

The server side changes are already deployed, see
https://fate.libav.org/v10/ for an example. The server supports only the
release/* branches.

The server enforces that a single slot tests always the same branch.
Please append "-v$RELEASE" to the slot of release branch configs or make
the slot otherwise unique.

A different fate samples dir is needed for each release branch. make
fate-rsync has the correct URL in each branch.
2014-07-27 14:41:09 +02:00
Michael Niedermayer
fbeb634e4d avcodec/ppc/idctdsp: Only select non bitexact IDCTs by default when bitexact is not set
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-27 14:22:36 +02:00
Michael Niedermayer
b051a1bbb9 avcodec/arm/idctdsp_init_arm*: Only select non bitexact IDCTs by default when bitexact is not set
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-27 14:21:36 +02:00
Michael Niedermayer
c2ef844aa7 Merge commit '541427ab4d5b4b6f5a90a687a06decdb78e7bc3c'
* commit '541427ab4d5b4b6f5a90a687a06decdb78e7bc3c':
  eamad: use the bytestream2 API instead of AV_RL

Conflicts:
	libavcodec/eamad.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-27 12:27:01 +02:00
Michael Niedermayer
c437765be7 doc/examples/muxing: Exchange tmp_frame and frame
Reduces difference to 56f98e340f

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-27 12:03:51 +02:00
Anton Khirnov
541427ab4d eamad: use the bytestream2 API instead of AV_RL
This is safer and possibly fixes invalid reads on truncated data.

CC:libav-stable@libav.org
2014-07-27 07:10:54 +00:00
Chris \"Koying\" Browet
ad91bf854b avcodec/h264_mp4toannexb_bsf: fix issue when sps/pps are already in the bistream 2014-07-27 03:36:24 +02:00
Mickaël Raulet
e97f5bef95 fate/hevc: adding CONFWIN_A conformance test
cherry picked from commit 3b69a2dc469160ee87367191e630e8398e832227

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-27 02:45:40 +02:00
Mickaël Raulet
7bb3e70c06 fate/hevc: add flags unaligned
cherry picked from commit 3b69a2dc469160ee87367191e630e8398e832227

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-27 02:44:59 +02:00
Mickaël Raulet
29228dbd24 fate/hevc: add BUMPING bitstream test
cherry picked from commit d4d61a071f087db2a4bc2b49559d40dd350a841e

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-27 02:23:56 +02:00
Michael Niedermayer
57e7d9d929 Merge commit '7215fcf84032118ecd9fb54fb14154d69fea638d'
* commit '7215fcf84032118ecd9fb54fb14154d69fea638d':
  avformat: Mark AVOutputFormat argument in avformat_query_codec as const

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-27 02:16:09 +02:00
Michael Niedermayer
6542e5575f Merge commit 'ec4f04da1a3462dac429b9d15dee5f027309da15'
* commit 'ec4f04da1a3462dac429b9d15dee5f027309da15':
  avformat: Mark argument in av_{i|o}format_next/ffurl_protocol_next as const

Conflicts:
	libavformat/format.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-27 02:09:41 +02:00
Michael Niedermayer
0a7f3af27f Merge commit '53abe32409f13687c864b3cda077a1aa906a2459'
* commit '53abe32409f13687c864b3cda077a1aa906a2459':
  avcodec: Mark argument in av_{parser|hwaccel|bitstream_filter}_next as const

Conflicts:
	libavcodec/avcodec.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-27 01:57:34 +02:00
Michael Niedermayer
d1ce43a3e8 doc/examples/muxing: mark correct frame as writeable
Bug found from comparing 56f98e340f to HEAD
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-27 01:55:17 +02:00
Michael Niedermayer
fbd46e2f1c doc/examples/muxing: Always use swr, simplifies code slightly
Idea-from: 56f98e340f
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-27 01:32:19 +02:00
Anton Khirnov
22e9fe06eb doc/examples/muxing: add alloc_audio_frame() and use it to simplify code.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-27 01:15:39 +02:00
Michael Niedermayer
a98cadef7f doc/examples/muxing: Move samples_count to OutputStream
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-27 01:05:05 +02:00
Michael Niedermayer
8b1d54ba40 doc/examples/muxing: free swr context at the end
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-27 00:50:58 +02:00
James Almer
bfb3b2b7a6 x86/hevc_idct: add 12bit idct_dc
Signed-off-by: James Almer <jamrial@gmail.com>
Reviewed-by: Mickaël Raulet <mraulet@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-27 00:30:56 +02:00
Michael Niedermayer
d4a9e89b27 avcodec/x86/hevcdsp_init: make license header consistent
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-27 00:28:44 +02:00
Michael Niedermayer
706f81a2c2 Merge commit '1a880b2fb8456ce68eefe5902bac95fea1e6a72d'
* commit '1a880b2fb8456ce68eefe5902bac95fea1e6a72d':
  hevc: SSE2 and SSSE3 loop filters

Conflicts:
	libavcodec/hevcdsp.c
	libavcodec/hevcdsp.h
	libavcodec/x86/Makefile
	libavcodec/x86/hevc_deblock.asm
	libavcodec/x86/hevcdsp_init.c

See: de7b89fd43 and several others
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-27 00:20:48 +02:00
Michael Niedermayer
226b290f9f Merge commit '73bb8f61d48dbf7237df2e9cacd037f12b84b00a'
* commit '73bb8f61d48dbf7237df2e9cacd037f12b84b00a':
  hevcdsp: remove an unneeded variable in the loop filter

Conflicts:
	libavcodec/hevc_filter.c

See: d7e162d46b
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-26 23:53:31 +02:00
Diego Biurrun
7215fcf840 avformat: Mark AVOutputFormat argument in avformat_query_codec as const 2014-07-26 14:51:16 -07:00
Diego Biurrun
ec4f04da1a avformat: Mark argument in av_{i|o}format_next/ffurl_protocol_next as const 2014-07-26 14:51:16 -07:00
Diego Biurrun
53abe32409 avcodec: Mark argument in av_{parser|hwaccel|bitstream_filter}_next as const 2014-07-26 14:51:16 -07:00
Michael Niedermayer
371cb96414 Merge commit '56f98e340fca894a76d1ddbe33118b8d8c4db34a'
* commit '56f98e340fca894a76d1ddbe33118b8d8c4db34a':
  output example: convert audio to the format supported by the encoder

Conflicts:
	doc/examples/muxing.c

Not merged as our example code already does that for what is needed
and we generate matching data for the rest. generating fixed data
and converting all parameters could be done of course.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-26 23:37:07 +02:00
Michael Niedermayer
7cf0865551 doc/examples/muxing: Support setting flags, for example for setting bitexact
This would allow the example to be used in regression tests

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-26 22:49:02 +02:00
Michael Niedermayer
5d2cf1ae86 doc/examples/muxing: select a supported sample rate for the encoder, favor 44100
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-26 22:27:50 +02:00
Michael Niedermayer
ead22f42f4 doc/examples/muxing: pick a supported channel layout if stereo isnt supported by the encoder
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-26 22:01:08 +02:00
Michael Niedermayer
9ccb9c8df2 doc/examples/muxing: move swr context to OutputStream
Idea from: 56f98e340f
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-26 21:50:21 +02:00
Michael Niedermayer
1c0c19f8bd Merge commit '884f7c975f0af25febe86660e87bf3b2165a0309'
* commit '884f7c975f0af25febe86660e87bf3b2165a0309':
  output example: set the stream timebase

Conflicts:
	doc/examples/muxing.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-26 21:04:31 +02:00
James Almer
1ace9573dc x86/hevc_idct: replace old and unused idct functions
Only 8-bit and 10-bit idct_dc() functions are included (adding others should be trivial).

Benchmarks on an Intel Core i5-4200U:

idct8x8_dc
       SSE2   MMXEXT  C
cycles 22     26      57

idct16x16_dc
       AVX2   SSE2    C
cycles 27     32      249

idct32x32_dc
       AVX2   SSE2    C
cycles 62     126     1375

Signed-off-by: James Almer <jamrial@gmail.com>
Reviewed-by: Mickaël Raulet <mraulet@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-26 18:00:11 +02:00
Pierre Edouard Lepere
1a880b2fb8 hevc: SSE2 and SSSE3 loop filters
Additional contributions by James Almer <jamrial@gmail.com>,
Carl Eugen Hoyos <cehoyos@ag.or.at>, Fiona Glaser <fiona@x264.com> and
Anton Khirnov <anton@khirnov.net>

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-07-26 15:01:01 +00:00
Anton Khirnov
73bb8f61d4 hevcdsp: remove an unneeded variable in the loop filter
beta0 and beta1 will always be the same
2014-07-26 15:00:11 +00:00
Anton Khirnov
56f98e340f output example: convert audio to the format supported by the encoder 2014-07-26 14:57:59 +00:00
Anton Khirnov
884f7c975f output example: set the stream timebase
This is required by the new API.
2014-07-26 14:57:45 +00:00
Mickaël Raulet
23480da0aa hevc: add support for bumping process
cherry picked from commit 8aa2fb7df3cffc67a3fd03a3a7eb49dbed4094c7

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-26 15:40:34 +02:00
Michael Niedermayer
c0a586d9d5 reintroduce avpriv_dsputil_init() to maintain ABI until next soname bump
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-26 13:21:07 +02:00
Lukasz Marek
9a6ca20ef6 configure: replace pulse-simple with pulse
pulse-simple is additional library built on top of PulseAudio.
It causes ffmpeg to link to library which is not needed anymore.
This commit removes that redundant dependency.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-26 12:42:05 +02:00
Christophe Gisquet
036f11bdb5 x86: hevc_mc: replace simple leas by adds
lea is detrimental for those simple cases. No impact overall to
the change though.

Before:
15017 decicycles in q, 1016152 runs, 32424 skips
15382 decicycles in q_bi, 1013673 runs, 34903 skips
3713 decicycles in e, 2074534 runs, 22618 skips
3901 decicycles in e_bi, 2065509 runs, 31643 skips
7852 decicycles in q_uni, 520165 runs, 4123 skips
2398 decicycles in e_uni, 1043339 runs, 5237 skips

After:
14898 decicycles in q, 1016295 runs, 32281 skips
15119 decicycles in q_bi, 1015392 runs, 33184 skips
3682 decicycles in e, 2073224 runs, 23928 skips
3720 decicycles in e_bi, 2065043 runs, 32109 skips
7643 decicycles in q_uni, 520280 runs, 4008 skips
2363 decicycles in e_uni, 1043780 runs, 4796 skips

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-26 05:41:04 +02:00
Michael Niedermayer
7295ee7f51 Merge commit 'd8520d3ee032bf18f28897e0109f44b405caf5e3'
* commit 'd8520d3ee032bf18f28897e0109f44b405caf5e3':
  mpegvideo: Move QMAT_SHIFT* defines to the only place they are used

Conflicts:
	libavcodec/mpegvideo.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-26 02:47:32 +02:00
Michael Niedermayer
8b395315a5 Merge commit '4fbb62a21bd04bf261da2382d5ba6c249c702af8'
* commit '4fbb62a21bd04bf261da2382d5ba6c249c702af8':
  mpegvideo: Move ME_MAP_* defines to the only place they are used

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-26 02:34:51 +02:00
Michael Niedermayer
0a9bab5be6 Merge commit 'ff85334375c6733c6116ea3686f128b4a11f33e7'
* commit 'ff85334375c6733c6116ea3686f128b4a11f33e7':
  mpegvideo: Drop unused MPEG_BUF_SIZE and CHROMA_444 defines

CHROMA_444 is not removed as we do support CHROMA_444 and use the
identifier

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-26 02:23:29 +02:00
Mickaël Raulet
f6e218a02d hevc: fix RAP_B_Bossen
cherry picked from commit 903236292f066bc321080e3e2192b64f8943d960

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-26 02:01:04 +02:00
Mickaël Raulet
bd0f2d316f x86/hevc: add 12bits support for MC
cherry picked from commit 3fcb7a4595a6f40100a22110a5805e3b7510c0fd

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-26 01:55:20 +02:00
Mickaël Raulet
7df98d8c4d x86/hevc: remove unused constant in deblocking filter
cherry picked from commit a3f7282eaa6f1ab0524fb966c6eade50c3025f99

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-26 01:20:40 +02:00
Mickaël Raulet
7bdcf5c934 x86/hevc: add 12bits support for deblocking filter
cherry picked from commit 97d46afe320c7d61d7b9525e5f5588355cde4bb0

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-26 01:19:42 +02:00
Michael Niedermayer
a06fac353c avformat/mux: ignore delayed vp8/9 packets in max_interleave_delta calculation
libvpx adds very significant delay, which appears normal and we must
buffer all other streams no matter what to interleave them correctly

Fixes Ticket3440

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-26 01:11:00 +02:00
Michael Niedermayer
24327706e1 avutil/opt: ensure the right buffer is used in set_string_number()
Fixes use of uninitialized memory

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-25 21:29:43 +02:00
Diego Biurrun
d8520d3ee0 mpegvideo: Move QMAT_SHIFT* defines to the only place they are used 2014-07-25 12:00:53 -07:00
Diego Biurrun
4fbb62a21b mpegvideo: Move ME_MAP_* defines to the only place they are used 2014-07-25 12:00:53 -07:00
Diego Biurrun
ff85334375 mpegvideo: Drop unused MPEG_BUF_SIZE and CHROMA_444 defines 2014-07-25 12:00:52 -07:00
Michael Niedermayer
aadf5222da Merge commit '165e9df19567ec0b6abee1ee2c26027e6d7aa7bf'
* commit '165e9df19567ec0b6abee1ee2c26027e6d7aa7bf':
  fft-test: Pass the right struct members instead of casting

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-25 20:43:03 +02:00
Diego Biurrun
165e9df195 fft-test: Pass the right struct members instead of casting 2014-07-25 06:54:37 -07:00
Timothy Gu
065fa66872 RELEASE_NOTES: fix WebVTT decoder typo (-> encoder)
Found-by: Clément Bœsch <u@pkh.me>
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-25 13:22:00 +02:00
Michael Niedermayer
859413b66d Merge commit '58e65e44f435243dc72dfce1f8af8afcf1319f34'
* commit '58e65e44f435243dc72dfce1f8af8afcf1319f34':
  vc1dsp: Add wrappers for {avg|put}_vc1_mspel_mc00_c

Conflicts:
	libavcodec/vc1dsp.c

See: 319235c67c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-25 13:11:23 +02:00
Michael Niedermayer
2904d052b7 Merge commit '7fb993d338d88f2f62e0a358b6c9f3eb9a3a08ac'
* commit '7fb993d338d88f2f62e0a358b6c9f3eb9a3a08ac':
  qpeldsp: Mark source pointer in qpel_mc_func function pointer const

Conflicts:
	libavcodec/h264qpel_template.c
	libavcodec/x86/cavsdsp.c
	libavcodec/x86/rv40dsp_init.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-25 13:05:08 +02:00
Michael Niedermayer
937eaba2a1 Merge commit '060e4a9e0627adcda9101dd68ec7f22b4ce22b5b'
* commit '060e4a9e0627adcda9101dd68ec7f22b4ce22b5b':
  dct/rdft: Remove duplicate typedefs for context structs

See: 005e81d6cf
See: 77304cf352
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-25 12:39:17 +02:00
Diego Biurrun
58e65e44f4 vc1dsp: Add wrappers for {avg|put}_vc1_mspel_mc00_c
This avoids invoking the wrapped functions with too many arguments.
2014-07-25 02:52:54 -07:00
Diego Biurrun
7fb993d338 qpeldsp: Mark source pointer in qpel_mc_func function pointer const 2014-07-25 02:52:54 -07:00
Diego Biurrun
060e4a9e06 dct/rdft: Remove duplicate typedefs for context structs
The typedefs also exist in the avfft.h header and since typedefs cannot be
legally redefined in C, the code fails to compile with some compilers.

This reverts commits 11c7155cce and 57f1b1dcc7.
2014-07-25 02:02:15 -07:00
Nicolas George
04bc370072 lavf/avio: do not include bprint.h.
C++ chokes on the definition of AVBPrint.
Including avio.h from c++ code used to work.
Fix trac ticket #3800.

Signed-off-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-25 05:37:45 +02:00
Michael Niedermayer
66ae994c54 avformat/segment: re-interleave packets if needed
Fixes part of Ticket 3797

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-24 23:22:33 +02:00
Michael Niedermayer
351b22caae avformat/mux: support re-interleaving packets in ff_write_chained()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-24 22:39:22 +02:00
Michael Niedermayer
383a04a127 avformat/mux: keep AVPacket fields consistent in ff_write_chained()
This might have caused double frees in theory, i do not have a test case
though

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-24 22:33:21 +02:00
Michael Niedermayer
d44b8f0a47 avformat/matroskaenc: print a warning when the relative timestamp wouldnt fit in 16bit
This is somewhat unusual so its better to use warning level than debug

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-24 20:25:29 +02:00
Michael Niedermayer
ce8e27e0ed Merge commit '436ced244fadcde2c0b925627920e84b25482542'
* commit '436ced244fadcde2c0b925627920e84b25482542':
  mpegenccontext: Remove unused opaque pointer

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-24 18:53:34 +02:00
Michael Niedermayer
7923aa0fba avformat/matroskaenc: Start new cluster if relative timestamp could not otherwise be stored
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-24 18:19:50 +02:00
Michael Niedermayer
3c6e220a8c avformat/matroskaenc: Factor mkv_start_new_cluster() out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-24 18:19:11 +02:00
Nidhi Makhijani
436ced244f mpegenccontext: Remove unused opaque pointer
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-07-24 07:59:44 -07:00
Michael Niedermayer
183bbc2af1 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Ignore xing number of frames if the file is larger than indicated.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-24 16:50:44 +02:00
Timothy Gu
c508adb223 hevc: propagate error code from set_sps()
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-24 16:25:55 +02:00
Carl Eugen Hoyos
ef21b3d38e Ignore xing number of frames if the file is larger than indicated.
Fixes ticket #3777.
2014-07-24 15:34:36 +02:00
Carl Eugen Hoyos
badcd3da81 Print a warning instead of requesting a sample for an invalid exif tag.
Fixes ticket #3792.
Reviewed-by: Thilo Borgmann
2014-07-24 11:58:11 +02:00
Lukasz Marek
f753956252 lavfi/src_movie: minor simplifications
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-24 04:50:32 +02:00
Lukasz Marek
9739255365 lavfi/src_movie: remove frame from priv context
This variable is used only inside one function.
There is no need to store it in context.

This also may prevent crush by double free frame.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-24 04:48:49 +02:00
Michael Niedermayer
8b59ab1af0 Merge commit 'ce2e858f5b3416c2d54f7f8c14e901f75c48b785'
* commit 'ce2e858f5b3416c2d54f7f8c14e901f75c48b785':
  http: K&R formatting cosmetics

Conflicts:
	libavformat/http.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-24 02:08:14 +02:00
Michael Niedermayer
ab0f78ea77 Merge commit 'd0de7330b973b354e2ceb0b99fd545b868b0a9c4'
* commit 'd0de7330b973b354e2ceb0b99fd545b868b0a9c4':
  fft-test: Pass correct struct members to (i)dct functions

Conflicts:
	libavcodec/fft-test.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-24 01:50:01 +02:00
Michael Niedermayer
02ea384abd Merge commit '6133d65861f265d429ade53e910fe877c95a1615'
* commit '6133d65861f265d429ade53e910fe877c95a1615':
  fft-test: K&R formatting cosmetics

Conflicts:
	libavcodec/fft-test.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-24 01:22:31 +02:00
Michael Niedermayer
629e5e28f7 avcodec/fft-test: fix memory alloc checks
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-24 00:47:11 +02:00
Michael Niedermayer
074bb7515e Merge commit 'c3c96deb5f8cbbdb700ba97920ceedddacb5dcb9'
* commit 'c3c96deb5f8cbbdb700ba97920ceedddacb5dcb9':
  fft-test: Check memory allocations

Conflicts:
	libavcodec/fft-test.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-24 00:35:40 +02:00
Diego Biurrun
ce2e858f5b http: K&R formatting cosmetics
Also comment some #endifs and reshuffle headers into canonical order.
2014-07-23 13:57:24 -07:00
Christophe Gisquet
670b7f203a x86: hevcdsp: align
Reviewed-by: Mickaël Raulet <mraulet@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-23 22:18:08 +02:00
Diego Biurrun
d0de7330b9 fft-test: Pass correct struct members to (i)dct functions
This fixes a number of incompatible pointer type warnings.
2014-07-23 13:05:25 -07:00
Diego Biurrun
6133d65861 fft-test: K&R formatting cosmetics
Also rearrange #includes into canonical order.
2014-07-23 13:05:19 -07:00
Christophe Gisquet
373677f958 hevc_mvs: avoid deriving tmvp in amvp
Reduces on a sequence number of calls from 933685 to 586271.

Reviewed-by: Mickaël Raulet <mraulet@insa-rennes.fr>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-23 21:21:49 +02:00
Christophe Gisquet
ca081217cd hevcdsp: change types of SAO parameters
From openhevc

Reviewed-by: Mickaël Raulet <mraulet@insa-rennes.fr>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-23 20:54:03 +02:00
Michael Niedermayer
088875b6b8 Merge commit '7288b345850792430302a8f85a4b29140b770497'
* commit '7288b345850792430302a8f85a4b29140b770497':
  fft-test: Drop unnecessary pointer indirection for context structs

Conflicts:
	libavcodec/fft-test.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-23 20:48:05 +02:00
Michael Niedermayer
09f5b3750f Merge commit 'd445c865f87e7f13230e4dac3f77f5af21da95cb'
* commit 'd445c865f87e7f13230e4dac3f77f5af21da95cb':
  fft-test: Reduce variable scope where sensibly possible

Conflicts:
	libavcodec/fft-test.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-23 20:40:41 +02:00
Michael Niedermayer
97d2b8d6f5 Merge commit 'eac77fcd56fc2a3391f0d86faf54302afb368ff7'
* commit 'eac77fcd56fc2a3391f0d86faf54302afb368ff7':
  mpegenccontext: Remove unused dct_unquantize_h261 function pointers

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-23 20:20:08 +02:00
Andrey Utkin
b6a6459a24 lavd/lavfi: work with non-mappable files for graph_file option
Example of non-mappable file is /dev/stdin. Previously passing it as
graph_file value returned error.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-23 18:42:41 +02:00
Andrey Utkin
8a4c0866dc avio: Introduce avio_read_to_bprint(avioctx, bp, max_size)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-23 18:42:41 +02:00
Michael Niedermayer
01b236b704 avformat/flvdec: use AV_PKT_DATA_NEW_EXTRADATA for h264 too
Fixes Ticket 3787

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-23 17:41:12 +02:00
Michael Niedermayer
601c238854 avcodec/h264: support AV_PKT_DATA_NEW_EXTRADATA
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-23 17:40:21 +02:00
Michael Niedermayer
1bf371b24e avcodec/h264: factor is_extra() out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-23 17:40:21 +02:00
Diego Biurrun
c3c96deb5f fft-test: Check memory allocations 2014-07-23 06:05:02 -07:00
Diego Biurrun
7288b34585 fft-test: Drop unnecessary pointer indirection for context structs 2014-07-23 06:05:02 -07:00
Diego Biurrun
d445c865f8 fft-test: Reduce variable scope where sensibly possible
Also merge variable declaration and initialization.
2014-07-23 06:05:02 -07:00
Michael Niedermayer
54256482cb Merge commit '20ec0daaa1cdd3996ac6ed0198de961129474044'
* commit '20ec0daaa1cdd3996ac6ed0198de961129474044':
  fft-test: Make global exptab variable static

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-23 14:27:10 +02:00
Michael Niedermayer
d0cb6caf69 Merge commit '2b6ab3a2bd7e7cee5e7a55dd2e48b8feb4a826bb'
* commit '2b6ab3a2bd7e7cee5e7a55dd2e48b8feb4a826bb':
  mpegvideo: Move QUANT_BIAS_SHIFT define to the only place it is used

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-23 14:15:48 +02:00
Nidhi Makhijani
eac77fcd56 mpegenccontext: Remove unused dct_unquantize_h261 function pointers
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-07-23 05:07:21 -07:00
Diego Biurrun
20ec0daaa1 fft-test: Make global exptab variable static 2014-07-23 03:45:33 -07:00
Diego Biurrun
2b6ab3a2bd mpegvideo: Move QUANT_BIAS_SHIFT define to the only place it is used 2014-07-23 03:16:55 -07:00
Carl Eugen Hoyos
c75fdee747 avcodec/x86/hevc_deblock: Fix compilation with nasm. 2014-07-23 10:32:27 +02:00
Michael Niedermayer
bbc5adfb94 avutil/opt: Fix parsing regression with constants starting with numbers
Fixes parsing "3dnow"

Found-by: jamrial
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-23 08:42:52 +02:00
Michael Niedermayer
a61325798a Changelog: add "version <next>:" so people dont add new things to the last release
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-23 02:38:26 +02:00
Michael Niedermayer
7e5d75d53f Merge commit '06a1d1323bc8afd03f085ae98d9b74e431b3534e'
* commit '06a1d1323bc8afd03f085ae98d9b74e431b3534e':
  configure: Extend the neon intrinsics check

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-23 00:34:36 +02:00
Michael Niedermayer
9515d7c629 Merge commit '5be7d8597d02bcaba2de2503c0e59cf865c746dc'
* commit '5be7d8597d02bcaba2de2503c0e59cf865c746dc':
  fft-test: Comment some #endifs

Conflicts:
	libavcodec/fft-test.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-23 00:29:06 +02:00
Michael Niedermayer
9eeedf8769 Merge commit '57f1b1dcc77a93c2a5c503d4e47fe2f567cf9db5'
* commit '57f1b1dcc77a93c2a5c503d4e47fe2f567cf9db5':
  fft-test: Drop unnecessary #ifdefs around header includes

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-23 00:23:28 +02:00
Michael Niedermayer
77304cf352 avcodec: dct/rdft only support float mode, skip their contents for fixed point 2014-07-23 00:18:24 +02:00
Michael Niedermayer
005e81d6cf Merge commit '11c7155cce50971a38e6cebd39a3ba5a54645fae'
* commit '11c7155cce50971a38e6cebd39a3ba5a54645fae':
  dct/rdft: Add missing typedefs for context structs

Not merged, as it breaks build

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 23:02:11 +02:00
Martin Storsjö
06a1d1323b configure: Extend the neon intrinsics check
Check for an instruction that causes the (very old) Apple GCC 4.2
to error out ("unrecognizable insn").

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-07-22 23:57:23 +03:00
Michael Niedermayer
1df2f7b6a8 Merge commit 'eba2233b58c2c4b468c58287d6537b2f1188a8cd'
* commit 'eba2233b58c2c4b468c58287d6537b2f1188a8cd':
  build: Add define for SIMD extensions requiring 16-byte aligned buffers

Conflicts:
	configure
	libavcodec/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 22:32:40 +02:00
Michael Niedermayer
013172ae9f Merge commit '67bc1ba5d75953d136bfa02ce6c0a27e9fd9dac3'
* commit '67bc1ba5d75953d136bfa02ce6c0a27e9fd9dac3':
  libxvid: Drop PPC-specific CPU detection hack

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 22:23:26 +02:00
Michael Niedermayer
016cca4504 Merge commit '7bdd2ff6825951f7a6a6008303acfce7c2a63532'
* commit '7bdd2ff6825951f7a6a6008303acfce7c2a63532':
  http: Use a constant for the supported header size

Conflicts:
	libavformat/http.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 22:02:48 +02:00
Diego Biurrun
5be7d8597d fft-test: Comment some #endifs 2014-07-22 11:55:40 -07:00
Diego Biurrun
57f1b1dcc7 fft-test: Drop unnecessary #ifdefs around header includes 2014-07-22 11:55:40 -07:00
Diego Biurrun
11c7155cce dct/rdft: Add missing typedefs for context structs
Without the typedefs there can be trouble depending on #include order.
2014-07-22 11:55:40 -07:00
Diego Biurrun
eba2233b58 build: Add define for SIMD extensions requiring 16-byte aligned buffers 2014-07-22 11:46:35 -07:00
Diego Biurrun
67bc1ba5d7 libxvid: Drop PPC-specific CPU detection hack
It is doubtful if the hack (still) works and Xvid had ten years to fix it.
2014-07-22 11:45:07 -07:00
Michael Niedermayer
bc15b5238f Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Autodetect big-endian tiff files.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 18:23:53 +02:00
Christophe Gisquet
ed248e7f70 hevc: wait proper position for tmvp
The position is either rounded or not checked, so delay the wait to
check the proper value.

Reviewed-by: Mickaël Raulet <mraulet@insa-rennes.fr>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 18:11:50 +02:00
Carl Eugen Hoyos
050d79b6dd Autodetect big-endian tiff files. 2014-07-22 18:09:14 +02:00
Przemysław Sobala
c68098ba4a avcodec/mjpegdec: add pix_fmt: 0x14121200
Fixes: _15801_F.jpg

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 18:07:44 +02:00
Michael Niedermayer
539e72727f avutil/opt: simplify set_string_number()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 17:38:06 +02:00
Muhammad Faiz
4852a88dfb avutil/opt: set_string_number(): remove unneeded copy
also remove unused variables

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 16:58:41 +02:00
Luca Barbato
7bdd2ff682 http: Use a constant for the supported header size 2014-07-22 16:38:26 +02:00
Michael Niedermayer
ca6b33b8bd avcodec/x86/hevcdsp_init: Fix "warning: assignment from incompatible pointer type" 2014-07-22 16:36:12 +02:00
Anton Khirnov
d7e162d46b hevcdsp: remove an unneeded variable in the loop filter
beta0 and beta1 will always be the same within a CU

Signed-off-by: Mickaël Raulet <mraulet@insa-rennes.fr>

cherry picked from commit 4a23d824741a289c7d2d2f2871d1e2621b63fa1b
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 16:27:26 +02:00
Anton Khirnov
ae2f048fd7 avcodec/x86/hevc_deblock: cosmetics
cherry picked from commit f7843356253459e6010320292dbbc1e888a5249b
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 16:18:05 +02:00
Anton Khirnov
b435043abb hevc: cleanups in SSE2 and SSSE3 loop filters, use fewer instructions
cherry picked from commit f7843356253459e6010320292dbbc1e888a5249b
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 16:17:29 +02:00
Anton Khirnov
e8581b17a8 avcodec/x86/hevc_deblock: use test instead of cmp 0
cherry picked from commit f7843356253459e6010320292dbbc1e888a5249b
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 16:16:05 +02:00
Anton Khirnov
dc69247de4 avcodec/x86/hevc_deblock: use of paddw instead of psllw
cherry picked from commit f7843356253459e6010320292dbbc1e888a5249b
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 16:14:53 +02:00
Anton Khirnov
500a0394d5 avcodec/x86/hevc_deblock: add %ifs to avoid "do nothing instructions"
cherry picked from commit f7843356253459e6010320292dbbc1e888a5249b
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 16:13:28 +02:00
Anton Khirnov
7a4cf67117 hevc: cleaning up SSE2 and SSSE3 deblocking filters
Signed-off-by: Mickaël Raulet <mraulet@insa-rennes.fr>

cherry picked from commit b432041d7d1eca38831590f13b4e5baffff8186f
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 16:00:48 +02:00
Mickaël Raulet
5f08b417b4 hevc/mvs: cosmetics
cherry picked from commit 9053cd92700e939cde49ab0ea3c6917be453cab7

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 15:19:19 +02:00
Mickaël Raulet
cd714afe81 hevc/mvs: more cleanups
cherry picked from commit c4e467e79f59453783c97bc6044082edb7a6468b

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 15:13:09 +02:00
Mickaël Raulet
3ad0460831 hevc/mvs: code cleaning
cherry picked from commit 74f10da013ea71a3f6b77cdff989c4574c8a5ea2

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 15:05:00 +02:00
Mickaël Raulet
c4d63cd230 hevc/mvs: simplifying derive_spatial_merge_candidates function
cherry picked from commit 99be11cf08a5628d0bb6ac7f4958bf9dd35cda62

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 14:17:19 +02:00
Mickaël Raulet
e9bb45ba79 hevc/mvs: remove same prediction block
cherry picked from commit 1206262ba1ef810328cadce99d5cdc0bf9285e4d

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 14:12:00 +02:00
Mickaël Raulet
560b0253ff hevc/mvs: simplify derive_temporal_colocated_mvs
cherry picked from commit def7db60966765f4687250d766b40dbcf0f7e503

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 14:11:43 +02:00
Mickaël Raulet
062b9f2cdb fate/hevc: update with new Rext bitstreams
cherry picked from commit d0924959f16d42630cfd7b3b4fce9fead60a4aa8

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 13:59:00 +02:00
Mickaël Raulet
37822a566f hevc/rext: remove warning for cross component prediction
cherry picked from commit fb595102593c94179502bb1967f978a1d99cc7cb

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 13:59:00 +02:00
Stefano Sabatini
44071b0d25 lavf/segment: sanitize segment end time in case last packet do not have a defined duration
In particular, avoids to set segments with duration set to 0
(e.g. segment with a single reference frame for which duration is
undefined).
2014-07-22 13:53:31 +02:00
Stefano Sabatini
713157484a lavf/segment: do not allow to create segments with no key-frames
Fix trac ticket #3749.
2014-07-22 13:43:06 +02:00
Mickaël Raulet
627c044f50 hevc/rext: fixing rdpcm and scaling list for Range Extension
-new rext bitstreams:
PERSIST_RPARAM_A_RExt_Sony_1.bit           ok    =
QMATRIX_A_RExt_Sony_1.bit                  ok    =
SAO_A_RExt_MediaTek_1.bit                  ok    =

(cherry picked from commit cdea029d452c521f8e5bcbe589f44b13a4011604)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 13:07:54 +02:00
Mickaël Raulet
fa0506e413 hevc/rext: update boundary strength for chroma deblocking filter
cherry picked from commit 7d05c95ac5a63d7675bf645e74b4cf1fffff4796

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 13:00:14 +02:00
Michael Niedermayer
4ec1cb2497 Merge commit '78670fbf07bd03479073d4218440de4914304680'
* commit '78670fbf07bd03479073d4218440de4914304680':
  imgconvert: cosmetics: Reshuffle defines to reduce ifdeffery

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 12:55:11 +02:00
Michael Niedermayer
7cdb3b2b79 Merge commit '6869612f5c7d4d2f20f69a5658328a761deadb1c'
* commit '6869612f5c7d4d2f20f69a5658328a761deadb1c':
  arm: Macroize the test for 'setend' CPU instruction support

Conflicts:
	libavcodec/arm/h264dsp_init_arm.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 12:46:13 +02:00
Andreas Cadhalpun
135ea609ce libavformat/img2dec.c: Add a long_name to the piped image demuxers
This fixes segfaults in gst-libav1.0 compiled against FFmpeg 2.3.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 05:14:44 +02:00
Michael Niedermayer
c933f2c4cc Merge commit '16e6652286213014c28a9c3af70435e767d28638'
* commit '16e6652286213014c28a9c3af70435e767d28638':
  aarch64: NEON intrinsics dct_unquantize_h263.

Conflicts:
	libavcodec/mpegvideo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 03:35:29 +02:00
Michael Niedermayer
135b1a3f2c Merge commit 'd45ebd4876ab8fc07736a644de07e1b1d11a8e5d'
* commit 'd45ebd4876ab8fc07736a644de07e1b1d11a8e5d':
  configure: add support for neon intrinsics

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 03:06:43 +02:00
Michael Niedermayer
ab7c67905d Merge commit '389380c27915b0505fed538cd54c035c891fabd9'
* commit '389380c27915b0505fed538cd54c035c891fabd9':
  http: Do move the class instantiation in the conditional block

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 03:00:06 +02:00
Michael Niedermayer
e621e6cac6 Merge commit '28df1d24112c6ad0763985df2faeeb198cfbad69'
* commit '28df1d24112c6ad0763985df2faeeb198cfbad69':
  http: Provide an option to override the HTTP method

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 02:51:35 +02:00
Michael Niedermayer
dac096cf39 Merge commit 'bb0babd7054bed7edfd9f4d6b20cdba864de1830'
* commit 'bb0babd7054bed7edfd9f4d6b20cdba864de1830':
  build: Support executable only ldflags

Conflicts:
	Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 02:45:45 +02:00
Michael Niedermayer
7f1543d46c Merge commit 'b396bbad100a7493691d09b8dceba91e3cd28e2e'
* commit 'b396bbad100a7493691d09b8dceba91e3cd28e2e':
  configure: Do not add extralibs to avresample .pc file

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 02:40:00 +02:00
Michael Niedermayer
c7168d1a22 Merge commit 'fc27e7272e6f1a7053812f8a15b1b7098de44c71'
* commit 'fc27e7272e6f1a7053812f8a15b1b7098de44c71':
  mpegts: do not export empty language tags

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 02:34:12 +02:00
Dale Curtis
70f7006eb3 avformat/mov: Pass through iTunSMPB from MOV.
Allows demuxing of iTunes files into adts while preserving gapless
metadata.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 02:11:48 +02:00
Dale Curtis
42f3bc4072 avformat/adtsenc: Optionally enable ID3 in ADTS.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 02:11:25 +02:00
Diego Biurrun
78670fbf07 imgconvert: cosmetics: Reshuffle defines to reduce ifdeffery 2014-07-21 15:08:01 -07:00
Ben Avison
6869612f5c arm: Macroize the test for 'setend' CPU instruction support
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-07-21 15:08:01 -07:00
James Yu
16e6652286 aarch64: NEON intrinsics dct_unquantize_h263.
Intrinsics only used on aarch64 since the existing ARMv7 NEON asm
is slightly faster (Cortex-A9, gcc-4.8, micro-benchmarks and full
decoding time).

Signed-off-by: James Yu <james.yu@linaro.org>
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-07-21 23:18:29 +02:00
Janne Grunau
d45ebd4876 configure: add support for neon intrinsics 2014-07-21 23:18:29 +02:00
Michael Niedermayer
c75c594e5a Merge commit '4d2d0595cf9dd199c35aefef450952d209a56573'
* commit '4d2d0595cf9dd199c35aefef450952d209a56573':
  fate: Split audio- and video-related RealMedia targets

Conflicts:
	tests/fate/real.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-21 23:08:41 +02:00
Michael Niedermayer
16c66f3151 Merge commit '2ce53880bfeb431decdd2fc82298c0aff823ab47'
* commit '2ce53880bfeb431decdd2fc82298c0aff823ab47':
  build: Conditionally compile all avcodec test programs

Conflicts:
	libavcodec/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-21 22:29:15 +02:00
Luca Barbato
389380c279 http: Do move the class instantiation in the conditional block
Remove a warning if https support is disabled.
2014-07-21 22:18:35 +02:00
Luca Barbato
28df1d2411 http: Provide an option to override the HTTP method
Certain servers accept only PUT as valid method.
2014-07-21 22:18:35 +02:00
Luca Barbato
bb0babd705 build: Support executable only ldflags
The options is useful to build position-independent executables on
hardened systems (e.g. Android L and Gentoo Hardened).
2014-07-21 22:18:35 +02:00
Luca Barbato
b396bbad10 configure: Do not add extralibs to avresample .pc file
The library does not have external dependencies.
2014-07-21 22:18:35 +02:00
Michael Niedermayer
9a436ae30f Merge commit '16b7328058fa600d5158c84d9cc621a134eb88bc'
* commit '16b7328058fa600d5158c84d9cc621a134eb88bc':
  build: Conditionally build and run DCT test program

Conflicts:
	libavcodec/Makefile
	libavcodec/dct-test.c
	tests/fate/libavcodec.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-21 22:02:23 +02:00
Jan Gerber
fc27e7272e mpegts: do not export empty language tags
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-07-21 19:39:31 +00:00
Michael Niedermayer
79df91bfc4 Merge commit 'bd499d9af668aef979ec9f3f3215b8dd508c7ec1'
* commit 'bd499d9af668aef979ec9f3f3215b8dd508c7ec1':
  build: Conditionally build and test iirfilter

Conflicts:
	libavcodec/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-21 21:35:02 +02:00
Michael Niedermayer
94c4ad27dc doc/APIchanges: mention FF_INPUT_BUFFER_PADDING_SIZE chage
Suggested-by: Andreas Cadhalpun
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-21 21:16:24 +02:00
Katerina Barone-Adesi
4d2d0595cf fate: Split audio- and video-related RealMedia targets
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-07-21 12:13:58 -07:00
Michael Niedermayer
265dadbe7d avutil/opt: Support general expressions involving AVOption constants in set_string_number()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-21 17:00:37 +02:00
Michael Niedermayer
88efc013b1 avutil: move QP2LAMBDA constant to eval
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-21 15:30:45 +02:00
Michael Niedermayer
2c5c7f1089 avutil/opt: remove dead code from set_string_number()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-21 15:28:53 +02:00
Muhammad Faiz
4927c0a988 avutil/opt.c: fix bug when parsing option
fix these strange behavior:
-af flanger=delay=10 [OK]
-af flanger=delay=1e1 [OK]
-af flanger=delay=1e+1 [Error]
-af flanger=delay=0.1 [OK]
-af flanger=delay=1e-1 [Error]

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-21 15:20:39 +02:00
Diego Biurrun
2ce53880bf build: Conditionally compile all avcodec test programs 2014-07-21 05:33:03 -07:00
Diego Biurrun
16b7328058 build: Conditionally build and run DCT test program 2014-07-21 05:32:35 -07:00
Diego Biurrun
bd499d9af6 build: Conditionally build and test iirfilter 2014-07-21 05:32:07 -07:00
Michael Niedermayer
4054171666 avcodec/dct-test: remove fixed array sizes
They are unneeded and make adding elements slightly harder as they
would need to be constantly updated

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-21 14:00:48 +02:00
Michael Niedermayer
c05dbb8744 Merge commit 'c3ec963d0d0fac2d817f7fbce2e89ed46eeba550'
* commit 'c3ec963d0d0fac2d817f7fbce2e89ed46eeba550':
  mjpeg: return proper error code

See: 2ebaadf35c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-21 13:54:28 +02:00
Michael Niedermayer
d986c414de Merge commit '81b9bf319226fe03436c80aaa8a2c91767cab7ce'
* commit '81b9bf319226fe03436c80aaa8a2c91767cab7ce':
  dct-test: Move arch-specific bits into arch-specific subdirectories

Conflicts:
	libavcodec/dct-test.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-21 13:33:51 +02:00
Michael Niedermayer
5b998dae59 Merge commit 'a9f3f5fadb57bae3f3ff0be69e56b2c6014f2513'
* commit 'a9f3f5fadb57bae3f3ff0be69e56b2c6014f2513':
  Revert "tiff: support reading gray+alpha at 8 bits"

Not merged, the pix fmt its not unknown

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-21 13:03:38 +02:00
Nidhi Makhijani
c3ec963d0d mjpeg: return proper error code
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-07-21 01:25:33 -07:00
Diego Biurrun
81b9bf3192 dct-test: Move arch-specific bits into arch-specific subdirectories 2014-07-21 01:10:11 -07:00
Janne Grunau
a9f3f5fadb Revert "tiff: support reading gray+alpha at 8 bits"
This reverts commit b31d76e45f as it
uses an unkown pixel format.
2014-07-21 08:35:32 +02:00
Muhammad Faiz
ce385c869c avfilter/biquads: avoid clipping when using floating type
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-21 03:48:18 +02:00
Michael Niedermayer
71e515c180 avformat/sapenc: Use av_mallocz_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-21 03:19:12 +02:00
Michael Niedermayer
437da3e349 avfilter/vf_owdenoise: use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-21 03:18:56 +02:00
Michael Niedermayer
ec59f027ac Merge commit '819bb3e81c72939ae1c1a4e5fc3dfdf3e98df074'
* commit '819bb3e81c72939ae1c1a4e5fc3dfdf3e98df074':
  fate: add h264-direct-bff test

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-21 02:27:28 +02:00
Michael Niedermayer
dc021a0218 Merge commit 'c39059bea3adebcd888571d1181db215eee54495'
* commit 'c39059bea3adebcd888571d1181db215eee54495':
  h264: Fix direct temporal mvs for bottom-field-first poc order

Conflicts:
	libavcodec/h264_direct.c

See: ebd1c505d2
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-21 02:16:13 +02:00
Michael Niedermayer
08b597b1f8 Merge commit 'b31d76e45fc3c6529dd7109e721676f3ec376d00'
* commit 'b31d76e45fc3c6529dd7109e721676f3ec376d00':
  tiff: support reading gray+alpha at 8 bits

See: f746f37901
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-21 02:05:22 +02:00
Michael Niedermayer
110420aac0 Merge commit '4de8b60684ce13dff3e3d372dae4f49b9e53f755'
* commit '4de8b60684ce13dff3e3d372dae4f49b9e53f755':
  idct: Move arm-specific declarations to a header in the arm directory

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-21 01:56:22 +02:00
Vittorio Giovara
819bb3e81c fate: add h264-direct-bff test 2014-07-20 23:32:13 +01:00
Ronald S. Bultje
c39059bea3 h264: Fix direct temporal mvs for bottom-field-first poc order
Such files can be created using the --bff x264 option.

Sample-Id: h264_direct_temporal_mvs_bff.mkv
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-07-20 23:32:13 +01:00
Carl Eugen Hoyos
b31d76e45f tiff: support reading gray+alpha at 8 bits
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-07-20 23:32:13 +01:00
Andreas Cadhalpun
e59ce54412 doc: fix two spelling errors
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-20 23:58:36 +02:00
Diego Biurrun
4de8b60684 idct: Move arm-specific declarations to a header in the arm directory 2014-07-20 13:02:17 -07:00
Michael Niedermayer
9a8a18a2e9 doc/issue_tracker: Correct sub-domain for mailing list
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-20 20:57:53 +02:00
Michael Niedermayer
02e3e3ea51 Merge commit '9f99a5f1d078721a30a76aec27c58805b7b87e58'
* commit '9f99a5f1d078721a30a76aec27c58805b7b87e58':
  mpegencconetxt: Move rv10-specific orig_width/orig_height where they belong

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-20 20:32:24 +02:00
db0company
e2842cfe76 MAINTAINERS: Add db0 for the website
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-20 17:01:59 +02:00
Nidhi Makhijani
9f99a5f1d0 mpegencconetxt: Move rv10-specific orig_width/orig_height where they belong
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-07-20 05:13:01 -07:00
Jan Gerber
73b7a360d8 matroskaenc: Don't set language to empty string, use "und"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-20 14:03:00 +02:00
Mickaël Raulet
729479a199 fate/hevc: update fate rext tests
cherry picked from commit e6ee89e6fab60a3faa1f933b7774e819846f70c4

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-20 05:42:13 +02:00
Mickaël Raulet
950a4f8326 hevc: fix offset for sao temporary frame
fixes fate on alpha

cherry picked from commit 0a8ce1cbdaff7cd026bcf95ee3787bc7b4c063ee

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-20 02:48:53 +02:00
Clément Bœsch
28f31e78eb doc: restore default.css
This partially reverts 9ce64ba111.

FATE still needs it until its design is updated to the new website
version.
2014-07-20 02:01:50 +02:00
db0
9ce64ba111 doc: update the documentation generator to match the new website
Signed-off-by: db0 <db0company@gmail.com>
Signed-off-by: Clément Bœsch <u@pkh.me>
2014-07-20 01:51:28 +02:00
Michael Niedermayer
b53bdae11f swscale/utils: fix rgb -> fullrange yuv
Fixes part of Ticket3785

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-19 23:24:26 +02:00
Michael Niedermayer
d84abf35c0 swscale/utils: remove unused define
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-19 22:45:43 +02:00
Michael Niedermayer
cb169126c5 avformat/dvenc: Implement 32khz & 44.1khz for 25/50fps
30000/1001 fps isnt implemented as i dont know which are the correct interleaving parameters,
pointers to the appropriate spec and page are welcome

Fixes Ticket2597

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-19 20:48:22 +02:00
Michael Niedermayer
a7bb22c5aa avformat/seek: use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-19 19:44:56 +02:00
Michael Niedermayer
d9ddbaa924 avfilter/avfilter: use av_malloc(z)_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-19 19:42:46 +02:00
Michael Niedermayer
d13a731fc1 avcodec/hevc_ps: Check abs_delta_rps
Fixes integer overflow

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-19 17:30:44 +02:00
Michael Niedermayer
ba80b8d29b avcodec/hevc: check nb_cpb
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-19 16:51:05 +02:00
Christophe Gisquet
7a4a5515b0 hevc: use intreadwrite
When dealing with MVs, both components may be processed at a time.

On Win64, 560 to 539 cycles for derive_spatial_merge_candidates.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-19 15:27:08 +02:00
Christophe Gisquet
8da1defe69 libavutil: document side effects of macros
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-19 14:55:46 +02:00
Christophe Gisquet
5e55c7e1bc hevc: report more precise progress
There's a lag of one CTB line for SAO behind deblocking filter, except for
last line. However, once SAO has been completed on a line, all its pixels,
i.e. up to y+ctb_size are filtered and ready to be used as reference.

Without SAO, when deblocking filter finishes a CTB line, only the bottom
bottom 4 pixels may be filtered when next CTB is process by the deblocing.

The await_progess for hevc then checks whether the bottom pixels of a PU
requires access beyond that point, so the reporting should effectively
report up to the the above limits.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-19 14:20:10 +02:00
Michael Niedermayer
7bdbd2653f Merge commit '1a583c0c60240adb8fa6620c6df33f1a0a0fe5d9'
* commit '1a583c0c60240adb8fa6620c6df33f1a0a0fe5d9':
  fdct: Move ppc-specific declarations to a header in the ppc directory

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-19 14:10:25 +02:00
Michael Niedermayer
776647360d Merge commit '5dcc201505f71b1e73e9eef12ce89d4eed252ad0'
* commit '5dcc201505f71b1e73e9eef12ce89d4eed252ad0':
  simple_idct: Move x86-specific declarations to a header in the x86 directory

Conflicts:
	libavcodec/x86/simple_idct.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-19 13:56:29 +02:00
Michael Niedermayer
6da96a9fc9 Merge commit '85cabb8d002f2cd100ced5cc17d87bfc9460d314'
* commit '85cabb8d002f2cd100ced5cc17d87bfc9460d314':
  fdct: Move x86-specific declarations to a header in the x86 directory

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-19 13:45:59 +02:00
Michael Niedermayer
80acedae3e Merge commit 'd6e1d37100af568211f28ec0bcf7958a3a2a299e'
* commit 'd6e1d37100af568211f28ec0bcf7958a3a2a299e':
  oss_audio: Split muxer and demuxer

Conflicts:
	libavdevice/Makefile
	libavdevice/oss_audio.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-19 13:39:12 +02:00
Michael Niedermayer
54cba3f53e swscale/x86/hscale_fast_bilinear_simd: add inline asm guards
Should fix MSVC build

Found-by: jamrial
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-19 13:26:36 +02:00
Diego Biurrun
1a583c0c60 fdct: Move ppc-specific declarations to a header in the ppc directory 2014-07-19 02:38:22 -07:00
Diego Biurrun
5dcc201505 simple_idct: Move x86-specific declarations to a header in the x86 directory 2014-07-19 02:33:36 -07:00
Diego Biurrun
85cabb8d00 fdct: Move x86-specific declarations to a header in the x86 directory 2014-07-19 02:25:59 -07:00
Michael Niedermayer
d5ee3580d8 sws: move inline asm hscale to MMX_OBJS
Found-by: jamrial
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-19 05:53:42 +02:00
Michael Niedermayer
6532a1a828 sws/x86: split mmxext fast bilinear scaler out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-19 05:36:27 +02:00
Michael Niedermayer
e9f7c7aef9 sws: Move fast bilinear C code into seperate file
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-19 05:36:26 +02:00
Michael Niedermayer
76899be113 swscale/swscale_internal: add needed version.h
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-19 05:36:26 +02:00
Michael Niedermayer
a86d527c8b Merge commit 'e0a2e60c0a6cbcceef08e94af5081d2aa8e6a52f'
* commit 'e0a2e60c0a6cbcceef08e94af5081d2aa8e6a52f':
  dct-test: Reuse enum idct_permutation_type instead of duplicating it

Conflicts:
	libavcodec/dct-test.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-19 04:15:38 +02:00
Timothy Gu
69c7aad494 oss_audio: use a macro to simplify ioctl() error checking
Also add a note about SNDCTL_DSP_GETFMTS which may fail even if OSS is
available.

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-19 03:38:31 +02:00
Mickaël Raulet
e1e3ec9b02 hevc: fix transquant_bypass
cherry picked from commit 4a16cb2c70728a55d2fd723aff01b13ea259c4df
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-19 00:11:05 +02:00
Nidhi Makhijani
d6e1d37100 oss_audio: Split muxer and demuxer
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-07-18 15:04:25 -07:00
Mickaël Raulet
fdb20db642 hevc/rext: put a warning log message instead of an error log message
cherry picked from commit 243cb99cff727d6a14c32cdff2748f6c255dbaf4
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 23:47:06 +02:00
Carl Eugen Hoyos
ee88a2080e Parse dri when receiving jpg via rtp.
Based on a patch by contact at iridiummobile ru.
Fixes ticket #3780.
2014-07-18 23:11:11 +02:00
Carl Eugen Hoyos
0e70266bbf Write valid free atom when -moov_size is specified.
Fixes ticket #3769.
2014-07-18 23:11:11 +02:00
Michael Niedermayer
ffa0b510cd avcodec/hevc: fix pict_type
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 22:59:03 +02:00
Mickaël Raulet
d249e6828e hevc/sao: optimze sao implementation
- adding one extra pixel all around the frame
- do not copy when SAO is not applied

5% improvement

cherry picked from commit 10fc29fc19a12c4d8168fbe1a954b76386db12d0
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 22:46:50 +02:00
Michael Niedermayer
2897447ddf Merge commit '913fa85a2c1fcd71802f7decdef5f355e0d9c757'
* commit '913fa85a2c1fcd71802f7decdef5f355e0d9c757':
  dct-test: Skip indirection for MMX IDCT permutation

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 22:45:32 +02:00
Michael Niedermayer
097bf834ba Merge commit '9e0b29911f1f167381a7dbdfca68bf417b8c767b'
* commit '9e0b29911f1f167381a7dbdfca68bf417b8c767b':
  x86: dnxhdenc: Eliminate some unnecessary ifdefs

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 22:33:24 +02:00
Michael Niedermayer
4b0fa45b84 Merge commit 'b4edbe9a0eb48423fbf249b0ca7fb62838bdb7f5'
* commit 'b4edbe9a0eb48423fbf249b0ca7fb62838bdb7f5':
  libgsm: Split decoder and encoder

Conflicts:
	libavcodec/libgsmenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 22:28:34 +02:00
Michael Niedermayer
521f569734 Merge commit '8b0dd4942aac320d1ca3c40fa7ea1be342c71273'
* commit '8b0dd4942aac320d1ca3c40fa7ea1be342c71273':
  idctdsp: prettyprinting cosmetics

Conflicts:
	libavcodec/idctdsp.c
	libavcodec/ppc/idctdsp.c
	libavcodec/x86/idctdsp_init.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 22:16:04 +02:00
Diego Biurrun
e0a2e60c0a dct-test: Reuse enum idct_permutation_type instead of duplicating it 2014-07-18 13:04:39 -07:00
Michael Niedermayer
42d326353c Merge commit 'b4987f72197e0c62cf2633bf835a9c32d2a445ae'
* commit 'b4987f72197e0c62cf2633bf835a9c32d2a445ae':
  idct: Convert IDCT permutation #defines to an enum

Conflicts:
	libavcodec/idctdsp.c
	libavcodec/x86/cavsdsp.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 22:01:17 +02:00
Michael Niedermayer
f6ed5df9c0 Merge commit 'c0de9159a7ba5707aa0a5c2bc73ae78b7b87ec46'
* commit 'c0de9159a7ba5707aa0a5c2bc73ae78b7b87ec46':
  avdevice: Give names to anonymously typedeffed structs

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 21:48:37 +02:00
Michael Niedermayer
cff61d595e Merge commit '24af1aa0f70362a66cda04c9d7cd012e019f5572'
* commit '24af1aa0f70362a66cda04c9d7cd012e019f5572':
  fft: Convert FFT/MDCT permutation type #defines to enums

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 21:43:50 +02:00
Michael Niedermayer
29119aff6c Merge commit '746ad4e0df7faf93329804e412ec53c1d929a75b'
* commit '746ad4e0df7faf93329804e412ec53c1d929a75b':
  dct-test: Improve CPU flags struct member name

Conflicts:
	libavcodec/dct-test.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 21:36:46 +02:00
Michael Niedermayer
2dbda9378c Merge commit 'cb44b21da1f59923be577f08c267ec270529be97'
* commit 'cb44b21da1f59923be577f08c267ec270529be97':
  dct-test: Move cpu_flags variable out of global scope

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 21:30:25 +02:00
Peter B
0f70131089 fate: Add test for wav Peak Envelope Chunk encoder (levl chunk).
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 19:38:54 +02:00
Carl Eugen Hoyos
5dcd43cd86 Fix make checkheaders for libavcodec/proresdsp.h. 2014-07-18 19:05:07 +02:00
Diego Biurrun
913fa85a2c dct-test: Skip indirection for MMX IDCT permutation 2014-07-18 09:58:17 -07:00
Diego Biurrun
9e0b29911f x86: dnxhdenc: Eliminate some unnecessary ifdefs 2014-07-18 09:58:17 -07:00
Nidhi Makhijani
b4edbe9a0e libgsm: Split decoder and encoder
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-07-18 17:27:54 +02:00
Diego Biurrun
8b0dd4942a idctdsp: prettyprinting cosmetics 2014-07-18 07:51:03 -07:00
Diego Biurrun
b4987f7219 idct: Convert IDCT permutation #defines to an enum
Also rename the enum values to be consistent with other DCT permutations.
2014-07-18 07:51:03 -07:00
Diego Biurrun
c0de9159a7 avdevice: Give names to anonymously typedeffed structs
Anonymous structs can cause trouble in header files, so try to
avoid them altogether as a matter of good style.
2014-07-18 07:43:36 -07:00
Diego Biurrun
24af1aa0f7 fft: Convert FFT/MDCT permutation type #defines to enums 2014-07-18 07:29:13 -07:00
Diego Biurrun
746ad4e0df dct-test: Improve CPU flags struct member name 2014-07-18 06:14:43 -07:00
Diego Biurrun
cb44b21da1 dct-test: Move cpu_flags variable out of global scope 2014-07-18 06:14:42 -07:00
Andrey Utkin
cb8cb85da7 lavfi/drawtext: add alias "expr_int_format" to expansion function "eif"
Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 14:24:34 +02:00
Timothy Gu
0035783488 smacker: remove dead code
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 13:31:19 +02:00
Michael Niedermayer
d13effb0b4 Merge commit '7e18a727d2c2a19f22fcf68875d1b05fd2eafcef'
* commit '7e18a727d2c2a19f22fcf68875d1b05fd2eafcef':
  arm: cosmetics: Consistently use lowercase for shift operators

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 13:17:29 +02:00
Michael Niedermayer
cd4497d8c5 Merge commit 'fe67f3fbb5f9f6a6b60f837f6bc5e087ac11f3bf'
* commit 'fe67f3fbb5f9f6a6b60f837f6bc5e087ac11f3bf':
  arm: cosmetics: Fix a misaligned asm operand

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 12:44:03 +02:00
Martin Storsjö
7e18a727d2 arm: cosmetics: Consistently use lowercase for shift operators
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-07-18 11:17:40 +03:00
Martin Storsjö
fe67f3fbb5 arm: cosmetics: Fix a misaligned asm operand
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-07-18 11:17:35 +03:00
James Almer
277e5ca617 alpha/me_cmp: move code out of dsputil
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 05:15:17 +02:00
James Almer
95a2d705cd alpha/idctdsp: move disabled cruft out of dsputil
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 05:15:05 +02:00
Michael Niedermayer
d5ba19e611 avcodec/a64multienc use av_freep()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 04:57:00 +02:00
Timothy Gu
cd3c85ac5c a64multienc: remove dead assignment
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 04:56:18 +02:00
Timothy Gu
b64808e9dd kerndeint: remove dead assignments
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 04:44:58 +02:00
Michael Niedermayer
c67cf84628 Merge commit '5a272190a04666f0fe41be767396b30712638c21'
* commit '5a272190a04666f0fe41be767396b30712638c21':
  armv6: Accelerate butterflies_float

See: 57641410d1
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 03:44:28 +02:00
Michael Niedermayer
7809c26006 Merge commit '5edad2c4a1f46bcc56be755af86ab355c2f1b37f'
* commit '5edad2c4a1f46bcc56be755af86ab355c2f1b37f':
  armv6: Accelerate vector_fmul_window

See: 649c666137
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 03:14:22 +02:00
Michael Niedermayer
c27adb37ef Merge commit '87552d54d3337c3241e8a9e1a05df16eaa821496'
* commit '87552d54d3337c3241e8a9e1a05df16eaa821496':
  armv6: Accelerate ff_fft_calc for general case (nbits != 4)

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 03:12:02 +02:00
Michael Niedermayer
4c735ee0e3 Merge commit '5c22e8e4ad0852d61d5c4ba8d67d33fd72339497'
* commit '5c22e8e4ad0852d61d5c4ba8d67d33fd72339497':
  armv6: Accelerate ff_imdct_half for general case (mdct_bits != 6)

See: 42c1cc35b7
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 02:33:26 +02:00
Michael Niedermayer
c527c14d63 avcodec/dvenc: clear all dsp contexts
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 00:48:34 +02:00
Ben Avison
5a272190a0 armv6: Accelerate butterflies_float
I benchmarked the result by measuring the number of gperftools samples that
hit anywhere in the AAC decoder (starting from aac_decode_frame()) or
specifically in butterflies_float_c() / ff_butterflies_float_vfp() for the
same sample AAC stream:

                   Before          After
                   Mean   StdDev   Mean   StdDev  Confidence  Change
Audio decode       1542.8 43.7     1470.5 41.5    100.0%      +4.9%
butterflies_float  130.0  11.9     70.2   12.1    100.0%      +85.2%

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-07-18 01:34:38 +03:00
Ben Avison
5edad2c4a1 armv6: Accelerate vector_fmul_window
I benchmarked the result by measuring the number of gperftools samples that
hit anywhere in the AAC decoder (starting from aac_decode_frame()) or
specifically in vector_fmul_window_c() / ff_vector_fmul_window_vfp() for the
same sample AAC stream:

                    Before          After
                    Mean   StdDev   Mean   StdDev  Confidence  Change
Audio decode        1598.2 47.4     1529.2 25.4    100.0%      +4.5%
vector_fmul_window  244.0  22.1     188.9  22.3    100.0%      +29.2%

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-07-18 01:34:31 +03:00
Ben Avison
87552d54d3 armv6: Accelerate ff_fft_calc for general case (nbits != 4)
The previous implementation targeted DTS Coherent Acoustics, which only
requires nbits == 4 (fft16()). This case was (and still is) linked directly
rather than being indirected through ff_fft_calc_vfp(), but now the full
range from radix-4 up to radix-65536 is available. This benefits other codecs
such as AAC and AC3.

The implementaion is based upon the C version, with each routine larger than
radix-16 calling a hierarchy of smaller FFT functions, then performing a
post-processing pass. This pass benefits a lot from loop unrolling to
counter the long pipelines in the VFP. A relaxed calling standard also
reduces the overhead of the call hierarchy, and avoiding the excessive
inlining performed by GCC probably helps with I-cache utilisation too.

I benchmarked the result by measuring the number of gperftools samples that
hit anywhere in the AAC decoder (starting from aac_decode_frame()) or
specifically in the FFT routines (fft4() to fft512() and pass()) for the
same sample AAC stream:

              Before          After
              Mean   StdDev   Mean   StdDev  Confidence  Change
Audio decode  2245.5 53.1     1599.6 43.8    100.0%      +40.4%
FFT routines  940.6  22.0     348.1  20.8    100.0%      +170.2%

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-07-18 01:34:23 +03:00
Ben Avison
5c22e8e4ad armv6: Accelerate ff_imdct_half for general case (mdct_bits != 6)
The previous implementation targeted DTS Coherent Acoustics, which only
requires mdct_bits == 6. This relatively small size lent itself to
unrolling the loops a small number of times, and encoding offsets
calculated at assembly time within the load/store instructions of each
iteration.

In the more general case (codecs such as AAC and AC3) much larger arrays
are used - mdct_bits == [8, 9, 11]. The old method does not scale for
these cases, so more integer registers are used with non-unrolled versions
of the loops (and with some stack spillage). The postrotation filter loop
is still unrolled by a factor of 2 to permit the double-buffering of some
VFP registers to facilitate overlap of neighbouring iterations.

I benchmarked the result by measuring the number of gperftools samples
that hit anywhere in the AAC decoder (starting from aac_decode_frame())
or specifically in ff_imdct_half_c / ff_imdct_half_vfp, for the same
example AAC stream:

                  Before          After
                  Mean   StdDev   Mean   StdDev  Confidence  Change
aac_decode_frame  2368.1 35.8     2117.2 35.3    100.0%      +11.8%
ff_imdct_half_*   457.5  22.4     251.2  16.2    100.0%      +82.1%

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-07-18 01:34:08 +03:00
Michael Niedermayer
162cffca80 avcodec/me_cmp: restore author attribution and copyrights
These where removed by libav in

See: git show -C 2d60444331
diff --git a/libavcodec/dsputil.c b/libavcodec/me_cmp.c
similarity index 98%
rename from libavcodec/dsputil.c
rename to libavcodec/me_cmp.c
index ba71a99..9fcc937 100644
--- a/libavcodec/dsputil.c
+++ b/libavcodec/me_cmp.c
@@ -1,8 +1,4 @@
 /*
- * DSP utils
- * Copyright (c) 2000, 2001 Fabrice Bellard
- * Copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
- *
  * This file is part of Libav.
  *
  * Libav is free software; you can redistribute it and/or

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-17 23:59:28 +02:00
Michael Niedermayer
3a2d1465c8 Merge commit '2d60444331fca1910510038dd3817bea885c2367'
* commit '2d60444331fca1910510038dd3817bea885c2367':
  dsputil: Split motion estimation compare bits off into their own context

Conflicts:
	configure
	libavcodec/Makefile
	libavcodec/arm/Makefile
	libavcodec/dvenc.c
	libavcodec/error_resilience.c
	libavcodec/h264.h
	libavcodec/h264_slice.c
	libavcodec/me_cmp.c
	libavcodec/me_cmp.h
	libavcodec/motion_est.c
	libavcodec/motion_est_template.c
	libavcodec/mpeg4videoenc.c
	libavcodec/mpegvideo.c
	libavcodec/mpegvideo_enc.c
	libavcodec/x86/Makefile
	libavcodec/x86/me_cmp_init.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-17 23:27:40 +02:00
Michael Niedermayer
6be71e9955 Merge commit 'a578b0407dc983aecd72028e1127062689b67089'
* commit 'a578b0407dc983aecd72028e1127062689b67089':
  configure: Assume runtime cpu detection on arm on --target-os=android as well

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-17 22:20:53 +02:00
Michael Niedermayer
d6676a1605 Merge commit 'c23ce454b3e33634a188d6facfd2b7182af5af93'
* commit 'c23ce454b3e33634a188d6facfd2b7182af5af93':
  x86: dsputil: Coalesce all init files

Conflicts:
	libavcodec/x86/dsputil_init.c
	libavcodec/x86/dsputil_x86.h
	libavcodec/x86/motion_est.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-17 22:07:52 +02:00
Nicolas George
8e2976860f lavd/x11grab: reindent after last commit. 2014-07-17 18:28:58 +02:00
Nicolas George
099aff5c42 lavfi: check refcount before merging.
When merging the formats around the automatically inserted
convert filters, the refcount of the format lists can not be 0.
Coverity does not detect it, and suspects a memory leak,
because if refcount is 0 the newly allocated lists are not
stored anywhere. That gives CIDs 1224282, 1224283 and 1224284.
Lists with refcount 0 are used in can_merge_formats(), so the
asserts can not be moved inside the merge functions.
2014-07-17 18:12:34 +02:00
Nicolas George
1d12df1ad7 lavd/x11grab: add an option to disable MIT-SHM.
With remote displays supporting the MIT-SHM extension,
the extension is detected and used, but attaching fails
asynchronously.
2014-07-17 18:12:15 +02:00
Nicolas George
16c6795465 lavd/x11grab: check 32-bits color masks.
The X11 servers by VNC, at 32-bits depths, has the following masks:
R:0x000007ff G:0x003ff800 B:0xffc00000
This is not compatible with AV_PIX_FMT_0RGB32, and the result
is success with completely wrong colors.
2014-07-17 18:11:56 +02:00
Nicolas George
36fbe3c789 lavd/x11grab: change error code for unsupported visuals. 2014-07-17 18:11:55 +02:00
Nicolas George
a65c0a3fe8 lavd/x11grab: disable drawing mouse without XFixes.
Fix a segfault if the XFixes extension is not available on
the X11 server.
Can be reproduced using the VNC server.
2014-07-17 18:11:55 +02:00
Diego Biurrun
2d60444331 dsputil: Split motion estimation compare bits off into their own context 2014-07-17 09:07:10 -07:00
Michael Niedermayer
dca22ab055 avcodec/resample: Use av_m/realloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-17 18:00:25 +02:00
Michael Niedermayer
ad516dd271 avcodec/resample2: Use av_malloc(z)_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-17 18:00:25 +02:00
Michael Niedermayer
f46e876027 ffserver: use av_mallocz_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-17 18:00:25 +02:00
Stefano Sabatini
526bd7bdfa lavf/segment: set segment end time when the first packet arrives
Avoid negative durations in case there is a single packet in the current
segment, since in that case the end time is still set to the previous
segment end time.
2014-07-17 16:51:51 +02:00
Stefano Sabatini
3d38c99041 lavf/segment: fix weird indent 2014-07-17 16:51:51 +02:00
Stefano Sabatini
b6a8c5245f lavf/segment: show incoming packet duration in debug message 2014-07-17 16:51:51 +02:00
Stefano Sabatini
5acad50056 lavf/segment: only use reference frames for computing the segment end time
This avoids a systematic overestimate of the segments duration when there
are several streams.

Fix trac ticket #3724.
2014-07-17 16:51:50 +02:00
Martin Storsjö
a578b0407d configure: Assume runtime cpu detection on arm on --target-os=android as well
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-07-17 17:47:00 +03:00
Michael Niedermayer
88f038ac97 avformat/dv: implement fallback in dv_extract_pack()
Fixes Ticket2340
Fixes Ticket2341

Based-on mail from Dave Rice <dave@dericed.com>
Tested-by: Dave Rice <dave@dericed.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-17 15:29:27 +02:00
Michael Niedermayer
e5cb7795fc Merge commit '324ff59444ff5470bb325ff1e2be7c4b054fc944'
* commit '324ff59444ff5470bb325ff1e2be7c4b054fc944':
  avpacket: Check for and return errors in ff_interleave_add_packet()

Conflicts:
	libavformat/audiointerleave.c
	libavformat/internal.h
	libavformat/mux.c

See: 4d7c71c364
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-17 14:20:10 +02:00
Michael Niedermayer
5fce29ef29 Merge commit '2db953f84671997e936f91140ffb5143c1537844'
* commit '2db953f84671997e936f91140ffb5143c1537844':
  h264: K&R formatting cosmetics

Conflicts:
	libavcodec/h264.c
	libavcodec/h264_direct.c
	libavcodec/h264_slice.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-17 14:00:01 +02:00
Michael Niedermayer
b884599f6a Merge commit 'a11ef610eec5241e226efbd1c5bb5eb45c88d2c2'
* commit 'a11ef610eec5241e226efbd1c5bb5eb45c88d2c2':
  h264: Remove some commented-out, broken cruft

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-17 13:50:31 +02:00
Stefano Sabatini
3babbf3bf4 doc/filters/drawtext: simplify example, use clip() eval function 2014-07-17 12:44:36 +02:00
Andrey Utkin
e9ff5df0b5 lavfi/drawtext: add fontcolor_expr option
Allow to dynamically evaluate the font color.

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2014-07-17 12:42:56 +02:00
Diego Biurrun
c23ce454b3 x86: dsputil: Coalesce all init files
This makes the init files match the structure of the dsputil split.
2014-07-17 03:32:56 -07:00
Nidhi Makhijani
324ff59444 avpacket: Check for and return errors in ff_interleave_add_packet()
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-07-17 03:18:46 -07:00
Luca Barbato
2db953f846 h264: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-07-17 03:05:24 -07:00
Andrey Utkin
dec87454de lavfi/drawtext: add expansion function eif()
It evaluates expression and outputs it as integer value, using specified
format.

Address trac ticket #3699.

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2014-07-17 11:29:43 +02:00
Stefano Sabatini
f3e886c7df lavu/eval: add clip function 2014-07-17 11:29:01 +02:00
Michael Niedermayer
7cd6d61da5 avutil/opt: try to fix the case where src==dst in av_opt_copy()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-17 06:21:42 +02:00
Simon Thelen
fa6716c66d libavformat/segment: change segment_list_size behavior to match hls_list_size behavior.
Make the segment muxer keep segment_list_size segments instead of
segment_list_size + 1 segments. This patch also changes the
documentation for segment_list_size to reduce possible confusion over
how many segments are kept.

this allows the segment list to
be limited to containing only one segment which used to be impossible
because a segment_list_size of 0 kept all the segments and a
segment_list_size of 1 kept 2 segments.

Signed-off-by: Simon Thelen <ffmpeg-dev@c-14.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-17 02:35:56 +02:00
Michael Niedermayer
37a0ac1d82 avformat: Micro bump for "md5enc: add format_version, to allow selecting which version to use"
Suggested-by: jamrial
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-16 22:58:29 +02:00
Michael Niedermayer
7da2592f56 avformat/md5enc: add format_version, to allow selecting which version to use
Currently there is just version 1
Fixes remaining part of Ticket2280

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-16 22:50:24 +02:00
Ben Avison
57641410d1 armv6: Accelerate butterflies_float
I benchmarked the result by measuring the number of gperftools samples that
hit anywhere in the AAC decoder (starting from aac_decode_frame()) or
specifically in butterflies_float_c() / ff_butterflies_float_vfp() for the
same sample AAC stream:

                   Before          After
                   Mean   StdDev   Mean   StdDev  Confidence  Change
Audio decode       1542.8 43.7     1470.5 41.5    100.0%      +4.9%
butterflies_float  130.0  11.9     70.2   12.1    100.0%      +85.2%

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-16 21:38:02 +02:00
Ben Avison
649c666137 armv6: Accelerate vector_fmul_window
I benchmarked the result by measuring the number of gperftools samples that
hit anywhere in the AAC decoder (starting from aac_decode_frame()) or
specifically in vector_fmul_window_c() / ff_vector_fmul_window_vfp() for the
same sample AAC stream:

                    Before          After
                    Mean   StdDev   Mean   StdDev  Confidence  Change
Audio decode        1598.2 47.4     1529.2 25.4    100.0%      +4.5%
vector_fmul_window  244.0  22.1     188.9  22.3    100.0%      +29.2%

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-16 21:37:41 +02:00
Diego Biurrun
a11ef610ee h264: Remove some commented-out, broken cruft 2014-07-16 12:26:34 -07:00
Michael Niedermayer
a3f752bcee avcodec/snow: remove unused variables
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-16 21:24:11 +02:00
Timothy Gu
1b03448385 aaccoder: remove unused assignment
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-16 20:55:24 +02:00
Michael Niedermayer
21dfabfa64 Merge commit 'adff0a8166345bb9513f0f658043fb6387e90122'
* commit 'adff0a8166345bb9513f0f658043fb6387e90122':
  arm: dsputil: Coalesce all init files

Conflicts:
	libavcodec/arm/Makefile
	libavcodec/arm/dsputil_arm.h
	libavcodec/arm/dsputil_init_arm.c
	libavcodec/arm/dsputil_init_armv6.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-16 20:09:25 +02:00
Diego Biurrun
adff0a8166 arm: dsputil: Coalesce all init files 2014-07-16 06:18:23 -07:00
Timothy Gu
9bc0410e4f vp9: remove unused assignment
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Reviewed-by: BBB
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-16 14:38:42 +02:00
Timothy Gu
ea6178fff8 get_bits: remove unused assignment
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-16 14:27:45 +02:00
Michael Niedermayer
aa1d096d02 avcodec/snow: only allocate space for edges when encoding
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-16 04:57:42 +02:00
Michael Niedermayer
8156e036e5 avcodec/snowdec: remove mpegvideoencdsp dependency
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-16 04:20:59 +02:00
James Almer
b67a0e99ee diracdec: don't call ff_emulated_edge_mc_8 directly
Use the videodsp function pointer instead.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-16 03:53:49 +02:00
Michael Niedermayer
f00bb086cb Merge commit '14b4e64eabc84c5a5e57c8ccc56bbeb95380823b'
* commit '14b4e64eabc84c5a5e57c8ccc56bbeb95380823b':
  g2meet: allow size changes within original sizes

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-16 03:40:51 +02:00
Michael Niedermayer
faafd1e4f1 Changelog: change "version <next>" to "version 2.3"
Found-by: jamrial
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-16 02:09:06 +02:00
Vittorio Giovara
14b4e64eab g2meet: allow size changes within original sizes 2014-07-15 20:08:16 -04:00
Michael Niedermayer
13a72d9b08 doc/APIchanges: update
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-16 02:06:44 +02:00
1749 changed files with 68562 additions and 38466 deletions

1
.gitattributes vendored Normal file
View File

@@ -0,0 +1 @@
*.pnm -diff -text

3
.gitignore vendored
View File

@@ -39,6 +39,7 @@
/doc/examples/avio_reading
/doc/examples/decoding_encoding
/doc/examples/demuxing_decoding
/doc/examples/extract_mvs
/doc/examples/filter_audio
/doc/examples/filtering_audio
/doc/examples/filtering_video
@@ -61,7 +62,9 @@
/tests/audiogen
/tests/base64
/tests/data/
/tests/pixfmts.mak
/tests/rotozoom
/tests/test_copy.ffmeta
/tests/tiny_psnr
/tests/tiny_ssim
/tests/videogen

View File

@@ -1,7 +1,92 @@
Entries are sorted chronologically from oldest to youngest within each release,
releases are sorted from youngest to oldest.
version <next>:
version 2.5.3:
- vp9: fix parser return values in error case
- ffmpeg: Clear error message array at init.
- avcodec/dvdsubdec: fix accessing dangling pointers
- avcodec/dvdsubdec: error on bitmaps with size 0
- cmdutils: Use 64bit for file size/offset related variable in cmdutils_read_file()
- mov: Fix negative size calculation in mov_read_default().
- avformat/mov: fix integer overflow in mov_read_udta_string()
- mov: Fix overflow and error handling in read_tfra().
- mov: Avoid overflow with mov_metadata_raw()
- avcodec/dvdsubdec: fix out of bounds accesses
- avfilter/vf_sab: fix filtering tiny images
- avformat/flvdec: Increase string array size
- avformat/flvdec: do not inject dts=0 metadata packets which failed to be parsed into a new data stream
- avformat/cdxl: Fix integer overflow of image_size
- libavformat: Build hevc.o when building the RTP muxer
version 2.5.2:
- avcodec/indeo3: ensure offsets are non negative
- avcodec/h264: Check *log2_weight_denom
- avcodec/hevc_ps: Check diff_cu_qp_delta_depth
- avcodec/h264: Clear delayed_pic on deallocation
- avcodec/hevc: clear filter_slice_edges() on allocation
- avcodec/dcadec: Check that the added xch channel isnt already there
- avcodec/indeo3: use signed variables to avoid underflow
- swscale: increase yuv2rgb table headroom
- avformat/mov: fix integer overflow of size
- avformat/mov: check atom nesting depth
- avcodec/utvideodec: Fix handling of slice_height=0
- avcodec/xface: correct the XFACE_MAX_* values
- avcodec/vmdvideo: Check len before using it in method 3
- configure: create the tests directory like the doc directory
- mmvideo: check frame dimensions
- jvdec: check frame dimensions
version 2.5.1:
- lavu/frame: fix malloc error path in av_frame_copy_props()
- avformat/aviobuf: Check that avio_seek() target is non negative
- swresample/soxr_resample: fix error handling
- avformat/flvdec: fix potential use of uninitialized variables
- avformat/crypto: fix key vs iv typo
- configure: use use_pkg_config() instead of check_pkg_config() for libsmbclient
- avcodec/ppc/vp3dsp_altivec: POWER LE support to vp3_idct_add_altivec()
- avformat/matroskadec: fix handling of recursive SeekHead elements
- doc/examples/filtering_video: fix frame rate
- avcodec/mpegaudiodec_template: only allocate fdsp when its used
- doc/examples/transcoding: check encoder before using it
- update MAINTAINERS file
- POWER LE support in put_vp8_epel_h_altivec_core() put_vp8_epel_v_altivec_core() put_vp8_pixels16_altivec()
- POWER LE support in vc1_inv_trans_8x4_altivec()
version 2.5:
- HEVC/H.265 RTP payload format (draft v6) packetizer
- SUP/PGS subtitle demuxer
- ffprobe -show_pixel_formats option
- CAST128 symmetric block cipher, ECB mode
- STL subtitle demuxer and decoder
- libutvideo YUV 4:2:2 10bit support
- XCB-based screen-grabber
- UDP-Lite support (RFC 3828)
- xBR scaling filter
- AVFoundation screen capturing support
- ffserver supports codec private options
- creating DASH compatible fragmented MP4, MPEG-DASH segmenting muxer
- WebP muxer with animated WebP support
- zygoaudio decoding support
- APNG decoder and demuxer
- postproc visualization support
version 2.4:
- Icecast protocol
- ported lenscorrection filter from frei0r filter
- large optimizations in dctdnoiz to make it usable
- ICY metadata are now requested by default with the HTTP protocol
- support for using metadata in stream specifiers in fftools
- LZMA compression support in TIFF decoder
- support for H.261 RTP payload format (RFC 4587)
- HEVC/H.265 RTP payload format (draft v6) depacketizer
- added codecview filter to visualize information exported by some codecs
- Matroska 3D support thorugh side data
- HTML generation using texi2html is deprecated in favor of makeinfo/texi2any
- silenceremove filter
version 2.3:
- AC3 fixed-point decoding
- shuffleplanes filter
- subfile protocol
@@ -24,7 +109,7 @@ version <next>:
- libbs2b-based stereo-to-binaural audio filter
- libx264 reference frames count limiting depending on level
- native Opus decoder
- display matrix export and rotation api
- display matrix export and rotation API
- WebVTT encoder
- showcqt multimedia filter
- zoompan filter
@@ -66,6 +151,7 @@ version 2.2:
- libx265 encoder
- dejudder filter
- Autodetect VDA like all other hardware accelerations
- aliases and defaults for Ogg subtypes (opus, spx)
version 2.1:

View File

@@ -15,6 +15,7 @@ Specifically, the GPL parts of FFmpeg are:
- libpostproc
- libmpcodecs
- optional x86 optimizations in the files
libavcodec/x86/flac_dsp_gpl.asm
libavcodec/x86/idct_mmx.c
- libutvideo encoding/decoding wrappers in
libavcodec/libutvideo*.cpp
@@ -33,6 +34,7 @@ Specifically, the GPL parts of FFmpeg are:
- vf_geq.c
- vf_histeq.c
- vf_hqdn3d.c
- vf_interlace.c
- vf_kerndeint.c
- vf_mcdeint.c
- vf_mp.c
@@ -62,6 +64,7 @@ There are a handful of files under other licensing terms, namely:
documentation accompanying your program if you only distribute executables.
You must also indicate any changes including additions and deletions to
those three files in the documentation.
tests/reference.pnm is under the expat license
external libraries

View File

@@ -54,7 +54,7 @@ release management Michael Niedermayer
Communication
=============
website Robert Swain
website Deby Barbara Lepage
fate.ffmpeg.org Timothy Gu
Trac bug tracker Alexander Strasser, Michael Niedermayer, Carl Eugen Hoyos, Lou Logan
mailing lists Michael Niedermayer, Baptiste Coudurier, Lou Logan
@@ -309,6 +309,7 @@ libavdevice
avfoundation.m Thilo Borgmann
decklink* Deti Fliegl
dshow.c Roger Pack (CC rogerdpack@gmail.com)
fbdev_enc.c Lukasz Marek
gdigrab.c Roger Pack (CC rogerdpack@gmail.com)
@@ -319,7 +320,7 @@ libavdevice
pulse_audio_enc.c Lukasz Marek
qtkit.m Thilo Borgmann
sdl Stefano Sabatini
v4l2.c Luca Abeni
v4l2.c Giorgio Vazzana
vfwcap.c Ramiro Polla
xv.c Lukasz Marek
@@ -343,6 +344,7 @@ Filters:
af_compand.c Paul B Mahol
af_ladspa.c Paul B Mahol
af_pan.c Nicolas George
af_silenceremove.c Paul B Mahol
avf_avectorscope.c Paul B Mahol
avf_showcqt.c Muhammad Faiz
vf_blend.c Paul B Mahol
@@ -353,7 +355,9 @@ Filters:
vf_extractplanes.c Paul B Mahol
vf_histogram.c Paul B Mahol
vf_hqx.c Clément Bœsch
vf_idet.c Pascal Massimino
vf_il.c Paul B Mahol
vf_lenscorrection.c Daniel Oberhoff
vf_mergeplanes.c Paul B Mahol
vf_psnr.c Paul B Mahol
vf_scale.c Michael Niedermayer
@@ -382,6 +386,7 @@ Muxers/Demuxers:
aiffdec.c Baptiste Coudurier, Matthieu Bouron
aiffenc.c Baptiste Coudurier, Matthieu Bouron
ape.c Kostya Shishkov
apngdec.c Benoit Fouet
ass* Aurelien Jacobs
astdec.c Paul B Mahol
astenc.c James Almer
@@ -458,12 +463,15 @@ Muxers/Demuxers:
rmdec.c, rmenc.c Ronald S. Bultje, Kostya Shishkov
rtmp* Kostya Shishkov
rtp.c, rtpenc.c Martin Storsjo
rtpdec_h261.*, rtpenc_h261.* Thomas Volkert
rtpdec_hevc.*, rtpenc_hevc.* Thomas Volkert
rtpdec_asf.* Ronald S. Bultje
rtpenc_mpv.*, rtpenc_aac.* Martin Storsjo
rtsp.c Luca Barbato
sbgdec.c Nicolas George
sdp.c Martin Storsjo
segafilm.c Mike Melanson
segment.c Stefano Sabatini
siff.c Kostya Shishkov
smacker.c Kostya Shishkov
smjpeg* Paul B Mahol
@@ -490,6 +498,7 @@ Protocols:
libssh.c Lukasz Marek
mms*.c Ronald S. Bultje
udp.c Luca Abeni
icecast.c Marvin Scholz
libswresample
@@ -528,8 +537,9 @@ x86 Michael Niedermayer
Releases
========
2.5 Michael Niedermayer
2.4 Michael Niedermayer
2.2 Michael Niedermayer
2.1 Michael Niedermayer
1.2 Michael Niedermayer
If you want to maintain an older release, please contact us

View File

@@ -32,6 +32,7 @@ OBJS-ffmpeg += ffmpeg_opt.o ffmpeg_filter.o
OBJS-ffmpeg-$(HAVE_VDPAU_X11) += ffmpeg_vdpau.o
OBJS-ffmpeg-$(HAVE_DXVA2_LIB) += ffmpeg_dxva2.o
OBJS-ffmpeg-$(CONFIG_VDA) += ffmpeg_vda.o
OBJS-ffserver += ffserver_config.o
TESTTOOLS = audiogen videogen rotozoom tiny_psnr tiny_ssim base64
HOSTPROGS := $(TESTTOOLS:%=tests/%) doc/print_options
@@ -63,7 +64,7 @@ FF_DEP_LIBS := $(DEP_LIBS)
all: $(AVPROGS)
$(TOOLS): %$(EXESUF): %.o $(EXEOBJS)
$(LD) $(LDFLAGS) $(LD_O) $^ $(ELIBS)
$(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $^ $(ELIBS)
tools/cws2fws$(EXESUF): ELIBS = $(ZLIB)
tools/uncoded_frame$(EXESUF): $(FF_DEP_LIBS)
@@ -92,6 +93,7 @@ $(foreach V,$(SUBDIR_VARS),$(eval $(call RESET,$(V))))
SUBDIR := $(1)/
include $(SRC_PATH)/$(1)/Makefile
-include $(SRC_PATH)/$(1)/$(ARCH)/Makefile
-include $(SRC_PATH)/$(1)/$(INTRINSICS)/Makefile
include $(SRC_PATH)/library.mak
endef
@@ -110,14 +112,14 @@ endef
$(foreach P,$(PROGS),$(eval $(call DOPROG,$(P:$(PROGSSUF)$(EXESUF)=))))
ffprobe.o cmdutils.o : libavutil/ffversion.h
ffprobe.o cmdutils.o libavcodec/utils.o libavformat/utils.o libavdevice/avdevice.o libavfilter/avfilter.o libavutil/utils.o libpostproc/postprocess.o libswresample/swresample.o libswscale/utils.o : libavutil/ffversion.h
$(PROGS): %$(PROGSSUF)$(EXESUF): %$(PROGSSUF)_g$(EXESUF)
$(CP) $< $@
$(STRIP) $@
%$(PROGSSUF)_g$(EXESUF): %.o $(FF_DEP_LIBS)
$(LD) $(LDFLAGS) $(LD_O) $(OBJS-$*) $(FF_EXTRALIBS)
$(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $(OBJS-$*) $(FF_EXTRALIBS)
OBJDIRS += tools

View File

@@ -1,19 +1,40 @@
FFmpeg README
=============
1) Documentation
----------------
FFmpeg is a collection of libraries and tools to process multimedia content
such as audio, video, subtitles and related metadata.
* Read the documentation in the doc/ directory in git.
## Libraries
You can also view it online at http://ffmpeg.org/documentation.html
* `libavcodec` provides implementation of a wider range of codecs.
* `libavformat` implements streaming protocols, container formats and basic I/O access.
* `libavutil` includes hashers, decompressors and miscellaneous utility functions.
* `libavfilter` provides a mean to alter decoded Audio and Video through chain of filters.
* `libavdevice` provides an abstraction to access capture and playback devices.
* `libswresample` implements audio mixing and resampling routines.
* `libswscale` implements color conversion and scaling routines.
2) Licensing
------------
## Tools
* See the LICENSE file.
* [ffmpeg](http://ffmpeg.org/ffmpeg.html) is a command line toolbox to
manipulate, convert and stream multimedia content.
* [ffplay](http://ffmpeg.org/ffplay.html) is a minimalistic multimedia player.
* [ffprobe](http://ffmpeg.org/ffprobe.html) is a simple analisys tool to inspect
multimedia content.
* Additional small tools such as `aviocat`, `ismindex` and `qt-faststart`.
3) Build and Install
--------------------
## Documentation
* See the INSTALL file.
The offline documentation is available in the **doc/** directory.
The online documentation is available in the main [website](http://ffmpeg.org)
and in the [wiki](http://trac.ffmpeg.org).
### Examples
Coding examples are available in the **doc/examples** directory.
## License
FFmpeg codebase is mainly LGPL-licensed with optional components licensed under
GPL. Please refer to the LICENSE file for detailed information.

View File

@@ -1 +1 @@
2.2.git
2.5.3

View File

@@ -1,175 +1,101 @@
┌───────────────────────────────────────────
│ RELEASE NOTES for FFmpeg 2.3 "Mandelbrot"
└───────────────────────────────────────────
┌────────────────────────────────────────┐
│ RELEASE NOTES for FFmpeg 2.5 "Bohr"
└────────────────────────────────────────┘
The FFmpeg Project proudly presents FFmpeg 2.3 "Mandelbrot", a major
release with all the great features committed during the three-month period
since the release of FFmpeg 2.2.
The FFmpeg Project proudly presents FFmpeg 2.5 "Bohr", 2.5 months after the
release of 2.4.
In this release, there are lots of internal overhauls that make FFmpeg a
more accessible project for new developers. Many important new features
like QTKit and AVFoundation input devices are committed. Contributions done
by Libav such as a new native Opus decoder are also merged.
The most important new features are AVFoundation screen-grabbing support,
animated WebP decoding support, and Animated PNG support. In addition, many
exciting features for video streaming are also implemented, including MPEG-
DASH fragmenting muxer, HEVC RTP payload muxer, and UDP Lite support.
Because of the increasing difficulty to maintain and lack of maintainers,
we are very sorry to say that we have removed all Blackfin and SPARC
architecture assembly optimizations with the cleanups done. If you are
interested in maintaining optimization for these two architecture, feel
free to contact us and we will restore the code!
Since this release, the traditional Changelog file is upgraded to this
modern-looking release note. Old changelogs are moved to doc/Changelog.old.
Enjoy!
As usual, if you have any question on this release or any FFmpeg related
topic, feel free to join us on the #ffmpeg IRC channel (on
irc.freenode.net).
┌────────────────────────────┐
* API Information │
🔨 API Information │
└────────────────────────────┘
FFmpeg 2.3 is completely source-compatible to the FFmpeg 2.2 series. There
are however some API deprecations that you need to take care of. Use `git
diff n2.2 n2.3 doc/APIchanges` to show the list of added and deprecated
APIs. FFmpeg 2.3 includes the following library versions:
FFmpeg 2.5 includes the following library versions:
• libavutil 52.92.100
• libavcodec 55.69.100
• libavformat 55.47.100
• libavdevice 55.13.102
• libavfilter 4.10.100
• libswscale 2. 6.100
• libswresample 0.19.100
• libpostproc 52. 3.100
• libavutil 54.15.100
• libavcodec 56.13.100
• libavformat 56.15.102
• libavdevice 56. 3.100
• libavfilter 5. 2.103
• libswscale 3. 1.101
• libswresample 1. 1.100
• libpostproc 53. 3.100
Please refer to the doc/APIChanges file for more information.
Important API changes since 2.4:
┌────────────────────────────┐
│ New Optimization │
└────────────────────────────┘
• avpriv_dv_frame_profile2() has been deprecated
We are excited to announce that we have committed new x86 assembly
optimization for HEVC, and FFmpeg's audio resampler libswresample. ARM
users will get a boost in MLP/TrueHD decoding thanks to new optimization.
Decoding Huffyuv also got a major boost from optimization on the C code.
Of special interest for Microsoft Visual Studio users, we have also
converted some preexisting x86 assembly to NASM/Yasm format compatible
with MSVC setup, especially in the area of audio resampling.
Another major feature in this release is the introduction of AArch64
(ARMv8) assembly optimization. AArch64 is another name for the first
64-bit ARM architecture, used by Apple A7 SoC inside iPhone 5S. Some
32-bit ARM assembly has already been ported to AArch64, but more work is
underway.
┌────────────────────────────┐
│ Native Opus decoder │
└────────────────────────────┘
Opus is an open audio format jointly developed by Xiph.Org, Mozilla,
Skype/Microsoft, and Broadcom. It combines the features of the Skype Cilk
speech codec and the Xiph.Org CELT music codec into one low-latency
codec. Decoding Opus is already possible since FFmpeg 1.0 using the
libopus library, but the new Opus native decoder brings a higher level of
stability and speed.
┌────────────────────────────┐
│ QTKit and AVFoundation │
└────────────────────────────┘
For OS X users, the new QTKit and AVFoundation devices allow you to use
the integrated camera on Macs. AVFoundation is a newer API only available
on OS X 10.7 "Lion" or newer. For users with older OS X systems, the
QTKit device using the older OS X API is for you.
┌────────────────────────────┐
│ API Additions │
└────────────────────────────┘
In this release, stream side data are introduced as AVStream.side_data as
a way to store miscellaneous stream-wide information. The format is
similar to the previously anonymous structure AVPacket.side_data (now
named as AVPacketSideData). With this change, audio ReplayGain
information and video rotation matrix are now exported through this API,
if available in the demuxer.
We also have improved libswresample's Doxygen API documentation, so new
developers wishing to use FFmpeg's excellent libraries can get started
more easily and faster.
┌────────────────────────────┐
│ Last But Not Least │
└────────────────────────────┘
Other interesting new features including hqx video filter, a pixel art
scaling filter; a fixed-point AC-3 decoder contributed by Imagination
Technologies; an On2 TrueMotion VP7 video decoder; an HTML5 WebVTT
subtitle decoder that allows creation of WebVTT from any text-based
subtitles; and an 1-bit Direct Stream Digital audio decoder.
Please refer to the doc/APIchanges file for more information.
┌────────────────────────────┐
│ ★ List of New Features │
└────────────────────────────┘
┌────────────────────────────┐
Command line tools
ffprobe
└────────────────────────────┘
Support for decoding through DXVA2 in ffmpeg
-show_pixel_formats option
┌────────────────────────────┐
│ ffserver │
└────────────────────────────┘
• codec private options support
┌────────────────────────────┐
│ libavcodec │
└────────────────────────────┘
AC3 fixed-point decoding
VP7 video decoder
Alias PIX image encoder and decoder
Improvements to the BRender PIX image decoder
Improvements to the XBM decoder
• Improvements to OpenEXR image decoder
• Support decoding 16-bit RLE SGI images
• Direct Stream Digital (DSD) decoder
• On2 AVC (Audio for Video) decoder
• Native Opus decoder
• WebVTT encoder
STL subtitle decoder
libutvideo YUV 4:2:2 10bit support
animated WebP decoding support
zygoaudio decoding support
APNG decoder
┌────────────────────────────┐
│ libavdevice │
└────────────────────────────┘
QTKit input device
GDI screen grabbing for Windows
• AVFoundation input device
XCB-based screen-grabber
AVFoundation screen capturing support
┌────────────────────────────┐
│ libavformat │
└────────────────────────────┘
subfile protocol
Phantom Cine demuxer
Alternative rendition support for HTTP Live Streaming
Magic Lantern Video (MLV) demuxer
Image format auto-detection
• LRC lyric file demuxer and muxer
Samba protocol (via libsmbclient)
WebM DASH Manifest muxer
HEVC/H.265 RTP payload format (draft v6) packetizer
SUP/PGS subtitle demuxer
STL subtitle demuxer
UDP-Lite support (RFC 3828)
MPEG-DASH segmenting muxer, which allows creating DASH compatible
fragmented MP4
WebP muxer
APNG demuxer
┌────────────────────────────┐
│ libavfilter │
└────────────────────────────┘
shuffleplanes filter
• libbs2b-based stereo-to-binaural audio filter
• showcqt multimedia filter
• zoompan filter
• signalstats filter
• hqx filter (hq2x, hq3x, hq4x)
• flanger filter
• libfribidi support in drawtext
xBR scaling filter
┌────────────────────────────┐
│ ⚠ Behaviour changes
└────────────────────────────┘
┌────────────────────────────┐
│ libavutil
└────────────────────────────┘
libx264 reference frames count is now limited depending on level chosen
• Because of the new image format auto-detection feature, you don't need to
specify image format when decoding an image with no extension.
CAST128 symmetric block cipher, ECB mode
┌────────────────────────────┐
│ libpostproc │
└────────────────────────────┘
• visualization support

View File

@@ -166,7 +166,7 @@ void show_help_options(const OptionDef *options, const char *msg, int req_flags,
int first;
first = 1;
for (po = options; po->name != NULL; po++) {
for (po = options; po->name; po++) {
char buf[64];
if (((po->flags & req_flags) != req_flags) ||
@@ -205,7 +205,7 @@ static const OptionDef *find_option(const OptionDef *po, const char *name)
const char *p = strchr(name, ':');
int len = p ? p - name : strlen(name);
while (po->name != NULL) {
while (po->name) {
if (!strncmp(name, po->name, len) && strlen(po->name) == len)
break;
po++;
@@ -254,7 +254,7 @@ static void prepare_app_arguments(int *argc_ptr, char ***argv_ptr)
win32_argv_utf8 = av_mallocz(sizeof(char *) * (win32_argc + 1) + buffsize);
argstr_flat = (char *)win32_argv_utf8 + sizeof(char *) * (win32_argc + 1);
if (win32_argv_utf8 == NULL) {
if (!win32_argv_utf8) {
LocalFree(argv_w);
return;
}
@@ -444,7 +444,7 @@ int locate_option(int argc, char **argv, const OptionDef *options,
(po->name && !strcmp(optname, po->name)))
return i;
if (po->flags & HAS_ARG)
if (!po->name || po->flags & HAS_ARG)
i++;
}
return 0;
@@ -959,9 +959,10 @@ static int init_report(const char *env)
report_file = fopen(filename.str, "w");
if (!report_file) {
int ret = AVERROR(errno);
av_log(NULL, AV_LOG_ERROR, "Failed to open report \"%s\": %s\n",
filename.str, strerror(errno));
return AVERROR(errno);
return ret;
}
av_log_set_callback(log_callback_report);
av_log(NULL, AV_LOG_INFO,
@@ -1242,7 +1243,7 @@ static int show_formats_devices(void *optctx, const char *opt, const char *arg,
is_dev = is_device(ofmt->priv_class);
if (!is_dev && device_only)
continue;
if ((name == NULL || strcmp(ofmt->name, name) < 0) &&
if ((!name || strcmp(ofmt->name, name) < 0) &&
strcmp(ofmt->name, last_name) > 0) {
name = ofmt->name;
long_name = ofmt->long_name;
@@ -1253,7 +1254,7 @@ static int show_formats_devices(void *optctx, const char *opt, const char *arg,
is_dev = is_device(ifmt->priv_class);
if (!is_dev && device_only)
continue;
if ((name == NULL || strcmp(ifmt->name, name) < 0) &&
if ((!name || strcmp(ifmt->name, name) < 0) &&
strcmp(ifmt->name, last_name) > 0) {
name = ifmt->name;
long_name = ifmt->long_name;
@@ -1262,7 +1263,7 @@ static int show_formats_devices(void *optctx, const char *opt, const char *arg,
if (name && strcmp(ifmt->name, name) == 0)
decode = 1;
}
if (name == NULL)
if (!name)
break;
last_name = name;
@@ -1543,7 +1544,8 @@ int show_protocols(void *optctx, const char *opt, const char *arg)
int show_filters(void *optctx, const char *opt, const char *arg)
{
const AVFilter av_unused(*filter) = NULL;
#if CONFIG_AVFILTER
const AVFilter *filter = NULL;
char descr[64], *descr_cur;
int i, j;
const AVFilterPad *pad;
@@ -1556,7 +1558,6 @@ int show_filters(void *optctx, const char *opt, const char *arg)
" V = Video input/output\n"
" N = Dynamic number and/or type of input/output\n"
" | = Source or sink filter\n");
#if CONFIG_AVFILTER
while ((filter = avfilter_next(filter))) {
descr_cur = descr;
for (i = 0; i < 2; i++) {
@@ -1581,6 +1582,8 @@ int show_filters(void *optctx, const char *opt, const char *arg)
filter->process_command ? 'C' : '.',
filter->name, descr, filter->description);
}
#else
printf("No filters available: libavfilter disabled\n");
#endif
return 0;
}
@@ -1639,19 +1642,19 @@ int show_layouts(void *optctx, const char *opt, const char *arg)
const char *name, *descr;
printf("Individual channels:\n"
"NAME DESCRIPTION\n");
"NAME DESCRIPTION\n");
for (i = 0; i < 63; i++) {
name = av_get_channel_name((uint64_t)1 << i);
if (!name)
continue;
descr = av_get_channel_description((uint64_t)1 << i);
printf("%-12s%s\n", name, descr);
printf("%-14s %s\n", name, descr);
}
printf("\nStandard channel layouts:\n"
"NAME DECOMPOSITION\n");
"NAME DECOMPOSITION\n");
for (i = 0; !av_get_standard_channel_layout(i, &layout, &name); i++) {
if (name) {
printf("%-12s", name);
printf("%-14s ", name);
for (j = 1; j; j <<= 1)
if ((layout & j))
printf("%s%s", (layout & (j - 1)) ? "+" : "", av_get_channel_name(j));
@@ -1857,21 +1860,23 @@ int read_yesno(void)
int cmdutils_read_file(const char *filename, char **bufptr, size_t *size)
{
int ret;
int64_t ret;
FILE *f = av_fopen_utf8(filename, "rb");
if (!f) {
ret = AVERROR(errno);
av_log(NULL, AV_LOG_ERROR, "Cannot read file '%s': %s\n", filename,
strerror(errno));
return AVERROR(errno);
return ret;
}
fseek(f, 0, SEEK_END);
*size = ftell(f);
fseek(f, 0, SEEK_SET);
if (*size == (size_t)-1) {
ret = AVERROR(errno);
av_log(NULL, AV_LOG_ERROR, "IO error: %s\n", strerror(errno));
fclose(f);
return AVERROR(errno);
return ret;
}
*bufptr = av_malloc(*size + 1);
if (!*bufptr) {
@@ -1883,9 +1888,9 @@ int cmdutils_read_file(const char *filename, char **bufptr, size_t *size)
if (ret < *size) {
av_free(*bufptr);
if (ferror(f)) {
ret = AVERROR(errno);
av_log(NULL, AV_LOG_ERROR, "Error while reading file '%s': %s\n",
filename, strerror(errno));
ret = AVERROR(errno);
} else
ret = AVERROR_EOF;
} else {
@@ -1992,7 +1997,7 @@ AVDictionary *filter_codec_opts(AVDictionary *opts, enum AVCodecID codec_id,
switch (check_stream_specifier(s, st, p + 1)) {
case 1: *p = 0; break;
case 0: continue;
default: return NULL;
default: exit_program(1);
}
if (av_opt_find(&cc, t->key, NULL, flags, AV_OPT_SEARCH_FAKE_OBJ) ||
@@ -2050,3 +2055,184 @@ void *grow_array(void *array, int elem_size, int *size, int new_size)
}
return array;
}
#if CONFIG_AVDEVICE
static int print_device_sources(AVInputFormat *fmt, AVDictionary *opts)
{
int ret, i;
AVFormatContext *dev = NULL;
AVDeviceInfoList *device_list = NULL;
AVDictionary *tmp_opts = NULL;
if (!fmt || !fmt->priv_class || !AV_IS_INPUT_DEVICE(fmt->priv_class->category))
return AVERROR(EINVAL);
printf("Audo-detected sources for %s:\n", fmt->name);
if (!fmt->get_device_list) {
ret = AVERROR(ENOSYS);
printf("Cannot list sources. Not implemented.\n");
goto fail;
}
/* TODO: avformat_open_input calls read_header callback which is not necessary.
Function like avformat_alloc_output_context2 for input could be helpful here. */
av_dict_copy(&tmp_opts, opts, 0);
if ((ret = avformat_open_input(&dev, NULL, fmt, &tmp_opts)) < 0) {
printf("Cannot open device: %s.\n", fmt->name);
goto fail;
}
if ((ret = avdevice_list_devices(dev, &device_list)) < 0) {
printf("Cannot list sources.\n");
goto fail;
}
for (i = 0; i < device_list->nb_devices; i++) {
printf("%s %s [%s]\n", device_list->default_device == i ? "*" : " ",
device_list->devices[i]->device_name, device_list->devices[i]->device_description);
}
fail:
av_dict_free(&tmp_opts);
avdevice_free_list_devices(&device_list);
avformat_close_input(&dev);
return ret;
}
static int print_device_sinks(AVOutputFormat *fmt, AVDictionary *opts)
{
int ret, i;
AVFormatContext *dev = NULL;
AVDeviceInfoList *device_list = NULL;
AVDictionary *tmp_opts = NULL;
if (!fmt || !fmt->priv_class || !AV_IS_OUTPUT_DEVICE(fmt->priv_class->category))
return AVERROR(EINVAL);
printf("Audo-detected sinks for %s:\n", fmt->name);
if (!fmt->get_device_list) {
ret = AVERROR(ENOSYS);
printf("Cannot list sinks. Not implemented.\n");
goto fail;
}
if ((ret = avformat_alloc_output_context2(&dev, fmt, NULL, NULL)) < 0) {
printf("Cannot open device: %s.\n", fmt->name);
goto fail;
}
av_dict_copy(&tmp_opts, opts, 0);
av_opt_set_dict2(dev, &tmp_opts, AV_OPT_SEARCH_CHILDREN);
if ((ret = avdevice_list_devices(dev, &device_list)) < 0) {
printf("Cannot list sinks.\n");
goto fail;
}
for (i = 0; i < device_list->nb_devices; i++) {
printf("%s %s [%s]\n", device_list->default_device == i ? "*" : " ",
device_list->devices[i]->device_name, device_list->devices[i]->device_description);
}
fail:
av_dict_free(&tmp_opts);
avdevice_free_list_devices(&device_list);
avformat_free_context(dev);
return ret;
}
static int show_sinks_sources_parse_arg(const char *arg, char **dev, AVDictionary **opts)
{
int ret;
if (arg) {
char *opts_str = NULL;
av_assert0(dev && opts);
*dev = av_strdup(arg);
if (!*dev)
return AVERROR(ENOMEM);
if ((opts_str = strchr(*dev, ','))) {
*(opts_str++) = '\0';
if (opts_str[0] && ((ret = av_dict_parse_string(opts, opts_str, "=", ":", 0)) < 0)) {
av_freep(dev);
return ret;
}
}
} else
printf("\nDevice name is not provided.\n"
"You can pass devicename[,opt1=val1[,opt2=val2...]] as an argument.\n\n");
return 0;
}
int show_sources(void *optctx, const char *opt, const char *arg)
{
AVInputFormat *fmt = NULL;
char *dev = NULL;
AVDictionary *opts = NULL;
int ret = 0;
int error_level = av_log_get_level();
av_log_set_level(AV_LOG_ERROR);
if ((ret = show_sinks_sources_parse_arg(arg, &dev, &opts)) < 0)
goto fail;
do {
fmt = av_input_audio_device_next(fmt);
if (fmt) {
if (!strcmp(fmt->name, "lavfi"))
continue; //it's pointless to probe lavfi
if (dev && strcmp(fmt->name, dev))
continue;
print_device_sources(fmt, opts);
}
} while (fmt);
do {
fmt = av_input_video_device_next(fmt);
if (fmt) {
if (dev && strcmp(fmt->name, dev))
continue;
print_device_sources(fmt, opts);
}
} while (fmt);
fail:
av_dict_free(&opts);
av_free(dev);
av_log_set_level(error_level);
return ret;
}
int show_sinks(void *optctx, const char *opt, const char *arg)
{
AVOutputFormat *fmt = NULL;
char *dev = NULL;
AVDictionary *opts = NULL;
int ret = 0;
int error_level = av_log_get_level();
av_log_set_level(AV_LOG_ERROR);
if ((ret = show_sinks_sources_parse_arg(arg, &dev, &opts)) < 0)
goto fail;
do {
fmt = av_output_audio_device_next(fmt);
if (fmt) {
if (dev && strcmp(fmt->name, dev))
continue;
print_device_sinks(fmt, opts);
}
} while (fmt);
do {
fmt = av_output_video_device_next(fmt);
if (fmt) {
if (dev && strcmp(fmt->name, dev))
continue;
print_device_sinks(fmt, opts);
}
} while (fmt);
fail:
av_dict_free(&opts);
av_free(dev);
av_log_set_level(error_level);
return ret;
}
#endif

View File

@@ -443,6 +443,20 @@ int show_formats(void *optctx, const char *opt, const char *arg);
*/
int show_devices(void *optctx, const char *opt, const char *arg);
#if CONFIG_AVDEVICE
/**
* Print a listing containing audodetected sinks of the output device.
* Device name with options may be passed as an argument to limit results.
*/
int show_sinks(void *optctx, const char *opt, const char *arg);
/**
* Print a listing containing audodetected sources of the input device.
* Device name with options may be passed as an argument to limit results.
*/
int show_sources(void *optctx, const char *opt, const char *arg);
#endif
/**
* Print a listing containing all the codecs supported by the
* program.

View File

@@ -27,3 +27,9 @@
{ "opencl_bench", OPT_EXIT, {.func_arg = opt_opencl_bench}, "run benchmark on all OpenCL devices and show results" },
{ "opencl_options", HAS_ARG, {.func_arg = opt_opencl}, "set OpenCL environment options" },
#endif
#if CONFIG_AVDEVICE
{ "sources" , OPT_EXIT | HAS_ARG, { .func_arg = show_sources },
"list sources of the input device", "device" },
{ "sinks" , OPT_EXIT | HAS_ARG, { .func_arg = show_sinks },
"list sinks of the output device", "device" },
#endif

View File

@@ -805,7 +805,7 @@ struct AVS_Library {
AVSC_INLINE AVS_Library * avs_load_library() {
AVS_Library *library = (AVS_Library *)malloc(sizeof(AVS_Library));
if (library == NULL)
if (!library)
return NULL;
library->handle = LoadLibrary("avisynth");
if (library->handle == NULL)
@@ -870,7 +870,7 @@ fail:
}
AVSC_INLINE void avs_free_library(AVS_Library *library) {
if (library == NULL)
if (!library)
return;
FreeLibrary(library->handle);
free(library);

View File

@@ -54,7 +54,7 @@ static int getopt(int argc, char *argv[], char *opts)
}
}
optopt = c = argv[optind][sp];
if (c == ':' || (cp = strchr(opts, c)) == NULL) {
if (c == ':' || !(cp = strchr(opts, c))) {
fprintf(stderr, ": illegal option -- %c\n", c);
if (argv[optind][++sp] == '\0') {
optind++;

View File

@@ -39,6 +39,7 @@
#include <windows.h>
#include <process.h>
#include "libavutil/attributes.h"
#include "libavutil/common.h"
#include "libavutil/internal.h"
#include "libavutil/mem.h"
@@ -54,36 +55,30 @@ typedef struct pthread_t {
* not mutexes */
typedef CRITICAL_SECTION pthread_mutex_t;
/* This is the CONDITIONAL_VARIABLE typedef for using Window's native
* conditional variables on kernels 6.0+.
* MinGW does not currently have this typedef. */
typedef struct pthread_cond_t {
void *ptr;
} pthread_cond_t;
/* function pointers to conditional variable API on windows 6.0+ kernels */
#if _WIN32_WINNT < 0x0600
static void (WINAPI *cond_broadcast)(pthread_cond_t *cond);
static void (WINAPI *cond_init)(pthread_cond_t *cond);
static void (WINAPI *cond_signal)(pthread_cond_t *cond);
static BOOL (WINAPI *cond_wait)(pthread_cond_t *cond, pthread_mutex_t *mutex,
DWORD milliseconds);
/* This is the CONDITION_VARIABLE typedef for using Windows' native
* conditional variables on kernels 6.0+. */
#if HAVE_CONDITION_VARIABLE_PTR
typedef CONDITION_VARIABLE pthread_cond_t;
#else
#define cond_init InitializeConditionVariable
#define cond_broadcast WakeAllConditionVariable
#define cond_signal WakeConditionVariable
#define cond_wait SleepConditionVariableCS
typedef struct pthread_cond_t {
void *Ptr;
} pthread_cond_t;
#endif
static unsigned __stdcall attribute_align_arg win32thread_worker(void *arg)
#if _WIN32_WINNT >= 0x0600
#define InitializeCriticalSection(x) InitializeCriticalSectionEx(x, 0, 0)
#define WaitForSingleObject(a, b) WaitForSingleObjectEx(a, b, FALSE)
#endif
static av_unused unsigned __stdcall attribute_align_arg win32thread_worker(void *arg)
{
pthread_t *h = arg;
h->ret = h->func(h->arg);
return 0;
}
static int pthread_create(pthread_t *thread, const void *unused_attr,
void *(*start_routine)(void*), void *arg)
static av_unused int pthread_create(pthread_t *thread, const void *unused_attr,
void *(*start_routine)(void*), void *arg)
{
thread->func = start_routine;
thread->arg = arg;
@@ -92,7 +87,7 @@ static int pthread_create(pthread_t *thread, const void *unused_attr,
return !thread->handle;
}
static void pthread_join(pthread_t thread, void **value_ptr)
static av_unused void pthread_join(pthread_t thread, void **value_ptr)
{
DWORD ret = WaitForSingleObject(thread.handle, INFINITE);
if (ret != WAIT_OBJECT_0)
@@ -123,6 +118,36 @@ static inline int pthread_mutex_unlock(pthread_mutex_t *m)
return 0;
}
#if _WIN32_WINNT >= 0x0600
static inline int pthread_cond_init(pthread_cond_t *cond, const void *unused_attr)
{
InitializeConditionVariable(cond);
return 0;
}
/* native condition variables do not destroy */
static inline void pthread_cond_destroy(pthread_cond_t *cond)
{
return;
}
static inline void pthread_cond_broadcast(pthread_cond_t *cond)
{
WakeAllConditionVariable(cond);
}
static inline int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex)
{
SleepConditionVariableCS(cond, mutex, INFINITE);
return 0;
}
static inline void pthread_cond_signal(pthread_cond_t *cond)
{
WakeConditionVariable(cond);
}
#else // _WIN32_WINNT < 0x0600
/* for pre-Windows 6.0 platforms we need to define and use our own condition
* variable and api */
typedef struct win32_cond_t {
@@ -134,7 +159,14 @@ typedef struct win32_cond_t {
volatile int is_broadcast;
} win32_cond_t;
static int pthread_cond_init(pthread_cond_t *cond, const void *unused_attr)
/* function pointers to conditional variable API on windows 6.0+ kernels */
static void (WINAPI *cond_broadcast)(pthread_cond_t *cond);
static void (WINAPI *cond_init)(pthread_cond_t *cond);
static void (WINAPI *cond_signal)(pthread_cond_t *cond);
static BOOL (WINAPI *cond_wait)(pthread_cond_t *cond, pthread_mutex_t *mutex,
DWORD milliseconds);
static av_unused int pthread_cond_init(pthread_cond_t *cond, const void *unused_attr)
{
win32_cond_t *win32_cond = NULL;
if (cond_init) {
@@ -146,7 +178,7 @@ static int pthread_cond_init(pthread_cond_t *cond, const void *unused_attr)
win32_cond = av_mallocz(sizeof(win32_cond_t));
if (!win32_cond)
return ENOMEM;
cond->ptr = win32_cond;
cond->Ptr = win32_cond;
win32_cond->semaphore = CreateSemaphore(NULL, 0, 0x7fffffff, NULL);
if (!win32_cond->semaphore)
return ENOMEM;
@@ -159,9 +191,9 @@ static int pthread_cond_init(pthread_cond_t *cond, const void *unused_attr)
return 0;
}
static void pthread_cond_destroy(pthread_cond_t *cond)
static av_unused void pthread_cond_destroy(pthread_cond_t *cond)
{
win32_cond_t *win32_cond = cond->ptr;
win32_cond_t *win32_cond = cond->Ptr;
/* native condition variables do not destroy */
if (cond_init)
return;
@@ -172,12 +204,12 @@ static void pthread_cond_destroy(pthread_cond_t *cond)
pthread_mutex_destroy(&win32_cond->mtx_waiter_count);
pthread_mutex_destroy(&win32_cond->mtx_broadcast);
av_freep(&win32_cond);
cond->ptr = NULL;
cond->Ptr = NULL;
}
static void pthread_cond_broadcast(pthread_cond_t *cond)
static av_unused void pthread_cond_broadcast(pthread_cond_t *cond)
{
win32_cond_t *win32_cond = cond->ptr;
win32_cond_t *win32_cond = cond->Ptr;
int have_waiter;
if (cond_broadcast) {
@@ -206,9 +238,9 @@ static void pthread_cond_broadcast(pthread_cond_t *cond)
pthread_mutex_unlock(&win32_cond->mtx_broadcast);
}
static int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex)
static av_unused int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex)
{
win32_cond_t *win32_cond = cond->ptr;
win32_cond_t *win32_cond = cond->Ptr;
int last_waiter;
if (cond_wait) {
cond_wait(cond, mutex, INFINITE);
@@ -238,9 +270,9 @@ static int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex)
return pthread_mutex_lock(mutex);
}
static void pthread_cond_signal(pthread_cond_t *cond)
static av_unused void pthread_cond_signal(pthread_cond_t *cond)
{
win32_cond_t *win32_cond = cond->ptr;
win32_cond_t *win32_cond = cond->Ptr;
int have_waiter;
if (cond_signal) {
cond_signal(cond);
@@ -262,8 +294,9 @@ static void pthread_cond_signal(pthread_cond_t *cond)
pthread_mutex_unlock(&win32_cond->mtx_broadcast);
}
#endif
static void w32thread_init(void)
static av_unused void w32thread_init(void)
{
#if _WIN32_WINNT < 0x0600
HANDLE kernel_dll = GetModuleHandle(TEXT("kernel32.dll"));

447
configure vendored

File diff suppressed because it is too large Load Diff

View File

@@ -2,26 +2,187 @@ Never assume the API of libav* to be stable unless at least 1 month has passed
since the last major version increase or the API was added.
The last version increases were:
libavcodec: 2013-03-xx
libavdevice: 2013-03-xx
libavfilter: 2013-12-xx
libavformat: 2013-03-xx
libavresample: 2012-10-05
libpostproc: 2011-04-18
libswresample: 2011-09-19
libswscale: 2011-06-20
libavutil: 2012-10-22
libavcodec: 2014-08-09
libavdevice: 2014-08-09
libavfilter: 2014-08-09
libavformat: 2014-08-09
libavresample: 2014-08-09
libpostproc: 2014-08-09
libswresample: 2014-08-09
libswscale: 2014-08-09
libavutil: 2014-08-09
API changes, most recent first:
2014-07-14 - xxxxxxx - lavf 55.47.100 - avformat.h
2014-11-21 - ab922f9 - lavu 54.15.100 - dict.h
Add av_dict_get_string().
2014-11-18 - a54a51c - lavu 54.14.100 - float_dsp.h
Add avpriv_float_dsp_alloc().
2014-11-16 - 6690d4c3 - lavf 56.13.100 - avformat.h
Add AVStream.recommended_encoder_configuration with accessors.
2014-11-16 - bee5844d - lavu 54.13.100 - opt.h
Add av_opt_serialize().
2014-11-16 - eec69332 - lavu 54.12.100 - opt.h
Add av_opt_is_set_to_default().
2014-11-06 - 44fa267 / 5e80fb7 - lavc 56.11.100 / 56.6.0 - vorbis_parser.h
Add a public API for parsing vorbis packets.
2014-10-15 - 17085a0 / 7ea1b34 - lavc 56.7.100 / 56.5.0 - avcodec.h
Replace AVCodecContext.time_base used for decoding
with AVCodecContext.framerate.
2014-10-15 - 51c810e / d565fef1 - lavc 56.6.100 / 56.4.0 - avcodec.h
Add AV_HWACCEL_FLAG_IGNORE_LEVEL flag to av_vdpau_bind_context().
2014-10-13 - da21895 / 2df0c32e - lavc 56.5.100 / 56.3.0 - avcodec.h
Add AVCodecContext.initial_padding. Deprecate the use of AVCodecContext.delay
for audio encoding.
2014-10-08 - bb44f7d / 5a419b2 - lavu 54.10.100 / 54.4.0 - pixdesc.h
Add API to return the name of frame and context color properties.
2014-10-06 - a61899a / e3e158e - lavc 56.3.100 / 56.2.0 - vdpau.h
Add av_vdpau_bind_context(). This function should now be used for creating
(or resetting) a AVVDPAUContext instead of av_vdpau_alloc_context().
2014-10-02 - cdd6f05 - lavc 56.2.100 - avcodec.h
2014-10-02 - cdd6f05 - lavu 54.9.100 - frame.h
Add AV_FRAME_DATA_SKIP_SAMPLES. Add lavc CODEC_FLAG2_SKIP_MANUAL and
AVOption "skip_manual", which makes lavc export skip information via
AV_FRAME_DATA_SKIP_SAMPLES AVFrame side data, instead of skipping and
discarding samples automatically.
2014-10-02 - 0d92b0d - lavu 54.8.100 - avstring.h
Add av_match_list()
2014-09-24 - ac68295 - libpostproc 53.1.100
Add visualization support
2014-09-19 - 6edd6a4 - lavc 56.1.101 - dv_profile.h
deprecate avpriv_dv_frame_profile2(), which was made public by accident.
-------- 8< --------- FFmpeg 2.4 was cut here -------- 8< ---------
2014-08-28 - f30a815 / 9301486 - lavc 56.1.100 / 56.1.0 - avcodec.h
Add AV_PKT_DATA_STEREO3D to export container-level stereo3d information.
2014-08-25 - 215db29 / b263f8f - lavf 56.3.100 / 56.3.0 - avformat.h
Add AVFormatContext.max_ts_probe.
2014-08-23 - 8fc9bd0 - lavu 54.7.100 - dict.h
AV_DICT_DONT_STRDUP_KEY and AV_DICT_DONT_STRDUP_VAL arguments are now
freed even on error. This is consistent with the behaviour all users
of it we could find expect.
2014-08-21 - 980a5b0 - lavu 54.6.100 - frame.h motion_vector.h
Add AV_FRAME_DATA_MOTION_VECTORS side data and AVMotionVector structure
2014-08-16 - b7d5e01 - lswr 1.1.100 - swresample.h
Add AVFrame based API
2014-08-16 - c2829dc - lavu 54.4.100 - dict.h
Add av_dict_set_int helper function.
2014-08-13 - c8571c6 / 8ddc326 - lavu 54.3.100 / 54.3.0 - mem.h
Add av_strndup().
2014-08-13 - 2ba4577 / a8c104a - lavu 54.2.100 / 54.2.0 - opt.h
Add av_opt_get_dict_val/set_dict_val with AV_OPT_TYPE_DICT to support
dictionary types being set as options.
2014-08-13 - afbd4b8 - lavf 56.01.0 - avformat.h
Add AVFormatContext.event_flags and AVStream.event_flags for signaling to
the user when events happen in the file/stream.
2014-08-10 - 78eaaa8 / fb1ddcd - lavr 2.1.0 - avresample.h
Add avresample_convert_frame() and avresample_config().
2014-08-10 - 78eaaa8 / fb1ddcd - lavu 54.1.100 / 54.1.0 - error.h
Add AVERROR_INPUT_CHANGED and AVERROR_OUTPUT_CHANGED.
2014-08-08 - 3841f2a / d35b94f - lavc 55.73.102 / 55.57.4 - avcodec.h
Deprecate FF_IDCT_XVIDMMX define and xvidmmx idct option.
Replaced by FF_IDCT_XVID and xvid respectively.
2014-08-08 - 5c3c671 - lavf 55.53.100 - avio.h
Add avio_feof() and deprecate url_feof().
2014-08-07 - bb78903 - lsws 2.1.3 - swscale.h
sws_getContext is not going to be removed in the future.
2014-08-07 - a561662 / ad1ee5f - lavc 55.73.101 / 55.57.3 - avcodec.h
reordered_opaque is not going to be removed in the future.
2014-08-02 - 28a2107 - lavu 52.98.100 - pixelutils.h
Add pixelutils API with SAD functions
2014-08-04 - 6017c98 / e9abafc - lavu 52.97.100 / 53.22.0 - pixfmt.h
Add AV_PIX_FMT_YA16 pixel format for 16 bit packed gray with alpha.
2014-08-04 - 4c8bc6f / e96c3b8 - lavu 52.96.101 / 53.21.1 - avstring.h
Rename AV_PIX_FMT_Y400A to AV_PIX_FMT_YA8 to better identify the format.
An alias pixel format and color space name are provided for compatibility.
2014-08-04 - 073c074 / d2962e9 - lavu 52.96.100 / 53.21.0 - pixdesc.h
Support name aliases for pixel formats.
2014-08-03 - 71d008e / 1ef9e83 - lavc 55.72.101 / 55.57.2 - avcodec.h
2014-08-03 - 71d008e / 1ef9e83 - lavu 52.95.100 / 53.20.0 - frame.h
Deprecate AVCodecContext.dtg_active_format and use side-data instead.
2014-08-03 - e680c73 - lavc 55.72.100 - avcodec.h
Add get_pixels() to AVDCT
2014-08-03 - 9400603 / 9f17685 - lavc 55.71.101 / 55.57.1 - avcodec.h
Deprecate unused FF_IDCT_IPP define and ipp avcodec option.
Deprecate unused FF_DEBUG_PTS define and pts avcodec option.
Deprecate unused FF_CODER_TYPE_DEFLATE define and deflate avcodec option.
Deprecate unused FF_DCT_INT define and int avcodec option.
Deprecate unused avcodec option scenechange_factor.
2014-07-30 - ba3e331 - lavu 52.94.100 - frame.h
Add av_frame_side_data_name()
2014-07-29 - 80a3a66 / 3a19405 - lavf 56.01.100 / 56.01.0 - avformat.h
Add mime_type field to AVProbeData, which now MUST be initialized in
order to avoid uninitialized reads of the mime_type pointer, likely
leading to crashes.
Typically, this means you will do 'AVProbeData pd = { 0 };' instead of
'AVProbeData pd;'.
2014-07-29 - 31e0b5d / 69e7336 - lavu 52.92.100 / 53.19.0 - avstring.h
Make name matching function from lavf public as av_match_name().
2014-07-28 - 2e5c8b0 / c5fca01 - lavc 55.71.100 / 55.57.0 - avcodec.h
Add AV_CODEC_PROP_REORDER to mark codecs supporting frame reordering.
2014-07-27 - ff9a154 - lavf 55.50.100 - avformat.h
New field int64_t probesize2 instead of deprecated
field int probesize.
2014-07-27 - 932ff70 - lavc 55.70.100 - avdct.h
Add AVDCT / avcodec_dct_alloc() / avcodec_dct_init().
2014-07-23 - 8a4c086 - lavf 55.49.100 - avio.h
Add avio_read_to_bprint()
-------- 8< --------- FFmpeg 2.3 was cut here -------- 8< ---------
2014-07-14 - 62227a7 - lavf 55.47.100 - avformat.h
Add av_stream_get_parser()
2014-07-xx - xxxxxxx - lavu 53.18.0 - display.h
2014-07-09 - c67690f / a54f03b - lavu 52.92.100 / 53.18.0 - display.h
Add av_display_matrix_flip() to flip the transformation matrix.
2014-07-xx - xxxxxxx - lavc 55.56.0 - dv_profile.h
2014-07-09 - 1b58f13 / f6ee61f - lavc 55.69.100 / 55.56.0 - dv_profile.h
Add a public API for DV profile handling.
2014-06-20 - 0dceefc / 9e500ef - lavu 52.90.100 / 53.17.0 - imgutils.h
@@ -35,6 +196,10 @@ API changes, most recent first:
is now setting AVStream.time_base, instead of AVStream.codec.time_base as was
done previously. The old method is now deprecated.
2014-06-11 - 67d29da - lavc 55.66.101 - avcodec.h
Increase FF_INPUT_BUFFER_PADDING_SIZE to 32 due to some corner cases needing
it
2014-06-10 - xxxxxxx - lavf 55.43.100 - avformat.h
New field int64_t max_analyze_duration2 instead of deprecated
int max_analyze_duration.
@@ -42,7 +207,7 @@ API changes, most recent first:
2014-05-30 - 00759d7 - lavu 52.89.100 - opt.h
Add av_opt_copy()
2014-04-xx - 03bb99a / 0957b27 - lavc 55.66.100 / 55.54.0 - avcodec.h
2014-06-01 - 03bb99a / 0957b27 - lavc 55.66.100 / 55.54.0 - avcodec.h
Add AVCodecContext.side_data_only_packets to allow encoders to output packets
with only side data. This option may become mandatory in the future, so all
users are recommended to update their code and enable this option.
@@ -52,10 +217,10 @@ API changes, most recent first:
AVColorTransferCharacteristic, and AVChromaLocation) inside lavu.
And add AVFrame fields for them.
2014-04-xx - bdb2e80 / b2d4565 - lavr 1.3.0 - avresample.h
2014-05-29 - bdb2e80 / b2d4565 - lavr 1.3.0 - avresample.h
Add avresample_max_output_samples
2014-05-24 - d858ee7 / 6d21259 - lavf 55.42.100 / 55.19.0 - avformat.h
2014-05-28 - d858ee7 / 6d21259 - lavf 55.42.100 / 55.19.0 - avformat.h
Add strict_std_compliance and related AVOptions to support experimental
muxing.
@@ -65,7 +230,7 @@ API changes, most recent first:
2014-05-26 - c37d179 - lavf 55.41.100 - avformat.h
Add format_probesize to AVFormatContext.
2014-05-19 - 7d25af1 / c23c96b - lavf 55.39.100 / 55.18.0 - avformat.h
2014-05-20 - 7d25af1 / c23c96b - lavf 55.39.100 / 55.18.0 - avformat.h
Add av_stream_get_side_data() to access stream-level side data
in the same way as av_packet_get_side_data().
@@ -76,7 +241,7 @@ API changes, most recent first:
Add AV_FRAME_DATA_DISPLAYMATRIX for exporting frame-level
spatial rendering on video frames for proper display.
2014-05-xx - xxxxxxx - lavc 55.64.100 / 55.53.0 - avcodec.h
2014-05-19 - ef1d4ee / bddd8cb - lavc 55.64.100 / 55.53.0 - avcodec.h
Add AV_PKT_DATA_DISPLAYMATRIX for exporting packet-level
spatial rendering on video frames for proper display.
@@ -92,7 +257,7 @@ API changes, most recent first:
Add av_gettime_relative() av_gettime_relative_is_monotonic()
2014-05-15 - eacf7d6 / 0c1959b - lavf 55.38.100 / 55.17.0 - avformat.h
Add AVMFT_FLAG_BITEXACT flag. Muxers now use it instead of checking
Add AVFMT_FLAG_BITEXACT flag. Muxers now use it instead of checking
CODEC_FLAG_BITEXACT on the first stream.
2014-05-15 - 96cb4c8 - lswr 0.19.100 - swresample.h
@@ -101,10 +266,10 @@ API changes, most recent first:
2014-05-11 - 14aef38 / 66e6c8a - lavu 52.83.100 / 53.14.0 - pixfmt.h
Add AV_PIX_FMT_VDA for new-style VDA acceleration.
2014-05-xx - xxxxxxx - lavu 52.82.0 - fifo.h
2014-05-xx - xxxxxxx - lavu 52.82.100 - fifo.h
Add av_fifo_freep() function.
2014-05-02 - ba52fb11 - lavu 52.81.0 - opt.h
2014-05-02 - ba52fb11 - lavu 52.81.100 - opt.h
Add av_opt_set_dict2() function.
2014-05-01 - e77b985 / a2941c8 - lavc 55.60.103 / 55.50.3 - avcodec.h
@@ -184,6 +349,9 @@ API changes, most recent first:
Give the name AVPacketSideData to the previously anonymous struct used for
AVPacket.side_data.
-------- 8< --------- FFmpeg 2.2 was cut here -------- 8< ---------
2014-03-18 - 37c07d4 - lsws 2.5.102
Make gray16 full-scale.
@@ -326,6 +494,9 @@ API changes, most recent first:
2013-10-31 - 78265fc / 28096e0 - lavu 52.49.100 / 52.17.0 - frame.h
Add AVFrame.flags and AV_FRAME_FLAG_CORRUPT.
-------- 8< --------- FFmpeg 2.1 was cut here -------- 8< ---------
2013-10-27 - dbe6f9f - lavc 55.39.100 - avcodec.h
Add CODEC_CAP_DELAY support to avcodec_decode_subtitle2.
@@ -398,6 +569,9 @@ API changes, most recent first:
Add avcodec_chroma_pos_to_enum()
Add avcodec_enum_to_chroma_pos()
-------- 8< --------- FFmpeg 2.0 was cut here -------- 8< ---------
2013-07-03 - 838bd73 - lavfi 3.78.100 - avfilter.h
Deprecate avfilter_graph_parse() in favor of the equivalent
avfilter_graph_parse_ptr().
@@ -470,6 +644,9 @@ API changes, most recent first:
2013-03-17 - 7aa9af5 - lavu 52.20.100 - opt.h
Add AV_OPT_TYPE_VIDEO_RATE value to AVOptionType enum.
-------- 8< --------- FFmpeg 1.2 was cut here -------- 8< ---------
2013-03-07 - 9767ec6 - lavu 52.18.100 - avstring.h,bprint.h
Add av_escape() and av_bprint_escape() API.
@@ -482,6 +659,9 @@ API changes, most recent first:
2013-01-01 - 2eb2e17 - lavfi 3.34.100
Add avfilter_get_audio_buffer_ref_from_arrays_channels.
-------- 8< --------- FFmpeg 1.1 was cut here -------- 8< ---------
2012-12-20 - 34de47aa - lavfi 3.29.100 - avfilter.h
Add AVFilterLink.channels, avfilter_link_get_channels()
and avfilter_ref_get_channels().
@@ -527,6 +707,9 @@ API changes, most recent first:
Add LIBSWRESAMPLE_VERSION, LIBSWRESAMPLE_BUILD
and LIBSWRESAMPLE_IDENT symbols.
-------- 8< --------- FFmpeg 1.0 was cut here -------- 8< ---------
2012-09-06 - 29e972f - lavu 51.72.100 - parseutils.h
Add av_small_strptime() time parsing function.
@@ -731,6 +914,9 @@ lavd 54.4.100 / 54.0.0, lavfi 3.5.0
avresample_read() are now uint8_t** instead of void**.
Libavresample is now stable.
2012-09-26 - 3ba0dab7 / 1384df64 - lavf 54.29.101 / 56.06.3 - avformat.h
Add AVFormatContext.avoid_negative_ts.
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.
@@ -945,6 +1131,9 @@ lavd 54.4.100 / 54.0.0, lavfi 3.5.0
2012-01-12 - b18e17e / 3167dc9 - lavfi 2.59.100 / 2.15.0
Add a new installed header -- libavfilter/version.h -- with version macros.
-------- 8< --------- FFmpeg 0.9 was cut here -------- 8< ---------
2011-12-08 - a502939 - lavfi 2.52.0
Add av_buffersink_poll_frame() to buffersink.h.
@@ -1154,6 +1343,13 @@ lavd 54.4.100 / 54.0.0, lavfi 3.5.0
2011-06-28 - 5129336 - lavu 51.11.0 - avutil.h
Define the AV_PICTURE_TYPE_NONE value in AVPictureType enum.
-------- 8< --------- FFmpeg 0.7 was cut here -------- 8< ---------
-------- 8< --------- FFmpeg 0.8 was cut here -------- 8< ---------
2011-06-19 - fd2c0a5 - lavfi 2.23.0 - avfilter.h
Add layout negotiation fields and helper functions.
@@ -1831,6 +2027,9 @@ lavd 54.4.100 / 54.0.0, lavfi 3.5.0
2010-06-02 - 7e566bb - lavc 52.73.0 - av_get_codec_tag_string()
Add av_get_codec_tag_string().
-------- 8< --------- FFmpeg 0.6 was cut here -------- 8< ---------
2010-06-01 - 2b99142 - lsws 0.11.0 - convertPalette API
Add sws_convertPalette8ToPacked32() and sws_convertPalette8ToPacked24().
@@ -1848,10 +2047,6 @@ lavd 54.4.100 / 54.0.0, lavfi 3.5.0
2010-05-09 - b6bc205 - lavfi 1.20.0 - AVFilterPicRef
Add interlaced and top_field_first fields to AVFilterPicRef.
------------------------------8<-------------------------------------
0.6 branch was cut here
----------------------------->8--------------------------------------
2010-05-01 - 8e2ee18 - lavf 52.62.0 - probe function
Add av_probe_input_format2 to API, it allows ignoring probe
results below given score and returns the actual probe score.

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 = 2.5.3
# With the PROJECT_LOGO tag one can specify a logo or icon that is included
# in the documentation. The maximum height of the logo should not exceed 55

View File

@@ -38,7 +38,9 @@ DOCS = $(DOCS-yes)
DOC_EXAMPLES-$(CONFIG_AVIO_READING_EXAMPLE) += avio_reading
DOC_EXAMPLES-$(CONFIG_AVCODEC_EXAMPLE) += avcodec
DOC_EXAMPLES-$(CONFIG_DECODING_ENCODING_EXAMPLE) += decoding_encoding
DOC_EXAMPLES-$(CONFIG_DEMUXING_DECODING_EXAMPLE) += demuxing_decoding
DOC_EXAMPLES-$(CONFIG_EXTRACT_MVS_EXAMPLE) += extract_mvs
DOC_EXAMPLES-$(CONFIG_FILTER_AUDIO_EXAMPLE) += filter_audio
DOC_EXAMPLES-$(CONFIG_FILTERING_AUDIO_EXAMPLE) += filtering_audio
DOC_EXAMPLES-$(CONFIG_FILTERING_VIDEO_EXAMPLE) += filtering_video
@@ -80,14 +82,25 @@ $(GENTEXI): doc/avoptions_%.texi: doc/print_options$(HOSTEXESUF)
$(M)doc/print_options $* > $@
doc/%.html: TAG = HTML
doc/%-all.html: TAG = HTML
ifdef HAVE_MAKEINFO_HTML
doc/%.html: doc/%.texi $(SRC_PATH)/doc/t2h.pm $(GENTEXI)
$(Q)$(TEXIDEP)
$(M)makeinfo --html -I doc --no-split -D config-not-all --init-file=$(SRC_PATH)/doc/t2h.pm --output $@ $<
doc/%-all.html: doc/%.texi $(SRC_PATH)/doc/t2h.pm $(GENTEXI)
$(Q)$(TEXIDEP)
$(M)makeinfo --html -I doc --no-split -D config-all --init-file=$(SRC_PATH)/doc/t2h.pm --output $@ $<
else
doc/%.html: doc/%.texi $(SRC_PATH)/doc/t2h.init $(GENTEXI)
$(Q)$(TEXIDEP)
$(M)texi2html -I doc -monolithic --D=config-not-all --init-file $(SRC_PATH)/doc/t2h.init --output $@ $<
doc/%-all.html: TAG = HTML
doc/%-all.html: doc/%.texi $(SRC_PATH)/doc/t2h.init $(GENTEXI)
$(Q)$(TEXIDEP)
$(M)texi2html -I doc -monolithic --D=config-all --init-file $(SRC_PATH)/doc/t2h.init --output $@ $<
endif
doc/%.pod: TAG = POD
doc/%.pod: doc/%.texi $(SRC_PATH)/doc/texi2pod.pl $(GENTEXI)

View File

@@ -13,7 +13,16 @@ bitstream filter using the option @code{--disable-bsf=BSF}.
The option @code{-bsfs} of the ff* tools will display the list of
all the supported bitstream filters included in your build.
Below is a description of the currently available bitstream filters.
The ff* tools have a -bsf option applied per stream, taking a
comma-separated list of filters, whose parameters follow the filter
name after a '='.
@example
ffmpeg -i INPUT -c:v copy -bsf:v filter1[=opt1=str1/opt2=str2][,filter2] OUTPUT
@end example
Below is a description of the currently available bitstream filters,
with their parameters, if any.
@section aac_adtstoasc
@@ -135,9 +144,16 @@ ffmpeg -i frame_%d.jpg -c:v copy rotated.avi
Damages the contents of packets without damaging the container. Can be
used for fuzzing or testing error resilience/concealment.
Parameters:
A numeral string, whose value is related to how often output bytes will
be modified. Therefore, values below or equal to 0 are forbidden, and
the lower the more frequent bytes will be modified, with 1 meaning
every byte is modified.
@example
ffmpeg -i INPUT -c copy -bsf noise output.mkv
ffmpeg -i INPUT -c copy -bsf noise[=1] output.mkv
@end example
applies the modification to every byte.
@section remove_extra

5
doc/bootstrap.min.css vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -71,7 +71,9 @@ Force low delay.
@item global_header
Place global headers in extradata instead of every keyframe.
@item bitexact
Use only bitexact stuff (except (I)DCT).
Only write platform-, build- and time-independent data. (except (I)DCT).
This ensures that file and data checksums are reproducible and match between
platforms. Its primary use is for regression testing.
@item aic
Apply H263 advanced intra coding / mpeg4 ac prediction.
@item cbp
@@ -498,6 +500,8 @@ threading operations
@item vismv @var{integer} (@emph{decoding,video})
Visualize motion vectors (MVs).
This option is deprecated, see the codecview filter instead.
Possible values:
@table @samp
@item pf
@@ -797,6 +801,9 @@ Frame data might be split into multiple chunks.
Show all frames before the first keyframe.
@item skiprd
Deprecated, use mpegvideo private options instead.
@item export_mvs
Export motion vectors into frame side-data (see @code{AV_FRAME_DATA_MOTION_VECTORS})
for codecs that support it. See also @file{doc/examples/export_mvs.c}.
@end table
@item error @var{integer} (@emph{encoding,video})
@@ -1109,6 +1116,19 @@ Interlaced video, bottom coded first, top displayed first
Set to 1 to disable processing alpha (transparency). This works like the
@samp{gray} flag in the @option{flags} option which skips chroma information
instead of alpha. Default is 0.
@item codec_whitelist @var{list} (@emph{input})
"," separated List of allowed decoders. By default all are allowed.
@item dump_separator @var{string} (@emph{input})
Separator used to separate the fields printed on the command line about the
Stream parameters.
For example to separate the fields with newlines and indention:
@example
ffprobe -dump_separator "
" -i ~/videos/matrixbench_mpeg2.mpg
@end example
@end table
@c man end CODEC OPTIONS

View File

@@ -163,6 +163,9 @@ Requires the presence of the libopus headers and library during
configuration. You need to explicitly configure the build with
@code{--enable-libopus}.
An FFmpeg native decoder for Opus exists, so users can decode Opus
without this library.
@c man end AUDIO DECODERS
@chapter Subtitles Decoders
@@ -187,6 +190,15 @@ The format for this option is a string containing 16 24-bits hexadecimal
numbers (without 0x prefix) separated by comas, for example @code{0d00ee,
ee450d, 101010, eaeaea, 0ce60b, ec14ed, ebff0b, 0d617a, 7b7b7b, d1d1d1,
7b2a0e, 0d950c, 0f007b, cf0dec, cfa80c, 7c127b}.
@item ifo_palette
Specify the IFO file from which the global palette is obtained.
(experimental)
@item forced_subs_only
Only decode subtitle entries marked as forced. Some titles have forced
and non-forced subtitles in the same track. Setting this flag to @code{1}
will only keep the forced subtitles. Default value is @code{0}.
@end table
@section libzvbi-teletext

View File

@@ -29,6 +29,26 @@ 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".
@section apng
Animated Portable Network Graphics demuxer.
This demuxer is used to demux APNG files.
All headers, but the PNG signature, up to (but not including) the first
fcTL chunk are transmitted as extradata.
Frames are then split as being all the chunks between two fcTL ones, or
between the last fcTL and IEND chunks.
@table @option
@item -ignore_loop @var{bool}
Ignore the loop variable in the file if set.
@item -max_fps @var{int}
Maximum framerate in frames per second (0 for no limit).
@item -default_fps @var{int}
Default framerate in frames per second when none is specified in the file
(0 meaning as fast as possible).
@end table
@section asf
Advanced Systems Format demuxer.
@@ -174,6 +194,40 @@ See @url{http://quvi.sourceforge.net/} for more information.
FFmpeg needs to be built with @code{--enable-libquvi} for this demuxer to be
enabled.
@section gif
Animated GIF demuxer.
It accepts the following options:
@table @option
@item min_delay
Set the minimum valid delay between frames in hundredths of seconds.
Range is 0 to 6000. Default value is 2.
@item default_delay
Set the default delay between frames in hundredths of seconds.
Range is 0 to 6000. Default value is 10.
@item ignore_loop
GIF files can contain information to loop a certain number of times (or
infinitely). If @option{ignore_loop} is set to 1, then the loop setting
from the input will be ignored and looping will not occur. If set to 0,
then looping will occur and will cycle the number of times according to
the GIF. Default value is 1.
@end table
For example, with the overlay filter, place an infinitely looping GIF
over another video:
@example
ffmpeg -i input.mp4 -ignore_loop 0 -i input.gif -filter_complex overlay=shortest=1 out.mkv
@end example
Note that in the above example the shortest option for overlay filter is
used to end the output video at the length of the shortest input file,
which in this case is @file{input.mp4} as the GIF in this example loops
infinitely.
@section image2
Image file demuxer.

View File

@@ -323,9 +323,12 @@ Always fill out the commit log message. Describe in a few lines what you
changed and why. You can refer to mailing list postings if you fix a
particular bug. Comments such as "fixed!" or "Changed it." are unacceptable.
Recommended format:
@example
area changed: Short 1 line description
details describing what and why and giving references.
@end example
@item
Make sure the author of the commit is set correctly. (see git commit --author)

View File

@@ -1032,7 +1032,7 @@ configuration. You need to explicitly configure the build with
@subsection Option Mapping
Most libopus options are modeled after the @command{opusenc} utility from
Most libopus options are modelled 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.
@@ -1330,7 +1330,7 @@ ffmpeg -i INPUT -codec:v libtheora -b:v 1000k OUTPUT.ogg
@section libvpx
VP8 format supported through libvpx.
VP8/VP9 format supported through libvpx.
Requires the presence of the libvpx headers and library during configuration.
You need to explicitly configure the build with @code{--enable-libvpx}.
@@ -1442,6 +1442,9 @@ g_lag_in_frames
@item vp8flags error_resilient
g_error_resilient
@item aq_mode
@code{VP9E_SET_AQ_MODE}
@end table
For more information about libvpx see:
@@ -1742,6 +1745,10 @@ Enable calculation and printing SSIM stats after the encoding.
Enable the use of Periodic Intra Refresh instead of IDR frames when set
to 1.
@item avcintra-class (@emph{class})
Configure the encoder to generate AVC-Intra.
Valid values are 50,100 and 200
@item bluray-compat (@emph{bluray-compat})
Configure the encoder to be compatible with the bluray standard.
It is a shorthand for setting "bluray-compat=1 force-cfr=1".
@@ -1879,6 +1886,34 @@ no-fast-pskip=1:subq=6:8x8dct=0:trellis=0 OUTPUT
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 libx265
x265 H.265/HEVC encoder wrapper.
This encoder requires the presence of the libx265 headers and library
during configuration. You need to explicitly configure the build with
@option{--enable-libx265}.
@subsection Options
@table @option
@item preset
Set the x265 preset.
@item tune
Set the x265 tune parameter.
@item x265-params
Set x265 options using a list of @var{key}=@var{value} couples separated
by ":". See @command{x265 --help} for a list of options.
For example to specify libx265 encoding options with @option{-x265-params}:
@example
ffmpeg -i input -c:v libx265 -x265-params crf=26:psy-rd=1 output.mp4
@end example
@end table
@section libxvid
Xvid MPEG-4 Part 2 encoder wrapper.

View File

@@ -14,6 +14,7 @@ LDLIBS := $(shell pkg-config --libs $(FFMPEG_LIBS)) $(LDLIBS)
EXAMPLES= avio_reading \
decoding_encoding \
demuxing_decoding \
extract_mvs \
filtering_video \
filtering_audio \
metadata \
@@ -28,6 +29,7 @@ OBJS=$(addsuffix .o,$(EXAMPLES))
# the following examples make explicit use of the math library
avcodec: LDLIBS += -lm
decoding_encoding: LDLIBS += -lm
muxing: LDLIBS += -lm
resampling_audio: LDLIBS += -lm

View File

@@ -288,6 +288,7 @@ static void audio_decode_example(const char *outfilename, const char *filename)
avpkt.size = fread(inbuf, 1, AUDIO_INBUF_SIZE, f);
while (avpkt.size > 0) {
int i, ch;
int got_frame = 0;
if (!decoded_frame) {
@@ -304,15 +305,15 @@ static void audio_decode_example(const char *outfilename, const char *filename)
}
if (got_frame) {
/* if a frame has been decoded, output it */
int data_size = av_samples_get_buffer_size(NULL, c->channels,
decoded_frame->nb_samples,
c->sample_fmt, 1);
int data_size = av_get_bytes_per_sample(c->sample_fmt);
if (data_size < 0) {
/* This should not occur, checking just for paranoia */
fprintf(stderr, "Failed to calculate data size\n");
exit(1);
}
fwrite(decoded_frame->data[0], 1, data_size, outfile);
for (i=0; i<decoded_frame->nb_samples; i++)
for (ch=0; ch<c->channels; ch++)
fwrite(decoded_frame->data[ch] + data_size*i, 1, data_size, outfile);
}
avpkt.size -= len;
avpkt.data += len;
@@ -650,7 +651,7 @@ int main(int argc, char **argv)
video_encode_example("test.h264", AV_CODEC_ID_H264);
} else if (!strcmp(output_type, "mp2")) {
audio_encode_example("test.mp2");
audio_decode_example("test.sw", "test.mp2");
audio_decode_example("test.pcm", "test.mp2");
} else if (!strcmp(output_type, "mpg")) {
video_encode_example("test.mpg", AV_CODEC_ID_MPEG1VIDEO);
video_decode_example("test%02d.pgm", "test.mpg");

185
doc/examples/extract_mvs.c Normal file
View File

@@ -0,0 +1,185 @@
/*
* Copyright (c) 2012 Stefano Sabatini
* Copyright (c) 2014 Clément Bœsch
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include <libavutil/motion_vector.h>
#include <libavformat/avformat.h>
static AVFormatContext *fmt_ctx = NULL;
static AVCodecContext *video_dec_ctx = NULL;
static AVStream *video_stream = NULL;
static const char *src_filename = NULL;
static int video_stream_idx = -1;
static AVFrame *frame = NULL;
static AVPacket pkt;
static int video_frame_count = 0;
static int decode_packet(int *got_frame, int cached)
{
int decoded = pkt.size;
*got_frame = 0;
if (pkt.stream_index == video_stream_idx) {
int ret = avcodec_decode_video2(video_dec_ctx, frame, got_frame, &pkt);
if (ret < 0) {
fprintf(stderr, "Error decoding video frame (%s)\n", av_err2str(ret));
return ret;
}
if (*got_frame) {
int i;
AVFrameSideData *sd;
video_frame_count++;
sd = av_frame_get_side_data(frame, AV_FRAME_DATA_MOTION_VECTORS);
if (sd) {
const AVMotionVector *mvs = (const AVMotionVector *)sd->data;
for (i = 0; i < sd->size / sizeof(*mvs); i++) {
const AVMotionVector *mv = &mvs[i];
printf("%d,%2d,%2d,%2d,%4d,%4d,%4d,%4d,0x%"PRIx64"\n",
video_frame_count, mv->source,
mv->w, mv->h, mv->src_x, mv->src_y,
mv->dst_x, mv->dst_y, mv->flags);
}
}
}
}
return decoded;
}
static int open_codec_context(int *stream_idx,
AVFormatContext *fmt_ctx, enum AVMediaType type)
{
int ret;
AVStream *st;
AVCodecContext *dec_ctx = NULL;
AVCodec *dec = NULL;
AVDictionary *opts = NULL;
ret = av_find_best_stream(fmt_ctx, type, -1, -1, NULL, 0);
if (ret < 0) {
fprintf(stderr, "Could not find %s stream in input file '%s'\n",
av_get_media_type_string(type), src_filename);
return ret;
} else {
*stream_idx = ret;
st = fmt_ctx->streams[*stream_idx];
/* find decoder for the stream */
dec_ctx = st->codec;
dec = avcodec_find_decoder(dec_ctx->codec_id);
if (!dec) {
fprintf(stderr, "Failed to find %s codec\n",
av_get_media_type_string(type));
return AVERROR(EINVAL);
}
/* Init the video decoder */
av_dict_set(&opts, "flags2", "+export_mvs", 0);
if ((ret = avcodec_open2(dec_ctx, dec, &opts)) < 0) {
fprintf(stderr, "Failed to open %s codec\n",
av_get_media_type_string(type));
return ret;
}
}
return 0;
}
int main(int argc, char **argv)
{
int ret = 0, got_frame;
if (argc != 2) {
fprintf(stderr, "Usage: %s <video>\n", argv[0]);
exit(1);
}
src_filename = argv[1];
av_register_all();
if (avformat_open_input(&fmt_ctx, src_filename, NULL, NULL) < 0) {
fprintf(stderr, "Could not open source file %s\n", src_filename);
exit(1);
}
if (avformat_find_stream_info(fmt_ctx, NULL) < 0) {
fprintf(stderr, "Could not find stream information\n");
exit(1);
}
if (open_codec_context(&video_stream_idx, fmt_ctx, AVMEDIA_TYPE_VIDEO) >= 0) {
video_stream = fmt_ctx->streams[video_stream_idx];
video_dec_ctx = video_stream->codec;
}
av_dump_format(fmt_ctx, 0, src_filename, 0);
if (!video_stream) {
fprintf(stderr, "Could not find video stream in the input, aborting\n");
ret = 1;
goto end;
}
frame = av_frame_alloc();
if (!frame) {
fprintf(stderr, "Could not allocate frame\n");
ret = AVERROR(ENOMEM);
goto end;
}
printf("framenum,source,blockw,blockh,srcx,srcy,dstx,dsty,flags\n");
/* initialize packet, set data to NULL, let the demuxer fill it */
av_init_packet(&pkt);
pkt.data = NULL;
pkt.size = 0;
/* read frames from the file */
while (av_read_frame(fmt_ctx, &pkt) >= 0) {
AVPacket orig_pkt = pkt;
do {
ret = decode_packet(&got_frame, 0);
if (ret < 0)
break;
pkt.data += ret;
pkt.size -= ret;
} while (pkt.size > 0);
av_free_packet(&orig_pkt);
}
/* flush cached frames */
pkt.data = NULL;
pkt.size = 0;
do {
decode_packet(&got_frame, 1);
} while (got_frame);
end:
avcodec_close(video_dec_ctx);
avformat_close_input(&fmt_ctx);
av_frame_free(&frame);
return ret < 0;
}

View File

@@ -45,6 +45,7 @@
#include "libavutil/channel_layout.h"
#include "libavutil/md5.h"
#include "libavutil/mem.h"
#include "libavutil/opt.h"
#include "libavutil/samplefmt.h"

View File

@@ -90,6 +90,7 @@ static int init_filters(const char *filters_descr)
AVFilter *buffersink = avfilter_get_by_name("buffersink");
AVFilterInOut *outputs = avfilter_inout_alloc();
AVFilterInOut *inputs = avfilter_inout_alloc();
AVRational time_base = fmt_ctx->streams[video_stream_index]->time_base;
enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE };
filter_graph = avfilter_graph_alloc();
@@ -102,7 +103,7 @@ static int init_filters(const char *filters_descr)
snprintf(args, sizeof(args),
"video_size=%dx%d:pix_fmt=%d:time_base=%d/%d:pixel_aspect=%d/%d",
dec_ctx->width, dec_ctx->height, dec_ctx->pix_fmt,
dec_ctx->time_base.num, dec_ctx->time_base.den,
time_base.num, time_base.den,
dec_ctx->sample_aspect_ratio.num, dec_ctx->sample_aspect_ratio.den);
ret = avfilter_graph_create_filter(&buffersrc_ctx, buffersrc, "in",

View File

@@ -55,6 +55,7 @@ typedef struct OutputStream {
/* pts of the next frame that will be generated */
int64_t next_pts;
int samples_count;
AVFrame *frame;
AVFrame *tmp_frame;
@@ -62,6 +63,7 @@ typedef struct OutputStream {
float t, tincr, tincr2;
struct SwsContext *sws_ctx;
struct SwrContext *swr_ctx;
} OutputStream;
static void log_packet(const AVFormatContext *fmt_ctx, const AVPacket *pkt)
@@ -92,6 +94,7 @@ static void add_stream(OutputStream *ost, AVFormatContext *oc,
enum AVCodecID codec_id)
{
AVCodecContext *c;
int i;
/* find the encoder */
*codec = avcodec_find_encoder(codec_id);
@@ -115,8 +118,24 @@ static void add_stream(OutputStream *ost, AVFormatContext *oc,
(*codec)->sample_fmts[0] : AV_SAMPLE_FMT_FLTP;
c->bit_rate = 64000;
c->sample_rate = 44100;
c->channels = 2;
if ((*codec)->supported_samplerates) {
c->sample_rate = (*codec)->supported_samplerates[0];
for (i = 0; (*codec)->supported_samplerates[i]; i++) {
if ((*codec)->supported_samplerates[i] == 44100)
c->sample_rate = 44100;
}
}
c->channels = av_get_channel_layout_nb_channels(c->channel_layout);
c->channel_layout = AV_CH_LAYOUT_STEREO;
if ((*codec)->channel_layouts) {
c->channel_layout = (*codec)->channel_layouts[0];
for (i = 0; (*codec)->channel_layouts[i]; i++) {
if ((*codec)->channel_layouts[i] == AV_CH_LAYOUT_STEREO)
c->channel_layout = AV_CH_LAYOUT_STEREO;
}
}
c->channels = av_get_channel_layout_nb_channels(c->channel_layout);
ost->st->time_base = (AVRational){ 1, c->sample_rate };
break;
case AVMEDIA_TYPE_VIDEO:
@@ -130,8 +149,9 @@ static void add_stream(OutputStream *ost, AVFormatContext *oc,
* of which frame timestamps are represented. For fixed-fps content,
* timebase should be 1/framerate and timestamp increments should be
* identical to 1. */
c->time_base.den = STREAM_FRAME_RATE;
c->time_base.num = 1;
ost->st->time_base = (AVRational){ 1, STREAM_FRAME_RATE };
c->time_base = ost->st->time_base;
c->gop_size = 12; /* emit one intra frame every twelve frames at most */
c->pix_fmt = STREAM_PIX_FMT;
if (c->codec_id == AV_CODEC_ID_MPEG2VIDEO) {
@@ -158,19 +178,47 @@ static void add_stream(OutputStream *ost, AVFormatContext *oc,
/**************************************************************/
/* audio output */
int samples_count;
static AVFrame *alloc_audio_frame(enum AVSampleFormat sample_fmt,
uint64_t channel_layout,
int sample_rate, int nb_samples)
{
AVFrame *frame = av_frame_alloc();
int ret;
struct SwrContext *swr_ctx = NULL;
if (!frame) {
fprintf(stderr, "Error allocating an audio frame\n");
exit(1);
}
static void open_audio(AVFormatContext *oc, AVCodec *codec, OutputStream *ost)
frame->format = sample_fmt;
frame->channel_layout = channel_layout;
frame->sample_rate = sample_rate;
frame->nb_samples = nb_samples;
if (nb_samples) {
ret = av_frame_get_buffer(frame, 0);
if (ret < 0) {
fprintf(stderr, "Error allocating an audio buffer\n");
exit(1);
}
}
return frame;
}
static void open_audio(AVFormatContext *oc, AVCodec *codec, OutputStream *ost, AVDictionary *opt_arg)
{
AVCodecContext *c;
int nb_samples;
int ret;
AVDictionary *opt = NULL;
c = ost->st->codec;
/* open it */
ret = avcodec_open2(c, codec, NULL);
av_dict_copy(&opt, opt_arg, 0);
ret = avcodec_open2(c, codec, &opt);
av_dict_free(&opt);
if (ret < 0) {
fprintf(stderr, "Could not open audio codec: %s\n", av_err2str(ret));
exit(1);
@@ -182,84 +230,52 @@ static void open_audio(AVFormatContext *oc, AVCodec *codec, OutputStream *ost)
/* increment frequency by 110 Hz per second */
ost->tincr2 = 2 * M_PI * 110.0 / c->sample_rate / c->sample_rate;
ost->frame = av_frame_alloc();
if (!ost->frame)
exit(1);
ost->frame->sample_rate = c->sample_rate;
ost->frame->format = AV_SAMPLE_FMT_S16;
ost->frame->channel_layout = c->channel_layout;
if (c->codec->capabilities & CODEC_CAP_VARIABLE_FRAME_SIZE)
ost->frame->nb_samples = 10000;
nb_samples = 10000;
else
ost->frame->nb_samples = c->frame_size;
nb_samples = c->frame_size;
ost->tmp_frame = av_frame_alloc();
if (!ost->frame)
exit(1);
ost->tmp_frame->sample_rate = c->sample_rate;
ost->tmp_frame->format = c->sample_fmt;
ost->tmp_frame->channel_layout = c->channel_layout;
ost->tmp_frame->nb_samples = ost->frame->nb_samples;
ost->frame = alloc_audio_frame(c->sample_fmt, c->channel_layout,
c->sample_rate, nb_samples);
ost->tmp_frame = alloc_audio_frame(AV_SAMPLE_FMT_S16, c->channel_layout,
c->sample_rate, nb_samples);
/* create resampler context */
if (c->sample_fmt != AV_SAMPLE_FMT_S16) {
swr_ctx = swr_alloc();
if (!swr_ctx) {
ost->swr_ctx = swr_alloc();
if (!ost->swr_ctx) {
fprintf(stderr, "Could not allocate resampler context\n");
exit(1);
}
/* set options */
av_opt_set_int (swr_ctx, "in_channel_count", c->channels, 0);
av_opt_set_int (swr_ctx, "in_sample_rate", c->sample_rate, 0);
av_opt_set_sample_fmt(swr_ctx, "in_sample_fmt", AV_SAMPLE_FMT_S16, 0);
av_opt_set_int (swr_ctx, "out_channel_count", c->channels, 0);
av_opt_set_int (swr_ctx, "out_sample_rate", c->sample_rate, 0);
av_opt_set_sample_fmt(swr_ctx, "out_sample_fmt", c->sample_fmt, 0);
av_opt_set_int (ost->swr_ctx, "in_channel_count", c->channels, 0);
av_opt_set_int (ost->swr_ctx, "in_sample_rate", c->sample_rate, 0);
av_opt_set_sample_fmt(ost->swr_ctx, "in_sample_fmt", AV_SAMPLE_FMT_S16, 0);
av_opt_set_int (ost->swr_ctx, "out_channel_count", c->channels, 0);
av_opt_set_int (ost->swr_ctx, "out_sample_rate", c->sample_rate, 0);
av_opt_set_sample_fmt(ost->swr_ctx, "out_sample_fmt", c->sample_fmt, 0);
/* initialize the resampling context */
if ((ret = swr_init(swr_ctx)) < 0) {
if ((ret = swr_init(ost->swr_ctx)) < 0) {
fprintf(stderr, "Failed to initialize the resampling context\n");
exit(1);
}
}
ret = av_frame_get_buffer(ost->frame, 0);
if (ret < 0) {
fprintf(stderr, "Could not allocate an audio frame.\n");
exit(1);
}
ret = av_frame_get_buffer(ost->tmp_frame, 0);
if (ret < 0) {
fprintf(stderr, "Could not allocate an audio frame.\n");
exit(1);
}
}
/* Prepare a 16 bit dummy audio frame of 'frame_size' samples and
* 'nb_channels' channels. */
static AVFrame *get_audio_frame(OutputStream *ost)
{
int j, i, v, ret;
int16_t *q = (int16_t*)ost->frame->data[0];
AVFrame *frame = ost->tmp_frame;
int j, i, v;
int16_t *q = (int16_t*)frame->data[0];
/* check if we want to generate more frames */
if (av_compare_ts(ost->next_pts, ost->st->codec->time_base,
STREAM_DURATION, (AVRational){ 1, 1 }) >= 0)
return NULL;
/* when we pass a frame to the encoder, it may keep a reference to it
* internally;
* make sure we do not overwrite it here
*/
ret = av_frame_make_writable(ost->frame);
if (ret < 0)
exit(1);
for (j = 0; j < ost->frame->nb_samples; j++) {
for (j = 0; j <frame->nb_samples; j++) {
v = (int)(sin(ost->t) * 10000);
for (i = 0; i < ost->st->codec->channels; i++)
*q++ = v;
@@ -267,10 +283,10 @@ static AVFrame *get_audio_frame(OutputStream *ost)
ost->tincr += ost->tincr2;
}
ost->frame->pts = ost->next_pts;
ost->next_pts += ost->frame->nb_samples;
frame->pts = ost->next_pts;
ost->next_pts += frame->nb_samples;
return ost->frame;
return frame;
}
/*
@@ -293,27 +309,31 @@ static int write_audio_frame(AVFormatContext *oc, OutputStream *ost)
if (frame) {
/* convert samples from native format to destination codec format, using the resampler */
if (swr_ctx) {
/* compute destination number of samples */
dst_nb_samples = av_rescale_rnd(swr_get_delay(swr_ctx, c->sample_rate) + frame->nb_samples,
dst_nb_samples = av_rescale_rnd(swr_get_delay(ost->swr_ctx, c->sample_rate) + frame->nb_samples,
c->sample_rate, c->sample_rate, AV_ROUND_UP);
av_assert0(dst_nb_samples == frame->nb_samples);
/* when we pass a frame to the encoder, it may keep a reference to it
* internally;
* make sure we do not overwrite it here
*/
ret = av_frame_make_writable(ost->frame);
if (ret < 0)
exit(1);
/* convert to destination format */
ret = swr_convert(swr_ctx,
ost->tmp_frame->data, dst_nb_samples,
ret = swr_convert(ost->swr_ctx,
ost->frame->data, dst_nb_samples,
(const uint8_t **)frame->data, frame->nb_samples);
if (ret < 0) {
fprintf(stderr, "Error while converting\n");
exit(1);
}
frame = ost->tmp_frame;
} else {
dst_nb_samples = frame->nb_samples;
}
frame = ost->frame;
frame->pts = av_rescale_q(samples_count, (AVRational){1, c->sample_rate}, c->time_base);
samples_count += dst_nb_samples;
frame->pts = av_rescale_q(ost->samples_count, (AVRational){1, c->sample_rate}, c->time_base);
ost->samples_count += dst_nb_samples;
}
ret = avcodec_encode_audio2(c, &pkt, frame, &got_packet);
@@ -360,13 +380,17 @@ static AVFrame *alloc_picture(enum AVPixelFormat pix_fmt, int width, int height)
return picture;
}
static void open_video(AVFormatContext *oc, AVCodec *codec, OutputStream *ost)
static void open_video(AVFormatContext *oc, AVCodec *codec, OutputStream *ost, AVDictionary *opt_arg)
{
int ret;
AVCodecContext *c = ost->st->codec;
AVDictionary *opt = NULL;
av_dict_copy(&opt, opt_arg, 0);
/* open the codec */
ret = avcodec_open2(c, codec, NULL);
ret = avcodec_open2(c, codec, &opt);
av_dict_free(&opt);
if (ret < 0) {
fprintf(stderr, "Could not open video codec: %s\n", av_err2str(ret));
exit(1);
@@ -523,6 +547,7 @@ static void close_stream(AVFormatContext *oc, OutputStream *ost)
av_frame_free(&ost->frame);
av_frame_free(&ost->tmp_frame);
sws_freeContext(ost->sws_ctx);
swr_free(&ost->swr_ctx);
}
/**************************************************************/
@@ -538,11 +563,12 @@ int main(int argc, char **argv)
int ret;
int have_video = 0, have_audio = 0;
int encode_video = 0, encode_audio = 0;
AVDictionary *opt = NULL;
/* Initialize libavcodec, and register all codecs and formats. */
av_register_all();
if (argc != 2) {
if (argc < 2) {
printf("usage: %s output_file\n"
"API example program to output a media file with libavformat.\n"
"This program generates a synthetic audio and video stream, encodes and\n"
@@ -554,6 +580,9 @@ int main(int argc, char **argv)
}
filename = argv[1];
if (argc > 3 && !strcmp(argv[2], "-flags")) {
av_dict_set(&opt, argv[2]+1, argv[3], 0);
}
/* allocate the output media context */
avformat_alloc_output_context2(&oc, NULL, NULL, filename);
@@ -582,10 +611,10 @@ int main(int argc, char **argv)
/* Now that all the parameters are set, we can open the audio and
* video codecs and allocate the necessary encode buffers. */
if (have_video)
open_video(oc, video_codec, &video_st);
open_video(oc, video_codec, &video_st, opt);
if (have_audio)
open_audio(oc, audio_codec, &audio_st);
open_audio(oc, audio_codec, &audio_st, opt);
av_dump_format(oc, 0, filename, 1);
@@ -600,7 +629,7 @@ int main(int argc, char **argv)
}
/* Write the stream header, if any. */
ret = avformat_write_header(oc, NULL);
ret = avformat_write_header(oc, &opt);
if (ret < 0) {
fprintf(stderr, "Error occurred when opening output file: %s\n",
av_err2str(ret));

View File

@@ -199,8 +199,7 @@ int main(int argc, char **argv)
fmt, dst_ch_layout, dst_nb_channels, dst_rate, dst_filename);
end:
if (dst_file)
fclose(dst_file);
fclose(dst_file);
if (src_data)
av_freep(&src_data[0]);

View File

@@ -132,8 +132,7 @@ int main(int argc, char **argv)
av_get_pix_fmt_name(dst_pix_fmt), dst_w, dst_h, dst_filename);
end:
if (dst_file)
fclose(dst_file);
fclose(dst_file);
av_freep(&src_data[0]);
av_freep(&dst_data[0]);
sws_freeContext(sws_ctx);

View File

@@ -52,7 +52,7 @@
* @param error Error code to be converted
* @return Corresponding error text (not thread-safe)
*/
static char *const get_error_text(const int error)
static const char *get_error_text(const int error)
{
static char error_buffer[255];
av_strerror(error, error_buffer, sizeof(error_buffer));
@@ -306,7 +306,7 @@ static int decode_audio_frame(AVFrame *frame,
/** Read one audio frame from the input file into a temporary packet. */
if ((error = av_read_frame(input_format_context, &input_packet)) < 0) {
/** If we are the the end of the file, flush the decoder below. */
/** If we are at the end of the file, flush the decoder below. */
if (error == AVERROR_EOF)
*finished = 1;
else {

View File

@@ -116,6 +116,10 @@ static int open_output_file(const char *filename)
|| dec_ctx->codec_type == AVMEDIA_TYPE_AUDIO) {
/* in this example, we choose transcoding to same codec */
encoder = avcodec_find_encoder(dec_ctx->codec_id);
if (!encoder) {
av_log(NULL, AV_LOG_FATAL, "Neccessary encoder not found\n");
return AVERROR_INVALIDDATA;
}
/* In this example, we transcode to same properties (picture size,
* sample rate etc.). These properties can be changed for output
@@ -385,17 +389,9 @@ static int encode_write_frame(AVFrame *filt_frame, unsigned int stream_index, in
/* prepare packet for muxing */
enc_pkt.stream_index = stream_index;
enc_pkt.dts = av_rescale_q_rnd(enc_pkt.dts,
ofmt_ctx->streams[stream_index]->codec->time_base,
ofmt_ctx->streams[stream_index]->time_base,
AV_ROUND_NEAR_INF|AV_ROUND_PASS_MINMAX);
enc_pkt.pts = av_rescale_q_rnd(enc_pkt.pts,
ofmt_ctx->streams[stream_index]->codec->time_base,
ofmt_ctx->streams[stream_index]->time_base,
AV_ROUND_NEAR_INF|AV_ROUND_PASS_MINMAX);
enc_pkt.duration = av_rescale_q(enc_pkt.duration,
ofmt_ctx->streams[stream_index]->codec->time_base,
ofmt_ctx->streams[stream_index]->time_base);
av_packet_rescale_ts(&enc_pkt,
ofmt_ctx->streams[stream_index]->codec->time_base,
ofmt_ctx->streams[stream_index]->time_base);
av_log(NULL, AV_LOG_DEBUG, "Muxing frame\n");
/* mux encoded frame */
@@ -509,14 +505,9 @@ int main(int argc, char **argv)
ret = AVERROR(ENOMEM);
break;
}
packet.dts = av_rescale_q_rnd(packet.dts,
ifmt_ctx->streams[stream_index]->time_base,
ifmt_ctx->streams[stream_index]->codec->time_base,
AV_ROUND_NEAR_INF|AV_ROUND_PASS_MINMAX);
packet.pts = av_rescale_q_rnd(packet.pts,
ifmt_ctx->streams[stream_index]->time_base,
ifmt_ctx->streams[stream_index]->codec->time_base,
AV_ROUND_NEAR_INF|AV_ROUND_PASS_MINMAX);
av_packet_rescale_ts(&packet,
ifmt_ctx->streams[stream_index]->time_base,
ifmt_ctx->streams[stream_index]->codec->time_base);
dec_func = (type == AVMEDIA_TYPE_VIDEO) ? avcodec_decode_video2 :
avcodec_decode_audio4;
ret = dec_func(ifmt_ctx->streams[stream_index]->codec, frame,
@@ -538,14 +529,9 @@ int main(int argc, char **argv)
}
} else {
/* remux this frame without reencoding */
packet.dts = av_rescale_q_rnd(packet.dts,
ifmt_ctx->streams[stream_index]->time_base,
ofmt_ctx->streams[stream_index]->time_base,
AV_ROUND_NEAR_INF|AV_ROUND_PASS_MINMAX);
packet.pts = av_rescale_q_rnd(packet.pts,
ifmt_ctx->streams[stream_index]->time_base,
ofmt_ctx->streams[stream_index]->time_base,
AV_ROUND_NEAR_INF|AV_ROUND_PASS_MINMAX);
av_packet_rescale_ts(&packet,
ifmt_ctx->streams[stream_index]->time_base,
ofmt_ctx->streams[stream_index]->time_base);
ret = av_interleaved_write_frame(ofmt_ctx, &packet);
if (ret < 0)

View File

@@ -339,7 +339,7 @@ ffmpeg -i in.avi -metadata title="my title" out.flv
To set the language of the first audio stream:
@example
ffmpeg -i INPUT -metadata:s:a:1 language=eng OUTPUT
ffmpeg -i INPUT -metadata:s:a:0 language=eng OUTPUT
@end example
@item -target @var{type} (@emph{output})
@@ -360,7 +360,7 @@ ffmpeg -i myfile.avi -target vcd -bf 2 /tmp/vcd.mpg
@end example
@item -dframes @var{number} (@emph{output})
Set the number of data frames to record. This is an alias for @code{-frames:d}.
Set the number of data frames to output. This is an alias for @code{-frames:d}.
@item -frames[:@var{stream_specifier}] @var{framecount} (@emph{output,per-stream})
Stop writing to the stream after @var{framecount} frames.
@@ -467,12 +467,15 @@ attachments.
@table @option
@item -vframes @var{number} (@emph{output})
Set the number of video frames to record. This is an alias for @code{-frames:v}.
Set the number of video frames to output. This is an alias for @code{-frames:v}.
@item -r[:@var{stream_specifier}] @var{fps} (@emph{input/output,per-stream})
Set frame rate (Hz value, fraction or abbreviation).
As an input option, ignore any timestamps stored in the file and instead
generate timestamps assuming constant frame rate @var{fps}.
This is not the same as the @option{-framerate} option used for some input formats
like image2 or v4l2 (it used to be the same in older versions of FFmpeg).
If in doubt use @option{-framerate} instead of the input option @option{-r}.
As an output option, duplicate or drop input frames to achieve constant output
frame rate @var{fps}.
@@ -689,7 +692,7 @@ If this option is not specified, the default adapter is used.
@table @option
@item -aframes @var{number} (@emph{output})
Set the number of audio frames to record. This is an alias for @code{-frames:a}.
Set the number of audio frames to output. This is an alias for @code{-frames:a}.
@item -ar[:@var{stream_specifier}] @var{freq} (@emph{input/output,per-stream})
Set the audio sampling frequency. For output streams it is set by
default to the frequency of the corresponding input stream. For input
@@ -821,6 +824,11 @@ To map all the streams except the second audio, use negative mappings
ffmpeg -i INPUT -map 0 -map -0:a:1 OUTPUT
@end example
To pick the English audio stream:
@example
ffmpeg -i INPUT -map 0:m:language:eng OUTPUT
@end example
Note that using this option disables the default mappings for this output file.
@item -map_channel [@var{input_file_id}.@var{stream_specifier}.@var{channel_id}|-1][:@var{output_file_id}.@var{stream_specifier}]
@@ -1008,6 +1016,12 @@ processing (e.g. in case the format option @option{avoid_negative_ts}
is enabled) the output timestamps may mismatch with the input
timestamps even when this option is selected.
@item -start_at_zero
When used with @option{copyts}, shift input timestamps so they start at zero.
This means that using e.g. @code{-ss 50} will make output timestamps start at
50 seconds, regardless of what timestamp the input file started at.
@item -copytb @var{mode}
Specify how to set the encoder timebase when stream copying. @var{mode} is an
integer numeric value, and can assume one of the following values:
@@ -1450,11 +1464,11 @@ ffmpeg -f image2 -pattern_type glob -i 'foo-*.jpeg' -r 12 -s WxH foo.avi
You can put many streams of the same type in the output:
@example
ffmpeg -i test1.avi -i test2.avi -map 0:3 -map 0:2 -map 0:1 -map 0:0 -c copy test12.nut
ffmpeg -i test1.avi -i test2.avi -map 1:1 -map 1:0 -map 0:1 -map 0:0 -c copy -y test12.nut
@end example
The resulting output file @file{test12.avi} will contain first four streams from
the input file in reverse order.
The resulting output file @file{test12.nut} will contain the first four streams
from the input files in reverse order.
@item
To force CBR video output:

View File

@@ -37,10 +37,14 @@ Force displayed height.
Set frame size (WxH or abbreviation), needed for videos which do
not contain a header with the frame size like raw YUV. This option
has been deprecated in favor of private options, try -video_size.
@item -fs
Start in fullscreen mode.
@item -an
Disable audio.
@item -vn
Disable video.
@item -sn
Disable subtitles.
@item -ss @var{pos}
Seek to a given position in seconds.
@item -t @var{duration}
@@ -109,15 +113,10 @@ duration, the codec parameters, the current position in the stream and
the audio/video synchronisation drift. It is on by default, to
explicitly disable it you need to specify @code{-nostats}.
@item -bug
Work around bugs.
@item -fast
Non-spec-compliant optimizations.
@item -genpts
Generate pts.
@item -rtp_tcp
Force RTP/TCP protocol usage instead of RTP/UDP. It is only meaningful
if you are streaming with the RTSP protocol.
@item -sync @var{type}
Set the master clock to audio (@code{type=audio}), video
(@code{type=video}) or external (@code{type=ext}). Default is audio. The
@@ -126,7 +125,8 @@ players use audio as master clock, but in some cases (streaming or high
quality broadcast) it is necessary to change that. This option is mainly
used for debugging purposes.
@item -threads @var{count}
Set the thread count.
Set the thread count. By default, @command{ffplay} automatically detects a
suitable number of threads to use.
@item -ast @var{audio_stream_number}
Select the desired audio stream number, counting from 0. The number
refers to the list of all the input audio streams. If it is greater
@@ -164,8 +164,20 @@ Force a specific video decoder.
Force a specific subtitle decoder.
@item -autorotate
Automatically rotate the video according to presentation metadata. Set by
default, use -noautorotate to disable.
Automatically rotate the video according to presentation metadata. Enabled by
default, use @option{-noautorotate} to disable it.
@item -framedrop
Drop video frames if video is out of sync. Enabled by default if the master
clock is not set to video. Use this option to enable frame dropping for all
master clock sources, use @option{-noframedrop} to disable it.
@item -infbuf
Do not limit the input buffer size, read as much data as possible from the
input as soon as possible. Enabled by default for realtime streams, where data
may be dropped if not read in time. Use this option to enable infinite buffers
for all inputs, use @option{-noinfbuf} to disable it.
@end table
@section While playing

View File

@@ -119,6 +119,10 @@ Show payload data, as a hexadecimal and ASCII dump. Coupled with
The dump is printed as the "data" field. It may contain newlines.
@item -show_data_hash @var{algorithm}
Show a hash of payload data, for packets with @option{-show_packets} and for
codec extradata with @option{-show_streams}.
@item -show_error
Show information about the error found when trying to probe the input.
@@ -180,7 +184,7 @@ format : stream=codec_type
To show all the tags in the stream and format sections:
@example
format_tags : format_tags
stream_tags : format_tags
@end example
To show only the @code{title} tag (if available) in the stream
@@ -317,6 +321,12 @@ Show information related to program and library versions. This is the
equivalent of setting both @option{-show_program_version} and
@option{-show_library_versions} options.
@item -show_pixel_formats
Show information about all pixel formats supported by FFmpeg.
Pixel format information for each format is printed within a section
with name "PIXEL_FORMAT".
@item -bitexact
Force bitexact output, useful to produce output which is not dependent
on the specific build.

View File

@@ -10,8 +10,10 @@
<xsd:sequence>
<xsd:element name="program_version" type="ffprobe:programVersionType" minOccurs="0" maxOccurs="1" />
<xsd:element name="library_versions" type="ffprobe:libraryVersionsType" minOccurs="0" maxOccurs="1" />
<xsd:element name="pixel_formats" type="ffprobe:pixelFormatsType" minOccurs="0" maxOccurs="1" />
<xsd:element name="packets" type="ffprobe:packetsType" minOccurs="0" maxOccurs="1" />
<xsd:element name="frames" type="ffprobe:framesType" minOccurs="0" maxOccurs="1" />
<xsd:element name="packets_and_frames" type="ffprobe:packetsAndFramesType" minOccurs="0" maxOccurs="1" />
<xsd:element name="programs" type="ffprobe:programsType" minOccurs="0" maxOccurs="1" />
<xsd:element name="streams" type="ffprobe:streamsType" minOccurs="0" maxOccurs="1" />
<xsd:element name="chapters" type="ffprobe:chaptersType" minOccurs="0" maxOccurs="1" />
@@ -35,6 +37,16 @@
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="packetsAndFramesType">
<xsd:sequence>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element name="packet" type="ffprobe:packetType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="frame" type="ffprobe:frameType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="subtitle" type="ffprobe:subtitleType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:choice>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="packetType">
<xsd:attribute name="codec_type" type="xsd:string" use="required" />
<xsd:attribute name="stream_index" type="xsd:int" use="required" />
@@ -50,11 +62,13 @@
<xsd:attribute name="pos" type="xsd:long" />
<xsd:attribute name="flags" type="xsd:string" use="required" />
<xsd:attribute name="data" type="xsd:string" />
<xsd:attribute name="data_hash" type="xsd:string" />
</xsd:complexType>
<xsd:complexType name="frameType">
<xsd:sequence>
<xsd:element name="tag" type="ffprobe:tagType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="side_data_list" type="ffprobe:frameSideDataListType" minOccurs="0" maxOccurs="1" />
</xsd:sequence>
<xsd:attribute name="media_type" type="xsd:string" use="required"/>
@@ -91,6 +105,16 @@
<xsd:attribute name="repeat_pict" type="xsd:int" />
</xsd:complexType>
<xsd:complexType name="frameSideDataListType">
<xsd:sequence>
<xsd:element name="side_data" type="ffprobe:frameSideDataType" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="frameSideDataType">
<xsd:attribute name="side_data_type" type="xsd:string"/>
<xsd:attribute name="side_data_size" type="xsd:int" />
</xsd:complexType>
<xsd:complexType name="subtitleType">
<xsd:attribute name="media_type" type="xsd:string" fixed="subtitle" use="required"/>
<xsd:attribute name="pts" type="xsd:long" />
@@ -142,6 +166,7 @@
<xsd:attribute name="codec_tag" type="xsd:string" use="required"/>
<xsd:attribute name="codec_tag_string" type="xsd:string" use="required"/>
<xsd:attribute name="extradata" type="xsd:string" />
<xsd:attribute name="extradata_hash" type="xsd:string" />
<!-- video attributes -->
<xsd:attribute name="width" type="xsd:int"/>
@@ -153,6 +178,9 @@
<xsd:attribute name="level" type="xsd:int"/>
<xsd:attribute name="color_range" type="xsd:string"/>
<xsd:attribute name="color_space" type="xsd:string"/>
<xsd:attribute name="color_transfer" type="xsd:string"/>
<xsd:attribute name="color_primaries" type="xsd:string"/>
<xsd:attribute name="chroma_location" type="xsd:string"/>
<xsd:attribute name="timecode" type="xsd:string"/>
<!-- audio attributes -->
@@ -172,6 +200,7 @@
<xsd:attribute name="duration" type="xsd:float"/>
<xsd:attribute name="bit_rate" type="xsd:int"/>
<xsd:attribute name="max_bit_rate" type="xsd:int"/>
<xsd:attribute name="bits_per_raw_sample" type="xsd:int"/>
<xsd:attribute name="nb_frames" type="xsd:int"/>
<xsd:attribute name="nb_read_frames" type="xsd:int"/>
<xsd:attribute name="nb_read_packets" type="xsd:int"/>
@@ -263,4 +292,45 @@
<xsd:element name="library_version" type="ffprobe:libraryVersionType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="pixelFormatFlagsType">
<xsd:attribute name="big_endian" type="xsd:int" use="required"/>
<xsd:attribute name="palette" type="xsd:int" use="required"/>
<xsd:attribute name="bitstream" type="xsd:int" use="required"/>
<xsd:attribute name="hwaccel" type="xsd:int" use="required"/>
<xsd:attribute name="planar" type="xsd:int" use="required"/>
<xsd:attribute name="rgb" type="xsd:int" use="required"/>
<xsd:attribute name="pseudopal" type="xsd:int" use="required"/>
<xsd:attribute name="alpha" type="xsd:int" use="required"/>
</xsd:complexType>
<xsd:complexType name="pixelFormatComponentType">
<xsd:attribute name="index" type="xsd:int" use="required"/>
<xsd:attribute name="bit_depth" type="xsd:int" use="required"/>
</xsd:complexType>
<xsd:complexType name="pixelFormatComponentsType">
<xsd:sequence>
<xsd:element name="component" type="ffprobe:pixelFormatComponentType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="pixelFormatType">
<xsd:sequence>
<xsd:element name="flags" type="ffprobe:pixelFormatFlagsType" minOccurs="0" maxOccurs="1"/>
<xsd:element name="components" type="ffprobe:pixelFormatComponentsType" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required"/>
<xsd:attribute name="nb_components" type="xsd:int" use="required"/>
<xsd:attribute name="log2_chroma_w" type="xsd:int"/>
<xsd:attribute name="log2_chroma_h" type="xsd:int"/>
<xsd:attribute name="bits_per_pixel" type="xsd:int"/>
</xsd:complexType>
<xsd:complexType name="pixelFormatsType">
<xsd:sequence>
<xsd:element name="pixel_format" type="ffprobe:pixelFormatType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>

View File

@@ -1,11 +1,11 @@
# Port on which the server is listening. You must select a different
# port from your standard HTTP web server if it is running on the same
# computer.
Port 8090
HTTPPort 8090
# Address on which the server is bound. Only useful if you have
# several network interfaces.
BindAddress 0.0.0.0
HTTPBindAddress 0.0.0.0
# Number of simultaneous HTTP connections that can be handled. It has
# to be defined *before* the MaxClients parameter, since it defines the

View File

@@ -66,7 +66,7 @@ http://@var{ffserver_ip_address}:@var{http_port}/@var{feed_name}
where @var{ffserver_ip_address} is the IP address of the machine where
@command{ffserver} is installed, @var{http_port} is the port number of
the HTTP server (configured through the @option{Port} option), and
the HTTP server (configured through the @option{HTTPPort} option), and
@var{feed_name} is the name of the corresponding feed defined in the
configuration file.
@@ -101,7 +101,7 @@ http://@var{ffserver_ip_address}:@var{rtsp_port}/@var{stream_name}[@var{options}
the configuration file. @var{options} is a list of options specified
after the URL which affects how the stream is served by
@command{ffserver}. @var{http_port} and @var{rtsp_port} are the HTTP
and RTSP ports configured with the options @var{Port} and
and RTSP ports configured with the options @var{HTTPPort} and
@var{RTSPPort} respectively.
In case the stream is associated to a feed, the encoding parameters
@@ -203,11 +203,9 @@ WARNING: trying to stream test1.mpg doesn't work with WMP as it tries to
transfer the entire file before starting to play.
The same is true of AVI files.
@section What happens next?
You should edit the ffserver.conf file to suit your needs (in terms of
frame rates etc). Then install ffserver and ffmpeg, write a script to start
them up, and off you go.
You should edit the @file{ffserver.conf} file to suit your needs (in
terms of frame rates etc). Then install @command{ffserver} and
@command{ffmpeg}, write a script to start them up, and off you go.
@section What else can it do?
@@ -354,20 +352,29 @@ allow everybody else.
@section Global options
@table @option
@item HTTPPort @var{port_number}
@item Port @var{port_number}
@item RTSPPort @var{port_number}
Set TCP port number on which the HTTP/RTSP server is listening. You
must select a different port from your standard HTTP web server if it
is running on the same computer.
@var{HTTPPort} sets the HTTP server listening TCP port number,
@var{RTSPPort} sets the RTSP server listening TCP port number.
@var{Port} is the equivalent of @var{HTTPPort} and is deprecated.
You must select a different port from your standard HTTP web server if
it is running on the same computer.
If not specified, no corresponding server will be created.
@item HTTPBindAddress @var{ip_address}
@item BindAddress @var{ip_address}
@item RTSPBindAddress @var{ip_address}
Set address on which the HTTP/RTSP server is bound. Only useful if you
have several network interfaces.
@var{BindAddress} is the equivalent of @var{HTTPBindAddress} and is
deprecated.
@item MaxHTTPConnections @var{n}
Set number of simultaneous HTTP connections that can be handled. It
has to be defined @emph{before} the @option{MaxClients} parameter,
@@ -401,6 +408,12 @@ ignored, and the log is written to standard output.
Set no-daemon mode. This option is currently ignored since now
@command{ffserver} will always work in no-daemon mode, and is
deprecated.
@item UseDefaults
@item NoDefaults
Control whether default codec options are used for the all streams or not.
Each stream may overwrite this setting for its own. Default is @var{UseDefaults}.
The lastest occurrence overrides previous if multiple definitions.
@end table
@section Feed section
@@ -564,6 +577,11 @@ deprecated in favor of @option{Metadata}.
@item Metadata @var{key} @var{value}
Set metadata value on the output stream.
@item UseDefaults
@item NoDefaults
Control whether default codec options are used for the stream or not.
Default is @var{UseDefaults} unless disabled globally.
@item NoAudio
@item NoVideo
Suppress audio/video.
@@ -582,8 +600,9 @@ Set sampling frequency for audio. When using low bitrates, you should
lower this frequency to 22050 or 11025. The supported frequencies
depend on the selected audio codec.
@item AVOptionAudio @var{option} @var{value} (@emph{encoding,audio})
Set generic option for audio stream.
@item AVOptionAudio [@var{codec}:]@var{option} @var{value} (@emph{encoding,audio})
Set generic or private option for audio stream.
Private option must be prefixed with codec name or codec must be defined before.
@item AVPresetAudio @var{preset} (@emph{encoding,audio})
Set preset for audio stream.
@@ -660,8 +679,9 @@ Set video @option{qdiff} encoding option.
@item DarkMask @var{float} (@emph{encoding,video})
Set @option{lumi_mask}/@option{dark_mask} encoding options.
@item AVOptionVideo @var{option} @var{value} (@emph{encoding,video})
Set generic option for video stream.
@item AVOptionVideo [@var{codec}:]@var{option} @var{value} (@emph{encoding,video})
Set generic or private option for video stream.
Private option must be prefixed with codec name or codec must be defined before.
@item AVPresetVideo @var{preset} (@emph{encoding,video})
Set preset for video stream.

View File

@@ -3,7 +3,7 @@ representing a number as input, which may be followed by one of the SI
unit prefixes, for example: 'K', 'M', or 'G'.
If 'i' is appended to the SI unit prefix, the complete prefix will be
interpreted as a unit prefix for binary multiplies, which are based on
interpreted as a unit prefix for binary multiples, which are based on
powers of 1024 instead of powers of 1000. Appending 'B' to the SI unit
prefix multiplies the value by 8. This allows using, for example:
'KB', 'MiB', 'G' and 'B' as number suffixes.
@@ -46,6 +46,13 @@ in the program with the id @var{program_id}. Otherwise, it matches all streams i
program.
@item #@var{stream_id} or i:@var{stream_id}
Match the stream by stream id (e.g. PID in MPEG-TS container).
@item m:@var{key}[:@var{value}]
Matches streams with the metadata tag @var{key} having the specified value. If
@var{value} is not given, matches streams that contain the given tag with any
value.
Note that in @command{ffmpeg}, matching by metadata will only work properly for
input files.
@end table
@section Generic options
@@ -96,7 +103,10 @@ Print detailed information about the filter name @var{filter_name}. Use the
Show version.
@item -formats
Show available formats.
Show available formats (including devices).
@item -devices
Show available devices.
@item -codecs
Show all codecs known to libavcodec.
@@ -131,6 +141,22 @@ Show channel names and standard channel layouts.
@item -colors
Show recognized color names.
@item -sources @var{device}[,@var{opt1}=@var{val1}[,@var{opt2}=@var{val2}]...]
Show autodetected sources of the intput device.
Some devices may provide system-dependent source names that cannot be autodetected.
The returned list cannot be assumed to be always complete.
@example
ffmpeg -sources pulse,server=192.168.0.4
@end example
@item -sinks @var{device}[,@var{opt1}=@var{val1}[,@var{opt2}=@var{val2}]...]
Show autodetected sinks of the output device.
Some devices may provide system-dependent sink names that cannot be autodetected.
The returned list cannot be assumed to be always complete.
@example
ffmpeg -sinks pulse,server=192.168.0.4
@end example
@item -loglevel [repeat+]@var{loglevel} | -v [repeat+]@var{loglevel}
Set the logging level used by the library.
Adding "repeat+" indicates that repeated log output should not be compressed

View File

@@ -282,6 +282,10 @@ sequential number of the input frame, starting from 0
@item pos
the position in the file of the input frame, NAN if unknown
@item w
@item h
width and height of the input frame if video
@end table
Additionally, these filters support an @option{enable} command that can be used
@@ -309,41 +313,6 @@ build.
Below is a description of the currently available audio filters.
@section aconvert
Convert the input audio format to the specified formats.
@emph{This filter is deprecated. Use @ref{aformat} instead.}
The filter accepts a string of the form:
"@var{sample_format}:@var{channel_layout}".
@var{sample_format} specifies the sample format, and can be a string or the
corresponding numeric value defined in @file{libavutil/samplefmt.h}. Use 'p'
suffix for a planar sample format.
@var{channel_layout} specifies the channel layout, and can be a string
or the corresponding number value defined in @file{libavutil/channel_layout.h}.
The special parameter "auto", signifies that the filter will
automatically select the output format depending on the output filter.
@subsection Examples
@itemize
@item
Convert input to float, planar, stereo:
@example
aconvert=fltp:stereo
@end example
@item
Convert input to unsigned 8-bit, automatically select out channel layout:
@example
aconvert=u8:auto
@end example
@end itemize
@section adelay
Delay one or more audio channels.
@@ -491,7 +460,7 @@ aeval=val(ch)/2:c=same
@item
Invert phase of the second channel:
@example
eval=val(0)|-val(1)
aeval=val(0)|-val(1)
@end example
@end itemize
@@ -517,27 +486,21 @@ volume as the input audio, at the end of the fade-out transition
the output audio will be silence. Default is 44100.
@item start_time, st
Specify time for starting to apply the fade effect. Default is 0.
The accepted syntax is:
@example
[-]HH[:MM[:SS[.m...]]]
[-]S+[.m...]
@end example
See also the function @code{av_parse_time()}.
If set this option is used instead of @var{start_sample} one.
Specify the start time of the fade effect. Default is 0.
The value must be specified as a time duration; see
@ref{time duration syntax,,the Time duration section in the ffmpeg-utils(1) manual,ffmpeg-utils}
for the accepted syntax.
If set this option is used instead of @var{start_sample}.
@item duration, d
Specify the duration for which the fade effect has to last. Default is 0.
The accepted syntax is:
@example
[-]HH[:MM[:SS[.m...]]]
[-]S+[.m...]
@end example
See also the function @code{av_parse_time()}.
Specify the duration of the fade effect. See
@ref{time duration syntax,,the Time duration section in the ffmpeg-utils(1) manual,ffmpeg-utils}
for the accepted syntax.
At the end of the fade-in effect the output audio will have the same
volume as the input audio, at the end of the fade-out transition
the output audio will be silence.
If set this option is used instead of @var{nb_samples} one.
By default the duration is determined by @var{nb_samples}.
If set this option is used instead of @var{nb_samples}.
@item curve
Set curve for fade transition.
@@ -742,8 +705,58 @@ Pass the audio source unchanged to the output.
@section apad
Pad the end of a audio stream with silence, this can be used together with
-shortest to extend audio streams to the same length as the video stream.
Pad the end of an audio stream with silence.
This can be used together with @command{ffmpeg} @option{-shortest} to
extend audio streams to the same length as the video stream.
A description of the accepted options follows.
@table @option
@item packet_size
Set silence packet size. Default value is 4096.
@item pad_len
Set the number of samples of silence to add to the end. After the
value is reached, the stream is terminated. This option is mutually
exclusive with @option{whole_len}.
@item whole_len
Set the minimum total number of samples in the output audio stream. If
the value is longer than the input audio length, silence is added to
the end, until the value is reached. This option is mutually exclusive
with @option{pad_len}.
@end table
If neither the @option{pad_len} nor the @option{whole_len} option is
set, the filter will add silence to the end of the input stream
indefinitely.
@subsection Examples
@itemize
@item
Add 1024 samples of silence to the end of the input:
@example
apad=pad_len=1024
@end example
@item
Make sure the audio output will contain at least 10000 samples, pad
the input with silence if required:
@example
apad=whole_len=10000
@end example
@item
Use @command{ffmpeg} to pad the audio input with silence, so that the
video stream will always result the shortest and will be converted
until the end in the output file when using the @option{shortest}
option:
@example
ffmpeg -i VIDEO -i AUDIO -filter_complex "[1:0]apad" -shortest OUTPUT
@end example
@end itemize
@section aphaser
Add a phasing effect to the input audio.
@@ -862,7 +875,7 @@ The input audio is not modified.
The shown line contains a sequence of key/value pairs of the form
@var{key}:@var{value}.
It accepts the following parameters:
The following values are shown in the output:
@table @option
@item n
@@ -1070,9 +1083,9 @@ The number of the first sample that should be output.
The number of the first sample that should be dropped.
@end table
@option{start}, @option{end}, @option{duration} are expressed as time
duration specifications, check the "Time duration" section in the
ffmpeg-utils manual.
@option{start}, @option{end}, and @option{duration} are expressed as time
duration specifications; see
@ref{time duration syntax,,the Time duration section in the ffmpeg-utils(1) manual,ffmpeg-utils}.
Note that the first two sets of the start/end options and the @option{duration}
option look at the frame timestamp, while the _sample options simply count the
@@ -1587,9 +1600,9 @@ Set the number of samples per channel per each output frame, default
is 1024. Only used if plugin have zero inputs.
@item duration, d
Set the minimum duration of the sourced audio. See the function
@code{av_parse_time()} for the accepted format, also check the "Time duration"
section in the ffmpeg-utils manual.
Set the minimum duration of the sourced audio. See
@ref{time duration syntax,,the Time duration section in the ffmpeg-utils(1) manual,ffmpeg-utils}
for the accepted syntax.
Note that the resulting duration may be greater than the specified duration,
as the generated audio is always cut at the end of a complete frame.
If not specified, or the expressed duration is negative, the audio is
@@ -1697,11 +1710,11 @@ The default is 0.707q and gives a Butterworth response.
Mix channels with specific gain levels. The filter accepts the output
channel layout followed by a set of channels definitions.
This filter is also designed to remap efficiently the channels of an audio
This filter is also designed to efficiently remap the channels of an audio
stream.
The filter accepts parameters of the form:
"@var{l}:@var{outdef}:@var{outdef}:..."
"@var{l}|@var{outdef}|@var{outdef}|..."
@table @option
@item l
@@ -1732,13 +1745,13 @@ avoiding clipping noise.
For example, if you want to down-mix from stereo to mono, but with a bigger
factor for the left channel:
@example
pan=1:c0=0.9*c0+0.1*c1
pan=1c|c0=0.9*c0+0.1*c1
@end example
A customized down-mix to stereo that works automatically for 3-, 4-, 5- and
7-channels surround:
@example
pan=stereo: FL < FL + 0.5*FC + 0.6*BL + 0.6*SL : FR < FR + 0.5*FC + 0.6*BR + 0.6*SR
pan=stereo| FL < FL + 0.5*FC + 0.6*BL + 0.6*SL | FR < FR + 0.5*FC + 0.6*BR + 0.6*SR
@end example
Note that @command{ffmpeg} integrates a default down-mix (and up-mix) system
@@ -1761,25 +1774,25 @@ remapping.
For example, if you have a 5.1 source and want a stereo audio stream by
dropping the extra channels:
@example
pan="stereo: c0=FL : c1=FR"
pan="stereo| c0=FL | c1=FR"
@end example
Given the same source, you can also switch front left and front right channels
and keep the input channel layout:
@example
pan="5.1: c0=c1 : c1=c0 : c2=c2 : c3=c3 : c4=c4 : c5=c5"
pan="5.1| c0=c1 | c1=c0 | c2=c2 | c3=c3 | c4=c4 | c5=c5"
@end example
If the input is a stereo audio stream, you can mute the front left channel (and
still keep the stereo channel layout) with:
@example
pan="stereo:c1=c1"
pan="stereo|c1=c1"
@end example
Still with a stereo audio stream input, you can copy the right channel in both
front left and right:
@example
pan="stereo: c0=FR : c1=FR"
pan="stereo| c0=FR | c1=FR"
@end example
@section replaygain
@@ -1831,6 +1844,75 @@ ffmpeg -i silence.mp3 -af silencedetect=noise=0.0001 -f null -
@end example
@end itemize
@section silenceremove
Remove silence from the beginning, middle or end of the audio.
The filter accepts the following options:
@table @option
@item start_periods
This value is used to indicate if audio should be trimmed at beginning of
the audio. A value of zero indicates no silence should be trimmed from the
beginning. When specifying a non-zero value, it trims audio up until it
finds non-silence. Normally, when trimming silence from beginning of audio
the @var{start_periods} will be @code{1} but it can be increased to higher
values to trim all audio up to specific count of non-silence periods.
Default value is @code{0}.
@item start_duration
Specify the amount of time that non-silence must be detected before it stops
trimming audio. By increasing the duration, bursts of noises can be treated
as silence and trimmed off. Default value is @code{0}.
@item start_threshold
This indicates what sample value should be treated as silence. For digital
audio, a value of @code{0} may be fine but for audio recorded from analog,
you may wish to increase the value to account for background noise.
Can be specified in dB (in case "dB" is appended to the specified value)
or amplitude ratio. Default value is @code{0}.
@item stop_periods
Set the count for trimming silence from the end of audio.
To remove silence from the middle of a file, specify a @var{stop_periods}
that is negative. This value is then threated as a positive value and is
used to indicate the effect should restart processing as specified by
@var{start_periods}, making it suitable for removing periods of silence
in the middle of the audio.
Default value is @code{0}.
@item stop_duration
Specify a duration of silence that must exist before audio is not copied any
more. By specifying a higher duration, silence that is wanted can be left in
the audio.
Default value is @code{0}.
@item stop_threshold
This is the same as @option{start_threshold} but for trimming silence from
the end of audio.
Can be specified in dB (in case "dB" is appended to the specified value)
or amplitude ratio. Default value is @code{0}.
@item leave_silence
This indicate that @var{stop_duration} length of audio should be left intact
at the beginning of each period of silence.
For example, if you want to remove long pauses between words but do not want
to remove the pauses completely. Default value is @code{0}.
@end table
@subsection Examples
@itemize
@item
The following example shows how this filter can be used to start a recording
that does not contain the delay at the start which usually occurs between
pressing the record button and the start of the performance:
@example
silenceremove=1:5:0.02
@end example
@end itemize
@section treble
Boost or cut treble (upper) frequencies of the audio using a two-pole
@@ -2139,8 +2221,9 @@ Set the channel layout. The number of channels in the specified layout
must be equal to the number of specified expressions.
@item duration, d
Set the minimum duration of the sourced audio. See the function
@code{av_parse_time()} for the accepted format.
Set the minimum duration of the sourced audio. See
@ref{time duration syntax,,the Time duration section in the ffmpeg-utils(1) manual,ffmpeg-utils}
for the accepted syntax.
Note that the resulting duration may be greater than the specified
duration, as the generated audio is always cut at the end of a
complete frame.
@@ -2438,6 +2521,26 @@ Same as the @ref{subtitles} filter, except that it doesn't require libavcodec
and libavformat to work. On the other hand, it is limited to ASS (Advanced
Substation Alpha) subtitles files.
This filter accepts the following option in addition to the common options from
the @ref{subtitles} filter:
@table @option
@item shaping
Set the shaping engine
Available values are:
@table @samp
@item auto
The default libass shaping engine, which is the best available.
@item simple
Fast, font-agnostic shaper that can do only substitutions
@item complex
Slower shaper using OpenType for substitutions and positioning
@end table
The default is @code{auto}.
@end table
@section bbox
Compute the bounding box for the non-black pixels in the input frame
@@ -2755,6 +2858,42 @@ boxblur=luma_radius=min(h\,w)/10:luma_power=1:chroma_radius=min(cw\,ch)/10:chrom
@end example
@end itemize
@section codecview
Visualize information exported by some codecs.
Some codecs can export information through frames using side-data or other
means. For example, some MPEG based codecs export motion vectors through the
@var{export_mvs} flag in the codec @option{flags2} option.
The filter accepts the following option:
@table @option
@item mv
Set motion vectors to visualize.
Available flags for @var{mv} are:
@table @samp
@item pf
forward predicted MVs of P-frames
@item bf
forward predicted MVs of B-frames
@item bb
backward predicted MVs of B-frames
@end table
@end table
@subsection Examples
@itemize
@item
Visualizes multi-directionals MVs from P and B-Frames using @command{ffplay}:
@example
ffplay -flags2 +export_mvs input.mpg -vf codecview=mv=pf+bf+bb
@end example
@end itemize
@section colorbalance
Modify intensity of primary colors (red, green and blue) of input frames.
@@ -3219,7 +3358,7 @@ curves=psfile='MyCurvesPresets/purple.asv':green='0.45/0.53'
Denoise frames using 2D DCT (frequency domain filtering).
This filter is not designed for real time and can be extremely slow.
This filter is not designed for real time.
The filter accepts the following options:
@@ -3235,14 +3374,14 @@ If you need a more advanced filtering, see @option{expr}.
Default is @code{0}.
@item overlap
Set number overlapping pixels for each block. Each block is of size
@code{16x16}. Since the filter can be slow, you may want to reduce this value,
at the cost of a less effective filter and the risk of various artefacts.
Set number overlapping pixels for each block. Since the filter can be slow, you
may want to reduce this value, at the cost of a less effective filter and the
risk of various artefacts.
If the overlapping value doesn't allow to process the whole input width or
height, a warning will be displayed and according borders won't be denoised.
Default value is @code{15}.
Default value is @var{blocksize}-1, which is the best possible setting.
@item expr, e
Set the coefficient factor expression.
@@ -3254,6 +3393,15 @@ If this is option is set, the @option{sigma} option will be ignored.
The absolute value of the coefficient can be accessed through the @var{c}
variable.
@item n
Set the @var{blocksize} using the number of bits. @code{1<<@var{n}} defines the
@var{blocksize}, which is the width and height of the processed blocks.
The default value is @var{3} (8x8) and can be raised to @var{4} for a
@var{blocksize} of 16x16. Note that changing this setting has huge consequences
on the speed processing. Also, a larger block size does not necessarily means a
better de-noising.
@end table
@subsection Examples
@@ -3268,6 +3416,11 @@ The same operation can be achieved using the expression system:
dctdnoiz=e='gte(c, 4.5*3)'
@end example
Violent denoise using a block size of @code{16x16}:
@example
dctdnoiz=15:n=4
@end example
@anchor{decimate}
@section decimate
@@ -3698,6 +3851,11 @@ the "Color" section in the ffmpeg-utils manual.
The default value of @var{fontcolor} is "black".
@item fontcolor_expr
String which is expanded the same way as @var{text} to obtain dynamic
@var{fontcolor} value. By default this option has empty value and is not
processed. When this option is set, it overrides @var{fontcolor} option.
@item font
The font family to be used for drawing text. By default Sans.
@@ -3911,6 +4069,15 @@ example the text size is not known when evaluating the expression, so
the constants @var{text_w} and @var{text_h} will have an undefined
value.
@item expr_int_format, eif
Evaluate the expression's value and output as formatted integer.
The first argument is the expression to be evaluated, just as for the @var{expr} function.
The second argument specifies the output format. Allowed values are 'x', 'X', 'd' and
'u'. They are treated exactly as in the printf function.
The third parameter is optional and sets the number of positions taken by the output.
It can be used to add padding with zeros from the left.
@item gmtime
The time at which the filter is running, expressed in UTC.
It can accept an argument: a strftime() format string.
@@ -4007,7 +4174,18 @@ drawtext='fontfile=Linux Libertine O-40\:style=Semibold:text=FFmpeg'
@item
Print the date of a real-time encoding (see strftime(3)):
@example
drawtext='fontfile=FreeSans.ttf:text=%@{localtime:%a %b %d %Y@}'
drawtext='fontfile=FreeSans.ttf:text=%@{localtime\:%a %b %d %Y@}'
@end example
@item
Show text fading in and out (appearing/disappearing):
@example
#!/bin/sh
DS=1.0 # display start
DE=10.0 # display end
FID=1.5 # fade in duration
FOD=5 # fade out duration
ffplay -f lavfi "color,drawtext=text=TEST:fontsize=50:fontfile=FreeSerif.ttf:fontcolor_expr=ff0000%@{eif\\\\: clip(255*(1*between(t\\, $DS + $FID\\, $DE - $FOD) + ((t - $DS)/$FID)*between(t\\, $DS\\, $DS + $FID) + (-(t - $DE)/$FOD)*between(t\\, $DE - $FOD\\, $DE) )\\, 0\\, 255) \\\\: x\\\\: 2 @}"
@end example
@end itemize
@@ -4269,6 +4447,10 @@ and VIVTC/VFM (VapourSynth project). The later is a light clone of TFM from
which @code{fieldmatch} is based on. While the semantic and usage are very
close, some behaviour and options names can differ.
The @ref{decimate} filter currently only works for constant frame rate input.
Do not use @code{fieldmatch} and @ref{decimate} if your input has mixed
telecined and progressive content with changing framerate.
The filter accepts the following options:
@table @option
@@ -4935,6 +5117,22 @@ Modify RGB components depending on pixel position:
@example
geq=r='X/W*r(X,Y)':g='(1-X/W)*g(X,Y)':b='(H-Y)/H*b(X,Y)'
@end example
@item
Create a radial gradient that is the same size as the input (also see
the @ref{vignette} filter):
@example
geq=lum=255*gauss((X/W-0.5)*3)*gauss((Y/H-0.5)*3)/gauss(0)/gauss(0),format=gray
@end example
@item
Create a linear gradient to use as a mask for another filter, then
compose with @ref{overlay}. In this example the video will gradually
become more blurry from the top to the bottom of the y-axis as defined
by the linear gradient:
@example
ffmpeg -i input.mp4 -filter_complex "geq=lum=255*(Y/H),format=gray[grad];[0:v]boxblur=4[blur];[blur][grad]alphamerge[alpha];[0:v][alpha]overlay" output.mp4
@end example
@end itemize
@section gradfun
@@ -5376,8 +5574,62 @@ value.
Detect video interlacing type.
This filter tries to detect if the input is interlaced or progressive,
top or bottom field first.
This filter tries to detect if the input frames as interlaced, progressive,
top or bottom field first. It will also try and detect fields that are
repeated between adjacent frames (a sign of telecine).
Single frame detection considers only immediately adjacent frames when classifying each frame.
Multiple frame detection incorporates the classification history of previous frames.
The filter will log these metadata values:
@table @option
@item single.current_frame
Detected type of current frame using single-frame detection. One of:
``tff'' (top field first), ``bff'' (bottom field first),
``progressive'', or ``undetermined''
@item single.tff
Cumulative number of frames detected as top field first using single-frame detection.
@item multiple.tff
Cumulative number of frames detected as top field first using multiple-frame detection.
@item single.bff
Cumulative number of frames detected as bottom field first using single-frame detection.
@item multiple.current_frame
Detected type of current frame using multiple-frame detection. One of:
``tff'' (top field first), ``bff'' (bottom field first),
``progressive'', or ``undetermined''
@item multiple.bff
Cumulative number of frames detected as bottom field first using multiple-frame detection.
@item single.progressive
Cumulative number of frames detected as progressive using single-frame detection.
@item multiple.progressive
Cumulative number of frames detected as progressive using multiple-frame detection.
@item single.undetermined
Cumulative number of frames that could not be classified using single-frame detection.
@item multiple.undetermined
Cumulative number of frames that could not be classified using multiple-frame detection.
@item repeated.current_frame
Which field in the current frame is repeated from the last. One of ``neither'', ``top'', or ``bottom''.
@item repeated.neither
Cumulative number of frames with no repeated field.
@item repeated.top
Cumulative number of frames with the top field repeated from the previous frame's top field.
@item repeated.bottom
Cumulative number of frames with the bottom field repeated from the previous frame's bottom field.
@end table
The filter accepts the following options:
@@ -5386,6 +5638,13 @@ The filter accepts the following options:
Set interlacing threshold.
@item prog_thres
Set progressive threshold.
@item repeat_thres
Threshold for repeated field detection.
@item half_life
Number of frames after which a given frame's contribution to the
statistics is halved (i.e., it contributes only 0.5 to it's
classification). The default of 0 means that all frames seen are given
full weight of 1.0 forever.
@end table
@section il
@@ -5429,8 +5688,7 @@ Swap luma/chroma/alpha fields. Exchange even & odd lines. Default value is @code
Simple interlacing filter from progressive contents. This interleaves upper (or
lower) lines from odd frames with lower (or upper) lines from even frames,
halving the frame rate and preserving image height. A vertical lowpass filter
is always applied in order to avoid twitter effects and reduce moiré patterns.
halving the frame rate and preserving image height.
@example
Original Original New Frame
@@ -5450,6 +5708,10 @@ It accepts the following optional parameters:
@item scan
This determines whether the interlaced frame is taken from the even
(tff - default) or odd (bff) lines of the progressive frame.
@item lowpass
Enable (default) or disable the vertical lowpass filter to avoid twitter
interlacing and reduce moire patterns.
@end table
@section kerndeint
@@ -5504,6 +5766,51 @@ kerndeint=map=1
@end example
@end itemize
@section lenscorrection
Correct radial lens distortion
This filter can be used to correct for radial distortion as can result from the use
of wide angle lenses, and thereby re-rectify the image. To find the right parameters
one can use tools available for example as part of opencv or simply trial-and-error.
To use opencv use the calibration sample (under samples/cpp) from the opencv sources
and extract the k1 and k2 coefficients from the resulting matrix.
Note that effectively the same filter is available in the open-source tools Krita and
Digikam from the KDE project.
In contrast to the @ref{vignette} filter, which can also be used to compensate lens errors,
this filter corrects the distortion of the image, whereas @ref{vignette} corrects the
brightness distribution, so you may want to use both filters together in certain
cases, though you will have to take care of ordering, i.e. whether vignetting should
be applied before or after lens correction.
@subsection Options
The filter accepts the following options:
@table @option
@item cx
Relative x-coordinate of the focal point of the image, and thereby the center of the
distrortion. This value has a range [0,1] and is expressed as fractions of the image
width.
@item cy
Relative y-coordinate of the focal point of the image, and thereby the center of the
distrortion. This value has a range [0,1] and is expressed as fractions of the image
height.
@item k1
Coefficient of the quadratic correction term. 0.5 means no correction.
@item k2
Coefficient of the double quadratic correction term. 0.5 means no correction.
@end table
The formula that generates the correction is:
@var{r_src} = @var{r_tgt} * (1 + @var{k1} * (@var{r_tgt} / @var{r_0})^2 + @var{k2} * (@var{r_tgt} / @var{r_0})^4)
where @var{r_0} is halve of the image diagonal and @var{r_src} and @var{r_tgt} are the
distances from the focal point in the source and target images, respectively.
@anchor{lut3d}
@section lut3d
@@ -5984,7 +6291,7 @@ values are assumed.
Refer to the official libopencv documentation for more precise
information:
@url{http://opencv.willowgarage.com/documentation/c/image_filtering.html}
@url{http://docs.opencv.org/master/modules/imgproc/doc/filtering.html}
Several libopencv filters are supported; see the following subsections.
@@ -6476,6 +6783,9 @@ A description of the accepted parameters follows.
@item y3
Set coordinates expression for top left, top right, bottom left and bottom right corners.
Default values are @code{0:0:W:0:0:H:W:H} with which perspective will remain unchanged.
If the @code{sense} option is set to @code{source}, then the specified points will be sent
to the corners of the destination. If the @code{sense} option is set to @code{destination},
then the corners of the source will be sent to the specified coordinates.
The expressions can use the following variables:
@@ -6495,6 +6805,24 @@ It accepts the following values:
@end table
Default value is @samp{linear}.
@item sense
Set interpretation of coordinate options.
It accepts the following values:
@table @samp
@item 0, source
Send point in the source specified by the given coordinates to
the corners of the destination.
@item 1, destination
Send the corners of the source to the point in the destination specified
by the given coordinates.
Default value is @samp{source}.
@end table
@end table
@section phase
@@ -7513,7 +7841,7 @@ The input video is not modified.
The shown line contains a sequence of key/value pairs of the form
@var{key}:@var{value}.
It accepts the following parameters:
The following values are shown in the output:
@table @option
@item n
@@ -8373,9 +8701,10 @@ The number of the first frame that should be passed to the output.
The number of the first frame that should be dropped.
@end table
@option{start}, @option{end}, @option{duration} are expressed as time
duration specifications, check the "Time duration" section in the
ffmpeg-utils manual.
@option{start}, @option{end}, and @option{duration} are expressed as time
duration specifications; see
@ref{time duration syntax,,the Time duration section in the ffmpeg-utils(1) manual,ffmpeg-utils}
for the accepted syntax.
Note that the first two sets of the start/end options and the @option{duration}
option look at the frame timestamp, while the _frame variants simply count the
@@ -8408,6 +8737,7 @@ ffmpeg -i INPUT -vf trim=duration=1
@end itemize
@anchor{unsharp}
@section unsharp
Sharpen or blur the input video.
@@ -8569,7 +8899,7 @@ Read a file with transform information for each frame and
apply/compensate them. Together with the @ref{vidstabdetect}
filter this can be used to deshake videos. See also
@url{http://public.hronopik.de/vid.stab}. It is important to also use
the unsharp filter, see below.
the @ref{unsharp} filter, see below.
To enable compilation of this filter you need to configure FFmpeg with
@code{--enable-libvidstab}.
@@ -8579,7 +8909,7 @@ To enable compilation of this filter you need to configure FFmpeg with
@table @option
@item input
Set path to the file used to read the transforms. Default value is
@file{transforms.trf}).
@file{transforms.trf}.
@item smoothing
Set the number of frames (value*2 + 1) used for lowpass filtering the
@@ -8587,9 +8917,9 @@ camera movements. Default value is 10.
For example a number of 10 means that 21 frames are used (10 in the
past and 10 in the future) to smoothen the motion in the video. A
larger values leads to a smoother video, but limits the acceleration
of the camera (pan/tilt movements). 0 is a special case where a
static camera is simulated.
larger value leads to a smoother video, but limits the acceleration of
the camera (pan/tilt movements). 0 is a special case where a static
camera is simulated.
@item optalgo
Set the camera path optimization algorithm.
@@ -8626,7 +8956,7 @@ fill the border black
Invert transforms if set to 1. Default value is 0.
@item relative
Consider transforms as relative to previsou frame if set to 1,
Consider transforms as relative to previous frame if set to 1,
absolute if set to 0. Default value is 0.
@item zoom
@@ -8692,7 +9022,7 @@ Use @command{ffmpeg} for a typical stabilization with default values:
ffmpeg -i inp.mpeg -vf vidstabtransform,unsharp=5:5:0.8:3:3:0.4 inp_stabilized.mpeg
@end example
Note the use of the unsharp filter which is always recommended.
Note the use of the @ref{unsharp} filter which is always recommended.
@item
Zoom in a bit more and load transform data from a given file:
@@ -8716,6 +9046,7 @@ For example, to vertically flip a video with @command{ffmpeg}:
ffmpeg -i in.avi -vf "vflip" out.avi
@end example
@anchor{vignette}
@section vignette
Make or reverse a natural vignetting effect.
@@ -8865,6 +9196,20 @@ Only deinterlace frames marked as interlaced.
Default value is @samp{all}.
@end table
@section xbr
Apply the xBR high-quality magnification filter which is designed for pixel
art. It follows a set of edge-detection rules, see
@url{http://www.libretro.com/forums/viewtopic.php?f=6&t=134}.
It accepts the following option:
@table @option
@item n
Set the scaling dimension: @code{2} for @code{2xBR}, @code{3} for
@code{3xBR} and @code{4} for @code{4xBR}.
Default is @code{3}.
@end table
@anchor{yadif}
@section yadif
@@ -9285,12 +9630,9 @@ number or a valid video frame rate abbreviation. The default value is
"25".
@item duration, d
Set the video duration of the sourced video. The accepted syntax is:
@example
[-]HH:MM:SS[.m...]
[-]S+[.m...]
@end example
See also the function @code{av_parse_time()}.
Set the duration of the sourced video. See
@ref{time duration syntax,,the Time duration section in the ffmpeg-utils(1) manual,ffmpeg-utils}
for the accepted syntax.
If not specified, or the expressed duration is negative, the video is
supposed to be generated forever.
@@ -9318,7 +9660,7 @@ Default value is "all", which will cycle through the list of all tests.
Some examples:
@example
testsrc=t=dc_luma
mptestsrc=t=dc_luma
@end example
will generate a "dc_luma" test pattern.
@@ -9552,12 +9894,9 @@ number or a valid video frame rate abbreviation. The default value is
Set the sample aspect ratio of the sourced video.
@item duration, d
Set the video duration of the sourced video. The accepted syntax is:
@example
[-]HH[:MM[:SS[.m...]]]
[-]S+[.m...]
@end example
Also see the the @code{av_parse_time()} function.
Set the duration of the sourced video. See
@ref{time duration syntax,,the Time duration section in the ffmpeg-utils(1) manual,ffmpeg-utils}
for the accepted syntax.
If not specified, or the expressed duration is negative, the video is
supposed to be generated forever.
@@ -10473,8 +10812,34 @@ The filter accepts the following options:
@table @option
@item volume
Specify the transform volume (multiplier). Acceptable value is [1.0, 100.0].
Default value is @code{16.0}.
Specify transform volume (multiplier) expression. The expression can contain
variables:
@table @option
@item frequency, freq, f
the frequency where transform is evaluated
@item timeclamp, tc
value of timeclamp option
@end table
and functions:
@table @option
@item a_weighting(f)
A-weighting of equal loudness
@item b_weighting(f)
B-weighting of equal loudness
@item c_weighting(f)
C-weighting of equal loudness
@end table
Default value is @code{16}.
@item tlength
Specify transform length expression. The expression can contain variables:
@table @option
@item frequency, freq, f
the frequency where transform is evaluated
@item timeclamp, tc
value of timeclamp option
@end table
Default value is @code{384/f*tc/(384/f+tc)}.
@item timeclamp
Specify the transform timeclamp. At low frequency, there is trade-off between
@@ -10496,6 +10861,26 @@ Default value is @code{3.0}.
@item fontfile
Specify font file for use with freetype. If not specified, use embedded font.
@item fontcolor
Specify font color expression. This is arithmetic expression that should return
integer value 0xRRGGBB. The expression can contain variables:
@table @option
@item frequency, freq, f
the frequency where transform is evaluated
@item timeclamp, tc
value of timeclamp option
@end table
and functions:
@table @option
@item midi(f)
midi number of frequency f, some midi numbers: E0(16), C1(24), C2(36), A4(69)
@item r(x), g(x), b(x)
red, green, and blue value of intensity x
@end table
Default value is @code{st(0, (midi(f)-59.5)/12);
st(1, if(between(ld(0),0,1), 0.5-0.5*cos(2*PI*ld(0)), 0));
r(1-ld(1)) + b(ld(1))}
@item fullhd
If set to 1 (the default), the video size is 1920x1080 (full HD),
if set to 0, the video size is 960x540. Use this option to make CPU usage lower.
@@ -10545,6 +10930,24 @@ ffplay -f lavfi 'aevalsrc=0.1*sin(2*PI*55*t)+0.1*sin(4*PI*55*t)+0.1*sin(6*PI*55*
asplit[a][out1]; [a] showcqt=timeclamp=0.5 [out0]'
@end example
@item
B-weighting of equal loudness
@example
volume=16*b_weighting(f)
@end example
@item
Lower Q factor
@example
tlength=100/f*tc/(100/f+tc)
@end example
@item
Custom fontcolor, C-note is colored green, others are colored blue
@example
fontcolor='if(mod(floor(midi(f)+0.5),12), 0x0000FF, g(1))'
@end example
@end itemize
@section showspectrum
@@ -10561,8 +10964,19 @@ the "Video size" section in the ffmpeg-utils manual. Default value is
@code{640x512}.
@item slide
Specify if the spectrum should slide along the window. Default value is
@code{0}.
Specify how the spectrum should slide along the window.
It accepts the following values:
@table @samp
@item replace
the samples start again on the left when they reach the right
@item scroll
the samples scroll from right to left
@item fullframe
frames are only produced when the samples reach the right
@end table
Default value is @code{replace}.
@item mode
Specify display mode.
@@ -10673,6 +11087,12 @@ Draw a point for each sample.
@item line
Draw a vertical line for each sample.
@item p2p
Draw a point for each sample and a line between them.
@item cline
Draw a centered vertical line for each sample.
@end table
Default value is @code{point}.
@@ -10687,6 +11107,9 @@ is not explicitly specified.
Set the (approximate) output frame rate. This is done by setting the
option @var{n}. Default value is "25".
@item split_channels
Set if channels should be drawn separately or overlap. Default value is 0.
@end table
@subsection Examples

View File

@@ -55,6 +55,10 @@ Do not merge side data.
Enable RTP MP4A-LATM payload.
@item nobuffer
Reduce the latency introduced by optional buffering
@item bitexact
Only write platform-, build- and time-independent data.
This ensures that file and data checksums are reproducible and match between
platforms. Its primary use is for regression testing.
@end table
@item seek2any @var{integer} (@emph{input})
@@ -168,6 +172,18 @@ The offset is added by the muxer to the output timestamps.
Specifying a positive offset means that the corresponding streams are
delayed bt the time duration specified in @var{offset}. Default value
is @code{0} (meaning that no offset is applied).
@item format_whitelist @var{list} (@emph{input})
"," separated List of allowed demuxers. By default all are allowed.
@item dump_separator @var{string} (@emph{input})
Separator used to separate the fields printed on the command line about the
Stream parameters.
For example to separate the fields with newlines and indention:
@example
ffprobe -dump_separator "
" -i ~/videos/matrixbench_mpeg2.mpg
@end example
@end table
@c man end FORMAT OPTIONS

View File

@@ -130,7 +130,7 @@ Go to @url{http://x265.org/developers.html} and follow the instructions
for installing the library. Then pass @code{--enable-libx265} to configure
to enable it.
@float note
@float NOTE
x265 is under the GNU Public License Version 2 or later
(see @url{http://www.gnu.org/licenses/old-licenses/gpl-2.0.html} for
details), you must upgrade FFmpeg's license to GPL in order to use it.
@@ -454,6 +454,7 @@ library:
@item Sony Wave64 (W64) @tab X @tab X
@item SoX native format @tab X @tab X
@item SUN AU format @tab X @tab X
@item SUP raw PGS subtitles @tab @tab X
@item Text files @tab @tab X
@item THP @tab @tab X
@tab Used on the Nintendo GameCube.
@@ -1030,6 +1031,7 @@ performance on systems without hardware floating point support).
@item PJS (Phoenix) @tab @tab X @tab @tab X
@item RealText @tab @tab X @tab @tab X
@item SAMI @tab @tab X @tab @tab X
@item Spruce format (STL) @tab @tab X @tab @tab X
@item SSA/ASS @tab X @tab X @tab X @tab X
@item SubRip (SRT) @tab X @tab X @tab X @tab X
@item SubViewer v1 @tab @tab X @tab @tab X
@@ -1055,6 +1057,7 @@ performance on systems without hardware floating point support).
@item HLS @tab X
@item HTTP @tab X
@item HTTPS @tab X
@item Icecast @tab X
@item MMSH @tab X
@item MMST @tab X
@item pipe @tab X

View File

@@ -58,34 +58,94 @@ AVFoundation input device.
AVFoundation is the currently recommended framework by Apple for streamgrabbing on OSX >= 10.7 as well as on iOS.
The older QTKit framework has been marked deprecated since OSX version 10.7.
The filename passed as input is parsed to contain either a device name or index.
The device index can also be given by using -video_device_index.
A given device index will override any given device name.
If the desired device consists of numbers only, use -video_device_index to identify it.
The default device will be chosen if an empty string or the device name "default" is given.
The available devices can be enumerated by using -list_devices.
The pixel format can be set using -pixel_format.
Available formats:
monob, rgb555be, rgb555le, rgb565be, rgb565le, rgb24, bgr24, 0rgb, bgr0, 0bgr, rgb0,
The input filename has to be given in the following syntax:
@example
-i "[[VIDEO]:[AUDIO]]"
@end example
The first entry selects the video input while the latter selects the audio input.
The stream has to be specified by the device name or the device index as shown by the device list.
Alternatively, the video and/or audio input device can be chosen by index using the
@option{
-video_device_index <INDEX>
}
and/or
@option{
-audio_device_index <INDEX>
}
, overriding any
device name or index given in the input filename.
All available devices can be enumerated by using @option{-list_devices true}, listing
all device names and corresponding indices.
There are two device name aliases:
@table @code
@item default
Select the AVFoundation default device of the corresponding type.
@item none
Do not record the corresponding media type.
This is equivalent to specifying an empty device name or index.
@end table
@subsection Options
AVFoundation supports the following options:
@table @option
@item -list_devices <TRUE|FALSE>
If set to true, a list of all available input devices is given showing all
device names and indices.
@item -video_device_index <INDEX>
Specify the video device by its index. Overrides anything given in the input filename.
@item -audio_device_index <INDEX>
Specify the audio device by its index. Overrides anything given in the input filename.
@item -pixel_format <FORMAT>
Request the video device to use a specific pixel format.
If the specified format is not supported, a list of available formats is given
und the first one in this list is used instead. Available pixel formats are:
@code{monob, rgb555be, rgb555le, rgb565be, rgb565le, rgb24, bgr24, 0rgb, bgr0, 0bgr, rgb0,
bgr48be, uyvy422, yuva444p, yuva444p16le, yuv444p, yuv422p16, yuv422p10, yuv444p10,
yuv420p, nv12, yuyv422, gray
yuv420p, nv12, yuyv422, gray}
@end table
@subsection Examples
@itemize
@item
Print the list of AVFoundation supported devices and exit:
@example
ffmpeg -f avfoundation -i "0" out.mpg
$ ffmpeg -f avfoundation -list_devices true -i ""
@end example
@item
Record video from video device 0 and audio from audio device 0 into out.avi:
@example
ffmpeg -f avfoundation -video_device_index 0 -i "" out.mpg
$ ffmpeg -f avfoundation -i "0:0" out.avi
@end example
@item
Record video from video device 2 and audio from audio device 1 into out.avi:
@example
ffmpeg -f avfoundation -pixel_format bgr0 -i "default" out.mpg
$ ffmpeg -f avfoundation -video_device_index 2 -i ":1" out.avi
@end example
@item
Record video from the system default video device using the pixel format bgr0 and do not record any audio into out.avi:
@example
ffmpeg -f avfoundation -list_devices true -i ""
$ ffmpeg -f avfoundation -pixel_format bgr0 -i "default:none" out.avi
@end example
@end itemize
@section bktr
BSD video input device.
@@ -483,10 +543,28 @@ ffplay -f lavfi "movie=test.avi[out0];amovie=test.wav[out1]"
@end itemize
@section libcdio
Audio-CD input device based on cdio.
To enable this input device during configuration you need libcdio
installed on your system. Requires the configure option
@code{--enable-libcdio}.
This device allows playing and grabbing from an Audio-CD.
For example to copy with @command{ffmpeg} the entire Audio-CD in /dev/sr0,
you may run the command:
@example
ffmpeg -f libcdio -i /dev/sr0 cd.wav
@end example
@section libdc1394
IIDC1394 input device, based on libdc1394 and libraw1394.
Requires the configure option @code{--enable-libdc1394}.
@section openal
The OpenAL input device provides audio capture on all systems with a
@@ -815,6 +893,9 @@ other filename will be interpreted as device number 0.
X11 video input device.
Depends on X11, Xext, and Xfixes. Requires the configure option
@code{--enable-x11grab}.
This device allows one to capture a region of an X11 display.
The filename passed as input has the syntax:
@@ -895,6 +976,64 @@ ffmpeg -f x11grab -follow_mouse centered -show_region 1 -framerate 25 -video_siz
@item video_size
Set the video frame size. Default value is @code{vga}.
@item use_shm
Use the MIT-SHM extension for shared memory. Default value is @code{1}.
It may be necessary to disable it for remote displays.
@end table
@section decklink
The decklink input device provides capture capabilities for Blackmagic
DeckLink devices.
To enable this input device, you need the Blackmagic DeckLink SDK and you
need to configure with the appropriate @code{--extra-cflags}
and @code{--extra-ldflags}.
On Windows, you need to run the IDL files through @command{widl}.
DeckLink is very picky about the formats it supports. Pixel format is always
uyvy422, framerate and video size must be determined for your device with
@command{-list_formats 1}. Audio sample rate is always 48 kHz and the number
of channels currently is limited to 2 (stereo).
@subsection Options
@table @option
@item list_devices
If set to @option{true}, print a list of devices and exit.
Defaults to @option{false}.
@item list_formats
If set to @option{true}, print a list of supported formats and exit.
Defaults to @option{false}.
@end table
@subsection Examples
@itemize
@item
List input devices:
@example
ffmpeg -f decklink -list_devices 1 -i dummy
@end example
@item
List supported formats:
@example
ffmpeg -f decklink -list_formats 1 -i 'Intensity Pro'
@end example
@item
Capture video clip at 1080i50 (format 11):
@example
ffmpeg -f decklink -i 'Intensity Pro@@11' -acodec copy -vcodec copy output.avi
@end example
@end itemize
@c man end INPUT DEVICES

View File

@@ -22,7 +22,7 @@ a mail for every change to every issue.
(the above does all work already after light testing)
The subscription URL for the ffmpeg-trac list is:
http(s)://ffmpeg.org/mailman/listinfo/ffmpeg-trac
http(s)://lists.ffmpeg.org/mailman/listinfo/ffmpeg-trac
The URL of the webinterface of the tracker is:
http(s)://trac.ffmpeg.org

View File

@@ -194,15 +194,19 @@ can not be smaller than one centi second.
Apple HTTP Live Streaming muxer that segments MPEG-TS according to
the HTTP Live Streaming (HLS) specification.
It creates a playlist file and numbered segment files. The output
filename specifies the playlist filename; the segment filenames
receive the same basename as the playlist, a sequential number and
a .ts extension.
It creates a playlist file, and one or more segment files. The output filename
specifies the playlist filename.
By default, the muxer creates a file for each segment produced. These files
have the same name as the playlist, followed by a sequential number and a
.ts extension.
For example, to convert an input file with @command{ffmpeg}:
@example
ffmpeg -i in.nut out.m3u8
@end example
This example will produce the playlist, @file{out.m3u8}, and segment files:
@file{out0.ts}, @file{out1.ts}, @file{out2.ts}, etc.
See also the @ref{segment} muxer, which provides a more generic and
flexible implementation of a segmenter, and can be used to perform HLS
@@ -220,6 +224,11 @@ Set the segment length in seconds. Default value is 2.
Set the maximum number of playlist entries. If set to 0 the list file
will contain all the segments. Default value is 5.
@item hls_ts_options @var{options_list}
Set output format options using a :-separated list of key=value
parameters. Values containing @code{:} special characters must be
escaped.
@item hls_wrap @var{wrap}
Set the number after which the segment filename number (the number
specified in each segment file) wraps. If set to 0 the number will be
@@ -233,6 +242,9 @@ to @var{wrap}.
Start the playlist sequence number from @var{number}. Default value is
0.
@item hls_allow_cache @var{allowcache}
Explicitly set whether the client MAY (1) or MUST NOT (0) cache media segments.
@item hls_base_url @var{baseurl}
Append @var{baseurl} to every entry in the playlist.
Useful to generate playlists with absolute paths.
@@ -241,6 +253,17 @@ Note that the playlist sequence number must be unique for each segment
and it is not to be confused with the segment filename sequence number
which can be cyclic, for example if the @option{wrap} option is
specified.
@item hls_flags single_file
If this flag is set, the muxer will store all segments in a single MPEG-TS
file, and will use byte ranges in the playlist. HLS playlists generated with
this way will have the version number 4.
For example:
@example
ffmpeg -i in.nut -hls_flags single_file out.m3u8
@end example
Will produce the playlist, @file{out.m3u8}, and a single segment file,
@file{out.ts}.
@end table
@anchor{ico}
@@ -536,7 +559,6 @@ a short portion of the file. With this option set, there is no initial
mdat atom, and the moov atom only describes the tracks but has
a zero duration.
Files written with this option set do not work in QuickTime.
This option is implicitly set when writing ismv (Smooth Streaming) files.
@item -movflags separate_moof
Write a separate moof (movie fragment) atom for each track. Normally,
@@ -551,6 +573,22 @@ 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.
@item -movflags disable_chpl
Disable Nero chapter markers (chpl atom). Normally, both Nero chapters
and a QuickTime chapter track are written to the file. With this option
set, only the QuickTime chapter track will be written. Nero chapters can
cause failures when the file is reprocessed with certain tagging programs, like
mp3Tag 2.61a and iTunes 11.3, most likely other versions are affected as well.
@item -movflags omit_tfhd_offset
Do not write any absolute base_data_offset in tfhd atoms. This avoids
tying fragments to absolute byte positions in the file/streams.
@item -movflags default_base_moof
Similarly to the omit_tfhd_offset, this flag avoids writing the
absolute base_data_offset field in tfhd atoms, but does so by using
the new default-base-is-moof flag instead. This flag is new from
14496-12:2012. This may make the fragments easier to parse in certain
circumstances (avoiding basing track fragment location calculations
on the implicit end of the previous track fragment).
@end table
@subsection Example
@@ -563,29 +601,38 @@ ffmpeg -re @var{<normal input/transcoding options>} -movflags isml+frag_keyframe
@section mp3
The MP3 muxer writes a raw MP3 stream with an ID3v2 header at the beginning and
optionally an ID3v1 tag at the end. ID3v2.3 and ID3v2.4 are supported, the
@code{id3v2_version} option controls which one is used. Setting
@code{id3v2_version} to 0 will disable the ID3v2 header completely. The legacy
ID3v1 tag is not written by default, but may be enabled with the
@code{write_id3v1} option.
The MP3 muxer writes a raw MP3 stream with the following optional features:
@itemize @bullet
@item
An ID3v2 metadata header at the beginning (enabled by default). Versions 2.3 and
2.4 are supported, the @code{id3v2_version} private option controls which one is
used (3 or 4). Setting @code{id3v2_version} to 0 disables the ID3v2 header
completely.
The muxer may also write a Xing frame at the beginning, which contains the
number of frames in the file. It is useful for computing duration of VBR files.
The Xing frame is written if the output stream is seekable and if the
@code{write_xing} option is set to 1 (the default).
The muxer supports writing ID3v2 attached pictures (APIC frames). The pictures
are supplied to the muxer in form of a video stream with a single packet. There
can be any number of those streams, each will correspond to a single APIC frame.
The stream metadata tags @var{title} and @var{comment} map to APIC
@var{description} and @var{picture type} respectively. See
The muxer supports writing attached pictures (APIC frames) to the ID3v2 header.
The pictures are supplied to the muxer in form of a video stream with a single
packet. There can be any number of those streams, each will correspond to a
single APIC frame. The stream metadata tags @var{title} and @var{comment} map
to APIC @var{description} and @var{picture type} respectively. See
@url{http://id3.org/id3v2.4.0-frames} for allowed picture types.
Note that the APIC frames must be written at the beginning, so the muxer will
buffer the audio frames until it gets all the pictures. It is therefore advised
to provide the pictures as soon as possible to avoid excessive buffering.
@item
A Xing/LAME frame right after the ID3v2 header (if present). It is enabled by
default, but will be written only if the output is seekable. The
@code{write_xing} private option can be used to disable it. The frame contains
various information that may be useful to the decoder, like the audio duration
or encoder delay.
@item
A legacy ID3v1 tag at the end of the file (disabled by default). It may be
enabled with the @code{write_id3v1} private option, but as its capabilities are
very limited, its usage is not recommended.
@end itemize
Examples:
Write an mp3 with an ID3v2.3 header and an ID3v1 footer:
@@ -798,6 +845,11 @@ reference stream. The default value is @code{auto}.
Override the inner container format, by default it is guessed by the filename
extension.
@item segment_format_options @var{options_list}
Set output format options using a :-separated list of key=value
parameters. Values containing the @code{:} special character must be
escaped.
@item segment_list @var{name}
Generate also a listfile named @var{name}. If not specified no
listfile is generated.
@@ -822,7 +874,7 @@ Select the listing format.
@end table
@item segment_list_size @var{size}
Update the list file so that it contains at most the last @var{size}
Update the list file so that it contains at most @var{size}
segments. If 0 the list file will contain all the segments. Default
value is 0.
@@ -945,7 +997,7 @@ argument must be a time duration specification, and defaults to 0.
@itemize
@item
To remux the content of file @file{in.mkv} to a list of segments
Remux the content of file @file{in.mkv} to a list of segments
@file{out-000.nut}, @file{out-001.nut}, etc., and write the list of
generated segments to @file{out.list}:
@example
@@ -953,14 +1005,20 @@ ffmpeg -i in.mkv -codec copy -map 0 -f segment -segment_list out.list out%03d.nu
@end example
@item
As the example above, but segment the input file according to the split
points specified by the @var{segment_times} option:
Segment input and set output format options for the output segments:
@example
ffmpeg -i in.mkv -f segment -segment_time 10 -segment_format_options movflags=+faststart out%03d.mp4
@end example
@item
Segment the input file according to the split points specified by the
@var{segment_times} option:
@example
ffmpeg -i in.mkv -codec copy -map 0 -f segment -segment_list out.csv -segment_times 1,2,3,5,8,13,21 out%03d.nut
@end example
@item
As the example above, but use the @command{ffmpeg} @option{force_key_frames}
Use the @command{ffmpeg} @option{force_key_frames}
option to force key frames in the input at the specified location, together
with the segment option @option{segment_time_delta} to account for
possible roundings operated when setting key frame times.
@@ -979,7 +1037,7 @@ ffmpeg -i in.mkv -codec copy -map 0 -f segment -segment_list out.csv -segment_fr
@end example
@item
To convert the @file{in.mkv} to TS segments using the @code{libx264}
Convert the @file{in.mkv} to TS segments using the @code{libx264}
and @code{libfaac} encoders:
@example
ffmpeg -i in.mkv -map 0 -codec:v libx264 -codec:a libfaac -f ssegment -segment_list out.list out%03d.ts

View File

@@ -35,6 +35,9 @@ to your project LDFLAGS:
-Wl,-Bsymbolic
@end example
If your target platform requires position independent binaries, you should
pass the correct linking flag (e.g. @code{-pie}) to @code{--extra-ldexeflags}.
@section BSD
BSD make will not build FFmpeg, you need to install and use GNU Make
@@ -275,7 +278,7 @@ llrint() in its C library.
Install your Cygwin with all the "Base" packages, plus the
following "Devel" ones:
@example
binutils, gcc4-core, make, git, mingw-runtime, texi2html
binutils, gcc4-core, make, git, mingw-runtime, texinfo
@end example
In order to run FATE you will also need the following "Utils" packages:

View File

@@ -26,6 +26,10 @@
#include <string.h>
#include <float.h>
// print_options is build for the host, os_support.h isn't needed and is setup
// for the target. without this build breaks on mingw
#define AVFORMAT_OS_SUPPORT_H
#include "libavformat/avformat.h"
#include "libavformat/options_table.h"
#include "libavcodec/avcodec.h"

View File

@@ -255,7 +255,7 @@ Export the MIME type.
If set to 1 request ICY (SHOUTcast) metadata from the server. If the server
supports this, the metadata has to be retrieved by the application by reading
the @option{icy_metadata_headers} and @option{icy_metadata_packet} options.
The default is 0.
The default is 1.
@item icy_metadata_headers
If the server supports ICY metadata, this contains the ICY-specific HTTP reply
@@ -293,6 +293,50 @@ The required syntax to play a stream specifying a cookie is:
ffplay -cookies "nlqptid=nltid=tsn; path=/; domain=somedomain.com;" http://somedomain.com/somestream.m3u8
@end example
@section Icecast
Icecast protocol (stream to Icecast servers)
This protocol accepts the following options:
@table @option
@item ice_genre
Set the stream genre.
@item ice_name
Set the stream name.
@item ice_description
Set the stream description.
@item ice_url
Set the stream website URL.
@item ice_public
Set if the stream should be public.
The default is 0 (not public).
@item user_agent
Override the User-Agent header. If not specified a string of the form
"Lavf/<version>" will be used.
@item password
Set the Icecast mountpoint password.
@item content_type
Set the stream content type. This must be set if it is different from
audio/mpeg.
@item legacy_icecast
This enables support for Icecast versions < 2.4.0, that do not support the
HTTP PUT method but the SOURCE method.
@end table
@example
icecast://[@var{username}[:@var{password}]@@]@var{server}:@var{port}/@var{mountpoint}
@end example
@section mmst
MMS (Microsoft Media Server) protocol over TCP.
@@ -539,7 +583,7 @@ firewalls.
@section libsmbclient
libsmbclient permits to manipulate CIFS/SMB network resources.
libsmbclient permits one to manipulate CIFS/SMB network resources.
Following syntax is required.
@@ -706,7 +750,7 @@ port will be used for the local RTP and RTCP ports.
@item
If @option{localrtcpport} (the local RTCP port) is not set it will be
set to the the local RTP port value plus 1.
set to the local RTP port value plus 1.
@end enumerate
@section rtsp

View File

@@ -618,7 +618,6 @@ flip wavelet?
try to use the wavelet transformed predicted image (motion compensated image) as context for coding the residual coefficients
try the MV length as context for coding the residual coefficients
use extradata for stuff which is in the keyframes now?
the MV median predictor is patented IIRC
implement per picture halfpel interpolation
try different range coder state transition tables for different contexts

23
doc/style.min.css vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -1,26 +1,35 @@
# Init file for texi2html.
# This is deprecated, and the makeinfo/texi2any version is doc/t2h.pm
# no horiz rules between sections
$end_section = \&FFmpeg_end_section;
sub FFmpeg_end_section($$)
{
}
$EXTRA_HEAD =
'<link rel="icon" href="favicon.png" type="image/png" />
';
$CSS_LINES = $ENV{"FFMPEG_CSS"} || <<EOT;
<link rel="stylesheet" type="text/css" href="default.css" />
my $TEMPLATE_HEADER1 = $ENV{"FFMPEG_HEADER1"} || <<EOT;
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>FFmpeg documentation</title>
<link rel="stylesheet" href="bootstrap.min.css" />
<link rel="stylesheet" href="style.min.css" />
EOT
my $TEMPLATE_HEADER = $ENV{"FFMPEG_HEADER"} || <<EOT;
<link rel="icon" href="favicon.png" type="image/png" />
</head>
<body>
<div id="container">
<div id="body">
my $TEMPLATE_HEADER2 = $ENV{"FFMPEG_HEADER2"} || <<EOT;
</head>
<body>
<div style="width: 95%; margin: auto">
EOT
$PRE_BODY_CLOSE = '</div></div>';
my $TEMPLATE_FOOTER = $ENV{"FFMPEG_FOOTER"} || <<EOT;
</div>
</body>
</html>
EOT
$SMALL_RULE = '';
$BODYTEXT = '';
@@ -82,21 +91,25 @@ sub FFmpeg_print_page_head($$)
$longtitle = "FFmpeg documentation : " . $longtitle;
print $fh <<EOT;
<!DOCTYPE html>
<html>
$TEMPLATE_HEADER1
$description
<meta name="keywords" content="$longtitle">
<meta name="Generator" content="$Texi2HTML::THISDOC{program}">
$Texi2HTML::THISDOC{'copying'}<!-- Created on $Texi2HTML::THISDOC{today} by $Texi2HTML::THISDOC{program} -->
<!--
$Texi2HTML::THISDOC{program_authors}
-->
<head>
<title>$longtitle</title>
$description
<meta name="keywords" content="$longtitle">
<meta name="Generator" content="$Texi2HTML::THISDOC{program}">
$encoding
$CSS_LINES
$TEMPLATE_HEADER
$TEMPLATE_HEADER2
EOT
}
$print_page_foot = \&FFmpeg_print_page_foot;
sub FFmpeg_print_page_foot($$)
{
my $fh = shift;
print $fh <<EOT;
$TEMPLATE_FOOTER
EOT
}

221
doc/t2h.pm Normal file
View File

@@ -0,0 +1,221 @@
# makeinfo HTML output init file
#
# Copyright (c) 2011, 2012 Free Software Foundation, Inc.
# Copyright (c) 2014 Andreas Cadhalpun
# Copyright (c) 2014 Tiancheng "Timothy" Gu
#
# This file is part of FFmpeg.
#
# FFmpeg is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# FFmpeg is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with FFmpeg; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
# no navigation elements
set_from_init_file('HEADERS', 0);
# TOC and Chapter headings link
set_from_init_file('TOC_LINKS', 1);
# print the TOC where @contents is used
set_from_init_file('INLINE_CONTENTS', 1);
# make chapters <h2>
set_from_init_file('CHAPTER_HEADER_LEVEL', 2);
# Do not add <hr>
set_from_init_file('DEFAULT_RULE', '');
set_from_init_file('BIG_RULE', '');
# Customized file beginning
sub ffmpeg_begin_file($$$)
{
my $self = shift;
my $filename = shift;
my $element = shift;
my $command;
if ($element and $self->get_conf('SPLIT')) {
$command = $self->element_command($element);
}
my ($title, $description, $encoding, $date, $css_lines,
$doctype, $bodytext, $copying_comment, $after_body_open,
$extra_head, $program_and_version, $program_homepage,
$program, $generator) = $self->_file_header_informations($command);
my $links = $self->_get_links ($filename, $element);
my $head1 = $ENV{"FFMPEG_HEADER1"} || <<EOT;
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Created by $program_and_version, $program_homepage -->
<head>
<meta charset="utf-8">
<title>
EOT
my $head_title = <<EOT;
$title
EOT
my $head2 = $ENV{"FFMPEG_HEADER2"} || <<EOT;
</title>
<link rel="stylesheet" type="text/css" href="bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="style.min.css">
</head>
<body>
<div style="width: 95%; margin: auto">
<h1>
EOT
my $head3 = $ENV{"FFMPEG_HEADER3"} || <<EOT;
</h1>
EOT
return $head1 . $head_title . $head2 . $head_title . $head3;
}
texinfo_register_formatting_function('begin_file', \&ffmpeg_begin_file);
# Customized file ending
sub ffmpeg_end_file($)
{
my $self = shift;
my $program_string = &{$self->{'format_program_string'}}($self);
my $program_text = <<EOT;
<p style="font-size: small;">
$program_string
</p>
EOT
my $footer = $ENV{FFMPEG_FOOTER} || <<EOT;
</div>
</body>
</html>
EOT
return $program_text . $footer;
}
texinfo_register_formatting_function('end_file', \&ffmpeg_end_file);
# Dummy title command
# Ignore title. Title is handled through ffmpeg_begin_file().
set_from_init_file('USE_TITLEPAGE_FOR_TITLE', 1);
sub ffmpeg_title($$$$)
{
return '';
}
texinfo_register_command_formatting('titlefont',
\&ffmpeg_title);
# Customized float command. Part of code borrowed from GNU Texinfo.
sub ffmpeg_float($$$$$)
{
my $self = shift;
my $cmdname = shift;
my $command = shift;
my $args = shift;
my $content = shift;
my ($caption, $prepended) = Texinfo::Common::float_name_caption($self,
$command);
my $caption_text = '';
my $prepended_text;
my $prepended_save = '';
if ($self->in_string()) {
if ($prepended) {
$prepended_text = $self->convert_tree_new_formatting_context(
$prepended, 'float prepended');
} else {
$prepended_text = '';
}
if ($caption) {
$caption_text = $self->convert_tree_new_formatting_context(
{'contents' => $caption->{'args'}->[0]->{'contents'}},
'float caption');
}
return $prepended.$content.$caption_text;
}
my $id = $self->command_id($command);
my $label;
if (defined($id) and $id ne '') {
$label = "<a name=\"$id\"></a>";
} else {
$label = '';
}
if ($prepended) {
if ($caption) {
# prepend the prepended tree to the first paragraph
my @caption_original_contents = @{$caption->{'args'}->[0]->{'contents'}};
my @caption_contents;
my $new_paragraph;
while (@caption_original_contents) {
my $content = shift @caption_original_contents;
if ($content->{'type'} and $content->{'type'} eq 'paragraph') {
%{$new_paragraph} = %{$content};
$new_paragraph->{'contents'} = [@{$content->{'contents'}}];
unshift (@{$new_paragraph->{'contents'}}, {'cmdname' => 'strong',
'args' => [{'type' => 'brace_command_arg',
'contents' => [$prepended]}]});
push @caption_contents, $new_paragraph;
last;
} else {
push @caption_contents, $content;
}
}
push @caption_contents, @caption_original_contents;
if ($new_paragraph) {
$caption_text = $self->convert_tree_new_formatting_context(
{'contents' => \@caption_contents}, 'float caption');
$prepended_text = '';
}
}
if ($caption_text eq '') {
$prepended_text = $self->convert_tree_new_formatting_context(
$prepended, 'float prepended');
if ($prepended_text ne '') {
$prepended_save = $prepended_text;
$prepended_text = '<p><strong>'.$prepended_text.'</strong></p>';
}
}
} else {
$prepended_text = '';
}
if ($caption and $caption_text eq '') {
$caption_text = $self->convert_tree_new_formatting_context(
$caption->{'args'}->[0], 'float caption');
}
if ($prepended_text.$caption_text ne '') {
$prepended_text = $self->_attribute_class('div','float-caption'). '>'
. $prepended_text;
$caption_text .= '</div>';
}
my $html_class = '';
if ($prepended_save =~ /NOTE/) {
$html_class = 'info';
$prepended_text = '';
$caption_text = '';
} elsif ($prepended_save =~ /IMPORTANT/) {
$html_class = 'warning';
$prepended_text = '';
$caption_text = '';
}
return $self->_attribute_class('div', $html_class). '>' . "\n" .
$prepended_text . $caption_text . $content . '</div>';
}
texinfo_register_command_formatting('float',
\&ffmpeg_float);
1;

View File

@@ -332,12 +332,12 @@ $inf = pop @instack;
die "No filename or title\n" unless defined $fn && defined $tl;
$chapters{NAME} = "$fn \- $tl\n";
$chapters{FOOTNOTES} .= "=back\n" if exists $chapters{FOOTNOTES};
# always use utf8
print "=encoding utf8\n\n";
$chapters{NAME} = "$fn \- $tl\n";
$chapters{FOOTNOTES} .= "=back\n" if exists $chapters{FOOTNOTES};
unshift @chapters_sequence, "NAME";
for $chapter (@chapters_sequence) {
if (exists $chapters{$chapter}) {

View File

@@ -782,6 +782,9 @@ large numbers (usually 2^53 and larger).
Round the value of expression @var{expr} upwards to the nearest
integer. For example, "ceil(1.5)" is "2.0".
@item clip(x, min, max)
Return the value of @var{x} clipped between @var{min} and @var{max}.
@item cos(x)
Compute cosine of @var{x}.

View File

@@ -16,16 +16,15 @@ outputs the modified frame. The most simple way of doing this is to take a
similar filter. We'll pick edgedetect, but any other should do. You can look
for others using the `./ffmpeg -v 0 -filters|grep ' V->V '` command.
- cp libavfilter/vf_{edgedetect,foobar}.c
- sed -i s/edgedetect/foobar/g -i libavfilter/vf_foobar.c
- sed -i s/EdgeDetect/Foobar/g -i libavfilter/vf_foobar.c
- sed 's/edgedetect/foobar/g;s/EdgeDetect/Foobar/g' libavfilter/vf_edgedetect.c > libavfilter/vf_foobar.c
- edit libavfilter/Makefile, and add an entry for "foobar" following the
pattern of the other filters.
- edit libavfilter/allfilters.c, and add an entry for "foobar" following the
pattern of the other filters.
- ./configure ...
- make -j<whatever> ffmpeg
- ./ffmpeg -i tests/lena.pnm -vf foobar foobar.png
- ./ffmpeg -i http://samples.ffmpeg.org/image-samples/lena.pnm -vf foobar foobar.png
Note here: you can obviously use a random local image instead of a remote URL.
If everything went right, you should get a foobar.png with Lena edge-detected.

242
ffmpeg.c
View File

@@ -475,6 +475,7 @@ static void ffmpeg_cleanup(int ret)
}
ost->bitstream_filters = NULL;
av_frame_free(&ost->filtered_frame);
av_frame_free(&ost->last_frame);
av_parser_close(ost->parser);
@@ -483,6 +484,9 @@ static void ffmpeg_cleanup(int ret)
av_freep(&ost->avfilter);
av_freep(&ost->logfile_prefix);
av_freep(&ost->audio_channels_map);
ost->audio_channels_mapped = 0;
avcodec_free_context(&ost->enc_ctx);
av_freep(&output_streams[i]);
@@ -532,6 +536,15 @@ static void ffmpeg_cleanup(int ret)
term_exit();
}
void remove_avoptions(AVDictionary **a, AVDictionary *b)
{
AVDictionaryEntry *t = NULL;
while ((t = av_dict_get(b, "", t, AV_DICT_IGNORE_SUFFIX))) {
av_dict_set(a, t->key, NULL, AV_DICT_MATCH_CASE);
}
}
void assert_avoptions(AVDictionary *m)
{
AVDictionaryEntry *t;
@@ -578,6 +591,14 @@ static void write_frame(AVFormatContext *s, AVPacket *pkt, OutputStream *ost)
AVCodecContext *avctx = ost->st->codec;
int ret;
if (!ost->st->codec->extradata_size && ost->enc_ctx->extradata_size) {
ost->st->codec->extradata = av_mallocz(ost->enc_ctx->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE);
if (ost->st->codec->extradata) {
memcpy(ost->st->codec->extradata, ost->enc_ctx->extradata, ost->enc_ctx->extradata_size);
ost->st->codec->extradata_size = ost->enc_ctx->extradata_size;
}
}
if ((avctx->codec_type == AVMEDIA_TYPE_VIDEO && video_sync_method == VSYNC_DROP) ||
(avctx->codec_type == AVMEDIA_TYPE_AUDIO && audio_sync_method < 0))
pkt->pts = pkt->dts = AV_NOPTS_VALUE;
@@ -602,7 +623,11 @@ static void write_frame(AVFormatContext *s, AVPacket *pkt, OutputStream *ost)
while (bsfc) {
AVPacket new_pkt = *pkt;
int a = av_bitstream_filter_filter(bsfc, avctx, NULL,
AVDictionaryEntry *bsf_arg = av_dict_get(ost->bsf_args,
bsfc->filter->name,
NULL, 0);
int a = av_bitstream_filter_filter(bsfc, avctx,
bsf_arg ? bsf_arg->value : NULL,
&new_pkt.data, &new_pkt.size,
pkt->data, pkt->size,
pkt->flags & AV_PKT_FLAG_KEY);
@@ -618,6 +643,8 @@ static void write_frame(AVFormatContext *s, AVPacket *pkt, OutputStream *ost)
a = AVERROR(ENOMEM);
}
if (a > 0) {
pkt->side_data = NULL;
pkt->side_data_elems = 0;
av_free_packet(pkt);
new_pkt.buf = av_buffer_create(new_pkt.data, new_pkt.size,
av_buffer_default_free, NULL, 0);
@@ -637,6 +664,17 @@ static void write_frame(AVFormatContext *s, AVPacket *pkt, OutputStream *ost)
}
if (!(s->oformat->flags & AVFMT_NOTIMESTAMPS)) {
if (pkt->dts != AV_NOPTS_VALUE &&
pkt->pts != AV_NOPTS_VALUE &&
pkt->dts > pkt->pts) {
av_log(s, AV_LOG_WARNING, "Invalid DTS: %"PRId64" PTS: %"PRId64" in output stream %d:%d, replacing by guess\n",
pkt->dts, pkt->pts,
ost->file_index, ost->st->index);
pkt->pts =
pkt->dts = pkt->pts + pkt->dts + ost->last_mux_dts + 1
- FFMIN3(pkt->pts, pkt->dts, ost->last_mux_dts + 1)
- FFMAX3(pkt->pts, pkt->dts, ost->last_mux_dts + 1);
}
if(
(avctx->codec_type == AVMEDIA_TYPE_AUDIO || avctx->codec_type == AVMEDIA_TYPE_VIDEO) &&
pkt->dts != AV_NOPTS_VALUE &&
@@ -659,15 +697,6 @@ static void write_frame(AVFormatContext *s, AVPacket *pkt, OutputStream *ost)
pkt->dts = max;
}
}
if (pkt->dts != AV_NOPTS_VALUE &&
pkt->pts != AV_NOPTS_VALUE &&
pkt->dts > pkt->pts) {
av_log(s, AV_LOG_WARNING, "Invalid DTS: %"PRId64" PTS: %"PRId64" in output stream %d:%d\n",
pkt->dts, pkt->pts,
ost->file_index, ost->st->index);
pkt->pts = AV_NOPTS_VALUE;
pkt->dts = AV_NOPTS_VALUE;
}
}
ost->last_mux_dts = pkt->dts;
@@ -850,14 +879,14 @@ static void do_subtitle_out(AVFormatContext *s,
static void do_video_out(AVFormatContext *s,
OutputStream *ost,
AVFrame *in_picture)
AVFrame *next_picture)
{
int ret, format_video_sync;
AVPacket pkt;
AVCodecContext *enc = ost->enc_ctx;
AVCodecContext *mux_enc = ost->st->codec;
int nb_frames, i;
double sync_ipts, delta;
int nb_frames, nb0_frames, i;
double sync_ipts, delta, delta0;
double duration = 0;
int frame_size = 0;
InputStream *ist = NULL;
@@ -868,10 +897,20 @@ static void do_video_out(AVFormatContext *s,
if(ist && ist->st->start_time != AV_NOPTS_VALUE && ist->st->first_dts != AV_NOPTS_VALUE && ost->frame_rate.num)
duration = 1/(av_q2d(ost->frame_rate) * av_q2d(enc->time_base));
sync_ipts = in_picture->pts;
delta = sync_ipts - ost->sync_opts + duration;
if (!ost->filters_script &&
!ost->filters &&
next_picture &&
ist &&
lrintf(av_frame_get_pkt_duration(next_picture) * av_q2d(ist->st->time_base) / av_q2d(enc->time_base)) > 0) {
duration = lrintf(av_frame_get_pkt_duration(next_picture) * av_q2d(ist->st->time_base) / av_q2d(enc->time_base));
}
sync_ipts = next_picture->pts;
delta0 = sync_ipts - ost->sync_opts;
delta = delta0 + duration;
/* by default, we output a single frame */
nb0_frames = 0;
nb_frames = 1;
format_video_sync = video_sync_method;
@@ -891,19 +930,34 @@ static void do_video_out(AVFormatContext *s,
}
}
if (delta0 < 0 &&
delta > 0 &&
format_video_sync != VSYNC_PASSTHROUGH &&
format_video_sync != VSYNC_DROP) {
double cor = FFMIN(-delta0, duration);
av_log(NULL, AV_LOG_WARNING, "Past duration %f too large\n", -delta0);
sync_ipts += cor;
duration -= cor;
delta0 += cor;
}
switch (format_video_sync) {
case VSYNC_VSCFR:
if (ost->frame_number == 0 && delta - duration >= 0.5) {
av_log(NULL, AV_LOG_DEBUG, "Not duplicating %d initial frames\n", (int)lrintf(delta - duration));
delta = duration;
delta0 = 0;
ost->sync_opts = lrint(sync_ipts);
}
case VSYNC_CFR:
// FIXME set to 0.5 after we fix some dts/pts bugs like in avidec.c
if (delta < -1.1)
nb_frames = 0;
else if (delta > 1.1)
else if (delta > 1.1) {
nb_frames = lrintf(delta);
if (delta0 > 1.1)
nb0_frames = lrintf(delta0 - 0.6);
}
break;
case VSYNC_VFR:
if (delta <= -0.6)
@@ -920,28 +974,36 @@ static void do_video_out(AVFormatContext *s,
}
nb_frames = FFMIN(nb_frames, ost->max_frames - ost->frame_number);
if (nb_frames == 0) {
nb0_frames = FFMIN(nb0_frames, nb_frames);
if (nb0_frames == 0 && ost->last_droped) {
nb_frames_drop++;
av_log(NULL, AV_LOG_VERBOSE,
"*** dropping frame %d from stream %d at ts %"PRId64"\n",
ost->frame_number, ost->st->index, in_picture->pts);
return;
} else if (nb_frames > 1) {
ost->frame_number, ost->st->index, ost->last_frame->pts);
}
if (nb_frames > (nb0_frames && ost->last_droped) + (nb_frames > nb0_frames)) {
if (nb_frames > dts_error_threshold * 30) {
av_log(NULL, AV_LOG_ERROR, "%d frame duplication too large, skipping\n", nb_frames - 1);
nb_frames_drop++;
return;
}
nb_frames_dup += nb_frames - 1;
nb_frames_dup += nb_frames - (nb0_frames && ost->last_droped) - (nb_frames > nb0_frames);
av_log(NULL, AV_LOG_VERBOSE, "*** %d dup!\n", nb_frames - 1);
}
ost->last_droped = nb_frames == nb0_frames;
/* duplicates frame if needed */
for (i = 0; i < nb_frames; i++) {
AVFrame *in_picture;
av_init_packet(&pkt);
pkt.data = NULL;
pkt.size = 0;
if (i < nb0_frames && ost->last_frame) {
in_picture = ost->last_frame;
} else
in_picture = next_picture;
in_picture->pts = ost->sync_opts;
#if 1
@@ -956,10 +1018,8 @@ static void do_video_out(AVFormatContext *s,
/* raw pictures are written as AVPicture structure to
avoid any copies. We support temporarily the older
method. */
mux_enc->coded_frame->interlaced_frame = in_picture->interlaced_frame;
mux_enc->coded_frame->top_field_first = in_picture->top_field_first;
if (mux_enc->coded_frame->interlaced_frame)
mux_enc->field_order = mux_enc->coded_frame->top_field_first ? AV_FIELD_TB:AV_FIELD_BT;
if (in_picture->interlaced_frame)
mux_enc->field_order = in_picture->top_field_first ? AV_FIELD_TB:AV_FIELD_BT;
else
mux_enc->field_order = AV_FIELD_PROGRESSIVE;
pkt.data = (uint8_t *)in_picture;
@@ -985,8 +1045,7 @@ static void do_video_out(AVFormatContext *s,
mux_enc->field_order = AV_FIELD_PROGRESSIVE;
in_picture->quality = enc->global_quality;
if (!enc->me_threshold)
in_picture->pict_type = 0;
in_picture->pict_type = 0;
pts_time = in_picture->pts != AV_NOPTS_VALUE ?
in_picture->pts * av_q2d(enc->time_base) : NAN;
@@ -1080,6 +1139,11 @@ static void do_video_out(AVFormatContext *s,
if (vstats_filename && frame_size)
do_video_stats(ost, frame_size);
}
if (!ost->last_frame)
ost->last_frame = av_frame_alloc();
av_frame_unref(ost->last_frame);
av_frame_ref(ost->last_frame, next_picture);
}
static double psnr(double d)
@@ -1248,7 +1312,6 @@ static void print_final_stats(int64_t total_size)
if (data_size && total_size>0 && total_size >= data_size)
percent = 100.0 * (total_size - data_size) / data_size;
av_log(NULL, AV_LOG_INFO, "\n");
av_log(NULL, AV_LOG_INFO, "video:%1.0fkB audio:%1.0fkB subtitle:%1.0fkB other streams:%1.0fkB global headers:%1.0fkB muxing overhead: ",
video_size / 1024.0,
audio_size / 1024.0,
@@ -1439,6 +1502,8 @@ static void print_report(int is_last_report, int64_t timer_start, int64_t cur_ti
if (av_stream_get_end_pts(ost->st) != AV_NOPTS_VALUE)
pts = FFMAX(pts, av_rescale_q(av_stream_get_end_pts(ost->st),
ost->st->time_base, AV_TIME_BASE_Q));
if (is_last_report)
nb_frames_drop += ost->last_droped;
}
secs = pts / AV_TIME_BASE;
@@ -1474,10 +1539,11 @@ 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) {
const char end = is_last_report ? '\n' : '\r';
if (print_stats==1 && AV_LOG_INFO > av_log_get_level()) {
fprintf(stderr, "%s \r", buf);
fprintf(stderr, "%s %c", buf, end);
} else
av_log(NULL, AV_LOG_INFO, "%s \r", buf);
av_log(NULL, AV_LOG_INFO, "%s %c", buf, end);
fflush(stderr);
}
@@ -1799,18 +1865,10 @@ static int decode_audio(InputStream *ist, AVPacket *pkt, int *got_output)
for (i = 0; i < nb_filtergraphs; i++)
if (ist_in_filtergraph(filtergraphs[i], ist)) {
FilterGraph *fg = filtergraphs[i];
int j;
if (configure_filtergraph(fg) < 0) {
av_log(NULL, AV_LOG_FATAL, "Error reinitializing filters!\n");
exit_program(1);
}
for (j = 0; j < fg->nb_outputs; j++) {
OutputStream *ost = fg->outputs[j]->ost;
if (ost->enc->type == AVMEDIA_TYPE_AUDIO &&
!(ost->enc->capabilities & CODEC_CAP_VARIABLE_FRAME_SIZE))
av_buffersink_set_frame_size(ost->filter->filter,
ost->enc_ctx->frame_size);
}
}
}
@@ -1892,6 +1950,20 @@ static int decode_video(InputStream *ist, AVPacket *pkt, int *got_output)
if (*got_output || ret<0 || pkt->size)
decode_error_stat[ret<0] ++;
if (*got_output && ret >= 0) {
if (ist->dec_ctx->width != decoded_frame->width ||
ist->dec_ctx->height != decoded_frame->height ||
ist->dec_ctx->pix_fmt != decoded_frame->format) {
av_log(NULL, AV_LOG_DEBUG, "Frame parameters mismatch context %d,%d,%d != %d,%d,%d\n",
decoded_frame->width,
decoded_frame->height,
decoded_frame->format,
ist->dec_ctx->width,
ist->dec_ctx->height,
ist->dec_ctx->pix_fmt);
}
}
if (!*got_output || ret < 0) {
if (!pkt->size) {
for (i = 0; i < ist->nb_filters; i++)
@@ -2048,7 +2120,7 @@ out:
}
/* pkt = NULL means EOF (needed to flush decoder buffers) */
static int output_packet(InputStream *ist, const AVPacket *pkt)
static int process_input_packet(InputStream *ist, const AVPacket *pkt)
{
int ret = 0, i;
int got_output = 0;
@@ -2057,7 +2129,7 @@ static int output_packet(InputStream *ist, const AVPacket *pkt)
if (!ist->saw_first_ts) {
ist->dts = ist->st->avg_frame_rate.num ? - ist->dec_ctx->has_b_frames * AV_TIME_BASE / av_q2d(ist->st->avg_frame_rate) : 0;
ist->pts = 0;
if (pkt != NULL && pkt->pts != AV_NOPTS_VALUE && !ist->decoding_needed) {
if (pkt && pkt->pts != AV_NOPTS_VALUE && !ist->decoding_needed) {
ist->dts += av_rescale_q(pkt->pts, ist->st->time_base, AV_TIME_BASE_Q);
ist->pts = ist->dts; //unused but better to set it to a value thats not totally wrong
}
@@ -2069,7 +2141,7 @@ static int output_packet(InputStream *ist, const AVPacket *pkt)
if (ist->next_pts == AV_NOPTS_VALUE)
ist->next_pts = ist->pts;
if (pkt == NULL) {
if (!pkt) {
/* EOF handling */
av_init_packet(&avpkt);
avpkt.data = NULL;
@@ -2108,11 +2180,11 @@ static int output_packet(InputStream *ist, const AVPacket *pkt)
ret = decode_video (ist, &avpkt, &got_output);
if (avpkt.duration) {
duration = av_rescale_q(avpkt.duration, ist->st->time_base, AV_TIME_BASE_Q);
} else if(ist->dec_ctx->time_base.num != 0 && ist->dec_ctx->time_base.den != 0) {
} else if(ist->dec_ctx->framerate.num != 0 && ist->dec_ctx->framerate.den != 0) {
int ticks= av_stream_get_parser(ist->st) ? av_stream_get_parser(ist->st)->repeat_pict+1 : ist->dec_ctx->ticks_per_frame;
duration = ((int64_t)AV_TIME_BASE *
ist->dec_ctx->time_base.num * ticks) /
ist->dec_ctx->time_base.den;
ist->dec_ctx->framerate.den * ticks) /
ist->dec_ctx->framerate.num / ist->dec_ctx->ticks_per_frame;
} else
duration = 0;
@@ -2167,11 +2239,11 @@ static int output_packet(InputStream *ist, const AVPacket *pkt)
ist->next_dts = av_rescale_q(next_dts + 1, av_inv_q(ist->framerate), 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->dec_ctx->time_base.num != 0) {
} else if(ist->dec_ctx->framerate.num != 0) {
int ticks= av_stream_get_parser(ist->st) ? av_stream_get_parser(ist->st)->repeat_pict + 1 : ist->dec_ctx->ticks_per_frame;
ist->next_dts += ((int64_t)AV_TIME_BASE *
ist->dec_ctx->time_base.num * ticks) /
ist->dec_ctx->time_base.den;
ist->dec_ctx->framerate.den * ticks) /
ist->dec_ctx->framerate.num / ist->dec_ctx->ticks_per_frame;
}
break;
}
@@ -2283,8 +2355,12 @@ static int init_input_stream(int ist_index, char *error, int error_len)
ist->dec_ctx->thread_safe_callbacks = 1;
av_opt_set_int(ist->dec_ctx, "refcounted_frames", 1, 0);
if(ist->dec_ctx->codec_id == AV_CODEC_ID_DVB_SUBTITLE)
av_dict_set(&ist->decoder_opts, "compute_edt", "1", 0);
if (ist->dec_ctx->codec_id == AV_CODEC_ID_DVB_SUBTITLE &&
(ist->decoding_needed & DECODING_FOR_OST)) {
av_dict_set(&ist->decoder_opts, "compute_edt", "1", AV_DICT_DONT_OVERWRITE);
if (ist->decoding_needed & DECODING_FOR_FILTER)
av_log(NULL, AV_LOG_WARNING, "Warning using DVB subtitles for filtering and output at the same time is not fully supported, also see -compute_edt [0|1]\n");
}
if (!av_dict_get(ist->decoder_opts, "threads", NULL, 0))
av_dict_set(&ist->decoder_opts, "threads", "auto", 0);
@@ -2445,7 +2521,7 @@ static int transcode_init(void)
AVFormatContext *oc;
OutputStream *ost;
InputStream *ist;
char error[1024];
char error[1024] = {0};
int want_sdp = 1;
for (i = 0; i < nb_filtergraphs; i++) {
@@ -2603,6 +2679,26 @@ static int transcode_init(void)
av_reduce(&enc_ctx->time_base.num, &enc_ctx->time_base.den,
enc_ctx->time_base.num, enc_ctx->time_base.den, INT_MAX);
if (ist->st->nb_side_data) {
ost->st->side_data = av_realloc_array(NULL, ist->st->nb_side_data,
sizeof(*ist->st->side_data));
if (!ost->st->side_data)
return AVERROR(ENOMEM);
for (j = 0; j < ist->st->nb_side_data; j++) {
const AVPacketSideData *sd_src = &ist->st->side_data[j];
AVPacketSideData *sd_dst = &ost->st->side_data[j];
sd_dst->data = av_malloc(sd_src->size);
if (!sd_dst->data)
return AVERROR(ENOMEM);
memcpy(sd_dst->data, sd_src->data, sd_src->size);
sd_dst->size = sd_src->size;
sd_dst->type = sd_src->type;
ost->st->nb_side_data++;
}
}
ost->parser = av_parser_init(enc_ctx->codec_id);
switch (enc_ctx->codec_type) {
@@ -2617,7 +2713,10 @@ static int transcode_init(void)
enc_ctx->frame_size = dec_ctx->frame_size;
enc_ctx->audio_service_type = dec_ctx->audio_service_type;
enc_ctx->block_align = dec_ctx->block_align;
enc_ctx->initial_padding = dec_ctx->delay;
#if FF_API_AUDIOENC_DELAY
enc_ctx->delay = dec_ctx->delay;
#endif
if((enc_ctx->block_align == 1 || enc_ctx->block_align == 1152 || enc_ctx->block_align == 576) && enc_ctx->codec_id == AV_CODEC_ID_MP3)
enc_ctx->block_align= 0;
if(enc_ctx->codec_id == AV_CODEC_ID_AC3)
@@ -2664,7 +2763,7 @@ static int transcode_init(void)
}
if (ist)
ist->decoding_needed++;
ist->decoding_needed |= DECODING_FOR_OST;
ost->encoding_needed = 1;
set_encoder_id(output_files[ost->file_index], ost);
@@ -2864,10 +2963,11 @@ static int transcode_init(void)
av_log(NULL, AV_LOG_WARNING, "The bitrate parameter is set too low."
" It takes bits/s as argument, not kbits/s\n");
} else {
if (av_opt_set_dict(ost->enc_ctx, &ost->encoder_opts) < 0) {
ret = av_opt_set_dict(ost->enc_ctx, &ost->encoder_opts);
if (ret < 0) {
av_log(NULL, AV_LOG_FATAL,
"Error setting up codec context options.\n");
exit_program(1);
return ret;
}
}
@@ -3067,9 +3167,9 @@ static OutputStream *choose_output(void)
OutputStream *ost = output_streams[i];
int64_t opts = av_rescale_q(ost->st->cur_dts, ost->st->time_base,
AV_TIME_BASE_Q);
if (!ost->unavailable && !ost->finished && opts < opts_min) {
if (!ost->finished && opts < opts_min) {
opts_min = opts;
ost_min = ost;
ost_min = ost->unavailable ? NULL : ost;
}
}
return ost_min;
@@ -3331,7 +3431,7 @@ static int process_input(int file_index)
for (i = 0; i < ifile->nb_streams; i++) {
ist = input_streams[ifile->ist_index + i];
if (ist->decoding_needed) {
ret = output_packet(ist, NULL);
ret = process_input_packet(ist, NULL);
if (ret>0)
return 0;
}
@@ -3419,7 +3519,7 @@ static int process_input(int file_index)
}
/* add the stream-global side data to the first packet */
if (ist->nb_packets == 1)
if (ist->nb_packets == 1) {
if (ist->st->nb_side_data)
av_packet_split_side_data(&pkt);
for (i = 0; i < ist->st->nb_side_data; i++) {
@@ -3435,6 +3535,7 @@ static int process_input(int file_index)
memcpy(dst_data, src_sd->data, src_sd->size);
}
}
if (pkt.dts != AV_NOPTS_VALUE)
pkt.dts += av_rescale_q(ifile->ts_offset, AV_TIME_BASE_Q, ist->st->time_base);
@@ -3446,13 +3547,14 @@ static int process_input(int file_index)
if (pkt.dts != AV_NOPTS_VALUE)
pkt.dts *= ist->ts_scale;
if (pkt.dts != AV_NOPTS_VALUE && ist->next_dts == AV_NOPTS_VALUE && !copy_ts
if ((ist->dec_ctx->codec_type == AVMEDIA_TYPE_VIDEO ||
ist->dec_ctx->codec_type == AVMEDIA_TYPE_AUDIO) &&
pkt.dts != AV_NOPTS_VALUE && ist->next_dts == AV_NOPTS_VALUE && !copy_ts
&& (is->iformat->flags & AVFMT_TS_DISCONT) && ifile->last_ts != AV_NOPTS_VALUE) {
int64_t pkt_dts = av_rescale_q(pkt.dts, ist->st->time_base, AV_TIME_BASE_Q);
int64_t delta = pkt_dts - ifile->last_ts;
if(delta < -1LL*dts_delta_threshold*AV_TIME_BASE ||
(delta > 1LL*dts_delta_threshold*AV_TIME_BASE &&
ist->dec_ctx->codec_type != AVMEDIA_TYPE_SUBTITLE)){
if (delta < -1LL*dts_delta_threshold*AV_TIME_BASE ||
delta > 1LL*dts_delta_threshold*AV_TIME_BASE){
ifile->ts_offset -= delta;
av_log(NULL, AV_LOG_DEBUG,
"Inter stream timestamp discontinuity %"PRId64", new offset= %"PRId64"\n",
@@ -3463,14 +3565,15 @@ static int process_input(int file_index)
}
}
if (pkt.dts != AV_NOPTS_VALUE && ist->next_dts != AV_NOPTS_VALUE &&
if ((ist->dec_ctx->codec_type == AVMEDIA_TYPE_VIDEO ||
ist->dec_ctx->codec_type == AVMEDIA_TYPE_AUDIO) &&
pkt.dts != AV_NOPTS_VALUE && ist->next_dts != AV_NOPTS_VALUE &&
!copy_ts) {
int64_t pkt_dts = av_rescale_q(pkt.dts, ist->st->time_base, AV_TIME_BASE_Q);
int64_t delta = pkt_dts - ist->next_dts;
if (is->iformat->flags & AVFMT_TS_DISCONT) {
if (delta < -1LL*dts_delta_threshold*AV_TIME_BASE ||
(delta > 1LL*dts_delta_threshold*AV_TIME_BASE &&
ist->dec_ctx->codec_type != AVMEDIA_TYPE_SUBTITLE) ||
delta > 1LL*dts_delta_threshold*AV_TIME_BASE ||
pkt_dts + AV_TIME_BASE/10 < FFMAX(ist->pts, ist->dts)) {
ifile->ts_offset -= delta;
av_log(NULL, AV_LOG_DEBUG,
@@ -3482,7 +3585,7 @@ static int process_input(int file_index)
}
} else {
if ( delta < -1LL*dts_error_threshold*AV_TIME_BASE ||
(delta > 1LL*dts_error_threshold*AV_TIME_BASE && ist->dec_ctx->codec_type != AVMEDIA_TYPE_SUBTITLE)) {
delta > 1LL*dts_error_threshold*AV_TIME_BASE) {
av_log(NULL, AV_LOG_WARNING, "DTS %"PRId64", next:%"PRId64" st:%d invalid dropping\n", pkt.dts, ist->next_dts, pkt.stream_index);
pkt.dts = AV_NOPTS_VALUE;
}
@@ -3490,7 +3593,7 @@ static int process_input(int file_index)
int64_t pkt_pts = av_rescale_q(pkt.pts, ist->st->time_base, AV_TIME_BASE_Q);
delta = pkt_pts - ist->next_dts;
if ( delta < -1LL*dts_error_threshold*AV_TIME_BASE ||
(delta > 1LL*dts_error_threshold*AV_TIME_BASE && ist->dec_ctx->codec_type != AVMEDIA_TYPE_SUBTITLE)) {
delta > 1LL*dts_error_threshold*AV_TIME_BASE) {
av_log(NULL, AV_LOG_WARNING, "PTS %"PRId64", next:%"PRId64" invalid dropping st:%d\n", pkt.pts, ist->next_dts, pkt.stream_index);
pkt.pts = AV_NOPTS_VALUE;
}
@@ -3512,7 +3615,7 @@ static int process_input(int file_index)
sub2video_heartbeat(ist, pkt.pts);
ret = output_packet(ist, &pkt);
ret = process_input_packet(ist, &pkt);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Error while decoding stream #%d:%d: %s\n",
ist->file_index, ist->st->index, av_err2str(ret));
@@ -3678,7 +3781,7 @@ static int transcode(void)
for (i = 0; i < nb_input_streams; i++) {
ist = input_streams[i];
if (!input_files[ist->file_index]->eof_reached && ist->decoding_needed) {
output_packet(ist, NULL);
process_input_packet(ist, NULL);
}
}
flush_encoders();
@@ -3733,6 +3836,7 @@ static int transcode(void)
av_dict_free(&ost->encoder_opts);
av_dict_free(&ost->swr_opts);
av_dict_free(&ost->resample_opts);
av_dict_free(&ost->bsf_args);
}
}
}
@@ -3754,7 +3858,7 @@ static int64_t getutime(void)
GetProcessTimes(proc, &c, &e, &k, &u);
return ((int64_t) u.dwHighDateTime << 32 | u.dwLowDateTime) / 10;
#else
return av_gettime();
return av_gettime_relative();
#endif
}

View File

@@ -243,7 +243,10 @@ typedef struct InputStream {
AVStream *st;
int discard; /* true if stream data should be discarded */
int user_set_discard;
int decoding_needed; /* true if the packets must be decoded in 'raw_fifo' */
int decoding_needed; /* non zero if the packets must be decoded in 'raw_fifo', see DECODING_FOR_* */
#define DECODING_FOR_OST 1
#define DECODING_FOR_FILTER 2
AVCodecContext *dec_ctx;
AVCodec *dec;
AVFrame *decoded_frame;
@@ -385,6 +388,8 @@ typedef struct OutputStream {
AVCodec *enc;
int64_t max_frames;
AVFrame *filtered_frame;
AVFrame *last_frame;
int last_droped;
/* video only */
AVRational frame_rate;
@@ -402,7 +407,7 @@ typedef struct OutputStream {
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 */
int *audio_channels_map; /* list of the channels id to pick from the source stream */
int audio_channels_mapped; /* number of channels in audio_channels_map */
char *logfile_prefix;
@@ -417,6 +422,7 @@ typedef struct OutputStream {
AVDictionary *encoder_opts;
AVDictionary *swr_opts;
AVDictionary *resample_opts;
AVDictionary *bsf_args;
char *apad;
OSTFinished finished; /* no more packets should be written for this stream */
int unavailable; /* true if the steram is unavailable (possibly temporarily) */
@@ -478,6 +484,7 @@ extern int do_deinterlace;
extern int do_hex_dump;
extern int do_pkt_dump;
extern int copy_ts;
extern int start_at_zero;
extern int copy_tb;
extern int debug_ts;
extern int exit_on_error;
@@ -487,6 +494,7 @@ extern int stdin_interaction;
extern int frame_bits_per_raw_sample;
extern AVIOContext *progress_avio;
extern float max_error_rate;
extern int vdpau_api_ver;
extern const AVIOInterruptCB int_cb;
@@ -502,6 +510,7 @@ void show_usage(void);
void opt_output_file(void *optctx, const char *filename);
void remove_avoptions(AVDictionary **a, AVDictionary *b);
void assert_avoptions(AVDictionary *m);
int guess_input_channel_layout(InputStream *ist);

View File

@@ -275,7 +275,7 @@ static void init_input_filter(FilterGraph *fg, AVFilterInOut *in)
av_assert0(ist);
ist->discard = 0;
ist->decoding_needed++;
ist->decoding_needed |= DECODING_FOR_FILTER;
ist->st->discard = AVDISCARD_NONE;
GROW_ARRAY(fg->inputs, fg->nb_inputs);
@@ -383,9 +383,8 @@ static int configure_output_video_filter(FilterGraph *fg, OutputFilter *ofilter,
snprintf(name, sizeof(name), "pixel format for output stream %d:%d",
ost->file_index, ost->index);
ret = avfilter_graph_create_filter(&filter,
avfilter_get_by_name("format"),
"format", pix_fmts, NULL,
fg->graph);
avfilter_get_by_name("format"),
"format", pix_fmts, NULL, fg->graph);
av_freep(&pix_fmts);
if (ret < 0)
return ret;
@@ -620,6 +619,7 @@ static int sub2video_prepare(InputStream *ist)
ist->sub2video.frame = av_frame_alloc();
if (!ist->sub2video.frame)
return AVERROR(ENOMEM);
ist->sub2video.last_pts = INT64_MIN;
return 0;
}
@@ -637,6 +637,7 @@ static int configure_input_video_filter(FilterGraph *fg, InputFilter *ifilter,
AVBPrint args;
char name[255];
int ret, pad_idx = 0;
int64_t tsoffset = 0;
if (ist->dec_ctx->codec_type == AVMEDIA_TYPE_AUDIO) {
av_log(NULL, AV_LOG_ERROR, "Cannot connect video filter to audio input\n");
@@ -711,8 +712,14 @@ static int configure_input_video_filter(FilterGraph *fg, InputFilter *ifilter,
snprintf(name, sizeof(name), "trim for input stream %d:%d",
ist->file_index, ist->st->index);
if (copy_ts) {
tsoffset = f->start_time == AV_NOPTS_VALUE ? 0 : f->start_time;
if (!start_at_zero && f->ctx->start_time != AV_NOPTS_VALUE)
tsoffset += f->ctx->start_time;
}
ret = insert_trim(((f->start_time == AV_NOPTS_VALUE) || !f->accurate_seek) ?
AV_NOPTS_VALUE : 0, f->recording_time, &last_filter, &pad_idx, name);
AV_NOPTS_VALUE : tsoffset, f->recording_time,
&last_filter, &pad_idx, name);
if (ret < 0)
return ret;
@@ -731,6 +738,7 @@ static int configure_input_audio_filter(FilterGraph *fg, InputFilter *ifilter,
AVBPrint args;
char name[255];
int ret, pad_idx = 0;
int64_t tsoffset = 0;
if (ist->dec_ctx->codec_type != AVMEDIA_TYPE_AUDIO) {
av_log(NULL, AV_LOG_ERROR, "Cannot connect audio filter to non audio input\n");
@@ -813,8 +821,14 @@ static int configure_input_audio_filter(FilterGraph *fg, InputFilter *ifilter,
snprintf(name, sizeof(name), "trim for input stream %d:%d",
ist->file_index, ist->st->index);
if (copy_ts) {
tsoffset = f->start_time == AV_NOPTS_VALUE ? 0 : f->start_time;
if (!start_at_zero && f->ctx->start_time != AV_NOPTS_VALUE)
tsoffset += f->ctx->start_time;
}
ret = insert_trim(((f->start_time == AV_NOPTS_VALUE) || !f->accurate_seek) ?
AV_NOPTS_VALUE : 0, f->recording_time, &last_filter, &pad_idx, name);
AV_NOPTS_VALUE : tsoffset, f->recording_time,
&last_filter, &pad_idx, name);
if (ret < 0)
return ret;
@@ -830,6 +844,12 @@ static int configure_input_filter(FilterGraph *fg, InputFilter *ifilter,
av_freep(&ifilter->name);
DESCRIBE_FILTER_LINK(ifilter, in, 1);
if (!ifilter->ist->dec) {
av_log(NULL, AV_LOG_ERROR,
"No decoder for stream #%d:%d, filtering impossible\n",
ifilter->ist->file_index, ifilter->ist->st->index);
return AVERROR_DECODER_NOT_FOUND;
}
switch (avfilter_pad_get_type(in->filter_ctx->input_pads, in->pad_idx)) {
case AVMEDIA_TYPE_VIDEO: return configure_input_video_filter(fg, ifilter, in);
case AVMEDIA_TYPE_AUDIO: return configure_input_audio_filter(fg, ifilter, in);
@@ -892,8 +912,11 @@ int configure_filtergraph(FilterGraph *fg)
init_input_filter(fg, cur);
for (cur = inputs, i = 0; cur; cur = cur->next, i++)
if ((ret = configure_input_filter(fg, fg->inputs[i], cur)) < 0)
if ((ret = configure_input_filter(fg, fg->inputs[i], cur)) < 0) {
avfilter_inout_free(&inputs);
avfilter_inout_free(&outputs);
return ret;
}
avfilter_inout_free(&inputs);
if (!init || simple) {
@@ -919,6 +942,16 @@ int configure_filtergraph(FilterGraph *fg)
}
fg->reconfiguration = 1;
for (i = 0; i < fg->nb_outputs; i++) {
OutputStream *ost = fg->outputs[i]->ost;
if (ost &&
ost->enc->type == AVMEDIA_TYPE_AUDIO &&
!(ost->enc->capabilities & CODEC_CAP_VARIABLE_FRAME_SIZE))
av_buffersink_set_frame_size(ost->filter->filter,
ost->enc_ctx->frame_size);
}
return 0;
}

View File

@@ -91,6 +91,7 @@ int do_benchmark_all = 0;
int do_hex_dump = 0;
int do_pkt_dump = 0;
int copy_ts = 0;
int start_at_zero = 0;
int copy_tb = -1;
int debug_ts = 0;
int exit_on_error = 0;
@@ -508,7 +509,8 @@ static int opt_recording_timestamp(void *optctx, const char *opt, const char *ar
char buf[128];
int64_t recording_timestamp = parse_time_or_die(opt, arg, 0) / 1E6;
struct tm time = *gmtime((time_t*)&recording_timestamp);
strftime(buf, sizeof(buf), "creation_time=%FT%T%z", &time);
if (!strftime(buf, sizeof(buf), "creation_time=%FT%T%z", &time))
return -1;
parse_option(o, "metadata", buf, options);
av_log(NULL, AV_LOG_WARNING, "%s is deprecated, set the 'creation_time' metadata "
@@ -702,7 +704,7 @@ static void add_input_streams(OptionsContext *o, AVFormatContext *ic)
MATCH_PER_STREAM_OPT(fix_sub_duration, i, ist->fix_sub_duration, ic, st);
MATCH_PER_STREAM_OPT(canvas_sizes, str, canvas_size, ic, st);
if (canvas_size &&
av_parse_video_size(&dec->width, &dec->height, canvas_size) < 0) {
av_parse_video_size(&ist->dec_ctx->width, &ist->dec_ctx->height, canvas_size) < 0) {
av_log(NULL, AV_LOG_FATAL, "Invalid canvas size: %s.\n", canvas_size);
exit_program(1);
}
@@ -785,7 +787,6 @@ static int open_input_file(OptionsContext *o, const char *filename)
AVInputFormat *file_iformat = NULL;
int err, i, ret;
int64_t timestamp;
uint8_t buf[128];
AVDictionary **opts;
AVDictionary *unused_opts = NULL;
AVDictionaryEntry *e = NULL;
@@ -793,6 +794,7 @@ static int open_input_file(OptionsContext *o, const char *filename)
char * video_codec_name = NULL;
char * audio_codec_name = NULL;
char *subtitle_codec_name = NULL;
int scan_all_pmts_set = 0;
if (o->format) {
if (!(file_iformat = av_find_input_format(o->format))) {
@@ -814,8 +816,7 @@ static int open_input_file(OptionsContext *o, const char *filename)
exit_program(1);
}
if (o->nb_audio_sample_rate) {
snprintf(buf, sizeof(buf), "%d", o->audio_sample_rate[o->nb_audio_sample_rate - 1].u.i);
av_dict_set(&o->g->format_opts, "sample_rate", buf, 0);
av_dict_set_int(&o->g->format_opts, "sample_rate", o->audio_sample_rate[o->nb_audio_sample_rate - 1].u.i, 0);
}
if (o->nb_audio_channels) {
/* because we set audio_channels based on both the "ac" and
@@ -824,9 +825,7 @@ static int open_input_file(OptionsContext *o, const char *filename)
if (file_iformat && file_iformat->priv_class &&
av_opt_find(&file_iformat->priv_class, "channels", NULL, 0,
AV_OPT_SEARCH_FAKE_OBJ)) {
snprintf(buf, sizeof(buf), "%d",
o->audio_channels[o->nb_audio_channels - 1].u.i);
av_dict_set(&o->g->format_opts, "channels", buf, 0);
av_dict_set_int(&o->g->format_opts, "channels", o->audio_channels[o->nb_audio_channels - 1].u.i, 0);
}
}
if (o->nb_frame_rates) {
@@ -866,12 +865,19 @@ static int open_input_file(OptionsContext *o, const char *filename)
ic->flags |= AVFMT_FLAG_NONBLOCK;
ic->interrupt_callback = int_cb;
if (!av_dict_get(o->g->format_opts, "scan_all_pmts", NULL, AV_DICT_MATCH_CASE)) {
av_dict_set(&o->g->format_opts, "scan_all_pmts", "1", AV_DICT_DONT_OVERWRITE);
scan_all_pmts_set = 1;
}
/* open the input file with generic avformat function */
err = avformat_open_input(&ic, filename, file_iformat, &o->g->format_opts);
if (err < 0) {
print_error(filename, err);
exit_program(1);
}
if (scan_all_pmts_set)
av_dict_set(&o->g->format_opts, "scan_all_pmts", NULL, AV_DICT_MATCH_CASE);
remove_avoptions(&o->g->format_opts, o->g->codec_opts);
assert_avoptions(o->g->format_opts);
/* apply forced codec ids */
@@ -924,7 +930,7 @@ static int open_input_file(OptionsContext *o, const char *filename)
f->start_time = o->start_time;
f->recording_time = o->recording_time;
f->input_ts_offset = o->input_ts_offset;
f->ts_offset = o->input_ts_offset - (copy_ts ? 0 : timestamp);
f->ts_offset = o->input_ts_offset - (copy_ts ? (start_at_zero && ic->start_time != AV_NOPTS_VALUE ? ic->start_time : 0) : timestamp);
f->nb_streams = ic->nb_streams;
f->rate_emu = o->rate_emu;
f->accurate_seek = o->accurate_seek;
@@ -1132,8 +1138,11 @@ static OutputStream *new_output_stream(OptionsContext *o, AVFormatContext *oc, e
MATCH_PER_STREAM_OPT(bitstream_filters, str, bsf, oc, st);
while (bsf) {
char *arg = NULL;
if (next = strchr(bsf, ','))
*next++ = 0;
if (arg = strchr(bsf, '='))
*arg++ = 0;
if (!(bsfc = av_bitstream_filter_init(bsf))) {
av_log(NULL, AV_LOG_FATAL, "Unknown bitstream filter %s\n", bsf);
exit_program(1);
@@ -1142,6 +1151,7 @@ static OutputStream *new_output_stream(OptionsContext *o, AVFormatContext *oc, e
bsfc_prev->next = bsfc;
else
ost->bitstream_filters = bsfc;
av_dict_set(&ost->bsf_args, bsfc->filter->name, arg, 0);
bsfc_prev = bsfc;
bsf = next;
@@ -1279,6 +1289,8 @@ static OutputStream *new_video_stream(OptionsContext *o, AVFormatContext *oc, in
av_log(NULL, AV_LOG_FATAL, "Invalid framerate value: %s\n", frame_rate);
exit_program(1);
}
if (frame_rate && video_sync_method == VSYNC_PASSTHROUGH)
av_log(NULL, AV_LOG_ERROR, "Using -vsync 0 and -r can produce invalid output files\n");
MATCH_PER_STREAM_OPT(frame_aspect_ratios, str, frame_aspect_ratio, oc, st);
if (frame_aspect_ratio) {
@@ -1477,11 +1489,13 @@ static OutputStream *new_audio_stream(OptionsContext *o, AVFormatContext *oc, in
}
if (!ist || (ist->file_index == map->file_idx && ist->st->index == map->stream_idx)) {
if (ost->audio_channels_mapped < FF_ARRAY_ELEMS(ost->audio_channels_map))
ost->audio_channels_map[ost->audio_channels_mapped++] = map->channel_idx;
else
av_log(NULL, AV_LOG_FATAL, "Max channel mapping for output %d.%d reached\n",
ost->file_index, ost->st->index);
if (av_reallocp_array(&ost->audio_channels_map,
ost->audio_channels_mapped + 1,
sizeof(*ost->audio_channels_map)
) < 0 )
exit_program(1);
ost->audio_channels_map[ost->audio_channels_mapped++] = map->channel_idx;
}
}
}
@@ -1621,27 +1635,36 @@ static int read_ffserver_streams(OptionsContext *o, AVFormatContext *s, const ch
AVStream *st;
OutputStream *ost;
AVCodec *codec;
AVCodecContext *avctx;
const char *enc_config;
codec = avcodec_find_encoder(ic->streams[i]->codec->codec_id);
if (!codec) {
av_log(s, AV_LOG_ERROR, "no encoder found for codec id %i\n", ic->streams[i]->codec->codec_id);
return AVERROR(EINVAL);
}
if (codec->type == AVMEDIA_TYPE_AUDIO)
opt_audio_codec(o, "c:a", codec->name);
else if (codec->type == AVMEDIA_TYPE_VIDEO)
opt_video_codec(o, "c:v", codec->name);
ost = new_output_stream(o, s, codec->type, -1);
st = ost->st;
avctx = st->codec;
ost->enc = codec;
// FIXME: a more elegant solution is needed
memcpy(st, ic->streams[i], sizeof(AVStream));
st->cur_dts = 0;
st->info = av_malloc(sizeof(*st->info));
memcpy(st->info, ic->streams[i]->info, sizeof(*st->info));
st->codec= avctx;
avcodec_copy_context(st->codec, ic->streams[i]->codec);
avcodec_get_context_defaults3(st->codec, codec);
enc_config = av_stream_get_recommended_encoder_configuration(ic->streams[i]);
if (enc_config) {
AVDictionary *opts = NULL;
av_dict_parse_string(&opts, enc_config, "=", ",", 0);
av_opt_set_dict2(st->codec, &opts, AV_OPT_SEARCH_CHILDREN);
av_dict_free(&opts);
}
if (st->codec->codec_type == AVMEDIA_TYPE_AUDIO && !ost->stream_copy)
choose_sample_fmt(st, codec);
else if (st->codec->codec_type == AVMEDIA_TYPE_VIDEO && !ost->stream_copy)
choose_pixel_fmt(st, st->codec, codec, st->codec->pix_fmt);
avcodec_copy_context(ost->enc_ctx, st->codec);
if (enc_config)
av_dict_parse_string(&ost->encoder_opts, enc_config, "=", ",", 0);
}
avformat_close_input(&ic);
@@ -1729,8 +1752,8 @@ static int open_output_file(OptionsContext *o, const char *filename)
if (o->stop_time != INT64_MAX && o->recording_time == INT64_MAX) {
int64_t start_time = o->start_time == AV_NOPTS_VALUE ? 0 : o->start_time;
if (o->stop_time <= start_time) {
av_log(NULL, AV_LOG_WARNING, "-to value smaller than -ss; ignoring -to.\n");
o->stop_time = INT64_MAX;
av_log(NULL, AV_LOG_ERROR, "-to value smaller than -ss; aborting.\n");
exit_program(1);
} else {
o->recording_time = o->stop_time - start_time;
}
@@ -1828,7 +1851,7 @@ static int open_output_file(OptionsContext *o, const char *filename)
/* pick the "best" stream of each type */
/* video: highest resolution */
if (!o->video_disable && oc->oformat->video_codec != AV_CODEC_ID_NONE) {
if (!o->video_disable && av_guess_codec(oc->oformat, NULL, filename, NULL, AVMEDIA_TYPE_VIDEO) != AV_CODEC_ID_NONE) {
int area = 0, idx = -1;
int qcr = avformat_query_codec(oc->oformat, oc->oformat->video_codec, 0);
for (i = 0; i < nb_input_streams; i++) {
@@ -1850,7 +1873,7 @@ static int open_output_file(OptionsContext *o, const char *filename)
}
/* audio: most channels */
if (!o->audio_disable && oc->oformat->audio_codec != AV_CODEC_ID_NONE) {
if (!o->audio_disable && av_guess_codec(oc->oformat, NULL, filename, NULL, AVMEDIA_TYPE_AUDIO) != AV_CODEC_ID_NONE) {
int channels = 0, idx = -1;
for (i = 0; i < nb_input_streams; i++) {
ist = input_streams[i];
@@ -1869,8 +1892,27 @@ static int open_output_file(OptionsContext *o, const char *filename)
if (!o->subtitle_disable && (avcodec_find_encoder(oc->oformat->subtitle_codec) || subtitle_codec_name)) {
for (i = 0; i < nb_input_streams; i++)
if (input_streams[i]->st->codec->codec_type == AVMEDIA_TYPE_SUBTITLE) {
new_subtitle_stream(o, oc, i);
break;
AVCodecDescriptor const *input_descriptor =
avcodec_descriptor_get(input_streams[i]->st->codec->codec_id);
AVCodecDescriptor const *output_descriptor = NULL;
AVCodec const *output_codec =
avcodec_find_encoder(oc->oformat->subtitle_codec);
int input_props = 0, output_props = 0;
if (output_codec)
output_descriptor = avcodec_descriptor_get(output_codec->id);
if (input_descriptor)
input_props = input_descriptor->props & (AV_CODEC_PROP_TEXT_SUB | AV_CODEC_PROP_BITMAP_SUB);
if (output_descriptor)
output_props = output_descriptor->props & (AV_CODEC_PROP_TEXT_SUB | AV_CODEC_PROP_BITMAP_SUB);
if (subtitle_codec_name ||
input_props & output_props ||
// Map dvb teletext which has neither property to any output subtitle encoder
input_descriptor && output_descriptor &&
(!input_descriptor->props ||
!output_descriptor->props)) {
new_subtitle_stream(o, oc, i);
break;
}
}
}
/* do something with data? */
@@ -1992,8 +2034,13 @@ loop_end:
const AVClass *class = avcodec_get_class();
const AVOption *option = av_opt_find(&class, e->key, NULL, 0,
AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ);
if (!option)
const AVClass *fclass = avformat_get_class();
const AVOption *foption = av_opt_find(&fclass, e->key, NULL, 0,
AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ);
if (!option || foption)
continue;
if (!(option->flags & AV_OPT_FLAG_ENCODING_PARAM)) {
av_log(NULL, AV_LOG_ERROR, "Codec AVOption %s (%s) specified for "
"output file #%d (%s) is not an encoding option.\n", e->key,
@@ -2038,9 +2085,7 @@ loop_end:
assert_file_overwrite(filename);
if (o->mux_preload) {
uint8_t buf[64];
snprintf(buf, sizeof(buf), "%d", (int)(o->mux_preload*AV_TIME_BASE));
av_dict_set(&of->opts, "preload", buf, 0);
av_dict_set_int(&of->opts, "preload", o->mux_preload*AV_TIME_BASE, 0);
}
oc->max_delay = (int)(o->mux_max_delay * AV_TIME_BASE);
@@ -2166,7 +2211,8 @@ static int opt_target(void *optctx, const char *opt, const char *arg)
for (j = 0; j < nb_input_files; j++) {
for (i = 0; i < input_files[j]->nb_streams; i++) {
AVCodecContext *c = input_files[j]->ctx->streams[i]->codec;
if (c->codec_type != AVMEDIA_TYPE_VIDEO)
if (c->codec_type != AVMEDIA_TYPE_VIDEO ||
!c->time_base.num)
continue;
fr = c->time_base.den * 1000 / c->time_base.num;
if (fr == 25000) {
@@ -2199,19 +2245,19 @@ static int opt_target(void *optctx, const char *opt, const char *arg)
parse_option(o, "s", norm == PAL ? "352x288" : "352x240", options);
parse_option(o, "r", frame_rates[norm], options);
av_dict_set(&o->g->codec_opts, "g", norm == PAL ? "15" : "18", AV_DICT_DONT_OVERWRITE);
opt_default(NULL, "g", norm == PAL ? "15" : "18");
av_dict_set(&o->g->codec_opts, "b:v", "1150000", AV_DICT_DONT_OVERWRITE);
av_dict_set(&o->g->codec_opts, "maxrate", "1150000", AV_DICT_DONT_OVERWRITE);
av_dict_set(&o->g->codec_opts, "minrate", "1150000", AV_DICT_DONT_OVERWRITE);
av_dict_set(&o->g->codec_opts, "bufsize", "327680", AV_DICT_DONT_OVERWRITE); // 40*1024*8;
opt_default(NULL, "b:v", "1150000");
opt_default(NULL, "maxrate", "1150000");
opt_default(NULL, "minrate", "1150000");
opt_default(NULL, "bufsize", "327680"); // 40*1024*8;
av_dict_set(&o->g->codec_opts, "b:a", "224000", AV_DICT_DONT_OVERWRITE);
opt_default(NULL, "b:a", "224000");
parse_option(o, "ar", "44100", options);
parse_option(o, "ac", "2", options);
av_dict_set(&o->g->format_opts, "packetsize", "2324", AV_DICT_DONT_OVERWRITE);
av_dict_set(&o->g->format_opts, "muxrate", "1411200", AV_DICT_DONT_OVERWRITE); // 2352 * 75 * 8;
opt_default(NULL, "packetsize", "2324");
opt_default(NULL, "muxrate", "1411200"); // 2352 * 75 * 8;
/* We have to offset the PTS, so that it is consistent with the SCR.
SCR starts at 36000, but the first two packs contain only padding
@@ -2228,18 +2274,18 @@ static int opt_target(void *optctx, const char *opt, const char *arg)
parse_option(o, "s", norm == PAL ? "480x576" : "480x480", options);
parse_option(o, "r", frame_rates[norm], options);
parse_option(o, "pix_fmt", "yuv420p", options);
av_dict_set(&o->g->codec_opts, "g", norm == PAL ? "15" : "18", AV_DICT_DONT_OVERWRITE);
opt_default(NULL, "g", norm == PAL ? "15" : "18");
av_dict_set(&o->g->codec_opts, "b:v", "2040000", AV_DICT_DONT_OVERWRITE);
av_dict_set(&o->g->codec_opts, "maxrate", "2516000", AV_DICT_DONT_OVERWRITE);
av_dict_set(&o->g->codec_opts, "minrate", "0", AV_DICT_DONT_OVERWRITE); // 1145000;
av_dict_set(&o->g->codec_opts, "bufsize", "1835008", AV_DICT_DONT_OVERWRITE); // 224*1024*8;
av_dict_set(&o->g->codec_opts, "scan_offset", "1", AV_DICT_DONT_OVERWRITE);
opt_default(NULL, "b:v", "2040000");
opt_default(NULL, "maxrate", "2516000");
opt_default(NULL, "minrate", "0"); // 1145000;
opt_default(NULL, "bufsize", "1835008"); // 224*1024*8;
opt_default(NULL, "scan_offset", "1");
av_dict_set(&o->g->codec_opts, "b:a", "224000", AV_DICT_DONT_OVERWRITE);
opt_default(NULL, "b:a", "224000");
parse_option(o, "ar", "44100", options);
av_dict_set(&o->g->format_opts, "packetsize", "2324", AV_DICT_DONT_OVERWRITE);
opt_default(NULL, "packetsize", "2324");
} else if (!strcmp(arg, "dvd")) {
@@ -2250,17 +2296,17 @@ static int opt_target(void *optctx, const char *opt, const char *arg)
parse_option(o, "s", norm == PAL ? "720x576" : "720x480", options);
parse_option(o, "r", frame_rates[norm], options);
parse_option(o, "pix_fmt", "yuv420p", options);
av_dict_set(&o->g->codec_opts, "g", norm == PAL ? "15" : "18", AV_DICT_DONT_OVERWRITE);
opt_default(NULL, "g", norm == PAL ? "15" : "18");
av_dict_set(&o->g->codec_opts, "b:v", "6000000", AV_DICT_DONT_OVERWRITE);
av_dict_set(&o->g->codec_opts, "maxrate", "9000000", AV_DICT_DONT_OVERWRITE);
av_dict_set(&o->g->codec_opts, "minrate", "0", AV_DICT_DONT_OVERWRITE); // 1500000;
av_dict_set(&o->g->codec_opts, "bufsize", "1835008", AV_DICT_DONT_OVERWRITE); // 224*1024*8;
opt_default(NULL, "b:v", "6000000");
opt_default(NULL, "maxrate", "9000000");
opt_default(NULL, "minrate", "0"); // 1500000;
opt_default(NULL, "bufsize", "1835008"); // 224*1024*8;
av_dict_set(&o->g->format_opts, "packetsize", "2048", AV_DICT_DONT_OVERWRITE); // from www.mpucoder.com: DVD sectors contain 2048 bytes of data, this is also the size of one pack.
av_dict_set(&o->g->format_opts, "muxrate", "10080000", AV_DICT_DONT_OVERWRITE); // from mplex project: data_rate = 1260000. mux_rate = data_rate * 8
opt_default(NULL, "packetsize", "2048"); // from www.mpucoder.com: DVD sectors contain 2048 bytes of data, this is also the size of one pack.
opt_default(NULL, "muxrate", "10080000"); // from mplex project: data_rate = 1260000. mux_rate = data_rate * 8
av_dict_set(&o->g->codec_opts, "b:a", "448000", AV_DICT_DONT_OVERWRITE);
opt_default(NULL, "b:a", "448000");
parse_option(o, "ar", "48000", options);
} else if (!strncmp(arg, "dv", 2)) {
@@ -2279,6 +2325,10 @@ static int opt_target(void *optctx, const char *opt, const char *arg)
av_log(NULL, AV_LOG_ERROR, "Unknown target: %s\n", arg);
return AVERROR(EINVAL);
}
av_dict_copy(&o->g->codec_opts, codec_opts, AV_DICT_DONT_OVERWRITE);
av_dict_copy(&o->g->format_opts, format_opts, AV_DICT_DONT_OVERWRITE);
return 0;
}
@@ -2781,7 +2831,7 @@ const OptionDef options[] = {
"add metadata", "string=string" },
{ "dframes", HAS_ARG | OPT_PERFILE | OPT_EXPERT |
OPT_OUTPUT, { .func_arg = opt_data_frames },
"set the number of data frames to record", "number" },
"set the number of data frames to output", "number" },
{ "benchmark", OPT_BOOL | OPT_EXPERT, { &do_benchmark },
"add timings for benchmarking" },
{ "benchmark_all", OPT_BOOL | OPT_EXPERT, { &do_benchmark_all },
@@ -2810,6 +2860,8 @@ const OptionDef options[] = {
"audio drift threshold", "threshold" },
{ "copyts", OPT_BOOL | OPT_EXPERT, { &copy_ts },
"copy timestamps" },
{ "start_at_zero", OPT_BOOL | OPT_EXPERT, { &start_at_zero },
"shift input timestamps to start at 0 when using copyts" },
{ "copytb", HAS_ARG | OPT_INT | OPT_EXPERT, { &copy_tb },
"copy input stream time base when stream copying", "mode" },
{ "shortest", OPT_BOOL | OPT_EXPERT | OPT_OFFSET |
@@ -2830,7 +2882,7 @@ const OptionDef options[] = {
{ "copypriorss", OPT_INT | HAS_ARG | OPT_EXPERT | OPT_SPEC | OPT_OUTPUT, { .off = OFFSET(copy_prior_start) },
"copy or discard frames before start time" },
{ "frames", OPT_INT64 | HAS_ARG | OPT_SPEC | OPT_OUTPUT, { .off = OFFSET(max_frames) },
"set the number of frames to record", "number" },
"set the number of frames to output", "number" },
{ "tag", OPT_STRING | HAS_ARG | OPT_SPEC |
OPT_EXPERT | OPT_OUTPUT | OPT_INPUT, { .off = OFFSET(codec_tags) },
"force codec tag/fourcc", "fourcc/tag" },
@@ -2872,7 +2924,7 @@ const OptionDef options[] = {
/* video options */
{ "vframes", OPT_VIDEO | HAS_ARG | OPT_PERFILE | OPT_OUTPUT, { .func_arg = opt_video_frames },
"set the number of video frames to record", "number" },
"set the number of video frames to output", "number" },
{ "r", OPT_VIDEO | HAS_ARG | OPT_STRING | OPT_SPEC |
OPT_INPUT | OPT_OUTPUT, { .off = OFFSET(frame_rates) },
"set frame rate (Hz value, fraction or abbreviation)", "rate" },
@@ -2954,10 +3006,13 @@ const OptionDef options[] = {
{ "hwaccel_device", OPT_VIDEO | OPT_STRING | HAS_ARG | OPT_EXPERT |
OPT_SPEC | OPT_INPUT, { .off = OFFSET(hwaccel_devices) },
"select a device for HW acceleration" "devicename" },
#if HAVE_VDPAU_X11
{ "vdpau_api_ver", HAS_ARG | OPT_INT | OPT_EXPERT, { &vdpau_api_ver }, "" },
#endif
/* audio options */
{ "aframes", OPT_AUDIO | HAS_ARG | OPT_PERFILE | OPT_OUTPUT, { .func_arg = opt_audio_frames },
"set the number of audio frames to record", "number" },
"set the number of audio frames to output", "number" },
{ "aq", OPT_AUDIO | HAS_ARG | OPT_PERFILE | OPT_OUTPUT, { .func_arg = opt_audio_qscale },
"set audio quality (codec-specific)", "quality", },
{ "ar", OPT_AUDIO | HAS_ARG | OPT_INT | OPT_SPEC |

View File

@@ -42,9 +42,11 @@ typedef struct VDPAUContext {
VdpGetErrorString *get_error_string;
VdpGetInformationString *get_information_string;
VdpDeviceDestroy *device_destroy;
#if 1 // for ffmpegs older vdpau API, not the oldest though
VdpDecoderCreate *decoder_create;
VdpDecoderDestroy *decoder_destroy;
VdpDecoderRender *decoder_render;
#endif
VdpVideoSurfaceCreate *video_surface_create;
VdpVideoSurfaceDestroy *video_surface_destroy;
VdpVideoSurfaceGetBitsYCbCr *video_surface_get_bits;
@@ -57,6 +59,8 @@ typedef struct VDPAUContext {
VdpYCbCrFormat vdpau_format;
} VDPAUContext;
int vdpau_api_ver = 2;
static void vdpau_uninit(AVCodecContext *s)
{
InputStream *ist = s->opaque;
@@ -239,9 +243,11 @@ do {
GET_CALLBACK(VDP_FUNC_ID_GET_ERROR_STRING, get_error_string);
GET_CALLBACK(VDP_FUNC_ID_GET_INFORMATION_STRING, get_information_string);
GET_CALLBACK(VDP_FUNC_ID_DEVICE_DESTROY, device_destroy);
GET_CALLBACK(VDP_FUNC_ID_DECODER_CREATE, decoder_create);
GET_CALLBACK(VDP_FUNC_ID_DECODER_DESTROY, decoder_destroy);
GET_CALLBACK(VDP_FUNC_ID_DECODER_RENDER, decoder_render);
if (vdpau_api_ver == 1) {
GET_CALLBACK(VDP_FUNC_ID_DECODER_CREATE, decoder_create);
GET_CALLBACK(VDP_FUNC_ID_DECODER_DESTROY, decoder_destroy);
GET_CALLBACK(VDP_FUNC_ID_DECODER_RENDER, decoder_render);
}
GET_CALLBACK(VDP_FUNC_ID_VIDEO_SURFACE_CREATE, video_surface_create);
GET_CALLBACK(VDP_FUNC_ID_VIDEO_SURFACE_DESTROY, video_surface_destroy);
GET_CALLBACK(VDP_FUNC_ID_VIDEO_SURFACE_GET_BITS_Y_CB_CR, video_surface_get_bits);
@@ -270,12 +276,16 @@ do {
ctx->vdpau_format = vdpau_formats[i][0];
ctx->pix_fmt = vdpau_formats[i][1];
vdpau_ctx = av_vdpau_alloc_context();
if (!vdpau_ctx)
goto fail;
vdpau_ctx->render = ctx->decoder_render;
if (vdpau_api_ver == 1) {
vdpau_ctx = av_vdpau_alloc_context();
if (!vdpau_ctx)
goto fail;
vdpau_ctx->render = ctx->decoder_render;
s->hwaccel_context = vdpau_ctx;
s->hwaccel_context = vdpau_ctx;
} else
if (av_vdpau_bind_context(s, ctx->device, ctx->get_proc_address, 0))
goto fail;
ctx->get_information_string(&vendor);
av_log(NULL, AV_LOG_VERBOSE, "Using VDPAU -- %s -- on X11 display %s, "
@@ -291,7 +301,7 @@ fail:
return AVERROR(EINVAL);
}
int vdpau_init(AVCodecContext *s)
static int vdpau_old_init(AVCodecContext *s)
{
InputStream *ist = s->opaque;
int loglevel = (ist->hwaccel_id == HWACCEL_AUTO) ? AV_LOG_VERBOSE : AV_LOG_ERROR;
@@ -333,3 +343,22 @@ int vdpau_init(AVCodecContext *s)
return 0;
}
int vdpau_init(AVCodecContext *s)
{
InputStream *ist = s->opaque;
if (vdpau_api_ver == 1)
return vdpau_old_init(s);
if (!ist->hwaccel_ctx) {
int ret = vdpau_alloc(s);
if (ret < 0)
return ret;
}
ist->hwaccel_get_buffer = vdpau_get_buffer;
ist->hwaccel_retrieve_data = vdpau_retrieve_data;
return 0;
}

1107
ffplay.c

File diff suppressed because it is too large Load Diff

164
ffprobe.c
View File

@@ -33,6 +33,7 @@
#include "libavutil/avassert.h"
#include "libavutil/avstring.h"
#include "libavutil/bprint.h"
#include "libavutil/hash.h"
#include "libavutil/opt.h"
#include "libavutil/pixdesc.h"
#include "libavutil/dict.h"
@@ -65,6 +66,9 @@ static int do_show_stream_disposition = 0;
static int do_show_data = 0;
static int do_show_program_version = 0;
static int do_show_library_versions = 0;
static int do_show_pixel_formats = 0;
static int do_show_pixel_format_flags = 0;
static int do_show_pixel_format_components = 0;
static int do_show_chapter_tags = 0;
static int do_show_format_tags = 0;
@@ -80,6 +84,7 @@ static int show_private_data = 1;
static char *print_format;
static char *stream_specifier;
static char *show_data_hash;
typedef struct {
int id; ///< identifier
@@ -123,11 +128,18 @@ typedef enum {
SECTION_ID_FRAME,
SECTION_ID_FRAMES,
SECTION_ID_FRAME_TAGS,
SECTION_ID_FRAME_SIDE_DATA_LIST,
SECTION_ID_FRAME_SIDE_DATA,
SECTION_ID_LIBRARY_VERSION,
SECTION_ID_LIBRARY_VERSIONS,
SECTION_ID_PACKET,
SECTION_ID_PACKETS,
SECTION_ID_PACKETS_AND_FRAMES,
SECTION_ID_PIXEL_FORMAT,
SECTION_ID_PIXEL_FORMAT_FLAGS,
SECTION_ID_PIXEL_FORMAT_COMPONENT,
SECTION_ID_PIXEL_FORMAT_COMPONENTS,
SECTION_ID_PIXEL_FORMATS,
SECTION_ID_PROGRAM_STREAM_DISPOSITION,
SECTION_ID_PROGRAM_STREAM_TAGS,
SECTION_ID_PROGRAM,
@@ -152,13 +164,20 @@ static struct section sections[] = {
[SECTION_ID_FORMAT] = { SECTION_ID_FORMAT, "format", 0, { SECTION_ID_FORMAT_TAGS, -1 } },
[SECTION_ID_FORMAT_TAGS] = { SECTION_ID_FORMAT_TAGS, "tags", SECTION_FLAG_HAS_VARIABLE_FIELDS, { -1 }, .element_name = "tag", .unique_name = "format_tags" },
[SECTION_ID_FRAMES] = { SECTION_ID_FRAMES, "frames", SECTION_FLAG_IS_ARRAY, { SECTION_ID_FRAME, SECTION_ID_SUBTITLE, -1 } },
[SECTION_ID_FRAME] = { SECTION_ID_FRAME, "frame", 0, { SECTION_ID_FRAME_TAGS, -1 } },
[SECTION_ID_FRAME] = { SECTION_ID_FRAME, "frame", 0, { SECTION_ID_FRAME_TAGS, SECTION_ID_FRAME_SIDE_DATA_LIST, -1 } },
[SECTION_ID_FRAME_TAGS] = { SECTION_ID_FRAME_TAGS, "tags", SECTION_FLAG_HAS_VARIABLE_FIELDS, { -1 }, .element_name = "tag", .unique_name = "frame_tags" },
[SECTION_ID_FRAME_SIDE_DATA_LIST] ={ SECTION_ID_FRAME_SIDE_DATA_LIST, "side_data_list", SECTION_FLAG_IS_ARRAY, { SECTION_ID_FRAME_SIDE_DATA, -1 } },
[SECTION_ID_FRAME_SIDE_DATA] = { SECTION_ID_FRAME_SIDE_DATA, "side_data", 0, { -1 } },
[SECTION_ID_LIBRARY_VERSIONS] = { SECTION_ID_LIBRARY_VERSIONS, "library_versions", SECTION_FLAG_IS_ARRAY, { SECTION_ID_LIBRARY_VERSION, -1 } },
[SECTION_ID_LIBRARY_VERSION] = { SECTION_ID_LIBRARY_VERSION, "library_version", 0, { -1 } },
[SECTION_ID_PACKETS] = { SECTION_ID_PACKETS, "packets", SECTION_FLAG_IS_ARRAY, { SECTION_ID_PACKET, -1} },
[SECTION_ID_PACKETS_AND_FRAMES] = { SECTION_ID_PACKETS_AND_FRAMES, "packets_and_frames", SECTION_FLAG_IS_ARRAY, { SECTION_ID_PACKET, -1} },
[SECTION_ID_PACKET] = { SECTION_ID_PACKET, "packet", 0, { -1 } },
[SECTION_ID_PIXEL_FORMATS] = { SECTION_ID_PIXEL_FORMATS, "pixel_formats", SECTION_FLAG_IS_ARRAY, { SECTION_ID_PIXEL_FORMAT, -1 } },
[SECTION_ID_PIXEL_FORMAT] = { SECTION_ID_PIXEL_FORMAT, "pixel_format", 0, { SECTION_ID_PIXEL_FORMAT_FLAGS, SECTION_ID_PIXEL_FORMAT_COMPONENTS, -1 } },
[SECTION_ID_PIXEL_FORMAT_FLAGS] = { SECTION_ID_PIXEL_FORMAT_FLAGS, "flags", 0, { -1 }, .unique_name = "pixel_format_flags" },
[SECTION_ID_PIXEL_FORMAT_COMPONENTS] = { SECTION_ID_PIXEL_FORMAT_COMPONENTS, "components", SECTION_FLAG_IS_ARRAY, {SECTION_ID_PIXEL_FORMAT_COMPONENT, -1 }, .unique_name = "pixel_format_components" },
[SECTION_ID_PIXEL_FORMAT_COMPONENT] = { SECTION_ID_PIXEL_FORMAT_COMPONENT, "component", 0, { -1 } },
[SECTION_ID_PROGRAM_STREAM_DISPOSITION] = { SECTION_ID_PROGRAM_STREAM_DISPOSITION, "disposition", 0, { -1 }, .unique_name = "program_stream_disposition" },
[SECTION_ID_PROGRAM_STREAM_TAGS] = { SECTION_ID_PROGRAM_STREAM_TAGS, "tags", SECTION_FLAG_HAS_VARIABLE_FIELDS, { -1 }, .element_name = "tag", .unique_name = "program_stream_tags" },
[SECTION_ID_PROGRAM] = { SECTION_ID_PROGRAM, "program", 0, { SECTION_ID_PROGRAM_TAGS, SECTION_ID_PROGRAM_STREAMS, -1 } },
@@ -169,7 +188,8 @@ static struct section sections[] = {
[SECTION_ID_PROGRAMS] = { SECTION_ID_PROGRAMS, "programs", SECTION_FLAG_IS_ARRAY, { SECTION_ID_PROGRAM, -1 } },
[SECTION_ID_ROOT] = { SECTION_ID_ROOT, "root", SECTION_FLAG_IS_WRAPPER,
{ SECTION_ID_CHAPTERS, SECTION_ID_FORMAT, SECTION_ID_FRAMES, SECTION_ID_PROGRAMS, SECTION_ID_STREAMS,
SECTION_ID_PACKETS, SECTION_ID_ERROR, SECTION_ID_PROGRAM_VERSION, SECTION_ID_LIBRARY_VERSIONS, -1} },
SECTION_ID_PACKETS, SECTION_ID_ERROR, SECTION_ID_PROGRAM_VERSION, SECTION_ID_LIBRARY_VERSIONS,
SECTION_ID_PIXEL_FORMATS, -1} },
[SECTION_ID_STREAMS] = { SECTION_ID_STREAMS, "streams", SECTION_FLAG_IS_ARRAY, { SECTION_ID_STREAM, -1 } },
[SECTION_ID_STREAM] = { SECTION_ID_STREAM, "stream", 0, { SECTION_ID_STREAM_DISPOSITION, SECTION_ID_STREAM_TAGS, -1 } },
[SECTION_ID_STREAM_DISPOSITION] = { SECTION_ID_STREAM_DISPOSITION, "disposition", 0, { -1 }, .unique_name = "stream_disposition" },
@@ -183,6 +203,8 @@ static const OptionDef *options;
static const char *input_filename;
static AVInputFormat *iformat = NULL;
static struct AVHashContext *hash;
static const char *const binary_unit_prefixes [] = { "", "Ki", "Mi", "Gi", "Ti", "Pi" };
static const char *const decimal_unit_prefixes[] = { "", "K" , "M" , "G" , "T" , "P" };
@@ -681,6 +703,21 @@ static void writer_print_data(WriterContext *wctx, const char *name,
av_bprint_finalize(&bp, NULL);
}
static void writer_print_data_hash(WriterContext *wctx, const char *name,
uint8_t *data, int size)
{
char *p, buf[AV_HASH_MAX_SIZE * 2 + 64] = { 0 };
if (!hash)
return;
av_hash_init(hash);
av_hash_update(hash, data, size);
snprintf(buf, sizeof(buf), "%s:", av_hash_get_name(hash));
p = buf + strlen(buf);
av_hash_final_hex(hash, p, buf + sizeof(buf) - p);
writer_print_string(wctx, name, buf, 0);
}
#define MAX_REGISTERED_WRITERS_NB 64
static const Writer *registered_writers[MAX_REGISTERED_WRITERS_NB + 1];
@@ -1688,6 +1725,7 @@ static void show_packet(WriterContext *w, AVFormatContext *fmt_ctx, AVPacket *pk
print_fmt("flags", "%c", pkt->flags & AV_PKT_FLAG_KEY ? 'K' : '_');
if (do_show_data)
writer_print_data(w, "data", pkt->data, pkt->size);
writer_print_data_hash(w, "data_hash", pkt->data, pkt->size);
writer_print_section_footer(w);
av_bprint_finalize(&pbuf, NULL);
@@ -1722,6 +1760,7 @@ static void show_frame(WriterContext *w, AVFrame *frame, AVStream *stream,
{
AVBPrint pbuf;
const char *s;
int i;
av_bprint_init(&pbuf, 1, AV_BPRINT_SIZE_UNLIMITED);
@@ -1784,6 +1823,20 @@ static void show_frame(WriterContext *w, AVFrame *frame, AVStream *stream,
}
if (do_show_frame_tags)
show_tags(w, av_frame_get_metadata(frame), SECTION_ID_FRAME_TAGS);
if (frame->nb_side_data) {
writer_print_section_header(w, SECTION_ID_FRAME_SIDE_DATA_LIST);
for (i = 0; i < frame->nb_side_data; i++) {
AVFrameSideData *sd = frame->side_data[i];
const char *name;
writer_print_section_header(w, SECTION_ID_FRAME_SIDE_DATA);
name = av_frame_side_data_name(sd->type);
print_str("side_data_type", name ? name : "unknown");
print_int("side_data_size", sd->size);
writer_print_section_footer(w);
}
writer_print_section_footer(w);
}
writer_print_section_footer(w);
@@ -2059,12 +2112,28 @@ static int show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_id
else print_str_opt("pix_fmt", "unknown");
print_int("level", dec_ctx->level);
if (dec_ctx->color_range != AVCOL_RANGE_UNSPECIFIED)
print_str ("color_range", dec_ctx->color_range == AVCOL_RANGE_MPEG ? "tv": "pc");
print_str ("color_range", av_color_range_name(dec_ctx->color_range));
else
print_str_opt("color_range", "N/A");
s = av_get_colorspace_name(dec_ctx->colorspace);
if (s) print_str ("color_space", s);
else print_str_opt("color_space", "unknown");
if (dec_ctx->color_trc != AVCOL_TRC_UNSPECIFIED)
print_str("color_transfer", av_color_transfer_name(dec_ctx->color_trc));
else
print_str_opt("color_transfer", av_color_transfer_name(dec_ctx->color_trc));
if (dec_ctx->color_primaries != AVCOL_PRI_UNSPECIFIED)
print_str("color_primaries", av_color_primaries_name(dec_ctx->color_primaries));
else
print_str_opt("color_primaries", av_color_primaries_name(dec_ctx->color_primaries));
if (dec_ctx->chroma_sample_location != AVCHROMA_LOC_UNSPECIFIED)
print_str("chroma_location", av_chroma_location_name(dec_ctx->chroma_sample_location));
else
print_str_opt("chroma_location", av_chroma_location_name(dec_ctx->chroma_sample_location));
if (dec_ctx->timecode_frame_start >= 0) {
char tcbuf[AV_TIMECODE_STR_SIZE];
av_timecode_make_mpeg_tc_string(tcbuf, dec_ctx->timecode_frame_start);
@@ -2131,6 +2200,8 @@ static int show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_id
else print_str_opt("bit_rate", "N/A");
if (dec_ctx->rc_max_rate > 0) print_val ("max_bit_rate", dec_ctx->rc_max_rate, unit_bit_per_second_str);
else print_str_opt("max_bit_rate", "N/A");
if (dec_ctx->bits_per_raw_sample > 0) print_fmt("bits_per_raw_sample", "%d", dec_ctx->bits_per_raw_sample);
else print_str_opt("bits_per_raw_sample", "N/A");
if (stream->nb_frames) print_fmt ("nb_frames", "%"PRId64, stream->nb_frames);
else print_str_opt("nb_frames", "N/A");
if (nb_streams_frames[stream_idx]) print_fmt ("nb_read_frames", "%"PRIu64, nb_streams_frames[stream_idx]);
@@ -2140,6 +2211,8 @@ static int show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_id
if (do_show_data)
writer_print_data(w, "extradata", dec_ctx->extradata,
dec_ctx->extradata_size);
writer_print_data_hash(w, "extradata_hash", dec_ctx->extradata,
dec_ctx->extradata_size);
/* Print disposition information */
#define PRINT_DISPOSITION(flagname, name) do { \
@@ -2313,12 +2386,19 @@ static int open_input_file(AVFormatContext **fmt_ctx_ptr, const char *filename)
AVFormatContext *fmt_ctx = NULL;
AVDictionaryEntry *t;
AVDictionary **opts;
int scan_all_pmts_set = 0;
if (!av_dict_get(format_opts, "scan_all_pmts", NULL, AV_DICT_MATCH_CASE)) {
av_dict_set(&format_opts, "scan_all_pmts", "1", AV_DICT_DONT_OVERWRITE);
scan_all_pmts_set = 1;
}
if ((err = avformat_open_input(&fmt_ctx, filename,
iformat, &format_opts)) < 0) {
print_error(filename, err);
return err;
}
if (scan_all_pmts_set)
av_dict_set(&format_opts, "scan_all_pmts", NULL, AV_DICT_MATCH_CASE);
if ((t = av_dict_get(format_opts, "", NULL, AV_DICT_IGNORE_SUFFIX))) {
av_log(NULL, AV_LOG_ERROR, "Option %s not found.\n", t->key);
return AVERROR_OPTION_NOT_FOUND;
@@ -2514,6 +2594,58 @@ static void ffprobe_show_library_versions(WriterContext *w)
writer_print_section_footer(w);
}
#define PRINT_PIX_FMT_FLAG(flagname, name) \
do { \
print_int(name, !!(pixdesc->flags & AV_PIX_FMT_FLAG_##flagname)); \
} while (0)
static void ffprobe_show_pixel_formats(WriterContext *w)
{
const AVPixFmtDescriptor *pixdesc = NULL;
int i, n;
writer_print_section_header(w, SECTION_ID_PIXEL_FORMATS);
while (pixdesc = av_pix_fmt_desc_next(pixdesc)) {
writer_print_section_header(w, SECTION_ID_PIXEL_FORMAT);
print_str("name", pixdesc->name);
print_int("nb_components", pixdesc->nb_components);
if ((pixdesc->nb_components >= 3) && !(pixdesc->flags & AV_PIX_FMT_FLAG_RGB)) {
print_int ("log2_chroma_w", pixdesc->log2_chroma_w);
print_int ("log2_chroma_h", pixdesc->log2_chroma_h);
} else {
print_str_opt("log2_chroma_w", "N/A");
print_str_opt("log2_chroma_h", "N/A");
}
n = av_get_bits_per_pixel(pixdesc);
if (n) print_int ("bits_per_pixel", n);
else print_str_opt("bits_per_pixel", "N/A");
if (do_show_pixel_format_flags) {
writer_print_section_header(w, SECTION_ID_PIXEL_FORMAT_FLAGS);
PRINT_PIX_FMT_FLAG(BE, "big_endian");
PRINT_PIX_FMT_FLAG(PAL, "palette");
PRINT_PIX_FMT_FLAG(BITSTREAM, "bitstream");
PRINT_PIX_FMT_FLAG(HWACCEL, "hwaccel");
PRINT_PIX_FMT_FLAG(PLANAR, "planar");
PRINT_PIX_FMT_FLAG(RGB, "rgb");
PRINT_PIX_FMT_FLAG(PSEUDOPAL, "pseudopal");
PRINT_PIX_FMT_FLAG(ALPHA, "alpha");
writer_print_section_footer(w);
}
if (do_show_pixel_format_components && (pixdesc->nb_components > 0)) {
writer_print_section_header(w, SECTION_ID_PIXEL_FORMAT_COMPONENTS);
for (i = 0; i < pixdesc->nb_components; i++) {
writer_print_section_header(w, SECTION_ID_PIXEL_FORMAT_COMPONENT);
print_int("index", i + 1);
print_int("bit_depth", pixdesc->comp[i].depth_minus1 + 1);
writer_print_section_footer(w);
}
writer_print_section_footer(w);
}
writer_print_section_footer(w);
}
writer_print_section_footer(w);
}
static int opt_format(void *optctx, const char *opt, const char *arg)
{
iformat = av_find_input_format(arg);
@@ -2847,6 +2979,7 @@ DEFINE_OPT_SHOW_SECTION(format, FORMAT);
DEFINE_OPT_SHOW_SECTION(frames, FRAMES);
DEFINE_OPT_SHOW_SECTION(library_versions, LIBRARY_VERSIONS);
DEFINE_OPT_SHOW_SECTION(packets, PACKETS);
DEFINE_OPT_SHOW_SECTION(pixel_formats, PIXEL_FORMATS);
DEFINE_OPT_SHOW_SECTION(program_version, PROGRAM_VERSION);
DEFINE_OPT_SHOW_SECTION(streams, STREAMS);
DEFINE_OPT_SHOW_SECTION(programs, PROGRAMS);
@@ -2868,6 +3001,7 @@ static const OptionDef real_options[] = {
{ "select_streams", OPT_STRING | HAS_ARG, {(void*)&stream_specifier}, "select the specified streams", "stream_specifier" },
{ "sections", OPT_EXIT, {.func_arg = opt_sections}, "print sections structure and section information, and exit" },
{ "show_data", OPT_BOOL, {(void*)&do_show_data}, "show packets data" },
{ "show_data_hash", OPT_STRING | HAS_ARG, {(void*)&show_data_hash}, "show packets data hash" },
{ "show_error", 0, {(void*)&opt_show_error}, "show probing error" },
{ "show_format", 0, {(void*)&opt_show_format}, "show format/container info" },
{ "show_frames", 0, {(void*)&opt_show_frames}, "show frames info" },
@@ -2884,6 +3018,7 @@ static const OptionDef real_options[] = {
{ "show_program_version", 0, {(void*)&opt_show_program_version}, "show ffprobe version" },
{ "show_library_versions", 0, {(void*)&opt_show_library_versions}, "show library versions" },
{ "show_versions", 0, {(void*)&opt_show_versions}, "show program and library versions" },
{ "show_pixel_formats", 0, {(void*)&opt_show_pixel_formats}, "show pixel format descriptions" },
{ "show_private_data", OPT_BOOL, {(void*)&show_private_data}, "show private data" },
{ "private", OPT_BOOL, {(void*)&show_private_data}, "same as show_private_data" },
{ "bitexact", OPT_BOOL, {&do_bitexact}, "force bitexact output" },
@@ -2940,6 +3075,9 @@ int main(int argc, char **argv)
SET_DO_SHOW(FRAMES, frames);
SET_DO_SHOW(LIBRARY_VERSIONS, library_versions);
SET_DO_SHOW(PACKETS, packets);
SET_DO_SHOW(PIXEL_FORMATS, pixel_formats);
SET_DO_SHOW(PIXEL_FORMAT_FLAGS, pixel_format_flags);
SET_DO_SHOW(PIXEL_FORMAT_COMPONENTS, pixel_format_components);
SET_DO_SHOW(PROGRAM_VERSION, program_version);
SET_DO_SHOW(PROGRAMS, programs);
SET_DO_SHOW(STREAMS, streams);
@@ -2971,6 +3109,21 @@ int main(int argc, char **argv)
w_name = av_strtok(print_format, "=", &buf);
w_args = buf;
if (show_data_hash) {
if ((ret = av_hash_alloc(&hash, show_data_hash)) < 0) {
if (ret == AVERROR(EINVAL)) {
const char *n;
av_log(NULL, AV_LOG_ERROR,
"Unknown hash algorithm '%s'\nKnown algorithms:",
show_data_hash);
for (i = 0; (n = av_hash_names(i)); i++)
av_log(NULL, AV_LOG_ERROR, " %s", n);
av_log(NULL, AV_LOG_ERROR, "\n");
}
goto end;
}
}
w = writer_get_by_name(w_name);
if (!w) {
av_log(NULL, AV_LOG_ERROR, "Unknown output format with name '%s'\n", w_name);
@@ -2989,10 +3142,12 @@ int main(int argc, char **argv)
ffprobe_show_program_version(wctx);
if (do_show_library_versions)
ffprobe_show_library_versions(wctx);
if (do_show_pixel_formats)
ffprobe_show_pixel_formats(wctx);
if (!input_filename &&
((do_show_format || do_show_programs || do_show_streams || do_show_chapters || do_show_packets || do_show_error) ||
(!do_show_program_version && !do_show_library_versions))) {
(!do_show_program_version && !do_show_library_versions && !do_show_pixel_formats))) {
show_usage();
av_log(NULL, AV_LOG_ERROR, "You have to specify one input file.\n");
av_log(NULL, AV_LOG_ERROR, "Use -h to get full help or, even better, run 'man %s'.\n", program_name);
@@ -3010,6 +3165,7 @@ int main(int argc, char **argv)
end:
av_freep(&print_format);
av_freep(&read_intervals);
av_hash_freep(&hash);
uninit_opts();
for (i = 0; i < FF_ARRAY_ELEMS(sections); i++)

1299
ffserver.c

File diff suppressed because it is too large Load Diff

1260
ffserver_config.c Normal file

File diff suppressed because it is too large Load Diff

133
ffserver_config.h Normal file
View File

@@ -0,0 +1,133 @@
/*
* Copyright (c) 2000, 2001, 2002 Fabrice Bellard
*
* This file is part of FFmpeg.
*
* FFmpeg is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* FFmpeg is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef FFSERVER_CONFIG_H
#define FFSERVER_CONFIG_H
#include "libavutil/dict.h"
#include "libavformat/avformat.h"
#include "libavformat/network.h"
#define FFSERVER_MAX_STREAMS 20
/* each generated stream is described here */
enum FFServerStreamType {
STREAM_TYPE_LIVE,
STREAM_TYPE_STATUS,
STREAM_TYPE_REDIRECT,
};
enum FFServerIPAddressAction {
IP_ALLOW = 1,
IP_DENY,
};
typedef struct FFServerIPAddressACL {
struct FFServerIPAddressACL *next;
enum FFServerIPAddressAction action;
/* These are in host order */
struct in_addr first;
struct in_addr last;
} FFServerIPAddressACL;
/* description of each stream of the ffserver.conf file */
typedef struct FFServerStream {
enum FFServerStreamType stream_type;
char filename[1024]; /* stream filename */
struct FFServerStream *feed; /* feed we are using (can be null if coming from file) */
AVDictionary *in_opts; /* input parameters */
AVDictionary *metadata; /* metadata to set on the stream */
AVInputFormat *ifmt; /* if non NULL, force input format */
AVOutputFormat *fmt;
FFServerIPAddressACL *acl;
char dynamic_acl[1024];
int nb_streams;
int prebuffer; /* Number of milliseconds early to start */
int64_t max_time; /* Number of milliseconds to run */
int send_on_key;
AVStream *streams[FFSERVER_MAX_STREAMS];
int feed_streams[FFSERVER_MAX_STREAMS]; /* index of streams in the feed */
char feed_filename[1024]; /* file name of the feed storage, or
input file name for a stream */
pid_t pid; /* Of ffmpeg process */
time_t pid_start; /* Of ffmpeg process */
char **child_argv;
struct FFServerStream *next;
unsigned bandwidth; /* bandwidth, in kbits/s */
/* RTSP options */
char *rtsp_option;
/* multicast specific */
int is_multicast;
struct in_addr multicast_ip;
int multicast_port; /* first port used for multicast */
int multicast_ttl;
int loop; /* if true, send the stream in loops (only meaningful if file) */
/* feed specific */
int feed_opened; /* true if someone is writing to the feed */
int is_feed; /* true if it is a feed */
int readonly; /* True if writing is prohibited to the file */
int truncate; /* True if feeder connection truncate the feed file */
int conns_served;
int64_t bytes_served;
int64_t feed_max_size; /* maximum storage size, zero means unlimited */
int64_t feed_write_index; /* current write position in feed (it wraps around) */
int64_t feed_size; /* current size of feed */
struct FFServerStream *next_feed;
} FFServerStream;
typedef struct FFServerConfig {
char *filename;
FFServerStream *first_feed; /* contains only feeds */
FFServerStream *first_stream; /* contains all streams, including feeds */
unsigned int nb_max_http_connections;
unsigned int nb_max_connections;
uint64_t max_bandwidth;
int debug;
char logfilename[1024];
struct sockaddr_in http_addr;
struct sockaddr_in rtsp_addr;
int errors;
int warnings;
int use_defaults;
// Following variables MUST NOT be used outside configuration parsing code.
enum AVCodecID guessed_audio_codec_id;
enum AVCodecID guessed_video_codec_id;
AVDictionary *video_opts; /* AVOptions for video encoder */
AVDictionary *audio_opts; /* AVOptions for audio encoder */
AVCodecContext *dummy_actx; /* Used internally to test audio AVOptions. */
AVCodecContext *dummy_vctx; /* Used internally to test video AVOptions. */
int no_audio;
int no_video;
int line_num;
int stream_use_defaults;
} FFServerConfig;
void ffserver_get_arg(char *buf, int buf_size, const char **pp);
void ffserver_parse_acl_row(FFServerStream *stream, FFServerStream* feed,
FFServerIPAddressACL *ext_acl,
const char *p, const char *filename, int line_num);
int ffserver_parse_ffconfig(const char *filename, FFServerConfig *config);
void ffserver_free_child_args(void *argsp);
#endif /* FFSERVER_CONFIG_H */

View File

@@ -339,21 +339,25 @@ static inline void mcdc(uint16_t *dst, const uint16_t *src, int log2w,
}
}
static int decode_p_block(FourXContext *f, uint16_t *dst, uint16_t *src,
static int decode_p_block(FourXContext *f, uint16_t *dst, const uint16_t *src,
int log2w, int log2h, int stride)
{
const int index = size2index[log2h][log2w];
const int h = 1 << log2h;
int code = get_vlc2(&f->gb,
block_type_vlc[1 - (f->version > 1)][index].table,
BLOCK_TYPE_VLC_BITS, 1);
uint16_t *start = f->last_frame_buffer;
uint16_t *end = start + stride * (f->avctx->height - h + 1) - (1 << log2w);
int ret;
int scale = 1;
int index, h, code, ret, scale = 1;
uint16_t *start, *end;
unsigned dc = 0;
av_assert0(code >= 0 && code <= 6 && log2w >= 0);
av_assert0(log2w >= 0 && log2h >= 0);
index = size2index[log2h][log2w];
av_assert0(index >= 0);
h = 1 << log2h;
code = get_vlc2(&f->gb, block_type_vlc[1 - (f->version > 1)][index].table,
BLOCK_TYPE_VLC_BITS, 1);
av_assert0(code >= 0 && code <= 6);
start = f->last_frame_buffer;
end = start + stride * (f->avctx->height - h + 1) - (1 << log2w);
if (code == 1) {
log2h--;

View File

@@ -101,7 +101,7 @@ static int eightsvx_decode_frame(AVCodecContext *avctx, void *data,
}
if (avpkt->size < (hdr_size + 1) * avctx->channels) {
av_log(avctx, AV_LOG_ERROR, "packet size is too small\n");
return AVERROR(EINVAL);
return AVERROR_INVALIDDATA;
}
esc->fib_acc[0] = avpkt->data[1] + 128;
@@ -124,7 +124,7 @@ static int eightsvx_decode_frame(AVCodecContext *avctx, void *data,
}
if (!esc->data[0]) {
av_log(avctx, AV_LOG_ERROR, "unexpected empty packet\n");
return AVERROR(EINVAL);
return AVERROR_INVALIDDATA;
}
/* decode next piece of data from the buffer */

View File

@@ -11,10 +11,12 @@ HEADERS = avcodec.h \
vda.h \
vdpau.h \
version.h \
vorbis_parser.h \
xvmc.h \
OBJS = allcodecs.o \
audioconvert.o \
avdct.o \
avpacket.o \
avpicture.o \
bitstream.o \
@@ -30,8 +32,10 @@ OBJS = allcodecs.o \
resample.o \
resample2.o \
utils.o \
vorbis_parser.o \
xiph.o \
# parts needed for many different codecs
# subsystems
OBJS-$(CONFIG_AANDCTTABLES) += aandcttab.o
OBJS-$(CONFIG_AC3DSP) += ac3dsp.o
OBJS-$(CONFIG_AUDIO_FRAME_QUEUE) += audio_frame_queue.o
@@ -41,12 +45,11 @@ OBJS-$(CONFIG_BSWAPDSP) += bswapdsp.o
OBJS-$(CONFIG_CABAC) += cabac.o
OBJS-$(CONFIG_CRYSTALHD) += crystalhd.o
OBJS-$(CONFIG_DCT) += dct.o dct32_fixed.o dct32_float.o
OBJS-$(CONFIG_DSPUTIL) += dsputil.o
OBJS-$(CONFIG_DXVA2) += dxva2.o
OBJS-$(CONFIG_ERROR_RESILIENCE) += error_resilience.o
OBJS-$(CONFIG_EXIF) += exif.o tiff_common.o
OBJS-$(CONFIG_FDCTDSP) += fdctdsp.o faandct.o \
jfdctfst.o jfdctint.o
OBJS-$(CONFIG_FAANDCT) += faandct.o
OBJS-$(CONFIG_FAANIDCT) += faanidct.o
OBJS-$(CONFIG_FDCTDSP) += fdctdsp.o jfdctfst.o jfdctint.o
FFT-OBJS-$(CONFIG_HARDCODED_TABLES) += cos_tables.o cos_fixed_tables.o
OBJS-$(CONFIG_FFT) += avfft.o fft_fixed.o fft_float.o \
fft_fixed_32.o fft_init_table.o \
@@ -54,15 +57,15 @@ OBJS-$(CONFIG_FFT) += avfft.o fft_fixed.o fft_float.o \
OBJS-$(CONFIG_GOLOMB) += golomb.o
OBJS-$(CONFIG_H263DSP) += h263dsp.o
OBJS-$(CONFIG_H264CHROMA) += h264chroma.o
OBJS-$(CONFIG_H264DSP) += h264dsp.o h264idct.o startcode.o
OBJS-$(CONFIG_H264DSP) += h264dsp.o h264idct.o
OBJS-$(CONFIG_H264PRED) += h264pred.o
OBJS-$(CONFIG_H264QPEL) += h264qpel.o
OBJS-$(CONFIG_HPELDSP) += hpeldsp.o
OBJS-$(CONFIG_HUFFMAN) += huffman.o
OBJS-$(CONFIG_HUFFYUVDSP) += huffyuvdsp.o
OBJS-$(CONFIG_HUFFYUVENCDSP) += huffyuvencdsp.o
OBJS-$(CONFIG_IDCTDSP) += idctdsp.o faanidct.o \
simple_idct.o jrevdct.o
OBJS-$(CONFIG_IDCTDSP) += idctdsp.o simple_idct.o jrevdct.o
OBJS-$(CONFIG_IIRFILTER) += iirfilter.o
OBJS-$(CONFIG_INTRAX8) += intrax8.o intrax8dsp.o
OBJS-$(CONFIG_LIBXVID) += libxvid_rc.o
OBJS-$(CONFIG_LLAUDDSP) += lossless_audiodsp.o
@@ -70,6 +73,7 @@ OBJS-$(CONFIG_LLVIDDSP) += lossless_videodsp.o
OBJS-$(CONFIG_LPC) += lpc.o
OBJS-$(CONFIG_LSP) += lsp.o
OBJS-$(CONFIG_MDCT) += mdct_fixed.o mdct_float.o mdct_fixed_32.o
OBJS-$(CONFIG_ME_CMP) += me_cmp.o
OBJS-$(CONFIG_MPEG_ER) += mpeg_er.o
OBJS-$(CONFIG_MPEGAUDIO) += mpegaudio.o mpegaudiodata.o \
mpegaudiodecheader.o
@@ -89,12 +93,11 @@ 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_STARTCODE) += startcode.o
OBJS-$(CONFIG_TPELDSP) += tpeldsp.o
OBJS-$(CONFIG_VAAPI) += vaapi.o
OBJS-$(CONFIG_VDA) += vda.o
OBJS-$(CONFIG_VDPAU) += vdpau.o
OBJS-$(CONFIG_VIDEODSP) += videodsp.o
OBJS-$(CONFIG_VP3DSP) += vp3dsp.o
OBJS-$(CONFIG_WMA_FREQS) += wma_freqs.o
# decoders/encoders
OBJS-$(CONFIG_ZERO12V_DECODER) += 012v.o
@@ -105,8 +108,7 @@ OBJS-$(CONFIG_AAC_DECODER) += aacdec.o aactab.o aacsbr.o aacps.o \
sbrdsp.o aacpsdsp.o
OBJS-$(CONFIG_AAC_ENCODER) += aacenc.o aaccoder.o \
aacpsy.o aactab.o \
psymodel.o iirfilter.o \
mpeg4audio.o kbdwin.o
psymodel.o mpeg4audio.o kbdwin.o
OBJS-$(CONFIG_AASC_DECODER) += aasc.o msrledec.o
OBJS-$(CONFIG_AC3_DECODER) += ac3dec_float.o ac3dec_data.o ac3.o kbdwin.o
OBJS-$(CONFIG_AC3_FIXED_DECODER) += ac3dec_fixed.o ac3dec_data.o ac3.o kbdwin.o
@@ -134,6 +136,7 @@ OBJS-$(CONFIG_AMV_ENCODER) += mjpegenc.o mjpeg.o mjpegenc_common.o \
OBJS-$(CONFIG_ANM_DECODER) += anm.o
OBJS-$(CONFIG_ANSI_DECODER) += ansi.o cga_data.o
OBJS-$(CONFIG_APE_DECODER) += apedec.o
OBJS-$(CONFIG_APNG_DECODER) += png.o pngdec.o pngdsp.o
OBJS-$(CONFIG_SSA_DECODER) += assdec.o ass.o ass_split.o
OBJS-$(CONFIG_SSA_ENCODER) += assenc.o ass.o
OBJS-$(CONFIG_ASS_DECODER) += assdec.o ass.o ass_split.o
@@ -159,8 +162,8 @@ OBJS-$(CONFIG_AYUV_ENCODER) += v408enc.o
OBJS-$(CONFIG_BETHSOFTVID_DECODER) += bethsoftvideo.o
OBJS-$(CONFIG_BFI_DECODER) += bfi.o
OBJS-$(CONFIG_BINK_DECODER) += bink.o binkdsp.o
OBJS-$(CONFIG_BINKAUDIO_DCT_DECODER) += binkaudio.o wma.o wma_common.o
OBJS-$(CONFIG_BINKAUDIO_RDFT_DECODER) += binkaudio.o wma.o wma_common.o
OBJS-$(CONFIG_BINKAUDIO_DCT_DECODER) += binkaudio.o
OBJS-$(CONFIG_BINKAUDIO_RDFT_DECODER) += binkaudio.o
OBJS-$(CONFIG_BINTEXT_DECODER) += bintext.o cga_data.o
OBJS-$(CONFIG_BMP_DECODER) += bmp.o msrledec.o
OBJS-$(CONFIG_BMP_ENCODER) += bmpenc.o
@@ -277,7 +280,7 @@ OBJS-$(CONFIG_INTERPLAY_VIDEO_DECODER) += interplayvideo.o
OBJS-$(CONFIG_JACOSUB_DECODER) += jacosubdec.o ass.o
OBJS-$(CONFIG_JPEG2000_ENCODER) += j2kenc.o mqcenc.o mqc.o jpeg2000.o \
jpeg2000dwt.o
OBJS-$(CONFIG_JPEG2000_DECODER) += jpeg2000dec.o jpeg2000.o \
OBJS-$(CONFIG_JPEG2000_DECODER) += jpeg2000dec.o jpeg2000.o jpeg2000dsp.o \
jpeg2000dwt.o mqcdec.o mqc.o
OBJS-$(CONFIG_JPEGLS_DECODER) += jpeglsdec.o jpegls.o
OBJS-$(CONFIG_JPEGLS_ENCODER) += jpeglsenc.o jpegls.o
@@ -318,12 +321,12 @@ OBJS-$(CONFIG_MP3ON4_DECODER) += mpegaudiodec_fixed.o mpeg4audio.o
OBJS-$(CONFIG_MP3ON4FLOAT_DECODER) += mpegaudiodec_float.o mpeg4audio.o
OBJS-$(CONFIG_MPC7_DECODER) += mpc7.o mpc.o
OBJS-$(CONFIG_MPC8_DECODER) += mpc8.o mpc.o
OBJS-$(CONFIG_MPEGVIDEO_DECODER) += mpeg12.o mpeg12data.o \
mpegvideo.o error_resilience.o
OBJS-$(CONFIG_MPEGVIDEO_DECODER) += mpeg12dec.o mpeg12.o mpeg12data.o
OBJS-$(CONFIG_MPEG1VIDEO_DECODER) += mpeg12dec.o mpeg12.o mpeg12data.o
OBJS-$(CONFIG_MPEG1VIDEO_ENCODER) += mpeg12enc.o mpeg12.o
OBJS-$(CONFIG_MPEG2VIDEO_DECODER) += mpeg12dec.o mpeg12.o mpeg12data.o
OBJS-$(CONFIG_MPEG2VIDEO_ENCODER) += mpeg12enc.o mpeg12.o
OBJS-$(CONFIG_MPEG4_DECODER) += xvididct.o
OBJS-$(CONFIG_MPL2_DECODER) += mpl2dec.o ass.o
OBJS-$(CONFIG_MSMPEG4V1_DECODER) += msmpeg4dec.o msmpeg4.o msmpeg4data.o
OBJS-$(CONFIG_MSMPEG4V2_DECODER) += msmpeg4dec.o msmpeg4.o msmpeg4data.o
@@ -430,6 +433,7 @@ OBJS-$(CONFIG_SONIC_LS_ENCODER) += sonic.o
OBJS-$(CONFIG_SP5X_DECODER) += sp5xdec.o
OBJS-$(CONFIG_SRT_DECODER) += srtdec.o ass.o
OBJS-$(CONFIG_SRT_ENCODER) += srtenc.o ass_split.o
OBJS-$(CONFIG_STL_DECODER) += textdec.o ass.o
OBJS-$(CONFIG_SUBRIP_DECODER) += srtdec.o ass.o
OBJS-$(CONFIG_SUBRIP_ENCODER) += srtenc.o ass_split.o
OBJS-$(CONFIG_SUBVIEWER1_DECODER) += textdec.o ass.o
@@ -445,7 +449,6 @@ OBJS-$(CONFIG_TAK_DECODER) += takdec.o tak.o
OBJS-$(CONFIG_TARGA_DECODER) += targa.o
OBJS-$(CONFIG_TARGA_ENCODER) += targaenc.o rle.o
OBJS-$(CONFIG_TARGA_Y216_DECODER) += targa_y216dec.o
OBJS-$(CONFIG_THEORA_DECODER) += xiph.o
OBJS-$(CONFIG_TIERTEXSEQVIDEO_DECODER) += tiertexseqv.o
OBJS-$(CONFIG_TIFF_DECODER) += tiff.o lzw.o faxcompr.o tiff_data.o tiff_common.o
OBJS-$(CONFIG_TIFF_ENCODER) += tiffenc.o rle.o lzwenc.o tiff_data.o
@@ -474,15 +477,17 @@ OBJS-$(CONFIG_V410_ENCODER) += v410enc.o
OBJS-$(CONFIG_V210X_DECODER) += v210x.o
OBJS-$(CONFIG_VB_DECODER) += vb.o
OBJS-$(CONFIG_VBLE_DECODER) += vble.o
OBJS-$(CONFIG_VC1_DECODER) += vc1dec.o vc1.o vc1data.o vc1dsp.o \
OBJS-$(CONFIG_VC1_DECODER) += vc1dec.o vc1_block.o vc1_loopfilter.o \
vc1_mc.o vc1_pred.o vc1.o vc1data.o \
vc1dsp.o \
msmpeg4dec.o msmpeg4.o msmpeg4data.o \
wmv2dsp.o startcode.o
wmv2dsp.o
OBJS-$(CONFIG_VCR1_DECODER) += vcr1.o
OBJS-$(CONFIG_VMDAUDIO_DECODER) += vmdaudio.o
OBJS-$(CONFIG_VMDVIDEO_DECODER) += vmdvideo.o
OBJS-$(CONFIG_VMNC_DECODER) += vmnc.o
OBJS-$(CONFIG_VORBIS_DECODER) += vorbisdec.o vorbisdsp.o vorbis.o \
vorbis_data.o xiph.o
vorbis_data.o
OBJS-$(CONFIG_VORBIS_ENCODER) += vorbisenc.o vorbis.o \
vorbis_data.o
OBJS-$(CONFIG_VP3_DECODER) += vp3.o
@@ -499,7 +504,7 @@ OBJS-$(CONFIG_WAVPACK_DECODER) += wavpack.o
OBJS-$(CONFIG_WAVPACK_ENCODER) += wavpackenc.o
OBJS-$(CONFIG_WEBP_DECODER) += vp8.o vp8dsp.o vp56rac.o
OBJS-$(CONFIG_WEBP_DECODER) += webp.o exif.o tiff_common.o
OBJS-$(CONFIG_WEBVTT_DECODER) += webvttdec.o
OBJS-$(CONFIG_WEBVTT_DECODER) += webvttdec.o ass.o
OBJS-$(CONFIG_WEBVTT_ENCODER) += webvttenc.o ass_split.o
OBJS-$(CONFIG_WMALOSSLESS_DECODER) += wmalosslessdec.o wma_common.o
OBJS-$(CONFIG_WMAPRO_DECODER) += wmaprodec.o wma.o wma_common.o
@@ -647,6 +652,11 @@ OBJS-$(CONFIG_ADPCM_YAMAHA_ENCODER) += adpcmenc.o adpcm_data.o
OBJS-$(CONFIG_VIMA_DECODER) += vima.o adpcm_data.o
# hardware accelerators
OBJS-$(CONFIG_DXVA2) += dxva2.o
OBJS-$(CONFIG_VAAPI) += vaapi.o
OBJS-$(CONFIG_VDA) += vda.o
OBJS-$(CONFIG_VDPAU) += vdpau.o
OBJS-$(CONFIG_H263_VAAPI_HWACCEL) += vaapi_mpeg4.o vaapi_mpeg.o
OBJS-$(CONFIG_H263_VDPAU_HWACCEL) += vdpau_mpeg4.o
OBJS-$(CONFIG_H264_DXVA2_HWACCEL) += dxva2_h264.o
@@ -669,20 +679,18 @@ OBJS-$(CONFIG_VC1_VDPAU_HWACCEL) += vdpau_vc1.o
OBJS-$(CONFIG_ADTS_MUXER) += mpeg4audio.o
OBJS-$(CONFIG_CAF_DEMUXER) += mpeg4audio.o mpegaudiodata.o \
ac3tab.o
OBJS-$(CONFIG_FLAC_DEMUXER) += flac.o flacdata.o vorbis_data.o \
vorbis_parser.o xiph.o
OBJS-$(CONFIG_FLAC_DEMUXER) += flac.o flacdata.o vorbis_data.o
OBJS-$(CONFIG_FLAC_MUXER) += flac.o flacdata.o vorbis_data.o
OBJS-$(CONFIG_FLV_DEMUXER) += mpeg4audio.o
OBJS-$(CONFIG_GXF_DEMUXER) += mpeg12data.o
OBJS-$(CONFIG_IFF_DEMUXER) += iff.o
OBJS-$(CONFIG_ISMV_MUXER) += mpeg4audio.o mpegaudiodata.o
OBJS-$(CONFIG_LATM_MUXER) += mpeg4audio.o
OBJS-$(CONFIG_MATROSKA_AUDIO_MUXER) += xiph.o mpeg4audio.o vorbis_data.o \
OBJS-$(CONFIG_MATROSKA_AUDIO_MUXER) += mpeg4audio.o vorbis_data.o \
flac.o flacdata.o
OBJS-$(CONFIG_MATROSKA_DEMUXER) += mpeg4audio.o mpegaudiodata.o \
vorbis_parser.o xiph.o
OBJS-$(CONFIG_MATROSKA_DEMUXER) += mpeg4audio.o mpegaudiodata.o
OBJS-$(CONFIG_MATROSKA_MUXER) += mpeg4audio.o mpegaudiodata.o \
flac.o flacdata.o vorbis_data.o xiph.o
flac.o flacdata.o vorbis_data.o
OBJS-$(CONFIG_MP2_MUXER) += mpegaudiodata.o mpegaudiodecheader.o
OBJS-$(CONFIG_MP3_MUXER) += mpegaudiodata.o mpegaudiodecheader.o
OBJS-$(CONFIG_MOV_DEMUXER) += mpeg4audio.o mpegaudiodata.o ac3tab.o
@@ -691,19 +699,18 @@ OBJS-$(CONFIG_MPEGTS_MUXER) += mpeg4audio.o
OBJS-$(CONFIG_MPEGTS_DEMUXER) += mpeg4audio.o mpegaudiodata.o
OBJS-$(CONFIG_MXF_MUXER) += dnxhddata.o
OBJS-$(CONFIG_NUT_MUXER) += mpegaudiodata.o
OBJS-$(CONFIG_OGA_MUXER) += xiph.o flac.o flacdata.o
OBJS-$(CONFIG_OGG_DEMUXER) += xiph.o flac.o flacdata.o \
mpeg12data.o vorbis_parser.o \
OBJS-$(CONFIG_OGA_MUXER) += flac.o flacdata.o
OBJS-$(CONFIG_OGG_DEMUXER) += mpeg12data.o \
dirac.o vorbis_data.o
OBJS-$(CONFIG_OGG_MUXER) += xiph.o flac.o flacdata.o \
OBJS-$(CONFIG_OGG_MUXER) += flac.o flacdata.o \
vorbis_data.o
OBJS-$(CONFIG_RTP_MUXER) += mpeg4audio.o xiph.o
OBJS-$(CONFIG_RTP_MUXER) += mpeg4audio.o
OBJS-$(CONFIG_RTPDEC) += mjpeg.o
OBJS-$(CONFIG_SPDIF_DEMUXER) += aacadtsdec.o mpeg4audio.o
OBJS-$(CONFIG_SPDIF_MUXER) += dca.o
OBJS-$(CONFIG_TAK_DEMUXER) += tak.o
OBJS-$(CONFIG_WEBM_MUXER) += mpeg4audio.o mpegaudiodata.o \
xiph.o flac.o flacdata.o \
flac.o flacdata.o \
vorbis_data.o
OBJS-$(CONFIG_WTV_DEMUXER) += mpeg4audio.o mpegaudiodata.o
@@ -716,10 +723,10 @@ OBJS-$(CONFIG_LIBCELT_DECODER) += libcelt_dec.o
OBJS-$(CONFIG_LIBFAAC_ENCODER) += libfaac.o
OBJS-$(CONFIG_LIBFDK_AAC_DECODER) += libfdk-aacdec.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_LIBGSM_DECODER) += libgsmdec.o
OBJS-$(CONFIG_LIBGSM_ENCODER) += libgsmenc.o
OBJS-$(CONFIG_LIBGSM_MS_DECODER) += libgsmdec.o
OBJS-$(CONFIG_LIBGSM_MS_ENCODER) += libgsmenc.o
OBJS-$(CONFIG_LIBILBC_DECODER) += libilbc.o
OBJS-$(CONFIG_LIBILBC_ENCODER) += libilbc.o
OBJS-$(CONFIG_LIBMP3LAME_ENCODER) += libmp3lame.o mpegaudiodecheader.o
@@ -748,7 +755,7 @@ 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 \
vorbis_data.o vorbis_parser.o xiph.o
vorbis_data.o
OBJS-$(CONFIG_LIBVPX_VP8_DECODER) += libvpxdec.o
OBJS-$(CONFIG_LIBVPX_VP8_ENCODER) += libvpxenc.o
OBJS-$(CONFIG_LIBVPX_VP9_DECODER) += libvpxdec.o libvpx.o
@@ -803,8 +810,7 @@ OBJS-$(CONFIG_RV40_PARSER) += rv34_parser.o
OBJS-$(CONFIG_TAK_PARSER) += tak_parser.o tak.o
OBJS-$(CONFIG_VC1_PARSER) += vc1_parser.o vc1.o vc1data.o vc1dsp.o \
msmpeg4.o msmpeg4data.o mpeg4video.o \
h263.o startcode.o
OBJS-$(CONFIG_VORBIS_PARSER) += vorbis_parser.o xiph.o
h263.o
OBJS-$(CONFIG_VP3_PARSER) += vp3_parser.o
OBJS-$(CONFIG_VP8_PARSER) += vp8_parser.o
OBJS-$(CONFIG_VP9_PARSER) += vp9_parser.o
@@ -851,24 +857,25 @@ SKIPHEADERS-$(CONFIG_VAAPI) += vaapi_internal.h
SKIPHEADERS-$(CONFIG_VDA) += vda.h vda_internal.h
SKIPHEADERS-$(CONFIG_VDPAU) += vdpau.h vdpau_internal.h
TESTPROGS = cabac \
fft \
fft-fixed \
fft-fixed32 \
golomb \
iirfilter \
imgconvert \
rangecoder \
snowenc \
TESTPROGS = imgconvert \
TESTPROGS-$(CONFIG_CABAC) += cabac
TESTPROGS-$(CONFIG_FFT) += fft fft-fixed fft-fixed32
TESTPROGS-$(CONFIG_IDCTDSP) += dct
TESTPROGS-$(CONFIG_IIRFILTER) += iirfilter
TESTPROGS-$(HAVE_MMX) += motion
TESTPROGS-$(CONFIG_GOLOMB) += golomb
TESTPROGS-$(CONFIG_RANGECODER) += rangecoder
TESTPROGS-$(CONFIG_SNOW_ENCODER) += snowenc
TESTPROGS-$(CONFIG_DCT) += dct
TESTPROGS-$(HAVE_MMX) += motion
TESTOBJS = dctref.o
TOOLS = fourcc2pixfmt
HOSTPROGS = aac_tablegen \
aacps_tablegen \
aacsbr_tablegen \
cabac_tablegen \
cbrt_tablegen \
cos_tablegen \
dsd_tablegen \
@@ -896,7 +903,7 @@ else
$(SUBDIR)%_tablegen$(HOSTEXESUF): HOSTCFLAGS += -DCONFIG_SMALL=0
endif
GEN_HEADERS = cbrt_tables.h aacps_tables.h aac_tables.h dsd_tables.h dv_tables.h \
GEN_HEADERS = cabac_tables.h cbrt_tables.h aacps_tables.h aacsbr_tables.h aac_tables.h dsd_tables.h dv_tables.h \
sinewin_tables.h mpegaudio_tables.h motionpixels_tables.h \
pcm_tables.h qdm2_tables.h
GEN_HEADERS := $(addprefix $(SUBDIR), $(GEN_HEADERS))
@@ -907,7 +914,9 @@ $(GEN_HEADERS): $(SUBDIR)%_tables.h: $(SUBDIR)%_tablegen$(HOSTEXESUF)
ifdef CONFIG_HARDCODED_TABLES
$(SUBDIR)aacdec.o: $(SUBDIR)cbrt_tables.h
$(SUBDIR)aacps.o: $(SUBDIR)aacps_tables.h
$(SUBDIR)aacsbr.o: $(SUBDIR)aacsbr_tables.h
$(SUBDIR)aactab.o: $(SUBDIR)aac_tables.h
$(SUBDIR)cabac.o: $(SUBDIR)cabac_tables.h
$(SUBDIR)dsddec.o: $(SUBDIR)dsd_tables.h
$(SUBDIR)dvenc.o: $(SUBDIR)dv_tables.h
$(SUBDIR)sinewin.o: $(SUBDIR)sinewin_tables.h

View File

@@ -187,11 +187,11 @@ static av_cold int a64multi_close_encoder(AVCodecContext *avctx)
{
A64Context *c = avctx->priv_data;
av_frame_free(&avctx->coded_frame);
av_free(c->mc_meta_charset);
av_free(c->mc_best_cb);
av_free(c->mc_charset);
av_free(c->mc_charmap);
av_free(c->mc_colram);
av_freep(&c->mc_meta_charset);
av_freep(&c->mc_best_cb);
av_freep(&c->mc_charset);
av_freep(&c->mc_charmap);
av_freep(&c->mc_colram);
return 0;
}
@@ -351,7 +351,6 @@ static int a64multi_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
/* advance pointers */
buf += charset_size;
charset += charset_size;
}
/* write x frames to buf */

View File

@@ -245,6 +245,7 @@ typedef struct SingleChannelElement {
* channel element - generic struct for SCE/CPE/CCE/LFE
*/
typedef struct ChannelElement {
int present;
// CPE specific
int common_window; ///< Set if channels share a common 'IndividualChannelStream' in bitstream.
int ms_mode; ///< Signals mid/side stereo flags coding mode (used by encoder)
@@ -274,6 +275,7 @@ struct AACContext {
ChannelElement *che[4][MAX_ELEM_ID];
ChannelElement *tag_che_map[4][MAX_ELEM_ID];
int tags_mapped;
int warned_remapping_once;
/** @} */
/**
@@ -293,7 +295,7 @@ struct AACContext {
FFTContext mdct_ld;
FFTContext mdct_ltp;
FmtConvertContext fmt_conv;
AVFloatDSPContext fdsp;
AVFloatDSPContext *fdsp;
int random_state;
/** @} */

View File

@@ -57,7 +57,7 @@ static int aac_adtstoasc_filter(AVBitStreamFilterContext *bsfc,
if (avpriv_aac_parse_header(&gb, &hdr) < 0) {
av_log(avctx, AV_LOG_ERROR, "Error parsing ADTS frame header!\n");
return -1;
return AVERROR_INVALIDDATA;
}
if (!hdr.crc_absent && hdr.num_aac_frames > 1) {

View File

@@ -34,7 +34,7 @@ static int aac_sync(uint64_t state, AACAC3ParseContext *hdr_info,
int size;
union {
uint64_t u64;
uint8_t u8[8];
uint8_t u8[8 + FF_INPUT_BUFFER_PADDING_SIZE];
} tmp;
tmp.u64 = av_be2ne64(state);

View File

@@ -31,7 +31,7 @@
#include "libavutil/mathematics.h"
float ff_aac_pow2sf_tab[428];
void ff_aac_tableinit(void)
av_cold void ff_aac_tableinit(void)
{
int i;
for (i = 0; i < 428; i++)

View File

@@ -53,7 +53,7 @@ static const uint8_t run_value_bits_short[16] = {
3, 3, 3, 3, 3, 3, 3, 6, 6, 6, 6, 6, 6, 6, 6, 9
};
static const uint8_t *run_value_bits[2] = {
static const uint8_t * const run_value_bits[2] = {
run_value_bits_long, run_value_bits_short
};
@@ -776,7 +776,6 @@ static void search_for_quantizers_twoloop(AVCodecContext *avctx,
do {
int prev = -1;
tbits = 0;
fflag = 0;
for (w = 0; w < sce->ics.num_windows; w += sce->ics.group_len[w]) {
start = w*128;
for (g = 0; g < sce->ics.num_swb; g++) {
@@ -953,7 +952,6 @@ static void search_for_quantizers_faac(AVCodecContext *avctx, AACEncContext *s,
}
sce->zeroes[w*16+g] = 0;
scf = prev_scf = av_clip(SCALE_ONE_POS - SCALE_DIV_512 - log2f(1/maxq[w*16+g])*16/3, 60, 218);
step = 16;
for (;;) {
float dist = 0.0f;
int quant_max;

View File

@@ -621,6 +621,12 @@ static ChannelElement *get_che(AACContext *ac, int type, int elem_id)
* If we seem to have encountered such a stream, transfer
* the LFE[0] element to the SCE[1]'s mapping */
if (ac->tags_mapped == tags_per_config[ac->oc[1].m4ac.chan_config] - 1 && (type == TYPE_LFE || type == TYPE_SCE)) {
if (!ac->warned_remapping_once && (type != TYPE_LFE || elem_id != 0)) {
av_log(ac->avctx, AV_LOG_WARNING,
"This stream seems to incorrectly report its last channel as %s[%d], mapping to LFE[0]\n",
type == TYPE_SCE ? "SCE" : "LFE", elem_id);
ac->warned_remapping_once++;
}
ac->tags_mapped++;
return ac->tag_che_map[type][elem_id] = ac->che[TYPE_LFE][0];
}
@@ -630,6 +636,22 @@ static ChannelElement *get_che(AACContext *ac, int type, int elem_id)
return ac->tag_che_map[TYPE_CPE][elem_id] = ac->che[TYPE_CPE][1];
}
case 4:
/* Some streams incorrectly code 4.0 audio as
* SCE[0] CPE[0] LFE[0]
* instead of
* SCE[0] CPE[0] SCE[1].
* If we seem to have encountered such a stream, transfer
* the SCE[1] element to the LFE[0]'s mapping */
if (ac->tags_mapped == tags_per_config[ac->oc[1].m4ac.chan_config] - 1 && (type == TYPE_LFE || type == TYPE_SCE)) {
if (!ac->warned_remapping_once && (type != TYPE_SCE || elem_id != 1)) {
av_log(ac->avctx, AV_LOG_WARNING,
"This stream seems to incorrectly report its last channel as %s[%d], mapping to SCE[1]\n",
type == TYPE_SCE ? "SCE" : "LFE", elem_id);
ac->warned_remapping_once++;
}
ac->tags_mapped++;
return ac->tag_che_map[type][elem_id] = ac->che[TYPE_SCE][1];
}
if (ac->tags_mapped == 2 &&
ac->oc[1].m4ac.chan_config == 4 &&
type == TYPE_SCE) {
@@ -681,6 +703,7 @@ static void decode_channel_map(uint8_t layout_map[][3],
syn_ele = TYPE_LFE;
break;
default:
// AAC_CHANNEL_OFF has no channel map
av_assert0(0);
}
layout_map[0][0] = syn_ele;
@@ -1114,7 +1137,10 @@ static av_cold int aac_decode_init(AVCodecContext *avctx)
ff_aac_sbr_init();
ff_fmt_convert_init(&ac->fmt_conv, avctx);
avpriv_float_dsp_init(&ac->fdsp, avctx->flags & CODEC_FLAG_BITEXACT);
ac->fdsp = avpriv_float_dsp_alloc(avctx->flags & CODEC_FLAG_BITEXACT);
if (!ac->fdsp) {
return AVERROR(ENOMEM);
}
ac->random_state = 0x1f2e3d4c;
@@ -1490,13 +1516,12 @@ static void decode_mid_side_stereo(ChannelElement *cpe, GetBitContext *gb,
int ms_present)
{
int idx;
int max_idx = cpe->ch[0].ics.num_window_groups * cpe->ch[0].ics.max_sfb;
if (ms_present == 1) {
for (idx = 0;
idx < cpe->ch[0].ics.num_window_groups * cpe->ch[0].ics.max_sfb;
idx++)
for (idx = 0; idx < max_idx; idx++)
cpe->ms_mask[idx] = get_bits1(gb);
} else if (ms_present == 2) {
memset(cpe->ms_mask, 1, sizeof(cpe->ms_mask[0]) * cpe->ch[0].ics.num_window_groups * cpe->ch[0].ics.max_sfb);
memset(cpe->ms_mask, 1, max_idx * sizeof(cpe->ms_mask[0]));
}
}
@@ -1618,9 +1643,9 @@ static int decode_spectrum_and_dequant(AACContext *ac, float coef[1024],
cfo[k] = ac->random_state;
}
band_energy = ac->fdsp.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);
ac->fdsp->vector_fmul_scalar(cfo, cfo, scale, off_len);
}
} else {
const float *vq = ff_aac_codebook_vector_vals[cbt_m1];
@@ -1766,7 +1791,7 @@ static int decode_spectrum_and_dequant(AACContext *ac, float coef[1024],
}
} while (len -= 2);
ac->fdsp.vector_fmul_scalar(cfo, cfo, sf[idx], off_len);
ac->fdsp->vector_fmul_scalar(cfo, cfo, sf[idx], off_len);
}
}
@@ -1979,7 +2004,7 @@ static void apply_mid_side_stereo(AACContext *ac, ChannelElement *cpe)
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->fdsp.butterflies_float(ch0 + group * 128 + offsets[i],
ac->fdsp->butterflies_float(ch0 + group * 128 + offsets[i],
ch1 + group * 128 + offsets[i],
offsets[i+1] - offsets[i]);
}
@@ -2018,7 +2043,7 @@ static void apply_intensity_stereo(AACContext *ac,
c *= 1 - 2 * cpe->ms_mask[idx];
scale = c * sce1->sf[idx];
for (group = 0; group < ics->group_len[g]; group++)
ac->fdsp.vector_fmul_scalar(coef1 + group * 128 + offsets[i],
ac->fdsp->vector_fmul_scalar(coef1 + group * 128 + offsets[i],
coef0 + group * 128 + offsets[i],
scale,
offsets[i + 1] - offsets[i]);
@@ -2268,7 +2293,12 @@ static int decode_extension_payload(AACContext *ac, GetBitContext *gb, int cnt,
{
int crc_flag = 0;
int res = cnt;
switch (get_bits(gb, 4)) { // extension type
int type = get_bits(gb, 4);
if (ac->avctx->debug & FF_DEBUG_STARTCODE)
av_log(ac->avctx, AV_LOG_DEBUG, "extension type: %d len:%d\n", type, cnt);
switch (type) { // extension type
case EXT_SBR_DATA_CRC:
crc_flag++;
case EXT_SBR_DATA:
@@ -2381,15 +2411,15 @@ static void windowing_and_mdct_ltp(AACContext *ac, float *out,
const float *swindow_prev = ics->use_kb_window[1] ? ff_aac_kbd_short_128 : ff_sine_128;
if (ics->window_sequence[0] != LONG_STOP_SEQUENCE) {
ac->fdsp.vector_fmul(in, in, lwindow_prev, 1024);
ac->fdsp->vector_fmul(in, in, lwindow_prev, 1024);
} else {
memset(in, 0, 448 * sizeof(float));
ac->fdsp.vector_fmul(in + 448, in + 448, swindow_prev, 128);
ac->fdsp->vector_fmul(in + 448, in + 448, swindow_prev, 128);
}
if (ics->window_sequence[0] != LONG_START_SEQUENCE) {
ac->fdsp.vector_fmul_reverse(in + 1024, in + 1024, lwindow, 1024);
ac->fdsp->vector_fmul_reverse(in + 1024, in + 1024, lwindow, 1024);
} else {
ac->fdsp.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);
@@ -2442,17 +2472,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->fdsp.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->fdsp.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->fdsp.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];
}
@@ -2493,19 +2523,19 @@ 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->fdsp.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));
if (ics->window_sequence[0] == EIGHT_SHORT_SEQUENCE) {
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);
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->fdsp.vector_fmul_window(out + 448, saved + 448, buf, swindow_prev, 64);
ac->fdsp->vector_fmul_window(out + 448, saved + 448, buf, swindow_prev, 64);
memcpy( out + 576, buf + 64, 448 * sizeof(float));
}
}
@@ -2513,9 +2543,9 @@ static void imdct_and_windowing(AACContext *ac, SingleChannelElement *sce)
// buffer update
if (ics->window_sequence[0] == EIGHT_SHORT_SEQUENCE) {
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);
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));
@@ -2540,10 +2570,10 @@ static void imdct_and_windowing_ld(AACContext *ac, SingleChannelElement *sce)
if (ics->use_kb_window[1]) {
// AAC LD uses a low overlap sine window instead of a KBD window
memcpy(out, saved, 192 * sizeof(float));
ac->fdsp.vector_fmul_window(out + 192, saved + 192, buf, ff_sine_128, 64);
ac->fdsp->vector_fmul_window(out + 192, saved + 192, buf, ff_sine_128, 64);
memcpy( out + 320, buf + 64, 192 * sizeof(float));
} else {
ac->fdsp.vector_fmul_window(out, saved, buf, ff_sine_512, 256);
ac->fdsp->vector_fmul_window(out, saved, buf, ff_sine_512, 256);
}
// buffer update
@@ -2716,7 +2746,7 @@ static void spectral_to_sample(AACContext *ac)
for (type = 3; type >= 0; type--) {
for (i = 0; i < MAX_ELEM_ID; i++) {
ChannelElement *che = ac->che[type][i];
if (che) {
if (che && che->present) {
if (type <= TYPE_CPE)
apply_channel_coupling(ac, che, type, i, BEFORE_TNS, apply_dependent_coupling);
if (ac->oc[1].m4ac.object_type == AOT_AAC_LTP) {
@@ -2748,6 +2778,9 @@ static void spectral_to_sample(AACContext *ac)
}
if (type <= TYPE_CCE)
apply_channel_coupling(ac, che, type, i, AFTER_IMDCT, apply_independent_coupling);
che->present = 0;
} else if (che) {
av_log(ac->avctx, AV_LOG_VERBOSE, "ChannelElement %d.%d missing \n", type, i);
}
}
}
@@ -2852,6 +2885,7 @@ static int aac_decode_er_frame(AVCodecContext *avctx, void *data,
elem_type, elem_id);
return AVERROR_INVALIDDATA;
}
che->present = 1;
if (aot != AOT_ER_AAC_ELD)
skip_bits(gb, 4);
switch (elem_type) {
@@ -2915,6 +2949,9 @@ static int aac_decode_frame_int(AVCodecContext *avctx, void *data,
while ((elem_type = get_bits(gb, 3)) != TYPE_END) {
elem_id = get_bits(gb, 4);
if (avctx->debug & FF_DEBUG_STARTCODE)
av_log(avctx, AV_LOG_DEBUG, "Elem type:%x id:%x\n", elem_type, elem_id);
if (elem_type < TYPE_DSE) {
if (!(che=get_che(ac, elem_type, elem_id))) {
av_log(ac->avctx, AV_LOG_ERROR, "channel element %d.%d is not allocated\n",
@@ -2923,6 +2960,7 @@ static int aac_decode_frame_int(AVCodecContext *avctx, void *data,
goto fail;
}
samples = 1024;
che->present = 1;
}
switch (elem_type) {
@@ -3131,6 +3169,7 @@ static av_cold int aac_decode_close(AVCodecContext *avctx)
ff_mdct_end(&ac->mdct_small);
ff_mdct_end(&ac->mdct_ld);
ff_mdct_end(&ac->mdct_ltp);
av_freep(&ac->fdsp);
return 0;
}
@@ -3440,6 +3479,18 @@ static const AVClass aac_decoder_class = {
.version = LIBAVUTIL_VERSION_INT,
};
static const AVProfile profiles[] = {
{ FF_PROFILE_AAC_MAIN, "Main" },
{ FF_PROFILE_AAC_LOW, "LC" },
{ FF_PROFILE_AAC_SSR, "SSR" },
{ FF_PROFILE_AAC_LTP, "LTP" },
{ FF_PROFILE_AAC_HE, "HE-AAC" },
{ FF_PROFILE_AAC_HE_V2, "HE-AACv2" },
{ FF_PROFILE_AAC_LD, "LD" },
{ FF_PROFILE_AAC_ELD, "ELD" },
{ FF_PROFILE_UNKNOWN },
};
AVCodec ff_aac_decoder = {
.name = "aac",
.long_name = NULL_IF_CONFIG_SMALL("AAC (Advanced Audio Coding)"),
@@ -3456,6 +3507,7 @@ AVCodec ff_aac_decoder = {
.channel_layouts = aac_channel_layout,
.flush = flush,
.priv_class = &aac_decoder_class,
.profiles = profiles,
};
/*
@@ -3478,4 +3530,5 @@ AVCodec ff_aac_latm_decoder = {
.capabilities = CODEC_CAP_CHANNEL_CONF | CODEC_CAP_DR1,
.channel_layouts = aac_channel_layout,
.flush = flush,
.profiles = profiles,
};

View File

@@ -252,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->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);
@@ -567,6 +567,10 @@ static int aac_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
ics->group_len[w] = wi[ch].grouping[w];
apply_window_and_mdct(s, &cpe->ch[ch], overlap);
if (isnan(cpe->ch->coeffs[0])) {
av_log(avctx, AV_LOG_ERROR, "Input contains NaN\n");
return AVERROR(EINVAL);
}
}
start_ch += chans;
}
@@ -678,6 +682,7 @@ static av_cold int aac_encode_end(AVCodecContext *avctx)
ff_psy_preprocess_end(s->psypp);
av_freep(&s->buffer.samples);
av_freep(&s->cpe);
av_freep(&s->fdsp);
ff_af_queue_close(&s->afq);
return 0;
}
@@ -686,7 +691,9 @@ static av_cold int dsp_init(AVCodecContext *avctx, AACEncContext *s)
{
int ret = 0;
avpriv_float_dsp_init(&s->fdsp, avctx->flags & CODEC_FLAG_BITEXACT);
s->fdsp = avpriv_float_dsp_alloc(avctx->flags & CODEC_FLAG_BITEXACT);
if (!s->fdsp)
return AVERROR(ENOMEM);
// window init
ff_kbd_window_init(ff_aac_kbd_long_1024, 4.0, 1024);
@@ -705,8 +712,8 @@ static av_cold int dsp_init(AVCodecContext *avctx, AACEncContext *s)
static av_cold int alloc_buffers(AVCodecContext *avctx, AACEncContext *s)
{
int ch;
FF_ALLOCZ_OR_GOTO(avctx, s->buffer.samples, 3 * 1024 * s->channels * sizeof(s->buffer.samples[0]), alloc_fail);
FF_ALLOCZ_OR_GOTO(avctx, s->cpe, sizeof(ChannelElement) * s->chan_map[0], alloc_fail);
FF_ALLOCZ_ARRAY_OR_GOTO(avctx, s->buffer.samples, s->channels, 3 * 1024 * sizeof(s->buffer.samples[0]), alloc_fail);
FF_ALLOCZ_ARRAY_OR_GOTO(avctx, s->cpe, s->chan_map[0], sizeof(ChannelElement), alloc_fail);
FF_ALLOCZ_OR_GOTO(avctx, avctx->extradata, 5 + FF_INPUT_BUFFER_PADDING_SIZE, alloc_fail);
for(ch = 0; ch < s->channels; ch++)
@@ -776,7 +783,7 @@ static av_cold int aac_encode_init(AVCodecContext *avctx)
for (i = 0; i < 428; i++)
ff_aac_pow34sf_tab[i] = sqrt(ff_aac_pow2sf_tab[i] * sqrt(ff_aac_pow2sf_tab[i]));
avctx->delay = 1024;
avctx->initial_padding = 1024;
ff_af_queue_init(avctx, &s->afq);
return 0;

View File

@@ -67,7 +67,7 @@ typedef struct AACEncContext {
PutBitContext pb;
FFTContext mdct1024; ///< long (1024 samples) frame transform context
FFTContext mdct128; ///< short (128 samples) frame transform context
AVFloatDSPContext fdsp;
AVFloatDSPContext *fdsp;
float *planar_samples[6]; ///< saved preprocessed input
int samplerate_index; ///< MPEG-4 samplerate index

View File

@@ -82,7 +82,7 @@ int main(void)
write_float_3d_array(f34_2_4, 4, 8, 2);
printf("};\n");
printf("static TABLE_CONST DECLARE_ALIGNED(16, float, Q_fract_allpass)[2][50][3][2] = {\n");
printf("static const DECLARE_ALIGNED(16, float, Q_fract_allpass)[2][50][3][2] = {\n");
write_float_4d_array(Q_fract_allpass, 2, 50, 3, 2);
printf("};\n");
printf("static const DECLARE_ALIGNED(16, float, phi_fract)[2][50][2] = {\n");

View File

@@ -70,7 +70,7 @@ static const float g2_Q4[] = {
0.16486303567403f, 0.23279856662996f, 0.25f
};
static void make_filters_from_proto(float (*filter)[8][2], const float *proto, int bands)
static av_cold void make_filters_from_proto(float (*filter)[8][2], const float *proto, int bands)
{
int q, n;
for (q = 0; q < bands; q++) {
@@ -82,7 +82,7 @@ static void make_filters_from_proto(float (*filter)[8][2], const float *proto, i
}
}
static void ps_tableinit(void)
static av_cold void ps_tableinit(void)
{
static const float ipdopd_sin[] = { 0, M_SQRT1_2, 1, M_SQRT1_2, 0, -M_SQRT1_2, -1, -M_SQRT1_2 };
static const float ipdopd_cos[] = { 1, M_SQRT1_2, 0, -M_SQRT1_2, -1, -M_SQRT1_2, 0, M_SQRT1_2 };

View File

@@ -30,6 +30,7 @@
#include "sbr.h"
#include "aacsbr.h"
#include "aacsbrdata.h"
#include "aacsbr_tablegen.h"
#include "fft.h"
#include "aacps.h"
#include "sbrdsp.h"
@@ -95,7 +96,6 @@ static void aacsbr_func_ptr_init(AACSBRContext *c);
av_cold void ff_aac_sbr_init(void)
{
int n;
static const struct {
const void *sbr_codes, *sbr_bits;
const unsigned int table_size, elem_size;
@@ -124,13 +124,7 @@ av_cold void ff_aac_sbr_init(void)
SBR_INIT_VLC_STATIC(8, 592);
SBR_INIT_VLC_STATIC(9, 512);
for (n = 1; n < 320; n++)
sbr_qmf_window_us[320 + n] = sbr_qmf_window_us[320 - n];
sbr_qmf_window_us[384] = -sbr_qmf_window_us[384];
sbr_qmf_window_us[512] = -sbr_qmf_window_us[512];
for (n = 0; n < 320; n++)
sbr_qmf_window_ds[n] = sbr_qmf_window_us[2*n];
aacsbr_tableinit();
ff_ps_init();
}
@@ -332,7 +326,7 @@ static int check_n_master(AVCodecContext *avctx, int n_master, int bs_xover_band
static int sbr_make_f_master(AACContext *ac, SpectralBandReplication *sbr,
SpectrumParameters *spectrum)
{
unsigned int temp, max_qmf_subbands;
unsigned int temp, max_qmf_subbands = 0;
unsigned int start_min, stop_min;
int k;
const int8_t *sbr_offset_ptr;
@@ -562,7 +556,8 @@ static int sbr_hf_calc_npatches(AACContext *ac, SpectralBandReplication *sbr)
k = sbr->n_master;
} while (sb != sbr->kx[1] + sbr->m[1]);
if (sbr->num_patches > 1 && sbr->patch_num_subbands[sbr->num_patches-1] < 3)
if (sbr->num_patches > 1 &&
sbr->patch_num_subbands[sbr->num_patches - 1] < 3)
sbr->num_patches--;
return 0;
@@ -1617,8 +1612,14 @@ static void sbr_hf_assemble(float Y1[38][64][2],
memcpy(q_temp[i + 2*ch_data->t_env[0]], sbr->q_m[0], m_max * sizeof(sbr->q_m[0][0]));
}
} else if (h_SL) {
memcpy(g_temp[2*ch_data->t_env[0]], g_temp[2*ch_data->t_env_num_env_old], 4*sizeof(g_temp[0]));
memcpy(q_temp[2*ch_data->t_env[0]], q_temp[2*ch_data->t_env_num_env_old], 4*sizeof(q_temp[0]));
for (i = 0; i < 4; i++) {
memcpy(g_temp[i + 2 * ch_data->t_env[0]],
g_temp[i + 2 * ch_data->t_env_num_env_old],
sizeof(g_temp[0]));
memcpy(q_temp[i + 2 * ch_data->t_env[0]],
q_temp[i + 2 * ch_data->t_env_num_env_old],
sizeof(q_temp[0]));
}
}
for (e = 0; e < ch_data->bs_num_env; e++) {
@@ -1699,7 +1700,7 @@ void ff_sbr_apply(AACContext *ac, SpectralBandReplication *sbr, int id_aac,
}
for (ch = 0; ch < nch; ch++) {
/* decode channel */
sbr_qmf_analysis(&ac->fdsp, &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->c.sbr_lf_gen(ac, sbr, sbr->X_low,
@@ -1745,13 +1746,13 @@ void ff_sbr_apply(AACContext *ac, SpectralBandReplication *sbr, int id_aac,
nch = 2;
}
sbr_qmf_synthesis(&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(&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,

View File

@@ -0,0 +1,39 @@
/*
* Header file for hardcoded AAC SBR windows
*
* Copyright (c) 2014 Reimar Döffinger <Reimar.Doeffinger@gmx.de>
*
* This file is part of FFmpeg.
*
* FFmpeg is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* FFmpeg is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include <stdlib.h>
#define CONFIG_HARDCODED_TABLES 0
#include "libavutil/common.h"
#include "aacsbr_tablegen.h"
#include "tableprint.h"
int main(void)
{
aacsbr_tableinit();
write_fileheader();
WRITE_ARRAY_ALIGNED("static const", 32, float, sbr_qmf_window_ds);
WRITE_ARRAY_ALIGNED("static const", 32, float, sbr_qmf_window_us);
return 0;
}

View File

@@ -0,0 +1,129 @@
/*
* Header file for hardcoded AAC SBR windows
*
* Copyright (c) 2014 Reimar Döffinger <Reimar.Doeffinger@gmx.de>
*
* This file is part of FFmpeg.
*
* FFmpeg is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* FFmpeg is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef AVCODEC_AACSBR_TABLEGEN_H
#define AVCODEC_AACSBR_TABLEGEN_H
#if CONFIG_HARDCODED_TABLES
#define aacsbr_tableinit()
#include "libavcodec/aacsbr_tables.h"
#else
///< window coefficients for analysis/synthesis QMF banks
static DECLARE_ALIGNED(32, float, sbr_qmf_window_ds)[320];
static DECLARE_ALIGNED(32, float, sbr_qmf_window_us)[640] = {
0.0000000000, -0.0005525286, -0.0005617692, -0.0004947518,
-0.0004875227, -0.0004893791, -0.0005040714, -0.0005226564,
-0.0005466565, -0.0005677802, -0.0005870930, -0.0006132747,
-0.0006312493, -0.0006540333, -0.0006777690, -0.0006941614,
-0.0007157736, -0.0007255043, -0.0007440941, -0.0007490598,
-0.0007681371, -0.0007724848, -0.0007834332, -0.0007779869,
-0.0007803664, -0.0007801449, -0.0007757977, -0.0007630793,
-0.0007530001, -0.0007319357, -0.0007215391, -0.0006917937,
-0.0006650415, -0.0006341594, -0.0005946118, -0.0005564576,
-0.0005145572, -0.0004606325, -0.0004095121, -0.0003501175,
-0.0002896981, -0.0002098337, -0.0001446380, -0.0000617334,
0.0000134949, 0.0001094383, 0.0002043017, 0.0002949531,
0.0004026540, 0.0005107388, 0.0006239376, 0.0007458025,
0.0008608443, 0.0009885988, 0.0011250155, 0.0012577884,
0.0013902494, 0.0015443219, 0.0016868083, 0.0018348265,
0.0019841140, 0.0021461583, 0.0023017254, 0.0024625616,
0.0026201758, 0.0027870464, 0.0029469447, 0.0031125420,
0.0032739613, 0.0034418874, 0.0036008268, 0.0037603922,
0.0039207432, 0.0040819753, 0.0042264269, 0.0043730719,
0.0045209852, 0.0046606460, 0.0047932560, 0.0049137603,
0.0050393022, 0.0051407353, 0.0052461166, 0.0053471681,
0.0054196775, 0.0054876040, 0.0055475714, 0.0055938023,
0.0056220643, 0.0056455196, 0.0056389199, 0.0056266114,
0.0055917128, 0.0055404363, 0.0054753783, 0.0053838975,
0.0052715758, 0.0051382275, 0.0049839687, 0.0048109469,
0.0046039530, 0.0043801861, 0.0041251642, 0.0038456408,
0.0035401246, 0.0032091885, 0.0028446757, 0.0024508540,
0.0020274176, 0.0015784682, 0.0010902329, 0.0005832264,
0.0000276045, -0.0005464280, -0.0011568135, -0.0018039472,
-0.0024826723, -0.0031933778, -0.0039401124, -0.0047222596,
-0.0055337211, -0.0063792293, -0.0072615816, -0.0081798233,
-0.0091325329, -0.0101150215, -0.0111315548, -0.0121849995,
0.0132718220, 0.0143904666, 0.0155405553, 0.0167324712,
0.0179433381, 0.0191872431, 0.0204531793, 0.0217467550,
0.0230680169, 0.0244160992, 0.0257875847, 0.0271859429,
0.0286072173, 0.0300502657, 0.0315017608, 0.0329754081,
0.0344620948, 0.0359697560, 0.0374812850, 0.0390053679,
0.0405349170, 0.0420649094, 0.0436097542, 0.0451488405,
0.0466843027, 0.0482165720, 0.0497385755, 0.0512556155,
0.0527630746, 0.0542452768, 0.0557173648, 0.0571616450,
0.0585915683, 0.0599837480, 0.0613455171, 0.0626857808,
0.0639715898, 0.0652247106, 0.0664367512, 0.0676075985,
0.0687043828, 0.0697630244, 0.0707628710, 0.0717002673,
0.0725682583, 0.0733620255, 0.0741003642, 0.0747452558,
0.0753137336, 0.0758008358, 0.0761992479, 0.0764992170,
0.0767093490, 0.0768173975, 0.0768230011, 0.0767204924,
0.0765050718, 0.0761748321, 0.0757305756, 0.0751576255,
0.0744664394, 0.0736406005, 0.0726774642, 0.0715826364,
0.0703533073, 0.0689664013, 0.0674525021, 0.0657690668,
0.0639444805, 0.0619602779, 0.0598166570, 0.0575152691,
0.0550460034, 0.0524093821, 0.0495978676, 0.0466303305,
0.0434768782, 0.0401458278, 0.0366418116, 0.0329583930,
0.0290824006, 0.0250307561, 0.0207997072, 0.0163701258,
0.0117623832, 0.0069636862, 0.0019765601, -0.0032086896,
-0.0085711749, -0.0141288827, -0.0198834129, -0.0258227288,
-0.0319531274, -0.0382776572, -0.0447806821, -0.0514804176,
-0.0583705326, -0.0654409853, -0.0726943300, -0.0801372934,
-0.0877547536, -0.0955533352, -0.1035329531, -0.1116826931,
-0.1200077984, -0.1285002850, -0.1371551761, -0.1459766491,
-0.1549607071, -0.1640958855, -0.1733808172, -0.1828172548,
-0.1923966745, -0.2021250176, -0.2119735853, -0.2219652696,
-0.2320690870, -0.2423016884, -0.2526480309, -0.2631053299,
-0.2736634040, -0.2843214189, -0.2950716717, -0.3059098575,
-0.3168278913, -0.3278113727, -0.3388722693, -0.3499914122,
0.3611589903, 0.3723795546, 0.3836350013, 0.3949211761,
0.4062317676, 0.4175696896, 0.4289119920, 0.4402553754,
0.4515996535, 0.4629308085, 0.4742453214, 0.4855253091,
0.4967708254, 0.5079817500, 0.5191234970, 0.5302240895,
0.5412553448, 0.5522051258, 0.5630789140, 0.5738524131,
0.5845403235, 0.5951123086, 0.6055783538, 0.6159109932,
0.6261242695, 0.6361980107, 0.6461269695, 0.6559016302,
0.6655139880, 0.6749663190, 0.6842353293, 0.6933282376,
0.7022388719, 0.7109410426, 0.7194462634, 0.7277448900,
0.7358211758, 0.7436827863, 0.7513137456, 0.7587080760,
0.7658674865, 0.7727780881, 0.7794287519, 0.7858353120,
0.7919735841, 0.7978466413, 0.8034485751, 0.8087695004,
0.8138191270, 0.8185776004, 0.8230419890, 0.8272275347,
0.8311038457, 0.8346937361, 0.8379717337, 0.8409541392,
0.8436238281, 0.8459818469, 0.8480315777, 0.8497805198,
0.8511971524, 0.8523047035, 0.8531020949, 0.8535720573,
0.8537385600,
};
static av_cold void aacsbr_tableinit(void)
{
int n;
for (n = 1; n < 320; n++)
sbr_qmf_window_us[320 + n] = sbr_qmf_window_us[320 - n];
sbr_qmf_window_us[384] = -sbr_qmf_window_us[384];
sbr_qmf_window_us[512] = -sbr_qmf_window_us[512];
for (n = 0; n < 320; n++)
sbr_qmf_window_ds[n] = sbr_qmf_window_us[2*n];
}
#endif /* CONFIG_HARDCODED_TABLES */
#endif /* AVCODEC_AACSBR_TABLEGEN_H */

View File

@@ -266,92 +266,6 @@ static const int8_t sbr_offset[6][16] = {
{-2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 13, 16, 20, 24}, // 64000 Hz < fs_sbr
};
///< window coefficients for analysis/synthesis QMF banks
static DECLARE_ALIGNED(32, float, sbr_qmf_window_ds)[320];
static DECLARE_ALIGNED(32, float, sbr_qmf_window_us)[640] = {
0.0000000000, -0.0005525286, -0.0005617692, -0.0004947518,
-0.0004875227, -0.0004893791, -0.0005040714, -0.0005226564,
-0.0005466565, -0.0005677802, -0.0005870930, -0.0006132747,
-0.0006312493, -0.0006540333, -0.0006777690, -0.0006941614,
-0.0007157736, -0.0007255043, -0.0007440941, -0.0007490598,
-0.0007681371, -0.0007724848, -0.0007834332, -0.0007779869,
-0.0007803664, -0.0007801449, -0.0007757977, -0.0007630793,
-0.0007530001, -0.0007319357, -0.0007215391, -0.0006917937,
-0.0006650415, -0.0006341594, -0.0005946118, -0.0005564576,
-0.0005145572, -0.0004606325, -0.0004095121, -0.0003501175,
-0.0002896981, -0.0002098337, -0.0001446380, -0.0000617334,
0.0000134949, 0.0001094383, 0.0002043017, 0.0002949531,
0.0004026540, 0.0005107388, 0.0006239376, 0.0007458025,
0.0008608443, 0.0009885988, 0.0011250155, 0.0012577884,
0.0013902494, 0.0015443219, 0.0016868083, 0.0018348265,
0.0019841140, 0.0021461583, 0.0023017254, 0.0024625616,
0.0026201758, 0.0027870464, 0.0029469447, 0.0031125420,
0.0032739613, 0.0034418874, 0.0036008268, 0.0037603922,
0.0039207432, 0.0040819753, 0.0042264269, 0.0043730719,
0.0045209852, 0.0046606460, 0.0047932560, 0.0049137603,
0.0050393022, 0.0051407353, 0.0052461166, 0.0053471681,
0.0054196775, 0.0054876040, 0.0055475714, 0.0055938023,
0.0056220643, 0.0056455196, 0.0056389199, 0.0056266114,
0.0055917128, 0.0055404363, 0.0054753783, 0.0053838975,
0.0052715758, 0.0051382275, 0.0049839687, 0.0048109469,
0.0046039530, 0.0043801861, 0.0041251642, 0.0038456408,
0.0035401246, 0.0032091885, 0.0028446757, 0.0024508540,
0.0020274176, 0.0015784682, 0.0010902329, 0.0005832264,
0.0000276045, -0.0005464280, -0.0011568135, -0.0018039472,
-0.0024826723, -0.0031933778, -0.0039401124, -0.0047222596,
-0.0055337211, -0.0063792293, -0.0072615816, -0.0081798233,
-0.0091325329, -0.0101150215, -0.0111315548, -0.0121849995,
0.0132718220, 0.0143904666, 0.0155405553, 0.0167324712,
0.0179433381, 0.0191872431, 0.0204531793, 0.0217467550,
0.0230680169, 0.0244160992, 0.0257875847, 0.0271859429,
0.0286072173, 0.0300502657, 0.0315017608, 0.0329754081,
0.0344620948, 0.0359697560, 0.0374812850, 0.0390053679,
0.0405349170, 0.0420649094, 0.0436097542, 0.0451488405,
0.0466843027, 0.0482165720, 0.0497385755, 0.0512556155,
0.0527630746, 0.0542452768, 0.0557173648, 0.0571616450,
0.0585915683, 0.0599837480, 0.0613455171, 0.0626857808,
0.0639715898, 0.0652247106, 0.0664367512, 0.0676075985,
0.0687043828, 0.0697630244, 0.0707628710, 0.0717002673,
0.0725682583, 0.0733620255, 0.0741003642, 0.0747452558,
0.0753137336, 0.0758008358, 0.0761992479, 0.0764992170,
0.0767093490, 0.0768173975, 0.0768230011, 0.0767204924,
0.0765050718, 0.0761748321, 0.0757305756, 0.0751576255,
0.0744664394, 0.0736406005, 0.0726774642, 0.0715826364,
0.0703533073, 0.0689664013, 0.0674525021, 0.0657690668,
0.0639444805, 0.0619602779, 0.0598166570, 0.0575152691,
0.0550460034, 0.0524093821, 0.0495978676, 0.0466303305,
0.0434768782, 0.0401458278, 0.0366418116, 0.0329583930,
0.0290824006, 0.0250307561, 0.0207997072, 0.0163701258,
0.0117623832, 0.0069636862, 0.0019765601, -0.0032086896,
-0.0085711749, -0.0141288827, -0.0198834129, -0.0258227288,
-0.0319531274, -0.0382776572, -0.0447806821, -0.0514804176,
-0.0583705326, -0.0654409853, -0.0726943300, -0.0801372934,
-0.0877547536, -0.0955533352, -0.1035329531, -0.1116826931,
-0.1200077984, -0.1285002850, -0.1371551761, -0.1459766491,
-0.1549607071, -0.1640958855, -0.1733808172, -0.1828172548,
-0.1923966745, -0.2021250176, -0.2119735853, -0.2219652696,
-0.2320690870, -0.2423016884, -0.2526480309, -0.2631053299,
-0.2736634040, -0.2843214189, -0.2950716717, -0.3059098575,
-0.3168278913, -0.3278113727, -0.3388722693, -0.3499914122,
0.3611589903, 0.3723795546, 0.3836350013, 0.3949211761,
0.4062317676, 0.4175696896, 0.4289119920, 0.4402553754,
0.4515996535, 0.4629308085, 0.4742453214, 0.4855253091,
0.4967708254, 0.5079817500, 0.5191234970, 0.5302240895,
0.5412553448, 0.5522051258, 0.5630789140, 0.5738524131,
0.5845403235, 0.5951123086, 0.6055783538, 0.6159109932,
0.6261242695, 0.6361980107, 0.6461269695, 0.6559016302,
0.6655139880, 0.6749663190, 0.6842353293, 0.6933282376,
0.7022388719, 0.7109410426, 0.7194462634, 0.7277448900,
0.7358211758, 0.7436827863, 0.7513137456, 0.7587080760,
0.7658674865, 0.7727780881, 0.7794287519, 0.7858353120,
0.7919735841, 0.7978466413, 0.8034485751, 0.8087695004,
0.8138191270, 0.8185776004, 0.8230419890, 0.8272275347,
0.8311038457, 0.8346937361, 0.8379717337, 0.8409541392,
0.8436238281, 0.8459818469, 0.8480315777, 0.8497805198,
0.8511971524, 0.8523047035, 0.8531020949, 0.8535720573,
0.8537385600,
};
/* First eight entries repeated at end to simplify SIMD implementations. */
const DECLARE_ALIGNED(16, float, ff_sbr_noise_table)[][2] = {
{-0.99948153278296, -0.59483417516607}, { 0.97113454393991, -0.67528515225647},

View File

@@ -336,7 +336,7 @@ function fft_pass_neon
endfunc
.macro def_fft n, n2, n4
function fft\n\()_neon align=6
function fft\n\()_neon, align=6
sub sp, sp, #16
stp x28, x30, [sp]
add x28, x0, #\n4*2*8
@@ -376,7 +376,8 @@ function ff_fft_calc_neon, export=1
ld1 {v30.16b}, [x10]
mov x7, #-8
movrel x12, pmmp
ldr x3, [x3, x2, lsl #3]
ldr x4, [x3, x2, lsl #3]
add x3, x3, x4
movrel x13, mppm
movrel x14, X(ff_cos_16)
ld1 {v31.16b}, [x11]
@@ -416,21 +417,21 @@ function ff_fft_permute_neon, export=1
endfunc
const fft_tab_neon
.quad fft4_neon
.quad fft8_neon
.quad fft16_neon
.quad fft32_neon
.quad fft64_neon
.quad fft128_neon
.quad fft256_neon
.quad fft512_neon
.quad fft1024_neon
.quad fft2048_neon
.quad fft4096_neon
.quad fft8192_neon
.quad fft16384_neon
.quad fft32768_neon
.quad fft65536_neon
.quad fft4_neon - fft_tab_neon
.quad fft8_neon - fft_tab_neon
.quad fft16_neon - fft_tab_neon
.quad fft32_neon - fft_tab_neon
.quad fft64_neon - fft_tab_neon
.quad fft128_neon - fft_tab_neon
.quad fft256_neon - fft_tab_neon
.quad fft512_neon - fft_tab_neon
.quad fft1024_neon - fft_tab_neon
.quad fft2048_neon - fft_tab_neon
.quad fft4096_neon - fft_tab_neon
.quad fft8192_neon - fft_tab_neon
.quad fft16384_neon - fft_tab_neon
.quad fft32768_neon - fft_tab_neon
.quad fft65536_neon - fft_tab_neon
endconst
const pmmp, align=4

View File

@@ -27,73 +27,73 @@
#include "libavutil/aarch64/cpu.h"
#include "libavcodec/h264qpel.h"
void ff_put_h264_qpel16_mc00_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel16_mc10_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel16_mc20_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel16_mc30_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel16_mc01_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel16_mc11_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel16_mc21_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel16_mc31_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel16_mc02_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel16_mc12_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel16_mc22_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel16_mc32_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel16_mc03_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel16_mc13_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel16_mc23_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel16_mc33_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel16_mc00_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel16_mc10_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel16_mc20_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel16_mc30_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel16_mc01_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel16_mc11_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel16_mc21_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel16_mc31_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel16_mc02_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel16_mc12_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel16_mc22_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel16_mc32_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel16_mc03_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel16_mc13_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel16_mc23_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel16_mc33_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel8_mc00_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel8_mc10_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel8_mc20_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel8_mc30_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel8_mc01_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel8_mc11_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel8_mc21_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel8_mc31_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel8_mc02_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel8_mc12_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel8_mc22_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel8_mc32_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel8_mc03_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel8_mc13_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel8_mc23_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel8_mc33_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel8_mc00_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel8_mc10_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel8_mc20_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel8_mc30_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel8_mc01_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel8_mc11_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel8_mc21_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel8_mc31_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel8_mc02_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel8_mc12_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel8_mc22_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel8_mc32_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel8_mc03_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel8_mc13_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel8_mc23_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_put_h264_qpel8_mc33_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel16_mc00_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel16_mc10_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel16_mc20_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel16_mc30_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel16_mc01_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel16_mc11_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel16_mc21_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel16_mc31_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel16_mc02_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel16_mc12_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel16_mc22_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel16_mc32_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel16_mc03_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel16_mc13_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel16_mc23_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel16_mc33_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel16_mc00_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel16_mc10_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel16_mc20_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel16_mc30_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel16_mc01_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel16_mc11_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel16_mc21_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel16_mc31_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel16_mc02_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel16_mc12_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel16_mc22_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel16_mc32_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel16_mc03_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel16_mc13_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel16_mc23_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel16_mc33_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel8_mc00_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel8_mc10_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel8_mc20_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel8_mc30_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel8_mc01_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel8_mc11_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel8_mc21_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel8_mc31_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel8_mc02_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel8_mc12_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel8_mc22_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel8_mc32_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel8_mc03_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel8_mc13_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel8_mc23_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel8_mc33_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel8_mc00_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel8_mc10_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel8_mc20_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel8_mc30_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel8_mc01_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel8_mc11_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel8_mc21_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel8_mc31_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel8_mc02_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel8_mc12_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel8_mc22_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel8_mc32_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel8_mc03_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel8_mc13_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel8_mc23_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
void ff_avg_h264_qpel8_mc33_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
av_cold void ff_h264qpel_init_aarch64(H264QpelContext *c, int bit_depth)
{

View File

@@ -24,7 +24,7 @@
#define WFRAC_BITS 16 // fractional bits for window
#define OUT_SHIFT (WFRAC_BITS + FRAC_BITS - 15)
const tbl_rev128.s align=4
const tbl_rev128.s, align=4
.byte 12, 13, 14, 15
.byte 8, 9, 10, 11
.byte 4, 5, 6, 7

View File

@@ -23,7 +23,7 @@
#include "asm-offsets.h"
.macro shuffle a, b, c, d
const shuffle_\a\b\c\d align=4
const shuffle_\a\b\c\d, align=4
.byte (\a * 4), (\a * 4 + 1), (\a * 4 + 2), (\a * 4 + 3)
.byte (\b * 4), (\b * 4 + 1), (\b * 4 + 2), (\b * 4 + 3)
.byte (\c * 4), (\c * 4 + 1), (\c * 4 + 2), (\c * 4 + 3)
@@ -344,7 +344,7 @@ function fft15_pass
ret
endfunc
function fft30_neon align=6
function fft30_neon, align=6
sub sp, sp, #0x20
stp x20, x21, [sp]
stp x22, x30, [sp, #0x10]
@@ -372,7 +372,7 @@ function fft30_neon align=6
endfunc
.macro def_fft n, n2
function fft\n\()_neon align=6
function fft\n\()_neon, align=6
sub sp, sp, #0x30
stp x20, x21, [sp]
stp x22, x30, [sp, #0x10]
@@ -438,8 +438,8 @@ function fft_b15_calc_neon
uzp1 v12.4s, v4.4s, v5.4s // exp[11 - 14].re
uzp2 v13.4s, v4.4s, v5.4s // exp[11 - 14].im
zip1 v14.4s, v6.4s, v7.4s // exp[5,10].re/exp[5,10].im
add x5, x5, x3, lsl #3
ldr x5, [x5]
ldr x6, [x5, x3, lsl #3]
add x5, x5, x6
mov x10, x0
blr x5
ldp x20, x30, [sp]
@@ -452,13 +452,13 @@ function fft_b15_calc_neon
endfunc
const fft_tab_neon
.quad fft15_neon
.quad fft30_neon
.quad fft60_neon
.quad fft120_neon
.quad fft240_neon
.quad fft480_neon
.quad fft960_neon
.quad fft15_neon - fft_tab_neon
.quad fft30_neon - fft_tab_neon
.quad fft60_neon - fft_tab_neon
.quad fft120_neon - fft_tab_neon
.quad fft240_neon - fft_tab_neon
.quad fft480_neon - fft_tab_neon
.quad fft960_neon - fft_tab_neon
endconst
function ff_celt_imdct_half_neon, export=1
@@ -641,7 +641,7 @@ function ff_celt_imdct_half_neon, export=1
endfunc
// [0] = exp(2 * i * pi / 5), [1] = exp(2 * i * pi * 2 / 5)
const fact5 align=4
const fact5, align=4
.float 0.30901699437494745, 0.95105651629515353
.float -0.80901699437494734, 0.58778525229247325
endconst

View File

@@ -1,6 +1,6 @@
/*
* Autodesk RLE Decoder
* Copyright (C) 2005 the ffmpeg project
* Copyright (c) 2005 The FFmpeg Project
*
* This file is part of FFmpeg.
*

View File

@@ -67,7 +67,8 @@
#define AC3_RENAME(x) x ## _fixed
#define AC3_NORM(norm) (1<<24)/(norm)
#define AC3_MUL(a,b) ((((int64_t) (a)) * (b))>>12)
#define AC3_RANGE(x) (x)
#define AC3_RANGE(x) (x|((x&128)<<1))
#define AC3_HEAVY_RANGE(x) (x<<1)
#define AC3_DYNAMIC_RANGE(x) (x)
#define AC3_SPX_BLEND(x) (x)
#define AC3_DYNAMIC_RANGE1 0
@@ -86,6 +87,7 @@
#define AC3_NORM(norm) (1.0f/(norm))
#define AC3_MUL(a,b) ((a) * (b))
#define AC3_RANGE(x) (dynamic_range_tab[(x)])
#define AC3_HEAVY_RANGE(x) (heavy_dynamic_range_tab[(x)])
#define AC3_DYNAMIC_RANGE(x) (powf(x, s->drc_scale))
#define AC3_SPX_BLEND(x) (x)* (1.0f/32)
#define AC3_DYNAMIC_RANGE1 1.0f

View File

@@ -166,7 +166,7 @@ static int ac3_sync(uint64_t state, AACAC3ParseContext *hdr_info,
int err;
union {
uint64_t u64;
uint8_t u8[8];
uint8_t u8[8 + FF_INPUT_BUFFER_PADDING_SIZE];
} tmp = { av_be2ne64(state) };
AC3HeaderInfo hdr, *phdr = &hdr;
GetBitContext gbc;

View File

@@ -65,6 +65,7 @@ static const uint8_t quantization_tab[16] = {
/** dynamic range table. converts codes to scale factors. */
static float dynamic_range_tab[256];
static float heavy_dynamic_range_tab[256];
/** Adjustments in dB gain */
static const float gain_levels[9] = {
@@ -164,6 +165,14 @@ static av_cold void ac3_tables_init(void)
int v = (i >> 5) - ((i >> 7) << 3) - 5;
dynamic_range_tab[i] = powf(2.0f, v) * ((i & 0x1F) | 0x20);
}
/* generate compr dynamic range table
reference: Section 7.7.2 Heavy Compression */
for (i = 0; i < 256; i++) {
int v = (i >> 4) - ((i >> 7) << 4) - 4;
heavy_dynamic_range_tab[i] = powf(2.0f, v) * ((i & 0xF) | 0x10);
}
}
/**
@@ -186,7 +195,7 @@ static av_cold int ac3_decode_init(AVCodecContext *avctx)
#if (USE_FIXED)
s->fdsp = avpriv_alloc_fixed_dsp(avctx->flags & CODEC_FLAG_BITEXACT);
#else
avpriv_float_dsp_init(&s->fdsp, avctx->flags & CODEC_FLAG_BITEXACT);
s->fdsp = avpriv_float_dsp_alloc(avctx->flags & CODEC_FLAG_BITEXACT);
#endif
ff_ac3dsp_init(&s->ac3dsp, avctx->flags & CODEC_FLAG_BITEXACT);
@@ -236,9 +245,19 @@ static int ac3_parse_header(AC3DecodeContext *s)
/* read the rest of the bsi. read twice for dual mono mode. */
i = !s->channel_mode;
do {
skip_bits(gbc, 5); // skip dialog normalization
if (get_bits1(gbc))
skip_bits(gbc, 8); //skip compression
s->dialog_normalization[(!s->channel_mode)-i] = -get_bits(gbc, 5);
if (s->dialog_normalization[(!s->channel_mode)-i] == 0) {
s->dialog_normalization[(!s->channel_mode)-i] = -31;
}
if (s->target_level != 0) {
s->level_gain[(!s->channel_mode)-i] = powf(2.0f,
(float)(s->target_level -
s->dialog_normalization[(!s->channel_mode)-i])/6.0f);
}
if (s->compression_exists[(!s->channel_mode)-i] = get_bits1(gbc)) {
s->heavy_dynamic_range[(!s->channel_mode)-i] =
AC3_HEAVY_RANGE(get_bits(gbc, 8));
}
if (get_bits1(gbc))
skip_bits(gbc, 8); //skip language code
if (get_bits1(gbc))
@@ -669,7 +688,7 @@ static inline void do_imdct(AC3DecodeContext *s, int channels)
s->fdsp->vector_fmul_window_scaled(s->outptr[ch - 1], s->delay[ch - 1],
s->tmp_output, s->window, 128, 8);
#else
s->fdsp.vector_fmul_window(s->outptr[ch - 1], s->delay[ch - 1],
s->fdsp->vector_fmul_window(s->outptr[ch - 1], s->delay[ch - 1],
s->tmp_output, s->window, 128);
#endif
for (i = 0; i < 128; i++)
@@ -681,7 +700,7 @@ static inline void do_imdct(AC3DecodeContext *s, int channels)
s->fdsp->vector_fmul_window_scaled(s->outptr[ch - 1], s->delay[ch - 1],
s->tmp_output, s->window, 128, 8);
#else
s->fdsp.vector_fmul_window(s->outptr[ch - 1], s->delay[ch - 1],
s->fdsp->vector_fmul_window(s->outptr[ch - 1], s->delay[ch - 1],
s->tmp_output, s->window, 128);
#endif
memcpy(s->delay[ch - 1], s->tmp_output + 128, 128 * sizeof(FFTSample));
@@ -819,8 +838,9 @@ static int decode_audio_block(AC3DecodeContext *s, int blk)
if (get_bits1(gbc)) {
/* Allow asymmetric application of DRC when drc_scale > 1.
Amplification of quiet sounds is enhanced */
INTFLOAT range = AC3_RANGE(get_bits(gbc, 8));
if (range > 1.0 || s->drc_scale <= 1.0)
int range_bits = get_bits(gbc, 8);
INTFLOAT range = AC3_RANGE(range_bits);
if (range_bits <= 127 || s->drc_scale <= 1.0)
s->dynamic_range[i] = AC3_DYNAMIC_RANGE(range);
else
s->dynamic_range[i] = range;
@@ -1314,15 +1334,20 @@ static int decode_audio_block(AC3DecodeContext *s, int blk)
/* apply scaling to coefficients (headroom, dynrng) */
for (ch = 1; ch <= s->channels; ch++) {
int audio_channel = 0;
INTFLOAT gain;
if(s->channel_mode == AC3_CHMODE_DUALMONO) {
gain = s->dynamic_range[2-ch];
} else {
gain = s->dynamic_range[0];
}
if (s->channel_mode == AC3_CHMODE_DUALMONO)
audio_channel = 2-ch;
if (s->heavy_compression && s->compression_exists[audio_channel])
gain = s->heavy_dynamic_range[audio_channel];
else
gain = s->dynamic_range[audio_channel];
#if USE_FIXED
scale_coefs(s->transform_coeffs[ch], s->fixed_coeffs[ch], gain, 256);
#else
if (s->target_level != 0)
gain = gain * s->level_gain[audio_channel];
gain *= 1.0 / 4194304.0f;
s->fmt_conv.int32_to_float_fmul_scalar(s->transform_coeffs[ch],
s->fixed_coeffs[ch], gain, 256);
@@ -1610,9 +1635,7 @@ static av_cold int ac3_decode_end(AVCodecContext *avctx)
AC3DecodeContext *s = avctx->priv_data;
ff_mdct_end(&s->imdct_512);
ff_mdct_end(&s->imdct_256);
#if (USE_FIXED)
av_freep(&s->fdsp);
#endif
return 0;
}

View File

@@ -84,6 +84,9 @@ typedef struct AC3DecodeContext {
int bitstream_mode; ///< bitstream mode (bsmod)
int channel_mode; ///< channel mode (acmod)
int lfe_on; ///< lfe channel in use
int dialog_normalization[2]; ///< dialog level in dBFS (dialnorm)
int compression_exists[2]; ///< compression field is valid for frame (compre)
int compression_gain[2]; ///< gain to apply for heavy compression (compr)
int channel_map; ///< custom channel map
int preferred_downmix; ///< Preferred 2-channel downmix mode (dmixmod)
int center_mix_level; ///< Center mix level index
@@ -103,6 +106,8 @@ typedef struct AC3DecodeContext {
float ltrt_surround_mix_level;
float loro_center_mix_level;
float loro_surround_mix_level;
int target_level; ///< target level in dBFS
float level_gain[2];
///@name Frame syntax parameters
int snr_offset_strategy; ///< SNR offset strategy (snroffststr)
@@ -161,6 +166,8 @@ typedef struct AC3DecodeContext {
///@name Dynamic range
INTFLOAT dynamic_range[2]; ///< dynamic range
INTFLOAT drc_scale; ///< percentage of dynamic range compression to be applied
int heavy_compression; ///< apply heavy compression
INTFLOAT heavy_dynamic_range[2]; ///< heavy dynamic range compression
///@}
///@name Bandwidth
@@ -211,7 +218,7 @@ typedef struct AC3DecodeContext {
#if USE_FIXED
AVFixedDSPContext *fdsp;
#else
AVFloatDSPContext fdsp;
AVFloatDSPContext *fdsp;
#endif
AC3DSPContext ac3dsp;
FmtConvertContext fmt_conv; ///< optimized conversion functions

View File

@@ -53,19 +53,7 @@
#include "ac3dec.h"
/**
* Table for center mix levels
* reference: Section 5.4.2.4 cmixlev
*/
static const uint8_t center_levels[4] = { 4, 5, 6, 5 };
/**
* Table for surround mix levels
* reference: Section 5.4.2.5 surmixlev
*/
static const uint8_t surround_levels[4] = { 4, 6, 7, 6 };
int end_freq_inv_tab[8] =
static const int end_freq_inv_tab[8] =
{
50529027, 44278013, 39403370, 32292987, 27356480, 23729101, 20951060, 18755316
};
@@ -81,40 +69,69 @@ static void scale_coefs (
int temp, temp1, temp2, temp3, temp4, temp5, temp6, temp7;
mul = (dynrng & 0x1f) + 0x20;
shift = 4 - ((dynrng << 24) >> 29);
round = 1 << (shift-1);
for (i=0; i<len; i+=8) {
shift = 4 - ((dynrng << 23) >> 28);
if (shift > 0 ) {
round = 1 << (shift-1);
for (i=0; i<len; i+=8) {
temp = src[i] * mul;
temp1 = src[i+1] * mul;
temp = temp + round;
temp2 = src[i+2] * mul;
temp = src[i] * mul;
temp1 = src[i+1] * mul;
temp = temp + round;
temp2 = src[i+2] * mul;
temp1 = temp1 + round;
dst[i] = temp >> shift;
temp3 = src[i+3] * mul;
temp2 = temp2 + round;
temp1 = temp1 + round;
dst[i] = temp >> shift;
temp3 = src[i+3] * mul;
temp2 = temp2 + round;
dst[i+1] = temp1 >> shift;
temp4 = src[i + 4] * mul;
temp3 = temp3 + round;
dst[i+2] = temp2 >> shift;
dst[i+1] = temp1 >> shift;
temp4 = src[i + 4] * mul;
temp3 = temp3 + round;
dst[i+2] = temp2 >> shift;
temp5 = src[i+5] * mul;
temp4 = temp4 + round;
dst[i+3] = temp3 >> shift;
temp6 = src[i+6] * mul;
temp5 = src[i+5] * mul;
temp4 = temp4 + round;
dst[i+3] = temp3 >> shift;
temp6 = src[i+6] * mul;
dst[i+4] = temp4 >> shift;
temp5 = temp5 + round;
temp7 = src[i+7] * mul;
temp6 = temp6 + round;
dst[i+4] = temp4 >> shift;
temp5 = temp5 + round;
temp7 = src[i+7] * mul;
temp6 = temp6 + round;
dst[i+5] = temp5 >> shift;
temp7 = temp7 + round;
dst[i+6] = temp6 >> shift;
dst[i+7] = temp7 >> shift;
dst[i+5] = temp5 >> shift;
temp7 = temp7 + round;
dst[i+6] = temp6 >> shift;
dst[i+7] = temp7 >> shift;
}
} else {
shift = -shift;
for (i=0; i<len; i+=8) {
temp = src[i] * mul;
temp1 = src[i+1] * mul;
temp2 = src[i+2] * mul;
dst[i] = temp << shift;
temp3 = src[i+3] * mul;
dst[i+1] = temp1 << shift;
temp4 = src[i + 4] * mul;
dst[i+2] = temp2 << shift;
temp5 = src[i+5] * mul;
dst[i+3] = temp3 << shift;
temp6 = src[i+6] * mul;
dst[i+4] = temp4 << shift;
temp7 = src[i+7] * mul;
dst[i+5] = temp5 << shift;
dst[i+6] = temp6 << shift;
dst[i+7] = temp7 << shift;
}
}
}
@@ -150,6 +167,8 @@ static void ac3_downmix_c_fixed16(int16_t **samples, int16_t (*matrix)[2],
#include "ac3dec.c"
static const AVOption options[] = {
{ "drc_scale", "percentage of dynamic range compression to apply", OFFSET(drc_scale), AV_OPT_TYPE_FLOAT, {.dbl = 1.0}, 0.0, 6.0, PAR },
{ "heavy_compr", "heavy dynamic range compression enabled", OFFSET(heavy_compression), AV_OPT_TYPE_INT, {.i64 = 0 }, 0, 1, PAR },
{ NULL},
};

View File

@@ -32,6 +32,8 @@
static const AVOption options[] = {
{ "drc_scale", "percentage of dynamic range compression to apply", OFFSET(drc_scale), AV_OPT_TYPE_FLOAT, {.dbl = 1.0}, 0.0, 6.0, PAR },
{ "heavy_compr", "heavy dynamic range compression enabled", OFFSET(heavy_compression), AV_OPT_TYPE_INT, {.i64 = 0 }, 0, 1, PAR },
{ "target_level", "target level in -dBFS (0 not applied)", OFFSET(target_level), AV_OPT_TYPE_INT, {.i64 = 0 }, -31, 0, PAR },
{"dmix_mode", "Preferred Stereo Downmix Mode", OFFSET(preferred_stereo_downmix), AV_OPT_TYPE_INT, {.i64 = -1 }, -1, 2, 0, "dmix_mode"},
{"ltrt_cmixlev", "Lt/Rt Center Mix Level", OFFSET(ltrt_center_mix_level), AV_OPT_TYPE_FLOAT, {.dbl = -1.0 }, -1.0, 2.0, 0},

View File

@@ -36,6 +36,7 @@
#include "libavutil/internal.h"
#include "libavutil/opt.h"
#include "avcodec.h"
#include "me_cmp.h"
#include "put_bits.h"
#include "audiodsp.h"
#include "ac3dsp.h"
@@ -379,7 +380,7 @@ static void compute_exp_strategy(AC3EncodeContext *s)
exp_strategy[blk] = EXP_NEW;
continue;
}
exp_diff = s->dsp.sad[0](NULL, exp, exp - AC3_MAX_COEFS, 16, 16);
exp_diff = s->mecc.sad[0](NULL, exp, exp - AC3_MAX_COEFS, 16, 16);
exp_strategy[blk] = EXP_REUSE;
if (ch == CPL_CH && exp_diff > (EXP_DIFF_THRESHOLD * (s->blocks[blk].end_freq[ch] - s->start_freq[ch]) / AC3_MAX_COEFS))
exp_strategy[blk] = EXP_NEW;
@@ -2034,6 +2035,7 @@ av_cold int ff_ac3_encode_close(AVCodecContext *avctx)
av_freep(&s->qmant_buffer);
av_freep(&s->cpl_coord_exp_buffer);
av_freep(&s->cpl_coord_mant_buffer);
av_freep(&s->fdsp);
for (blk = 0; blk < s->num_blocks; blk++) {
AC3Block *block = &s->blocks[blk];
av_freep(&block->mdct_coef);
@@ -2326,50 +2328,50 @@ static av_cold int allocate_buffers(AC3EncodeContext *s)
if (s->allocate_sample_buffers(s))
goto alloc_fail;
FF_ALLOC_OR_GOTO(avctx, s->bap_buffer, total_coefs *
FF_ALLOC_ARRAY_OR_GOTO(avctx, s->bap_buffer, total_coefs,
sizeof(*s->bap_buffer), alloc_fail);
FF_ALLOC_OR_GOTO(avctx, s->bap1_buffer, total_coefs *
FF_ALLOC_ARRAY_OR_GOTO(avctx, s->bap1_buffer, total_coefs,
sizeof(*s->bap1_buffer), alloc_fail);
FF_ALLOCZ_OR_GOTO(avctx, s->mdct_coef_buffer, total_coefs *
FF_ALLOCZ_ARRAY_OR_GOTO(avctx, s->mdct_coef_buffer, total_coefs,
sizeof(*s->mdct_coef_buffer), alloc_fail);
FF_ALLOC_OR_GOTO(avctx, s->exp_buffer, total_coefs *
FF_ALLOC_ARRAY_OR_GOTO(avctx, s->exp_buffer, total_coefs,
sizeof(*s->exp_buffer), alloc_fail);
FF_ALLOC_OR_GOTO(avctx, s->grouped_exp_buffer, channel_blocks * 128 *
FF_ALLOC_ARRAY_OR_GOTO(avctx, s->grouped_exp_buffer, channel_blocks, 128 *
sizeof(*s->grouped_exp_buffer), alloc_fail);
FF_ALLOC_OR_GOTO(avctx, s->psd_buffer, total_coefs *
FF_ALLOC_ARRAY_OR_GOTO(avctx, s->psd_buffer, total_coefs,
sizeof(*s->psd_buffer), alloc_fail);
FF_ALLOC_OR_GOTO(avctx, s->band_psd_buffer, channel_blocks * 64 *
FF_ALLOC_ARRAY_OR_GOTO(avctx, s->band_psd_buffer, channel_blocks, 64 *
sizeof(*s->band_psd_buffer), alloc_fail);
FF_ALLOC_OR_GOTO(avctx, s->mask_buffer, channel_blocks * 64 *
FF_ALLOC_ARRAY_OR_GOTO(avctx, s->mask_buffer, channel_blocks, 64 *
sizeof(*s->mask_buffer), alloc_fail);
FF_ALLOC_OR_GOTO(avctx, s->qmant_buffer, total_coefs *
FF_ALLOC_ARRAY_OR_GOTO(avctx, s->qmant_buffer, total_coefs,
sizeof(*s->qmant_buffer), alloc_fail);
if (s->cpl_enabled) {
FF_ALLOC_OR_GOTO(avctx, s->cpl_coord_exp_buffer, channel_blocks * 16 *
FF_ALLOC_ARRAY_OR_GOTO(avctx, s->cpl_coord_exp_buffer, channel_blocks, 16 *
sizeof(*s->cpl_coord_exp_buffer), alloc_fail);
FF_ALLOC_OR_GOTO(avctx, s->cpl_coord_mant_buffer, channel_blocks * 16 *
FF_ALLOC_ARRAY_OR_GOTO(avctx, s->cpl_coord_mant_buffer, channel_blocks, 16 *
sizeof(*s->cpl_coord_mant_buffer), alloc_fail);
}
for (blk = 0; blk < s->num_blocks; blk++) {
AC3Block *block = &s->blocks[blk];
FF_ALLOCZ_OR_GOTO(avctx, block->mdct_coef, channels * sizeof(*block->mdct_coef),
FF_ALLOCZ_ARRAY_OR_GOTO(avctx, block->mdct_coef, channels, sizeof(*block->mdct_coef),
alloc_fail);
FF_ALLOCZ_OR_GOTO(avctx, block->exp, channels * sizeof(*block->exp),
FF_ALLOCZ_ARRAY_OR_GOTO(avctx, block->exp, channels, sizeof(*block->exp),
alloc_fail);
FF_ALLOCZ_OR_GOTO(avctx, block->grouped_exp, channels * sizeof(*block->grouped_exp),
FF_ALLOCZ_ARRAY_OR_GOTO(avctx, block->grouped_exp, channels, sizeof(*block->grouped_exp),
alloc_fail);
FF_ALLOCZ_OR_GOTO(avctx, block->psd, channels * sizeof(*block->psd),
FF_ALLOCZ_ARRAY_OR_GOTO(avctx, block->psd, channels, sizeof(*block->psd),
alloc_fail);
FF_ALLOCZ_OR_GOTO(avctx, block->band_psd, channels * sizeof(*block->band_psd),
FF_ALLOCZ_ARRAY_OR_GOTO(avctx, block->band_psd, channels, sizeof(*block->band_psd),
alloc_fail);
FF_ALLOCZ_OR_GOTO(avctx, block->mask, channels * sizeof(*block->mask),
FF_ALLOCZ_ARRAY_OR_GOTO(avctx, block->mask, channels, sizeof(*block->mask),
alloc_fail);
FF_ALLOCZ_OR_GOTO(avctx, block->qmant, channels * sizeof(*block->qmant),
FF_ALLOCZ_ARRAY_OR_GOTO(avctx, block->qmant, channels, sizeof(*block->qmant),
alloc_fail);
if (s->cpl_enabled) {
FF_ALLOCZ_OR_GOTO(avctx, block->cpl_coord_exp, channels * sizeof(*block->cpl_coord_exp),
FF_ALLOCZ_ARRAY_OR_GOTO(avctx, block->cpl_coord_exp, channels, sizeof(*block->cpl_coord_exp),
alloc_fail);
FF_ALLOCZ_OR_GOTO(avctx, block->cpl_coord_mant, channels * sizeof(*block->cpl_coord_mant),
FF_ALLOCZ_ARRAY_OR_GOTO(avctx, block->cpl_coord_mant, channels, sizeof(*block->cpl_coord_mant),
alloc_fail);
}
@@ -2392,11 +2394,11 @@ static av_cold int allocate_buffers(AC3EncodeContext *s)
}
if (!s->fixed_point) {
FF_ALLOCZ_OR_GOTO(avctx, s->fixed_coef_buffer, total_coefs *
FF_ALLOCZ_ARRAY_OR_GOTO(avctx, s->fixed_coef_buffer, total_coefs,
sizeof(*s->fixed_coef_buffer), alloc_fail);
for (blk = 0; blk < s->num_blocks; blk++) {
AC3Block *block = &s->blocks[blk];
FF_ALLOCZ_OR_GOTO(avctx, block->fixed_coef, channels *
FF_ALLOCZ_ARRAY_OR_GOTO(avctx, block->fixed_coef, channels,
sizeof(*block->fixed_coef), alloc_fail);
for (ch = 0; ch < channels; ch++)
block->fixed_coef[ch] = &s->fixed_coef_buffer[AC3_MAX_COEFS * (s->num_blocks * ch + blk)];
@@ -2404,7 +2406,7 @@ static av_cold int allocate_buffers(AC3EncodeContext *s)
} else {
for (blk = 0; blk < s->num_blocks; blk++) {
AC3Block *block = &s->blocks[blk];
FF_ALLOCZ_OR_GOTO(avctx, block->fixed_coef, channels *
FF_ALLOCZ_ARRAY_OR_GOTO(avctx, block->fixed_coef, channels,
sizeof(*block->fixed_coef), alloc_fail);
for (ch = 0; ch < channels; ch++)
block->fixed_coef[ch] = (int32_t *)block->mdct_coef[ch];
@@ -2433,7 +2435,7 @@ av_cold int ff_ac3_encode_init(AVCodecContext *avctx)
return ret;
avctx->frame_size = AC3_BLOCK_SIZE * s->num_blocks;
avctx->delay = AC3_BLOCK_SIZE;
avctx->initial_padding = AC3_BLOCK_SIZE;
s->bitstream_mode = avctx->audio_service_type;
if (s->bitstream_mode == AV_AUDIO_SERVICE_TYPE_KARAOKE)
@@ -2480,7 +2482,7 @@ av_cold int ff_ac3_encode_init(AVCodecContext *avctx)
goto init_fail;
ff_audiodsp_init(&s->adsp);
ff_dsputil_init(&s->dsp, avctx);
ff_me_cmp_init(&s->mecc, avctx);
ff_ac3dsp_init(&s->ac3dsp, avctx->flags & CODEC_FLAG_BITEXACT);
dprint_options(s);

View File

@@ -35,9 +35,9 @@
#include "ac3.h"
#include "ac3dsp.h"
#include "avcodec.h"
#include "dsputil.h"
#include "fft.h"
#include "mathops.h"
#include "me_cmp.h"
#include "put_bits.h"
#include "audiodsp.h"
@@ -80,12 +80,14 @@ typedef int64_t CoefSumType;
#define AC3ENC_OPT_NOT_INDICATED 0
#define AC3ENC_OPT_MODE_ON 2
#define AC3ENC_OPT_MODE_OFF 1
#define AC3ENC_OPT_DSUREX_DPLIIZ 3
/* specific option values */
#define AC3ENC_OPT_LARGE_ROOM 1
#define AC3ENC_OPT_SMALL_ROOM 2
#define AC3ENC_OPT_DOWNMIX_LTRT 1
#define AC3ENC_OPT_DOWNMIX_LORO 2
#define AC3ENC_OPT_DOWNMIX_DPLII 3 // reserved value in A/52, but used by encoders to indicate DPL2
#define AC3ENC_OPT_ADCONV_STANDARD 0
#define AC3ENC_OPT_ADCONV_HDCD 1
@@ -162,9 +164,9 @@ typedef struct AC3EncodeContext {
AC3EncOptions options; ///< encoding options
AVCodecContext *avctx; ///< parent AVCodecContext
PutBitContext pb; ///< bitstream writer context
DSPContext dsp;
AudioDSPContext adsp;
AVFloatDSPContext fdsp;
AVFloatDSPContext *fdsp;
MECmpContext mecc;
AC3DSPContext ac3dsp; ///< AC-3 optimized functions
FFTContext mdct; ///< FFT context for MDCT calculation
const SampleType *mdct_window; ///< MDCT window function array

Some files were not shown because too many files have changed in this diff Show More