Compare commits

..

2652 Commits

Author SHA1 Message Date
Michael Niedermayer
d2b2c66b17 MAINTAINERS: remove unmaintained releases
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-31 00:43:51 +01:00
Michael Niedermayer
bbea86d809 Update for 2.7.6
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-31 00:42:09 +01:00
Michael Niedermayer
12f256a729 avcodec/jpeg2000dec: More completely check cdef
Fixes out of array access
Fixes: j2k-poc.bin

Found-by: Lucas Leong <wmliang.tw@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 0aada30510)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-31 00:23:46 +01:00
Michael Niedermayer
b54b8a628c avutil/opt: check for and handle errors in av_opt_set_dict2()
Previously errors could result in random entries to be lost.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit f3ace85d88)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-31 00:23:46 +01:00
Paul B Mahol
d8b37664d5 avcodec/flacenc: fix calculation of bits required in case of custom sample rate
Sample rate of 11025 takes 16 bits but previous code would pick only 8.
Fixes assertion failure.

Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Signed-off-by: Paul B Mahol <onemda@gmail.com>
(cherry picked from commit 3e7d684912)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-31 00:23:46 +01:00
Michael Niedermayer
41f97fe378 avformat: Document urls a bit
Spell-checked-by: Moritz Barsnick <barsnick@gmx.net>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 3130556c0e)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-31 00:23:46 +01:00
Michael Niedermayer
197c0f618a avformat/libquvi: Set default demuxer and protocol limitations
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 15cc98a0f3)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-31 00:23:46 +01:00
Michael Niedermayer
573a7b4c67 avformat/concat: Check protocol prefix
Reviewed-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 8e32d01432)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-31 00:23:46 +01:00
Michael Niedermayer
3c7597f2e9 doc/demuxers: Document enable_drefs and use_absolute_path
Reviewed-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 9a8034b8bc)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-31 00:23:46 +01:00
Michael Niedermayer
965a8bda94 avcodec/mjpegdec: Check for end for both bytes in unescaping
Fixes assertion failure
Fixes: c40c779601b77dc6e19aaea0b04b9751/signal_sigabrt_7ffff6ae7cb7_5769_b94f6ec70caecb2d3d76b4771b109ac1.avi

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 509c9e74e5)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-31 00:23:46 +01:00
Michael Niedermayer
e229fbf5ce avcodec/mpegvideo_enc: Check for integer overflow in ff_mpv_reallocate_putbitbuffer()
Fixes assertion failure
Fixes: 6568d187979ce17878b6fe5fbbb89142/signal_sigabrt_7ffff6ae7cb7_7176_564bbc6741bdcf907f5c4e685c9a77a2.mpg

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit b65efbc0f4)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-31 00:23:45 +01:00
Michael Niedermayer
874945c7b9 avformat/avformat: Replace some references to filenames by urls
Reviewed-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 41e07390e0)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-31 00:23:45 +01:00
Michael Niedermayer
974f9d255d avcodec/wmaenc: Check ff_wma_init() for failure
Fixes null pointer dereference
Fixes: c4faf8280ba366bf00a79d425f2910a8/signal_sigsegv_1f96477_5177_1448ba7e4125faceb966f44ceb69abfa.qcp
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 19e456d48c)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-31 00:23:45 +01:00
Michael Niedermayer
302f11e719 avcodec/mpeg12enc: Move high resolution thread check to before initializing threads
Cleaner solution is welcome!

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit a53fbda9dc)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-31 00:23:45 +01:00
Michael Niedermayer
8c2f006d10 avformat/img2dec: Use AVOpenCallback
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit b750b67d13)

Conflicts:

	libavformat/img2dec.c
2016-01-31 00:23:45 +01:00
Michael Niedermayer
3cd17b9b5c avformat/avio: Limit url option parsing to the documented cases
This feature is not know much or used much AFAIK, and it might be helpfull in
exploits.
No specific case is known where it can be used in an exploit though
subsequent commits depend on this commit though

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 984d58a344)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-31 00:23:45 +01:00
Michael Niedermayer
4180a83892 avformat/img2dec: do not interpret the filename by default if a IO context has been opened
With this, user applications which use custom IO and have set a IO context will not have
their already opened IO context ignored and glob/seq being interpreted

Comments and tests from maintainers of user apps are welcome!

Liked-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 7ccedc1c78)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-31 00:23:45 +01:00
Michael Niedermayer
6fabd85865 avcodec/ass_split: Fix null pointer dereference in ff_ass_style_get()
Fixes: 55d71971da50365d542ed14b65565fe1/signal_sigsegv_4765a4_8499_f146af090a94f591d6254515c7700ef5.mkv

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Reviewed-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 158f0545d8)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-31 00:23:45 +01:00
Derek Buitenhuis
c6ab367dbe mov: Add an option to toggle dref opening
This feature is mostly only used by NLE software, and is
both of dubious value being enabled by default, and a
possible security risk.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 712d962a6a)

Conflicts:

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

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-31 00:23:45 +01:00
Michael Niedermayer
40e846bb3f avcodec/gif: Fix lzw buffer size
Fixes out of array access
Fixes: aaa479088e6fb40b04837b3119f47b04/asan_heap-oob_e38c68_8576_9d653078b2470700e2834636f12ff557.tga

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 03d83ba34b)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-31 00:23:45 +01:00
Michael Niedermayer
f6755e5e19 avcodec/put_bits: Assert buf_ptr in flush_put_bits()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 3ef5de0f19)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-31 00:23:45 +01:00
Michael Niedermayer
eb0872335f avcodec/tiff: Check subsample & rps values more completely
Fixes out of array access
Fixes: 83aedfb29af669c4d6e10f1bfad974d2/asan_heap-oob_1ab42fe_4984_9f6ec14462f8d8a00ea24b320572a963.tif

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 89f464e9c2)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-31 00:23:45 +01:00
Michael Niedermayer
1b6390dd5b swscale/swscale: Add some sanity checks for srcSlice* parameters
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 321e85e176)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-31 00:23:45 +01:00
Michael Niedermayer
edc7ef376b swscale/x86/rgb2rgb_template: Fix planar2x() for short width
Fixes: 451b3e0cf956c0bd2f27ed753ac24050/asan_heap-oob_2873c01_3231_7ed10a9464d15f0d57277f5917c566a8.AVI

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit c8a9aaab26)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-31 00:23:45 +01:00
Michael Niedermayer
1a88eef93b swscale/swscale_unscaled: Fix odd height inputs for bayer_to_yv12_wrapper()
Fixes: 372d2df1f04b49e25f109f07f90b1505/asan_heap-oob_2835d2e_8501_99e0114d7ba3a6db885d0b4684d200c1.cine
Fixes out of array read

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 757248ea3c)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-31 00:23:45 +01:00
Michael Niedermayer
d3cefc271d swscale/swscale_unscaled: Fix odd height inputs for bayer_to_rgb24_wrapper()
Fixes: 372d2df1f04b49e25f109f07f90b1505/asan_heap-oob_2835d2e_8501_99e0114d7ba3a6db885d0b4684d200c1.cine
Fixes out of array read

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit ad3b6fa7d8)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-31 00:23:45 +01:00
Michael Niedermayer
9d230f4666 avcodec/aacenc: Check both channels for finiteness
Fixes null pointer dereference
Fixes: 10412fc52ecc6eab40ed67f82ca7b372/signal_sigsegv_2618c99_2129_f808373959e46afb165593332799ffbc.aif

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 057549a9cc)

Conflicts:

	libavcodec/aacenc.c
2016-01-31 00:23:45 +01:00
Michael Niedermayer
4b17205c77 swscale/swscale-test: Fix slice height in random reference data creation.
Found-by: Pedro Arthur <bygrandao@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-31 00:23:45 +01:00
Andreas Cadhalpun
41157f6bff dca: fix misaligned access in avpriv_dca_convert_bitstream
src and dst are only 8-bit-aligned, so accessing them as uint16_t causes
SIGBUS crashes on architectures like sparc.

This fixes ubsan runtime error: load of misaligned address for type
'const uint16_t', which requires 2 byte alignment

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit 44ac13eed4)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-01-28 01:05:05 +01:00
Andreas Cadhalpun
f106232e94 brstm: fix missing closing brace
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit 1cb2331eca)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-01-28 01:05:04 +01:00
Andreas Cadhalpun
269a522aec brstm: also allocate b->table in read_packet
This fixes NULL pointer dereferencing if the codec is forced to
adpcm_thp even though a different one was detected.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit bcf4ee26a0)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-01-28 01:05:04 +01:00
Andreas Cadhalpun
496c02a065 brstm: make sure an ADPC chunk was read for adpcm_thp
This fixes NULL pointer dereferencing.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit d7d37c479f)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-01-28 01:05:04 +01:00
Andreas Cadhalpun
6fe77207ed vorbisdec: reject rangebits 0 with non-0 partitions
This causes non-unique elements in floor_setup->data.t1.list, which
makes the stream undecodable according to the specification.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit e7a7b3135a)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-01-28 00:49:17 +01:00
Andreas Cadhalpun
00a0c0fd75 vorbisdec: reject channel mapping with less than two channels
It causes the angle channel number to equal the magnitude channel
number, which makes the stream undecodable according to the
specification.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit b4b13848de)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-01-28 00:49:12 +01:00
Andreas Cadhalpun
a21ec4e1ee ffmdec: reset packet_end in case of failure
This fixes segmentation faults caused by passing a packet_ptr of NULL to
memcpy.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit 40eb2531b2)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-01-28 00:49:08 +01:00
Paul B Mahol
0c03d860f4 avformat/ipmovie: put video decoding_map_size into packet and use it in decoder
The size of decoding map can differ from one calculated
internally, producing artifacts while decoding video.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
(cherry picked from commit c293ef258c)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-01-28 00:48:51 +01:00
James Almer
a697577a64 avcodec/wavpackenc: print channel count in av_log call
Fixes a warning with -Wformat-extra-args
(cherry picked from commit 17e7fdf61a)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-15 17:53:59 +01:00
Michael Niedermayer
99f3f5a8d5 Update for 2.7.5
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-15 16:29:16 +01:00
James Almer
d4a7e89793 configure: bump copyright year to 2016
Signed-off-by: James Almer <jamrial@gmail.com>
(cherry picked from commit 78129978f0)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-15 16:26:06 +01:00
Michael Niedermayer
e681e92d2c avformat/hls: Even stricter URL checks
This fixes a null pointer dereference at least

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit cfda1bea4c)

Conflicts:

	libavformat/hls.c
2016-01-15 16:00:32 +01:00
Michael Niedermayer
123d356829 avformat/hls: More strict url checks
No case is known where these are needed

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 6ba42b6482)

Conflicts:

	libavformat/hls.c

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-15 16:00:32 +01:00
Michael Niedermayer
119659b759 swscale/utils: Detect and skip unneeded sws_setColorspaceDetails() calls
This avoids running various table inits unnecessarily

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit cc538e9dbd)

Conflicts:

	libswscale/utils.c
2016-01-15 16:00:32 +01:00
Michael Niedermayer
f0cc6f74fc swscale/yuv2rgb: Increase YUV2RGB table headroom
This makes SWS more robust
Fixes: 07650a772d98aa63b0fed6370dc89037/asan_heap-oob_27ddeaf_2657_2c81ff264dee5d9712cb3251fb9c3bbb.264
Fixes: out of array read

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 8f3a9a8c27)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-15 16:00:31 +01:00
Michael Niedermayer
f5060bce31 swscale/yuv2rgb: Factor YUVRGB_TABLE_LUMA_HEADROOM out
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 5e5f82a287)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-15 16:00:31 +01:00
Maxim Andreev
cde38373d1 avformat/hls: forbid all protocols except http(s) & file
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 7145e80b4f)

Conflicts:

	libavformat/hls.c
2016-01-15 16:00:31 +01:00
Michael Niedermayer
a2b234b917 avformat/aviobuf: Fix end check in put_str16()
Fixes out of array read
Fixes: 03c406ec9530e594a074ce2979f8a1f0/asan_heap-oob_7dec26_4664_37c52495b2870a2eaac65f53958e76c1.flac

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 115fb6d03e)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-15 16:00:31 +01:00
Michael Niedermayer
f1cdd93517 avformat/asfenc: Check pts
Fixes integer overflow
Fixes: 0063df8be3aaa30dd6d76f59c8f818c8/signal_sigsegv_7b7b59_3634_bf418b6822bbfa68734411d96b667be3.mov

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 7c0b84d899)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-15 16:00:31 +01:00
Michael Niedermayer
0e3c36518d avcodec/mpeg4video: Check time_incr
Fixes assertion failure
Fixes out of memory access

Fixes: test_casex.ivf

Found-by: Tyson Smith <twsmith@mozilla.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 7c97946d61)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-15 16:00:31 +01:00
Michael Niedermayer
858f43043f avcodec/wavpackenc: Check the number of channels
They are stored in a byte, thus more than 255 is not possible

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 59c915a403)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-15 16:00:31 +01:00
Michael Niedermayer
d0fd9bec1f avcodec/wavpackenc: Headers are per channel
Fixes: 1b8b83a53bfa751f01b1daa65a4758db/signal_sigabrt_7ffff6ae7cb7_7488_403f71d1a2565b598d01b6cb110fac8f.aiff
Fixes: assertion failure

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 26757b0279)

Conflicts:

	libavcodec/wavpackenc.c

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-15 16:00:31 +01:00
Michael Niedermayer
d755045e78 avcodec/aacdec_template: Check id_map
Fixes index out of bounds error
Fixes: aac_index_out_of_bounds.wmv

Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 590863876d)

Conflicts:

	libavcodec/aacdec_template.c
2016-01-15 16:00:31 +01:00
Michael Niedermayer
3820c6a979 avcodec/dvdec: Fix "left shift of negative value -254"
Fixes: dvdec_left_shift.avi

Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 93ac72a98d)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-15 16:00:31 +01:00
Michael Niedermayer
7cfea0d41c avcodec/mjpegdec: Fix negative shift
Fixes: mjpeg_left_shift.avi

Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit d86d7b2486)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-15 16:00:31 +01:00
Michael Niedermayer
8c08247990 avcodec/mss2: Check for repeat overflow
Fixes: mss2_left_shift.wmv

Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit e273dade78)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-15 16:00:31 +01:00
Michael Niedermayer
2316c35865 avformat: Add integer fps from 31 to 60 to get_std_framerate()
Fixes Ticket 5106

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 2039b3e751)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-15 16:00:31 +01:00
Michael Niedermayer
3dd0d43d8c avcodec/mpegvideo_enc: Clip bits_per_raw_sample within valid range
Fixes out of array read
Fixes: test_case-mdc.264 (b47be15a120979f5a1a945c938cbef33)

Found-by: Tyson Smith <twsmith@mozilla.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 13f266b50c)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-15 16:00:31 +01:00
Thomas Mundt
2f6d3459d9 avfilter/vf_scale: set proper out frame color range
Prevents that following scalers in the filter chain will do unintentional color range conversions.
Fixes Ticket #5096

Signed-off-by: Thomas Mundt <loudmax@yahoo.de>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 73ce8162f3)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-15 16:00:31 +01:00
Michael Niedermayer
2c58d73413 avcodec/motion_est: Fix mv_penalty table size
Fixes out of array read

Found-by: Tyson Smith <twsmith@mozilla.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 5b4da8a38a)

Conflicts:

	libavcodec/motion_est.h
2016-01-15 16:00:31 +01:00
Michael Niedermayer
5b14f436c6 avcodec/h264_slice: Fix integer overflow in implicit weight computation
Fixes mozilla bug 1230423

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 7cc01c2572)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-15 16:00:31 +01:00
Michael Niedermayer
d7a13ff23b swscale/utils: Use normal bilinear scaler if fast cannot be used due to tiny dimensions
Fixes Ticket4960

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 1edf129cbc)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-15 16:00:31 +01:00
Michael Niedermayer
b65c06ee5e avcodec/put_bits: Always check buffer end before writing
This causes a overall slowdown of 0.1 % (tested with mpeg4 single thread encoding of matrixbench at QP=3)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit cccb0ffccc)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-15 16:00:31 +01:00
Andreas Cadhalpun
a7a7c6e44c mjpegdec: extend check for incompatible values of s->rgb and s->ls
This can happen if s->ls changes from 0 to 1, but picture allocation is
skipped due to s->interlaced.

In that case ff_jpegls_decode_picture could be called even though the
s->picture_ptr frame has the wrong pixel format and thus a wrong
linesize, which results in a too small zero buffer being allocated.

This fixes an out-of-bounds read in ls_decode_line.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit 7ea2db6eaf)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-15 16:00:31 +01:00
Michael Niedermayer
d41b91ba33 swscale/utils: Fix intermediate format for cascaded alpha downscaling
Fixes Ticket4926

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit b83d8be6bf)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-15 16:00:31 +01:00
James Almer
34c5f6685a x86/float_dsp: zero extend offset from ff_scalarproduct_float_sse
Reviewed-by: Christophe Gisquet <christophe.gisquet@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
(cherry picked from commit dc79824deb)
2016-01-08 14:02:47 -03:00
Paul B Mahol
784506c2b5 avfilter/vf_zoompan: do not free frame we pushed to lavfi
Signed-off-by: Paul B Mahol <onemda@gmail.com>
(cherry picked from commit 8bcd1997ea)

Fixes ticket #5113.
2016-01-02 21:25:51 +01:00
Michael Niedermayer
26241af6f8 Update for 2.7.4
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-21 14:53:03 +01:00
Andreas Cadhalpun
7ad0581686 nuv: sanitize negative fps rate
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit f6830cf5ba)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-12-20 14:18:11 +01:00
Andreas Cadhalpun
3219de21f4 rawdec: only exempt BIT0 with need_copy from buffer sanity check
Otherwise the too small buffer is directly used in the frame, causing
segmentation faults, when trying to use the frame.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit 699e68371e)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-12-20 14:18:08 +01:00
Andreas Cadhalpun
93eda8dcba mlvdec: check that index_entries exist
This fixes NULL pointer dereferencing.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit 9fcfe4a3cd)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-12-20 14:18:04 +01:00
Andreas Cadhalpun
1dc135e03d nutdec: reject negative value_len in read_sm_data
If it is negative, it can cause the byte position to move backwards in
avio_skip, which in turn makes sm_size negative and thus size larger
than the size of the packet buffer, causing invalid writes in avio_read.

Also fix potential overflow of avio_tell(bc) + value_len.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit ce10f572c1)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-12-20 14:17:59 +01:00
Andreas Cadhalpun
f040f3e5d5 xwddec: prevent overflow of lsize * avctx->height
This is used to check if the input buffer is large enough, so if this
overflows it can cause a false negative leading to a segmentation fault
in bytestream2_get_bufferu.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit 9d38f06d05)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-12-20 14:17:55 +01:00
Andreas Cadhalpun
7f320ed15d nutdec: only copy the header if it exists
Fixes ubsan runtime error: null pointer passed as argument 2, which is
declared to never be null

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit 9f82506c79)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-12-20 14:17:51 +01:00
Andreas Cadhalpun
5b88d24f24 exr: fix out of bounds read in get_code
This macro unconditionally used out[-1], which causes an out of bounds
read, if out is the very beginning of the buffer.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit 90b99a8107)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-12-20 14:17:47 +01:00
Andreas Cadhalpun
3e187a9a2d on2avc: limit number of bits to 30 in get_egolomb
More don't fit into the integer output.

Also use get_bits_long, since get_bits only supports reading up to 25
bits, while get_bits_long supports the full integer range.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit 4d5c3b02e9)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-12-20 14:17:42 +01:00
Michael Niedermayer
4bfaa040fc avcodec/mpeg4videodec: also for empty partitioned slices
Fixes assertion failure
Fixes: id_acf3e47f864e1ee4c7b86c0653e0ff31e5bde56e.m4v

Found-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 70f13abb4f)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-20 03:24:22 +01:00
Michael Niedermayer
5124bf8ea6 avcodec/h264_refs: Fix long_idx check
Fixes out of array read
Fixes mozilla bug 1233606

Found-by: Tyson Smith
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit b92b4775a0)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-20 03:24:22 +01:00
Michael Niedermayer
50ce06cc7c avcodec/h264_mc_template: prefetch list1 only if it is used in the MB
Fixes ubsan warning
Fixes Mozilla bug 1230276

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit c8ea57664f)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-20 03:24:22 +01:00
Michael Niedermayer
a628b70831 avcodec/h264_slice: Simplify ref2frm indexing
This also suppresses a ubsan warning
Fixes Mozilla bug 1230247

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit ef8f6464a5)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-20 03:24:22 +01:00
Michael Niedermayer
e274976c92 Revert "avcodec/aarch64/neon.S: Update neon.s for transpose_4x4H"
The change was not correct and broke H264

This reverts commit cd83f899c9.
(cherry picked from commit 95b59bfb9d)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-20 03:24:22 +01:00
Michael Niedermayer
1586fda2fc avfilter/vf_mpdecimate: Add missing emms_c()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 997de2e810)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-20 03:24:22 +01:00
Andreas Cadhalpun
34b9c7612d sonic: make sure num_taps * channels is not larger than frame_size
If that is the case, the loop setting predictor_state in
sonic_decode_frame causes out of bounds reads of int_samples, which has
only frame_size number of elements.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit 9637c2531f)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-12-17 21:20:43 +01:00
Andreas Cadhalpun
ea4b99f82c opus_silk: fix typo causing overflow in silk_stabilize_lsf
Due to this typo max_center can be too large, causing nlsf to be set to
too large values, which in turn can cause nlsf[i - 1] + min_delta[i] to
overflow to a negative value, which is not allowed for nlsf and can
cause an out of bounds read in silk_lsf2lpc.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit f61d44b74a)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-12-17 21:20:38 +01:00
Andreas Cadhalpun
8b30abd020 ffm: reject invalid codec_id and codec_type
A negative codec_id cannot be handled by the found_decoder API of
AVStream->info: if the codec_id is not recognized, found_decoder is set
to -codec_id, which has to be '<0' according to the API documentation.

This can cause NULL pointer dereferencing in try_decode_frame.

Also make sure the codec_type matches the expected one for codec_id.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit ecf63b7cc2)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-12-17 21:20:34 +01:00
Andreas Cadhalpun
435b0ab969 golomb: always check for invalid UE golomb codes in get_ue_golomb
Also correct the check to reject log < 7, because UPDATE_CACHE only
guarantees 25 meaningful bits.

This fixes undefined behavior:
runtime error: shift exponent is negative

Testing with START/STOP timers in get_ue_golomb, one for the first
branch (A) and one for the second (B), shows that there is practically no
slowdown, e.g. for the cavs decoder:

With the check in the B branch:
    629 decicycles in get_ue_golomb B, 4194260 runs,     44 skips
    433 decicycles in get_ue_golomb A,268434102 runs,   1354 skips

Without the check:
    624 decicycles in get_ue_golomb B, 4194273 runs,     31 skips
    433 decicycles in get_ue_golomb A,268434203 runs,   1253 skips

Since the B branch is executed far less often than the A branch, this
change is negligible, even more so for the h264 decoder, where the ratio
B/A is a lot smaller.

Fixes: mozilla bug 1230239
Fixes: fbeb8b2c7c996e9b91c6b1af319d7ebc/asan_heap-oob_195450f_2743_e8856ece4579ea486670be2b236099a0.bit

Found-by: Tyson Smith
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit 22e960ad47)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-12-17 21:20:29 +01:00
Andreas Cadhalpun
c78d268e9f aaccoder: prevent crash of anmr coder
If minq is negative, the range of sf_idx can be larger than
SCALE_MAX_DIFF allows, causing assertion failures later in
encode_scale_factors.

Reviewed-by: Claudio Freire <klaussfreire@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit 7a4652dd5d)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-12-17 21:19:23 +01:00
Andreas Cadhalpun
e56d322032 ffmdec: reject zero-sized chunks
If size is zero, avio_get_str fails, leaving the buffer uninitialized.
This causes invalid reads in av_set_options_string.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit a611375db5)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-12-17 21:19:19 +01:00
Michael Niedermayer
3ffc224435 swscale/x86/rgb2rgb_template: Fallback to mmx in interleaveBytes() if the alignment is insufficient for SSE*
This also as a sideeffect fixes the non aligned case

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit a066ff89bc)
2015-12-15 11:17:44 +01:00
Michael Niedermayer
e7e4c65571 swscale/x86/rgb2rgb_template: Do not crash on misaligend stride
Fixes Ticket5013

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 80bfce35cc)
2015-12-15 11:17:38 +01:00
Michael Niedermayer
4aa876f288 avformat/mxfenc: Do not crash if there is no packet in the first stream
Fixes: Ticket4914

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit b51e7554e7)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 16:51:01 +01:00
zjh8890
a9ce4583df avcodec/aarch64/neon.S: Update neon.s for transpose_4x4H
The transpose_4x4H is wrong which cost me much time to find this bug. The orders of r2 and r3 are wrong,
this bug waste me much time while I make aarch64 arm instruction which used the function.
(cherry picked from commit c18176bd55)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 16:51:01 +01:00
Rainer Hochecker
93fa19addf avformat/utils: estimate_timings_from_pts - increase retry counter, fixes invalid duration for ts files with hevc codec
Fixes a mpegts file with hevc that fails estimating duration. Increasing number of
retries fixes the issue.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 2d8c2f1a28)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 16:51:01 +01:00
Michael Niedermayer
5c7ffbbda3 avformat/matroskaenc: Check codecdelay before use
Fixes CID1238790

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit e6971db12b)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 16:51:01 +01:00
Michael Niedermayer
8be41ad2bb avutil/mathematics: Fix division by 0
Fixes: CID1341571

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit bc8b1e694c)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 16:51:01 +01:00
Andreas Cadhalpun
9a8d2f51cf mjpegdec: consider chroma subsampling in size check
If the chroma components are subsampled, smaller buffers are allocated
for them. In that case the maximal block_offset for the chroma
components is not as large as for the luma component.

This fixes out of bounds writes causing segmentation faults or memory
corruption.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit 5adb5d9d89)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 16:51:01 +01:00
Michael Niedermayer
d013f51303 avcodec/hevc: Check max ctb addresses for WPP
Fixes out of array read
Fixes: 2f95ddd996db8a6281d2e18c184595a7/asan_heap-oob_192fe91_3330_58e4441181e30a66c19f743dcb392347.bit

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit dad354f38d)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 16:51:01 +01:00
Michael Niedermayer
548a07cdc4 avcodec/vp3: ensure header is parsed successfully before tables
Fixes assertion failure
Fixes: 266ee543812e934f7b4a72923a2701d4/signal_sigabrt_7ffff6ae7cc9_7322_85218d61759d461bdf7387180e8000c9.ogg

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 26379d4fdd)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 16:51:01 +01:00
Michael Niedermayer
0f331f94c0 avcodec/jpeg2000dec: Check bpno in decode_cblk()
Fixes: undefined shift
Fixes: c409ef86f892335a0a164b5871174d5a/asan_heap-oob_1dff564_2159_162b7234616deab02b544410455eb07b.mov

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit a85b02dcf7)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 16:51:01 +01:00
Michael Niedermayer
0a06e2824a avcodec/pgssubdec: Fix left shift of 255 by 24 places cannot be represented in type int
Fixes: b293a6479bb4b5286cff24d356bfd955/asan_generic_225c3c9_7819_cc526b657450c6cdef1371b526499626.mkv

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 4f2419888b)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 16:51:01 +01:00
Michael Niedermayer
dc0bc71471 swscale/utils: Fix for runtime error: left shift of negative value -1
Fixes: c106b36fa36db8ff8f3ed0c82be7bea2/asan_heap-oob_32699f0_6321_467b9a1d7e03d7cfd310b7e65dc53bcc.mov

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 325b59368d)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 16:51:01 +01:00
Michael Niedermayer
5af5396970 avcodec/hevc: Fix integer overflow of entry_point_offset
Fixes out of array read
Fixes: d41d8cd98f00b204e9800998ecf8427e/signal_sigsegv_321165b_7641_077dfcd8cbc80b1c0b470c8554cd6ffb.bit

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 2140858524)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 16:51:01 +01:00
Michael Niedermayer
d17298b666 avcodec/dirac_parser: Check that there is a previous PU before accessing it
Fixes out of array read
Fixes: 99d142c47e6ba3510a74b872a1a2ae72/asan_heap-oob_11b36f4_3811_0f5c69e7609a88a580135678de1df844.dxa

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit a08681f1e6)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 16:51:01 +01:00
Michael Niedermayer
ece3912daf avcodec/dirac_parser: Add basic validity checks for next_pu_offset and prev_pu_offset
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit c7d6ec947c)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 16:51:01 +01:00
Michael Niedermayer
d092b7f04c avcodec/dirac_parser: Fix potential overflows in pointer checks
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 79798f7c57)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 16:51:01 +01:00
Michael Niedermayer
1601420be4 avcodec/wmaprodec: Check bits per sample to be within the range not causing integer overflows
Fixes: 549d5aab1480d10f2a775ed90b0342f1/signal_sigabrt_7ffff6ae7cc9_5643_96bbb0cfe3e28be1dadfce1075016345.wma

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 66e05f6ff5)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 16:51:00 +01:00
Michael Niedermayer
bdf79f29db avcodec/wmaprodec: Fix overflow of cutoff
Fixes: 129ca3e28d73af7b1e24a9d4118e7a2d/signal_sigabrt_7ffff6ae7cc9_836_762b310fc3ef6087bd7771e5d8e90b9b.asf

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 0c56f8303e)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 16:51:00 +01:00
Michael Niedermayer
4e80d4bf25 avformat/smacker: fix integer overflow with pts_inc
Fixes: ce19e41f0ef1e52a23edc488faecdb58/asan_heap-oob_2504e97_4202_ffa0df1baed14022b9bfd4f8ac23d0cb.smk

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 7ed47e9729)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 16:51:00 +01:00
Michael Niedermayer
e3ffc7ab4a avcodec/vp3: Fix "runtime error: left shift of negative value"
Fixes: 5c6129154b356b80bcab86f9e3ee5d29/signal_sigabrt_7ffff6ae7cc9_7322_d26ac6d7cb6567db1b8be0159b387d0b.ogg

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 18268f761b)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 16:51:00 +01:00
Timo Teräs
76cb34f7f5 mpegencts: Fix overflow in cbr mode period calculations
ts->mux_rate is int (signed 32-bit) type. The period calculations
will start to overflow when mux_rate > 5mbps. This fixes overflows
by converting first to 64-bit type.

Fixes #5044.

Signed-off-by: Timo Teräs <timo.teras@iki.fi>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 64f7db554e)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 16:51:00 +01:00
Michael Niedermayer
da87a699ea avutil/timecode: Fix fps check
The fps variable is explicitly set to -1 in case of some errors, the check must
thus be signed or the code setting it needs to use 0 as error code
the type of the field could be changed as well but its in an installed header

Fixes: integer overflow
Fixes: 9982cc157b1ea90429435640a989122f/asan_generic_3ad004a_3799_22cf198d9cd09928e2d9ad250474fa58.mov

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit b46dcd5209)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 16:51:00 +01:00
Michael Niedermayer
86a52988bd avutil/mathematics: return INT64_MIN (=AV_NOPTS_VALUE) from av_rescale_rnd() for overflows
Fixes integer overflow
Fixes: mozilla bug 1229167

Found-by: Tyson Smith
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit f03c2ceec1)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 16:51:00 +01:00
Michael Niedermayer
d259a0534e avcodec/apedec: Check length in long_filter_high_3800()
Fixes out of array read
Fixes: 0a7ff0c1d93da9cef28a315ec91b692a/asan_heap-oob_4a52e5_3604_9c56dbb20e308f4faeef7b35f688521a.ape

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit cd7524fdd1)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 16:51:00 +01:00
Michael Niedermayer
710dccf036 avcodec/vp3: always set pix_fmt in theora_decode_header()
Fixes assertion failure
Fixes: d0bb0662da342ec65f8f2a081222e6b9/signal_sigabrt_7ffff6ae7cc9_5471_82964f0a9ac2f4d3d59390c15473f6f7.ogg

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit a814f1d364)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 16:51:00 +01:00
Michael Niedermayer
fc69fa8474 avcodec/mpeg4videodec: Check available data before reading custom matrix
Fixes: out of array read
Fixes: 76c515fc3779d1b838667c61ea13ce92/asan_heap-oob_1fc0d07_8913_794a4629a264ebdb25b58d3a94ed1785.bit

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 891dc8f875)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 16:51:00 +01:00
Michael Niedermayer
88ccca204a avutil/mathematics: Do not treat INT64_MIN as positive in av_rescale_rnd
The code expects actual positive numbers and gives completely wrong
results if INT64_MIN is treated as positive
Instead clip it into the valid range that is add 1 and treat it as
negative

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 25e37f5ea9)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 16:51:00 +01:00
Michael Niedermayer
07a3024631 avutil/integer: Fix av_mod_i() with negative dividend
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 3a9cb18855)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 16:51:00 +01:00
Michael Niedermayer
cf1f615b67 avformat/dump: Fix integer overflow in av_dump_format()
Fixes part of mozilla bug 1229167

Found-by: Tyson Smith
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 8e7f452022)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 16:51:00 +01:00
Michael Niedermayer
900039e7dc avcodec/h264_refs: Check that long references match before use
Fixes out of array read
Fixes: 59bb925e90201fa0f87f0a31945d43b5/asan_heap-oob_4a52e5_3388_66027f11e3d072f1e02401ecc6193361.jvt

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit aa427537b5)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 16:51:00 +01:00
Michael Niedermayer
fad0748b92 avcodec/utils: Clear dimensions in ff_get_buffer() on failure
Fixes out of array access
Fixes: 482d8f2fd17c9f532b586458a33f267c/asan_heap-oob_4a52b6_7417_1d08d477736d66cdadd833d146bb8bae.mov

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit abee0a1c60)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 16:51:00 +01:00
Michael Niedermayer
6c25411c06 avcodec/utils: Use 64bit for aspect ratio calculation in avcodec_string()
Fixes integer overflow
Fixes: 3a45b2ae02f2cf12b7bd99543cdcdae5/asan_heap-oob_1dff502_8022_899f75e1e81046ebd7b6c2394a1419f4.mov

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 4f03bebc79)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 16:51:00 +01:00
Michael Niedermayer
c1d29678f1 avcodec/vp3: Clear context on reinitialization failure
Fixes null pointer dereference
Fixes: 1536b9b096a8f95b742bae9d3d761cc6/signal_sigsegv_294aaed_2039_8d1797aeb823ea43858d0fa45c9eb899.ogv

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 6105b7219a)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 16:51:00 +01:00
Michael Niedermayer
4fe6f9f627 avcodec/hevc: allocate entries unconditionally
Fixes out of array access
Fixes: 08664a2a7921ef48172f26495c7455be/asan_heap-oob_23036c6_3301_523388ef84285a0270caf67a43247b59.bit

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit d85aa76115)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 16:51:00 +01:00
Michael Niedermayer
694416e327 avcodec/hevc_cabac: Fix multiple integer overflows
Fixes: 04ec80eefa77aecd7a49a442cc02baea/asan_heap-oob_19544fa_3303_1905796cd9d8e15f86d664332caabc00.bit

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit d5028f61e4)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 16:51:00 +01:00
Michael Niedermayer
c1db1a5ff4 avcodec/jpeg2000dwt: Check ndeclevels before calling dwt_encode*()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit feb3f39614)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 16:51:00 +01:00
Michael Niedermayer
8ef86669ca avcodec/jpeg2000dwt: Check ndeclevels before calling dwt_decode*()
Fixes out of array access
Fixes: 01859c9a9ac6cd60a008274123275574/asan_heap-oob_1dff571_8250_50d3d1611e294c3519fd1fa82198b69b.avi

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 75422280fb)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 16:51:00 +01:00
Michael Niedermayer
0cd23e0d1e avcodec/hevc: Check entry_point_offsets
Fixes out of array read
Fixes: 007c4a36608ebdf27ee260ad60a81184/asan_heap-oob_32076b4_2243_116b1cb29d91cc4974d6680e3d10bd91.bit

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit ef9f7bbfa4)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 16:51:00 +01:00
Michael Niedermayer
ed3d433676 avcodec/cabac: Check initial cabac decoder state
Fixes integer overflows
Fixes: 1430e9c43fae47a24c179c7c54f94918/signal_sigsegv_421427_2340_591e9810c7b09efe501ad84638c9e9f8.264

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Found-by: xiedingbao (Ticket4727)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 8000d484b8)

Conflicts:

	libavcodec/cabac.h
2015-12-14 16:51:00 +01:00
Michael Niedermayer
1258bdf7f0 avcodec/cabac_functions: Fix "left shift of negative value -31767"
Fixes: 1430e9c43fae47a24c179c7c54f94918/signal_sigsegv_421427_2340_591e9810c7b09efe501ad84638c9e9f8.264

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Found-by: xiedingbao (Ticket4727)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit a1f6b05f52)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 16:51:00 +01:00
Michael Niedermayer
54e94522b8 avcodec/h264_slice: Limit max_contexts when slice_context_count is initialized
Fixes out of array access
Fixes: 1430e9c43fae47a24c179c7c54f94918/signal_sigsegv_421427_2049_f2192b6829ab6e0eefcb035329c03c60.264

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 4ea4d2f438)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 16:51:00 +01:00
Michael Niedermayer
8405b63294 avcodec/vp8: Do not use num_coeff_partitions in thread/buffer setup
The variable is not a constant and can lead to race conditions

Fixes: repro.webm (not reproducable with FFmpeg alone)

Found-by: Dale Curtis <dalecurtis@google.com>
Tested-by: Dale Curtis <dalecurtis@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit dabea74d0e)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 16:51:00 +01:00
Michael Niedermayer
e6264f00ad avcodec/ffv1dec: Clear quant_table_count if its invalid
Fixes deallocation of corrupted pointer
Fixes: 343dfbe142a38b521ed069dc4ea7c03b/signal_sigsegv_421427_4074_ffb11959610278cd40dbc153464aa254.avi
No releases affected

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit e04126072e)

Fixes ticket #5052.
2015-12-02 12:03:10 +01:00
Michael Niedermayer
183f580594 avcodec/ffv1dec: Print an error if the quant table count is invalid
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit a8b254e436)
2015-12-02 11:59:00 +01:00
Andrey Utkin
70373bde2d doc/filters/drawtext: fix centering example
Signed-off-by: Andrey Utkin <andrey.od.utkin@gmail.com>
Signed-off-by: Lou Logan <lou@lrcd.com>
(cherry picked from commit 648b26acc5)
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2015-12-01 17:32:45 -08:00
Andreas Cadhalpun
67ed1ee680 hqx: correct type and size check of info_offset
It is used as size argument of ff_canopus_parse_info_tag, which uses it
as size argument to bytestream2_init, which only supports sizes up to
INT_MAX.
Changing it's type to unsigned simplifies the check.

Reviewed-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit 1ed7fcd42a)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-11-26 01:37:13 +01:00
Andreas Cadhalpun
1f6c88e287 mxfdec: check edit_rate also for physical_track
Previously only the edit_rate of material_track was checked.
If it's negative, it causes assertion failures in av_rescale_rnd.

Reviewed-by: Tim Nicholson <nichot20-at-yahoo.com@ffmpeg.org>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit 047bf82c18)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-11-26 01:37:13 +01:00
Andreas Cadhalpun
725d7fb2c6 mpegvideo: clear overread in clear_context
Otherwise the h263p decoder can try to copy overread bytes, even though
buffer is NULL.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit 6a69a175e7)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-11-26 01:37:13 +01:00
Andreas Cadhalpun
258584cfaf dvdsubdec: validate offset2 similar to offset1
If it is negative, it causes segmentation faults in decode_rle.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit f621749d11)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-11-26 01:37:13 +01:00
Andreas Cadhalpun
9e3848328d aacdec: don't return frames without data from aac_decode_er_frame
This is similar to commit ec38a1b for aac_decode_frame_int.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit d7f29bfa69)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-11-26 01:37:13 +01:00
Michael Niedermayer
27f3696502 avcodec/takdec: Use memove, avoid undefined memcpy() use
Fixes: e214333cbd94c91228e624ff39329ce6/asan_generic_4a5159_6412_96cda2530e80607210ab41ccae3d456d.tak

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 7cea3430a5)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-11-26 01:37:13 +01:00
Andreas Cadhalpun
65dc698607 riffdec: prevent negative bit rate
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 189420cb56)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-11-26 01:37:12 +01:00
Michael Niedermayer
185126415e Merge commit 'd80811c94e068085aab797f9ba35790529126f85'
* commit 'd80811c94e068085aab797f9ba35790529126f85':
  riff: Use the correct logging context

Conflicts:
	libavformat/asfdec_o.c
	libavformat/avidec.c
	libavformat/dxa.c
	libavformat/matroskadec.c
	libavformat/mov.c
	libavformat/riff.h
	libavformat/riffdec.c
	libavformat/wavdec.c
	libavformat/wtvdec.c
	libavformat/xwma.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit ba77fb61f7)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-11-26 01:37:09 +01:00
Michael Niedermayer
93f3752b97 Changelog: update for 2.7.3
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-18 20:05:22 +01:00
Martin Storsjö
cf115791da rtmpcrypt: Do the xtea decryption in little endian mode
The XTEA algorithm operates on 32 bit numbers, not on byte sequences.
The XTEA implementation in libavutil is written assuming big endian
numbers, while the rtmpe signature encryption assumes little endian.

This fixes rtmpe communication with rtmpe servers that use signature
type 8 (XTEA), e.g. crunchyroll.

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
(cherry picked from commit e7728319b92dbb4fb949155e33de7ff5358ddff3)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-18 19:33:32 +01:00
Michael Niedermayer
bc3d86cddb Update versions for 2.7.3
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-18 12:41:05 +01:00
Michael Niedermayer
aa9dadccac avformat/matroskadec: Check subtitle stream before dereferencing
Unrecognized streams are not allocated
Fixes: flicker-1.color1.vp91447030769.08.webm

Found-by: Chris Cunningham <chcunningham@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit a5034b324c)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-18 04:04:57 +01:00
Michael Niedermayer
0ecde45570 avformat/utils: Do not init parser if probing is unfinished
Fixes assertion failure
Fixes: 136f8b8d47af7892306625e597dee655/signal_sigabrt_7ffff6ae7cc9_8941_ab11bea57c84796418f481f873dc31ba.dvr_ms

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 1ef336e912)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-16 00:06:20 +01:00
Michael Niedermayer
ca43c6e1f5 avcodec/jpeg2000dec: Fix potential integer overflow with tile dimensions
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 65d3359fb3)

Conflicts:

	libavcodec/jpeg2000dec.c
2015-11-15 21:39:18 +01:00
Michael Niedermayer
2deaccfe67 avcodec/jpeg2000dec: Check SIZ dimensions to be within the supported range
Fixes potential integer overflows
Fixes: 03e0abe721b1174856d41a1eb5d6a896/signal_sigabrt_7ffff6ae7cc9_3813_e71bf3541abed3ccba031cd5ba0269a4.avi

This fix is choosen to be simple to backport, better solution
for master is planed

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 6ef819c40b)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-15 21:38:23 +01:00
Michael Niedermayer
a9c73b13c1 avcodec/jpeg2000: Check comp coords to be within the supported size
Fixes assertion failure
Fixes: 03e0abe721b1174856d41a1eb5d6a896/signal_sigabrt_7ffff6ae7cc9_3813_e71bf3541abed3ccba031cd5ba0269a4.avi

This fix is choosen to be simple to backport, better solution
for master is planed

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit a1a8cbcb35)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-15 21:05:26 +01:00
Michael Niedermayer
d972df307a avcodec/jpeg2000: Use av_image_check_size() in ff_jpeg2000_init_component()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 016fd413f9)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-15 21:05:04 +01:00
Michael Niedermayer
082bdba4e7 avcodec/wmaprodec: Check for overread in decode_packet()
Fixes assertion failure
Fixes: 0256e92df2df7e933b43a2c70e4c8040/signal_sigabrt_7ffff6ae7cc9_1358_999ac18684788221490757582ce9af84.wma

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 7ad698e24e)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-15 18:58:10 +01:00
Michael Niedermayer
1039803823 avcodec/smacker: Check that the data size is a multiple of a sample vector
Fixes out of array access
Fixes: ce19e41f0ef1e52a23edc488faecdb58/asan_heap-oob_2504e97_4202_ffa0df1baed14022b9bfd4f8ac23d0cb.smk

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 4a9af07a49)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-15 18:51:59 +01:00
Michael Niedermayer
acba2a36b3 avcodec/takdec: Skip last p2 sample (which is unused)
Fixes out of array read
Fixes: cb3f38b08b4541523974667c7d1eee9e/asan_heap-oob_2659e18_9838_021fd5cd635bf76cede6398cd9ecbcdd.tak

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 08b520636e)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-15 02:13:55 +01:00
Michael Niedermayer
588a7769c7 avcodec/dxtory: Fix input size check in dxtory_decode_v1_410()
Fixes potential out of array read

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 76b6f4b7d9)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-15 02:13:43 +01:00
Michael Niedermayer
08940cd545 avcodec/dxtory: Fix input size check in dxtory_decode_v1_420()
Fixes out of array read
Fixes: c50c4aa6cefda71b19a31ea12302980c/asan_heap-oob_12be5fd_7011_33ebd015a74976215934add72b9c8352.avi

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 9caa9414cc)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-15 02:13:21 +01:00
Michael Niedermayer
196be9284a avcodec/error_resilience: avoid accessing previous or next frames tables beyond height
The height of tables can be rounded up for MBAFF but this does not imply that is also true
for the previous frames

Fixes out of array reads
Fixes: c106b36fa36db8ff8f3ed0c82be7bea2/asan_heap-oob_32699f0_6321_467b9a1d7e03d7cfd310b7e65dc53bcc.mov

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit a105f52855)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-14 23:04:54 +01:00
Michael Niedermayer
d61c3d1fca avcodec/dpx: Move need_align to act per line
Fixes out of array read
Fixes: 61cf123c081ee2bb774d307c75bdb99e/asan_heap-oob_1224f76_5546_bee833ffae73f752b489b9eeaac52db7.dpx

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit c8aaae8e0f)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-14 16:51:30 +01:00
Michael Niedermayer
ec1f59150d avcodec/flashsv: Check size before updating it
Fixes out of array read
Fixes: 3c857d4d90365731524716e6d051e43a/signal_sigsegv_7f4f59bcc29e_1386_20abd2c8e655cb9c75b24368e65fe3b1.flv

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 17705f5d4f)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-14 13:50:30 +01:00
Michael Niedermayer
b996cde193 avcodec/ivi: Check image dimensions
Fixes integer overflow
Fixes: 1e32c6c591d940337c20b197ec1c4d3d/asan_heap-oob_4a52e5_8946_0bb0d9e863def56005e49f1d89bdc94d.avi

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit df91aa034b)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-14 03:03:38 +01:00
Michael Niedermayer
63465f0070 avcodec/utils: Better check for channels in av_get_audio_frame_duration()
Fixes integer overflow
Fixes: 0c2625f236ced104d402b4a03c0d65c7/asan_generic_274e1ce_5990_9314e7a67c26aecf011b178ade9f217c.avi

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 4e16ad2868)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-14 03:02:28 +01:00
Michael Niedermayer
3300005351 avcodec/jpeg2000dec: Check for duplicate SIZ marker
Fixes: 0231a17345734228011c6f35a64e4594/asan_heap-oob_1d92a72_3218_1213809a9e3affec77e4c191fdfdc0a9.mov

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 44a7f17d0b)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-14 01:11:00 +01:00
Michael Niedermayer
4eb67f3ddc tests/fate/avformat: Fix fate-lavf
The CMP variable seems to have been inherited from fate-api-seek which set it to null

the mxf reference needed a change due to c7e14a279f

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit b83c849e87)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:47 +01:00
Simon Thelen
ae270314c7 doc/ffmpeg: Clarify that the sdp_file option requires an rtp output.
Signed-off-by: Simon Thelen <ffmpeg-dev@c-14.de>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit b02201efb5)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:47 +01:00
Simon Thelen
b9a3e0af07 ffmpeg: Don't try and write sdp info if none of the outputs had an rtp format.
Fixes a segfault when trying to write nonexistent rtp information.

Signed-off-by: Simon Thelen <ffmpeg-dev@c-14.de>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 70fb5eadc5)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:47 +01:00
Andreas Cadhalpun
132bd4bc4f apng: use correct size for output buffer
The buffer needs s->bpp bytes, at maximum currently 10.
Assert that s->bpp is not larger.

This fixes a stack buffer overflow.

Reviewed-by: wm4 <nfxjfg@googlemail.com>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit 3e8e1a660e)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:47 +01:00
Andreas Cadhalpun
cd8bedb9fa jvdec: avoid unsigned overflow in comparison
The return type of strlen is size_t, i.e. unsigned, so if pd->buf_size
is 3, the right side overflows leading to a wrong result of the
comparison and subsequently a heap buffer overflow.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit db374790c7)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:47 +01:00
Michael Niedermayer
d332aa6ec6 avcodec/hevc_ps: Check chroma_format_idc
Fixes out of array access
Fixes: 24d05e8b84676799c735c9e27d97895e/asan_heap-oob_1b70f6a_2955_7c3652a7f370f9f3ef40642bc2c99bb2.bit

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 93f30f825c)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:47 +01:00
Michael Niedermayer
169a02da1e avcodec/jpeg2000dec: Clip all tile coordinates
Fixes out of array access
Fixes: b877a6b788a25c70e8b1d014f8628549/asan_heap-oob_1da2c3f_2324_5a1b329b0b3c4bb6b1d775660ac56717.r3d

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 43492ff3ab)

Conflicts:

	libavcodec/jpeg2000dec.c
2015-11-12 02:55:47 +01:00
Michael Niedermayer
af3a608e7e avcodec/microdvddec: Check for string end in 'P' case
Fixes out of array read
Fixes: a9502b60f4cecc19475382aee255f73c/asan_heap-oob_1e87fba_2548_a8ad47f6dde36644fe9cdc444d4632d0.sub

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit c719cd6cf7)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:47 +01:00
Michael Niedermayer
327dd70690 avcodec/dirac_parser: Fix undefined memcpy() use
Fixes: 9d375e415486edd1a0c826f2307d89a4/asan_generic_4a5159_1577_faa333e83dacdd9e4dd322380aeed537.iss

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit daefd8ab2f)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:47 +01:00
Michael Niedermayer
bcedc2b0f0 avformat/xmv: Discard remainder of packet on error
Fixes infinite loop
Fixes: 9c48ae2680c5f23bca3d20ff0f325fd8/asan_generic_4c254d_1374_993f1e5967dd6f844b8d72f978ce2a6c.pss

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 79c4a338e4)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:47 +01:00
Michael Niedermayer
6ad10cbec9 avformat/xmv: factor return check out of if/else
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 9b6fac11da)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:47 +01:00
Michael Niedermayer
b0b1b208f5 avcodec/mpeg12dec: Do not call show_bits() with invalid bits
Fixes assertion failure
Fixes: 63e50545709a6440d3d59f6426d58db9/signal_sigabrt_7ffff6ae7cc9_8189_3272a3010fd98ddf947c662bbde1ac13.ts

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 973c3dba27)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:47 +01:00
Michael Niedermayer
6acf5ff1d3 libavutil/channel_layout: Check strtol*() for failure
Fixes assertion failure
Fixes: 4f5814bb15d2dda6fc18ef9791b13816/signal_sigabrt_7ffff6ae7cc9_65_7209d160d168b76f311be6cd64a548eb.wv

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit c9bfd6a8c3)

Conflicts:

	libavutil/channel_layout.c
2015-11-12 02:55:47 +01:00
Michael Niedermayer
e98f3ba221 avcodec/ffv1dec: Check for 0 quant tables
Fixes assertion failure
Fixes: 07ec1fc3c1cbf2d3edcd7d9b52ca156c/asan_heap-oob_13624c5_491_ecd4720a03e697ba750b235690656c8f.avi

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 5745cf799a)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:47 +01:00
Michael Niedermayer
32808460cc avcodec/mjpegdec: Reinitialize IDCT on BPP changes
Fixes misaligned access
Fixes: dc9262a469f6f315f74c087a7b3a7f35/signal_sigsegv_2e95bcd_9_9c0f9f4a9ba82aa9b3ab2b91ce4d5277.jpg

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit cc35f6f476)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:47 +01:00
Michael Niedermayer
edf06a0562 avcodec/mjpegdec: Check index in ljpeg_decode_yuv_scan() before using it
Fixes: 04715144ba237443010554be0d05343f/asan_heap-oob_1eafc76_1737_c685b48041a563461839e4e7ab97abb8.jpg
Fixes out of array access

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit d24888ef19)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:47 +01:00
Tobias Rapp
5ae4842122 avutil/file_open: avoid file handle inheritance on Windows
Avoids inheritance of file handles on Windows systems similar to the
O_CLOEXEC/FD_CLOEXEC flag on Linux.

Fixes file lock issues in Windows applications when a child process
is started with handle inheritance enabled (standard input/output
redirection) while a FFmpeg transcoding is running in the parent
process.

Links relevant to the subject:

https://msdn.microsoft.com/en-us/library/w7sa2b22.aspx

Describes the _wsopen() function and the O_NOINHERIT flag. File handles
opened by _wsopen() are inheritable by default.

https://msdn.microsoft.com/en-us/library/windows/desktop/ms682425%28v=vs.85%29.aspx

Describes handle inheritance when creating new processes. Handle
inheritance must be enabled (bInheritHandles = TRUE) e.g. when you want
to pass handles for stdin/stdout via lpStartupInfo.

Signed-off-by: Tobias Rapp <t.rapp@noa-audio.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 4746653466)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:46 +01:00
Michael Niedermayer
ab6f4bc064 avcodec/h264_slice: Disable slice threads if there are multiple access units in a packet
Fixes null pointer dereference
Fixes part of Ticket4977

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 9368d2da3d33cac845f2fdf663df500b53625c5e)

Conflicts:

	libavcodec/h264_slice.c
2015-11-12 02:55:46 +01:00
Kieran Kunhya
c3ce508135 opusdec: Don't run vector_fmul_scalar on zero length arrays
Fixes crashes on fuzzed files
Fixes Ticket4969 part2

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit b3e5f15b95)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:46 +01:00
Michael Niedermayer
c6cb24ffbf avcodec/ffv1: Initialize vlc_state on allocation
This ensures that they are always set to valid values
Fixes Ticket4939

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit a878dfa4f5)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:46 +01:00
Michael Niedermayer
06c87da410 avcodec/ffv1dec: update progress in case of broken pointer chains
Fixes deadlock
Fixes Ticket4932

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 5063a18f56)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:46 +01:00
Michael Niedermayer
f7ef265387 avcodec/ffv1dec: Clear slice coordinates if they are invalid or slice header decoding fails for other reasons
Fixes Ticket4931

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 4c2d4e8700)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:46 +01:00
Andrey Utkin
6d3f047a85 avformat/httpauth: Add space after commas in HTTP/RTSP auth header
This fixes access to Grandstream cameras, which return 401 to ffmpeg
otherwise.
VLC sends Authorization: header with spaces between parameters, and it
is known to work with Grandstream devices and broad range of other HTTP
and RTSP servers, so author considers switching to such behaviour safe.
Just for record - RFC 2617 (HTTP Auth) does not specify the need in
spaces, so this is not a bug of FFmpeg.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit fdb3283872)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:46 +01:00
Michael Niedermayer
f43dac169e avcodec/x86/sbrdsp: Fix using uninitialized upper 32bit of noise
Fixes crash
Fixes: flicker-1.scout3d21443372922.28.m4a

Found-by: Dale Curtis <dalecurtis@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 1b82b934a1)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:46 +01:00
Michael Niedermayer
f10ba15d73 avcodec/ffv1dec: Fix off by 1 error in quant_table_count check
Fixes: invalid_read.nut
Found-by: Paul B Mahol <onemda@gmail.com>

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 2d221d9e06)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:46 +01:00
Michael Niedermayer
54661cf0b2 avcodec/ffv1dec: Explicitly check read_quant_table() return value
Forwards the error code, avoids potential integer overflow

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 10bbf6cf62)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:46 +01:00
Michael Niedermayer
50f62fef19 avcodec/rangecoder: Check e
Fixes hang.nut

Found-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit b2955b6c5a)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:46 +01:00
Ganesh Ajjanagadde
abd20c2057 avutil/log: fix zero length gnu_printf format string warning
This should fix warning reported by fate client:
http://fate.ffmpeg.org/report.cgi?time=20150917113121&slot=x86_32-linux-gnu-gcc-4.5.1-have_6regs.
Untested.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 63cdb6e4a5)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:46 +01:00
Simon Thelen
d1de492330 lavf/webvttenc: Require webvtt file to contain exactly one WebVTT stream.
Not requiring this can end up producing hilariously broken files
together with -c:s copy (e.g. a webvtt file containing binary subtitle data).

Signed-off-by: Simon Thelen <ffmpeg-dev@c-14.de>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit b84232694e)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:46 +01:00
Michael Niedermayer
04ad22d77a avcodec/mjpegdec: Fix decoding RGBA RCT LJPEG
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 055e56e9f7)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:46 +01:00
Ganesh Ajjanagadde
a30a30b59a avfilter/af_asyncts: use llabs for int64_t
long may not be 64 bit on all platforms; so labs on int64_t is unsafe.
This fixes a warning reported in:
http://fate.ffmpeg.org/log.cgi?time=20150905071512&log=compile&slot=i386-darwin-clang-polly-3.7

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit d74123d03e)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:46 +01:00
Michael Niedermayer
484eb2b0e3 avcodec/g2meet: Also clear tile dimensions on header_fail
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit fb04666995)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:46 +01:00
Michael Niedermayer
746a65640f avcodec/g2meet: Fix potential overflow in tile dimensions check
Fixes CID1322351

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 71ec8e1ed6)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:46 +01:00
Michael Niedermayer
50e4d38ce4 avcodec/svq1dec: Check init_get_bits8() for failure
Fixes: CID1322313

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit a51d4246d8)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:46 +01:00
Michael Niedermayer
1e7ff902f2 avcodec/tta: Check init_get_bits8() for failure
Fixes: CID1322319

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit f1593e4ca5)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:46 +01:00
Michael Niedermayer
dceec28eac avcodec/vp3: Check init_get_bits8() for failure
Fixes CID1322316

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit cbd3cd8eb2)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:46 +01:00
Michael Niedermayer
95db0aa276 swresample/swresample: Fix integer overflow in seed calculation
Fixes CID1322333

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 32f53958b8)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:46 +01:00
Michael Niedermayer
1e6f641052 avformat/mov: Fix integer overflow in FFABS
Fixes: unknown_unknown_19e_414_cov_764838672_bellhamlam.mov

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 053e80f6ea)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:46 +01:00
Michael Niedermayer
03ef13889c avutil/common: Add FFNABS()
This macro avoids the undefined corner case with the *_MIN values

Previous version Reviewed-by: Ganesh Ajjanagadde <gajjanag@mit.edu>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit d6cd614dac)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:46 +01:00
Michael Niedermayer
ab3f129011 avutil/common: Document FFABS() corner case
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 733511fb53)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:46 +01:00
Michael Niedermayer
ab91919e57 avformat/dump: Fix integer overflow in aspect ratio calculation
Fixes: unknown_unknown_19e_414_cov_764838672_bellhamlam.mov

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit d1bdaf3fb2)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:46 +01:00
Michael Niedermayer
13aaefb70e avformat/mxg: Use memmove()
Fixes undefined behavior
Fixes: 1700002963a49da13542e0726b7bb758/unknown_unknown_292_658_cov_2141972066_m1.mxg

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit c7c207aecd)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:46 +01:00
Michael Niedermayer
19a29c92db avcodec/truemotion1: Check for even width
Fixes out of array access
Fixes: 87196d8bbc633629fc9dd851fce73e70/asan_heap-oob_26f6853_862_cov_585961513_sonic3dblast_intro-partial.avi

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 63fb5a6aef)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:46 +01:00
Michael Niedermayer
ffcd26d25b avcodec/mpeg12dec: Set dimensions in mpeg1_decode_sequence() only in absence of errors
Fixes assertion failure
Fixes: 56dcafde14a8397161bb61a16c511179/signal_sigabrt_7ffff6ac8cc9_686_cov_1897408623_microsoft_new_way_to_shove_mpeg2_in_asf.dvr_ms

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit b54e03c9dc)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:46 +01:00
Michael Niedermayer
42fd94b514 avcodec/libopusenc: Fix infinite loop on flushing after 0 input
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 6701c92fa4)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:46 +01:00
Michael Niedermayer
679df05683 avformat/hevc: Check num_long_term_ref_pics_sps to avoid potentially long loops
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit ee155c18a2)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:45 +01:00
Arthur Grant
717c3ebfa4 avformat/hevc: Fix parsing errors
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 781efd0741)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:45 +01:00
Michael Niedermayer
43b094fa03 ffmpeg: Use correct codec_id for av_parser_change() check
No testcase known

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 45f3d4e63e)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:45 +01:00
Michael Niedermayer
483f5bccc1 ffmpeg: Check av_parser_change() for failure
No testcase known

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit ac0ba6f233)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:45 +01:00
Michael Niedermayer
ce17111ed1 ffmpeg: Check for RAWVIDEO and do not relay only on AVFMT_RAWPICTURE
The null muxer has AVFMT_RAWPICTURE set but can be fed with non-raw material

related to Ticket4778

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit c8890941d6)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:45 +01:00
Michael Niedermayer
a8c8a2f3f4 ffmpeg: check avpicture_fill() return value
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 15ff3f3fdf)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:45 +01:00
Michael Niedermayer
485372e91c avformat/mux: Update sidedata in ff_write_chained()
Fixes Ticket4777

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit db91e0edb6)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:45 +01:00
Michael Niedermayer
b87fc3526f avcodec/flashsvenc: Correct max dimension in error message
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit b1f59bb660)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:45 +01:00
Michael Niedermayer
d165ec179e avcodec/svq1enc: Check dimensions
Fixes assertion failure

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 88fe45e0fe)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:45 +01:00
Michael Niedermayer
94541f5f76 avcodec/dcaenc: clear bitstream end
This avoids leaving uninitialized bits in the output

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit e322b7061f)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:45 +01:00
Emanuel Czirai
5e71f4aa6a libavcodec/aacdec_template: Use init_get_bits8() in aac_decode_frame()
related to ticket4749

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 7ab1c57a64)

Conflicts:

	libavcodec/aacdec_template.c
2015-11-12 02:55:45 +01:00
wm4
1900d023ae rawdec: fix mjpeg probing buffer size check
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 4c6beaed92)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:45 +01:00
wm4
2c8a8a114c rawdec: fix mjpeg probing
There can be other headers than "Content-Type:" (in this case, a
"Content-Length:" header was following), so checking for a trailing
newline is wrong.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit bf51fcd304)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 02:55:45 +01:00
周晓勇
99ab664ff8 configure: loongson disable expensive optimizations in gcc O3 optimization
With gcc-4.9.2 loongson faild in test fate-dca, this is caused by option
-fexpensive-optimizations in -O3 optimization. We disable it temporarily
before the bug been fixed up.

Signed-off-by: ZhouXiaoyong <zhouxiaoyong@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 2c34389551)

Conflicts:

	configure
2015-11-12 02:55:45 +01:00
Ronald S. Bultje
131f2c366e videodsp: don't overread edges in vfix3 emu_edge.
Fixes trac ticket 3226. Also see Andreas' analysis in
https://bugs.debian.org/801745, which was very helpful.
(cherry picked from commit 52f84d82bd)
2015-10-25 01:09:12 +02:00
wm4
9362282fd1 avformat/mp3dec: improve junk skipping heuristic
Commit 2b3e9bbfb5 caused problems for a
certain API user:

https://code.google.com/p/chromium/issues/detail?id=537725
https://code.google.com/p/chromium/issues/detail?id=542032

The problem seems rather arbitrary, because if there's junk, anything
can happen. In this case, the imperfect junk skipping just caused it to
read different junk, from what I can see.

We can improve the accuracy of junk detection by a lot by checking if 2
consecutive frames use the same configuration. While in theory it might
be completely fine for the 1st frame to have a different format than the
2nd frame, it's exceedingly unlikely, and I can't think of a legitimate
use-case.

This is approximately the same mpg123 does for junk skipping. The
set of compared header bits is the same as the libavcodec mp3 parser
uses for similar purposes.
(cherry picked from commit de1b1a7da9)

Conflicts:
	libavformat/mp3dec.c
2015-10-20 12:46:22 +02:00
Anssi Hannula
1f25a3ddb8 avformat/hls: add support for EXT-X-MAP
Without EXT-X-MAP support we miss the first bytes of some streams.

These streams worked by luck before byte-ranged segment support was added in
da7759b357

Fixes ticket #4797.
(cherry picked from commit 9099079488)

Conflicts:
	libavformat/hls.c
2015-10-15 14:41:32 +02:00
Anssi Hannula
e69d8fc619 avformat/hls: fix segment selection regression on track changes of live streams
Commit ad701326b4 ("avformat/hls: open playlists immediately when
AVDISCARD_ALL is dropped") inadvertently caused first_packet to never be
cleared, causing select_cur_seq_no() to not use the specific code for
live streams.

In practice this means that when the user selects a different audio
track during live stream (i.e. non-VOD) playback, there may be some
additional delay as the code might select an incorrect segment at first,
and we have to wait for video to catch audio (if too late segment was
selected) or to download more following audio segments (if too early
segment was selected).

Fix that by restoring the zeroing of first_packet.
(cherry picked from commit fd74d45d51)
2015-10-15 14:41:23 +02:00
Rodger Combs
6197d35a93 lavf/matroskadec: Fully parse and repack MP3 packets
Fixes https://trac.ffmpeg.org/ticket/4776

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit b4b2717ffe)
2015-10-09 21:36:40 +02:00
Michael Niedermayer
8f00ff5ae0 avcodec/h264_mp4toannexb_bsf: Reorder operations in nal_size check
Fixes Ticket4778

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 2bb54b82b5)
2015-10-09 21:36:11 +02:00
Michael Niedermayer
eee1faef75 avformat/oggenc: Check segments_count for headers too
Fixes infinite loop and segfault in ogg_buffer_data()
Fixes Ticket4806

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 81a8701eb5)
2015-10-09 21:35:11 +02:00
Michael Niedermayer
1ef419447e avformat/segment: atomically update list if possible
Fixes Ticket4802

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit e2b19a533d)
2015-10-09 21:34:38 +02:00
Michael Niedermayer
6752f8ef04 avformat/avidec: Workaround broken initial frame
Fixes Ticket4851

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 3e2ef00394)
2015-10-09 21:34:11 +02:00
Hendrik Leppkes
98fdd0baf3 hevc: properly handle no_rasl_output_flag when removing pictures from the DPB
Fixes ticket #4185.

Reviewed-By: Mickael Raulet <Mickael.Raulet@insa-rennes.fr>
Signed-off-by: Hendrik Leppkes <h.leppkes@gmail.com>
(cherry picked from commit 0118158efa)
2015-10-09 21:33:56 +02:00
Ronald S. Bultje
f7cb979766 hevc: fix wpp threading deadlock.
Fixes ticket 4258.
(cherry picked from commit 74e4948235)
2015-10-09 21:33:35 +02:00
Michael Niedermayer
0fb4a85603 avcodec/ffv1: seperate slice_count from max_slice_count
Fix segfault with too large slice_count
Fixes Ticket4879

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit aa6c43f3fd)

Conflicts:
	libavcodec/ffv1enc.c
2015-10-09 21:32:52 +02:00
Przemysław Sobala
2ef386d0a6 lavf/img2dec: Fix memory leak
Fixes #4886

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 01dd7e025c)
2015-10-09 21:30:46 +02:00
wm4
114c0f002a avcodec/mp3: fix skipping zeros
Commits 43bc5cf9 and c5371f77 add code for skipping initial zeros in mp3
packets. This code forgot to report to the user that data was skipped at
all.

Since audio codecs allow partial packet decoding, the user application
has to rely on the return value. It will remove the data reported as
consumed by the decoder, and feed it to the decoder again. This resulted
in the mp3 frame after the zero region to be decoded over and over
again, until the zero region was finally skipped by the application.

Fix this by including the amount of skipped bytes to the number of
consumed bytes returned by the decode call.

Fixes trac ticket #4890.
(cherry picked from commit cb1da9fb8d)
2015-10-09 21:29:03 +02:00
Clément Bœsch
6b6932471e avformat/srtdec: make sure we probe a number
Fixes regression since 7218352e02: WebVTT
files were matching the SRT probing.
(cherry picked from commit 40d9d6de90)
2015-10-09 21:28:20 +02:00
Clément Bœsch
5ac6daf995 avformat/srtdec: more lenient first line probing
Fixes Ticket #4898
(cherry picked from commit 7218352e02)
2015-10-09 21:27:28 +02:00
James Almer
763c0d25b1 doc: mention libavcodec can decode Opus natively
Signed-off-by: James Almer <jamrial@gmail.com>
(cherry picked from commit fd9ac48dc8)
2015-09-20 23:28:53 -03:00
Michael Niedermayer
b1863e3d94 avcodec/ffv1enc: fix assertion failure with unset bits per raw sample
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 749f85496c)

Fixes ticket #4751.
2015-08-04 12:56:52 +02:00
Michael Niedermayer
4afccfdc04 MAINTAINERS: Remove myself as leader
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit f2c58931e6)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-31 18:35:30 +02:00
James Almer
a3d45dbcc1 mips/hevcdsp: fix string concatenation on macros
Needed for old compilers like GCC 4.2

Tested by trac user brad. Fixes ticket #4745

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
(cherry picked from commit a0092cea46)
2015-07-30 21:01:32 -03:00
Andreas Cadhalpun
15466db69e Changelog update
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-07-19 10:56:11 +02:00
Andreas Cadhalpun
27816fb9ef imc: use correct position for flcoeffs2 calculation
flcoeffs2[pos] should be the log2 of flcoeffs1[pos].
flcoeffs1[0] can be 0 here, thus flcoeffs2[pos] gets set to -inf,
causing problems further down.

This seems to have been copied from imc_decode_level_coefficients in
commit 4eb4bb3 without updating the position.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit 75fd5ce4c1)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-07-19 10:14:31 +02:00
Andreas Cadhalpun
f06d9dced4 hevc: check slice address length
It is used as get_bits argument and reading 0 bits isn't supported.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit 05cc8c8e4b)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-07-19 10:01:30 +02:00
Andreas Cadhalpun
26cb351452 snow: remove an obsolete av_assert2
It asserts that the frame linesize is larger than 37, but it can be
smaller and decoding such frames works.

Before commit cc884a35 src_stride > 7*MB_SIZE was necessary, because the
blocks were interleaved in the tmp buffer and the last block was added
with an offset of 6*MB_SIZE.
It was changed for src_stride <= 7*MB_SIZE to write the blocks
sequentially, hence the larger tmp_step.
After that the assert was only necessary to make sure that the buffer
remained large enough.
Since commit bd2b6b33 s->scratchbuf is used as tmp buffer.
As part of commit 86e107a7 the minimal scratchbuf size was increased to
256*7*MB_SIZE, which is enough for any src_stride <= 7*MB_SIZE.

Also add a comment explaining the tmp_step calculation.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit 3526a120f9)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-07-19 10:01:18 +02:00
Andreas Cadhalpun
762a5878a6 webp: fix infinite loop in webp_decode_frame
The loop always needs at least 8 bytes for chunk_type and chunk_size.
If fewer are left, bytestream2_get_le32 just returns 0 without
reading any bytes, leading to an infinite loop.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 0762152f7a)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-07-19 10:00:07 +02:00
Andreas Cadhalpun
f0af6e705f wavpack: limit extra_bits to 32 and use get_bits_long
More than 32 bits can't be stored in an integer and get_bits should not
be used with more than 25 bits.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit d0eff8857c)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-07-19 09:43:20 +02:00
Andreas Cadhalpun
70b97a89d2 ffmpeg: only count got_output/errors in decode_error_stat
If threading is used, the first (thread_count - 1) packets are read
before any frame/error is returned. Counting this as successful decoding
is wrong, because it also happens when no single frame could be decoded.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit bd0f14123f)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-07-19 09:43:05 +02:00
Andreas Cadhalpun
1d1adf5ff4 ffmpeg: exit_on_error if decoding a packet failed
This is the second part of the fix for ticket #4370.

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

Conflicts:
	ffmpeg.c
2015-07-19 09:42:22 +02:00
Andreas Cadhalpun
acfad331ad pthread_frame: forward error codes when flushing
This is the first part of the fix for ticket #4370.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit 32a5b63126)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-07-19 09:37:42 +02:00
Andreas Cadhalpun
43f8a422b3 huffyuvdec: validate image size
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit 9a345802ed)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-07-19 09:37:19 +02:00
Andreas Cadhalpun
95bd0f3a4b wavpack: use get_bits_long to read up to 32 bits
get_bits should not be used for more than 25 bits.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit f9883a669c)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-07-19 09:37:03 +02:00
Andreas Cadhalpun
eddf146ada nutdec: check maxpos in read_sm_data before returning success
Otherwise sm_size can be larger than size, which results in a negative
packet size.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit 6b9fdf7f4f)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-07-19 09:36:34 +02:00
Andreas Cadhalpun
7293372959 s302m: fix arithmetic exception
If nb_samples is zero, the bit_rate calculation results in a division by
zero.

Since ff_get_buffer fails if frame->nb_samples is zero, this can be
fixed by moving the bit_rate calculation after that function call.

That also makes it possible to reuse the already calculated
frame->nb_samples value.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit 04dfbc9441)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-07-19 09:36:13 +02:00
Andreas Cadhalpun
2e1226a695 vc1dec: use get_bits_long and limit the read bits to 32
get_bits should not be used with more than 25 bits.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit 1f1e0a2971)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-07-19 09:35:56 +02:00
Andreas Cadhalpun
f66d2bf949 mpegaudiodec: copy AVFloatDSPContext from first context to all contexts
This fixes a segfault when decoding multi-channel MP3onMP4 files.

This is similar to commit cb72230d for MPADSPContext.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit 151dbe4579)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-07-19 09:35:30 +02:00
Michael Niedermayer
4a6ac71742 Update for FFmpeg 2.7.2
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-18 20:53:40 +02:00
Michael Niedermayer
08337cca05 avcodec/vp8: Check buffer size in vp8_decode_frame_header()
avoids null pointer dereference
Fixes: signal_sigsegv_d5de40_964_vp80-00-comprehensive-010.ivf with memlimit of 1048576

Found-by: Samuel Groß, Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 599d746e07)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-18 20:23:46 +02:00
Michael Niedermayer
9c655d2a57 avcodec/vp8: Fix null pointer dereference in ff_vp8_decode_free()
Fixes: signal_sigsegv_d5de23_967_vp80_00_comprehensive_010.ivf with memlimit 524288

Found-by: Samuel Groß, Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit a84f0e8d8f)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-18 20:23:46 +02:00
Michael Niedermayer
f00f799833 avcodec/diracdec: Check for hpel_base allocation failure
Fixes null pointer dereference
Fixes: signal_sigsegv_b02a96_280_RL_420p_ffdirac.drc with memlimit of 67108864

Found-by: Samuel Groß, Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 1c5b712c0a)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-18 20:23:46 +02:00
Michael Niedermayer
05684cee42 avcodec/rv34: Clear pointers in ff_rv34_decode_init_thread_copy()
Avoids leaving stale pointers
Fixes: signal_sigabrt_7ffff70eccc9_819_sabtriple.rm with memlimit 536870912

Found-by: Samuel Groß, Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 3197c0aa87)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-18 20:23:46 +02:00
Michael Niedermayer
e693af81b7 avfilter/af_aresample: Check ff_all_* for allocation failures
Fixes: signal_sigabrt_7ffff70eccc9_498_divx502.avi with memlimit 1572864

Found-by: Samuel Groß, Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 2ea8a48083)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-18 20:23:46 +02:00
Michael Niedermayer
73ebc4046e avcodec/pthread_frame: clear priv_data, avoid stale pointer in error case
Fixes: b4b47bc2b3fb7ca710bfffe5aa969e37_signal_sigabrt_7ffff70eccc9_744_nc_sample2.avi with memlimit of 4194304

Found-by: Samuel Groß, Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit f1a38264f2)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-18 20:23:46 +02:00
Michael Niedermayer
1cbd7b08f6 swscale/utils: Clear pix buffers
Fixes use of uninitialized memory
Fixes: a96874b9466b6edc660a519c7ad47977_signal_sigsegv_7ffff713351a_744_nc_sample.avi with memlimit 2147483648

Found-by: Samuel Groß, Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit a5d44d5c22)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-18 20:23:46 +02:00
Zhang Rui
a330aca126 avutil/fifo: Fix the case where func() returns less bytes than requested in av_fifo_generic_write()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit fcbea93cf8)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-18 20:23:46 +02:00
Michael Niedermayer
2e7bd0f725 ffmpeg: Fix cleanup after failed allocation of output_files
Fixes: 39a25908b84604acdaa490138282d091_signal_sigsegv_7ffff713351a_331_WAWV.avi with memlimit of 262144

Found-by: Samuel Groß, Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 6e80fe1ecd)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-18 20:23:46 +02:00
Michael Niedermayer
a066b2cedd avformat/mov: Fix deallocation when MOVStreamContext failed to allocate
Fixes: 260813283176b57b3c9974fe284eebc3_signal_sigsegv_7ffff713351a_991_xtrem_e2_m64q15_a32sxx.3gp with memlimit of 262144

Found-by: Samuel Groß, Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 15629129dd)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-18 20:23:46 +02:00
Michael Niedermayer
a18e8d82de ffmpeg: Fix crash with ost->last_frame allocation failure
Fixes: 1013dbde2c360d939cc2dfc33e4f275c_signal_sigsegv_a0500f_45_320vp3.nsv with memlimit of 536870912

Found-by: Samuel Groß, Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit fd4c87fa3b)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-18 20:23:46 +02:00
Michael Niedermayer
441ef87ea8 ffmpeg: Fix cleanup with ost = NULL
Fixes: 09e670595acbdafb226974b08dab66e3_signal_sigabrt_7ffff70eccc9_991_xtrem_e2_m64q15_a32sxx.3gp with memlimit of 1048576

Found-by: Samuel Groß, Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 503ec7139f)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-18 20:23:46 +02:00
Michael Niedermayer
6e53134f98 avcodec/pthread_frame: check avctx on deallocation
Fixes null pointer dereferences
Fixes: af1a5a33e67e479f439239097bd0d4fd_signal_sigsegv_7ffff713351a_152_Dolby_Rain_Logo.pmp with memlimit of 8388608

Found-by: Samuel Groß, Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 5d346feafa)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-18 20:23:46 +02:00
Michael Niedermayer
237751eb25 avcodec/sanm: Reset sizes in destroy_buffers()
Fixes crash in 1288a2fe8e9ae6b00ca40e089d08ca65_signal_sigsegv_7ffff71426a7_354_accident.san with allocation limit 65536

Found-by: Samuel Groß, Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 39bbdebb1e)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-18 20:23:46 +02:00
Michael Niedermayer
264eb0074f avcodec/alac: Clear pointers in allocate_buffers()
Fixes: 06a4edb39ad8a9883175f9bd428334a2_signal_sigsegv_7ffff713351a_706_mov__alac__ALAC_6ch.mov

Found-by: Samuel Groß, Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit f7068bf277)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-18 20:23:46 +02:00
Anton Khirnov
7db809a373 bytestream2: set the reader to the end when reading more than available
This prevents possible infinite loops with the calling code along the
lines of while (bytestream2_get_bytes_left()) { ... }, where the reader
does not advance.

CC: libav-stable@libav.org
(cherry picked from commit 86eee85dad)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-18 20:23:45 +02:00
Michael Niedermayer
0df814cf97 avcodec/utils: use a minimum 32pixel width in avcodec_align_dimensions2() for H.264
Fixes Assertion failure
Found-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 7ef6656b1e)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-18 20:23:45 +02:00
Michael Niedermayer
88fa3243dd avcodec/mpegvideo: Clear pointers in ff_mpv_common_init()
This ensures that no stale pointers leak through on any path

Fixes: signal_sigsegv_c3097a_991_xtrem_e2_m64q15_a32sxx.3gp

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-18 20:23:45 +02:00
Chris Watkins
2a6f2cd848 oggparsedirac: check return value of init_get_bits
If init_get_bits fails the GetBitContext is invalid and must not be
used. Check the return value in dirac_header and propogate the error.

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-18 20:23:45 +02:00
Andreas Cadhalpun
c001472226 wmalosslessdec: reset frame->nb_samples on packet loss
Otherwise a frame with non-zero nb_samples but without any data can be
returned.

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-18 20:23:45 +02:00
Andreas Cadhalpun
1ec0541ae0 wmalosslessdec: avoid reading 0 bits with get_bits
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit f9020d514e)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-18 20:23:45 +02:00
Chris Watkins
151554e1eb Put a space between string literals and macros.
When compiling libavutil/internal.h as C++11, clang warns that a space
is required between a string literal and an identifier. Put spaces
in concatenations of string literals and EXTERN_PREFIX.

Signed-off-by: Chris Watkins <watk@chromium.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 55e29ceec8)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-18 20:23:45 +02:00
Michael Niedermayer
ac91bfe086 avcodec/rawenc: Use ff_alloc_packet() instead of ff_alloc_packet2()
the later is not optimal when the buffer size is well known at allocation time

This avoids a memcpy()
Overall 2.5% speedup with a random 1920x1080 video

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-18 20:23:45 +02:00
Michael Niedermayer
bbcf6f5c62 avcodec/aacsbr: Assert that bs_num_env is positive
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 2e13a45b1a)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-18 20:23:45 +02:00
Michael Niedermayer
e740506d31 avcodec/aacsbr: check that the element type matches before applying SBR
Fixes out of array access
Fixes: signal_sigsegv_3670fc0_2818_cov_2307326154_moon.mux

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-18 20:23:45 +02:00
Michael Niedermayer
65aac419e5 avcodec/h264_slice: Use w/h from the AVFrame instead of mb_w/h
Fixes out of array access
Fixes: asan_heap-oob_4d5bb0_682_cov_3124593265_Fraunhofer__a_driving_force_in_innovation__small.mp4

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-18 20:23:45 +02:00
James Zern
662714abbe vp9/update_prob: prevent out of bounds table read
the max value of the lookup in expanded form is:
(((1 << 7) - 1) << 1) - 65 + 1 + 64 = 254

add one entry of padding to inv_map_table[] to prevent out of bounds
access with non-conforming / fuzzed bitstreams

Signed-off-by: James Zern <jzern@google.com>
Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit e91f860ea7)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-18 20:23:45 +02:00
Michael Niedermayer
51782e8690 avfilter/vf_transpose: Fix rounding error
Fixes out of array access
Fixes: asan_heap-oob_7f875d_3482_cov_1818465256_ssudec.mov

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-18 20:23:45 +02:00
Michael Niedermayer
0afb004d3c avcodec/h264_refs: discard mismatching references
Fixes inconsistency and out of array access
Fixes: asan_heap-oob_17301a3_2100_cov_3226131691_ff_add_pixels_clamped_mmx.m2ts

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-18 20:23:45 +02:00
Michael Niedermayer
a9c3b588af avcodec/mjpegdec: Fix small picture upscale
Fixes out of array access

Fixes: asan_heap-oob_1dd60fd_267_cov_2954683513_5baad44ca4702949724234e35c5bb341.jpg

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-18 20:23:45 +02:00
Michael Niedermayer
f775a92054 avcodec/pngdec: Check values before updating context in decode_fctl_chunk()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit b54ac8403b)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-18 20:23:45 +02:00
Michael Niedermayer
cccb06b095 avcodec/pngdec: Copy IHDR & plte state from last thread
Previously these chunks where parsed again for each frame with threads
but not without leading to a different path and the potential for
inconsistencies

This also removes a related special case from decode_ihdr_chunk()

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-18 20:23:45 +02:00
Michael Niedermayer
be54d1f104 avcodec/pngdec: Require a IHDR chunk before fctl
This is required by the APNG spec

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-18 20:23:45 +02:00
Michael Niedermayer
e84d17c7c9 avcodec/pngdec: Only allow one IHDR chunk
Multiple IHDR chunks are forbidden in PNG
Fixes inconsistency and out of array accesses

Fixes: asan_heap-oob_4d5c5a_1738_cov_2638287726_c-m2-8f2b481b7fd9bd745e620b7c01a18df2.png

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-18 20:23:45 +02:00
Andreas Cadhalpun
254fabe758 wmavoice: limit wmavoice_decode_packet return value to packet size
Claiming to have decoded more bytes than the packet size is wrong.

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-18 20:23:45 +02:00
Michael Niedermayer
d1f8eaf3d2 swscale/swscale_unscaled: Fix rounding difference with RGBA output between little and big endian
Fixes fate/dds-rgb16 on big endian

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

Conflicts:

	tests/ref/fate/dds-rgb16
2015-07-18 20:23:45 +02:00
Michael Niedermayer
483a02e25f ffmpeg: Do not use the data/size of a bitstream filter after failure
Found-by: Rodger Combs
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 8f0f678f09)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-18 20:23:45 +02:00
James Almer
3f06023bd2 swscale/x86/rgb2rgb_template: fix signedness of v in shuffle_bytes_2103_{mmx,mmxext}
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
(cherry picked from commit e22edbfd41)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-18 20:23:45 +02:00
Sebastien Zwickert
ce3a8c983f vda: unlock the pixel buffer base address.
The pixel buffer base address is never unlocked this causes
a bug with some pixel format types that are produced natively
by the hardware decoder: the first buffer was always used.
Unlock the pixel buffer base address fixes the issue.
(cherry picked from commit c06fdacc3d)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-18 20:23:45 +02:00
Michael Niedermayer
f5c880cecb swscale/rgb2rgb_template: Fix signedness of v in shuffle_bytes_2103_c()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 7604358018)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-18 20:23:45 +02:00
Michael Niedermayer
2af2c7ecff swscale/rgb2rgb_template: Implement shuffle_bytes_0321_c and fix shuffle_bytes_2103_c on BE
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit abb833c568)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-18 20:23:45 +02:00
Michael Niedermayer
12aa4220dd swscale/rgb2rgb_template: Disable shuffle_bytes_2103_c on big endian
The function is specific to little endian

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-18 20:23:45 +02:00
Michael Niedermayer
e40688ed80 swr: Remember previously set int_sample_format from user
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit d4325b2fea)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-18 20:23:44 +02:00
Rob Sykes
d403242a28 swresample: soxr implementation for swr_get_out_samples()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit c70c6be225)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-18 20:23:44 +02:00
Michael Niedermayer
f921a47fae avformat/swfdec: Do not error out on pixel format changes
Instead print an error and continue

Fixes Ticket4702

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 6a1204a1a4)
2015-07-08 12:40:10 +02:00
Michael Niedermayer
a7fa1c9b2b ffmpeg_opt: Fix forcing fourccs
Fixes Ticket4682

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 8750aef3d6)
2015-07-05 23:08:21 +02:00
Derek Buitenhuis
6ff54eb87b configure: Check for x265_api_get
Any other x265 symbol may not exported, e.g. if the build is a
multilib (10-bit and 8-bit in one) build.

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

Fixes the configure check on multilib x265 builds.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
(cherry picked from commit f4be604f1c)
2015-06-27 11:51:48 +01:00
James Almer
7f2ab5e50f swscale/x86/rgb2rgb_template: don't call emms on sse2/avx functions
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
(cherry picked from commit 0c15f2f158)
2015-06-26 16:30:23 -03:00
James Almer
aebb9410c5 swscale/x86/rgb2rgb_template: add missing xmm clobbers
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
(cherry picked from commit 910eeab480)
2015-06-26 16:22:56 -03:00
James Almer
459090181f library.mak: Workaround SDL redefining main and breaking fate tests on mingw
Fixes Ticket3368

Commit message by commiter
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>

(cherry picked from commit a9af9da631)
2015-06-26 16:22:54 -03:00
Gwenole Beauchesne
071d7f4e17 vaapi_h264: fix RefPicList[] field flags.
Use new H264Ref.reference field to track field picture flags. The
H264Picture.reference flag in DPB is now irrelevant here.

This is a regression from git commit d8151a7, and that affected
multiple interlaced video streams.

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
(cherry picked from commit 88325c2e0b)
2015-06-23 13:52:30 +02:00
Andreas Cadhalpun
620197d1ff doc: avoid incorrect phrase 'allows to'
Also fix typo found by Lou Logan:
Sacrifying -> Sacrificing

Reviewed-by: Lou Logan <lou@lrcd.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit 28efeb6502)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-06-19 20:31:44 +02:00
Andreas Cadhalpun
73e7fe8e64 configure: make makeinfo_html check more robust
The current check is too strict for newer makeinfo versions.
Existing version strings are:
makeinfo (GNU texinfo) 4.13
makeinfo (GNU texinfo) 5.2
texi2any (GNU texinfo) 5.9.93

Probably version 6 will come in the not too far future.

Reviewed-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit 72654526e4)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-06-19 20:31:36 +02:00
Andreas Cadhalpun
973e67e5d2 matroskadec: validate audio channels and bitdepth
In the TTA extradata re-construction the values are written with
avio_wl16 and if they don't fit into uint16_t, this triggers an
av_assert2 in avio_w8.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit 92e79a2f7b)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-06-19 20:31:27 +02:00
Andreas Cadhalpun
d89cd16afa matroskadec: check audio sample rate
And default to 8000 if it is invalid.

An invalid sample rate can trigger av_assert2 in av_rescale_rnd.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit 5b76c82fd7)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-06-19 20:31:12 +02:00
Michael Niedermayer
7cbceb16ad Update for 2.7.1
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-19 19:03:00 +02:00
Michael Niedermayer
157dd52700 avcodec/dpxenc: implement write16/32 as functions
Fixes undefined behavior and segfault

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-19 18:40:49 +02:00
Michael Niedermayer
23614d09d5 avutil/avstring: Do not print NULL
Fixes segfault
Fixes Ticket4452

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-19 18:40:49 +02:00
Andreas Cadhalpun
bea4894d0c postproc: fix unaligned access
QP_store is only 8-bit-aligned, so accessing it as uint32_t causes
SIGBUS crashes on sparc.
The AV_RN32/AV_WN32 macros only do unaligned access in the
HAVE_FAST_UNALIGNED case.

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-19 18:40:49 +02:00
Andreas Cadhalpun
250cf2d4da vp9: don't retain NULL as segmentation_map
This fixes segmentation faults, which were introduced in commit
4ba8f327.

Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit d216b9debd)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-19 18:40:49 +02:00
wm4
93d076b4fd avformat: clarify what package needs to be compiled with SSL support
Try to reduce user confusion.

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-19 18:40:49 +02:00
Michael Niedermayer
8749b83e0b avcodec/libx264: Avoid reconfig on equivalent aspect ratios
Workaround for ticket #4287.

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

Conflicts:
	libavcodec/libx264.c
2015-06-19 13:27:42 +02:00
George Boyle
a9b600cf39 avcodec/flacenc: Fix Invalid Rice order
Fixes ticket #4628.

The problem arose, in the sample file at least, in the last block where the
minimum and maximum Rice partition orders were both 0. In that case, and any
other where pmax == pmin, the original UINT32_MAX placeholder value for
bits[opt_porder] was getting overwritten before the comparison to check if the
current partition order is a new optimal, so the correct partition order and
RiceContext params were not being set.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 2469ed32c8)
2015-06-19 10:10:43 +02:00
wm4
c3c8365dbd tls_gnutls: fix hang on disconnection
GNUTLS_SHUT_RDWR means GnuTLS will keep waiting for the server's
termination reply. But since we don't shutdown the TCP connection at
this point yet, GnuTLS will just keep skipping actual data from the
server, which basically is perceived as hang.

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

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-18 22:09:01 +02:00
Michael Niedermayer
6432f8826d avcodec/hevc_ps: Only discard overread VPS if a previous is available
Fixes Ticket4621

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-18 22:09:01 +02:00
Michael Niedermayer
e04ae11fa0 ffmpeg: Free last_frame instead of just unref
Fixes Ticket4611

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-18 22:09:01 +02:00
Michael Niedermayer
08fadda68a avcodec/ffv1enc: fix bps for >8bit yuv when not explicitly set
Fixes Ticket4636

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-18 22:09:01 +02:00
wm4
9473e5a05d avio: fix potential crashes when combining ffio_ensure_seekback + crc
Calling ffio_ensure_seekback() if ffio_init_checksum() has been called
on the same context can lead to out of bounds memory accesses and
crashes. The reason is that ffio_ensure_seekback() does not update
checksum_ptr after reallocating the buffer, resulting in a dangling
pointer.

This effectively fixes potential crashes when opening mp3 files.

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-18 22:09:01 +02:00
Andreas Cadhalpun
8a24ccfee3 examples/demuxing_decoding: use properties from frame instead of video_dec_ctx
This is more robust.

And only check if there is actually a frame returned.

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-18 22:09:01 +02:00
Andreas Cadhalpun
3ba55ea4ae h264: er: Copy from the previous reference only if compatible
Also use the frame pixel format instead of the one from the codec
context, which is more robust.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit fdc64a1044)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-18 22:09:01 +02:00
Andreas Cadhalpun
265db41540 doc: fix spelling errors
Neccessary -> Necessary
formated   -> formatted
thee       -> the
eventhough -> even though
seperately -> separately

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-18 22:09:01 +02:00
Andreas Cadhalpun
ed5041143e configure: only disable VSX for !ppc64el
This reverts commit 04f0002, which made it impossible to enable VSX with
a generic cpu.

This changes the behavior back to what it was before commit b0af404.

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-18 22:09:01 +02:00
Michael Niedermayer
965f96c5ed ffmpeg_opt: Check for localtime() failure
Found-by: Daemon404
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 8e91d9652e)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-18 22:09:01 +02:00
James Almer
3b6aeb148b avformat/singlejpeg: fix standalone compilation
(cherry picked from commit 4aebaed0e1)
2015-06-18 16:39:09 -03:00
Michael Niedermayer
259bb2555b configure: Disable VSX on unspecified / generic CPUs
Fixes fate tests on PPC64be

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-12 14:16:10 +02:00
Deliang Fu
665b67014f avformat: Fix bug in parse_rps for HEVC.
Make the logic in libavformat/hevc.c parse_rps align with libavcodec/hevc_ps.c ff_hevc_decode_short_term_rps

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-11 02:42:30 +02:00
Andreas Cadhalpun
1051c152f9 takdec: ensure chan2 is a valid channel index
If chan2 is not smaller than the number of channels, it can cause
segmentation faults due to dereferencing a NULL pointer.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 05c57ba2f4)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-10 12:23:21 +02:00
Michael Niedermayer
5a0862af55 avcodec/h264_slice: Use AVFrame diemensions for grayscale handling
The AVFrame values are closer to the AVFrame bitmap changed instead of
the AVCodecContext values, so this should be more robust

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-10 12:05:42 +02:00
Michael Niedermayer
6e94e77632 avdevice/lavfi: do not rescale AV_NOPTS_VALUE in lavfi_read_packet()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 913685f552)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-10 00:56:38 +02:00
Michael Niedermayer
f5bb7b9992 MAINTAINERS: add 2.7
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-09 23:54:46 +02:00
Michael Niedermayer
0e9209183a Update for 2.7
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-09 23:36:06 +02:00
Michael Niedermayer
90932a9e3c add RELEASE_NOTES, based on previous 2015-06-09 23:36:06 +02:00
Andreas Cadhalpun
58995f647b sonic: set avctx->channels in sonic_decode_init
Otherwise it can be 0 in sonic_decode_frame, causing SIGFPE crashes.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-06-09 23:21:51 +02:00
Michael Niedermayer
3a99f6e79f Changelog: Add 2.7 entry
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-09 23:14:57 +02:00
Michael Niedermayer
a5f44bc446 doc/APIchanges: fill in missing stuff
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-09 23:08:53 +02:00
Michael Niedermayer
6ddb109b90 doc/APIchanges: Add 2.7 separator
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-09 23:05:07 +02:00
Simon Thelen
83307a32eb libavutil/channel_layout: Correctly return layout when channel specification ends with a trailing 'c'.
Return layout when FF_API_GET_CHANNEL_LAYOUT_COMPAT is set even if the
layout itself is not in the deprecated style.

Signed-off-by: Simon Thelen <ffmpeg-dev@c-14.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-09 22:44:34 +02:00
Vignesh Venkatasubramanian
34ae98a771 lavf/webm_chunk: Remove AVFMT_ALLOW_FLUSH
The flag was set unintentionally and the code will break if a NULL
packet is passed in.

Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-09 21:19:57 +02:00
Michael Niedermayer
0916938a8d avcodec/jpeg2000dec: Fix gain regression with gray16
Found-by: carl
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-09 20:26:38 +02:00
Michael Niedermayer
6bf8d9e164 fate: Force jpeg2000 decoder for dcinema
so that no external decoder is used which would break the test

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-09 20:09:12 +02:00
Michael Niedermayer
adbe1d7de4 avcodec/libopenjpegdec: Mark as experimental if <= 1.3
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-09 18:59:30 +02:00
Michael Niedermayer
dbbb31e5bb avcodec/jpeg2000: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-09 18:48:39 +02:00
Michael Niedermayer
32b1131fc1 avformat/oggenc: Fix return code in case of flushing
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-09 18:42:55 +02:00
Michael Niedermayer
dac7b27802 Merge commit 'b14086ca38efa1a86cb0f0c6aa147b05f698877b'
* commit 'b14086ca38efa1a86cb0f0c6aa147b05f698877b':
  mkv: Correctly report the latest packet had been flushed

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-09 18:30:24 +02:00
Michael Niedermayer
962654f251 Merge commit 'b380337020e271c5431aa8ef8f8e9dfda5e919b2'
* commit 'b380337020e271c5431aa8ef8f8e9dfda5e919b2':
  mpjpegdec: don't try to alloc an AVIOContext when probe is guaranteed to fail

See: 1382add59d
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-09 18:09:26 +02:00
Michael Niedermayer
551813a963 Merge commit '210921722bf828b3b895ebcbc34374e6c4452c6f'
* commit '210921722bf828b3b895ebcbc34374e6c4452c6f':
  imc: add required padding for GetBitContext buffer

Conflicts:
	libavcodec/imc.c

See: 7444cf9a9c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-09 17:44:13 +02:00
Michael Niedermayer
840465ebf9 Merge commit '09447f2b0fafac6d9565aab82a4c5f16fc99ee5e'
* commit '09447f2b0fafac6d9565aab82a4c5f16fc99ee5e':
  ac3_parser: add required padding for GetBitContext buffer

See: fccd85b9f3
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-09 17:35:14 +02:00
Michael Niedermayer
5f48a73bb0 Merge commit 'fb1473080223a634b8ac2cca48a632d037a0a69d'
* commit 'fb1473080223a634b8ac2cca48a632d037a0a69d':
  aac_parser: add required padding for GetBitContext buffer

See: fccd85b9f3
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-09 17:22:35 +02:00
Rodger Combs
4b082bc241 doc/muxers: document new break_non_keyframes option
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-09 17:08:35 +02:00
Michael Niedermayer
44327cbc9a avcodec/jpeg2000: Disable special case for JPEG2000_QSTY_SI
The code gave apparently completely wrong values

Fixes Ticket2872

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-09 16:44:32 +02:00
Michael Niedermayer
45db921806 avcodec/jpeg2000dec: Add placeholder for PLT parsing
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-09 15:16:46 +02:00
Michael Niedermayer
b6ee1912f9 avcodec/jpeg2000dec: Handle Psot = 0
Fixes Ticket2869

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-09 14:43:03 +02:00
Luca Barbato
b14086ca38 mkv: Correctly report the latest packet had been flushed
Bug-Id: 865
CC: libav-stable@libav.org
2015-06-09 14:27:54 +02:00
Rodger Combs
e60b018c74 lavf/segment: add an option to allow breaking on non-keyframes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-09 13:26:00 +02:00
James Almer
b380337020 mpjpegdec: don't try to alloc an AVIOContext when probe is guaranteed to fail
The first check is done without the AVIOContext, so alloc it only if said check succeeds

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2015-06-09 10:07:11 +02:00
Janne Grunau
210921722b imc: add required padding for GetBitContext buffer
Fixes stack buffer overflow errors detected by address sanitizer in
fate-imc.

CC: libav-stable@libav.org
2015-06-09 10:07:04 +02:00
Janne Grunau
09447f2b0f ac3_parser: add required padding for GetBitContext buffer
Fixes stack buffer overflow errors detected by address sanitizer in
various fate tests.

CC: libav-stable@libav.org
2015-06-09 10:06:59 +02:00
Janne Grunau
fb14730802 aac_parser: add required padding for GetBitContext buffer
Fixes stack buffer overflow errors detected by address sanitizer in
various fate tests.

CC: libav-stable@libav.org
2015-06-09 10:05:54 +02:00
Michael Niedermayer
e100966575 avcodec/x86/h264_weight: handle weight1=128
Fix ticket4596

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-09 05:11:09 +02:00
Michael Niedermayer
7c9fcdfabd avcodec/jpeg2000dec: Fix some 5/3 bitexactness issues
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-09 02:17:53 +02:00
Rodger Combs
ecefce41d9 lavf/tls_securetransport: fix SNI support when not verifying
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-09 01:06:32 +02:00
Michael Niedermayer
074159ed70 avcodec/jpeg2000dec: Fix subsampled decoding
Fixes part of Ticket3619

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-09 01:02:05 +02:00
Michael Niedermayer
12ba1b2b4d avcodec/jpeg2000dec: Check that coords match before applying ICT
This avoid potential out of array accesses

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-09 01:02:05 +02:00
Michael Niedermayer
028c59c17b avcodec/jpeg2000dec: Fix high bit depth branch sample shift
Fix part of Ticket3619

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-09 01:01:01 +02:00
Andreas Cadhalpun
6fdbaa2b7f vp8: change mv_{min,max}.{x,y} type to int
If one of the dimensions is larger than 8176, s->mb_width or
s->mb_height is larger than 511, leading to an int16_t overflow of
s->mv_max.{x,y}. This then causes av_clip to be called with amin > amax.

Changing the type to int avoids the overflow and has no negative
effect, because s->mv_max is only used in clamp_mv for clipping.
Since mv_max.{x,y} is positive and mv_min.{x,y} negative, av_clip can't
increase the absolute value. The input to av_clip is an int16_t, and
thus the output fits into int16_t as well.

For additional safety, s->mv_{min,max}.{x,y} are clipped to int16_t range
before use.

Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-06-08 23:29:14 +02:00
James Almer
1382add59d mpjpegdec: don't try to alloc an AVIOContext when probe is guaranteed to fail
The first check is done without the AVIOContext, so alloc it only if said check succeeds

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-06-08 18:26:42 -03:00
Michael Niedermayer
d5a645625d Merge commit '4733a12dd17a91d606e0079ff9bb48b9f419cbef'
* commit '4733a12dd17a91d606e0079ff9bb48b9f419cbef':
  rtpdec_asf: Check memory allocation and free memory on error

Conflicts:
	libavformat/rtpdec_asf.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-08 23:05:01 +02:00
Michael Niedermayer
3d6635749a Merge commit '6308cd4868d2bd5fdf8bfa8dd10856c9a91874f5'
* commit '6308cd4868d2bd5fdf8bfa8dd10856c9a91874f5':
  mov: Check memory allocation

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-08 22:56:51 +02:00
Michael Niedermayer
77510a9698 Merge commit 'bc1eace1b3654c490cb2c226b3c80854244dbb9a'
* commit 'bc1eace1b3654c490cb2c226b3c80854244dbb9a':
  jack: Check memory allocation

Conflicts:
	libavdevice/jack.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-08 22:48:14 +02:00
Michael Niedermayer
d1f7b313ac Merge commit 'f7e932473314e6ca4c851d49cbde8570b6e66383'
* commit 'f7e932473314e6ca4c851d49cbde8570b6e66383':
  audiointerleave: Always initialize new_pkt

Conflicts:
	libavformat/audiointerleave.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-08 22:37:41 +02:00
Michael Niedermayer
01a6ae1396 Merge commit '8ef98855d25e457094468e2e1a79d9b10d6445b2'
* commit '8ef98855d25e457094468e2e1a79d9b10d6445b2':
  sctp: Always initialize outmsg struct

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-08 22:35:53 +02:00
Michael Niedermayer
402b18afcc Merge commit 'caf7be30b11288c498fae67be4741bfbf083d977'
* commit 'caf7be30b11288c498fae67be4741bfbf083d977':
  mpjpgdec: free AVIOContext leak on early probe fail

Conflicts:
	libavformat/mpjpegdec.c

See: 34d278f983, this was mistakenly reimplemented, also see ffmpeg IRC log of today
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-08 22:15:28 +02:00
Michael Niedermayer
83e3516e64 Merge commit '925b80d64029d41962e5998d7d901226c3a9baea'
* commit '925b80d64029d41962e5998d7d901226c3a9baea':
  mpegvideo: Move OutFormat enum to mpegutils.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-08 22:05:25 +02:00
Michael Niedermayer
3244a17650 Merge commit '9bb11be0e5a75782c3139ad058c2b571499aa37d'
* commit '9bb11be0e5a75782c3139ad058c2b571499aa37d':
  mpegvideo: Split picture allocation for encoding and decoding

Conflicts:
	libavcodec/mpegvideo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-08 21:49:26 +02:00
Andreas Cadhalpun
b18eac7ff2 vp9: change type of tile_size from unsigned to int64_t
Otherwise the check 'tile_size < size' treats a negative size as
unsigned, causing the check to pass. This subsequently leads to
segmentation faults.

This was originally fixed as part of Libav commit 72ca83, so the
original author is one of the following developers:
        Anton Khirnov <anton@khirnov.net>
        Diego Biurrun <diego@biurrun.de>
        Luca Barbato <lu_zero@gentoo.org>
        Martin Storsjö <martin@martin.st>

Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-06-08 21:43:16 +02:00
Michael Niedermayer
e05fda99f7 Merge commit 'f8716a1408f4f4ec63857b7015fbd62f9eac344a'
* commit 'f8716a1408f4f4ec63857b7015fbd62f9eac344a':
  mpegvideo: Rework frame_size_alloc function

Conflicts:
	libavcodec/mpegvideo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-08 21:16:36 +02:00
Michael Niedermayer
db8ae37a78 Merge commit 'da0c8664b4dc906696803685f7e53ade68594ab8'
* commit 'da0c8664b4dc906696803685f7e53ade68594ab8':
  mpegvideo: Move various temporary buffers to a separate context

Conflicts:
	libavcodec/mpegvideo.c
	libavcodec/mpegvideo_enc.c
	libavcodec/mpegvideo_motion.c
	libavcodec/rv34.c
	libavcodec/vc1_mc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-08 21:05:12 +02:00
James Almer
34d278f983 mpjpegdec: fix memory leak in probe function
Signed-off-by: James Almer <jamrial@gmail.com>
2015-06-08 16:03:31 -03:00
Michael Niedermayer
a4557b7a98 Merge commit 'a6f19d6a9f8d1e08653d9d77581e8c823f4955c2'
* commit 'a6f19d6a9f8d1e08653d9d77581e8c823f4955c2':
  configure: Support MSVC 2015

Conflicts:
	configure
	libavutil/internal.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-08 20:39:38 +02:00
Michael Niedermayer
56f0fe6b84 swr: Fix ASSERT_LEVEL warning
Found-by: cehoyos
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-08 20:16:06 +02:00
Michael Niedermayer
653bf3c5a1 avcodec/hq_hqa: Fix signness of tag
Fixes Ticket4509

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-08 19:11:27 +02:00
Donny Yang
130a6c04a4 avcodec/apng: Add partial support for blending with PAL8 pixel format
Currently restricted to blending pixels that only contain either
0 or 255 in their alpha components

Signed-off-by: Donny Yang <work@kota.moe>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-08 16:27:57 +02:00
Donny Yang
33292c07fe avcodec/apng: Add support for blending with GRAY8A pixel format
Signed-off-by: Donny Yang <work@kota.moe>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-08 16:18:34 +02:00
Donny Yang
0ab1c46fe0 avcodec/apng: Add blending support for non-alpha pixel formats
Signed-off-by: Donny Yang <work@kota.moe>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-08 15:44:22 +02:00
Donny Yang
ed09bb3782 avcodec/apng: Dispose previous frame properly
The spec specifies the dispose operation as how the current (i.e., currently
being rendered) frame should be disposed when the next frame is blended onto it

This is contrary to ffmpeg's current behaviour of interpreting the dispose
operation as how the previous (i.e., already rendered) frame should be disposed

This patch fixes ffmpeg's behaviour to match those of the spec, which involved
a rewrite of the blending function

Signed-off-by: Donny Yang <work@kota.moe>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-08 15:32:49 +02:00
Rodger Combs
6dd5371e34 lavf/tls: let the user specify what name to verify against
This can be useful for debugging, or in scenarios where the user
doesn't want to use the system's DNS settings for whatever reason.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-08 14:08:52 +02:00
Vittorio Giovara
4733a12dd1 rtpdec_asf: Check memory allocation and free memory on error
CC: libav-stable@libav.org
Bug-Id: CID 1257774
2015-06-08 13:04:29 +01:00
Vittorio Giovara
6308cd4868 mov: Check memory allocation
CC: libav-stable@libav.org
Bug-Id: CID 1292518
2015-06-08 13:03:39 +01:00
Vittorio Giovara
bc1eace1b3 jack: Check memory allocation
CC: libav-stable@libav.org
Bug-Id: CID 1292520
2015-06-08 13:03:27 +01:00
Vittorio Giovara
f7e9324733 audiointerleave: Always initialize new_pkt
CC: libav-stable@libav.org
Bug-Id: CID 609333
2015-06-08 13:03:10 +01:00
Vittorio Giovara
8ef98855d2 sctp: Always initialize outmsg struct
CC: libav-stable@libav.org
Bug-Id: CID 1302711
2015-06-08 13:01:33 +01:00
Janne Grunau
caf7be30b1 mpjpgdec: free AVIOContext leak on early probe fail 2015-06-08 13:55:26 +02:00
Vittorio Giovara
925b80d640 mpegvideo: Move OutFormat enum to mpegutils.h
It is necessary to avoid circular header dependencies.
2015-06-08 12:39:42 +01:00
Vittorio Giovara
9bb11be0e5 mpegvideo: Split picture allocation for encoding and decoding
The main ff_alloc_picture() function is made more generic with all the
parameters necessary as arguments. This will allows to move most of the
related functions to a separate file later.

Right now wrappers are provided to try and minimize the number of
changes in the code.
2015-06-08 12:39:42 +01:00
Vittorio Giovara
f8716a1408 mpegvideo: Rework frame_size_alloc function
Use more generic arguments and remove its static attribute since it will
be moved to a separate file.
2015-06-08 12:39:42 +01:00
Vittorio Giovara
da0c8664b4 mpegvideo: Move various temporary buffers to a separate context 2015-06-08 12:39:42 +01:00
Luca Barbato
a6f19d6a9f configure: Support MSVC 2015
The C runtime C99 compatibility had been improved a lot and it now
rejects some of the compatibility defines provided for the older
versions.

Many thanks to Ray for the time spent testing.

Bug-Id: 864
CC: libav-stable@libav.org
2015-06-08 13:27:49 +02:00
Michael Niedermayer
7630cce4b3 avformat/mxfenc: Allow overriding /manual setting of the signal standard
previous patch reviewed-by: tim nicholson <nichot20@yahoo.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-08 13:03:29 +02:00
Max Poliakovski
4b343f7c35 atrac3plus: give the phase_shift flag a better name.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-08 11:45:22 +02:00
Max Poliakovski
d765e07322 atrac3plus: add support for GHA phase inversion.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-08 04:26:04 +02:00
Michael Niedermayer
ac2dad9690 avformat/version: Bump version for single jpeg muxer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-08 04:00:45 +02:00
Michael Niedermayer
5cf84e595d doc/ffserver: Add entry for missing jpeg variant
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-08 03:41:57 +02:00
Caligula useraccount
3b89a67315 ffserver: Use singlejpeg muxer for jpeg
Fixes Ticket4218

Based on patch by: Otávio Ribeiro
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-08 03:36:22 +02:00
Caligula useraccount
51ac1f616f avformat: Add single jpeg muxer
Needed to fix Ticket4218

Based on patch by: Otávio Ribeiro
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-08 03:36:22 +02:00
Michael Niedermayer
990605768c avcodec/aacdec: Do not return a uninitialized value
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-08 02:33:39 +02:00
Michael Niedermayer
153d23ee39 Merge commit 'bc76c46943272515805d7ac48ca39f14826d1fed'
* commit 'bc76c46943272515805d7ac48ca39f14826d1fed':
  aac: Wait to know the channels before allocating frame

Conflicts:
	libavcodec/aacdec.c

See: 676a395ab9
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-08 02:28:44 +02:00
Michael Niedermayer
476692abdb Merge commit 'a188108ebf28ebac9d2b8fc7d5b391aef45698b3'
* commit 'a188108ebf28ebac9d2b8fc7d5b391aef45698b3':
  aac: Support channel configurations 11 and 12

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-08 01:31:15 +02:00
Michael Niedermayer
8eb2c411c1 Merge commit '677c804aa3a78d61b21e6423165a252846c20f0e'
* commit '677c804aa3a78d61b21e6423165a252846c20f0e':
  aac: correctly map 7.1ch-wide AAC from FDK AAC encoder

Sample: FDK_7.1ch_wide.aac
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-08 01:29:36 +02:00
Michael Niedermayer
ce838ad950 Merge commit '252d6200c36e7eaa79f8d5205b7d731179e94897'
* commit '252d6200c36e7eaa79f8d5205b7d731179e94897':
  avio: Add avio_put_str16be

Conflicts:
	doc/APIchanges
	libavformat/avio.h
	libavformat/aviobuf.c
	libavformat/version.h

The FFmpeg implementation is kept as requested by ubitux
Doxy improvements merged

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-08 01:17:26 +02:00
Michael Niedermayer
8985e7c561 Merge commit '9b56ac74b170d12027fbc81f581a451a709f1105'
* commit '9b56ac74b170d12027fbc81f581a451a709f1105':
  mpjpeg: Initial implementation

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

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-08 00:44:28 +02:00
Michael Niedermayer
7856afef52 avformat/hdsenc: Change duration from single to to double precision
This slightly improves precision

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-08 00:35:43 +02:00
Michael Niedermayer
0dbea4642f avformat/rmenc: Remove float usage
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-07 21:55:46 +02:00
Michael Niedermayer
4c4c3d5d5a avcodec/libstagefright: Check for pthread_create() failure
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-07 21:20:21 +02:00
Clément Bœsch
40cc3be73c avfilter: fix a few 5 spaces indent 2015-06-07 20:18:15 +02:00
Michael Niedermayer
7c453277a3 avdevice/iec61883: Check pthread init for failures
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-07 18:57:55 +02:00
Michael Niedermayer
ddda9cee1c ffserver: Check for ffio_set_buf_size() failure
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-07 15:10:24 +02:00
Michael Niedermayer
0023ea4e20 avformat/aviobuf: Check for ffio_set_buf_size() failure
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-07 14:57:36 +02:00
Michael Niedermayer
dc55477a64 avformat/ffmdec: Check ffio_set_buf_size() return value
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-07 14:55:10 +02:00
Michael Niedermayer
d6039063aa ffserver: Check allocations (likely not all)
Reviewed-by: "Reynaldo H. Verdejo Pinochet" <reynaldo@osg.samsung.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-07 12:42:48 +02:00
Luca Barbato
bc76c46943 aac: Wait to know the channels before allocating frame
The channel configuration can be delivered only by the PCE,
try to parse it first and not try to decode until a channel
configuration is set.

CC: libav-stable@libav.org
2015-06-07 10:14:46 +02:00
Sebastian Dröge
a188108ebf aac: Support channel configurations 11 and 12
These are defined in ISO/IEC 14496-3:2009/PDAM 4 for 6.1 and 7.1.
It also defines another 7.1 layout with configuration 14, that one
is not added here for now.

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

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-06-07 10:14:46 +02:00
nu774
677c804aa3 aac: correctly map 7.1ch-wide AAC from FDK AAC encoder
FDK AAC encoder outputs SCE(front)+CPE(front)+CPE(back)+CPE(back) on
MODE_7_1_REAR_SURROUND configuration.
Since decoder couldn't properly map 4 back channels, decoding failed
unless -request_channel_layout 0x8000000000000000 has been specified.
Now we treat first CPE(back) as CPE(side) on channel mapping.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-06-07 10:14:45 +02:00
Luca Barbato
252d6200c3 avio: Add avio_put_str16be 2015-06-07 10:14:45 +02:00
Luca Barbato
9b56ac74b1 mpjpeg: Initial implementation
Support only streams with Content-Length.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-06-07 10:14:45 +02:00
James Almer
e225f5f232 fate: add missing avdevice dependency to closed caption test
Signed-off-by: James Almer <jamrial@gmail.com>
2015-06-07 01:24:50 -03:00
Philip Langdale
cc904353fa avcodec/allcodecs: Re-order nvenc encoders below x264/5.
We shouldn't pick nvenc by default.

Signed-off-by: Philip Langdale <philipl@overt.org>
2015-06-06 20:29:17 -07:00
Ganesh Ajjanagadde
42db4aaaa6 vf_colormatrix: calculate coefficients only once
calc_coefficients is no longer being called every frame

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-07 00:56:32 +02:00
Michael Niedermayer
46428ea332 avcodec/mpegvideo: Use av_memdup() for allocating thread_context
Also check for allocation failure

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-06 22:47:50 +02:00
Michael Niedermayer
7ddedd2362 avcodec/mpegvideo: Clear thread_context array before allocating
This is probably redundant but its safer

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-06 22:47:50 +02:00
Michael Niedermayer
f30a7d9861 avcodec/mpegvideo: Merge thread context initialization loops
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-06 22:47:50 +02:00
Philip Langdale
7e4661174a avcodec/nvenc: Add 'nvenc_h264' as an alternative name for 'nvenc'
This allows us to offer the same codec name that libav uses. We don't have
a special way to do aliases, so it's all a bit more verbose than you'd want
but such is life.

Signed-off-by: Philip Langdale <philipl@overt.org>
2015-06-06 13:14:14 -07:00
Philip Langdale
e79c40fe72 avcodec/nvenc: Rename nvenc_h265 to nvenc_hevc
For the sake of compatibility, and because pretty much everything else in the
codebase calls it HEVC.

Signed-off-by: Philip Langdale <philipl@overt.org>
2015-06-06 13:14:11 -07:00
Philip Langdale
c10e6bcb43 Revert "avcodec: Rename nvenc.c to nvenc_a.c, to avoid conflict with the other implementation"
This reverts commit d0d0913702.

Signed-off-by: Philip Langdale <philipl@overt.org>
2015-06-06 13:14:07 -07:00
Philip Langdale
d47de79372 Revert "Merge commit 'b08caa87c35a768ec0abb16b1e99c3a85f1df28e'"
This reverts commit d8bbb99c51, reversing
changes made to d0d0913702.

Signed-off-by: Philip Langdale <philipl@overt.org>
2015-06-06 13:14:02 -07:00
Philip Langdale
58b49f78cf Revert "nvenc: remove cuda.h requirement for nvenc_a"
This reverts commit f10497042f.

Signed-off-by: Philip Langdale <philipl@overt.org>
2015-06-06 13:13:59 -07:00
Philip Langdale
728c82a532 Revert "avcodec/Makefile: fix checkheaders for nvenc_b"
This reverts commit 3be811a528.

Signed-off-by: Philip Langdale <philipl@overt.org>
2015-06-06 13:13:56 -07:00
Philip Langdale
8a6536cbc0 Revert "Changelog: Drop duplicate NVENC entry"
This reverts commit 440fa7758b.

Signed-off-by: Philip Langdale <philipl@overt.org>
2015-06-06 13:13:49 -07:00
Michael Niedermayer
7944b0ce94 avutil/colorspace: Remove RGB_TO_Y/U/V
They are unused and colorspace.h is not a installed header

Found-by: Timo Rothenpieler <timo@rothenpieler.org>
Reviewed-by: Clément Bœsch <u@pkh.me>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-06 18:21:01 +02:00
Paul B Mahol
a03b69478b avcodec/exr: fix crash caused by merge
Various header informations need to be reset when decoding next frame.
Regression since: 95582b5c

Fixes ticket #4597.
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-06-06 16:02:19 +00:00
James Almer
1b4dd59e5f configure: improve the checks for gmtime_r and localtime_r
They are inlined wrapper functions inside the time.h header on MinGW-w64, so
neither check_func() or check_func_headers() work with them.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-06-06 12:07:53 -03:00
Michael Niedermayer
440fa7758b Changelog: Drop duplicate NVENC entry
Found-by: Timo Rothenpieler <timo@rothenpieler.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-06 14:21:04 +02:00
Clément Bœsch
272f87fc5c avdevice/x11grab: use av_clip() instead of nested min & max
Note: [xy]_off and screen_[wh] variables are int, as well as
X11GrabContext.{width,height,x_off,y_off}.
2015-06-06 13:18:29 +02:00
Clément Bœsch
533c37db8d avcodec/snowenc: use av_clip() instead of nested min & max
Note: AVCodecContext.refs is an int field.
2015-06-06 13:18:28 +02:00
Clément Bœsch
622ef80e3f avcodec/mpegvideo: use av_clip() instead of nested min & max
Note: MpegEncContext.mb_{y,height} are int fields, as well as local off
variable.
2015-06-06 13:18:28 +02:00
Clément Bœsch
0f6118c581 ffplay: use av_clip() instead of nested min & max
Note: {wanted,min,max}_samples are int variables.
2015-06-06 13:18:28 +02:00
Ronald S. Bultje
ade5684cda hevc: fix typo (mpv -> mvp).
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-06 12:57:20 +02:00
Michael Niedermayer
7897ed0d3c Merge remote-tracking branch 'cigaes/master'
* cigaes/master:
  lavf/http: Add simple autodetection for client HTTP method, based on AVIO_FLAG_READ.
  lavf/http: Indent else-clause.
  lavf/http: Properly process HTTP header on listen.
  lavf/http: Rudimentary error handling for HTTP requests received from clients.
  lavf/http: Process HTTP header before sending response.
  lavf/http: Document method option.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-06 12:34:05 +02:00
Clément Bœsch
c5a08956a3 swresample: fix initilaize/initialize typo 2015-06-06 12:16:18 +02:00
Clément Bœsch
be1862ffb0 doc/filters: fix inaccuarte/inaccurate typo 2015-06-06 12:14:42 +02:00
Stephan Holljes
44d1921200 lavf/http: Add simple autodetection for client HTTP method, based on AVIO_FLAG_READ.
Signed-off-by: Stephan Holljes <klaxa1337@googlemail.com>
2015-06-06 09:24:50 +02:00
Stephan Holljes
290b237556 lavf/http: Indent else-clause.
Signed-off-by: Stephan Holljes <klaxa1337@googlemail.com>
2015-06-06 09:24:50 +02:00
Stephan Holljes
a7e7c68b0e lavf/http: Properly process HTTP header on listen.
Signed-off-by: Stephan Holljes <klaxa1337@googlemail.com>
2015-06-06 09:24:50 +02:00
Stephan Holljes
8cfaa76a5e lavf/http: Rudimentary error handling for HTTP requests received from clients.
Signed-off-by: Stephan Holljes <klaxa1337@googlemail.com>
2015-06-06 09:24:43 +02:00
Stephan Holljes
bbcee92b6d lavf/http: Process HTTP header before sending response.
Signed-off-by: Stephan Holljes <klaxa1337@googlemail.com>
2015-06-06 09:13:42 +02:00
Stephan Holljes
aa74401af8 lavf/http: Document method option.
Signed-off-by: Stephan Holljes <klaxa1337@googlemail.com>
2015-06-06 09:13:41 +02:00
Michael Niedermayer
f07376402c avformat/mxfenc: Add mxf muxer avclass
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-06 02:39:01 +02:00
Michael Niedermayer
802cca5905 avcodec/s302m: Only set the sample rate when some data is output
This way ffplay chooses the mp2 stream for Ticket3890

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-06 01:12:06 +02:00
Michael Niedermayer
42c41e96ff avformat/utils: Do not select audio streams with unknown sample rate in av_find_best_stream()
Together with the next commit this prevents non-PCM S302M from being selected unless either
it can be decoded or the user selects passthrough/copy

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-06 01:02:43 +02:00
Michael Niedermayer
51080dfa08 avcodec/s302m: Check for non PCM Streams
Allow the user to choose what to do with the non PCM data through AVOptions

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-06 00:54:51 +02:00
Ganesh Ajjanagadde
a86928d2ab flvdec: fix lack of duration for some files
Fixes #4579

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-05 21:56:09 +02:00
Michael Niedermayer
108b738db1 avformat/flvdec: Show unknown tags at debug level
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-05 21:56:09 +02:00
Michael Niedermayer
790a3cdf76 avformat/flvdec: Add TYPE_ONCAPTIONINFO
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-05 21:56:09 +02:00
Michael Niedermayer
b2fecce3c1 avformat/flvdec: increase buffer size for parsing metadata string key
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-05 21:55:45 +02:00
Michael Niedermayer
6fd15d6e90 Revert addition of a few fixed_dsp functions to APIChanges
The header is not installed currently so the changes should not be in APIChanges

Found-by: Ronald S. Bultje and others
This reverts part of commit 19ed3e35a5.
2015-06-05 20:21:48 +02:00
Michael Niedermayer
06b49375a2 avutil/ppc/cpu: add include avassert.h
fix build failure on ppc64

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-05 19:12:58 +02:00
Michael Niedermayer
af8d63e756 avutil/softfloat: Fix alternative implementation of av_normalize1_sf()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-05 17:40:16 +02:00
Michael Niedermayer
6690ca22b3 avutil/softfloat: Fix alternative implementation of av_normalize_sf()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-05 17:40:16 +02:00
Andreas Cadhalpun
5bf84a584e arm: only enable setend on ARMv6
Without this check it causes SIGILL crashes on ARMv5.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-06-05 17:14:10 +02:00
Michael Niedermayer
d3585c53de avutil/softfloat: Move av_sincos_sf() from header to c file
The function is quite big and trigonometric functions should not really
be used in speed critical code

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-05 13:42:05 +02:00
Nedeljko Babic
19ed3e35a5 libavutil/doc: Changes in documentation due to changes to fixed_dsp
New functions are added to fixed_dsp, so the documentation is changed
accordingly.

Signed-off-by: Nedeljko Babic <nedeljko.babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-05 13:42:05 +02:00
Michael Niedermayer
904ea60afa avutil/softfloat: Add more tests for the normalization
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-05 12:57:06 +02:00
Michael Niedermayer
c7ce16e716 avutil/softfloat: Fix thresholds in av_normalize_sf()
Found-by: Nedeljko Babic <Nedeljko.Babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-05 12:56:12 +02:00
Michael Niedermayer
c93602ae5b avcodec/rdft: Use more specific error codes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-05 04:05:57 +02:00
Vignesh Venkatasubramanian
7be0f48a32 lavf/matroskaenc: Write Block Keyframe correctly
Per matroska Block Structure [1], for keyframes 0th bit of the flag
should not be set (unlike SimpleBlocks). For Blocks, keyframes is
inferred by the absence of ReferenceBlock element (as done by
matroskadec). This CL writes the flag correctly and inserts the
ReferenceBlock element for non-keyframes. The timestamp inserted is
that of the immediately preceding frame (which is true for VP8 and VP9
- the only 2 codecs using the matroska block element as of now). It
also considers all non-video frames (audio, subtitles, metadata) to
be keyframes.

[1] http://www.matroska.org/technical/specs/index.html#block_structure

Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-05 02:48:04 +02:00
Michael Niedermayer
c94d9079b1 avcodec/utils: Assert that audio decoders do not report using more data than was input
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-04 23:10:56 +02:00
Michael Niedermayer
c265763318 avcodec/alsdec: Check for overread
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-04 23:10:56 +02:00
Michael Niedermayer
6b6ae7c3ea avcodec/atrac3plusdec: consume only as many bytes as available
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-04 23:10:56 +02:00
Michael Niedermayer
3c803ed9cb avcodec/adpcm: Check for overreads
See: vlc ticket 14649
Reported-by: carl
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-04 22:37:01 +02:00
Shivraj Patil
a34d902325 avcodec/mips: MSA (MIPS-SIMD-Arch) optimizations for HEVC idct functions
This patch adds MSA (MIPS-SIMD-Arch) optimizations for HEVC idct functions in new file hevc_idct_msa.c
Adds new generic macros (needed for this patch) in libavutil/mips/generic_macros_msa.h

Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-04 18:39:53 +02:00
Nedeljko Babic
7131aba916 libavutil/softfloat: Fix av_normalize1_sf bias.
av_normalize1_sf doesn't properly address border case when mantis is
exactly -0x40000000.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-04 17:20:03 +02:00
Juanjo
a213e57cef lavf/riffenc: Set correct block align for mp2.
Rounding by Michael.

Fixes ticket #4565.
2015-06-04 17:03:34 +02:00
Carl Eugen Hoyos
3b4e694ead lavfi/tinterlace: Double aspect ratio for modes merge and pad. 2015-06-04 17:03:29 +02:00
Michael Niedermayer
b14361486b swresample/resample: fix typos
Found-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-04 13:04:09 +02:00
Michael Niedermayer
e0fd319784 avcodec/proresenc_anatoliy: Use more specific error codes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-04 12:49:59 +02:00
Michael Niedermayer
4cb7cd4c84 avcodec/snow: replace unspecific error code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-04 12:39:28 +02:00
Michael Niedermayer
c3f87f7545 swresample/swresample: Cleanup on init failure.
This avoids leaks if the user doest call swr_close() after a failed init

Found-by: James Almer <jamrial@gmail.com>
Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-04 12:35:04 +02:00
Michael Niedermayer
cc17b43d8d swresample: Add swr_get_out_samples()
Previous version reviewed-by: Pavel Koshevoy <pkoshevoy@gmail.com>
Previous version reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-04 05:37:32 +02:00
James Almer
da7c8fd917 fate: add missing lavfi indev dependency to closed caption test
Signed-off-by: James Almer <jamrial@gmail.com>
2015-06-03 23:35:00 -03:00
Michael Niedermayer
52acd22a7d libswresample/rematrix: Check for malloc errors
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-04 02:36:30 +02:00
Anshul Maheshwari
e91debf8f9 fate: Add Closed caption test
Signed-off-by: Anshul Maheshwari <er.anshul.maheshwari@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-03 23:29:13 +02:00
Nedeljko Babic
1a06d0935f libavutil: Add new fixed dsp functions.
Add functions needed for implementation of fixed point aac dec.

Signed-off-by: Nedeljko Babic <nedeljko.babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-03 22:50:53 +02:00
Michael Niedermayer
3e34b7498f Revert "avformat/rtpenc: check av_packet_get_side_data() return, fix null ptr dereference"
This was simply wrong

Found-by: Martin Storsjö
This reverts commit 5d8e4f6da0.
2015-06-03 22:39:27 +02:00
Shivraj Patil
aef34ab950 avcodec/mips: MSA (MIPS-SIMD-Arch) optimizations for HEVC uni mc epel functions
This patch adds MSA (MIPS-SIMD-Arch) optimizations for HEVC uni mc epel functions.
Adds new generic macros (needed for this patch) in libavutil/mips/generic_macros_msa.h

Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-03 21:30:21 +02:00
Shivraj Patil
c96c73b0b0 avcodec/mips: MSA (MIPS-SIMD-Arch) optimizations for HEVC mc epel functions
This patch adds MSA (MIPS-SIMD-Arch) optimizations for HEVC mc epel functions.

Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-03 21:30:21 +02:00
Shivraj Patil
88188f55a2 avcodec/mips: MSA (MIPS-SIMD-Arch) optimizations for HEVC biw mc functions
This patch adds MSA (MIPS-SIMD-Arch) optimizations for HEVC biw mc functions (qpel as well as epel) in new file hevc_mc_biw_msa.c
Adds new generic macros (needed for this patch) in libavutil/mips/generic_macros_msa.h

Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-03 21:01:59 +02:00
Michael Niedermayer
1200289687 Merge commit '0289f81241e720452b5a77713488d54d3ec252d7'
* commit '0289f81241e720452b5a77713488d54d3ec252d7':
  aac: Correctly map multichannel ADTS AAC with non-zero channel_config + PCE

Conflicts:
	libavcodec/aacdec.c

Sample: 5.1ch_PCE_issue.aac
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-03 19:23:34 +02:00
Michael Niedermayer
6034b4bb88 Merge commit '7f596368a404363d72b1be6d16c51420a71bc523'
* commit '7f596368a404363d72b1be6d16c51420a71bc523':
  bink: Factorize bink put_pixel

Conflicts:
	libavcodec/bink.c

See: b3675f890a
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-03 19:07:12 +02:00
Michael Niedermayer
ee08beb7d9 Merge commit 'e97446e600578392549ef6d0191f2020dae7f8bf'
* commit 'e97446e600578392549ef6d0191f2020dae7f8bf':
  configure: Check for DXVA2_ConfigPictureDecode instead of LPDIRECT3DSURFACE9

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-03 18:52:05 +02:00
Michael Niedermayer
5116381511 Merge commit 'b9875b497a38f494acb599083b0d004545958697'
* commit 'b9875b497a38f494acb599083b0d004545958697':
  configure: Remove unnecessary tests for d3d11va

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-03 18:41:02 +02:00
Michael Niedermayer
c08a64bb2b Merge commit '76eb0950b8d82b1e9617b9c854f091e13bb23131'
* commit '76eb0950b8d82b1e9617b9c854f091e13bb23131':
  configure: Don't run "export $e" for an empty string

Conflicts:
	configure

See: d5db4a7c23
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-03 18:26:17 +02:00
Michael Niedermayer
cdc0087969 avutil/ppc/cpu: Our code assumes vsx implies altivec, thus assert this
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-03 18:23:59 +02:00
Michael Niedermayer
9614df4b15 avformat/mov: Retry same packet on IO failure to avoid loosing a packet
Based on patch by: Zhang Rui <bbcallen@gmail.com>
Reviewed-by: Zhang Rui <bbcallen@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-03 17:37:09 +02:00
Stefano Sabatini
771537edcf ffmpeg_dxva2: call GetDesktopWindow() in place of GetShellWindow()
This fixes compilation with latest MinGW, it does not seem to affect
MSYS2/MinGW-64.
2015-06-03 16:25:08 +02:00
nu774
0289f81241 aac: Correctly map multichannel ADTS AAC with non-zero channel_config + PCE
The decoder assigns channels using default channel configuration
for 5.1ch when it parses an ADTS frame header using consecutive
channel ids.

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

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

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-06-03 14:40:10 +02:00
Paul B Mahol
b8c0cf7880 avfilter/vf_blend: add linearlight and glow mode
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-06-03 12:40:09 +00:00
Luca Barbato
7f596368a4 bink: Factorize bink put_pixel
And make sure to check INTER_BLOCK as had been fixed by Michael
Niedermayer.

Reported-By: Andreas Cadhalpun
CC: libav-stable@libav.org
2015-06-03 14:39:03 +02:00
Martin Storsjö
e97446e600 configure: Check for DXVA2_ConfigPictureDecode instead of LPDIRECT3DSURFACE9
Checking this struct is a bit more natural for this dependency.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-06-03 15:29:54 +03:00
Martin Storsjö
b9875b497a configure: Remove unnecessary tests for d3d11va
These are only necessary once/if avconv gets support for this hwaccel.
While that obviously is desireable, we don't have it yet, and they
currently only are a distraction.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-06-03 15:28:25 +03:00
Martin Storsjö
76eb0950b8 configure: Don't run "export $e" for an empty string
This fixes the side effect of printing the whole environment,
if no --env parameter was provided.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-06-03 15:27:42 +03:00
Shivraj Patil
ce1761db19 avcodec/mips: MSA (MIPS-SIMD-Arch) optimizations for HEVC uniw mc functions
This patch adds MSA (MIPS-SIMD-Arch) optimizations for HEVC uniw mc functions (qpel as well as epel) in new file hevc_mc_uniw_msa.c
Adds new generic macros (needed for this patch) in libavutil/mips/generic_macros_msa.h

Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-03 13:46:47 +02:00
Michael Niedermayer
d7a762553c avformat/mxfenc: Accept MXF D-10 with 49.999840 Mbit/sec
This is the maximum rate possible based on the frame size limit of MXF D-10

Previous version reviewed by tim nicholson <nichot20@yahoo.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-03 12:12:34 +02:00
Ganesh Ajjanagadde
196b885a5f swresample/dither: check memory allocation
check memory allocation in swri_get_dither()

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-03 11:46:37 +02:00
Donny Yang
7495e728f5 avcodec/apng: Remove blending support for AV_PIX_FMT_ARGB
ARGB is not a supported PNG pixel format

Signed-off-by: Donny Yang <work@kota.moe>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-03 01:42:57 +02:00
Michael Niedermayer
02915602d9 swresample: Check the return value of resampler->init()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-03 01:05:19 +02:00
Michael Niedermayer
21e40f006a Merge commit '876d441fbe37c3ffc57ada9ce1f9ea841ca4c9de'
* commit '876d441fbe37c3ffc57ada9ce1f9ea841ca4c9de':
  configure: don't enable tls protocols if network is disabled

Conflicts:
	configure

See: 7fc6545d5d
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-02 22:50:19 +02:00
Andreas Cadhalpun
12a83bc0aa libopenjpegdec: register logging callback functions
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-06-02 22:43:58 +02:00
Andreas Cadhalpun
cb658d17b6 libopenjpegenc: use variable instead of type for sizeof
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-06-02 22:41:51 +02:00
Andreas Cadhalpun
1577526b47 libopenjpegenc: add NULL check for img before accessing it
If opj_image_create fails to allocate an image it returns NULL, which
causes a segmentation fault at 'img->x0 = 0'.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-06-02 22:40:58 +02:00
Michael Niedermayer
b0af4043b9 configure: Remove now redundant vsx setting code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-02 22:14:41 +02:00
James Almer
876d441fbe configure: don't enable tls protocols if network is disabled
This was a regression introduced with d8ffb2055f.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-06-02 22:48:50 +03:00
Paul B Mahol
3e04746ec3 avfilter/vf_blend: add hardmix mode
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-06-02 19:12:45 +00:00
Paul B Mahol
20cea0c7de avfilter/vf_blend: fix vividlight blend mode
Pointed-out-by: Rudolf Polzer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-06-02 18:55:24 +00:00
Paul B Mahol
ac973926b8 avfilter/vf_blend: clip result for divide blend mode
Pointed-out-by: Rudolf Polzer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-06-02 18:48:32 +00:00
Michael Niedermayer
d5db4a7c23 configure: Do not dump the whole environment to stdout
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-02 19:53:17 +02:00
Michael Niedermayer
2a33972030 Merge commit 'fd11465b21ac90bf6964b0c0ca9d6ba64cd3291d'
* commit 'fd11465b21ac90bf6964b0c0ca9d6ba64cd3291d':
  configure: Use pkg-config for fdk-aac

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-02 19:31:22 +02:00
Michael Niedermayer
f939bf58b2 Merge commit '604abd025dac4cc73a2f6b0c000c3695c16fb000'
* commit '604abd025dac4cc73a2f6b0c000c3695c16fb000':
  configure: Provide an option to override the environment

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-02 19:03:02 +02:00
Michael Niedermayer
cec3456254 Merge commit '06db45523c1068c24f049ef2b20fcdead3bf36d8'
* commit '06db45523c1068c24f049ef2b20fcdead3bf36d8':
  configure: Support the extended pkgconf syntax

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-02 18:54:57 +02:00
Michael Niedermayer
ce4e57dbb5 avformat/sbgdec: Check alloc_array_elem() return value
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-02 16:42:33 +02:00
Michael Niedermayer
fccde16afa avcodec/flacenc: Simplify sizeof()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-02 15:41:44 +02:00
Michael Niedermayer
b70582e92f avcodec/proresenc_anatoliy: Check av_frame_alloc() return code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-02 15:18:23 +02:00
Michael Niedermayer
ea9daefe93 compat/os2threads: Check av_malloc() return code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-02 15:16:45 +02:00
Michael Niedermayer
cea3c9b281 ffserver: check return code of avio_alloc_context()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-02 14:45:08 +02:00
Michael Niedermayer
e43f3c8858 avformat/mxfdec: return error instead of segfaulting if there are no streams
Fixes segfault from ticket 4350

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-02 13:45:47 +02:00
周晓勇
bb1f153a88 avcodec: loongson3 optimized h264chroma put and avg with mmi
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-02 13:40:16 +02:00
Luca Barbato
fd11465b21 configure: Use pkg-config for fdk-aac
Makes the life of the people already setting PKG_CONFIG_PATH simpler.
2015-06-02 10:33:32 +02:00
Luca Barbato
604abd025d configure: Provide an option to override the environment
Useful to have `make config` work with custom pkgconf path.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-06-02 10:33:11 +02:00
Luca Barbato
06db45523c configure: Support the extended pkgconf syntax
Make possible to require a combination of
packages and/or pin specific versions.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-06-02 10:33:11 +02:00
Shivraj Patil
aede1a1a60 avcodec/mips: MSA (MIPS-SIMD-Arch) optimizations for HEVC bi mc functions
This patch adds MSA (MIPS-SIMD-Arch) optimizations for HEVC bi mc functions (qpel as well as epel) in new file hevc_mc_bi_msa.c
Adds new generic macros (needed for this patch) in libavutil/mips/generic_macros_msa.h
Adds HEVC specific macros (needed for this patch) in libavcodec/mips/hevc_macros_msa.h

Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-02 01:54:51 +02:00
Michael Niedermayer
da05c62499 Merge commit '8349bedfa5eac7f261ac43053a2f66b894bac288'
* commit '8349bedfa5eac7f261ac43053a2f66b894bac288':
  configure: Remove some unnecessary exported config items

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 23:08:33 +02:00
Michael Niedermayer
9ac3417c6b Merge commit 'ff7ae4b9df6e89d99dbd5434408123b80a4f6cd7'
* commit 'ff7ae4b9df6e89d99dbd5434408123b80a4f6cd7':
  configure: Require LPDIRECT3DSURFACE9 for dxva2

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 23:08:12 +02:00
Michael Niedermayer
14617e3a73 Merge commit '172b2cee17a3779c114ba065dd7b25dcf61e408f'
* commit '172b2cee17a3779c114ba065dd7b25dcf61e408f':
  dxva2: Add ifdefs around structs that might not be available

Conflicts:
	libavcodec/dxva2.c

See: 94d07b314a
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 23:06:32 +02:00
James Almer
7fc6545d5d configure: don't enable any tls protocol if network is disabled
This was a regression introduced with 4a006b9eb7.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-06-01 17:49:21 -03:00
Michael Niedermayer
89fa32e5b4 avcodec/snowenc: avoid floats in the rangecoder initialization
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 22:30:30 +02:00
Martin Storsjö
8349bedfa5 configure: Remove some unnecessary exported config items
The only need to be listed if they are to be used in ifdefs from
within the code - config items used as dependencies only within
configure don't need to be exported.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-06-01 23:04:52 +03:00
Martin Storsjö
ff7ae4b9df configure: Require LPDIRECT3DSURFACE9 for dxva2
This fixes dxva2 detection (i.e. correctly realizes that it isn't
available) for WinRT, where dxva2api.h does exist, but these definitions
are omitted (when targeting the API subsets).

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

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

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-06-01 23:04:49 +03:00
Martin Storsjö
172b2cee17 dxva2: Add ifdefs around structs that might not be available
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-06-01 23:04:46 +03:00
Michael Niedermayer
f805d7be4c avcodec/rangecoder: avoid float operation
Use integers, avoid potential rounding issues

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 21:49:14 +02:00
James Almer
3be811a528 avcodec/Makefile: fix checkheaders for nvenc_b
Signed-off-by: James Almer <jamrial@gmail.com>
2015-06-01 13:57:50 -03:00
Stefano Sabatini
56fe1bb9b3 doc/formats.texi: document max_interlave_delta muxing option
The option was added in commit d9ae1031f5
but it was never documented. The text is based on the one written by the
commit author for the corresponding AVFormatContext.max_interleave_delta
field.
2015-06-01 18:34:40 +02:00
Michael Niedermayer
627dd7fe7e avformat/movenc: Fix potential signed overflows
Fixes CID1302838

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 17:54:58 +02:00
Ronald S. Bultje
138581c41a vp9: clamp final zero MV if find_ref_mvs() found no suitable candidates.
This may actually result in a non-zero MV. Fixes ticket 4583.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 17:23:34 +02:00
Michael Niedermayer
deed77ffee Merge commit '28fa58cf5d939151108345d7ddddebbd51d9b684'
* commit '28fa58cf5d939151108345d7ddddebbd51d9b684':
  dxva2: Fix build when only D3D11 or DXVA2 is used

Conflicts:
	libavcodec/dxva2_internal.h

See: 94d07b314a
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 17:13:22 +02:00
Michael Niedermayer
3f36607ef0 Merge commit '31de41babcd96f8ac2e6632454737aecb3710df7'
* commit '31de41babcd96f8ac2e6632454737aecb3710df7':
  configure: Check if ID3D11VideoDecoder exists, not just the header to enable d3d11va

Conflicts:
	configure

See: a838b22bd9
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 17:09:57 +02:00
Michael Niedermayer
df19c17ffb Merge commit '08d006f5a8ae0faef76d3dccea699c3af3db5b63'
* commit '08d006f5a8ae0faef76d3dccea699c3af3db5b63':
  h264: Fix HWACCEL_MAX for D3D11

See: 1b236541a6
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 17:01:35 +02:00
Michael Niedermayer
9cedb88f46 Merge commit '674b79148ff29f40cbd569f5585bf99c71204bf5'
* commit '674b79148ff29f40cbd569f5585bf99c71204bf5':
  hevc: Fix HWACCEL_MAX for D3D11

See: 688147cfe2
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 17:00:56 +02:00
Michael Niedermayer
030c20ffcf avutil/float_dsp: Fix ambiguous wording about vector products
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 16:22:27 +02:00
Michael Niedermayer
2e92a27a90 avformat/mxfenc: Correct klv_fill_key
See SMPTE 377-1-2009 6.3.3 KLV Fill Items

Reviewed-by: tim nicholson <nichot20@yahoo.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 15:31:04 +02:00
Michael Niedermayer
589d39c768 Merge commit '63ce9fd23cfa5ac0d9a862be0da138108dc1c505'
* commit '63ce9fd23cfa5ac0d9a862be0da138108dc1c505':
  rtmpdh: Use GMP functions directly, instead of nettle wrappers

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 11:29:05 +02:00
Michael Niedermayer
8939667b70 Merge commit '84c5ff911f3f0557c8f97a964f74ceb01dd6d214'
* commit '84c5ff911f3f0557c8f97a964f74ceb01dd6d214':
  rtmpdh: Fix the indentation in a struct

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 11:28:01 +02:00
Steve Lhomme
28fa58cf5d dxva2: Fix build when only D3D11 or DXVA2 is used
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-06-01 12:04:57 +03:00
Steve Lhomme
31de41babc configure: Check if ID3D11VideoDecoder exists, not just the header to enable d3d11va
Fixes build with some mingw-w64 versions, that have got the header
but not the interface declaration.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-06-01 12:04:46 +03:00
Michael Niedermayer
08d006f5a8 h264: Fix HWACCEL_MAX for D3D11
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-06-01 11:36:30 +03:00
Michael Niedermayer
674b79148f hevc: Fix HWACCEL_MAX for D3D11
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-06-01 11:36:22 +03:00
Martin Storsjö
63ce9fd23c rtmpdh: Use GMP functions directly, instead of nettle wrappers
mpz_import and mpz_export were added in GMP 4.1, in 2002.

This simplifies the DH code by clarifying that it only uses pure
bignum functions, no other parts of nettle/hogweed.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-06-01 10:38:54 +03:00
Martin Storsjö
84c5ff911f rtmpdh: Fix the indentation in a struct
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-06-01 10:38:54 +03:00
James Almer
f10497042f nvenc: remove cuda.h requirement for nvenc_a
Reviewed-by: Philip Langdale <philipl@overt.org>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-06-01 01:33:47 -03:00
Michael Niedermayer
a1957a4dc1 avcodec/ppc/pixblockdsp: Fix type of get_pixels_vsx()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 04:39:56 +02:00
Michael Niedermayer
9806cca1eb avutil/ppc/cpu: Remove !ARCH_PPC64 check for mfspr, the code should now support ppc64
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 04:31:38 +02:00
Michael Niedermayer
1e0c34fe71 avformat/utils: Simplify get_std_framerate() check
This also avoids using a floating point operation

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 04:31:37 +02:00
Michael Niedermayer
d8bbb99c51 Merge commit 'b08caa87c35a768ec0abb16b1e99c3a85f1df28e'
* commit 'b08caa87c35a768ec0abb16b1e99c3a85f1df28e':
  nvenc: H264 and HEVC encoders

Conflicts:
	Changelog
	configure
	libavcodec/Makefile
	libavcodec/version.h

This implementation is merged under the name nvenc_b*

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 03:13:55 +02:00
Michael Niedermayer
d0d0913702 avcodec: Rename nvenc.c to nvenc_a.c, to avoid conflict with the other implementation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 02:57:51 +02:00
Michael Niedermayer
211dcdca5c Merge commit '522d971c7f5921bebcea2fc50e67056afdabb951'
* commit '522d971c7f5921bebcea2fc50e67056afdabb951':
  xsub: Check memory allocation

Conflicts:
	libavcodec/xsubdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 02:46:56 +02:00
Michael Niedermayer
1dc58965fd Merge commit '83797da6e36c1aadd85f41ca237dce823fc7bfa1'
* commit '83797da6e36c1aadd85f41ca237dce823fc7bfa1':
  wma: Check memory allocation

See: 8559a71415
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 02:43:45 +02:00
Michael Niedermayer
07f606b4f0 Merge commit 'e1ea365f7e1477c78865b866a180712174536c20'
* commit 'e1ea365f7e1477c78865b866a180712174536c20':
  truemotion2: Check memory allocation

Conflicts:
	libavcodec/truemotion2.c

See: d49f2603be
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 02:42:29 +02:00
Michael Niedermayer
f24b7d7616 Merge commit '28fb80dcbf6f63eedfcfffc725a6bf0069d03fab'
* commit '28fb80dcbf6f63eedfcfffc725a6bf0069d03fab':
  svq1: Check memory allocation

Conflicts:
	libavcodec/svq1enc.c

See: 2a3af77284
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 02:38:06 +02:00
Michael Niedermayer
abee1972ef Merge commit '42df71d9bbb1a5b4bce0bb34417692565c72d390'
* commit '42df71d9bbb1a5b4bce0bb34417692565c72d390':
  ratecontrol: Check memory allocation

Conflicts:
	libavcodec/ratecontrol.c

See: 0898a6d4e4
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 02:27:26 +02:00
Michael Niedermayer
6ed8341cb1 Merge commit '0994e142132200c706f704271b5a7ae81d128f5c'
* commit '0994e142132200c706f704271b5a7ae81d128f5c':
  pthread: Check memory allocation

Conflicts:
	libavcodec/pthread_frame.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 02:25:04 +02:00
Michael Niedermayer
615e73ab4f Merge commit '03927cb73399e6f07185fc7f8851d7612b4187b6'
* commit '03927cb73399e6f07185fc7f8851d7612b4187b6':
  psymodel: Check memory allocation

Conflicts:
	libavcodec/psymodel.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 02:23:32 +02:00
Michael Niedermayer
1a903f0d1e Merge commit 'fef2f4722bcbfe1c3802898b0f5deb6356132c91'
* commit 'fef2f4722bcbfe1c3802898b0f5deb6356132c91':
  xvid: Check memory allocation

See: 5c95de150f and others
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 02:12:58 +02:00
Michael Niedermayer
8b94cee99b Merge commit '9fb483fede7207c1f3965e5ae1ac0ee82e4d7a4e'
* commit '9fb483fede7207c1f3965e5ae1ac0ee82e4d7a4e':
  x264: Check memory allocation

See: 066dc04373 and others
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 02:11:48 +02:00
Michael Niedermayer
fb7b5dc0e6 Merge commit '41658bc88553dab8499e4dfca311559dcbae2674'
* commit '41658bc88553dab8499e4dfca311559dcbae2674':
  libtheora: Check memory allocation

Conflicts:
	libavcodec/libtheoraenc.c

See: 67d4d5f5db
See: 27216bf314
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 02:10:47 +02:00
Michael Niedermayer
3377f6fd15 Merge commit '8df5fbf0b0c0ba12b033e61c28fc240f4bccba47'
* commit '8df5fbf0b0c0ba12b033e61c28fc240f4bccba47':
  lcl: Check memory allocation

Conflicts:
	libavcodec/lclenc.c

See: 6dbcecd78e
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 02:00:29 +02:00
Michael Niedermayer
513673a84d Merge commit '7ca603f96f93d988e01d161d611f69a4ecaa3f02'
* commit '7ca603f96f93d988e01d161d611f69a4ecaa3f02':
  jpegls: Check memory allocation

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 01:58:44 +02:00
Michael Niedermayer
73e150fff7 Merge commit '7d2a6826912b629f17f3b0c5268e334fa123c4c9'
* commit '7d2a6826912b629f17f3b0c5268e334fa123c4c9':
  huffyuv: Check memory allocation

See: 4a722a5cab
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 01:57:29 +02:00
Michael Niedermayer
10531d48a0 Merge commit '7fccc96dc3c0bb2fa2079cbf4e4cf1aff2db46c8'
* commit '7fccc96dc3c0bb2fa2079cbf4e4cf1aff2db46c8':
  eatgv: Check memory allocation

Conflicts:
	libavcodec/eatgv.c

See: a5615b82eb
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 01:45:39 +02:00
Michael Niedermayer
3a8b16f78e Merge commit '69277069dd225f5ae02f0215e877a06522d834d3'
* commit '69277069dd225f5ae02f0215e877a06522d834d3':
  dct: Check memory allocation

Conflicts:
	libavcodec/dct.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 01:42:13 +02:00
Michael Niedermayer
7110b024a9 Merge commit 'e524f37356156893cae50fc46451bd4a6198703d'
* commit 'e524f37356156893cae50fc46451bd4a6198703d':
  asv: Check memory allocation

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 01:41:21 +02:00
Michael Niedermayer
e7a65142b9 avcodec/aacpsy: Clear the correct pointer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 01:32:24 +02:00
Michael Niedermayer
63fdedc794 Merge commit '074a1b37325bf6d1483fc23ebf1255e78d998339'
* commit '074a1b37325bf6d1483fc23ebf1255e78d998339':
  aacpsy: Check memory allocation

Conflicts:
	libavcodec/aacpsy.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 01:32:12 +02:00
Michael Niedermayer
0f69f02eb7 Merge commit '149fa0b7ac180fe1df48a2e379c560813555bf57'
* commit '149fa0b7ac180fe1df48a2e379c560813555bf57':
  mpegvideo: Move MotionEstContext and function declarations to a separate header

Conflicts:
	libavcodec/mpegvideo.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 01:30:01 +02:00
Michael Niedermayer
0aba7192e1 Merge commit 'b2b766914a49c4e3537df3a585e97b98d432edd2'
* commit 'b2b766914a49c4e3537df3a585e97b98d432edd2':
  mpegvideo: mpeg12: Move function declarations

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 01:27:02 +02:00
Michael Niedermayer
fd116b8dfa Merge commit '378a00087fdadcc9b34165c05cd10a1a15f3fe61'
* commit '378a00087fdadcc9b34165c05cd10a1a15f3fe61':
  mpegvideo: Move tables to a separate file

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 01:26:36 +02:00
Michael Niedermayer
eb5a308d0e Merge commit '31a117a0e6d6eafdf997bfe0843f3e3d39cc0332'
* commit '31a117a0e6d6eafdf997bfe0843f3e3d39cc0332':
  mpegvideo: msmpeg4: Move function declarations

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 01:17:26 +02:00
Michael Niedermayer
f5ee10c16a Merge commit '2f15846ad7ad57beb0bca99c624affa0facf284b'
* commit '2f15846ad7ad57beb0bca99c624affa0facf284b':
  mpegvideo: wmv2: Move function declarations

Conflicts:
	libavcodec/wmv2.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 01:09:38 +02:00
Michael Niedermayer
f9dcf1690c Merge commit '902a55f7161ffea10e13c1e7df14022e2ed90514'
* commit '902a55f7161ffea10e13c1e7df14022e2ed90514':
  dxva2_hevc: re-write reference frame handling

See: 902a55f716
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 01:08:37 +02:00
Michael Niedermayer
cdf6804056 Merge commit '35818b8aaf4d669ed0bbb05c3fd06e619f2db01a'
* commit '35818b8aaf4d669ed0bbb05c3fd06e619f2db01a':
  dxva2_hevc: fix 32x32 scaling lists

See: b7a0b303d9
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 01:07:57 +02:00
Michael Niedermayer
9e1cdfb89b Merge commit '5c720657c23afd798ae0db7c7362eb859a89ab3d'
* commit '5c720657c23afd798ae0db7c7362eb859a89ab3d':
  mov: always check avio_read return value

Conflicts:
	libavformat/mov.c

See: b71528d896
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 00:59:44 +02:00
Michael Niedermayer
ebab902a1c Merge commit 'bff0349d9da527084e1433167466d8afc9e25c7f'
* commit 'bff0349d9da527084e1433167466d8afc9e25c7f':
  avio: Add avio_read wrapper to simplify error checking

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 00:43:50 +02:00
Michael Niedermayer
3bd43430f8 Merge commit 'cffb9ea81bd16d2ed8bce187b6bf0279c07b3b9b'
* commit 'cffb9ea81bd16d2ed8bce187b6bf0279c07b3b9b':
  mov: reject zero bytes_per_frame with non-zero samples_per_frame

See: 83a04f8cc1
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 00:37:06 +02:00
Michael Niedermayer
2bedd17b64 Merge commit '8e9c39e81fe5ba34010a7ba05cbe4ae31f177d89'
* commit '8e9c39e81fe5ba34010a7ba05cbe4ae31f177d89':
  mov: abort on EOF in ff_mov_read_chan

See: a5718863da
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 00:36:20 +02:00
Michael Niedermayer
348319f543 Merge commit 'a8a90906fb0ad0f8d3c68a97f182528ee3b5198c'
* commit 'a8a90906fb0ad0f8d3c68a97f182528ee3b5198c':
  mov: Correctly allocate ctts_data

Conflicts:
	libavformat/mov.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 00:35:39 +02:00
Michael Niedermayer
c2876c0181 Merge commit 'f261a55d72753bcec33369954809732abae8f8f7'
* commit 'f261a55d72753bcec33369954809732abae8f8f7':
  mov: Fix two memleaks

See: 8e77f8ab4a
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 00:26:52 +02:00
Michael Niedermayer
61e1287551 Merge commit '3f38d4b816b2aeca15c0b90000ea7ed40377eb0c'
* commit '3f38d4b816b2aeca15c0b90000ea7ed40377eb0c':
  vp9: Parse subsampling and report missing feature

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

No change as FFmpeg already supports subsampling

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 00:24:45 +02:00
Michael Niedermayer
b66b1a103f Merge commit 'd68c05380cebf563915412182643a8be04ef890b'
* commit 'd68c05380cebf563915412182643a8be04ef890b':
  x86: check for AV_CPU_FLAG_AVXSLOW where useful

See: c16e99e3b3
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 00:22:47 +02:00
James Almer
c16e99e3b3 x86: check for AV_CPU_FLAG_AVXSLOW where useful
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 00:15:35 +02:00
Michael Niedermayer
16c430e8ef Merge commit 'cae39851201b7781f1262e1c23627b45e6e80bb4'
* commit 'cae39851201b7781f1262e1c23627b45e6e80bb4':
  x86: Add helper macros to check for slow cpuflags

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-31 23:59:48 +02:00
Michael Niedermayer
c140227a8b Merge commit 'f7cafb5d02aa3f26c185f6f9851413ad77a73872'
* commit 'f7cafb5d02aa3f26c185f6f9851413ad77a73872':
  x86: add AV_CPU_FLAG_AVXSLOW flag

Conflicts:
	doc/APIchanges
	libavutil/version.h

See: c312bfac4c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-31 23:58:30 +02:00
Michael Niedermayer
1ff47770ca Merge commit 'd0bf20a4f25ac5de021c860a0c8ad05638ee2078'
* commit 'd0bf20a4f25ac5de021c860a0c8ad05638ee2078':
  ppc: vsx: Implement diff_pixels and get_pixels

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-31 23:55:32 +02:00
Michael Niedermayer
1046b6b093 avutil/ppc/float_dsp_init: Disable duplicate functions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-31 23:42:46 +02:00
Michael Niedermayer
da9a6f4a2b Merge commit 'eecd29b3fd7fee221580798346d6582b75c7ade4'
* commit 'eecd29b3fd7fee221580798346d6582b75c7ade4':
  ppc: vsx: Implement float_dsp

Conflicts:
	libavutil/ppc/float_dsp_init.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-31 23:42:36 +02:00
Michael Niedermayer
1aff90504a configure: ldbrx seems not working on qemu power8, disable for now
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-31 23:12:57 +02:00
Michael Niedermayer
58a4204873 Merge commit '7d07ee5a9bd170a06d26fd967cf8de5d3b1ce331'
* commit '7d07ee5a9bd170a06d26fd967cf8de5d3b1ce331':
  ppc: cpu: Add support for VSX and POWER8 extensions

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-31 22:47:50 +02:00
Michael Niedermayer
902ce2a6c4 Merge commit 'da60b99a8857d5ca236f32c1799a066e0135a866'
* commit 'da60b99a8857d5ca236f32c1799a066e0135a866':
  ppc: Restrict some Altivec implementations to Big Endian

Conflicts:
	libavcodec/ppc/huffyuvdsp_altivec.c
	libavcodec/ppc/me_cmp.c

Not merged, our PPC64LE fate clients passed all tests last time they did run

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-31 22:44:07 +02:00
Michael Niedermayer
3f21cdd85b Merge commit 'f22ebd2555d15b59e109a5b630dd71374b076d0b'
* commit 'f22ebd2555d15b59e109a5b630dd71374b076d0b':
  ppc: configure: Support ISA 2.06 and later

Conflicts:
	configure

See: ab12373956 and others
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-31 22:41:04 +02:00
Michael Niedermayer
8dcbfb73d5 Merge commit '3058872c293e239e3b51e86fe18cfbe720aadff1'
* commit '3058872c293e239e3b51e86fe18cfbe720aadff1':
  ppc: Clarify and extend the cpuid check

Conflicts:
	libavutil/ppc/cpu.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-31 22:14:39 +02:00
Michael Niedermayer
47cc1a2bf1 avutil/ppc/cpu: Check if unistd.h is available before including it
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-31 22:11:40 +02:00
Michael Niedermayer
ff1995437f Merge commit 'baa94563fede8959a638b0fa132dd2124acd93e8'
* commit 'baa94563fede8959a638b0fa132dd2124acd93e8':
  ppc: linux: Check altivec using the auxv

Conflicts:
	libavutil/ppc/cpu.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-31 21:57:07 +02:00
Michael Niedermayer
08f229d81e Merge commit '7014b65995b1fe6188fb53447bf61b08e3963355'
* commit '7014b65995b1fe6188fb53447bf61b08e3963355':
  ppc: pixblockdsp: Use the abriged vector types

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-31 21:48:16 +02:00
Michael Niedermayer
e8676c758a Merge commit '72cebae0d981dde144340cf51f3c323f01e215e5'
* commit '72cebae0d981dde144340cf51f3c323f01e215e5':
  ppc: avutil: Use the abriged vector types

Conflicts:
	libavutil/ppc/float_dsp_altivec.c
	libavutil/ppc/util_altivec.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-31 21:38:58 +02:00
Michael Niedermayer
876a663c66 Merge commit '254eb5b6faebb7bcfc3cefc1edced6652fe9d5be'
* commit '254eb5b6faebb7bcfc3cefc1edced6652fe9d5be':
  ppc: avutil: Drop a potentially dangerous workaround

See: 9564375dee
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-31 21:21:21 +02:00
Gilles Chanteperdrix
d61386a690 avformat/libquvi: fix error handling
avoid calling cleanup functions on uninitialized variables

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-31 19:04:52 +02:00
Luca Barbato
b08caa87c3 nvenc: H264 and HEVC encoders
Partially based on the work of Timo Rothenpieler <timo@rothenpieler.org>

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-05-31 15:17:22 +02:00
Vittorio Giovara
522d971c7f xsub: Check memory allocation 2015-05-31 15:03:31 +02:00
Vittorio Giovara
83797da6e3 wma: Check memory allocation 2015-05-31 15:03:31 +02:00
Vittorio Giovara
e1ea365f7e truemotion2: Check memory allocation 2015-05-31 15:03:31 +02:00
Vittorio Giovara
28fb80dcbf svq1: Check memory allocation 2015-05-31 15:03:31 +02:00
Vittorio Giovara
42df71d9bb ratecontrol: Check memory allocation 2015-05-31 15:03:31 +02:00
Vittorio Giovara
0994e14213 pthread: Check memory allocation 2015-05-31 15:03:31 +02:00
Vittorio Giovara
03927cb733 psymodel: Check memory allocation 2015-05-31 15:03:31 +02:00
Vittorio Giovara
fef2f4722b xvid: Check memory allocation 2015-05-31 15:03:31 +02:00
Vittorio Giovara
9fb483fede x264: Check memory allocation 2015-05-31 15:03:31 +02:00
Vittorio Giovara
41658bc885 libtheora: Check memory allocation 2015-05-31 15:03:31 +02:00
Vittorio Giovara
8df5fbf0b0 lcl: Check memory allocation 2015-05-31 15:03:31 +02:00
Vittorio Giovara
7ca603f96f jpegls: Check memory allocation 2015-05-31 15:03:31 +02:00
Vittorio Giovara
7d2a682691 huffyuv: Check memory allocation 2015-05-31 15:03:31 +02:00
Vittorio Giovara
7fccc96dc3 eatgv: Check memory allocation 2015-05-31 15:03:31 +02:00
Vittorio Giovara
69277069dd dct: Check memory allocation 2015-05-31 15:03:30 +02:00
Vittorio Giovara
e524f37356 asv: Check memory allocation 2015-05-31 15:03:30 +02:00
Vittorio Giovara
074a1b3732 aacpsy: Check memory allocation 2015-05-31 15:03:30 +02:00
Peter Cordes
3ad3529b56 avfilter/vf_mpdecimate: add comment about 8x8 SAD
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-31 13:58:55 +02:00
Peter Cordes
6590acf0fd avfilter/vf_mpdecimate: support more pixel formats, including GBRP
Add some planar formats we can handle without distorting the meaning of
hi and lo.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-31 13:58:50 +02:00
Peter Cordes
50f112c915 avfilter/vf_mpdecimate: debug logging of threshold stats
It's often really helpful to know why a frame wasn't decimated (lo or
hi), and how much you exceeded the threshold by, if you're trying to
tweak the thresholds to get what you want.

mpdecimate already prints a line per input frame with -v debug, this
just makes it longer.

Signed-off-by: Peter Cordes <peter@cordes.ca>
2015-05-31 13:25:40 +02:00
Vittorio Giovara
149fa0b7ac mpegvideo: Move MotionEstContext and function declarations to a separate header 2015-05-31 13:06:19 +02:00
Vittorio Giovara
b2b766914a mpegvideo: mpeg12: Move function declarations 2015-05-31 13:06:19 +02:00
Vittorio Giovara
378a00087f mpegvideo: Move tables to a separate file 2015-05-31 13:06:19 +02:00
Vittorio Giovara
31a117a0e6 mpegvideo: msmpeg4: Move function declarations 2015-05-31 13:06:19 +02:00
Vittorio Giovara
2f15846ad7 mpegvideo: wmv2: Move function declarations 2015-05-31 13:06:19 +02:00
Hendrik Leppkes
902a55f716 dxva2_hevc: re-write reference frame handling
The old logic required an explicit clearing of the lists first and was
prone to overflow the DXVA2 struct in some circumstances.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-05-31 13:05:13 +02:00
Hendrik Leppkes
35818b8aaf dxva2_hevc: fix 32x32 scaling lists
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-05-31 13:05:13 +02:00
Andreas Cadhalpun
5c720657c2 mov: always check avio_read return value
If avio_read fails, the buffer can contain uninitialized data.

This fixes 'Conditional jump or move depends on uninitialised value(s)'
valgrind warnings, and addresses a few memleaks.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-05-31 13:05:13 +02:00
Vittorio Giovara
bff0349d9d avio: Add avio_read wrapper to simplify error checking
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-05-31 13:05:13 +02:00
Andreas Cadhalpun
cffb9ea81b mov: reject zero bytes_per_frame with non-zero samples_per_frame
In this case the mov demuxer can return a large number of empty packets.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-05-31 13:05:12 +02:00
Andreas Cadhalpun
8e9c39e81f mov: abort on EOF in ff_mov_read_chan
Otherwise the loop can take a lot of time if num_descr is very large.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-05-31 13:05:12 +02:00
Luca Barbato
a8a90906fb mov: Correctly allocate ctts_data
It can be reallocated.

CC: libav-stable@libav.org
2015-05-31 13:05:12 +02:00
Andreas Cadhalpun
f261a55d72 mov: Fix two memleaks
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>

CC: libav-stable@libav.org
2015-05-31 13:05:12 +02:00
Peter Cordes
fb1be6303d avfilter/vf_mpdecimate: pass the same AVClass context as use elsewhere to av_pixelutils_get_sad_fn()
Signed-off-by: Peter Cordes <peter@cordes.ca>
2015-05-31 12:55:23 +02:00
Vittorio Giovara
3f38d4b816 vp9: Parse subsampling and report missing feature 2015-05-31 12:19:19 +02:00
Clément Bœsch
b60c445965 tests: add some ASS/SSA/MKS remux and transcode tests 2015-05-31 12:10:59 +02:00
James Almer
d68c05380c x86: check for AV_CPU_FLAG_AVXSLOW where useful
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-05-31 12:07:11 +02:00
James Almer
cae3985120 x86: Add helper macros to check for slow cpuflags
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-05-31 12:07:11 +02:00
James Almer
f7cafb5d02 x86: add AV_CPU_FLAG_AVXSLOW flag
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-05-31 12:07:11 +02:00
Luca Barbato
d0bf20a4f2 ppc: vsx: Implement diff_pixels and get_pixels
Use a macro to abstract the endianness.
2015-05-31 12:07:11 +02:00
Luca Barbato
eecd29b3fd ppc: vsx: Implement float_dsp 2015-05-31 12:07:11 +02:00
Luca Barbato
7d07ee5a9b ppc: cpu: Add support for VSX and POWER8 extensions 2015-05-31 12:07:11 +02:00
Luca Barbato
da60b99a88 ppc: Restrict some Altivec implementations to Big Endian
In Little Endian the vec_ld/vec_st operations work as
expected only for byte-vectors.
2015-05-31 12:07:11 +02:00
Luca Barbato
f22ebd2555 ppc: configure: Support ISA 2.06 and later
POWER 7 and POWER 8 support VSX and ldbrx.

POWER 8 supports additional extended VSX instructions introduced
with ISA 2.07.
2015-05-31 12:07:10 +02:00
Luca Barbato
3058872c29 ppc: Clarify and extend the cpuid check
Add POWER entries.
2015-05-31 12:07:10 +02:00
Luca Barbato
baa94563fe ppc: linux: Check altivec using the auxv
Should prevent trying to use altivec when it is disabled by the kernel.
2015-05-31 12:07:10 +02:00
Luca Barbato
7014b65995 ppc: pixblockdsp: Use the abriged vector types 2015-05-31 12:07:10 +02:00
Luca Barbato
72cebae0d9 ppc: avutil: Use the abriged vector types 2015-05-31 12:07:10 +02:00
Luca Barbato
254eb5b6fa ppc: avutil: Drop a potentially dangerous workaround
The compiler is free to optimize such expressions in any sort of way.
2015-05-31 12:07:10 +02:00
Rodger Combs
c729021f45 configure: Check for SecItemImport for securetransport as well
This fixes the default build on iOS; eventually I should come up with
a better solution for that platform.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-31 12:02:53 +02:00
Michael Niedermayer
168195f25a Merge commit '881b80b3294483696a21b21a69fa5eee30f33037'
* commit '881b80b3294483696a21b21a69fa5eee30f33037':
  network: prevent SIGPIPE on OSX

See: c41e0aedf5
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-31 11:53:00 +02:00
wm4
881b80b329 network: prevent SIGPIPE on OSX
OSX does not know MSG_NOSIGNAL. BSD (which OSX is based on) has got
the socket option SO_NOSIGPIPE (even if modern BSDs also support
MSG_NOSIGNAL).

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-05-31 10:10:16 +03:00
Michael Niedermayer
03637762d9 avfilter/vf_fade: Force alpha pixel format if alpha is set to 1
Fixes Ticket4321

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-31 04:31:28 +02:00
Michael Niedermayer
11aa050a25 avcodec/parser: Print an error in case of reallocation fails in ff_combine_frame()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-31 02:59:06 +02:00
Michael Niedermayer
6f51674c91 postproc: Avoid floats in maxClipped computation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-31 01:40:12 +02:00
Michael Niedermayer
ebe919cce2 postproc/postprocess_template: Compute packedYScale and QPCorrecture without floats
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-31 00:59:34 +02:00
wm4
c41e0aedf5 network: prevent SIGPIPE on OSX
OSX does not know MSG_NOSIGNAL, and provides its own non-standard
mechanism instead. I guess Apple hates standards.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-30 22:29:19 +02:00
Michael Niedermayer
e9d646f44c Merge commit '0181ae9af2de1526464d23209b82e6674d362f5d'
* commit '0181ae9af2de1526464d23209b82e6674d362f5d':
  h264: Make sure reinit failures mark the context as not initialized

Conflicts:
	libavcodec/h264_slice.c

See: e8714f6f93
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-30 21:33:00 +02:00
Michael Niedermayer
7d1cfbbc3e Merge commit '5ecabd3c54b7c802522dc338838c9a4c2dc42948'
* commit '5ecabd3c54b7c802522dc338838c9a4c2dc42948':
  msrle: Use FFABS to determine the frame size in msrle_decode_pal4

Conflicts:
	libavcodec/msrledec.c

See: f7e1367f58
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-30 21:20:24 +02:00
Andreas Cadhalpun
3ef5702926 libopenjpegdec: check existence of image component data
libopenjpeg can return images with components without data.

This fixes segmentation faults.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-05-30 20:58:55 +02:00
Michael Niedermayer
161d0ac721 doc/ffmpeg: Document xerror
Previous version reviewed-by: Lou Logan <lou@lrcd.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-30 19:32:05 +02:00
Michael Niedermayer
a3ec1d6abd avformat/movenc: Add loction/xyz support to allow copying data between mov files
Fixes Ticket4337

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-30 16:44:05 +02:00
Luca Barbato
0181ae9af2 h264: Make sure reinit failures mark the context as not initialized
Bug-Id: CVE-2015-3417
CC: libav-stable@libav.org
2015-05-30 16:28:32 +02:00
Luca Barbato
5ecabd3c54 msrle: Use FFABS to determine the frame size in msrle_decode_pal4
As done in msrle_decode_8_16_24_32.

Bug-Id: CVE-2015-3395
CC: libav-stable@libav.org
2015-05-30 16:28:32 +02:00
Michael Niedermayer
08b7d19def avformat/mov: Also export loci altitude
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-30 15:28:31 +02:00
Michael Niedermayer
1607f77494 avformat/mov: Append place name instead of overwriting for loci
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-30 15:23:19 +02:00
Rodger Combs
4dd22531fd lavf/tls_securetransport: add missing copyright notice
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-30 12:01:22 +02:00
banastasov
debf4d6e67 avcodec/dvbsubdec: Fix buf_size check in dvbsub_parse_display_definition_segment()
Fixes Ticket4326

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-30 04:29:58 +02:00
Michael Niedermayer
aa9c6b6986 avformat/h264dec: Add ff_tlog() with trace information about h264 probing
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-30 03:57:20 +02:00
Michael Niedermayer
dae89802a6 avformat/h264dec: Fix detection of invalid h264 with 0x100 startcodes
Fies Ticket4325

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-30 03:53:32 +02:00
Michael Niedermayer
2e15f07cfd Merge commit 'b2f0f37d242f1194fe1f886557cf6cefdf98caf6'
* commit 'b2f0f37d242f1194fe1f886557cf6cefdf98caf6':
  rtmpdh: Generate the whole private exponent using av_get_random_seed() with nettle/gmp

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-30 00:59:57 +02:00
Martin Storsjö
b2f0f37d24 rtmpdh: Generate the whole private exponent using av_get_random_seed() with nettle/gmp
Don't use a PRNG for generating it; that defies the intended use
within the cryptograhic handshake.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-05-29 23:33:03 +03:00
Rodger Combs
f24d92bada lavf/tls: Support Secure Transport
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-29 21:52:27 +02:00
Michael Niedermayer
bedb5d587b configure: Fix showcqt fft dependancy
Found-by: Muhammad Faiz <mfcc64@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-29 21:30:17 +02:00
Ingo Brückl
083b1a32d5 build: add configure option pkgconfigdir
This allows the user to override the directory for the installation
of the pkg-config files (from the default LIBDIR/pkgconfig).

It follows the usual behaviour of Makefiles generated by automake.

Signed-off-by: Ingo Brückl <ib@wupperonline.de>
Reviewed-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-29 20:36:10 +02:00
Nedeljko Babic
e374405d8e libavutil: Cosmetic changes to fixed_dsp file.
Names of functions vector_fmul_window_fixed_c and
vector_fmul_window_fixed_scaled_c are changed by removing "_fixed"
from the name since it is redundant.

Signed-off-by: Nedeljko Babic <nedeljko.babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-29 19:46:00 +02:00
Andreas Cadhalpun
153639cb9c mov: fix DTS calculation for samples with negative stts duration
A negative sample duration is invalid according to the spec, but there
are samples that use it for the DTS calculation, e.g.:
http://files.1f0.de/samples/mp4-negative-stts-problem.mp4

These currently get out of A/V sync.

Also change the logging type to AV_LOG_WARNING, because decoding the
sample can continue.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-05-29 19:35:58 +02:00
Michael Niedermayer
403940de24 avcodec/mpegvideo: Use FFSWAP to exchange pointers
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-29 14:03:52 +02:00
Michael Niedermayer
f86e7c5d00 avcodec/ac3_parser: Avoid floats in bitrate computation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-29 12:59:35 +02:00
Michael Niedermayer
061a592b9c avformat/movenc: Check that track_width_1616 fits within the available 32bit before storing it
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-29 12:54:37 +02:00
Michael Niedermayer
14bc570442 avformat/movenc: avoid floats in width/height/aspect ratio computations
This avoids the possibility for rounding/precision differences between platforms

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-29 12:46:58 +02:00
Michael Niedermayer
3331213e2a avformat/concatdec: Enable auto_convert by default
Users have no means to find out from a failure how to make it work
or is it preferred to check and print a warning for h264 concat without auto_convert ?

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-29 12:19:47 +02:00
Michael Niedermayer
e1b0019568 avformat/mov: Avoid float usage in yuv_to_rgba()
This avoids the possibility for rounding/precision differences between platforms

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-29 12:16:08 +02:00
Michael Niedermayer
4b8b3efb1e Merge commit 'e9e86d9ef637f5a600c76b352ffe5a82b71b25d1'
* commit 'e9e86d9ef637f5a600c76b352ffe5a82b71b25d1':
  rtmpdh: Create sufficiently long private keys for gcrypt/nettle

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-29 11:42:43 +02:00
Michael Niedermayer
42a6a38418 Merge commit '8016a1bd3b60e917e1b12748dd80c06c3462c286'
* commit '8016a1bd3b60e917e1b12748dd80c06c3462c286':
  rtmpdh: Remove an unnecessary check in the gcrypt/nettle dh_compute_key

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-29 11:42:22 +02:00
Michael Niedermayer
48e02e258c Merge commit '063f7467e4d14ab7fe01b2845dab60cc75df8b53'
* commit '063f7467e4d14ab7fe01b2845dab60cc75df8b53':
  rtmpdh: Add fate test for the DH handshake routine

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-29 11:38:37 +02:00
Michael Niedermayer
fbeb3fa999 Merge commit '0508faaa11bf7507ffdd655aee57c9dc5a8203f4'
* commit '0508faaa11bf7507ffdd655aee57c9dc5a8203f4':
  rtmpdh: Pass the actual buffer size of the output secret key

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-29 11:32:07 +02:00
Michael Niedermayer
beecbe13a2 Merge commit '9f1b3050d9e31e9283d818f3640f3460ac8cfb5b'
* commit '9f1b3050d9e31e9283d818f3640f3460ac8cfb5b':
  rtmpdh: Check the output buffer size in the openssl version of dh_compute_key

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-29 11:31:43 +02:00
Michael Niedermayer
4c0b30b07a Merge commit '127d813bcb5705202b7100cf1eccd1e26d72ba14'
* commit '127d813bcb5705202b7100cf1eccd1e26d72ba14':
  rtmpdh: Fix a local variable name in the nettle/gcrypt codepath

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-29 11:31:26 +02:00
Michael Niedermayer
392832fc3a Merge commit '78efc69e7c990226f4b913721ef1b308ca5bfa04'
* commit '78efc69e7c990226f4b913721ef1b308ca5bfa04':
  rtmpdh: Make sure ret is initialized in the nettle version of bn_hex2bn

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-29 11:21:35 +02:00
Martin Storsjö
e9e86d9ef6 rtmpdh: Create sufficiently long private keys for gcrypt/nettle
There was a misunderstanding betewen bits and bytes for the parameter
value for generating random big numbers.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-05-29 09:42:41 +03:00
Martin Storsjö
8016a1bd3b rtmpdh: Remove an unnecessary check in the gcrypt/nettle dh_compute_key
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-05-29 09:42:38 +03:00
Martin Storsjö
063f7467e4 rtmpdh: Add fate test for the DH handshake routine
This helps if these functions need to be implemented using another
crypto API.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-05-29 09:42:35 +03:00
Martin Storsjö
0508faaa11 rtmpdh: Pass the actual buffer size of the output secret key
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-05-29 09:42:32 +03:00
Martin Storsjö
9f1b3050d9 rtmpdh: Check the output buffer size in the openssl version of dh_compute_key
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-05-29 09:42:30 +03:00
Martin Storsjö
127d813bcb rtmpdh: Fix a local variable name in the nettle/gcrypt codepath
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-05-29 09:42:28 +03:00
Martin Storsjö
78efc69e7c rtmpdh: Make sure ret is initialized in the nettle version of bn_hex2bn
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-05-29 09:42:24 +03:00
Hendrik Leppkes
c7bd6a54af dxva2_hevc: re-write reference frame handling
The old logic required and explicit clearing of the lists first and was
prone to overflow the DXVA2 struct in some circumstances.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-29 03:26:23 +02:00
Hendrik Leppkes
b7a0b303d9 dxva2_hevc: fix 32x32 scaling lists
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-29 01:37:06 +02:00
Michael Niedermayer
d860084c50 avcodec/mpegvideo: Reset bitstream_buffer_size on allocation failure
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-29 00:33:18 +02:00
Roman Savchenko
e5d1152ccc avcodec/mpegvideo: Check pointer when allocation fail
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-29 00:29:58 +02:00
Roman Savchenko
e85d91da48 avformat/avienc: Correct possible dereference of null
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-29 00:04:41 +02:00
Michael Niedermayer
e2f3ea1cbb Merge commit 'a64a5773ea5f7337cd1d87cfdf511914d317fe81'
* commit 'a64a5773ea5f7337cd1d87cfdf511914d317fe81':
  pixfmt: remove misleading and broken documentation

Conflicts:
	libavutil/pixfmt.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-28 22:24:12 +02:00
Michael Niedermayer
b666e81c13 Merge commit 'e4610300de6869bd6b3b00e76cfeabb6d7653dcd'
* commit 'e4610300de6869bd6b3b00e76cfeabb6d7653dcd':
  x86: cavs: Remove an unneeded scratch buffer

Conflicts:
	libavcodec/x86/cavsdsp.c

See: d79f7bf0d6
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-28 22:12:41 +02:00
Michael Niedermayer
7026d8accd Merge commit '1b1bb2c4efc126d74d44d8c421860c85f932ecb1'
* commit '1b1bb2c4efc126d74d44d8c421860c85f932ecb1':
  rl: Add error checking to ff_rl_init().

Conflicts:
	libavcodec/rl.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-28 22:02:41 +02:00
Michael Niedermayer
c508fef3c7 Merge commit '324e50ee95929a9491b855c5e15451145bd5d1ec'
* commit '324e50ee95929a9491b855c5e15451145bd5d1ec':
  rl: Add a function for freeing dynamically allocated tables.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-28 21:55:20 +02:00
Michael Niedermayer
75647622b5 Merge commit '6f57375d707de40dcec28d3cef886c364e032c21'
* commit '6f57375d707de40dcec28d3cef886c364e032c21':
  rl: Rename ff_*_rl() to ff_rl_*()

Conflicts:
	libavcodec/mpeg4videodec.c
	libavcodec/rl.c
	libavcodec/rl.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-28 21:48:49 +02:00
Michael Niedermayer
68cce0101d Merge commit 'fa1923f18205410a3b0aa6c0e77cb31443ef340d'
* commit 'fa1923f18205410a3b0aa6c0e77cb31443ef340d':
  mpegvideo: Move ff_*_rl functions to a separate file

Conflicts:
	libavcodec/mpegvideo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-28 21:36:31 +02:00
Michael Niedermayer
9b736f74fc Merge commit '419e3404d07acaac019e8f363c281e17c3a3d622'
* commit '419e3404d07acaac019e8f363c281e17c3a3d622':
  mpegvideo: Drop exchange_uv() function and use its code directly

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-28 21:28:09 +02:00
Michael Niedermayer
f0b99112e3 Merge commit 'd4d90504a687d2c0ef77ccf11d831f24dcff9cf1'
* commit 'd4d90504a687d2c0ef77ccf11d831f24dcff9cf1':
  tls_gnutls: Add missing includes for the gcrypt thread safety callbacks

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-28 21:21:07 +02:00
Michael Niedermayer
5c41608096 Merge commit 'dd4d709be705edaec0bc35c426bf8434e942b7df'
* commit 'dd4d709be705edaec0bc35c426bf8434e942b7df':
  x86inc: Clear __SECT__

See: 204b228a1d
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-28 21:12:53 +02:00
Shivraj Patil
7b45790771 avcodec/mips/hevcdsp_msa: Restructure as per avutil/mips/generic_macros_msa.h
This patch modifies HEVC mc MIPS-SIMD optimized code according to improved version of generic macros.

Overall, this patch is just upgrading the code with styling changes and will bring it in sync with MIPS-SIMD optimized latest codebase at our end.

Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-28 20:47:29 +02:00
wm4
a64a5773ea pixfmt: remove misleading and broken documentation
This was probably broken some time ago. The breakage is now part of the
ABI. For example, we have:

    AV_PIX_FMT_XYZ12BE
    AV_PIX_FMT_NV16
    AV_PIX_FMT_NV20LE

AV_PIX_FMT_NV20LE is wrong. It has the value 113, but as little-endian
format it should be even. This must have been quite obvious when these
formats were added (because of the AV_PIX_FMT_XYZ12BE entry), but
nobody cared or knew about this.

The future libavutil major bump will also break this additionally,
because disabling FF_API_VDPAU will remove an odd number of entries from
the middle of the enum.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-05-28 18:40:40 +02:00
Michael Niedermayer
e4610300de x86: cavs: Remove an unneeded scratch buffer
Simplifies the code and makes it build on certain compilers
running out of registers on x86.

CC: libav-stable@libav.org
Reported-By: mudler
2015-05-28 18:40:40 +02:00
Shivraj Patil
10b77fbf0d avcodec/mips: Split uni mc optimizations to new file
This patch moves HEVC code of uni mc cases to new file hevc_mc_uni_msa.c.
(There are total 5 sub-modules of HEVC mc functions, if we add all these modules in one single file, its size would be huge (~750k) & difficult to maintain, so splitting it in multiple files)
This patch also adds new HEVC header file libavcodec/mips/hevc_macros_msa.h

Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-28 16:51:38 +02:00
Anton Khirnov
1b1bb2c4ef rl: Add error checking to ff_rl_init(). 2015-05-28 15:38:43 +01:00
Anton Khirnov
324e50ee95 rl: Add a function for freeing dynamically allocated tables.
Such tables are not used anywhere currently, but that should change.
2015-05-28 15:38:43 +01:00
Anton Khirnov
6f57375d70 rl: Rename ff_*_rl() to ff_rl_*() 2015-05-28 15:38:43 +01:00
Anton Khirnov
fa1923f182 mpegvideo: Move ff_*_rl functions to a separate file 2015-05-28 15:38:43 +01:00
Vittorio Giovara
419e3404d0 mpegvideo: Drop exchange_uv() function and use its code directly
Code is small enough that there is no advantage in a separate function.
2015-05-28 15:38:43 +01:00
wm4
6f2c64fd03 dvdsubdec: implement flushing
This is needed for proper operation with seeking.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-28 16:10:56 +02:00
wm4
0ad04bf6a2 dvdsubdec: reset buffer size on invalid over-large packets
Otherwise it will never be reset, and remain "stuck" in this state
forever. Can happen when seeking: the decoder will receive fragments
from different file positions, which triggers the condition easily.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-28 15:31:07 +02:00
Michael Niedermayer
b06e82e738 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  lavc/x264: Support bgr0 as input pix_fmt.
  lavf: Use av_codec_get_tag2() in avformat_query_codec().

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-28 14:12:46 +02:00
Martin Storsjö
d4d90504a6 tls_gnutls: Add missing includes for the gcrypt thread safety callbacks
This fixes building with gcrypt-backed gnutls versions, broken
in 57cde2b180.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-05-28 15:05:52 +03:00
Michael Niedermayer
5a3d2541bd avformat/mxfenc: Support storing signal standard for D10 muxing
Reviewed-by: tim nicholson <nichot20@yahoo.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-28 12:36:08 +02:00
Carl Eugen Hoyos
4792fb9409 lavc/x264: Support bgr0 as input pix_fmt. 2015-05-28 12:34:22 +02:00
Carl Eugen Hoyos
57eecd9e4f lavf: Use av_codec_get_tag2() in avformat_query_codec().
av_codec_get_tag() can return 0 both in case of error and success.
2015-05-28 12:31:40 +02:00
Shivraj Patil
bcd7bf7eeb avcodec/mips: Restructure as per avutil/mips/generic_macros_msa.h
This patch modifies H264 loopfilter, weighted & bi-weighted prediction MIPS-SIMD optimized code according to improved version of generic macros.
Also there are minor code alignment changes.

Overall, this patch is just upgrading the code with styling changes and will bring it in sync with MIPS-SIMD optimized latest codebase at our end.

Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-28 11:57:11 +02:00
Timothy Gu
dd4d709be7 x86inc: Clear __SECT__
Silences warning(s) like:

    libavcodec/x86/fft.asm:93: warning: section flags ignored on
    section redeclaration

The cause of this warning is that because `struc` and `endstruc`
attempts to revert to the previous section state [1].

The section state is stored in the macro __SECT__, defined by
x86inc.asm to be `.note.GNU-stack ...`, through the `SECTION`
directive [2].

Thus, the `.note.GNU-stack` section is defined twice
(once in x86inc.asm, once during `endstruc`), causing the warning.

That is the first part of the commit: using the primitive `[section]` format
for .note.GNU-stack etc., which does not update `__SECT__` [2].

That fixes only half of the problem. Even without any `SECTION` directives,
`__SECT__` is predefined as `.text`, which conflicting with the later
`SECTION_TEXT` (which expands to `.text align=16`).

[1]: http://www.nasm.us/doc/nasmdoc6.html#section-6.4
[2]: http://www.nasm.us/doc/nasmdoc6.html#section-6.3

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-05-28 11:40:15 +02:00
Shivraj Patil
02a4991230 avutil/mips: Restructure of generic macros
This patch includes restructuring of existing macros and addition of more generic macros.

This change was necessary to avoid repeated review comments in remaining patches which we were about to submit.
Also this patch reduces number of code lines due to maximum use of generic macros, allows better code alignment & readability etc.

These modifications in commonly used .libavutil/mips/generic_macros_msa.h. impacts the already accepted code, hence re-submitting it in 2/4,3/4 & 4/4.
Overall, this patch set is just upgrading the code with styling changes and will bring it in sync with MIPS-SIMD optimized latest codebase at our end.

Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-28 11:34:52 +02:00
Timothy Gu
7206b94fb8 network: Move variable declaration under an #if
Avoids an unused variable warning.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-28 03:06:05 +02:00
Michael Niedermayer
cf52e6d012 avcodec/ffv1dec: Fix skip_alpha
Fixes Ticket4322

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-28 01:01:16 +02:00
Timothy Gu
204b228a1d x86inc: Clear __SECT__
This commit silences warning(s) like:

    libavcodec/x86/fft.asm:93: warning: section flags ignored on section
    redeclaration

The cause of this warning is that because `struc` and `endstruc` attempts to
revert to the previous section state [1]. The section state is stored in the
macro __SECT__, defined by x86inc.asm to be `.note.GNU-stack ...`, through the
`SECTION` directive [2].  Thus, the `.note.GNU-stack` section is defined twice
(once in x86inc.asm, once during `endstruc`), causing the warning.

That is the first part of the commit: using the primitive `[section]` format
for .note.GNU-stack etc., which does not update `__SECT__` [2].

That fixes only half of the problem. Even without any `SECTION` directives,
`__SECT__` is predefined as `.text`, which conflicting with the later
`SECTION_TEXT` (which expands to `.text align=16`).

[1]: http://www.nasm.us/doc/nasmdoc6.html#section-6.4
[2]: http://www.nasm.us/doc/nasmdoc6.html#section-6.3

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-28 00:08:37 +02:00
Timothy Gu
2b388e6dde Revert "Move struc FFTContext below SECTION_RODATA"
This reverts commit 599888a480.

The commit does not silence the warning on ELF-based systems, and will be
fixed in the subsequent commit.

Conflicts:
	libavcodec/x86/fft_mmx.asm

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-28 00:08:32 +02:00
Michael Niedermayer
eff2ed2fde Merge commit '57cde2b180fcec0eaf60aad65f436ab6420546f5'
* commit '57cde2b180fcec0eaf60aad65f436ab6420546f5':
  lavf: move TLS-related ifdeffery to library specific files

Conflicts:
	libavformat/network.c
	libavformat/tls.h
	libavformat/tls_openssl.c

See: a9f1d584e5
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-27 22:37:23 +02:00
wm4
a9f1d584e5 lavf: move TLS-related ifdeffery to library specific files
There is no need to have this mess in network.c.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-27 22:24:00 +02:00
Michael Niedermayer
fbf9583f9f Merge commit 'd8ffb2055f0e0fcb5d025bab72eb19c2a886c125'
* commit 'd8ffb2055f0e0fcb5d025bab72eb19c2a886c125':
  lavf: split tls.c

Conflicts:
	libavformat/tls.c
	libavformat/tls_gnutls.c
	libavformat/tls_openssl.c

See: 4a006b9eb7
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-27 22:17:17 +02:00
wm4
4a006b9eb7 lavf: split tls.c
Move the OpenSSL and GnuTLS implementations to their own files. Other
than the connection code (including options) and some boilerplate, no
code is actually shared.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-27 21:48:47 +02:00
Michael Niedermayer
07fc47909f avformat/mpsubdec: Use double instead of float for timestamp calculations
This provides higher precission

Reviewed-by: Clément Bœsch <u@pkh.me>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-27 17:29:18 +02:00
Michael Niedermayer
f722009ad9 avformat/mp3dec: Ensure the buffer is large enough to avoid seeks from the first frame search
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-27 17:06:24 +02:00
wm4
2b3e9bbfb5 avformat/mp3: skip junk at the beginning of mp3 files
Apparently it can happen that a mp3 file has junk data between id3 tag
and actual mp3 data. Skip this to avoid outputting nonsense timestamps.
(Two packets had the same timestamps, because the mp3 parser failed to
compute a frame duration.)

In this case, the junk consisted of 1044 bytes of zero, which
incidentally is the same size as normal mp3 frames in this stream. I
suspect the mp3 was edited with some tool which wiped the Xing/LAME
headers. Data near the end of the file suggests it was encoded with
"LAME3.97", but the normal Xing/LAME headers are missing. So this could
be "normal". mpg123 also attempts to skip at least 64KB of junk data by
scanning for headers.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-27 15:50:04 +02:00
Michael Niedermayer
2ae0396814 avformat/mpsubdec: change multipler to int, it only stores 1 and 100
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-27 15:24:34 +02:00
周晓勇
e89e23e1bc avcodec: loongson3 optimized h264dsp weighted mc with mmi
Signed-off-by: ZhouXiaoyong <zhouxiaoyong@loongson.cn>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-27 13:01:54 +02:00
Michael Niedermayer
1cf87e1680 doc/build_system: Document GEN, text taken from the webpage
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-27 12:23:01 +02:00
Michael Niedermayer
073f4b93b2 fate: Update exif tests after 09ec31ce3a
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-27 11:56:19 +02:00
Dave Rice
09ec31ce3a ffprobe: print stream_index with frame data
This makes it easier to relate frame data to its associated stream.
2015-05-27 11:19:19 +02:00
James Almer
c312bfac4c x86/cpu: add AV_CPU_FLAG_AVXSLOW flag
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-05-27 03:31:11 -03:00
Michael Niedermayer
52fc3e372f avfilter/x86/vf_hqdn3d: Fix register types
Fixes Ticket4301

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-27 05:18:55 +02:00
Michael Niedermayer
4240e6a921 avfilter/vf_hqdn3d: Initialize the whole LUT
With bps > 8 more than 255..255 are used
The initialized table content is left unchanged,
But it could also be adjusted for the slight difference of
the maximum

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-27 05:18:55 +02:00
Philip Langdale
7ae805db70 avcodec/nvenc: Fix typo: 1204 -> 1024
Fixes Ticket4508

Signed-off-by: Philip Langdale <philipl@overt.org>
2015-05-26 18:36:13 -07:00
Michael Niedermayer
023040ed0d avformat/movenc: Allow muxing mp3 with samplerate < 16khz if the user sets strict to -1
Fixes Ticket4267

Approved-by: Baptiste Coudurier <baptiste.coudurier@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-27 01:47:59 +02:00
Michael Niedermayer
4fe38441b0 ffmpeg: do not print misleading recommanditions on 1pass vpx encoding
Fixes part of Ticket4295

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-26 23:42:44 +02:00
Michael Niedermayer
4ae090f224 Merge commit 'cf1f3d837e1266034a487de5b575bd76426c6b10'
* commit 'cf1f3d837e1266034a487de5b575bd76426c6b10':
  doc: Fix spelling of 'Transmission'

See: 9898bd9a82
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-26 20:50:56 +02:00
wm4
57cde2b180 lavf: move TLS-related ifdeffery to library specific files
There is no need to have this mess in network.c.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-05-26 21:48:51 +03:00
wm4
d8ffb2055f lavf: split tls.c
Move the OpenSSL and GnuTLS implementations to their own files. Other
than the connection code (including options) and some boilerplate, no
code is actually shared.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-05-26 21:48:32 +03:00
Michael Niedermayer
cf86fd0069 avformat/matroskaenc: Avoid floats in default duration calculation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-26 20:42:05 +02:00
Michael Niedermayer
8aa9853093 avformat/ircamenc: Avoid floats
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-26 19:54:41 +02:00
Michael Niedermayer
1fb9b2a283 avutil: Add av_q2intfloat()
This function allows writing AVRationals as IEEE floats without the need
of platform dependant float operations

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-26 18:31:53 +02:00
Michael Niedermayer
894d8cf418 avformat/movenc: Avoid floats & float rounding in tmcd nb_frames calculation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-26 14:51:00 +02:00
Michael Niedermayer
f902b0b2cb avformat/asfdec: Avoid float usage in duration calculation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-26 13:51:29 +02:00
Sebastian Ramacher
cf1f3d837e doc: Fix spelling of 'Transmission'
Signed-off-by: Sebastian Ramacher <sramacher@debian.org>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-05-26 13:41:44 +02:00
Michael Niedermayer
db07fc2020 avformat/mpegts: Avoid float in bitrate calculation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-26 12:02:44 +02:00
Michael Niedermayer
1b236541a6 avcodec/h264: Fix HWACCEL_MAX for D3D11
Found-by: philipl
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-26 05:23:29 +02:00
Michael Niedermayer
688147cfe2 avcodec/hevc: Fix HWACCEL_MAX for D3D11
Found-by: philipl
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-26 05:23:29 +02:00
Michael Niedermayer
5cddfc5357 avcodec/dxva2_h264: Fix "may be used uninitialized" warnings
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-26 05:23:29 +02:00
Philip Langdale
9ae766d1c6 avcodec/vdpau: Re-factor pre-hwaccel helper functions into separate header
h264.h and hevc.h are mutually exclusive due to defining some of the same
names. As such, we need to avoid forcing h264.h to be included if we want
hevc decode acceleration to be possible.

However, some of the pre-hwaccel helper functions need h264.h. To avoid
messy collisions, let's move the declaration of all those helpers to
a separate header which we will exclude for the hevc support (which will
be hwaccel-only).

Signed-off-by: Philip Langdale <philipl@overt.org>
2015-05-25 19:50:41 -07:00
Michael Niedermayer
7ed5d78d61 avcodec/dxva2: Fix "may be used uninitialized" warnings
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-26 04:40:34 +02:00
Michael Niedermayer
a838b22bd9 configure: Check if ID3D11VideoDecoder exists, not just the header to enable d3d11va
Fixes build with "mingw-w64-x86-64-dev 3.2.0-2"

Tested-by: jamrial
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-26 01:51:33 +02:00
Michael Niedermayer
5bc2c39527 avfilter/x86/vf_fspp: Fix invalid combination of opcode and operands
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-26 01:43:47 +02:00
Carl Eugen Hoyos
5193407cf6 lavf/dnxhd: Autodetect more files that can be decoded. 2015-05-26 00:29:36 +02:00
Andreas Cadhalpun
83a04f8cc1 mov: reject zero bytes_per_frame with non-zero samples_per_frame
In this case the mov demuxer can return a large number of empty packets.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-05-26 00:28:02 +02:00
Michael Niedermayer
3232ac4bac configure: d3d11va is auto-detected like the others
Fix the help text accordingly

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-25 23:45:13 +02:00
Carl Eugen Hoyos
860ac0a5bb lavf/riff: Add 0x729A as TwoCC for G.729.
Reported by forum user muchuan.
2015-05-25 23:39:56 +02:00
Michael Niedermayer
94d07b314a avcodec/dxva2: Fix build without D3D11
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-25 22:24:40 +02:00
Michael Niedermayer
947b74ee7d Merge commit 'd8039ef8d221ea273aa4f1e62e5df21bf618c772'
* commit 'd8039ef8d221ea273aa4f1e62e5df21bf618c772':
  D3D11va: add a Direct3D11 video decoder similar to DXVA2

Conflicts:
	Changelog
	configure
	libavcodec/Makefile
	libavcodec/allcodecs.c
	libavcodec/dxva2_vc1.c
	libavcodec/version.h
	libavutil/pixdesc.c
	libavutil/pixfmt.h
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-25 22:24:34 +02:00
Niklesh
9aabc926ca Improve upon dynamic arrays- movtext subtitles
Signed-off-by: Niklesh <niklesh.lalwani@iitb.ac.in>
2015-05-25 11:39:29 -07:00
Andreas Cadhalpun
e48a9ac9af libshine: fix support for shine 3.0
shine_encode_buffer expects written to be an int pointer, while the
previous shine_encode_frame expected it to be a long pointer.

Thus encoding with libshine currently always fails with
"internal buffer too small", because a negative return value of
shine_encode_buffer is interpreted as a very large long value.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-05-25 16:08:08 +02:00
Michael Niedermayer
c50904fd78 avcodec/mjpegenc_common: Use ff_mpv_reallocate_putbitbuffer()
Fixes assertion failure
Fixes Ticket4396

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-25 14:35:35 +02:00
Michael Niedermayer
00f3bb2ef2 avcodec/mpegvideo: Factor ff_mpv_reallocate_putbitbuffer() out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-25 14:33:38 +02:00
Michael Niedermayer
cf401cd12b avformat/rmenc: Avoid floats in duration calculation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-25 13:34:43 +02:00
Michael Niedermayer
343654c288 avformat/mpegenc: Replace *0.7 by *7/10
This avoids another float computation, avoiding a potential source of
rounding issues

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-25 13:34:34 +02:00
Michael Niedermayer
73f7179924 avformat/mpegenc: Do not use floats for vcd_padding_bitrate
This reduces the risk for rounding differences.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-25 12:43:51 +02:00
Michael Niedermayer
2ce6e41911 ffmpeg_opt: Set the video VBV parameters only for the video stream from -target
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-25 12:13:53 +02:00
Steve Lhomme
d8039ef8d2 D3D11va: add a Direct3D11 video decoder similar to DXVA2
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-05-25 11:47:08 +02:00
Michael Niedermayer
bd46e78aa4 avcodec/put_bits: Assert that size in set_put_bits_buffer_size() does not cause integer overflows
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-25 05:31:26 +02:00
Michael Niedermayer
291ad5cc9c avcodec/bitstream: Assert that there is enough space left in avpriv_copy_bits()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-25 05:14:02 +02:00
Michael Niedermayer
8f5ffed183 avcodec/put_bits: Assert that there is enough space left in skip_put_bytes()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-25 05:14:02 +02:00
Michael Niedermayer
561d3a57aa avcodec/mpegvideo_enc: Update the buffer size as more slices are merged
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-25 05:14:02 +02:00
Michael Niedermayer
e4c2ec879b avcodec/put_bits: Update size_in_bits in set_put_bits_buffer_size()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-25 04:55:37 +02:00
Michael Niedermayer
8ce564ea28 avformat/mov: Mark avio context of decompressed atoms as seekable
Fixes Ticket4329

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-25 01:26:55 +02:00
Michael Niedermayer
1cacecce79 avcodec/libutvideoenc: Fix memleak
Fixes: CID1257657

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-25 00:32:46 +02:00
James Almer
c5a07f1f84 libdcadec: search for frames that start late in a packet
Based on commit 4ae15605f6

Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-05-24 13:06:42 -03:00
Michael Niedermayer
db5ea69d80 avcodec/ituh263enc: Pass PutBitContext into h263p_encode_umotion() instead of MpegEncContext
This avoids the need to dereference MpegEncContext->pb if it is
already available outside h263p_encode_umotion()

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-24 17:27:47 +02:00
Michael Niedermayer
404fe63e23 avcodec: Pass PutBitContext into ff_h263_encode_motion() instead of MpegEncContext
This avoids the need to dereference MpegEncContext->pb if it is
already available outside ff_h263_encode_motion()

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-24 17:15:18 +02:00
Michael Niedermayer
b71dc29729 avcodec/h263: Remove unused argument of h263_get_motion_length()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-24 16:58:55 +02:00
Michael Niedermayer
39de31ccb6 avcodec/mpeg4video: Reorder operations to reduce accesses to err_recognition
About 9 cpu cycle faster mpeg4_decode_mb()

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-24 16:11:38 +02:00
Andreas Cadhalpun
b71528d896 mov: always check avio_read return value
If avio_read fails, the buffer can contain uninitialized data.

This fixes 'Conditional jump or move depends on uninitialised value(s)'
valgrind warnings.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-05-24 15:08:21 +02:00
Andreas Cadhalpun
8e77f8ab4a mov: fix two memleaks
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-05-24 15:08:21 +02:00
Andreas Cadhalpun
a5718863da mov: abort on EOF in ff_mov_read_chan
Otherwise the loop can take a lot of time if num_descr is very large.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-05-24 15:07:52 +02:00
Michael Niedermayer
0c3b4efc76 avformat/movenc: Remove float use from rgb_to_yuv()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-24 13:32:53 +02:00
Michael Niedermayer
28134d6a0e avformat/swfenc: Remove another unneeded float computation
fewer chances for rounding differences between platforms is better

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-24 13:32:53 +02:00
Michael Niedermayer
5d4ff4a31e avformat/swfenc: Remove unneeded floats
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-24 03:59:26 +02:00
Michael Niedermayer
17264cd281 avformat/avienc: Avoid float usage
reduces risk for rounding differences between platforms

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-23 23:42:51 +02:00
Michael Niedermayer
3bf57acb9c avformat/4xm: Change fps to AVRational
This fixes the video timebase as well

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-23 22:36:02 +02:00
Michael Niedermayer
de0d3fe562 avcodec/y41pdec: Avoid using float for size test
Floats are not bitexact

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-23 21:46:07 +02:00
James Almer
8952254ffe libwebp: simplify AVCodec.close functions
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-05-23 14:46:46 -03:00
James Almer
57d9788d1b configure: simplify libwebp checks
The libwebpmux pkg-config file already has an explicit dependecy on libwebp >= 0.2.0.
Also remove the warning and silently disable the anim encoder when libwebpmux is not new enough.
This is more in line with other library components, like libvpx-vp9

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-05-23 14:18:54 -03:00
Andreas Cadhalpun
ed4932a694 nutdec: fix various memleaks on failure
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-05-23 17:42:35 +02:00
Michael Niedermayer
4ae15605f6 avcodec/dcadec: Search and decode frame in case it starts later in a packet
This fixes decoding the first frame of some dts files

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-23 16:37:16 +02:00
Rodger Combs
40a3e1e9c5 avformat/wavdec: Increase dts packet threshold to fix more misdetections
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-23 16:04:19 +02:00
Michael Niedermayer
9f5769437a avformat/wavdec: Increase probe_packets limit
Fixes DTS detection of b2429e5ba9.dts

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-23 12:07:23 +02:00
Andreas Cadhalpun
0b79a389ba nutdec: always check the get_str return value
If it fails, the buffers can be (partially) uninitialized.

This fixes 'Conditional jump or move depends on uninitialised value(s)'
valgrind warnings.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-05-23 10:36:44 +02:00
James Almer
1096c46c55 libwebp: use a separate AVClass for each encoder
Signed-off-by: James Almer <jamrial@gmail.com>
2015-05-23 01:52:16 -03:00
James Almer
44ca8a6adb libwebpenc_common: add header guards
Signed-off-by: James Almer <jamrial@gmail.com>
2015-05-23 01:44:54 -03:00
James Almer
98be2d94ea libwebp: remove unneeded defines
Signed-off-by: James Almer <jamrial@gmail.com>
2015-05-23 01:29:23 -03:00
Urvang Joshi
02cf59f3a6 WebP encoder: use WebPAnimEncoder API when available.
WebPAnimEncoder API is a combination of encoder (WebPEncoder) and muxer
(WebPMux). It performs several optimizations to make it more efficient
than the combination of WebPEncode() and native ffmpeg muxer.

When WebPAnimEncoder API is used:
- In the encoder layer: we use WebPAnimEncoderAdd() instead of
  WebPEncode().
- The muxer layer: works like a raw muxer.

On the other hand, when WebPAnimEncoder API isn't available, the old code is
used as it is:
- In the codec layer: WebPEncode is used to encode each frame
- In the muxer layer:  ffmpeg muxer is used

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-23 03:31:28 +02:00
Michael Niedermayer
ebb0ca3d70 avformat/nutdec: Check X in 2nd branch of index reading
Prevents read of uninitialized variable

Based on patch by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-23 00:23:05 +02:00
Michael Niedermayer
f275f9eaee Merge commit '4e17946f10d39eec6cc03fb249ae8147373141b6'
* commit '4e17946f10d39eec6cc03fb249ae8147373141b6':
  mpegvideo: Rework various functions not to use MpegEncContext directly

Conflicts:
	libavcodec/mpegvideo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-22 22:39:47 +02:00
Michael Niedermayer
179527f34e Merge commit 'a3f4c930ac3f49f47b6e6ffda925d0dcf80320e2'
* commit 'a3f4c930ac3f49f47b6e6ffda925d0dcf80320e2':
  mpegvideo: Have ff_mpeg_ref_picture use AVCodecContext directly

Conflicts:
	libavcodec/mpegvideo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-22 21:17:34 +02:00
Michael Niedermayer
a25ee5f922 Merge commit 'd528045558825f01472e9bee873f60c98d661e53'
* commit 'd528045558825f01472e9bee873f60c98d661e53':
  mpegvideo: Have ff_mpeg_unref_picture use AVCodecContext directly

Conflicts:
	libavcodec/mpegvideo.c
	libavcodec/mpegvideo_enc.c

The memset is left in place

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-22 21:15:32 +02:00
Michael Niedermayer
bc373595f2 Merge commit '6f54dc43cee6b2f5d183acf98b32a3cf8be4a4fc'
* commit '6f54dc43cee6b2f5d183acf98b32a3cf8be4a4fc':
  mpegvideo: Drop stream_codec_tag

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-22 20:49:16 +02:00
Michael Niedermayer
d5227ceff1 Merge commit '9c1db92ad372d4cd69e0490e691c56e4097cb193'
* commit '9c1db92ad372d4cd69e0490e691c56e4097cb193':
  mpegvideo: Drop err_recognition

Conflicts:
	libavcodec/h263dec.c
	libavcodec/ituh263dec.c
	libavcodec/mpeg4video.h
	libavcodec/mpeg4videodec.c
	libavcodec/msmpeg4dec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-22 20:38:42 +02:00
Michael Niedermayer
d9b264bc73 Merge commit '848e86f74d3e6e87fa592ee8ba8c184cc5fd9a42'
* commit '848e86f74d3e6e87fa592ee8ba8c184cc5fd9a42':
  mpegvideo: Drop flags and flags2

Conflicts:
	libavcodec/mpeg12dec.c
	libavcodec/mpeg12enc.c
	libavcodec/mpegvideo.c
	libavcodec/mpegvideo_enc.c
	libavcodec/mpegvideo_motion.c
	libavcodec/ratecontrol.c
	libavcodec/vc1_block.c
	libavcodec/vc1_loopfilter.c
	libavcodec/vc1_mc.c
	libavcodec/vc1dec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-22 20:24:41 +02:00
Niklesh
337aa17e61 avcodec/movtextdec: Add support for large boxes(>32 bit)
Signed-off-by: Niklesh <niklesh.lalwani@iitb.ac.in>
2015-05-22 08:32:20 -07:00
Vittorio Giovara
4e17946f10 mpegvideo: Rework various functions not to use MpegEncContext directly 2015-05-22 15:34:39 +01:00
Vittorio Giovara
a3f4c930ac mpegvideo: Have ff_mpeg_ref_picture use AVCodecContext directly 2015-05-22 15:34:39 +01:00
Vittorio Giovara
d528045558 mpegvideo: Have ff_mpeg_unref_picture use AVCodecContext directly
This skips setting the memory to 0 but allows for reuse on different
contextes. Oracle did not report any unsual activity because of it.
2015-05-22 15:34:39 +01:00
Vittorio Giovara
6f54dc43ce mpegvideo: Drop stream_codec_tag
The field is unused.
2015-05-22 15:34:39 +01:00
Vittorio Giovara
9c1db92ad3 mpegvideo: Drop err_recognition
It is just a duplicate of an AVCodecContext member so use it instead.
2015-05-22 15:34:39 +01:00
Vittorio Giovara
848e86f74d mpegvideo: Drop flags and flags2
They are just duplicates of AVCodecContext members so use those instead.
2015-05-22 15:34:39 +01:00
Michael Niedermayer
3b176af001 avformat/mxfenc: Add color siting element
Previous version Reviewed-by: tim nicholson <nichot20@yahoo.com>
Previous version Reviewed-by: Tomas Härdin <tomas.hardin@codemill.se>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-22 15:30:31 +02:00
Michael Niedermayer
a45cf639e6 libavformat/mux: Add ff_choose_chroma_location()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-22 15:30:31 +02:00
Michael Niedermayer
d09321b68e avcodec/mpeg12dec: Fix chroma location
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-22 15:30:31 +02:00
Tim Nicholson
ebb08f3fe4 avutil/pixfmt: Clarify DV example comments for AVChromaLocation
Signed-off-by: Tim Nicholson <tim.nicholson@bbc.co.uk>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-22 12:08:32 +02:00
Michael Niedermayer
1617a89cf0 Merge commit '29216d7fd14d1cec16821867d17c90b5c49e8c07'
* commit '29216d7fd14d1cec16821867d17c90b5c49e8c07':
  tls: fix compilation when both gnutls and openssl are enabled

See: e91fbfd9cf
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-22 11:54:16 +02:00
James Almer
29216d7fd1 tls: fix compilation when both gnutls and openssl are enabled
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-05-22 12:21:38 +03:00
James Almer
e91fbfd9cf tls: fix compilation when both gnutls and openssl are enabled
Signed-off-by: James Almer <jamrial@gmail.com>
2015-05-22 00:33:33 -03:00
Urvang Joshi
f99fed733d WebP encoder: extract out some methods into a separate helper library.
This is the 2nd patch in preparation for using WebPAnimEncoder API for encoding
and muxing WebP images.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-22 03:16:59 +02:00
Michael Niedermayer
a0124b89e3 Merge commit '94599a6de3822b13c94096d764868128f388ba28'
* commit '94599a6de3822b13c94096d764868128f388ba28':
  tls: Remove all the local polling loops

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-22 02:49:38 +02:00
Michael Niedermayer
9221e362fd Merge commit 'd13b124eaf452b267480074b2e6946538ed03a6e'
* commit 'd13b124eaf452b267480074b2e6946538ed03a6e':
  tls: Remove the nonblocking code

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-22 02:38:11 +02:00
Michael Niedermayer
162644c833 Merge commit 'd15eec4d6bdfa3bd4c4b5b7dd2dbd699ba253d02'
* commit 'd15eec4d6bdfa3bd4c4b5b7dd2dbd699ba253d02':
  tls: Use custom IO to read from the URLContext

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-22 02:28:27 +02:00
Urvang Joshi
6b56fcbd10 WebP muxer: support a packet containing animated WebP.
This is the 1st patch in preparation for using WebPAnimEncoder API for encoding
and muxing WebP images.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-22 00:17:53 +02:00
Martin Storsjö
94599a6de3 tls: Remove all the local polling loops
These aren't necessary any longer.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-05-22 00:06:11 +03:00
Martin Storsjö
d13b124eaf tls: Remove the nonblocking code
Since the underlying URLContext read functions are used,
they handle interruption, without having to handle it at
this level.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-05-22 00:05:01 +03:00
Martin Storsjö
d15eec4d6b tls: Use custom IO to read from the URLContext
This avoids hijacking the fd, by reading using the normal
URLContext functions instead. This allowing reading data that has
been buffered in the underlying URLContext.

This avoids using the libraries own send functions that can
cause SIGPIPE.

The fd is still used for polling the lowlevel socket, for
waiting for retries.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-05-22 00:04:32 +03:00
Michael Niedermayer
1c6ede3360 doc/ffmpeg: basic documentation for -copy/ignore_unknown
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-21 22:32:24 +02:00
Zhang Rui
c886dd2f58 avformat/mov: check result of avio_seek
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-21 18:48:18 +02:00
Michael Niedermayer
18833daf9d ffmpeg: Support copying unknown streams
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-21 18:21:38 +02:00
周晓勇
33e9473366 avcodec/mips: loongson fix bugs in mathops optimization
the incorrect UMULH, ff_sqrt, MAC64 and MLS64 to be optimized later, delete them just for now.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-21 17:46:33 +02:00
Michael Niedermayer
818275bbd0 avutil/pixfmt: s/luma sample positions/horizontal luma sample positions/
Better to be explicit before someone thinks this could be the time axis ...

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-21 12:48:16 +02:00
Michael Niedermayer
8a141ad5e8 avutil/pixfmt: make luma sample positions even more explicit in the AVChromaLocation ASCII art
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-21 12:44:23 +02:00
Michael Niedermayer
b95df4c371 avutil/pixfmt: Clarify mpeg example comments for AVChromaLocation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-21 12:40:29 +02:00
Michael Niedermayer
acccc28713 avutil/pixfmt: clarify chroma location text further, as "first" is ambigous
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-21 12:35:22 +02:00
Michael Niedermayer
a3b0130dee avutil/pixfmt: Clarify that the ASCII art describes the location of the first chroma sample of AVChromaLocation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-21 12:30:46 +02:00
Michael Niedermayer
0b9d636877 ffmpeg_opt: add missing space in error message
Found-by: rcombs
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-21 01:47:50 +02:00
Michael Niedermayer
737b0ca65b Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  lavc/qdrw: Do not fail decoding valid Quickdraw images.
  lavf/mov: Use AVCOL_SPC constants when checking color_space.
  lavf/mov: Write colour matrix "6" for color_space bt470bg.
  lavf/mkv: Only skip prores header if the packet is large enough.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-21 01:26:36 +02:00
Michael Niedermayer
592b053c7b ffmpeg_opt: fix the error message log level for the unsupported stream types
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-21 01:10:53 +02:00
Michael Niedermayer
100df10b0f ffmpeg_opt: Give the user a hint on how to ignore unsupported streams
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-21 01:10:53 +02:00
James Almer
40bf3687a1 libvpx: add support for yuv440p and yuv440p10/12 encoding
Reviewed-by: James Zern <jzern@google.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-05-20 20:08:56 -03:00
Carl Eugen Hoyos
209e91cbc4 lavc/qdrw: Do not fail decoding valid Quickdraw images. 2015-05-21 01:05:13 +02:00
Carl Eugen Hoyos
4fb3efd2c1 lavf/mov: Use AVCOL_SPC constants when checking color_space.
Suggested-by: Ronald Bultje
2015-05-21 01:04:57 +02:00
Carl Eugen Hoyos
c4f864193f lavf/mov: Write colour matrix "6" for color_space bt470bg.
This matches the demuxer's behaviour.
2015-05-21 01:04:45 +02:00
Rodger Combs
a2aff2690b ffmpeg: support ignoring unsupported mapped streams
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-21 00:52:06 +02:00
Carl Eugen Hoyos
8f6b919d99 lavf/mkv: Only skip prores header if the packet is large enough.
Fixes a possible endless loop.
2015-05-21 00:43:38 +02:00
Michael Niedermayer
642355712b Merge commit '3efe0393e4f0eaa27bac8833edbd7d3cff4704e1'
* commit '3efe0393e4f0eaa27bac8833edbd7d3cff4704e1':
  hevc: make avcodec_decode_video2() fail if get_format() fails

Conflicts:
	libavcodec/hevc.c

See: cc5e4bb484
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-20 21:40:05 +02:00
Andreas Cadhalpun
bb23a15df5 nutdec: abort if EOF is reached in decode_info_header/read_sm_data
These loops can take a lot of time if count is very large.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-05-20 20:43:54 +02:00
Vittorio Giovara
265d884eb0 avcodec/vmnc: Add back adapted comment about 24bit
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-20 19:24:54 +02:00
Michael Niedermayer
6b783d2ace Merge commit '7046bd9bc9ce04521edf453c9b603d84d69c7512'
* commit '7046bd9bc9ce04521edf453c9b603d84d69c7512':
  lavfi: Move avcodec header to the only filter needing it

Conflicts:
	libavfilter/avfilter.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-20 19:14:11 +02:00
Andreas Cadhalpun
fa7dec8cb0 nutdec: stop skipping bytes at EOF
This can unnecessarily waste a lot of time.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-05-20 19:07:26 +02:00
Andreas Cadhalpun
37e679881d nutdec: fix infinite resync loops
nut->last_syncpoint_pos doesn't necessarily change between resync
attempts, so find_any_startcode can return the same startcode again.

Thus remember where the last resync happened and don't try to resync
before that.

This can't be done locally in nut_read_packet, because this wouldn't
prevent infinite resync loops, where after the resync a packet is
returned and while reading a following packet the resync happens again.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-05-20 19:07:26 +02:00
Michael Niedermayer
b6ca7bfc7c avcodec/vmnc: Simplify "24bit" support
This also makes the code more robust, removing potential out of
array writes.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-20 18:50:38 +02:00
Michael Niedermayer
a4c7aeaf82 Merge commit 'eafbc6716cede6d4a652f8bedf82f2901c68d06d'
* commit 'eafbc6716cede6d4a652f8bedf82f2901c68d06d':
  vmnc: Delay pixel size check

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-20 18:41:43 +02:00
Michael Niedermayer
6d1935d1b9 avcodec/hevc: Remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-20 18:15:22 +02:00
周晓勇
f9d05786a8 configure: add cpuflags for loongson3 series cpu
Signed-off-by: ZhouXiaoyong <zhouxiaoyong@loongson.cn>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-20 17:57:59 +02:00
Michael Niedermayer
b3496b4a33 avformat/nutdec: Fix recovery when immedeately after seeking a failure happens
Found-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-20 17:48:28 +02:00
Michael Niedermayer
6bbb2f8f4d avformat/nutdec: Return error on EOF from get_str()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-20 17:20:58 +02:00
Michael Niedermayer
611e1085f8 fate: Add fate-mathops test
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-20 15:50:58 +02:00
Michael Niedermayer
50965e0673 avcodec: add mathops test
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-20 15:50:58 +02:00
Carl Eugen Hoyos
eb0c08bc69 lavc/vmnc: Fix 32bit colour-space, there is no transparency. 2015-05-20 14:59:38 +02:00
周晓勇
0d41f1ffbc configure: disable mipsfpu for loongson3
MIPSFPU optimization does't support FATE correctly on Loongson-3.

Signed-off-by: ZhouXiaoyong <zhouxiaoyong@loongson.cn>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-20 12:24:59 +02:00
Michael Niedermayer
886ba93009 doc/encoders: add flac
Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-20 12:09:46 +02:00
Niklesh
b44a55ad2d Fix movtext crashes caused due to lack of proper bounds checking
Signed-off-by: Niklesh <niklesh.lalwani@iitb.ac.in>
2015-05-19 20:15:15 -07:00
Michael Niedermayer
b8e7f2b277 avcodec/flacenc: Support Multi dimensional quantization
Now with exact bit computations if exact_rice_parameters is enabled

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-20 01:35:29 +02:00
wm4
3efe0393e4 hevc: make avcodec_decode_video2() fail if get_format() fails
Personally, I need the decoder to back out if get_format() returns no
usable pixel format. This didn't work because the error code was not
propagated down the call chain. This in turn happened because the
variable declaration removed in this patch shadowed the variable, whose
value is returned at the end of the function. Consequently, failures of
decode_nal_unit() were ignored in this place.

Reviewed-by:  Andreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-19 18:59:06 +01:00
Vittorio Giovara
7046bd9bc9 lavfi: Move avcodec header to the only filter needing it
af_ashowinfo, due to the enum AVAudioServiceType use.
2015-05-19 18:56:40 +01:00
Vittorio Giovara
eafbc6716c vmnc: Delay pixel size check
Some clients incorrectly set 24 as bits_per_coded_sample, while
the actual value is preserved in one of the codec headers.
In order to work around this, delay the check until decode_frame().

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-05-19 18:55:30 +01:00
Michael Niedermayer
215410860f avcodec/flacenc: Mark pointers/array arguments const which are not changed
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-19 19:47:22 +02:00
Michael Niedermayer
5dfcb4f74d avcodec/flacenc: Simplify md5 calculation code by using AV_WL24()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-19 19:41:44 +02:00
Michael Niedermayer
710abaf2c5 avutil/pixfmt: Improve ascii art showing the meaning of the AVChromaLocation values
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-19 17:47:28 +02:00
Michael Niedermayer
7786a91b47 avcodec/flacenc: Move udata and sums to FlacSubframe
This significantly reduces the amount of stack space needed and
also permits to simply copy the rice context again without speed
penalty

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-19 13:48:30 +02:00
Michael Niedermayer
df5e408d32 fate: Add test for -exact_rice_parameters 1 2015-05-19 13:43:18 +02:00
Michael Niedermayer
80f9d6e0ab avcodec/flacenc: Support calculating rice parameters exactly
Some files benefit by about 0.3% from this, and speedwise its ok
other files do not benefit and encode to the same size

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-19 13:42:56 +02:00
Michael Niedermayer
d3dcd28812 avcodec/flacenc: Do not copy unused udata array -> 5x faster calc_rice_params()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-19 12:11:27 +02:00
Michael Niedermayer
d0ac2f59aa avcodec/golomb: Remove disabled and broken code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-19 03:25:53 +02:00
Michael Niedermayer
8ea9334b31 avcodec/mss2: use < 0 instead of != 0 to check for error of vlc initialization
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-19 03:25:53 +02:00
Michael Niedermayer
b0322e4a9e ffmpeg_opt: Compensate for DTS/PTS difference in seeking when its based on DTS
Fixes Ticket4554

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-18 21:16:36 +02:00
Steve Borho
b012bd5068 libavcodec/x265: detect csps in libx265_encode_init_csp()
Without this change, if you link with an 8bit libx265 and try to specify
a 10bit input color space via:

  ffmpeg -i in.mov -c:v libx265 -pix_fmt yuv420p10le out.mp4

It will error with:

  Incompatible pixel format 'yuv420p10le' for codec 'libx265',
  auto-selecting format 'yuv420p'

With this fix, it will learn if a 10bit libx265 is available at startup,
and thus allow 10bit input color spaces.

Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-05-18 15:27:51 -03:00
Michael Niedermayer
4b0f78ad1f avcodec/snow_dwt: Remove ff_ prefix from ff_spatial_idwt_init() and ff_spatial_idwt_slice()
They are only used once in the file in which they are defined

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-18 14:07:48 +02:00
Michael Niedermayer
c6bf27d59b avcodec/hevc_cabac: Rename ff_hevc_transform_skip_flag_decode() to hevc_transform_skip_flag_decode()
The function is static and used once in the file its defined in

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-18 13:28:49 +02:00
Michael Niedermayer
0c0d1a4ef2 avfilter/avfiltergraph: Rename ff_avfilter_graph_config_pointers to graph_config_pointers.
The function is static and only used once in the file its defined in.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-18 13:22:27 +02:00
Michael Niedermayer
e32d832a82 avformat/mxfenc: Set horizontal chroma subsample value from pixel format if available
Reviewed-by: tim nicholson <nichot20@yahoo.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-18 10:52:40 +02:00
Michael Niedermayer
58afb3128b avformat/mxfenc: Set the component depth from the pixel format if available
Reviewed-by: tim nicholson <nichot20@yahoo.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-18 10:49:28 +02:00
Michael Niedermayer
451be676f3 Merge remote-tracking branch 'rbultje/vp9-bugfixes'
* rbultje/vp9-bugfixes:
  vp9: match another find_ref_mvs() bug in libvpx.
  vp9: fix scaled motion vector clipping for sub8x8 blocks.
  vp9: improve signbias check.
  vp9: don't allow compound references if error_resilience is enabled.
  vp9: clamp segmented lflvl before applying ref/mode deltas.
  vp9: reset loopfilter mode/ref deltas on keyframe.
  vp9: fix crash when playing back 440/440 content with width%64<56.
  vp9: extend loopfilter workaround for vp9 h/v mix-up to work for 422.
  vp9: clip motion vectors in the same way as libvpx does.
  vp9: set skip flag if the block had no coded coefficients.
  vp9: apply mv scaling workaround only when subsampling is enabled.
  vp9: read all 4x4 blocks in sub8x8 blocks individually with scalability.
  vp9: fix segmentation map referencing upon framesize change.
  vp9: disable more pmulhrsw optimizations in idct16/32.
  vp9: disable all pmulhrsw in 8/16 iadst x86 optimizations.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-18 02:35:16 +02:00
Michael Niedermayer
66f4b1e9c4 cmdutils: Fix sign error in display matrix auto-rotation code
This makes the sample from Ticket4560 behave consistently with either branch

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-18 02:07:34 +02:00
Michael Niedermayer
57e38043de ffmpeg: Do not copy the display matrix if rotation meta-data is manually added
Fixes Ticket4560

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-18 00:52:36 +02:00
Michael Niedermayer
14c4b25158 avcodec/golomb: fix reading huge signed rice golomb values
No testcase is known, nor any case where such huge values would occur

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-17 19:36:38 +02:00
Michael Niedermayer
c720b9ce98 avcodec/golomb: get_ur_golomb_jpegls: Fix reading huge k values
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-17 19:36:32 +02:00
MrBoogs
4f2fcac290 avformat/hlsenc: do not append an endlist tag when the stream ends
Reviewed-by: Thomas Volkert <silvo@gmx.net>
2015-05-17 17:15:03 +02:00
MrBoogs
572a8292cb avformat/hlsenc: Add hls flag for starting a playlist with a discontinuity on startup
Reviewed-by: Thomas Volkert <silvo@gmx.net>
2015-05-17 17:14:00 +02:00
MrBoogs
8fd01b4a79 avformat/hlsenc: Add hls flag for rounding m3u8 durations to whole numbers, problems with floats on some devices
Reviewed-by: Thomas Volkert <silvo@gmx.net>
2015-05-17 17:11:44 +02:00
Michael Niedermayer
b6fcb2bb6d avcodec/flacdec: Attempt to auto-detect old buggy flac
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-17 13:42:32 +02:00
Carl Eugen Hoyos
83356cf6cc lavc/vc1: Never decode vc1 as gray if gray decoding was not enabled. 2015-05-17 12:58:44 +02:00
Carl Eugen Hoyos
ee8c18387d lavf/mpeg: Do not detect unknown audio in Hikvision streams as alaw. 2015-05-17 12:57:27 +02:00
Carl Eugen Hoyos
70c0433525 lavc: Print a warning if gray decoding was requested but not enabled. 2015-05-17 10:22:03 +02:00
Carl Eugen Hoyos
2acc065653 lavf/wav: Read files >4G if no smaller filesize was written.
Fixes second part of ticket #4543.
2015-05-17 02:08:58 +02:00
Carl Eugen Hoyos
2608f11863 lavf/wav: Print an error if files >4G are written.
Additionally, don't write an incorrect shorter size for such files.

Fixes part of ticket #4543.
2015-05-17 02:08:58 +02:00
Carl Eugen Hoyos
101f26e758 lavc/h263: Set color_range for gray decoding. 2015-05-17 02:08:58 +02:00
Carl Eugen Hoyos
4d8bd60ac6 lavc/vc1: Set color_range for gray decoding. 2015-05-17 02:08:58 +02:00
Carl Eugen Hoyos
caa41d1e4c lavf/mov: Tell users about the use_absolute_path option.
Fixes ticket #4539.
2015-05-17 02:08:58 +02:00
Carl Eugen Hoyos
1eda55510a lavc/qdrw: Fix overwrite when reading invalid Quickdraw images. 2015-05-17 02:08:58 +02:00
Carl Eugen Hoyos
e609cfd697 lavc/flac: Fix encoding and decoding with high lpc.
Based on an analysis by trac user lvqcl.

Fixes ticket #4421, reported by Chase Walker.
2015-05-17 02:08:58 +02:00
Carl Eugen Hoyos
38f5a266ee lavc/flacdec: Sanitize FLACSTREAMINFO usage. 2015-05-17 02:08:58 +02:00
Michael Niedermayer
488383afd1 avformat/avidec: add mp2 to the list of exceptions instead of generally treating dshow_block_align==1 special
Fixes Ticket4552

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-17 01:46:09 +02:00
Michael Niedermayer
b87dd7f82d ffmpeg: only apply last picture flush code at EOF
Fixes Ticket4562

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-17 00:34:08 +02:00
Michael Niedermayer
8e3b1f259e avfilter/buffersink: return EOF if closed link in av_buffersink_get_frame_flags()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-17 00:22:09 +02:00
Michael Niedermayer
bd8f2fa525 Merge commit '732dd658687bd9a2e5c622e38c481825b57af250'
* commit '732dd658687bd9a2e5c622e38c481825b57af250':
  doc: Add $branch to FATE config template

Conflicts:
	doc/fate.texi

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-16 21:14:01 +02:00
Michael Niedermayer
3fb726c6b4 avcodec/aacenc: use < 0 instead of != 0 for error checks
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-16 19:07:31 +02:00
Michael Niedermayer
2580bae54a avcodec/j2kenc: Use ret < 0 instead of ret != 0 for error checks
This is how most code in FFmpeg checks for failures

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-16 18:47:14 +02:00
Michael Niedermayer
da4ef13cb2 avformat/mux: use <0 instead of != 0 for error check of init_muxer()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-16 18:37:21 +02:00
Ronald S. Bultje
900e3af857 vp9: match another find_ref_mvs() bug in libvpx.
If we find a second non-sub8x8 motion vector for a non-first sub8x8
block, and the clamped value is identical to the first non-sub8x8
motion vector, then the resulting nearmv motion vector is forced to
zero.
2015-05-16 11:59:01 -04:00
Timothy Gu
732dd65868 doc: Add $branch to FATE config template
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-05-16 17:06:35 +02:00
Ronald S. Bultje
ccfb03ecc4 vp9: fix scaled motion vector clipping for sub8x8 blocks.
To match the obscure clipping bug behaviour in libvpx.
2015-05-16 08:36:19 -04:00
Michael Niedermayer
f8598cefe9 avdevice/v4l2: Fix vertical alignment in list_formats() output
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-16 14:35:36 +02:00
Michael Niedermayer
50393bce31 avformat/mov: Fix parsing short loci
Fixes Ticket4557

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-16 14:07:15 +02:00
Michael Niedermayer
9e4f0cfc8f avformat/mov: Print reason of loci parsing failure
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-16 14:06:25 +02:00
anatolschwarz
77cc0d5b59 ffmpeg: Support preserving the source key frame timings
Added option "source" to force_key_frames
2015-05-16 12:55:19 +02:00
Ronald S. Bultje
68c1e91316 vp9: improve signbias check.
Otherwise it will still scale motion vectors, which leads to corrupted
prediction.
2015-05-15 21:14:08 -04:00
Michael Niedermayer
3a91a07f15 ffmpeg: Remove another unneeded ost->filter_graph check
Fixes CID1241508

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-15 23:46:10 +02:00
Michael Niedermayer
3051e7fa71 avcodec/hevc: Fix typo in num_entry_point_offsets check
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-15 23:46:10 +02:00
Michael Niedermayer
c64b2d480b avcodec/libtheoraenc: Check for av_malloc failure
Fixes CID1257799

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-15 23:46:10 +02:00
Ronald S. Bultje
32b6d31ef3 vp9: don't allow compound references if error_resilience is enabled.
libvpx (probably accidentally) clears the bits if error_res is set,
along with keyframe/intraonly. This probably wasn't the intention
(since it's local data), but it's behaviour we have to copy...
2015-05-15 15:43:24 -04:00
Ronald S. Bultje
5de142d316 vp9: clamp segmented lflvl before applying ref/mode deltas. 2015-05-15 15:43:23 -04:00
Ronald S. Bultje
c81677e9b7 vp9: reset loopfilter mode/ref deltas on keyframe. 2015-05-15 15:43:23 -04:00
Ronald S. Bultje
88126916c8 vp9: fix crash when playing back 440/440 content with width%64<56. 2015-05-15 15:43:23 -04:00
Ronald S. Bultje
3e634e3e98 vp9: extend loopfilter workaround for vp9 h/v mix-up to work for 422. 2015-05-15 15:43:20 -04:00
Michael Niedermayer
e6ec65d2d3 avformat/rtsp: print a debug level note if time parsing fails
Fixes CID733718 again

This partly reverts commit eb7ddb5066.
2015-05-15 20:21:37 +02:00
Michael Niedermayer
ff1d85b0ed avcodec/svq1dec: Remove duplicate buf_size check
Fixes CID1297573

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-15 20:06:24 +02:00
Michael Niedermayer
fc624ec9ba avcodec/dcadec: Check active_bands
Fixes CID1297594 part2

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-15 18:29:40 +02:00
Michael Niedermayer
0f3e6959bf avcodec/dcadec: Check scale table index
Fixes CID1297594 part 1

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-15 18:27:49 +02:00
Michael Niedermayer
ade8a46154 avcodec/sonic: More completely check sample_rate_index and channels
Fixes CID1271783

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-15 17:31:58 +02:00
Michael Niedermayer
c131a9fead avcodec/sonic: check memory allocations
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-15 17:26:54 +02:00
Michael Niedermayer
cdd25f9a3d avcodec/smvjpegdec: check avcodec_decode_video2() return code
Fixes CID1271810

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-15 17:21:48 +02:00
Michael Niedermayer
294469416d avcodec/shorten: More complete pred_order check
Fixes CID1239055

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-15 17:02:28 +02:00
Michael Niedermayer
2d15588124 avcodec/shorten: Fix code depending on signed overflow behavior
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-15 16:58:51 +02:00
Michael Niedermayer
d201becfc0 avcodec/shorten: Check skip_bytes()
Fixes CID1210526

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-15 16:48:31 +02:00
Michael Niedermayer
c347f75d6b avcodec/put_bits: Remove dead code in put_bits()
Fixes CID1297574

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-15 16:19:53 +02:00
Michael Niedermayer
c4c6aea397 avcodec/proresdec2: Reset slice_count on deallocation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-15 15:23:32 +02:00
Michael Niedermayer
5e1d530f91 avcodec/vp9: Use separate memset for counts.eob
Makes no real difference, but maybe scares coverity less (CID1297578)

Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-15 13:03:52 +02:00
Michael Niedermayer
670702f91d ffmpeg: Print an error if avfilter_graph_queue_command() failed
Fixes CID1271809

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-15 12:41:28 +02:00
Michael Niedermayer
da2f156843 ffmpeg: remove unneeded ost->filter check
Fixes CID1241508

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-15 12:34:20 +02:00
Michael Niedermayer
3793caa5e2 avcodec/acelp_vectors: Assert that x is within the array in ff_set_fixed_vector()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-15 12:17:40 +02:00
Michael Niedermayer
dc4a621e9c avcodec/vp3: Cleanup order of operations for current_run check
This shouldnt make a difference

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-15 11:12:13 +02:00
Ronald S. Bultje
29045fbfd4 vp9: clip motion vectors in the same way as libvpx does.
The practical effect of this is that the scaling will wrongly not be
applied to the interpolation edge (the 3/4 constants in this patch).
In other words, we clip to the pre-scaling interpolation, even though
these should be clipped post-scaling. The resulting out-of-frame MVs
are thus automatically clipped within the visible portion of the frame,
which is probably not the intention, but is unfortunately what libvpx
does, so we need to copy that behaviour.
2015-05-14 22:13:46 -04:00
Michael Niedermayer
ca688de2c7 fate: increase the number of filtered frames to 20 for edgedetect* & hue
Suggested-by: ubitux
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-15 03:13:49 +02:00
Ronald S. Bultje
96a58a8daa vp9: set skip flag if the block had no coded coefficients.
This reproduces libvpx behaviour. It seems like it originally only
targeted loopfilter behaviour, but this unfortunately effects following
block contexting and thus directs bitstream sync.
2015-05-14 20:13:43 -04:00
Vignesh Venkatasubramanian
b5508f74b9 lavf/webmdashenc: fix unchecked strftime
Fix unchecked strftime return value. This patch fixes Coverity
CID 1295086.

Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-15 00:56:43 +02:00
Michael Niedermayer
47cbcf20d6 avcodec/h264_slice: Fix ranges in assert
Fixes CID1297592, CID1297593

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-15 00:30:32 +02:00
Michael Niedermayer
9f0b898e82 avcodec/dvbsubdec: Clear w/h/size on region buffer allocation failure
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-14 23:25:39 +02:00
Michael Niedermayer
8f1afde11d avcodec/diracdec: Make data_unit_size unsigned
Fixes CID1271788

with this change the value is more explicitly checked, it was fully checked
before though

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-14 23:18:49 +02:00
Ronald S. Bultje
1e4a77d001 vp9: apply mv scaling workaround only when subsampling is enabled. 2015-05-14 17:05:18 -04:00
Ronald S. Bultje
dc96c0f9fc vp9: read all 4x4 blocks in sub8x8 blocks individually with scalability. 2015-05-14 16:38:53 -04:00
Ronald S. Bultje
e12188e143 vp9: fix segmentation map referencing upon framesize change. 2015-05-14 16:37:49 -04:00
Michael Niedermayer
a9bf628bfd avcodec/dcadec: Check subsubframes
Fixes: CID1239152

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-14 21:29:19 +02:00
Michael Niedermayer
a6a45774d0 avcodec/dcadec: Check nchans
Fixes CID1239110

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-14 20:55:59 +02:00
Ronald S. Bultje
d32d0593f1 vp9: disable more pmulhrsw optimizations in idct16/32.
For idct16, only when called from a adst16x16 variant, so impact is
minor. For idct32, for all, so relatively major impact.
2015-05-14 14:15:27 -04:00
Ronald S. Bultje
96d30c3495 vp9: disable all pmulhrsw in 8/16 iadst x86 optimizations.
They all overflow in various samples that are considered valid input.
2015-05-14 13:39:37 -04:00
wm4
cc5e4bb484 hevc: make avcodec_decode_video2() fail if get_format() fails
Personally, I need the decoder to back out if get_format() returns no
usable pixel format. This didn't work because the error code was not
propagated down the call chain. This in turn happened because the
variable declaration removed in this patch shadowed the variable, whose
value is returned at the end of the function. Consequently, failures of
decode_nal_unit() were ignored in this place.

Reviewed-by:  Andreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-14 18:58:56 +02:00
Michael Niedermayer
f6b8b96607 avcodec/cavsdec: Use ff_set_dimensions()
Fixes CID1239111 part2

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-14 18:12:30 +02:00
Michael Niedermayer
c5c06e392b avcodec/cavsdec: Check frame_rate_code
Fixes CID1239111 part1

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-14 18:12:30 +02:00
Michael Niedermayer
139e1c8009 avcodec/cavsdec: Check esc_code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-14 17:56:16 +02:00
Nedeljko Babic
729466dc68 libavutil/softfloat: Add test case for av_add_sf
Recently normalization (av_normalize_sf) of output was added to av_add_sf.
This normalization is used for better precision for small values and the
purpose of this (quite simple) test case is to test difference between double
and softfloat.

The values used are tailored to maximally highlighte problem with precison when
normalization is not used.

Signed-off-by: Nedeljko Babic <nedeljko.babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-14 17:00:46 +02:00
Michael Niedermayer
019daa0775 avcodec/qdrw: Fix the code which asks for version 1 samples
The new code only asks for version 1 if its actually version 1 and
prints the version bytes if its something else

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-14 12:35:39 +02:00
Michael Niedermayer
5c8e4bf7c4 avcodec/qdrw: another try at skipping the first 512 bytes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-14 12:35:39 +02:00
Clément Bœsch
5c219e289e avcodec/srtdec: attempt to correct SubRip positioning
The positioning was completely wrong. First, the coordinates are
expressed in ASS playback resolution (which is by default 384x288).
Secondly, the coordinates define a drawing rectangle, not a moving area.
The previous code was making subtitles move from a random position to
another random position.

Here we rescale assuming the video resolution is a DVD one (720x480). We
can't really do anything better so far, but since this positioning
information is often from a DVD rip we can consider them relatively
safe.
2015-05-14 12:11:34 +02:00
Clément Bœsch
56bc0a6736 avcodec/ass: make default playback resolution available to decoders 2015-05-14 12:11:34 +02:00
Rong Yan
a2cd07d22a avcodec/ppc/h264dsp: POWER LE support in h264_idct_dc_add_internal() fix vec_lvsl bug
We got defective video when use GCC 4.9.2 instead of GCC 4.9.1 to compile FFMEPG. And further found
that GCC 4.8 and 4.9 need patch to fix the lvsl/lvsr bug on POWER LE, and GCC 5.1 contains
the correct code since its release. The message on gcc-patches requesting approval for lvsl/lvsr
patch is at https://gcc.gnu.org/ml/gcc-patches/2014-10/msg00228.html.

The fixed code avoids using lvsl and will not depends on GCC version, also it uses less instructions on POWER LE.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-14 11:08:07 +02:00
Shivraj Patil
8252f63d1b avcodec/mips: MSA (MIPS-SIMD-Arch) optimizations for HEVC uni hv mc functions
Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
Reviewed-by: Nedeljko Babic <Nedeljko.Babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-14 02:24:01 +02:00
Michael Niedermayer
88f29406b7 avformat/nutdec: Remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-14 02:23:08 +02:00
Timothy Gu
eaeb632198 nutdec: Remove unused label
Added in 361702660d. Modified version that
doesn't use this label merged in 55231323b0,
thus obsoleting this label.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-14 02:08:12 +02:00
Michael Niedermayer
50d878d930 avcodec/msrledec: Ask for sample that uses a branch with a unused byte
Finding out if this is correct or buggy is easiest with a sample

Fixes: CID1297620

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-14 01:16:49 +02:00
Michael Niedermayer
22f15f5735 avcodec/on2avc: Check run more carefully
Fixes CID1239106

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-14 01:01:35 +02:00
Michael Niedermayer
93cfa7d169 avcodec/mpeg4audio: add some padding/alignment to MAX_PCE_SIZE
This avoids potential accesses over the end

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-14 00:12:34 +02:00
Rainer Hochecker
adb7372f74 swr: fix alignment issue caused by 8ch sse functions
Fix crash when doing 8 ch conversion from apps compiled with MSVS
Thanks to Ronald for giving this hint:
https://ffmpeg.org/pipermail/ffmpeg-devel/2015-May/173049.html

Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-13 22:44:06 +02:00
Michael Niedermayer
cc48409b51 Merge commit 'e7c5e17d4fbd7c83fb331bf327e25ebd8e6a8623'
* commit 'e7c5e17d4fbd7c83fb331bf327e25ebd8e6a8623':
  vda: Make output CVPixelBuffer format configurable

Conflicts:
	doc/APIchanges
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-13 22:42:49 +02:00
Michael Niedermayer
a3adba358b Merge commit '3b5e5e6a29d62462d0505287042fa4c2b99c4f2b'
* commit '3b5e5e6a29d62462d0505287042fa4c2b99c4f2b':
  libx265: Use the Multi-library Interface

See: 94c20de429
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-13 22:32:13 +02:00
Michael Niedermayer
3bf81d3896 Merge commit '85ca012ba680bdf942d95ab98c74f6a28f447588'
* commit '85ca012ba680bdf942d95ab98c74f6a28f447588':
  mjpegenc: Fix JFIF header byte ordering

Conflicts:
	libavcodec/mjpegenc_common.c

See: b19313218c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-13 22:19:05 +02:00
Michael Niedermayer
53d2b69b72 Merge commit 'd84429d41e24437536907af1e6b73197ecf3f6db'
* commit 'd84429d41e24437536907af1e6b73197ecf3f6db':
  dnxhd: Print unknown header when found

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-13 22:11:04 +02:00
Michael Niedermayer
e5397513b9 Merge commit '8fc11abe1fea4f211cc7dbd58a173d1221627d90'
* commit '8fc11abe1fea4f211cc7dbd58a173d1221627d90':
  mkv: Print unsupported mov tags when found

Conflicts:
	libavformat/matroskadec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-13 22:04:02 +02:00
Michael Niedermayer
4b28907e4a avcodec/qdrw: cleanup skip code
Skip 512 byte sectors until a non zero resolution is found

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-13 21:49:21 +02:00
Michael Niedermayer
b6e8166a48 Merge commit '0348e74c01a099a3787ae21df1c2a742fc846163'
* commit '0348e74c01a099a3787ae21df1c2a742fc846163':
  quickdraw: Skip the empty 512 byte header for images

See: b453e76842
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-13 21:13:52 +02:00
Michael Niedermayer
5d9873ecda Merge commit 'd0dce15da34c0e4eee6c683be299de0221db00d3'
* commit 'd0dce15da34c0e4eee6c683be299de0221db00d3':
  quickdraw: Make the palette opaque

Conflicts:
	libavcodec/qdrw.c

See: 9f9a1f424e
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-13 20:38:49 +02:00
Andreas Cadhalpun
cb7c4f73e5 cafdec: free extradata before allocating it
This fixes a memleak if read_kuki_chunk is executed more than once.

Reviewed-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-05-13 20:11:37 +02:00
Andreas Cadhalpun
a3ede6b742 cafdec: check avio_read return value
If avio_read fails, the buffer can contain uninitialized values.

Reviewed-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-05-13 20:09:25 +02:00
Michael Niedermayer
81cf910856 avcodec/mjpegdec: fix len computation in ff_mjpeg_decode_dqt()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-13 18:36:50 +02:00
Michael Niedermayer
cf9ab119d0 avcodec/mjpegdec: Check len in ff_mjpeg_decode_dht()
Fixes CID1239167

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-13 17:44:35 +02:00
Stefano Pigozzi
e7c5e17d4f vda: Make output CVPixelBuffer format configurable
This is useful for client programs to ask for nv12 surfaces instead of the
current default (uyvy), since those are more efficient to decode to.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-05-13 17:39:37 +02:00
Michael Niedermayer
dc35a58149 avcodec/mjpegdec: Check len in ff_mjpeg_decode_dqt()
Fixes CID1239060

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-13 17:39:11 +02:00
Gopu Govindaswamy
3b5e5e6a29 libx265: Use the Multi-library Interface
Use the Multi-library interface to load at runtime x265 libraries
supporting alternative bit depths (e.g. 8bit and 16bit).

The linked library will try to load the library supporting the
pixel format if it is not supported by itself.

Fallback requesting the native library (passing 0 to x265_api_get) if
a library supporting the requested bit depth is not available.

Signed-off-by: Gopu Govindaswamy <gopu@multicorewareinc.com>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-05-13 17:14:50 +02:00
Michael Niedermayer
6d3f17838d avcodec/jpeglsdec: assert that overflows end at exactly x=w
If that ever was untrue, there would be a bug in the code

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-13 15:48:17 +02:00
Michael Niedermayer
f8f155a18a avcodec/jpeg2000dec: fix boolean operator
Fixes CID1271791 #7-6

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-13 15:15:55 +02:00
Michael Niedermayer
04da0d2586 avcodec/hevc_ps: Move log2_ctb_size checks up to prevent undefined shift operations
Fixes CID1292293

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-13 14:38:11 +02:00
Michael Niedermayer
65e5032955 avcodec/hevc_ps: Explicitly check num_tile_* for negative values
This fixes nothing but maybe helps coverity which does not see that this is failing later

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-13 14:26:17 +02:00
Michael Niedermayer
b195aa5d52 avcodec/hevc_ps: Check vps_num_hrd_parameters
Fix CID1239052 part2

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-13 14:26:17 +02:00
Michael Niedermayer
16c95b1073 avcodec/hevc_ps: More completely check vps_num_layer_sets
Fixes CID1239052  part1

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-13 14:26:17 +02:00
Michael Niedermayer
6679d5f29a avcodec/hevc: Simplify entry_point_offset parsing
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-13 14:26:17 +02:00
Michael Niedermayer
1c6ae98d4a avcodec/hevc: Check num_entry_point_offsets
Fixes CID1239099 part 2

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-13 14:26:17 +02:00
Michael Niedermayer
3e9d5e16ad avcodec/hevc: Check offset_len
Fixes CID1239099 part 1

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-13 14:26:17 +02:00
Dave Rice
6d787aea96 doc/ffprobe.xsd: add build_date and build_time as optional attributes
This partly undoes 7b35a01.

The intent of patch 7b35a01 was to no longer use build_date and
build_time as attributes of programVersion, but the patch also had the
effect of making all records generated with an earlier ffprobe build with
build_date and build_time as invalid.

This patch puts the two attributes back but without mandating their use,
thus older ffprobe records as backwards compatible with the current
schema and their use is no longer required.

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2015-05-13 12:35:16 +02:00
Dave Rice
b0294f0cfb doc/ffprobe.xsd: remove extra sequence from streamType
This makes the XSD valid again. Fixes a regression from a72b61a.

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2015-05-13 12:35:16 +02:00
Nick Lewycky
891df2a1ae libswscale/x86/hscale_fast_bilinear_simd.c: There's no need to save BX if it's in the clobber list.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-13 11:59:30 +02:00
Nick Lewycky
48e9f68384 libswscale/x86/hscale_fast_bilinear_simd.c: Include BX in the clobber list on x86_64, because it isn't implicitly included when PIC is on.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-13 11:59:12 +02:00
周晓勇
ce95c14cd4 configure: disabled -mips64 option for loongson and remove redundant cpuflags
1.Option -march=loongson3a conflicts with -mips64 or -mips64r2.
2.Option -mhard-float has been removed.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-13 11:34:59 +02:00
Andreas Cadhalpun
51f6455285 imgutils: initialize palette padding bytes in av_image_alloc
av_image_fill_pointers always aligns the palette, but the padding
bytes don't (and can't) get initialized in av_image_copy.

Thus initialize them in av_image_alloc.

This fixes 'Syscall param write(buf) points to uninitialised byte(s)'
valgrind warnings.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-13 03:58:08 +02:00
Andreas Cadhalpun
a7c0c79333 aacdec: remove a duplicated line
got_frame_ptr is set again after the if block.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-13 01:59:51 +02:00
Michael Niedermayer
00f5c8f98d avfilter/vf_zoompan: free out AVFrame on failure
Fixes: CID1197065

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-13 01:58:45 +02:00
Michael Niedermayer
93b0ee21a2 avcodec/hevc_sei: Check num_sps_ids_minus1 value
Fixes CID1271794

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-13 01:42:52 +02:00
Michael Niedermayer
8a62b80ce6 avcodec/vqavideo: Check chunk size
Fixes CID1239154

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-13 00:41:38 +02:00
Andreas Cadhalpun
ec38a1ba40 aacdec: don't return frames without data
Since commit 676a395a aac->frame->data is not necessarily allocated at
the end of aac_decode_frame_int if avctx->channels is 0.

In this case a bogus frame without any data, but non-zero nb_samples is
returned.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-12 21:19:35 +02:00
Michael Niedermayer
d3c9f1fdbe avfilter/avf_showcqt: Fix gamma comparisons
Fixes CID1297587, CID1297586, 1297585

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-12 20:31:21 +02:00
Michael Niedermayer
0d05406482 avfilter/vf_cover_rect: Handle the case where the cover rectangle is as large as the input
Fixes division by 0
Fixes CID1297575

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-12 20:19:47 +02:00
Michael Niedermayer
1431b4cf77 avfilter/vf_fftfilt: Add MAX_PLANES and change it to 4
The 4th planes is currently unused as no formats with alpha are supported yet

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-12 20:08:18 +02:00
Michael Niedermayer
b62b3292d8 avformat/hevc: Check num_negative_pics and num_positive_pics
Fixes CID1238994

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-12 19:28:15 +02:00
Michael Niedermayer
2cddc0b19a avformat/hevc: Check cpb_cnt_minus1
Fixes CID1239014

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-12 19:09:06 +02:00
Michael Niedermayer
7a27aa15ec avformat/hls: Handle read_buffer allocation failure
Fixes CID1297576

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-12 19:03:18 +02:00
Michael Niedermayer
70e022cfc5 avformat/idcin: Remove redundant chunk size check
Fixes CID1138438

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-12 18:40:16 +02:00
Michael Niedermayer
171af59d58 avformat/matroskadec: Cleanup error handling for bz2 & zlib
Fixes CID703652

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-12 18:34:26 +02:00
Michael Niedermayer
56abf35151 avformat/nutdec: Fix use of uinitialized value
Fixes CID1041175

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-12 18:20:23 +02:00
Michael Niedermayer
a23379a0a6 avformat/rtpdec_xiph: Move pkt_len onto one side of the check
This is more correct
Fixes CID1271793

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-12 18:07:32 +02:00
Michael Niedermayer
aa5169935e avformat/rtpdec_xiph: Check upper bound on len in xiph_handle_packet()
Larger packets are not supported and would cause problems later

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-12 18:03:55 +02:00
Michael Niedermayer
81198a6837 avformat/rtpenc_jpeg: Check remaining buffer size for SOS
Fixes CID1238818

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-12 17:55:40 +02:00
Shiina Hideaki
85ca012ba6 mjpegenc: Fix JFIF header byte ordering
The header had a wrong version description.

Bug-Id: 808
Signed-off-by: Shiina Hideaki <shiina@yndrd.com>
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-05-12 16:30:48 +01:00
Vittorio Giovara
d84429d41e dnxhd: Print unknown header when found 2015-05-12 16:30:48 +01:00
Vittorio Giovara
8fc11abe1f mkv: Print unsupported mov tags when found 2015-05-12 15:28:31 +01:00
Vittorio Giovara
0348e74c01 quickdraw: Skip the empty 512 byte header for images
Found-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
2015-05-12 15:28:31 +01:00
Carl Eugen Hoyos
d0dce15da3 quickdraw: Make the palette opaque
Additional overflow fix by Michael Niedermayer <michaelni@gmx.at>.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-05-12 15:28:31 +01:00
Michael Niedermayer
c3671e1d57 avformat/riffenc: Use size_t for strlen in ff_riff_write_info_tag()
Also dont generated corrupted output for larger than 4gb strings

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-12 14:15:31 +02:00
Paul B Mahol
94e293a83c avfilter/af_aphaser: reject too small delay
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-05-12 12:04:09 +00:00
Marton Balint
93cc5ca7ed lavf/img2dec: add option to disable pattern matching
Signed-off-by: Marton Balint <cus@passwd.hu>
Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-12 13:32:23 +02:00
Michael Niedermayer
37efad4e5b fate: Test pullup and fieldmatch with 5 instead of 1 frame
Reviewed-by: Clément Bœsch <u@pkh.me>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-12 12:29:47 +02:00
Michael Niedermayer
2ce2462ba8 Merge commit 'da5c6a97bbfe34d4b30a89e72150dd400299ddce'
* commit 'da5c6a97bbfe34d4b30a89e72150dd400299ddce':
  riff: Add MultiScope II fourcc MSC2 as MJPEG

See: e31cdb5cc8
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-12 12:17:59 +02:00
Michael Niedermayer
85bbe1dbd1 Merge commit '0670acc4f1c4ceb16968818a654e07a3f550a8c9'
* commit '0670acc4f1c4ceb16968818a654e07a3f550a8c9':
  dca_parser: Extend DTS core sync word and fix existing check

Conflicts:
	libavcodec/dca_parser.c

See: e80b2b9c81
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-12 12:07:19 +02:00
Michael Niedermayer
acf4925f44 tools/graph2dot: use larger data types than int for array/string sizes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-12 04:01:25 +02:00
Michael Niedermayer
59db9e6949 avformat/internal: Fix warning about struct declaration
Moving ffio_open2_wrapper() to internal as it uses AVFormatContext

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-12 03:24:19 +02:00
Carl Eugen Hoyos
da5c6a97bb riff: Add MultiScope II fourcc MSC2 as MJPEG
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-05-12 03:22:18 +02:00
foo86
0670acc4f1 dca_parser: Extend DTS core sync word and fix existing check
The previous version checked for 14-bit streams and did not properly
work across buffer boundaries.

Use the 64-bit parser state to make extended sync word detection work
across buffer boundary and check the extended sync word for 16-bit LE
and BE core streams to reduce probability of alias sync detection.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-05-12 03:20:25 +02:00
Michael Niedermayer
3ecc063322 avcodec/hevc: Fix order of operations in hls_decode_neighbour()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-12 00:52:03 +02:00
Michael Niedermayer
62a1e0035a avformat/mlvdec: Use AVFormatContext->open_cb()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-11 22:53:12 +02:00
Michael Niedermayer
a228f7d5e5 avformat/avformat: slightly more verbose documentation for open_cb()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-11 22:33:48 +02:00
Michael Niedermayer
77ccc9145a avformat/mov: Use open_cb() if set
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-11 21:56:53 +02:00
Michael Niedermayer
541d75f9a0 avformat: add callback for opening further files
Previous version reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-11 21:55:18 +02:00
Andreas Cadhalpun
0382c94f13 id3v2: catch avio_read errors in check_tag
Since len is an unsigned int, the comparison is currently treated as
unsigned and thus ignores all errors from avio_read.

Thus cast len to int, which is unproblematic, because at that point len
is between 0 and 4.

This fixes 'Conditional jump or move depends on uninitialised value'
valgrind warnings in is_tag.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-11 20:21:48 +02:00
Michael Niedermayer
ae4eea8be4 avutil/avstring: Use size_t in av_strlcatf()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-11 20:01:15 +02:00
Michael Niedermayer
2b97cc2e5b avformat/mov: Pass MovContext into mov_open_dref()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-11 18:12:24 +02:00
Gopu Govindaswamy
94c20de429 avcodec/libx265: use x265 Multi-library Interface to query the API
ffmpeg can now use the x265 multi-library interface to make a runtime
selection between a number of libx265 libraries (perhaps 8bpp and 16bpp).

ffmpeg will link to one build of libx265 (statically or
dynamically) and this linked version of libx265 will support one
bit-depth (8 or 10 bits). At runtime, ffmpeg now has the option to request the
encoder to use a different bit depth(8 or 10). If the requested bitdepth
is zero, or if it matches the bitdepth of the system default libx265 (the
currently linked library), then this library will be used for encode.
If ffmpeg requests a different bit-depth, the linked libx265 will attempt
to dynamically bind a shared library with the requested bit-depth from the install
location (default or user-specified).

new x265 API:
     const x265_api* api = x265_api_get(int bitDepth);
     x265_api - holds the libx265 public API functions
     bitDepth - requested API for 8bpp or 16bpp

     note: Use 0 to indicate native bit depth of the linked libx265 and
           x265_api_get(0) is guaranteed to return a non-null pointer

Signed-off-by: Gopu Govindaswamy <gopu@multicorewareinc.com>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-05-11 16:15:23 +01:00
Michael Niedermayer
ab6dc86343 avformat/vorbiscomment: Use 64bit int for ff_vorbiscomment_length()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-11 15:56:16 +02:00
Michael Niedermayer
66f26b3e8e avformat/matroskaenc: Check ff_vorbiscomment_length in put_flac_codecpriv()
Its currently guaranteed to be smaller but its safer to check anyway

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-11 15:56:16 +02:00
Michael Niedermayer
0db5b2b9f8 avformat/oggenc: Check ff_vorbiscomment_length in ogg_write_vorbiscomment()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-11 15:56:16 +02:00
Michael Niedermayer
40a7700b82 avformat/flacenc: Check length in flac_write_block_comment()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-11 15:31:55 +02:00
Michael Niedermayer
eca38864a6 avformat/vorbiscomment: Check entry length in ff_vorbiscomment_write()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-11 15:23:51 +02:00
Michael Niedermayer
a633928d47 avformat/subtitles: Use size_t for len
string length could theoretically be larger than int

Reviewed-by: Clément Bœsch <u@pkh.me>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-11 12:42:38 +02:00
Michael Niedermayer
17b26308a2 avformat/matroskadec: Use size_t for the variable holding a strlen() value.
Should make no difference but is more correct

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-11 04:05:20 +02:00
Michael Niedermayer
95efc65129 avformat/url: Use size_t for len from strlen()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-11 03:50:01 +02:00
Michael Niedermayer
28b7d7a36d Merge commit 'b8d2630c5327d2818d05c8a48be0417905d8e0fd'
* commit 'b8d2630c5327d2818d05c8a48be0417905d8e0fd':
  dashenc: Reduce the segment duration if cutting out parts with edit lists

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-11 01:56:11 +02:00
Michael Niedermayer
ae99f06e5a Merge commit 'ac1a1cb948fe29975424e367173b88db48792144'
* commit 'ac1a1cb948fe29975424e367173b88db48792144':
  dashenc: replace attribute id with contentType for the AdaptationSet element

See: 32a4177a62
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-11 01:46:32 +02:00
James Almer
32a4177a62 dashenc: replace attribute id with contentType for the AdaptationSet element
id should be an integer, not a string. It is also optional, so use
contentType instead which is the proper attribute for these values.

This addresses ticket #4545, fixing an MPD validation error.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-11 01:37:39 +02:00
Michael Niedermayer
8d916ef5f7 fate: Use more than 5 frames for testing select and idet filters
Testing these filters with just 5 frames could potentially be
insufficient

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-10 23:32:11 +02:00
Michael Niedermayer
5e19651c9d Merge commit '2fb02ecfd115a627f22df21720aa0bd4f6fcee8b'
* commit '2fb02ecfd115a627f22df21720aa0bd4f6fcee8b':
  fate: Reduce the number of frames used to test video filters

Conflicts:
	tests/fate-run.sh
	tests/ref/fate/filter-crop
	tests/ref/fate/filter-crop_scale
	tests/ref/fate/filter-crop_scale_vflip
	tests/ref/fate/filter-crop_vflip
	tests/ref/fate/filter-null
	tests/ref/fate/filter-pixdesc-abgr
	tests/ref/fate/filter-pixdesc-argb
	tests/ref/fate/filter-pixdesc-bgr24
	tests/ref/fate/filter-pixdesc-bgr444be
	tests/ref/fate/filter-pixdesc-bgr444le
	tests/ref/fate/filter-pixdesc-bgr48be
	tests/ref/fate/filter-pixdesc-bgr48le
	tests/ref/fate/filter-pixdesc-bgr4_byte
	tests/ref/fate/filter-pixdesc-bgr555be
	tests/ref/fate/filter-pixdesc-bgr555le
	tests/ref/fate/filter-pixdesc-bgr565be
	tests/ref/fate/filter-pixdesc-bgr565le
	tests/ref/fate/filter-pixdesc-bgr8
	tests/ref/fate/filter-pixdesc-bgra
	tests/ref/fate/filter-pixdesc-gbrap
	tests/ref/fate/filter-pixdesc-gbrp
	tests/ref/fate/filter-pixdesc-gbrp10be
	tests/ref/fate/filter-pixdesc-gbrp10le
	tests/ref/fate/filter-pixdesc-gbrp9be
	tests/ref/fate/filter-pixdesc-gbrp9le
	tests/ref/fate/filter-pixdesc-gray
	tests/ref/fate/filter-pixdesc-gray16be
	tests/ref/fate/filter-pixdesc-gray16le
	tests/ref/fate/filter-pixdesc-monob
	tests/ref/fate/filter-pixdesc-monow
	tests/ref/fate/filter-pixdesc-nv12
	tests/ref/fate/filter-pixdesc-nv21
	tests/ref/fate/filter-pixdesc-rgb24
	tests/ref/fate/filter-pixdesc-rgb444be
	tests/ref/fate/filter-pixdesc-rgb444le
	tests/ref/fate/filter-pixdesc-rgb48be
	tests/ref/fate/filter-pixdesc-rgb48le
	tests/ref/fate/filter-pixdesc-rgb4_byte
	tests/ref/fate/filter-pixdesc-rgb555be
	tests/ref/fate/filter-pixdesc-rgb555le
	tests/ref/fate/filter-pixdesc-rgb565be
	tests/ref/fate/filter-pixdesc-rgb565le
	tests/ref/fate/filter-pixdesc-rgb8
	tests/ref/fate/filter-pixdesc-rgba
	tests/ref/fate/filter-pixdesc-uyvy422
	tests/ref/fate/filter-pixdesc-yuv410p
	tests/ref/fate/filter-pixdesc-yuv411p
	tests/ref/fate/filter-pixdesc-yuv420p
	tests/ref/fate/filter-pixdesc-yuv420p10be
	tests/ref/fate/filter-pixdesc-yuv420p10le
	tests/ref/fate/filter-pixdesc-yuv420p16be
	tests/ref/fate/filter-pixdesc-yuv420p16le
	tests/ref/fate/filter-pixdesc-yuv420p9be
	tests/ref/fate/filter-pixdesc-yuv420p9le
	tests/ref/fate/filter-pixdesc-yuv422p
	tests/ref/fate/filter-pixdesc-yuv422p10be
	tests/ref/fate/filter-pixdesc-yuv422p10le
	tests/ref/fate/filter-pixdesc-yuv422p16be
	tests/ref/fate/filter-pixdesc-yuv422p16le
	tests/ref/fate/filter-pixdesc-yuv422p9be
	tests/ref/fate/filter-pixdesc-yuv422p9le
	tests/ref/fate/filter-pixdesc-yuv440p
	tests/ref/fate/filter-pixdesc-yuv444p
	tests/ref/fate/filter-pixdesc-yuv444p10be
	tests/ref/fate/filter-pixdesc-yuv444p10le
	tests/ref/fate/filter-pixdesc-yuv444p16be
	tests/ref/fate/filter-pixdesc-yuv444p16le
	tests/ref/fate/filter-pixdesc-yuv444p9be
	tests/ref/fate/filter-pixdesc-yuv444p9le
	tests/ref/fate/filter-pixdesc-yuva420p
	tests/ref/fate/filter-pixdesc-yuva420p10be
	tests/ref/fate/filter-pixdesc-yuva420p10le
	tests/ref/fate/filter-pixdesc-yuva420p16be
	tests/ref/fate/filter-pixdesc-yuva420p16le
	tests/ref/fate/filter-pixdesc-yuva420p9be
	tests/ref/fate/filter-pixdesc-yuva420p9le
	tests/ref/fate/filter-pixdesc-yuva422p
	tests/ref/fate/filter-pixdesc-yuva422p10be
	tests/ref/fate/filter-pixdesc-yuva422p10le
	tests/ref/fate/filter-pixdesc-yuva422p16be
	tests/ref/fate/filter-pixdesc-yuva422p16le
	tests/ref/fate/filter-pixdesc-yuva422p9be
	tests/ref/fate/filter-pixdesc-yuva422p9le
	tests/ref/fate/filter-pixdesc-yuva444p
	tests/ref/fate/filter-pixdesc-yuva444p10be
	tests/ref/fate/filter-pixdesc-yuva444p10le
	tests/ref/fate/filter-pixdesc-yuva444p16be
	tests/ref/fate/filter-pixdesc-yuva444p16le
	tests/ref/fate/filter-pixdesc-yuva444p9be
	tests/ref/fate/filter-pixdesc-yuva444p9le
	tests/ref/fate/filter-pixdesc-yuvj420p
	tests/ref/fate/filter-pixdesc-yuvj422p
	tests/ref/fate/filter-pixdesc-yuvj440p
	tests/ref/fate/filter-pixdesc-yuvj444p
	tests/ref/fate/filter-pixdesc-yuyv422
	tests/ref/fate/filter-pixdesc-yvyu422
	tests/ref/fate/filter-pixfmts-copy
	tests/ref/fate/filter-pixfmts-crop
	tests/ref/fate/filter-pixfmts-hflip
	tests/ref/fate/filter-pixfmts-null
	tests/ref/fate/filter-pixfmts-pad
	tests/ref/fate/filter-pixfmts-scale
	tests/ref/fate/filter-pixfmts-vflip
	tests/ref/fate/filter-scale200
	tests/ref/fate/filter-scale500
	tests/ref/fate/filter-vflip
	tests/ref/fate/filter-vflip_crop
	tests/ref/fate/filter-vflip_vflip

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-10 23:09:06 +02:00
Michael Niedermayer
1cf81a2c50 Merge commit '379e5603f4131e677ecf5ba79973dcd5603f28ea'
* commit '379e5603f4131e677ecf5ba79973dcd5603f28ea':
  id3v2: Do not export empty APIC description

Conflicts:
	libavformat/id3v2.c

See: b697b297b7
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-10 22:51:38 +02:00
Michael Niedermayer
f230451b7a Merge commit 'b9f7a677083647d85e583d6d7384938766a293d7'
* commit 'b9f7a677083647d85e583d6d7384938766a293d7':
  png: Set the color range as full range

Conflicts:
	libavcodec/pngdec.c

See: 72e7553125
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-10 22:42:56 +02:00
Michael Niedermayer
55231323b0 Merge commit '254f3daba4271c1918d9a7ad155b1442ef93ed29'
* commit '254f3daba4271c1918d9a7ad155b1442ef93ed29':
  nut: Make sure to clean up on read_header failure

Conflicts:
	libavformat/nutdec.c

See: 361702660d
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-10 22:31:39 +02:00
Michael Niedermayer
73b8155b31 Merge commit '4d0ee4962be7e07cdc038a78008ef2e4e47e5f81'
* commit '4d0ee4962be7e07cdc038a78008ef2e4e47e5f81':
  avi: Validate sample_size

Conflicts:
	libavformat/avidec.c

See: ca234639ac
See: c7369f3a4b
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-10 22:20:37 +02:00
Michael Niedermayer
8b0ceb96da Merge commit 'b34257eefd98cb768ea2f53a390b8684d51e689a'
* commit 'b34257eefd98cb768ea2f53a390b8684d51e689a':
  nut: Check chapter creation in decode_info_header

Conflicts:
	libavformat/nutdec.c

See: 3ff1af2b0d
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-10 22:09:48 +02:00
Michael Niedermayer
ce1c0e99e9 Merge commit '243e8443cd9e83c887e3f5edf09a169e7783d14e'
* commit '243e8443cd9e83c887e3f5edf09a169e7783d14e':
  alac: Reject rice_limit 0 if compression is used

Conflicts:
	libavcodec/alac.c

See: 4b657a1b1e
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-10 22:00:40 +02:00
Martin Storsjö
b8d2630c53 dashenc: Reduce the segment duration if cutting out parts with edit lists
This makes sure that the time + duration of the first segment
matches the start time of the next segment for e.g. AAC audio
with encoder delay.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-05-10 22:57:21 +03:00
James Almer
ac1a1cb948 dashenc: replace attribute id with contentType for the AdaptationSet element
id should be an integer, not a string. It is also optional, so use
contentType instead which is the proper attribute for these values.

This fixes an MPD validation error.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-05-10 22:57:20 +03:00
Michael Niedermayer
918c5ea4d3 Merge commit '295e05a762332c5edcc84c325e94457815a51b5c'
* commit '295e05a762332c5edcc84c325e94457815a51b5c':
  ape: Support _0000 files with nblock smaller than 64

Conflicts:
	libavcodec/apedec.c

See: 699341d647
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-10 21:42:08 +02:00
Michael Niedermayer
004564c930 avformat/wavenc: Check umid length
Fixes potential out of array read

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-10 20:03:36 +02:00
Michael Niedermayer
ecb4ae7879 avformat/wavenc: fix string length variable types
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-10 19:52:30 +02:00
Michael Niedermayer
d0b294286c avcodec/ppc/h264qpel_template: Fix alignment assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-10 18:09:39 +02:00
Michael Niedermayer
07cb6bf985 postproc/postprocess: Use size_t to hold strlen()s value
This should make no difference but its more correct

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-10 16:28:37 +02:00
Michael Niedermayer
d66b623ad0 avformat/nutenc: Fix writing strings larger than 2gb
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-10 16:26:58 +02:00
Michael Niedermayer
4c128ea162 avutil/dict: Use size_t for appending strings
the string length is not constrained to INT_MAX

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-10 16:09:07 +02:00
Michael Niedermayer
4950bd4ebe libavutil/mem: use size_t for the length in av_strdup()
the string length is not constrained to INT_MAX

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-10 16:06:50 +02:00
Michael Niedermayer
54e64eaf68 swscale/x86/swscale: Fix warning about loosing significant bits in cast
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-10 15:09:04 +02:00
Michael Niedermayer
a649f36f75 avformat/http: Mark lower_proto as const in http_listen()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-10 15:01:36 +02:00
Michael Niedermayer
3d65570f25 avformat/mxf: Always evaluate PRINT_KEY() arguments at compile time
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-10 14:39:27 +02:00
Michael Niedermayer
8b42b22222 avformat/mxf: Simplify PRINT_KEY()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-10 14:39:26 +02:00
Michael Niedermayer
729108515d avcodec/snowenc: set dia_size for the first pass of motion estimation too
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-10 14:19:56 +02:00
Luca Barbato
2fb02ecfd1 fate: Reduce the number of frames used to test video filters
Use 5 frames for video filter tests and a single one for the
pixelformat tests.

Greatly reduces the test duration without reducing coverage.
2015-05-10 13:49:30 +02:00
Reimar Döffinger
5af621278d avformat_alloc_context: initialize raw_packet_buffer_remaining_size.
This currently works for most users because
avformat_open_input sets it, but this patch fixes any
applications not using that function.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2015-05-10 08:47:53 +02:00
Michael Niedermayer
58201c6e9e avcodec/snowenc: correct fullpel search pattern
No real difference in quality, its a bit slower for the same dia_size as more
vectors are searched for the same dia_size

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-10 02:38:05 +02:00
Michael Niedermayer
db6d0a5bd2 avcodec/snowenc: Fix used reference MV in fullpel iterative ME
This very very slightly improves quality, no measurable speed change

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-10 01:05:42 +02:00
Michael Niedermayer
f349703e1d avcodec/snowenc: change log level for iterative ME information to debug level
The printed stuff should be useless to the average user and its certainly
not an error.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-10 00:46:02 +02:00
Michael Niedermayer
b62297805b avcodec/snowenc: add intra_penalty AVOption
This allows favoring intra or inter blocks by a user specified amount.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-09 23:52:36 +02:00
Michael Niedermayer
cf31e2df08 avcodec/mpegvideo: Fix null pointer dereference with grayscale decoding with mpeg2_field_encoding.ts
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-09 17:10:26 +02:00
Michael Niedermayer
33529104e5 avcodec/mpeg12dec: Fix "-flags +gray"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-09 15:58:02 +02:00
wm4
379e5603f4 id3v2: Do not export empty APIC description
APIC tags always have a description. Tag writers obviously leave it
empty if there is no description. In this case, libavformat would export
"" as title. Do not set the title instead.
2015-05-09 15:55:50 +02:00
wm4
b9f7a67708 png: Set the color range as full range
The format uses full range for the gray formats.

CC: libav-stable@libav.org
2015-05-09 15:55:50 +02:00
Luca Barbato
254f3daba4 nut: Make sure to clean up on read_header failure
Based on Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com> work.

CC: libav-stable@libav.org
2015-05-09 15:55:50 +02:00
Andreas Cadhalpun
4d0ee4962b avi: Validate sample_size
And either error out or set it to 0 if it is negative.

CC: libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-05-09 15:51:31 +02:00
Michael Niedermayer
876c89a88f cmdline: Check options array for not working flag combinations
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-09 13:07:21 +02:00
Michael Niedermayer
107e4da476 ffmpeg_opt: Fix -timestamp parsing
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-09 13:07:00 +02:00
Michael Niedermayer
9ba5dd37a9 avcodec/mpegvideo: Fix indention
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-09 12:03:36 +02:00
Michael Niedermayer
5c8809b45b avcodec/error_resilience: support grayscale
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-09 02:42:47 +02:00
Michael Niedermayer
82a6e18bbb avcodec/mpegvideo: Fix -flags +gray with xvid_vlc_trac7411.h263
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-09 01:36:53 +02:00
Michael Niedermayer
9025bc588a avcodec/h263dec: use PIX_FMT_GRAY8 when the user specified CODEC_FLAG_GRAY
Fixes Ticket4542

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-09 01:13:55 +02:00
Michael Niedermayer
d1d8ee5e91 avdevice/v4l2: Try to fix build on netbsd/openbsd
Found-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-09 00:27:00 +02:00
Giorgio Vazzana
28f20d2ff4 lavd/v4l2: produce a 0 byte packet when a dequeued buffer is flagged with V4L2_BUF_FLAG_ERROR
Fixes ticket #4030.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-08 22:31:09 +02:00
Michael Niedermayer
982e7bbfa6 avcodec/vc1: Skip chroma operations if CODEC_FLAG_GRAY is set
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-08 20:32:15 +02:00
Giorgio Vazzana
23e6cf832f lavd/v4l2: fix typo
This was introduced in cde6e328de

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-08 18:02:28 +02:00
Ronald S. Bultje
c97d30f02f vp9: de-duplicate some functions that are identical between 10/12 bpp.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-08 14:42:01 +02:00
周晓勇
ba1f56ae9b configure: remove loongson check inline asm and mips dependent
1.Loongson now have two series CPU supported MMI(Multi-Media Instruct).
  Loongson-3 designed multi-core have good performance in decoding.
  Loongson-2's support is comming soon.
2.Replaced loongson with loongson2 and loongson3.

Signed-off-by: ZhouXiaoyong <zhouxiaoyong@loongson.cn>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-08 14:33:40 +02:00
周晓勇
b6d8afd820 configure: replace arch loongson with arch extra list loongson
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-08 14:01:38 +02:00
Andreas Cadhalpun
b34257eefd nut: Check chapter creation in decode_info_header
This fixes a segmentation fault when accessing the metadata.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>

CC: libav-stable@libav.org
2015-05-08 11:10:51 +02:00
Andreas Cadhalpun
243e8443cd alac: Reject rice_limit 0 if compression is used
If in compression mode rice_limit = 0 leads to call
`show_bits(gb, k)` in `decode_scalar` with k = 0.

Request a sample in case it is valid and it should be accepted.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>

CC: libav-stable@libav.org
2015-05-08 11:10:51 +02:00
Andreas Cadhalpun
295e05a762 ape: Support _0000 files with nblock smaller than 64
The decode_array_0000 assumed that 64 is the minimal block size
while it is not.

CC: libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-05-08 11:10:51 +02:00
wm4
b697b297b7 id3v2: do not export APIC description if empty
APIC tags always have a description. Tag writers obviously leave it
empty if there is no description. In this case, libavformat would export
"" as title. Do not set the title instead.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-08 01:07:13 +02:00
wm4
72e7553125 pngdec: set correct range
AV_PIX_FMT_GRAY8/16 are considered YUV formats, and the color_range is
not set - so the API user will have to assume limitted range. (Unless
the API user adds a special-case for the PNG decoder.)

Just export the correct range - full range.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-08 00:44:06 +02:00
Michael Niedermayer
3b12335395 swscale/x86/hscale_fast_bilinear_simd: Remove ancient out-commented debug code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-07 23:58:08 +02:00
James Almer
28eaf46da9 doc/APIchanges: fill missing versions and hashes
Signed-off-by: James Almer <jamrial@gmail.com>
2015-05-07 18:56:26 -03:00
James Almer
e0a403e1c2 vp9: add missing changelog and APIchanges entries for new VP9 profiles
Signed-off-by: James Almer <jamrial@gmail.com>
2015-05-07 18:35:12 -03:00
Tom Butterworth
288dc5b4a1 avcodec/s3tc: fix alpha decoding when dimensions are not a multiple of 4
Fix alpha position error for edge blocks of odd-dimensioned frames

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-07 23:10:56 +02:00
Michael Niedermayer
b1b0baa3d6 avcodec/g2meet: Check init_get_bits8() return value
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-07 22:50:39 +02:00
Michael Niedermayer
43e94d5af4 avcodec/g2meet: Use init_get_bits8()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-07 22:50:23 +02:00
Michael Niedermayer
5f0ebe865c ffprobe: Use av_packet_side_data_name() to find the side data name
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-07 21:20:26 +02:00
Michael Niedermayer
a7dd933b81 avcodec: Add av_packet_side_data_name()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-07 21:01:37 +02:00
Michael Niedermayer
daea320969 avcodec/txd: Fix input size checks for dxt1/3 for dimensions % 4 != 0
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-07 19:11:01 +02:00
Tom Butterworth
873d7e0e63 avcodec/s3tc: fix decoding when dimensions are not a multiple of 4
Image dimensions were rounded down causing rows to wrap early if dimensions were not a multiple of 4.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-07 18:32:36 +02:00
Andreas Cadhalpun
584cc1ade1 aacsbr: break infinite loop in sbr_hf_calc_npatches
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-07 17:32:23 +02:00
Shivraj Patil
7174df44fe avcodec/mips: MSA (MIPS-SIMD-Arch) optimizations for HEVC uni copy, uni horizontal and uni vertical mc functions
Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
Reviewed-by: Nedeljko Babic <Nedeljko.Babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-07 16:47:34 +02:00
James Almer
aa70801aaf ripemd: move ripemd{256, 320} into separate functions
This allows the removal of a few branches.

Before:
lavu       RIPEMD-160   size: 1048576  runs:   1024  time:    7.052 +- 0.010

After:
lavu       RIPEMD-160   size: 1048576  runs:   1024  time:    6.865 +- 0.015

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-07 15:40:56 +02:00
Michael Niedermayer
cc77bb09e4 avcodec/x86/vp9dsp_init: Fix mix of declaration and statement
Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-07 14:33:10 +02:00
Michael Niedermayer
a6153977df avcodec/vp9dsp: Replace assert by av_assert0()
Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-07 14:32:50 +02:00
Michael Niedermayer
b28d5c49f7 Merge remote-tracking branch 'rbultje/vp9-profile23-wip'
* rbultje/vp9-profile23-wip:
  libvpxdec: add 440 pixfmts.
  vp9: add profile 2/3 fate tests.
  vp9: add inter-frame profile 2/3 suport.
  vp9: add keyframe profile 2/3 support.
  vp9: parse profile 2/3 bitdepth in frame header.
  vp9: add profile 2/3 to exported profiles.
  fate: add/update reference files for 440 addition.
  swscale: add yuv440p10/12 pixfmts.
  lavc: add yuv440p10/12 formats to aligned pixfmt list.
  lavu: add yuv440p10/12 pixfmts.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-07 13:22:04 +02:00
Ronald S. Bultje
2293ec6ab3 libvpxdec: add 440 pixfmts. 2015-05-07 07:19:52 -04:00
Ronald S. Bultje
b8077d7a3b vp9: add profile 2/3 fate tests. 2015-05-07 07:19:49 -04:00
Michael Niedermayer
9253cc496a avcodec/diracdec: Replace default_bsep[] by multiplication
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-07 05:07:55 +02:00
Michael Niedermayer
21b30947f2 swscale/x86/hscale_fast_bilinear_simd: Fix variable names in comments
Found-by: Nick Lewycky <nlewycky@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-07 03:57:21 +02:00
Michael Niedermayer
5f2b4a2f6a Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  lavf/img2dec: Autodetect qdraw images.
  lavc/qdrw: Also support real-world qdraw images.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-07 01:59:22 +02:00
Michael Niedermayer
bc6f84fff7 avdevice/dshow_capture: avoid #ifdef, use ff_dlog() for dshowdebug()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-07 01:49:54 +02:00
Carl Eugen Hoyos
2279de6eca lavf/img2dec: Autodetect qdraw images. 2015-05-07 01:21:08 +02:00
Carl Eugen Hoyos
b453e76842 lavc/qdrw: Also support real-world qdraw images. 2015-05-07 01:21:08 +02:00
Michael Niedermayer
223a859853 swresample/dither_template: Do not define macro functions to nothing
This avoids potential warnings

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-07 01:07:30 +02:00
Michael Niedermayer
3e14ed05f1 avformat/internal: always check arguments of hex_dump_debug()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-07 01:05:45 +02:00
Michael Niedermayer
374cf93548 avformat/asfdec: do not define print_guid() to nothing
This avoid potential warnings

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-07 00:54:06 +02:00
Michael Niedermayer
0c015aa95c avcodec/tableprint_vlc: Do not define functions to nothing
This avoids potential warnings

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-07 00:52:47 +02:00
Michael Niedermayer
2284c38e4c Merge commit 'e0010bb91fc0b067be8aefd2f77e6838537da433'
* commit 'e0010bb91fc0b067be8aefd2f77e6838537da433':
  mux: Do not leave stale side data pointers in ff_interleave_add_packet()

Conflicts:
	libavformat/mux.c

See: bfb3ed1a9d
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-06 22:37:18 +02:00
Michael Niedermayer
0318013afc Merge commit '6c8c7c246280cdcd23e4d99006b95245ae837278'
* commit '6c8c7c246280cdcd23e4d99006b95245ae837278':
  dump: Print AVAudioServiceType side data

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-06 22:29:19 +02:00
Michael Niedermayer
1caff5731d Merge commit '04070dbca0688ab1e24528ce5c135254a9a79c47'
* commit '04070dbca0688ab1e24528ce5c135254a9a79c47':
  libx265: Fix 'braces around scalar initializer' warning

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-06 21:46:52 +02:00
Michael Niedermayer
20ce69e5f8 Merge commit 'd81fb63d87692765c004c19934b49427df434a07'
* commit 'd81fb63d87692765c004c19934b49427df434a07':
  fate: Add a PICT test

Conflicts:
	tests/fate/image.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-06 21:21:00 +02:00
Ronald S. Bultje
23ba4538f9 vp9: add inter-frame profile 2/3 suport. 2015-05-06 15:10:41 -04:00
Ronald S. Bultje
b224b165cb vp9: add keyframe profile 2/3 support. 2015-05-06 15:10:41 -04:00
Ronald S. Bultje
346ce5da19 vp9: parse profile 2/3 bitdepth in frame header. 2015-05-06 15:10:40 -04:00
Ronald S. Bultje
01e59d48ed vp9: add profile 2/3 to exported profiles. 2015-05-06 15:10:40 -04:00
Ronald S. Bultje
5c600d74aa fate: add/update reference files for 440 addition. 2015-05-06 15:10:26 -04:00
Michael Niedermayer
ffed987a4d Merge commit '7b734ee55dbb8476d7ad63c7daf55c534cf82d5d'
* commit '7b734ee55dbb8476d7ad63c7daf55c534cf82d5d':
  lavf: Open PICT images with Quickdraw

Conflicts:
	tests/fate/image.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-06 21:05:16 +02:00
Michael Niedermayer
39e89f5211 Merge commit '34efb8a169e4551326e069be47125c6c2cb7ab90'
* commit '34efb8a169e4551326e069be47125c6c2cb7ab90':
  quickdraw: Support direct pixel blocks

Conflicts:
	Changelog
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-06 20:40:26 +02:00
Michael Niedermayer
251f9dcf22 Merge commit 'bb2cb0a66d86ec4ad9f43a488e8b6ab894c22d2f'
* commit 'bb2cb0a66d86ec4ad9f43a488e8b6ab894c22d2f':
  quickdraw: Switch to greedy parsing

Conflicts:
	libavcodec/qdrw.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-06 20:32:52 +02:00
Michael Niedermayer
d423fc12e6 Merge commit 'd00f1e0fc10bb945cdf140a6c320eb0c9cd25162'
* commit 'd00f1e0fc10bb945cdf140a6c320eb0c9cd25162':
  quickdraw: Convert to bytestream2

Conflicts:
	libavcodec/qdrw.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-06 20:23:54 +02:00
Michael Niedermayer
958ddef46c Merge commit '01fdfa51aca9086e04bd354fe3f103a49352c085'
* commit '01fdfa51aca9086e04bd354fe3f103a49352c085':
  xcbgrab: Accept geometries matching the screen size

See: 7971fa9ce0
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-06 20:10:51 +02:00
Ronald S. Bultje
711d8812ad swscale: add yuv440p10/12 pixfmts. 2015-05-06 12:04:31 -04:00
Ronald S. Bultje
57f970a704 lavc: add yuv440p10/12 formats to aligned pixfmt list. 2015-05-06 12:04:31 -04:00
Ronald S. Bultje
98f7f0f7e8 lavu: add yuv440p10/12 pixfmts. 2015-05-06 12:04:31 -04:00
Andreas Cadhalpun
75fc81c831 diracdec: check that block length is valid
In init_planes p->xblen and p->yblen are set to:
            p->xblen = s->plane[0].xblen >> s->chroma_x_shift;
            p->yblen = s->plane[0].yblen >> s->chroma_y_shift;

These are later used as block_w and block_h arguments of
s->vdsp.emulated_edge_mc. If one of them is 0 it triggers an av_assert2
in emulated_edge_mc:
    av_assert2(start_x < end_x && block_w > 0);
    av_assert2(start_y < end_y && block_h > 0);

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-06 18:02:35 +02:00
Andreas Cadhalpun
4b13a542a2 dirac: use and forward error codes
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-06 17:50:09 +02:00
Michael Niedermayer
3c7d3d27be tools/cws2fws: Use a similar implementation in dbgprintf() as in ff_dlog()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-06 16:11:50 +02:00
Michael Niedermayer
0a6b410edf avcodec/vp8: Suppress empty body warnings
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-06 16:03:56 +02:00
Michael Niedermayer
e0010bb91f mux: Do not leave stale side data pointers in ff_interleave_add_packet()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-05-06 15:01:35 +01:00
Vittorio Giovara
6c8c7c2462 dump: Print AVAudioServiceType side data 2015-05-06 14:57:46 +01:00
Michael Niedermayer
890b874889 avutil/internal: Suppress empty body warning from emms_c()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-06 15:56:32 +02:00
Vittorio Giovara
04070dbca0 libx265: Fix 'braces around scalar initializer' warning
x265 Reordered the x265_picture fields in the commit

51b1518de2 (diff-945b5354d8767dfac13334f2d22cf58fR107)

Now the first field is an integer and not an array.
2015-05-06 14:53:29 +01:00
Vittorio Giovara
d81fb63d87 fate: Add a PICT test
This stimulates the direct pixel mode in Quickdraw decoder.
2015-05-06 14:36:01 +01:00
Vittorio Giovara
7b734ee55d lavf: Open PICT images with Quickdraw
Update the pictor test to use the pictor codec, as both formats share
the .pic file extension.
2015-05-06 14:27:34 +01:00
Vittorio Giovara
34efb8a169 quickdraw: Support direct pixel blocks
Data is stored in separated components so rework decode_rle() to support
stepping and offsets.
2015-05-06 14:27:34 +01:00
Vittorio Giovara
bb2cb0a66d quickdraw: Switch to greedy parsing
Quickdraw packs data as a series of codes that the application is supposed
to handle, but it does not define any order in which they might appear.
Since it's unfeasible to support *all* opcodes defined by the spec,
only handle well-known blocks containing video data and ignore any unknown
or unsupported ones.

Move palette loading and rle decoding to separate functions to resue them
in other blocks and drop format initialization in init since it can
support more formats than pal8.

Validate width and height.
2015-05-06 14:26:30 +01:00
Vittorio Giovara
d00f1e0fc1 quickdraw: Convert to bytestream2
Add appropriate error messages and reduce r, g, b variables scope.
Drop the now redundant line checks in RLE decoding.
2015-05-06 14:26:30 +01:00
Nicolas George
7971fa9ce0 lavd/xcbgrab: fix comparison with screen size.
Signed-off-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-06 13:33:17 +02:00
Nicolas George
01fdfa51ac xcbgrab: Accept geometries matching the screen size
Introduced in e8c4db0d4d.
2015-05-06 12:25:32 +02:00
Dave Yeo
22a0387df2 OS/2:Makedef.cmd cleanup
Remove PROTMODE as it doesn't make sense for DLLs. Also fixes a warning with the OpenWatcom linker
Export symbols as names rather then ordinals for better compatibility for minor releases.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-06 11:37:26 +02:00
Michael Niedermayer
a2190de52d avcodec/diracdec: Fix types and wraparounds in dirac_decode_picture_header()
previously various variables had a too small type to support the required 32bit unsigned
range allowed from the spec

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-06 02:44:21 +02:00
Andreas Cadhalpun
d93181ef3e diracdec: check if reference could not be allocated
s->ref_pics[i] is later used as ref argument of interpolate_refplane,
where it is dereferenced.

If it is NULL, it causes a segmentation fault.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-06 01:54:51 +02:00
Andreas Cadhalpun
9e66b39aa8 diracdec: avoid overflow of bytes*8 in decode_lowdelay
If bytes is large enough, bytes*8 can overflow and become negative.

In that case 'bufsize -= bytes*8' causes bufsize to increase instead of
decrease.

This leads to a segmentation fault.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-06 00:28:52 +02:00
Michael Niedermayer
af6739d6da Merge commit '3735b5c616770429572f86aabdaec39c6ebb8818'
* commit '3735b5c616770429572f86aabdaec39c6ebb8818':
  Revert "lavfi: always check av_expr_parse_and_eval() return value"

See: 8c9a23833d
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-06 00:18:31 +02:00
Carl Eugen Hoyos
e31cdb5cc8 lavf/riff: Add MultiScope II fourcc MSC2 as MJPEG. 2015-05-05 23:52:38 +02:00
Michael Niedermayer
1ace789fb3 Merge commit '60f1cc4a1ffcbf24acbb543988ceeaec76b70818'
* commit '60f1cc4a1ffcbf24acbb543988ceeaec76b70818':
  alsdec: only adapt order for positive max_order

See: 58d605ee9b
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-05 22:57:46 +02:00
Michael Niedermayer
ff849e11e3 Merge commit '94bb1ce882a12b6d7a1fa32715a68121b39ee838'
* commit '94bb1ce882a12b6d7a1fa32715a68121b39ee838':
  alsdec: check sample pointer range in revert_channel_correlation

Conflicts:
	libavcodec/alsdec.c

See: afc7748d1f
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-05 22:56:11 +02:00
Michael Niedermayer
9810aa3408 Merge commit '110f7f35fb615b97d983b1c6c6a714fddd28bcbe'
* commit '110f7f35fb615b97d983b1c6c6a714fddd28bcbe':
  aacpsy: correct calculation of minath in psy_3gpp_init

See: ca9849eecd
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-05 22:45:51 +02:00
Michael Niedermayer
df95281618 Merge commit 'e191aaca44b986816695e3b7ecfae64697fd6631'
* commit 'e191aaca44b986816695e3b7ecfae64697fd6631':
  alsdec: limit avctx->bits_per_raw_sample to 32

See: 4c2b88678b
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-05 22:33:21 +02:00
Michael Niedermayer
54d985db84 Merge commit '8fc8024ea56e814cd257d5fe27b21a865080782f'
* commit '8fc8024ea56e814cd257d5fe27b21a865080782f':
  aasc: return correct buffer size from aasc_decode_frame

See: 0be54ad280
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-05 22:20:36 +02:00
Michael Niedermayer
5a455dd011 avcodec/diracdec: Move buf[] read after size check
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-05 22:01:58 +02:00
Andreas Cadhalpun
984f50deb2 diracdec: prevent overflow in data_unit_size check
buf_idx + data_unit_size can overflow, causing the '> buf_size' check to
wrongly fail.

This causes a segmentation fault.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-05 21:52:31 +02:00
Ronald S. Bultje
ed68fccf76 vp9: error out if chroma subsampling changes between frames.
This can happen after an intra-only frame. For reference, see:
https://groups.google.com/a/webmproject.org/forum/#!msg/webm-discuss/zaoTxREZjq8/v5Enht87AhcJ

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-05 20:09:44 +02:00
Anton Khirnov
3735b5c616 Revert "lavfi: always check av_expr_parse_and_eval() return value"
This reverts commit 63be97ec40.

All those calls were unchecked on purpose, as explained in the comments
in the code.
2015-05-05 16:27:24 +02:00
Andreas Cadhalpun
60f1cc4a1f alsdec: only adapt order for positive max_order
For max_order = 0 the clipping range is invalid. (amin = 2, amax = 1)

CC: libav-stable@libav.org
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-05-05 16:10:52 +02:00
Andreas Cadhalpun
94bb1ce882 alsdec: check sample pointer range in revert_channel_correlation
Also change the type of begin, end and smp to ptrdiff_t to make the
comparison well-defined.

CC: libav-stable@libav.org
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-05-05 16:06:58 +02:00
Michael Niedermayer
9d4fdfe24c avformat/matroskaenc: Use avoid_negative_ts_use_pts if no stream writes dts
This reduces the number of cases where timestamps need to be shifted

Fixes Ticket4487

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-05 13:17:25 +02:00
Michael Niedermayer
7ac5c38ec5 avformat/mux: Add avoid_negative_ts_use_pts
This allows using pts instead of dts for negative TS avoidance

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-05 12:44:20 +02:00
Michael Niedermayer
36993527dd cmdutils: Add libm.h for round()
Found-by: jamrial
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-05 11:51:00 +02:00
Andreas Cadhalpun
110f7f35fb aacpsy: correct calculation of minath in psy_3gpp_init
The minimum of the ath(x, ATH_ADD) function depends on ATH_ADD.
This patch uses the first order approximation to determine it.

For ATH_ADD = 4 this results in the value at 3407.06812 (-5.24241638)
not the one at 3410 (-5.24237967).

CC: libav-stabl@libav.org
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-05-05 10:28:02 +02:00
Andreas Cadhalpun
e191aaca44 alsdec: limit avctx->bits_per_raw_sample to 32
avctx->bits_per_raw_sample is used in get_sbits_long, which only
supports up to 32 bits.

CC: libav-stable@libav.org
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-05-05 10:22:29 +02:00
Andreas Cadhalpun
8fc8024ea5 aasc: return correct buffer size from aasc_decode_frame
CC: libav-stable@libav.org
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-05-05 10:18:59 +02:00
James Almer
858f81fde2 cmdutils: move get_rotation() up in the file
Fixes compilation of fftools without libavdevice

Signed-off-by: James Almer <jamrial@gmail.com>
2015-05-05 02:47:21 -03:00
James Almer
3f7986f983 avfilter/Makefile: add missing lavfutils.c dependency to cover_rect and find_rect filters
Signed-off-by: James Almer <jamrial@gmail.com>
2015-05-05 02:16:37 -03:00
Michael Niedermayer
7f45f7fc7f avcodec/mpeg12dec: use the correct dimensions for checking SAR
Fixes Ticket4533

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-05 04:33:44 +02:00
Michael Niedermayer
6ef3426d90 avcodec/x86/deinterlace: use INIT_MMX like other asm code does too 2015-05-05 02:41:15 +02:00
Michael Niedermayer
c7369f3a4b avformat/avidec: print a warning for negative sample_size
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-05 00:04:38 +02:00
Andreas Cadhalpun
ca234639ac avidec: avoid infinite loop due to negative ast->sample_size
If max in clean_index is set to a negative ast->sample_size, the
following loop never ends:
        while (max < 1024)
            max += max;

Thus set ast->sample_size to 0 if it would otherwise be negative.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-05 00:04:38 +02:00
James Almer
079b7f6eac vp9: add profile names
Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-05-04 18:39:51 -03:00
Michael Niedermayer
b4cc7d67f5 avfilter/vf_cover_rect: clip rectangle if it is partly outside the input
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-04 22:33:17 +02:00
Andreas Cadhalpun
0eec40b713 avidec: check for valid bit_rate range
If bit_rate is negative, it can trigger an av_assert2 in av_rescale_rnd.

Since av_rescale returns int64_t, but st->codec_bit_rate is int, it can
also overflow into a negative value.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-04 21:11:19 +02:00
Michael Niedermayer
783e94cb11 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  lavfi/cropdetect: Fix cropdetect for > 8 bit input.
  lavf/apngenc: Fix png remuxing by using default extension apng.
  lavf/mxfenc: Write correct interlaced flag when muxing dnxhd.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-04 17:59:56 +02:00
Carl Eugen Hoyos
0bca6182b2 lavfi/cropdetect: Fix cropdetect for > 8 bit input. 2015-05-04 17:50:16 +02:00
Carl Eugen Hoyos
8ad04d24c8 lavf/apngenc: Fix png remuxing by using default extension apng. 2015-05-04 17:49:36 +02:00
Carl Eugen Hoyos
d90f91c1c8 lavf/mxfenc: Write correct interlaced flag when muxing dnxhd.
Reported and early patch version tested by forum user gridtank.
Reviewed-by: Tomas Härdin
2015-05-04 17:44:14 +02:00
Michael Niedermayer
f320f2f4c6 cmdutils: Ask for a sample in case a odd rotation angle is encountered
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-04 17:39:23 +02:00
Michael Niedermayer
5d309d3091 avformat/matroskadec: Use tracks[k]->stream instead of s->streams[k]
The later is not correct

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-04 15:49:58 +02:00
Andreas Cadhalpun
e54540655f matroskadec: check s->streams[k] before using it
This fixes a segmentation fault.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-04 15:48:55 +02:00
Michael Niedermayer
d43cd6b08e avcodec/ffv1dec: Check chroma shift parameters
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-04 14:31:45 +02:00
Michael Niedermayer
03baa861ea avcodec/ffv1dec: More completely check micro_version
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-04 14:31:45 +02:00
Michael Niedermayer
3dfbdb328e avcodec/ffv1dec: Check quant table symbols more completely
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-04 14:31:45 +02:00
Andreas Cadhalpun
eb9fb508b0 matroskadec: use uint64_t instead of int for index_scale
index_scale is set to matroska->time_scale of type uint64_t.

When index_scale is int, the assignment can overflow and e.g. result
in index_scale = 0. This causes a floating point exception due to the
division by index_scale.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-04 00:16:00 +02:00
Michael Niedermayer
800df6a849 ffmpeg_filter: use get_rotation()
This unifies the rotation extraction code between ffplay and ffmpeg

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-04 00:14:36 +02:00
Michael Niedermayer
4351c288b9 ffplay&cmdutils:Factor get_rotation() code out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-03 23:49:16 +02:00
Anshul Maheshwari
a6b630e9b6 avcodec/ccaption_dec: correcting line breaks in cc
Signed-off-by: Anshul Maheshwari <er.anshul.maheshwari@gmail.com>
Reviewed-by: Clément Bœsch <u@pkh.me>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-03 23:38:57 +02:00
Michael Niedermayer
f9e802018e ffplay: unify displaymatrix based rotation code
Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-03 22:39:39 +02:00
Andreas Cadhalpun
372aa0777a pngdec: don't use AV_PIX_FMT_MONOBLACK for apng
AV_PIX_FMT_MONOBLACK has the AV_PIX_FMT_FLAG_BITSTREAM flag, i.e.
linesize can be smaller than width.

Since x_offset is only check against the width, this can lead to
x_offset * bpp >= image_linesize.

In this case ptr could be set to a position outside the image_buf in
png_handle_row, leading to memory corruption and thus crashes.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-03 21:50:09 +02:00
Andreas Cadhalpun
8f760be4d3 pngdec: return correct error code from decode_frame_common
During the loop ret can get changed. Since it is not set on all failure
paths, decode_frame_common can return 0 even though an error occurred.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-03 20:28:35 +02:00
Andreas Cadhalpun
287dbb0771 pngdec: check s->last_picture.f->data[0] before using it
This check was removed in commit 08aec6f6, but
s->last_picture.f->data[0] is still used in handle_p_frame_apng
unconditionally.

This fixes a segmentation fault.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-03 17:24:28 +02:00
Michael Niedermayer
042260cde4 avcodec/wavpack: Check L/R values before use to avoid harmless integer overflow and undefined behavior in fate
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-03 16:37:10 +02:00
Michael Niedermayer
52835cb8e1 avutil/opt: Avoid division by 0
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-03 16:37:04 +02:00
Muhammad Faiz
a141948a8b avfilter/avf_showcqt: optimize gamma calculation
benchmark (on intel core2 duo, gcc 4.9.1)
input samples duration 00:03:39.59
command: time -p ffmpeg -f f32le -ac 2 -ar 44100 -i input.pcm \
         -filter_complex showcqt=fullhd=0:gamma=$gamma \
         -f rawvideo -y /dev/null
gamma  previous  modified
  1    48.49 s   45.38 s
  2    49.33 s   48.11 s
  3    80.86 s   59.80 s
  4    80.84 s   51.25 s
  5    80.75 s   61.06 s
  6    80.93 s   61.80 s
  7    80.03 s   61.56 s

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-03 11:53:04 +02:00
Michael Niedermayer
29ef54aa90 avcodec/nvenc: Make pix_fmts_nvenc const
Reviewed-by: Timo Rothenpieler <timo@rothenpieler.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-03 04:14:01 +02:00
Jérôme Martinez
14605a0b99 ffv1dec: plane_index is 1 in case of version 4 gray+alpha.
Since version 4, plane_index for the alpha plane is 1 in the case chroma_planes is 0.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-03 01:55:12 +02:00
Michael Niedermayer
eb16881199 LICENSE.md: add *_rect filters
Found-by: ubitux
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-03 01:43:30 +02:00
Michael Niedermayer
c8b4ffdf55 configure: prepend avfilter_deps for *_rect filters
Found-by: ubitux
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-03 01:42:51 +02:00
Michael Niedermayer
40964e2e89 Merge commit '3edeb7749e4276c78ad57307b8c3b32dd476d1da'
* commit '3edeb7749e4276c78ad57307b8c3b32dd476d1da':
  configure: Allow log2 with MSVC 2013 onwards.

Conflicts:
	configure

See: 4d93e758d7
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-03 01:30:53 +02:00
Michael Niedermayer
02b5af7744 Merge commit '863ee06809b215895ee20cbc557eeceb904cf770'
* commit '863ee06809b215895ee20cbc557eeceb904cf770':
  configure: Use the right local variable in the MSVC and ICL probes

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-03 01:20:24 +02:00
Michael Niedermayer
0ba65c9f79 Merge commit '709e1c91ea7a5bbf2b9a104642572ca7616b224f'
* commit '709e1c91ea7a5bbf2b9a104642572ca7616b224f':
  avprobe: Print the display matrix from per-stream sidedata

Conflicts:
	avprobe.c

See: 08152f2df2
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-03 01:04:14 +02:00
Michael Niedermayer
a72b61a317 ffprobe: support printing AVStream and AVPacket side data
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-03 00:53:19 +02:00
Michael Niedermayer
08152f2df2 ffprobe: Add Support to print information about AV_FRAME_DATA_DISPLAYMATRIX
Idea from 709e1c91ea by Martin Storsjö
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-03 00:39:47 +02:00
Michael Niedermayer
2a3270b66c ffprobe: add writer_print_integers() to allow printing formated 1d and 2d arrays of integers
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-03 00:38:52 +02:00
Michael Niedermayer
db4649dd10 Merge commit '3080b0497ddf8549d86ee99b79ac0c15f44ee382'
* commit '3080b0497ddf8549d86ee99b79ac0c15f44ee382':
  avprobe: Support writing arrays of integers without keys

Conflicts:
	avprobe.c

Not merged
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-02 23:43:51 +02:00
Michael Niedermayer
a1acae0409 ffmpeg_opt: remove rotate metadata in case of autorotate
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-02 23:04:00 +02:00
Michael Niedermayer
f5b26fbc2f Merge commit '16302246b1fcb7ad4e6f7bd31c49956a455336d2'
* commit '16302246b1fcb7ad4e6f7bd31c49956a455336d2':
  avconv: Add an option for automatically rotating video according to display matrix

Conflicts:
	Changelog
	ffmpeg_opt.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-02 22:39:00 +02:00
Michael Niedermayer
deedf3e590 Merge commit 'e2d50fc2f5f3600e13055acf1a10fec35e941f37'
* commit 'e2d50fc2f5f3600e13055acf1a10fec35e941f37':
  avplay: Add support for rotated video

Conflicts:
	configure
	doc/ffplay.texi
	ffplay.c

See: 08c51e12b1
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-02 22:31:20 +02:00
Michael Niedermayer
e874772f70 Merge commit '21180b73239c6360aa28496d4879713b7ba4a8e5'
* commit '21180b73239c6360aa28496d4879713b7ba4a8e5':
  avplay: Factorize code for adding filters to the filter pipeline

Conflicts:
	ffplay.c

See: 08c51e12b1
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-02 22:08:11 +02:00
Michael Niedermayer
94f4bdc4f1 configure: add forgotten avcodec/avformat deps for find/cover_rect
Found-by: ubitux
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-02 21:28:31 +02:00
Michael Niedermayer
61b4ab1860 avfilter: Add cover_rect filter
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-02 21:15:48 +02:00
Michael Niedermayer
94340e4b28 avfilter: add find_rect filter
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-02 21:15:48 +02:00
Matt Oliver
3edeb7749e configure: Allow log2 with MSVC 2013 onwards.
Only MSVC 2010 in x64 mode, in the static msvcrt, had a
stray log2 function (which wasn't available in the headers).

MSVC 2013 has got a proper log2 function though.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-05-02 22:11:36 +03:00
Martin Storsjö
863ee06809 configure: Use the right local variable in the MSVC and ICL probes
$cc is the compiler requested as main target compiler, while $_cc
is the actual tool tested in the probe function right now (which
can also be e.g. the host compiler).

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-05-02 22:09:09 +03:00
Martin Storsjö
709e1c91ea avprobe: Print the display matrix from per-stream sidedata
This is printed in a separate subgroup "displaymatrix" inside a
new group named "sidedata". The subgroup has got two values,
"rotation" (which is the parsed rotation from the matrix) and
"matrix" containing the full actual values.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-05-02 22:09:09 +03:00
Martin Storsjö
3080b0497d avprobe: Support writing arrays of integers without keys
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-05-02 22:09:09 +03:00
Martin Storsjö
16302246b1 avconv: Add an option for automatically rotating video according to display matrix
The option is enabled by default, but can be disabled.

If this is enabled, such side data isn't copied into the output stream
(except when doing stream copy).

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-05-02 22:09:06 +03:00
Martin Storsjö
e2d50fc2f5 avplay: Add support for rotated video
This is enabled by default, but can be disbled via the -noautorotate
option.

Based on a patch by Clément Bœsch.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-05-02 22:06:29 +03:00
Martin Storsjö
21180b7323 avplay: Factorize code for adding filters to the filter pipeline
Significantly based on a patch by Clément Bœsch.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-05-02 22:06:29 +03:00
Michael Niedermayer
4e8ee7acb8 libavcodec/svq3: clarify unknown_flag by renaming to has_watermark
The name is based on how the field is used in the code

Reviewed-by: compn <tempn@mi.rr.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-02 15:34:02 +02:00
Michael Niedermayer
dc4a6e4d5a avfilter/vf_libopencv: Make ocv_filter_entries const
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-02 15:13:30 +02:00
Michael Niedermayer
536b42e858 avutil/cast5: Make iv array static
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-02 14:37:48 +02:00
Michael Niedermayer
156f64bdf1 avutil/cast5: Mark key_bits as const
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-02 14:37:08 +02:00
Michael Niedermayer
dfc0708e23 avcodec/x86/dct-test: Use uint8_t for idct_simple_mmx_perm
The table contains no element outside the unsigned 8bit range

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-02 13:43:15 +02:00
Michael Niedermayer
270e647adc avcodec/x86/dct-test: Make static table const
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-02 13:42:46 +02:00
Michael Niedermayer
c187217287 avformat/matroskadec: Mark static tables as const
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-02 13:27:45 +02:00
Rodger Combs
71b69df622 lavf/http: support HTTPS when listening
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-02 12:03:48 +02:00
Michael Niedermayer
6197672720 avcodec/svq3: Print unknown fields at debug level
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-02 02:58:00 +02:00
Michael Niedermayer
d56245f770 Merge remote-tracking branch 'rbultje/vp9-profile1-wip'
* rbultje/vp9-profile1-wip:
  vp9: add fate test for 422.
  vp9: copy bug in libvpx for 4:2:2 chroma bs=8x4/4x4 prediction.
  vp9: add yuv440 fate test.
  vp9: fix mask_edges and filter_plane_rows/cols() for 440.
  vp9: more specifically specify mask destination to mask_edges().
  vp9: add fate test for profile 1 444.
  vp9: don't create special u/v filter masks for 444.
  vp9: merge uv loopfilter code into generic filter_plane_rows/cols().
  vp9: split out loopfilter luma rows/cols functions from loopfilter_sb().
  vp9: invert order of two conditions.
  vp9: use correct chroma subsampling for profile 1 inter block recon.
  vp9: use correct chroma subsampling for profile 1 intra block recon.
  vp9: take chroma subsampling into account when walking the block tree.
  vp9: support non-420 chroma subsampling for profile 1 token decoding.
  vp9: increase buffer sizes for non-420 chroma subsamplings.
  vp9: profile 1 header decoding.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-01 22:23:48 +02:00
Michael Niedermayer
c8de8f7e64 Merge commit '3ecb82dd4110108244373f007710df4c2ae572b6'
* commit '3ecb82dd4110108244373f007710df4c2ae572b6':
  dnxhddec: Fix pixel format change

See: dcac15a84c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-01 21:56:11 +02:00
Michael Niedermayer
9aff7d41f6 Merge commit '6503cbf842a026faec517eb980551089168c7d8a'
* commit '6503cbf842a026faec517eb980551089168c7d8a':
  ffv1enc: Add const attribute to input frame

Conflicts:
	libavcodec/ffv1.h

no change, the changed field does not exist in FFmpeg

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-01 21:34:35 +02:00
Carl Eugen Hoyos
3ecb82dd41 dnxhddec: Fix pixel format change
Regression introduced in 598f7d046c.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-05-01 14:52:24 +01:00
Vittorio Giovara
6503cbf842 ffv1enc: Add const attribute to input frame
warning: assigning to 'AVFrame *' (aka 'struct AVFrame *') from
         'const AVFrame *' (aka 'const struct AVFrame *') discards
         qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
2015-05-01 14:52:24 +01:00
Michael Niedermayer
c9ac9adb46 avcodec/h264: Remove failure on data partitioning
decode all NAL units instead

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-01 12:30:57 +02:00
Ronald S. Bultje
b005d09764 vp9: add fate test for 422.
Sample available at:
http://downloads.webmproject.org/test_data/libvpx/vp91-2-04-yuv422.webm
2015-05-01 08:45:55 +02:00
Ronald S. Bultje
6f63bdbae6 vp9: copy bug in libvpx for 4:2:2 chroma bs=8x4/4x4 prediction. 2015-05-01 08:45:55 +02:00
Ronald S. Bultje
7126c80f0d vp9: add yuv440 fate test.
Sample available at:
http://downloads.webmproject.org/test_data/libvpx/vp91-2-04-yuv440.webm
2015-05-01 08:45:55 +02:00
Ronald S. Bultje
2a7d7bef62 vp9: fix mask_edges and filter_plane_rows/cols() for 440. 2015-05-01 08:45:54 +02:00
Ronald S. Bultje
cf62f2d2d6 vp9: more specifically specify mask destination to mask_edges(). 2015-05-01 08:45:54 +02:00
Ronald S. Bultje
f052ea6ba5 vp9: add fate test for profile 1 444.
Sample available at:
http://downloads.webmproject.org/test_data/libvpx/vp91-2-04-yuv444.webm
2015-05-01 08:45:54 +02:00
Ronald S. Bultje
e4f77e6239 vp9: don't create special u/v filter masks for 444.
This fixes vp91-2-04-yuv444.webm.
2015-05-01 08:45:54 +02:00
Ronald S. Bultje
afa9d00b43 vp9: merge uv loopfilter code into generic filter_plane_rows/cols(). 2015-05-01 08:45:53 +02:00
Ronald S. Bultje
ba59a5ec42 vp9: split out loopfilter luma rows/cols functions from loopfilter_sb(). 2015-05-01 08:45:53 +02:00
Ronald S. Bultje
844799b033 vp9: invert order of two conditions.
This makes it equal to row-based loopfilter code, and also makes the
chroma/luma code identical.
2015-05-01 08:45:53 +02:00
Ronald S. Bultje
d382cc0fad vp9: use correct chroma subsampling for profile 1 inter block recon. 2015-05-01 08:45:52 +02:00
Ronald S. Bultje
d2aa6f65db vp9: use correct chroma subsampling for profile 1 intra block recon. 2015-05-01 08:45:52 +02:00
Ronald S. Bultje
ed3e0cc715 vp9: take chroma subsampling into account when walking the block tree. 2015-05-01 08:45:52 +02:00
Ronald S. Bultje
6019002f0f vp9: support non-420 chroma subsampling for profile 1 token decoding. 2015-05-01 08:45:52 +02:00
Ronald S. Bultje
2d0bea4719 vp9: increase buffer sizes for non-420 chroma subsamplings. 2015-05-01 08:45:51 +02:00
Ronald S. Bultje
a03b057ede vp9: profile 1 header decoding. 2015-05-01 08:45:51 +02:00
Shivraj Patil
02001ada5c avcodec/mips: MSA (MIPS-SIMD-Arch) optimizations for H264 lpf and weight/biweight functions
Reviewed-by: Nedeljko Babic <Nedeljko.Babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-01 04:19:18 +02:00
Michael Niedermayer
3cd666cfbc avcodec/svq3: Fix memleak of last_pic_for_ec
Found-by: jamrial
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-01 03:15:46 +02:00
Michael Niedermayer
e0153145f6 avformat/mpegts: Detect changes in packet through CRC instead of just the 5bit version
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-01 02:14:14 +02:00
Michael Niedermayer
4b6be54bed avformat/mpegts: reset last_ver on corrupted packets
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-01 02:13:26 +02:00
Michael Niedermayer
4e8d01f20c avformat/mpegts: Factorize version checking code out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-01 01:29:43 +02:00
Vignesh Venkatasubramanian
ccb8f67499 lavf/webm_chunk: Fix a memory leak.
Fix a duplicate memory allocation. priv_data should be allocated
in line 64 call to avformat_alloc_output_context2 since we pass
the correct AVFormat to it. This removes the duplicate allocation.

Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-30 23:33:10 +02:00
Ronald S. Bultje
5935513c0e vp9: fix show-existing-frames for multi-threading.
This also fixes intra-only MT failures (it was the same bug), see trac
4526 and 4527.

Tested-by: James Almer <jamrial@gmail.com>
Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-30 23:32:09 +02:00
James Almer
39fbb27ec3 avutil/softfloat_tables: add missing stdint.h include
Fixes make checkheaders

Signed-off-by: James Almer <jamrial@gmail.com>
2015-04-30 17:38:41 -03:00
Michael Niedermayer
7ad528cf23 Merge commit '06f4b1e37a08f3fd269ecbfeb0181129e5bfc86e'
* commit '06f4b1e37a08f3fd269ecbfeb0181129e5bfc86e':
  avplay: Do not print a possibly uninitialized value

Conflicts:
	ffplay.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-30 22:23:29 +02:00
Michael Niedermayer
f5c5aa968c Merge commit 'e8c4db0d4d07738fed716b1d2f20c85aac944641'
* commit 'e8c4db0d4d07738fed716b1d2f20c85aac944641':
  xcbgrab: Validate the capture area

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-30 22:15:22 +02:00
Michael Niedermayer
dc83733f2b Merge commit '82a10225f817b2612fdd2b23af9d4f0a3408df3b'
* commit '82a10225f817b2612fdd2b23af9d4f0a3408df3b':
  xcbgrab: Do not assume the non shm image data is always available

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-30 22:00:10 +02:00
Vignesh Venkatasubramanian
e2784a1d96 lavf/webm_chunk: Use dyn_buf to write chunks
Use dyn_duf to write chunks so that we create the actual chunk
file only after the entire chunk data is available. This will help
not confuse other software looking at the chunk file (e.g. a web
server) by seeing a zero length file when ffmpeg is writing into
it.

Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-30 21:25:09 +02:00
Nedeljko Babic
1fae268307 libavutil/softfloat: Add functions.
Functions av_gt_sf, av_sqrt_sf and av_sincos_sf added to softfloat

Signed-off-by: Nedeljko Babic <nedeljko.babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-30 15:05:12 +02:00
Nedeljko Babic
7bab281475 libavutil/softfloat: Added av_normalize_sf in av_add_sf
This will normalize sums for which mantissa is smaller than the lower boundary
(needed for implementation of fixed point aac decoder).

Signed-off-by: Nedeljko Babic <nedeljko.babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-30 14:53:09 +02:00
Nedeljko Babic
a1c7fe431c libavutil/softfloat: exponent adjusted for aac fixed point dec
Exponent usage and calculation in softfloat adjusted to the format used in
implementation of fixed point aac decoder.

Signed-off-by: Nedeljko Babic <nedeljko.babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-30 14:20:28 +02:00
Luca Barbato
06f4b1e37a avplay: Do not print a possibly uninitialized value
Initialize `diff` to 0.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-04-30 14:15:12 +02:00
Luca Barbato
e8c4db0d4d xcbgrab: Validate the capture area
And notify why the capture is impossible.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-04-30 14:10:13 +02:00
Luca Barbato
82a10225f8 xcbgrab: Do not assume the non shm image data is always available
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-04-30 14:10:13 +02:00
Michael Niedermayer
d2184bf3b6 avfilter/lavfutils: disable frame threads when decoding a single image
The image decoding code does expect the image to be decoded immedeatly

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-30 03:48:33 +02:00
Michael Niedermayer
2025e803cd avformat/mov: Do not read ACLR into extradata for H.264
Fixes regression decoding AVCI
Fixes Ticket4493

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-30 00:02:47 +02:00
Michael Niedermayer
f8fa392a2e avfilter/vf_vignette: force per frame evaluation if per frame variables are used
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-29 23:13:58 +02:00
Michael Niedermayer
828759ed9a avcodec/cook: Remove unneeded #if
The code is already doing nothing if DEBUG is disabled

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-29 20:13:59 +02:00
Michael Niedermayer
14e9a20083 avformat/mpegts: Also parse the FMC descriptor if the codec has not been identified yet
Fixes Detecting AAC with such descriptor if the parts needed for detection
are later in the stream

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-29 18:26:28 +02:00
Michael Niedermayer
8a710ddc7c avcodec/libx264: Remove cleanup code, its uneeded since FF_CODEC_CAP_INIT_CLEANUP
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-29 17:23:20 +02:00
foo86
e80b2b9c81 avcodec/dca_parser: Extend DTS core sync word and fix existing check
Check extended sync word for 16-bit LE and BE core streams to reduce
probability of alias sync detection. Previously sync word extension was
checked only for 14-bit streams (and this check did not properly work
across buffer boundary).

Use 64-bit parser state to make extended sync word detection work across
buffer boundary.

This is sufficient to make the sample in ticket #4492 parse
successfully.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-29 17:08:48 +02:00
Michael Niedermayer
50e46b7f0d Merge commit 'a09c499a2e25ded575cb9f37528384402be86ad8'
* commit 'a09c499a2e25ded575cb9f37528384402be86ad8':
  rawenc: properly allocate coded_frame

Conflicts:
	libavcodec/rawenc.c

See: 881f96c4c2
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-29 16:49:47 +02:00
Michael Niedermayer
36f862e04c Merge commit 'a0f2946068c62e18cb05ac25c0df3d86077251a6'
* commit 'a0f2946068c62e18cb05ac25c0df3d86077251a6':
  h264: use properly allocated AVFrames

Conflicts:
	libavcodec/h264.c
	libavcodec/h264.h
	libavcodec/h264_refs.c
	libavcodec/h264_slice.c
	libavcodec/svq3.c
	libavcodec/vda_h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-29 16:35:24 +02:00
Michael Niedermayer
07a79cf869 Merge commit '7a4f74eed51f914e9bbfebaffd4a92ac6791f819'
* commit '7a4f74eed51f914e9bbfebaffd4a92ac6791f819':
  h264: embed the DPB in the context

Conflicts:
	libavcodec/h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-29 15:33:46 +02:00
Michael Niedermayer
4a95cd5d9b avcodec/h264_slice: Also copy x264_build in ff_h264_update_thread_context()
Fixes fate-h264-lossless

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-29 15:21:28 +02:00
Michael Niedermayer
bd7dce594e Merge commit '88c612e3a4d5b584e2d9f6e2541de78d67bdfb9f'
* commit '88c612e3a4d5b584e2d9f6e2541de78d67bdfb9f':
  h264: merge the init and reinit paths in update_thread_context()

Conflicts:
	libavcodec/h264_slice.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-29 15:21:20 +02:00
Michael Niedermayer
cc87493f06 Merge commit '8a66fd40260b7aae6226d68c4dbad43b05a8e524'
* commit '8a66fd40260b7aae6226d68c4dbad43b05a8e524':
  h264: drop the reinit parameter from init_slice_header()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-29 13:55:58 +02:00
Michael Niedermayer
51f7ba9cee Merge commit 'c9ccbc7333eddd025ebbde5cc4f27d68a950c623'
* commit 'c9ccbc7333eddd025ebbde5cc4f27d68a950c623':
  h264: update the current bit depth/chroma type in init_slice_header()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-29 13:48:45 +02:00
Michael Niedermayer
16b90d0bcb Merge commit '29dcde2b87559b72957454a7e9bcd5227d8057ba'
* commit '29dcde2b87559b72957454a7e9bcd5227d8057ba':
  h264: copy nal_length_size in update_thread_context

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-29 13:41:24 +02:00
Michael Niedermayer
1aa3a0f457 Merge commit '440e8dd374b732c48d564d9f1bb0ec3b1b786fb9'
* commit '440e8dd374b732c48d564d9f1bb0ec3b1b786fb9':
  h264: drop a comment that carries no useful information

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-29 13:33:17 +02:00
Michael Niedermayer
d3a5dba81b Merge commit '11f024ef0ab923ed8680fc35a087d576e549c849'
* commit '11f024ef0ab923ed8680fc35a087d576e549c849':
  h264: move freeing the escaped RBSP buffer to free_context()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-29 13:26:33 +02:00
Michael Niedermayer
ab7ad5e6a1 Merge commit 'ee62b364be0c30cba83b5ff10a3ca8c3e866ade6'
* commit 'ee62b364be0c30cba83b5ff10a3ca8c3e866ade6':
  h264: eliminate ff_h264_set_parameter_from_sps()

Conflicts:
	libavcodec/h264.c
	libavcodec/h264.h
	libavcodec/h264_slice.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-29 13:23:45 +02:00
Michael Niedermayer
580c86925d Merge commit '54986d6db9116ef9704b1ce8414ffdb7f1ca127f'
* commit '54986d6db9116ef9704b1ce8414ffdb7f1ca127f':
  h264: move context reinit lower down in update_thread_context()

Conflicts:
	libavcodec/h264_slice.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-29 12:11:09 +02:00
Michael Niedermayer
cd63252f1f Merge commit 'a6cd154463bea7eb56d28192db4c8c6d83f67fd7'
* commit 'a6cd154463bea7eb56d28192db4c8c6d83f67fd7':
  h264: move the DPB init/uninit to init_context()/free_context()

Conflicts:
	libavcodec/h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-29 11:48:39 +02:00
Michael Niedermayer
e8a460672f Merge commit '9d33bab583a82cf12286c65258a29c6888e1ff98'
* commit '9d33bab583a82cf12286c65258a29c6888e1ff98':
  h264: drop H264Context.ouputed_poc

Conflicts:
	libavcodec/h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-29 11:38:42 +02:00
Michael Niedermayer
0d5e615c10 Merge commit '27b0e6ebfd47b0c11156c18b90fa8c571f0f60c3'
* commit '27b0e6ebfd47b0c11156c18b90fa8c571f0f60c3':
  h264: drop needs_realloc

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-29 11:28:28 +02:00
Anton Khirnov
a09c499a2e rawenc: properly allocate coded_frame 2015-04-29 05:52:58 +02:00
Anton Khirnov
a0f2946068 h264: use properly allocated AVFrames 2015-04-29 05:52:58 +02:00
Anton Khirnov
7a4f74eed5 h264: embed the DPB in the context
It now has a fixed size and is initialized only once, so there is no
point in allocating it separately.
2015-04-29 05:52:58 +02:00
Anton Khirnov
88c612e3a4 h264: merge the init and reinit paths in update_thread_context()
There is no real need to handle the init case specially, everything
necessary is initialized in the reinit code as well.
2015-04-29 05:52:58 +02:00
Anton Khirnov
8a66fd4026 h264: drop the reinit parameter from init_slice_header()
It is only used to decide whether to call free_tables(), but that
function is safe to call on an uninitialized context as well.
2015-04-29 05:52:58 +02:00
Anton Khirnov
c9ccbc7333 h264: update the current bit depth/chroma type in init_slice_header()
With frame threading, it is currently only updated in the context where
the change occurs, but not in any other contexts.
2015-04-29 05:52:58 +02:00
Anton Khirnov
29dcde2b87 h264: copy nal_length_size in update_thread_context
It does not make sense to copy is_avc without copying this as well. This
patch should not change anything for now, but will have an effect in
later commits.
2015-04-29 05:52:58 +02:00
Anton Khirnov
440e8dd374 h264: drop a comment that carries no useful information 2015-04-29 05:52:58 +02:00
Anton Khirnov
11f024ef0a h264: move freeing the escaped RBSP buffer to free_context()
It does not logically belong in free_tables(), since it's not allocated
in alloc_tables() and its size has nothing to do with the frame size.
2015-04-29 05:52:58 +02:00
Anton Khirnov
ee62b364be h264: eliminate ff_h264_set_parameter_from_sps()
That function currently does two things -- reinitializing the DSP
contexts and setting low_delay based on the SPS values.

The former more appropriately belongs in h264_slice_header_init(), while
the latter only really makes sense in decode_slice_header().

The third call to ff_h264_set_parameter_from_sps(), done immediately
after parsing a new SPS, appears to serve no useful purpose, so it is
just dropped.

Also, drop now unneeded H264Context.cur_chroma_format_idc.
2015-04-29 05:52:57 +02:00
Anton Khirnov
54986d6db9 h264: move context reinit lower down in update_thread_context()
It uses some fields from the SPS, which is not yet set where the reinit
is called currently.
2015-04-29 05:52:57 +02:00
Anton Khirnov
a6cd154463 h264: move the DPB init/uninit to init_context()/free_context()
Currently, the DPB is initialized in alloc_tables() and uninitialized in
free_tables(), but those functions manage frame size-dependent
variables, so DPB management does not logically belong in there.

Since we want the init/uninit to happen exactly once per the context
lifetime, init_context()/free_context() are the proper place for this
code.
2015-04-29 05:52:57 +02:00
Anton Khirnov
9d33bab583 h264: drop H264Context.ouputed_poc
It is only set, but never used for anything.
2015-04-29 05:52:57 +02:00
Anton Khirnov
27b0e6ebfd h264: drop needs_realloc
It is not needed anymore since switching to refcounted frames.
2015-04-29 05:52:57 +02:00
Michael Niedermayer
215430e049 Merge commit '0ac8ff618c5e6d878c547a8877e714ed728950ce'
* commit '0ac8ff618c5e6d878c547a8877e714ed728950ce':
  avresample: Reallocate the internal buffer to the correct size

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-29 05:46:35 +02:00
Michael Niedermayer
6397814926 avformat/mpegts: reset last_version on seeking
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-29 05:00:51 +02:00
Michael Niedermayer
12f7253d0e Merge commit '82de8d71118f4eafd6a43e9ea9169bd411793798'
* commit '82de8d71118f4eafd6a43e9ea9169bd411793798':
  mpegts: Update the PSI/SI table only if the version change

Conflicts:
	libavformat/mpegts.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-29 04:24:06 +02:00
Michael Niedermayer
f6c524a939 Merge commit '0c69164f451cc9ca6ce9d6e7568083e2776bc845'
* commit '0c69164f451cc9ca6ce9d6e7568083e2776bc845':
  h263: Convert function to macro

Conflicts:
	libavcodec/h263.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-29 04:11:21 +02:00
Michael Niedermayer
78f50e7eb6 Merge commit '59dfc2b0c89f35c5805abee72c2ae4ee7af8e98d'
* commit '59dfc2b0c89f35c5805abee72c2ae4ee7af8e98d':
  h263: Drop commented-out code and a related otherwise unused function

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-29 04:04:06 +02:00
Michael Niedermayer
966a57b6e9 Merge commit 'c3418201307c6b7a2b3e3be10f33ab4a20a32c3b'
* commit 'c3418201307c6b7a2b3e3be10f33ab4a20a32c3b':
  jpeglsenc: Mark codec as init-thread-safe and init-cleanup

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-29 03:56:32 +02:00
Michael Niedermayer
27801500ee Merge commit '3919a4572690894d0a7ad4170d699c52b4748194'
* commit '3919a4572690894d0a7ad4170d699c52b4748194':
  jpeglsenc: Check memory allocations

Conflicts:
	libavcodec/jpeglsenc.c

See: 48214956b2
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-29 03:47:15 +02:00
Michael Niedermayer
77010a41fe Merge commit 'f5ba67ee1342b7741200ff637fc3ea3387b68a1b'
* commit 'f5ba67ee1342b7741200ff637fc3ea3387b68a1b':
  flacenc: Move a scratch buffer to struct used by the function

Conflicts:
	libavcodec/flacenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-29 03:32:47 +02:00
Luca Barbato
0ac8ff618c avresample: Reallocate the internal buffer to the correct size
Fixes the corner case in which the internal buffer size
is larger than input buffer provided and resizing it
before moving the left over samples would make it write
to now unallocated memory.

Bug-Id: 825
CC: libav-stable@libav.org

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-04-28 23:51:51 +02:00
Andreas Cadhalpun
7c24ca1bda nutdec: fix illegal count check in decode_main_header
The existing check has two problems:
 1) i + count can overflow, so that the check '< 256' returns true.
 2) In the (i == 'N') case occurs a j-- so that the loop runs once more.

This can trigger the assertion 'nut->header_len[0] == 0' or cause
segmentation faults or infinite hangs.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-28 22:56:14 +02:00
Andreas Cadhalpun
361702660d nutdec: fix memleaks on error in nut_read_header
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-28 22:38:04 +02:00
Andreas Cadhalpun
3ff1af2b0d nutdec: check chapter creation in decode_info_header
This fixes a segmentation fault when accessing the metadata.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-28 22:22:48 +02:00
John Högberg
82de8d7111 mpegts: Update the PSI/SI table only if the version change
If a PAT is finished while a PMT section filter is opened but
not yet finished, the PMT section filter is closed and all
the received data is discarded.

This is usually not an issue but some multiplexers (With very
quick PAT/PMT repetition settings) consistently emit a PMT
section start, then a PAT, and then the rest of the PMT,
causing the aforementioned behavior to result in no PMT being
finished.

In the most pathologic situation the stream information are lost
and the probe fallback miscategorizes subtitles as mp3 audio.

Avoid the issue through eliminating redundant PSI/SI table
updates by checking their version field, which is required by
the standard to be incremented on every change no matter how
minor.

CC: libav-stable@libav.org

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-04-28 21:09:59 +02:00
Andreas Cadhalpun
6621105877 nutdec: check for negative frame rate in decode_info_header
A negative frame rate triggers an av_assert2 in av_rescale_rnd.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-28 20:37:11 +02:00
Michael Niedermayer
5bebd13d2d avcodec/vqavideo: Use ff_tlog() for byte and opcode tracing
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-28 19:55:39 +02:00
foo86
191dd219d9 avformat/dtsdec: Extend DTS core sync word
Check extended sync word for 16-bit LE and BE core streams to reduce
probability of alias sync detection. Previously sync word extension was
checked only for 14-bit streams.

This follows up the similar change in avcodec/dca_parser.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-28 19:29:47 +02:00
Vittorio Giovara
0c69164f45 h263: Convert function to macro 2015-04-28 16:33:09 +01:00
Vittorio Giovara
59dfc2b0c8 h263: Drop commented-out code and a related otherwise unused function 2015-04-28 16:31:05 +01:00
Vittorio Giovara
c341820130 jpeglsenc: Mark codec as init-thread-safe and init-cleanup
Fixes a memory leak on init failure.
2015-04-28 16:29:29 +01:00
Vittorio Giovara
3919a45726 jpeglsenc: Check memory allocations
Convert exisiting free functions to av_freep() to avoid accidental
double frees, and always intialize all buffers to NULL.
2015-04-28 16:27:16 +01:00
Vittorio Giovara
f5ba67ee13 flacenc: Move a scratch buffer to struct used by the function
This avoids allocating/freeing memory at every function call,
checking its return value, and carrying the error around.
2015-04-28 16:25:09 +01:00
Michael Niedermayer
e2877bdf38 ffmpeg: remove incorrect network deinit
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-28 15:57:21 +02:00
Andreas Cadhalpun
699341d647 apedec: prevent out of array writes in decode_array_0000
s->decoded_buffer is allocated with a min_size of:
    2 * FFALIGN(blockstodecode, 8) * sizeof(*s->decoded_buffer)

Then it is assigned to s->decoded[0] (and s->decoded_buffer + FFALIGN(blockstodecode, 8)
to s->decoded[1]) and passed as out buffer to decode_array_0000.

In this function 64 elements of the out buffer are written
unconditionally and outside the array if blockstodecode is too small.

This causes memory corruption, leading to segmentation faults or other
crashes.

Thus change decode_array_0000 to write at most blockstodecode elements
of the out buffer.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-28 12:43:13 +02:00
Maneesh Gupta
91305c6026 OpenCL: Fix ABI incompatibility issues
AVOpenCLDeviceNode and AVOpenCLPlatformNode used fixed static buffer for holding the device and platform name.
This patch modifies these structures to use pointers instead. The memory required to hold the names is
now dynamically allocated, the size for which is determined by querying appropriate OpenCL runtime APIs.

Signed-off-by: Maneesh Gupta <maneesh.gupta@amd.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-28 12:28:53 +02:00
Maneesh Gupta
cf234552b8 OpenCL: Avoid potential buffer overflow in cmdutils_opencl.c
The opt_opencl_bench function copied the device name using strcpy without checking if the source string was larger.
This patch fixes this by replacing the strcpy with av_strlcpy, with the string copy size capped to the destination buffer size.

Signed-off-by: Maneesh Gupta <maneesh.gupta@amd.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-28 12:18:23 +02:00
Vignesh Venkatasubramanian
b410c69fb6 webmdashenc: Fix UTCTiming Element
Remove the direct profile from UTCTiming element. Per DASH spec,
direct profile value should be the time at which the request was
made to the server and not the time at which the manifest was
written. So ffmpeg cannot write this value. This patch removes
the direct profile and write the UTCTiming element with the http
profile only if a URL is passed as a parameter. Update the fate
test to reflect this change.

Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-28 03:39:07 +02:00
Andreas Cadhalpun
464c49155c apedec: set s->samples only when init_frame_decoder succeeded
Otherwise range_start_decoding is not necessarily run and thus
ctx->rc.range still 0 in range_dec_normalize leading to an infinite
loop.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-28 03:21:12 +02:00
Vignesh Venkatasubramanian
8ca170a78a libavformat/webm_chunk: Write first audio packet.
Fix a bug where the chunk muxer doesn't write the very first audio
packet (with pts == 0).

Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-28 02:27:01 +02:00
Michael Niedermayer
0e7444f6e4 avcodec/hevc: Remove current_sps
The variable should not be needed anymore

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-28 00:04:58 +02:00
Clément Bœsch
2879a4ecb9 tests: make sure subtitles tests are run with a rawdiff
This will test properly CRLF with make fate, make fate-subtitles and any
make fate-sub-* test. Before this commit, the rawdiff was triggered only
by make fate-subtitles.

Also make sure fate-sub-* only match the tests relying on fmtstdout
command, to at least avoid failing on MingW. See
https://ffmpeg.org/pipermail/ffmpeg-devel/2015-April/172395.html
2015-04-27 18:25:38 +02:00
Clément Bœsch
11d29277d6 tests/subtitles: fix microdvd crlf in ref 2015-04-27 18:23:32 +02:00
Alexis Ballier
6fe2afaa71 Adapt libavcodec/tableprint_vlc.h to the av_dlog -> ff_dlog change.
This fixes the build with --enable-hardcoded-tables that was broken since [8f7b022c8c].

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-27 17:57:50 +02:00
ZhouXiaoyong
4a7b50679d makefile: add Loongson-3 support
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-27 14:10:28 +02:00
Rong Yan
8a03d428f1 avcodec/ppc/fdctdsp: POWER LE support in ff_fdct_altivec() delete macros VEC_FMERGEH() VEC_FMERGEL(), they where wrong
GCC tool had a bug of PPC intrinsic interpret, which has been fixed in GCC 4.9.1. This bug lead to
errors in two of our previous patches. We found this when we update our GCC tools to 4.9.1 and by
reading the related info on GCC website. We fix our previous error in two separate commits

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-27 12:59:15 +02:00
Rong Yan
603c839398 swscale/ppc/swscale_altivec.c: POWER LE support in yuv2planeX_8() delete macro GET_VF() it was wrong
GCC tool had a bug of PPC intrinsic interpret, which has been fixed in GCC 4.9.1. This bug lead to
errors in two of our previous patches. We found this when we update our GCC tools to 4.9.1 and by
reading the related info on GCC website. We fix our previous error in two separate commits

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-27 12:59:05 +02:00
Michael Niedermayer
46778ab212 avformat/aviobuf: Do not resize the buffer in ffio_ensure_seekback() if there is no read function
Without a read function there can never be more data read than the buffer could
hold

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-27 05:06:36 +02:00
ZhouXiaoyong
0ace686ae8 avcodec: optimize mathops for Loongson-3 v1
HAVE_LOONGSON is replaced by HAVE_LOONGSON3. Even Loongson-2E and 2F support
Loongson SIMD instructs but have low performance for decoding. We plan to focus
on optimizing Loongson-3A1000, 3B1500 and 3A1500, and modify the configure file
to support Loongson-2 series later by adding HAVE_LOONGSON2.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-27 02:25:12 +02:00
Michael Niedermayer
4b8a819496 avcodec/ffv1enc: set bits_per_raw_sample for 8bit based formats
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-26 21:23:14 +02:00
Michael Niedermayer
81e40c26e1 avcodec/ffv1enc: Ensure that bits per raw sample is valid
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-26 21:09:17 +02:00
Matteo Nastasi (mop)
9c3c7b4579 avutil/log: more complete description of av_log function 2015-04-26 16:34:06 +02:00
Michael Niedermayer
7104301638 avcodec/rv10: Use ff_tlog() for block level tracing
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-26 16:29:23 +02:00
Michael Niedermayer
e06dde52d7 avcodec/dvbsubdec: Do not return a value from a function returning void
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-26 13:47:12 +02:00
Michael Niedermayer
0b13f42238 avcodec/interplayvideo: Use ff_tlog() for block level decode tracing
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-26 12:59:44 +02:00
Michael Niedermayer
febbb3cbd3 avcodec/h264_slice: Change a few asserts to av_assert*
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-26 12:59:30 +02:00
Michael Niedermayer
fa2d3b6dbe Merge commit '5aed1d4240d411533c102eec6944aa925b7f4964'
* commit '5aed1d4240d411533c102eec6944aa925b7f4964':
  vaapi: Fix -Wimplicit-function-declaration for ff_dlog() usage

See: 8f7b022c8c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-26 01:22:39 +02:00
Michael Niedermayer
7b94a2f4b1 avcodec/ituh263dec: Use ff_tlog() for block level information
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-26 01:00:05 +02:00
Michael Niedermayer
d52a8bf158 avcodec/h264_cabac: Use ff_tlog() for block level information
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-26 00:58:51 +02:00
Rico Tzschichholz
5aed1d4240 vaapi: Fix -Wimplicit-function-declaration for ff_dlog() usage
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-04-26 00:07:41 +02:00
Michael Niedermayer
9d3357391c avcodec/mpeg12dec: Make ff_dlog() messages more clear
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-25 20:23:28 +02:00
Michael Niedermayer
f4c311fef4 avcodec/mpeg12dec: Change mb decode tracing stuff to use ff_tlog()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-25 19:42:49 +02:00
Michael Niedermayer
a3110beebd avutil/softfloat: document av_int2sf()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-25 14:51:02 +02:00
ZhouXiaoyong
663321ed50 configure: add Loongson-3 support
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-25 13:45:19 +02:00
ZhouXiaoyong
6c5ef7f657 avcodec/mips: disable assembly not supported for Loongson-3
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-25 13:17:28 +02:00
Michael Niedermayer
d49210788b avcodec/snowenc: Mark as FF_CODEC_CAP_INIT_THREADSAFE and FF_CODEC_CAP_INIT_CLEANUP
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-25 12:58:17 +02:00
Michael Niedermayer
ee8ce211ea libavcodec/snowdec: Mark as FF_CODEC_CAP_INIT_THREADSAFE and FF_CODEC_CAP_INIT_CLEANUP
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-25 04:50:47 +02:00
Michael Niedermayer
75a730a22b avformat/format: Add generic trace av_log in av_probe_input_format3()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-25 03:43:59 +02:00
Niklesh
0ec3abeb8d avcodec/movtextdec: Decoding of Bold-Italic_Underlined styles for 3gpp timed text subtitles
Signed-off-by: Niklesh <niklesh.lalwani@iitb.ac.in>
Previous version reviewed-by: Philip Langdale <philipl@overt.org>
Previous version reviewed-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-25 00:23:44 +02:00
Michael Niedermayer
cea62a90c0 Merge commit 'cfdaa4de6c496b0b761c763cd18067cb1af268a7'
* commit 'cfdaa4de6c496b0b761c763cd18067cb1af268a7':
  dss_sp: use lowercase codec name without whitespace

See: 35e855d5b6
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-24 23:24:16 +02:00
Michael Niedermayer
c949a4500e avcodec/libxvid: remove now redundant init cleanup code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-24 23:12:02 +02:00
Michael Niedermayer
437bdf482e Merge commit '18db1286b04557aa2d2df7efbcb65ae825d5a469'
* commit '18db1286b04557aa2d2df7efbcb65ae825d5a469':
  libxvid: Make codec use the init-cleanup flag and mark it as init-thread-safe

Conflicts:
	libavcodec/libxvid.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-24 23:11:34 +02:00
Michael Niedermayer
c180f0f6d3 Merge commit 'eae7338e1592f4a398b7c3cb9d1ac854b7a44ff8'
* commit 'eae7338e1592f4a398b7c3cb9d1ac854b7a44ff8':
  libx264: Make codec use the init-cleanup flag and mark it as init-thread-safe

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-24 22:21:17 +02:00
Michael Niedermayer
9ba1c62775 Merge commit '74a1cad7e3ba79e5b1e5b2e2bcf6179520442679'
* commit '74a1cad7e3ba79e5b1e5b2e2bcf6179520442679':
  lclenc: Mark codec as init-thread-safe and init-cleanup

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-24 22:21:00 +02:00
Michael Niedermayer
8d5088a168 Merge commit 'bb428e00ac158244d6691bf135be404e85b66a8b'
* commit 'bb428e00ac158244d6691bf135be404e85b66a8b':
  hqx: Mark codec as init-thread-safe and init-cleanup

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-24 22:00:35 +02:00
Michael Niedermayer
f2978aa7ed Merge commit '43171886e08b6a2f20a1e2f3ecc95a7984b591cd'
* commit '43171886e08b6a2f20a1e2f3ecc95a7984b591cd':
  huffyuvenc: Mark codec as init-thread-safe and init-cleanup

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-24 21:48:27 +02:00
Michael Niedermayer
a649650a0e Merge commit 'd90133b77bf69667d10e54de9aae7da223c6876a'
* commit 'd90133b77bf69667d10e54de9aae7da223c6876a':
  asvenc: Mark codec as init-thread-safe and init-cleanup

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-24 21:37:53 +02:00
Michael Niedermayer
0d3821a6df Merge commit 'a4edaeb50fc7510f28a5d79349a7926a182c9930'
* commit 'a4edaeb50fc7510f28a5d79349a7926a182c9930':
  hq_hqa: Fix table data for profile 17

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-24 21:27:15 +02:00
Michael Niedermayer
861dec5e90 Merge commit 'b17cbb0b1c4fdf8324eff24d40a02201bfaebfd3'
* commit 'b17cbb0b1c4fdf8324eff24d40a02201bfaebfd3':
  riff: Add GMP4 fourcc for mpeg4

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-24 21:17:11 +02:00
Michael Niedermayer
9c56cf09ca Merge commit '3c04ec04df8cba12f3a7408709ff5c1fddfe8d82'
* commit '3c04ec04df8cba12f3a7408709ff5c1fddfe8d82':
  riff: Add GLV4 fourcc for mpeg4

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-24 21:09:03 +02:00
Michael Niedermayer
036162a378 Merge commit '5bba3ab0cf7a0238ee1ea31ca2da08ce860fd8f9'
* commit '5bba3ab0cf7a0238ee1ea31ca2da08ce860fd8f9':
  internal: Make dlog/tlog a no-op when disabled

Conflicts:
	libavcodec/internal.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-24 20:49:45 +02:00
Michael Niedermayer
10a28e8a08 Merge commit 'b90adb0aba073f9c1b4abca852119947393ced4c'
* commit 'b90adb0aba073f9c1b4abca852119947393ced4c':
  rtsp: Make sure we don't write too many transport entries into a fixed-size array

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-24 20:37:51 +02:00
Shivraj Patil
97f074f134 avcodec/mips: MSA (MIPS-SIMD-Arch) optimizations for HEVC copy and hv mc functions
Incorporated review comment.
Removed "__" from volatile.

Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
Reviewed-by: Nedeljko Babic <Nedeljko.Babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-24 17:12:04 +02:00
Ronald S. Bultje
5d914a4a43 vp9: add fate test for intraonly frames.
Sample available at:
http://downloads.webmproject.org/test_data/libvpx/vp90-2-16-intra-only.webm
2015-04-24 16:54:31 +02:00
Ronald S. Bultje
640d878bc1 vp9: fix intraonly frame decoding. 2015-04-24 16:54:31 +02:00
Ronald S. Bultje
0eccf7d43a vp9: add fate test for segmentation image-edge issue.
Sample available at:
http://downloads.webmproject.org/test_data/libvpx/vp90-2-15-segkey_adpq.webm
2015-04-24 16:54:31 +02:00
Ronald S. Bultje
ed45edb2f6 vp9: use aligned size to write segmentation map into cache.
The unaligned size is not handled in setctx_2d(), causing edges of images
to have improper segmentation prediction, which causes visual artifacts
at image edges a few frames later.
2015-04-24 16:54:31 +02:00
Ronald S. Bultje
3de13d5212 vp9: remove another optimization branch in iadst16 which causes overflows.
See sample vp90-2-14-resize-fp-tiles-16-8.webm from the vp9 test vector
set to reproduce the issue.
2015-04-24 16:54:31 +02:00
Ronald S. Bultje
4b02032fb4 vp9: add fate tests for show-existing-frame feature.
Samples available at:
http://downloads.webmproject.org/test_data/libvpx/vp90-2-10-show-existing-frame.webm
http://downloads.webmproject.org/test_data/libvpx/vp90-2-10-show-existing-frame2.webm

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-24 16:37:05 +02:00
Ronald S. Bultje
345e3be7ba vp9: add lf_deltas fate test.
Sample available at:
http://downloads.webmproject.org/test_data/libvpx/vp90-2-09-lf_deltas.webm

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-24 16:36:36 +02:00
Andreas Cadhalpun
cfdaa4de6c dss_sp: use lowercase codec name without whitespace
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-04-24 14:55:11 +01:00
Vittorio Giovara
18db1286b0 libxvid: Make codec use the init-cleanup flag and mark it as init-thread-safe
This takes care of memory leaks on init error.
2015-04-24 14:55:11 +01:00
Vittorio Giovara
eae7338e15 libx264: Make codec use the init-cleanup flag and mark it as init-thread-safe
This takes care of memory leaks on init error.
2015-04-24 14:55:11 +01:00
Vittorio Giovara
74a1cad7e3 lclenc: Mark codec as init-thread-safe and init-cleanup 2015-04-24 14:55:11 +01:00
Vittorio Giovara
bb428e00ac hqx: Mark codec as init-thread-safe and init-cleanup 2015-04-24 14:55:11 +01:00
Vittorio Giovara
43171886e0 huffyuvenc: Mark codec as init-thread-safe and init-cleanup 2015-04-24 14:55:11 +01:00
Vittorio Giovara
d90133b77b asvenc: Mark codec as init-thread-safe and init-cleanup 2015-04-24 14:55:10 +01:00
Vittorio Giovara
a4edaeb50f hq_hqa: Fix table data for profile 17
The table had a wrong table height and was missing the first line of bytes.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-04-24 14:55:10 +01:00
Vittorio Giovara
b17cbb0b1c riff: Add GMP4 fourcc for mpeg4 2015-04-24 14:55:10 +01:00
Vittorio Giovara
3c04ec04df riff: Add GLV4 fourcc for mpeg4 2015-04-24 14:55:10 +01:00
Vittorio Giovara
5bba3ab0cf internal: Make dlog/tlog a no-op when disabled
Improves Coverity analysis, avoiding "double semicolon" CIDs.
2015-04-24 14:55:10 +01:00
Martin Storsjö
b90adb0aba rtsp: Make sure we don't write too many transport entries into a fixed-size array
CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-04-24 16:07:14 +03:00
wm4
537ab68053 avformat/mp3: large id3 tags break concatenated file detection
If the file size is much larger than what is indicated in the XING
header, the demuxer assumes it's a concatenated file, and throws away
the (presumably) incorrect duration information. Unfortunately, this
also triggers if the id3 tags are very large (embedded pictures and
such). Then the half-baked heuristic not only breaks the duration
display, but also gapless audio.

Fix it by subtracting the size of the headers (the check is off by some
bytes, but that doesn't matter at all). Note that there could be an
arbitrary amount of tags _after_ the mp3 data, but hopefully these are
not too large to trigger the heuristic in practice.

Also add a warning when this happens.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-24 15:06:54 +02:00
Giorgio Vazzana
00a452a9ad lavd/v4l2: print buffer flags in case of error
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-24 13:25:40 +02:00
Clément Bœsch
8e985b7271 avutil/frame: fix everythnig/everything typo 2015-04-24 10:57:03 +02:00
James Zern
db3f86871e libvpxdec: cosmetics: reindent
Signed-off-by: James Zern <jzern@google.com>
2015-04-24 00:00:20 -07:00
James Zern
e07ef1ada3 libvpxenc: cosmetics: reindent
Signed-off-by: James Zern <jzern@google.com>
2015-04-24 00:00:12 -07:00
James Zern
238ec505e2 libvpxenc: only set noise reduction w/vp8
this quiets a warning:
Failed to set VP8E_SET_NOISE_SENSITIVITY codec control: Unspecified
internal error

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Zern <jzern@google.com>
2015-04-23 23:59:41 -07:00
James Zern
acb07f33c4 git-howto.texi: fix a typo
replace 'Refer to and to sync...' with a reference to the section that
discusses updated the source tree.

Reviewed-by: Timothy Gu <timothygu99@gmail.com>
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Zern <jzern@google.com>
2015-04-23 23:56:21 -07:00
wm4
0f776df09e avformat/wvdec: fix seeking
While I'm not sure why exactly sure why the old code could end up in the
wrong position, using the generic index code is much simpler and is
known to work correctly.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-24 03:43:56 +02:00
Michael Niedermayer
cd69c0e018 Merge commit '1bd2646a6da808f6f9881525771db098c54bc3d2'
* commit '1bd2646a6da808f6f9881525771db098c54bc3d2':
  rtpenc_jpeg: Handle case of picture dimensions not dividing by 8

Conflicts:
	libavformat/rtpenc_jpeg.c

See: 7f64a7503b
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-24 03:08:19 +02:00
Michael Niedermayer
f8951d36df Merge commit 'eb7ddb5066843ab16caf33b05eafb2576648b797'
* commit 'eb7ddb5066843ab16caf33b05eafb2576648b797':
  rtsp: Don't warn about unparsed time ranges

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-24 03:00:37 +02:00
Michael Niedermayer
c0d847e457 tests/fate-run: do not attempt to parse tiny_psnrs output if it failed
This avoids confusing syntax errors with awk later

Likely fixes awk errors at:
http://buildd.debian-ports.org/status/fetch.php?pkg=ffmpeg&arch=sparc64&ver=7%3A2.6.2-1&stamp=1428928967

Reviewed-by: Timothy Gu <timothygu99@gmail.com>
Thanks-to: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com> for the link
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-24 01:45:39 +02:00
Andreas Cadhalpun
4b657a1b1e alac: reject rice_limit 0 if compression is used
If rice_limit is 0, k can be 0 in decode_scalar, which calls show_bits(gb, k).

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-24 01:15:41 +02:00
Andrey Utkin
1bd2646a6d rtpenc_jpeg: Handle case of picture dimensions not dividing by 8
This fixes the calculation of the number of needed blocks to make
sure that ALL pixels are represented by the result.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-04-23 23:20:03 +03:00
Martin Storsjö
eb7ddb5066 rtsp: Don't warn about unparsed time ranges
This removes the error logging added in 4e54432164.

This avoids warnings about "Invalid interval start specification 'now'"
for live rtsp streams.

We only try to parse some of the many valid values for time ranges
in RTSP - the other ones are fully valid but not interesting for the
use case in rtsp.c, so we shouldn't warn about them.

(Parsing the time ranges is needed to allow seeking, but e.g. setting
the current realtime clock for the start time doesn't make sense.
av_parse_time has got a different mode for parsing absolute times
as well, which can handle the special case "now", but that doesn't
make much sense for this particular use in rtsp.c.)

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-04-23 23:20:02 +03:00
Michael Niedermayer
802c0af68f Merge commit '358b7ec3099eca6e999ad9dc0da0a23571a7a2f8'
* commit '358b7ec3099eca6e999ad9dc0da0a23571a7a2f8':
  fate: Fix test name for pixfmts tests

Conflicts:
	tests/fate-run.sh

See: e1ee0521a6
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-23 22:16:54 +02:00
Michael Niedermayer
8d31b22869 Merge commit '0a51c7d42a519c63178a4f3e35b8967f21da3a6a'
* commit '0a51c7d42a519c63178a4f3e35b8967f21da3a6a':
  prores: Set the bits_per_coded_sample for alpha pix_fmt

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-23 22:04:37 +02:00
Michael Niedermayer
400810abee Merge commit '28eddef689f2b4843a84f7d05fd9614246f92cc4'
* commit '28eddef689f2b4843a84f7d05fd9614246f92cc4':
  hq_hqa: Validate get_vlc2 return value

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-23 21:57:16 +02:00
Michael Niedermayer
b112e25dde Merge commit 'a78f5548d94f23ce23cece41edf0fe9d18926de6'
* commit 'a78f5548d94f23ce23cece41edf0fe9d18926de6':
  avcodec: Free the default avoptions on init failure

See: 1907ff0a67
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-23 21:41:23 +02:00
Michael Niedermayer
c39b07ff28 Merge commit 'aef0be08756e00f363c524453c948a6e2a348614'
* commit 'aef0be08756e00f363c524453c948a6e2a348614':
  avcodec: Unref the dummy buffer on the fail path

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-23 21:20:07 +02:00
Michael Niedermayer
16576a6662 Merge commit '8eb57dc9d5ea13c12573e0759da0f7e79825af98'
* commit '8eb57dc9d5ea13c12573e0759da0f7e79825af98':
  buffersrc: Use the correct deallocation function

See: a6df9ce615
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-23 21:09:52 +02:00
Michael Niedermayer
b57f9f5724 swscale/swscale: Get rid of the SWS_GAMMA_CORRECT flag
This avoids using up a bit of the public flags

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-23 20:34:51 +02:00
Pedro Arthur
2a7128f4ed Add gamma encodign/decoding before/after scaling in libswscale
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-23 20:34:51 +02:00
Ronald S. Bultje
d9555adf06 vp9: set timestamps for show_existing_frame return images.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-23 20:34:51 +02:00
Andreas Cadhalpun
58d605ee9b alsdec: only adapt order for positive max_order
For max_order = 0 the clipping range is invalid. (amin = 2, amax = 1)

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-23 16:51:46 +02:00
Ronald S. Bultje
c82e870c12 vp9: maintain lf_delta values if feature is turned off.
This is required if it's subsequently re-enabled with no value updates
(which means, use values that were previously set).

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-23 15:55:15 +02:00
Ronald S. Bultje
d02619fde3 vp9: add fate test for bilinear MC filter.
Sample at:
http://downloads.webmproject.org/test_data/libvpx/vp90-2-06-bilinear.webm

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-23 15:55:10 +02:00
Michael Niedermayer
06747f8484 tests/tiny_psnr: do not ignore errors from run_psnr
failure to calculate psnr should not result in tiny_psnr returning success

Reviewed-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-23 15:39:36 +02:00
Vittorio Giovara
32da94fa7f lavf: Reset global flag on deinit
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-23 13:55:55 +02:00
Vittorio Giovara
45340f9fc7 network: Do not leave context locked on error
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-23 13:42:33 +02:00
wm4
60191e3aec fate: add mp3 CBR seek test
This tests the "old", now non-default seek mode, and this requires a
special extra argument.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-23 12:56:31 +02:00
Timothy Gu
358b7ec309 fate: Fix test name for pixfmts tests
The last pixel format gets leaked as `$test` further down the pipeline.

See for example https://fate.libav.org/x86_32-netbsd-clang-no-inline-asm/20150420020104
Note the odd test names like “yuvj444p.”

CC: libav-stable@libav.org

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-04-23 12:47:00 +02:00
Ronald S. Bultje
df287f3e43 vp9: add fate size for resolution changes.
See sample:
http://downloads.webmproject.org/test_data/libvpx/vp90-2-05-resize.ivf

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-23 05:10:02 +02:00
Ronald S. Bultje
e8b4f6d6be vp9: add support for resolution changes in inter frames.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-23 05:09:51 +02:00
James Almer
d7f62f033c fate: add cinepak encoder vsynth tests
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-23 04:44:45 +02:00
Tucker DiNapoli
cbe27006ce postproc: Made QP, nonBQP, and pQPb arrays
Also pulled QP initialization out of inner loop, which removed some redundent code.

Added some dummy fields to PPContext to allow current code to work while
changing the rest of the postprocessing code to support the arrays.

I also increased alignment requirements for some fields in the PPContext struct to
support future avx2 code.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-22 23:59:03 +02:00
Tucker DiNapoli
6264b6227c postproc: Replaced inline asm for prefetching with prefetch functions
Prefetching functions are defined in postprocess_template using the
RENAME macro so that prefetching is used when available. For x86
targets inline asm is used and the functions are non-empty only for
cpus where prefetching is available. For non x86 targets the gcc bultin
prefetch is used if it is available, otherwise no prefetching is done.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-22 23:32:35 +02:00
wm4
748d4816d9 avformat: add AVFMT_FLAG_FASTSEEK, use it for mp3
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-22 22:27:05 +02:00
Ronald S. Bultje
d02d04a18f vp9: remove one optimization branch in iadst16 which causes overflows.
See sample vp90-2-14-resize-fp-tiles-16-8-4-2-1.webm from the vp9 test
vector set which reproduces the issue. This probably costs a few cycles,
but I don't think there's an easy way to workaround that.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-22 21:37:10 +02:00
Luca Barbato
0a51c7d42a prores: Set the bits_per_coded_sample for alpha pix_fmt
Improve the compatibility with other software.
2015-04-22 20:50:10 +02:00
Andreas Cadhalpun
86d00ede4f bink: check vst->index_entries before using it
This fixes a NULL pointer dereference if vst->duration is 0.

The problem was introduced in commit 0588acaf.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-22 20:22:19 +02:00
Mate Sebok
4d98015dcf dshow: add capture device save and load
Signed-off-by: Mate Sebok <smfinc.org@gmail.com>
Reviewed-by: Roger Pack <rogerdpack2@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-22 20:12:36 +02:00
wm4
53ff9a4ec9 fate: gapless: remove useless tests
These could be kept, but they are not overly useful. The only thing they
had over the remaining mp3 gapless test was seeking, which was incorrect
in the toc test, and only by chance correct in the notoc test.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-22 19:28:07 +02:00
Ludmila Glinskih
5adee9c0af api-flac-test: Coding style
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-22 17:45:51 +02:00
Andreas Cadhalpun
b3408ae4c6 mpeg4videodec: only allow a positive length
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-22 16:57:52 +02:00
Andreas Cadhalpun
35e855d5b6 dss_sp: use lowercase codec name without whitespace
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-22 16:39:26 +02:00
wm4
58fade2c68 avformat/mp3dec: make generic index mode the default
It's the most useful mode, because it seeks accurately, and does not
break features like gapless audio.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-22 14:41:57 +02:00
wm4
c3a73666ad avformat/mp3dec: allow enabling generic seek mode
"-usetoc 2" now invokes the generic seek and indexing mode. This mode
skips data until the seek target is reached, and this is exact. It also
makes gapless audio actually work if a seek past the start of the file
is involved.

Change the fate-gapless-mp3 test to use the new mode, and move the old
one to fate-gapless-mp3-toc (since the test forces use of the Xing TOC).
The new mode has a different result for the seek - this result is
actually correct.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-22 14:33:02 +02:00
wm4
066b92e91d avformat/mp3dec: use the common mechanism for skipping samples
The mp2 seek test results change. Whether to skip samples if the file
had no LAME gapless tags was inconsistent. When seeking to the start
of the file, 529 samples were skipped, but when playing from start,
nothing was skipped. This commit changes the behavior on seek to skip
nothing.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-22 14:16:35 +02:00
wm4
7dd8bf53bd avformat: add common mechanism for skipping samples at the start of file
This makes using the generic indexing code with mp3 easier at a later
point.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-22 14:05:46 +02:00
Luca Barbato
28eddef689 hq_hqa: Validate get_vlc2 return value
The `hq_ac_vlc.table` is incomplete, so unaccounted symbol return -1
as value.
2015-04-22 12:27:43 +02:00
Luca Barbato
a78f5548d9 avcodec: Free the default avoptions on init failure 2015-04-22 12:27:13 +02:00
Luca Barbato
aef0be0875 avcodec: Unref the dummy buffer on the fail path 2015-04-22 12:27:13 +02:00
Federico Tomassetti
8eb57dc9d5 buffersrc: Use the correct deallocation function
This correction was suggested to me by Michael Niedermayer

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-04-22 12:26:53 +02:00
Andreas Cadhalpun
afc7748d1f alsdec: check sample pointer range in revert_channel_correlation
Also change the type of begin, end and smp to ptrdiff_t to make the
comparison well-defined.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Reviewed-by: Thilo Borgmann <thilo.borgmann@mail.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-22 12:02:25 +02:00
Vignesh Venkatasubramanian
f82ce6aa88 webmdashenc: parameter'ize minimumUpdatePeriod
Some players do not support setting minimumUpdatePeriod to zero.
This patch adds a new parameter that will let the users set any
value to this field. Also updates the test and the documentation.

Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-22 11:41:03 +02:00
James Almer
ba625dd8a1 avcodec: use av_mod_uintp2() where useful
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-04-21 22:41:20 -03:00
Vignesh Venkatasubramanian
4f287a3c50 webmdashenc: Add minimumUpdatePeriod
DASH spec requires the presence of either duration of the period
or the minimumUpdatePeriod element. This patch adds the
minimumUpdatePeriod element hardcoded with the value 0 as the
manifest will never be updated for WebM DASH Live streams. Also
updating the fate test reference file.

Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-22 01:43:37 +02:00
Andreas Cadhalpun
ca9849eecd aacpsy: correct calculation of minath in psy_3gpp_init
The minimum of the ath(x, ATH_ADD) function depends on ATH_ADD.
This patch uses the first order approximation to determine it.

For ATH_ADD = 4 this results in the value at 3407.06812 (-5.24241638)
not the one at 3410 (-5.24237967).

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Approved-by: Claudio Freire <klaussfreire@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-22 01:18:14 +02:00
Chris Watkins
0703c44692 avformat/mov.c: Use %d to print an enum, not PRIu8
Using the PRIu8 format specifier to print an enum value causes a
compiler warning, so use %d instead.

Fixes ticket #4467.

Signed-off-by: Chris Watkins <watk@chromium.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-21 23:48:07 +02:00
Michael Niedermayer
a79cbc0b8e avfilter/vf_qp: Fix use of uinitialized variable
Found-by: <Timothy_Gu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-21 22:54:13 +02:00
Michael Niedermayer
122150168f Merge commit '9b2c57bef5e2f3f61a5fd708ba7d5351f5b3f386'
* commit '9b2c57bef5e2f3f61a5fd708ba7d5351f5b3f386':
  drawtext: Add an alpha option

Conflicts:
	doc/filters.texi
	libavfilter/vf_drawtext.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-21 20:20:58 +02:00
Paul B Mahol
77e794908b avcodec/hq_hqa: remove superfluous log message
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-04-21 13:19:32 +00:00
Michael Niedermayer
8f9a3817d5 avfilter/vf_qp: fix cleanup on error
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-21 14:11:30 +02:00
Luca Barbato
9b2c57bef5 drawtext: Add an alpha option
And document both `draw` and `alpha`.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-04-21 11:13:30 +02:00
Michael Niedermayer
a924b83ccc avformat/nsvdec: remove trace log from probe(), this is better done generically not per format
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-21 02:19:07 +02:00
Michael Niedermayer
ecf34e8fc2 avformat/mp3dec: Adjust returned timestamp in the CBR seeking case
With this the returned timestamp should match the packet instead of
the requested timestamp, which may lay between  packets

Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-21 01:31:28 +02:00
Vignesh Venkatasubramanian
30ba28fe8e webmdashenc: Fix potential memory leak
Fix potential memory leak in WebM DASH Muxer. This fixes coverity
scan CID 1295088.

Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-21 01:12:27 +02:00
Michael Niedermayer
ba631b7914 avformat/utils: Ensure that AVFMT_FLAG_CUSTOM_IO is set before use
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-21 00:58:11 +02:00
Deb Mukherjee
26a0bcb15b Support for VP9 high-color/high-bit-depth encoding
Patch to support VP9 encoding with new profiles 1-3.
Profile 1 (8-bit 422/444) should work with default libvpx
configuration.
However you will need to configure libvpx with
--enable-vp9-highbitdepth before building and linking
with ffmpeg for profile 2 (10-/12-bit 420) and profile 3
(10-/12-bit 422/444) encoding.

You may use the appropriate profile option on the
command line:
-profile:v 1 for 422/444 8-bit encoding
-profile:v 2 for 420 10-/12- bit encoding
-profile:v 3 for 422/444 10-/12-bit encoding
If you do not use the -profile:v option, it will be deduced
from the source format.

Signed-off-by: James Zern <jzern@google.com>
2015-04-20 15:24:13 -07:00
Michael Niedermayer
e6e8cc8ce9 avformat/img2dec: do not rewind custom io buffers
Fixes double free with some applications

Fixes vlc ticket14121
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 23:59:53 +02:00
Michael Niedermayer
954b5e340e Merge commit 'eaa2d123f0a643664721593d248ece6bcd85f1e6'
* commit 'eaa2d123f0a643664721593d248ece6bcd85f1e6':
  log: Print a full backtrace along with error messages under Valgrind

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

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 23:30:33 +02:00
Michael Niedermayer
1a41415b2a Merge commit 'bd5ad8b23d0f7d469ca30d03deca879993eb0431'
* commit 'bd5ad8b23d0f7d469ca30d03deca879993eb0431':
  hq_hqa: Fix reading hqa quantization matrix index

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 23:20:36 +02:00
Michael Niedermayer
2f8f5027ad Merge commit '1746dc382ddbf3f8a3f039815644f7eb9076110e'
* commit '1746dc382ddbf3f8a3f039815644f7eb9076110e':
  hqxdsp.h: #include "stddef.h"

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 23:13:16 +02:00
Michael Niedermayer
5380c9afb9 Merge commit '98cab39798612dcaea4f9b6d1e7974bc60d84e13'
* commit '98cab39798612dcaea4f9b6d1e7974bc60d84e13':
  lavf: Fix variables constness in ff_iso8601_to_unix_time()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 23:00:08 +02:00
Michael Niedermayer
037c9c25e6 Merge commit '86e1a35802df42f51337d3fed8d5d99d0898c8bf'
* commit '86e1a35802df42f51337d3fed8d5d99d0898c8bf':
  h264_ps: Return meaningful error codes and address a memory leak

Conflicts:
	libavcodec/h264_ps.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 22:49:50 +02:00
Michael Niedermayer
e6831c087e Merge commit '338ed3ed33c412c2828446c4e2a76949161fec6a'
* commit '338ed3ed33c412c2828446c4e2a76949161fec6a':
  ffv1: Pass correct pointers to av_free()

Conflicts:
	libavcodec/ffv1.c

See: a3963cc8ec
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 22:46:46 +02:00
Michael Niedermayer
a570e81234 Merge commit '3b1e35d46dc910cef1d66f6964e6800cae5fc89b'
* commit '3b1e35d46dc910cef1d66f6964e6800cae5fc89b':
  fate: Omit the results if the test passed

See: 1a562adb01
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 22:33:04 +02:00
Michael Niedermayer
d108820c2e Merge commit 'd34039b171bebe37bf723a1b03e5651267099739'
* commit 'd34039b171bebe37bf723a1b03e5651267099739':
  rmenc: Drop the temporary buffer for ac3 byteswap

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 22:24:38 +02:00
Michael Niedermayer
3cd6f4546a Merge commit '656e31ed8728b0c095d037dc9764fc8137c87200'
* commit '656e31ed8728b0c095d037dc9764fc8137c87200':
  ogg: Forward errors further

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 22:12:08 +02:00
Michael Niedermayer
a5379d6e68 Merge commit 'b18346817d57c96cc47811cf78b26653e96bd304'
* commit 'b18346817d57c96cc47811cf78b26653e96bd304':
  flac: fix realloc loop with invalid flac files

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 22:08:28 +02:00
Michael Niedermayer
5a14fca9aa Merge commit '2cc3936599b6fc63143036659653d1be0624360f'
* commit '2cc3936599b6fc63143036659653d1be0624360f':
  dashenc: Add a publishTime field in dynamic manifests

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 21:45:56 +02:00
Vittorio Giovara
eaa2d123f0 log: Print a full backtrace along with error messages under Valgrind
Useful to understand where and in what execution state a certain message
is generated. It is enabled only when optimizations are disabled, since
function names are not printed otherwise.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-04-20 19:20:57 +01:00
Vittorio Giovara
bd5ad8b23d hq_hqa: Fix reading hqa quantization matrix index
Value is stored as a byte.
2015-04-20 19:20:22 +01:00
Vittorio Giovara
1746dc382d hqxdsp.h: #include "stddef.h"
It is required by ptrdiff_t, fixes make checkheaders.
2015-04-20 19:19:23 +01:00
wm4
1e2e22ec61 fate: gapless: fix mp3 tests
Seeking to a negative time did not have the desired effect of seeking to
the next valid position (the file start). On the other hand, just
"-ss 0" will normally seek to a position higher than 0, because it adds
the start time of the file. (The start time is not 0 because the gapless
code skips a few samples from the start.)

Fix this by using the "-seek_timestamp 1" option, which makes "-ss 0" do
what you'd expect it would do.

Also put the -ss option at the right place, before -i. This actually
makes it seek, instead of something completely else. The ".out-3" test
is no different in the -usetoc 0/1 cases, because the seeking is
inaccurate (in both cases).

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 19:50:58 +02:00
wm4
bac7084fbd ffmpeg: add option not to offset seek position by start time
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 19:50:58 +02:00
Vittorio Giovara
98cab39798 lavf: Fix variables constness in ff_iso8601_to_unix_time()
warning: assigning to
      'char *' from 'const char *' discards qualifiers
      [-Wincompatible-pointer-types-discards-qualifiers]
2015-04-20 18:43:33 +01:00
Michael Niedermayer
57865a9747 avformat/mpeg: put timestamp trace av_logs under FF_DEBUG_TS
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 17:41:22 +02:00
Michael Niedermayer
d4cf377947 avformat/mux: Place timestamp related trace av_logs under FF_FDEBUG_TS
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 17:36:36 +02:00
Michael Niedermayer
e48a0a6c3f avformat/mov: remove per packet timestamp print trace, theres generic code doing this in utils.c
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 17:25:04 +02:00
Michael Niedermayer
84b95715fa avformat/utils: Place timestamp trace logs under FF_FDEBUG_TS
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 17:03:27 +02:00
Michael Niedermayer
d02b3e9bdb avformat/utils: Provide context for av_log() where one is available
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 16:24:47 +02:00
Michael Niedermayer
8a91ee7837 avformat/avidec: Do not call av_log() per byte, use ff_tlog()
This was av_dlog() previously and should not have been changed to av_log()

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 16:21:42 +02:00
Vittorio Giovara
86e1a35802 h264_ps: Return meaningful error codes and address a memory leak
Bug-Id: CID 1026763
2015-04-20 14:59:40 +01:00
Diego Biurrun
338ed3ed33 ffv1: Pass correct pointers to av_free()
Bug-Id: CID 1295124
2015-04-20 14:59:40 +01:00
Michael Niedermayer
1ca8052640 avcodec/parser: Remove duplicate header inlcude
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 14:58:09 +02:00
Michael Niedermayer
42d6d249b0 avutil/mips/generic_macros_msa: volatile doesnt need __
Reviewed-by: Nedeljko Babic <Nedeljko.Babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 14:39:50 +02:00
Michael Niedermayer
2a00ef5d81 avcodec/api-flac-test: clear callers context with close_*
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 14:36:41 +02:00
Ludmila Glinskih
be70c79af2 libavcodec: Add FLAC API test
Signed-off-by: Ludmila Glinskih <lglinskih@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 14:36:41 +02:00
Michael Niedermayer
09b0f227ce avcodec/flacenc: also count wasted bits in subframe_count_exact()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 14:36:36 +02:00
Michael Niedermayer
1c667626bb Merge commit '386e2755aab73ae7075f78d92786cb5c5419597a'
* commit '386e2755aab73ae7075f78d92786cb5c5419597a':
  jack: Check memory allocation

Conflicts:
	libavdevice/jack.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 12:46:29 +02:00
Timothy Gu
3b1e35d46d fate: Omit the results if the test passed
The FATE server does not report this information anyway and omitting
it makes the successful run send much less data.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-04-20 12:41:34 +02:00
Luca Barbato
d34039b171 rmenc: Drop the temporary buffer for ac3 byteswap
Use direcly avio_w8().

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-04-20 12:41:33 +02:00
Luca Barbato
656e31ed87 ogg: Forward errors further
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-04-20 12:41:33 +02:00
Thomas Guillem
b18346817d flac: fix realloc loop with invalid flac files
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-04-20 12:41:33 +02:00
Michael Niedermayer
a6df9ce615 avfilter/buffersrc: Use correct, matching deallocation function
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 12:33:20 +02:00
Martin Storsjö
2cc3936599 dashenc: Add a publishTime field in dynamic manifests
This field is mandatory in dynamic manifests.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-04-20 13:16:45 +03:00
Michael Niedermayer
0c9e78caf4 Merge commit '617814b4a717b38add5ccb8dd200dbb655f98f09'
* commit '617814b4a717b38add5ccb8dd200dbb655f98f09':
  buffersrc: Fix resource leak on error

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 12:15:16 +02:00
Michael Niedermayer
eb8756e4b7 Merge commit '336d2f0979b43a39bd11a047d798b7990d8b07c6'
* commit '336d2f0979b43a39bd11a047d798b7990d8b07c6':
  avplay: Free frame and graph when memory allocation fails

Conflicts:
	ffplay.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 12:12:03 +02:00
Michael Niedermayer
0796a2ab4f Merge commit 'eb31256f12bf0c85aded1612551ce9230356879e'
* commit 'eb31256f12bf0c85aded1612551ce9230356879e':
  g2meet: Support G2M5 codec variant

Conflicts:
	libavcodec/version.h

See: 4ba5420e4d
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 11:52:19 +02:00
Michael Niedermayer
57f49fa0ed Merge commit '88d1fb4e3f156d8fd5bb6cb3ba3a9ef1e6d6fb08'
* commit '88d1fb4e3f156d8fd5bb6cb3ba3a9ef1e6d6fb08':
  filtfmts: Avoid null pointer dereference

Conflicts:
	libavfilter/filtfmts.c

See: 24326930d8
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 11:50:39 +02:00
Michael Niedermayer
94914d6909 Merge commit 'a1d58e3b386cc0bfe16abd9ccee4eed182b7e354'
* commit 'a1d58e3b386cc0bfe16abd9ccee4eed182b7e354':
  avutil: remove pointless bmi1 define

See: a40cee03a3
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 11:39:59 +02:00
Michael Niedermayer
a22da5e669 Merge commit '09bd7ddf2002562befa15a2a4d065b79ad14ed8e'
* commit '09bd7ddf2002562befa15a2a4d065b79ad14ed8e':
  aacdec: consistently use avctx for logging in decode_eld_specific_config

See: 5b75689b98
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 11:39:06 +02:00
Michael Niedermayer
fc83ff80b4 Merge commit '3d71b1f8f09fccea7158e868fb9bd81b81205449'
* commit '3d71b1f8f09fccea7158e868fb9bd81b81205449':
  mpegvideo_enc: Simplify picture allocation

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 11:29:43 +02:00
Michael Niedermayer
924a77fb4e Merge commit '0251c9be5a9d79cb669e97086a82dc4d44a917b0'
* commit '0251c9be5a9d79cb669e97086a82dc4d44a917b0':
  motion_est: Fix warning from zero_cmp() assignment

See: ea41e6d637
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 11:28:55 +02:00
Michael Niedermayer
127f7aa401 Merge commit '4d593896aaa81356def8993e8c52294bd8bb2797'
* commit '4d593896aaa81356def8993e8c52294bd8bb2797':
  vc1_pred: Always initialize px and py in ff_vc1_pred_mv_intfr()

Conflicts:
	libavcodec/vc1_pred.c

See: 6c5bd7d785
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 11:17:36 +02:00
Michael Niedermayer
4d50d53a6d Merge commit '9286de045968ad456d4e752651eec22de5e89060'
* commit '9286de045968ad456d4e752651eec22de5e89060':
  mov: Double-check that alias path is not an absolute path

Conflicts:
	libavformat/mov.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 11:03:32 +02:00
Michael Niedermayer
82d9c4e578 Merge commit '376589e5dd72aa2dd42500f456fca303fcdcad85'
* commit '376589e5dd72aa2dd42500f456fca303fcdcad85':
  mov: Read alternate absolute path in dref alis

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 05:51:40 +02:00
Michael Niedermayer
5a284d076f Merge commit '22526c1f557a72b3285d295bd8b30c40eb65d437'
* commit '22526c1f557a72b3285d295bd8b30c40eb65d437':
  Canopus HQ/HQA decoder

Conflicts:
	Changelog
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 05:28:13 +02:00
Michael Niedermayer
fcca7671e2 Merge commit 'e6fb844f7b736e72da364032d251283bce9e63ad'
* commit 'e6fb844f7b736e72da364032d251283bce9e63ad':
  Implement shared parsing of INFO tag in Canopus family

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 05:19:46 +02:00
Michael Niedermayer
f1db984288 Merge commit 'fcda30f2dcb744d89df9d5d1ec89ba55279cb83c'
* commit 'fcda30f2dcb744d89df9d5d1ec89ba55279cb83c':
  fate: Prefix cllc tests with canopus

Conflicts:
	tests/fate/lossless-video.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 05:19:03 +02:00
Michael Niedermayer
1fa7d0902c Merge commit '5b5338f6d1272526d2634501555cbaff4cdfb87b'
* commit '5b5338f6d1272526d2634501555cbaff4cdfb87b':
  hqx: Implement slice-threaded decoding

Conflicts:
	libavcodec/hqx.c
	libavcodec/hqx.h

See: eff72a6c73
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 05:11:48 +02:00
Michael Niedermayer
55b866f618 Merge commit '453642f8afe9f979fcc813a246b1ec656ec36a93'
* commit '453642f8afe9f979fcc813a246b1ec656ec36a93':
  hqx: Store shareable data in main decoder context

Conflicts:
	libavcodec/hqx.c
	libavcodec/hqx.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 04:57:06 +02:00
Michael Niedermayer
d8b4e9adbb Merge commit 'ea031b75fb50c59196ccb654c9d143fb75365da9'
* commit 'ea031b75fb50c59196ccb654c9d143fb75365da9':
  hqx: Move DSP related code to a separate file

Conflicts:
	libavcodec/hqx.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 04:33:06 +02:00
Michael Niedermayer
73e6af9d7b Merge commit '17aa81d94781c6f62dc7d1dbd1f8891c020c9905'
* commit '17aa81d94781c6f62dc7d1dbd1f8891c020c9905':
  hqx: Merge invalid format check within switch block

Conflicts:
	libavcodec/hqx.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 04:29:58 +02:00
Michael Niedermayer
dbd94b771f avcodec/internal: Fix ff_dlog() define like av_dlog()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 04:27:08 +02:00
Michael Niedermayer
0a582aeee4 avcodec: fix build with DEBUG/TRACE
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 04:11:23 +02:00
Michael Niedermayer
8f7b022c8c Merge commit '6a85dfc830f51f1f5c2d36d4182d265c1ea3ba25'
* commit '6a85dfc830f51f1f5c2d36d4182d265c1ea3ba25':
  lavc: Replace av_dlog and tprintf with internal macros

Conflicts:
	libavcodec/aacdec.c
	libavcodec/audio_frame_queue.c
	libavcodec/bitstream.c
	libavcodec/dcadec.c
	libavcodec/dnxhddec.c
	libavcodec/dvbsubdec.c
	libavcodec/dvdec.c
	libavcodec/dvdsubdec.c
	libavcodec/get_bits.h
	libavcodec/gifdec.c
	libavcodec/h264.h
	libavcodec/h264_cabac.c
	libavcodec/h264_cavlc.c
	libavcodec/h264_loopfilter.c
	libavcodec/h264_refs.c
	libavcodec/imc.c
	libavcodec/interplayvideo.c
	libavcodec/jpeglsdec.c
	libavcodec/libopencore-amr.c
	libavcodec/mjpegdec.c
	libavcodec/mpeg12dec.c
	libavcodec/mpegvideo_enc.c
	libavcodec/mpegvideo_parser.c
	libavcodec/pngdec.c
	libavcodec/ratecontrol.c
	libavcodec/rv10.c
	libavcodec/svq1dec.c
	libavcodec/vqavideo.c
	libavcodec/wmadec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 04:10:10 +02:00
Michael Niedermayer
40d552dae6 Merge commit '1a3eb042c704dea190c644def5b32c9cee8832b8'
* commit '1a3eb042c704dea190c644def5b32c9cee8832b8':
  Replace av_dlog with normal av_log at trace level

Conflicts:
	ffplay.c
	libavdevice/fbdev_dec.c
	libavfilter/avfilter.c
	libavfilter/internal.h
	libavfilter/setpts.c
	libavfilter/src_movie.c
	libavfilter/vf_crop.c
	libavfilter/vf_drawtext.c
	libavfilter/vf_fieldorder.c
	libavformat/assdec.c
	libavformat/avidec.c
	libavformat/flvdec.c
	libavformat/http.c
	libavformat/ipmovie.c
	libavformat/isom.c
	libavformat/mov.c
	libavformat/mpegenc.c
	libavformat/mpegts.c
	libavformat/mpegtsenc.c
	libavformat/mux.c
	libavformat/mxfdec.c
	libavformat/nsvdec.c
	libavformat/oggdec.c
	libavformat/r3d.c
	libavformat/rtspdec.c
	libavformat/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 03:19:47 +02:00
Michael Niedermayer
8e8219e0f0 Merge commit 'c253340ae6f74ffd8798bbd476e46d1b33a2d56e'
* commit 'c253340ae6f74ffd8798bbd476e46d1b33a2d56e':
  log: Introduce a more verbose debug level

Conflicts:
	doc/APIchanges
	doc/fftools-common-opts.texi
	libavutil/log.c
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 02:48:19 +02:00
Federico Tomassetti
386e2755aa jack: Check memory allocation
Bug-Id: CID 1265785
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-04-19 23:50:48 +01:00
Federico Tomassetti
617814b4a7 buffersrc: Fix resource leak on error
Bug-Id: CID 1267902
CC: libav-stable@libav.org
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-04-19 23:50:46 +01:00
Federico Tomassetti
336d2f0979 avplay: Free frame and graph when memory allocation fails
Bug-Id: CID 1291564
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-04-19 23:45:35 +01:00
Eric Zimmerman
eb31256f12 g2meet: Support G2M5 codec variant
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-04-19 23:45:35 +01:00
Himangi Saraogi
88d1fb4e3f filtfmts: Avoid null pointer dereference 2015-04-19 23:45:35 +01:00
James Almer
a1d58e3b38 avutil: remove pointless bmi1 define
Signed-off-by: James Almer <jamrial@gmail.com>
2015-04-19 23:45:35 +01:00
Andreas Cadhalpun
09bd7ddf20 aacdec: consistently use avctx for logging in decode_eld_specific_config
ac may be NULL and then accessing ac->avctx results in a segmentation fault.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-04-19 23:45:35 +01:00
Vittorio Giovara
3d71b1f8f0 mpegvideo_enc: Simplify picture allocation 2015-04-19 23:17:56 +01:00
Vittorio Giovara
0251c9be5a motion_est: Fix warning from zero_cmp() assignment
warning: incompatible
      pointer types assigning to 'me_cmp_func' (aka 'int (*)(struct
      MpegEncContext *, uint8_t *, uint8_t *, ptrdiff_t, int)') from 'int
      (MpegEncContext *, uint8_t *, uint8_t *, int, int)'
      [-Wincompatible-pointer-types]
2015-04-19 23:17:56 +01:00
Vittorio Giovara
4d593896aa vc1_pred: Always initialize px and py in ff_vc1_pred_mv_intfr()
Fix a rather lengthy initialization warning from clang.
2015-04-19 23:17:56 +01:00
Vittorio Giovara
9286de0459 mov: Double-check that alias path is not an absolute path
nlvl_to and nlvl_from can be set to 1 if both alias and target files
are in the same directory, so actually check the first character of the
string. We can do this because MacOS filepaths (alis type 2) are always
converted to UNIX filepaths (alis type 18).
2015-04-19 22:50:24 +01:00
Vittorio Giovara
376589e5dd mov: Read alternate absolute path in dref alis
Absolute paths can be stored in alis type 2 and 18 according to my research:
the first is the canonical MacOS filepath, with path level separated by
colons, and the volume name within the filepath, while the second should be the
absolute filesystem path from the mount point.
2015-04-19 22:48:14 +01:00
Michael Niedermayer
93db2708d3 ffmpeg: Fix null pointer dereference in do_video_out()
Fixes: CID1295087

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-19 23:44:19 +02:00
Vittorio Giovara
22526c1f55 Canopus HQ/HQA decoder
Based on work by Kostya Shishkov <kostya.shishkov@gmail.com>.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-04-19 22:37:23 +01:00
Vittorio Giovara
e6fb844f7b Implement shared parsing of INFO tag in Canopus family
Add some bounds checking to CLLC; reduce HQX variable scoping,
add an error message.
2015-04-19 22:37:02 +01:00
Vittorio Giovara
fcda30f2dc fate: Prefix cllc tests with canopus
They belong to the same family of codecs.
2015-04-19 22:36:50 +01:00
Vittorio Giovara
5b5338f6d1 hqx: Implement slice-threaded decoding
Inspired by a patch from Ferdinand Oeinck <ferdo@demon.nl>.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-04-19 22:36:48 +01:00
Vittorio Giovara
453642f8af hqx: Store shareable data in main decoder context
In preparation for multithreaded decoding.
2015-04-19 22:36:41 +01:00
Michael Niedermayer
0cab0931dc avformat/matroskadec: remove now duplicate doctype check
See: b8d7f3186e
See: d9fe6b926c
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-19 16:47:12 +02:00
Michael Niedermayer
9a0f60a0f8 avcodec/mpeg4videodec: Use check_marker()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-19 15:34:43 +02:00
Michael Niedermayer
22c0585a00 avformat/http: Fix 2 typos
Found-by: wm4
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-19 14:26:40 +02:00
Vittorio Giovara
ea031b75fb hqx: Move DSP related code to a separate file 2015-04-19 12:41:59 +01:00
Vittorio Giovara
17aa81d947 hqx: Merge invalid format check within switch block 2015-04-19 12:41:59 +01:00
Vittorio Giovara
6a85dfc830 lavc: Replace av_dlog and tprintf with internal macros 2015-04-19 12:41:59 +01:00
Vittorio Giovara
1a3eb042c7 Replace av_dlog with normal av_log at trace level
This applies to every library where performance is not critical.
2015-04-19 12:41:59 +01:00
Vittorio Giovara
c253340ae6 log: Introduce a more verbose debug level
And deprecate av_dlog macro.
2015-04-19 12:41:59 +01:00
Michael Niedermayer
3668701f96 avformat/http: Return an error in case of prematurely ending data
Fixes Ticket 4039

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-19 13:01:48 +02:00
James Almer
a40cee03a3 avutil: remove pointless bmi1 define
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-04-18 22:15:25 -03:00
Lou Logan
d1a8922098 cmdutils: indent protocols listing
For readability.

Signed-off-by: Lou Logan <lou@lrcd.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-19 02:05:22 +02:00
Andreas Cadhalpun
faf9fe2c22 alsdec: validate time diff index
If begin is smaller than t, the subtraction 'begin -= t' wraps around,
because begin is unsigned. The same applies for end < t.

This causes segmentation faults.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-19 00:49:42 +02:00
James Almer
5cd2169344 wavpackenc: use put_sbits()
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-04-18 18:07:54 -03:00
Thomas Guillem
b8d7f3186e matroskadec: fix crash when parsing invalid mkv
CC: libav-stable@libav.org

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-04-18 16:49:25 +02:00
Paul B Mahol
df7c2b2f1b avformat/riff: support G729A
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-04-17 19:01:58 +00:00
Paul B Mahol
daf73d5d17 avcodec/g729dec: support decoding packets with multiple frames
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-04-17 19:01:58 +00:00
Michael Niedermayer
f98cad8759 Merge commit 'b8d7f3186e86234f6255f5e8ee9e98573b4d9a6e'
* commit 'b8d7f3186e86234f6255f5e8ee9e98573b4d9a6e':
  matroskadec: fix crash when parsing invalid mkv

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-18 21:13:25 +02:00
Andreas Cadhalpun
4c2b88678b alsdec: limit avctx->bits_per_raw_sample to 32
avctx->bits_per_raw_sample is used in get_sbits_long, which only
supports up to 32 bits.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-18 21:00:25 +02:00
Michael Niedermayer
7e104647a3 avcodec/alsdec: Use av_mallocz_array() for chan_data to ensure the arrays never contain random data
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-18 20:50:23 +02:00
Andreas Cadhalpun
ef16501aeb alsdec: ensure channel reordering is reversible
If the same idx is used for more than one i, at least one entry in
sconf->chan_pos remains uninitialized.

This can cause segmentation faults.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-18 19:26:17 +02:00
James Almer
d8c52f5d04 proresenc_anatoliy: use put_sbits()
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-04-18 14:15:57 -03:00
James Almer
778bac2788 adpcm: use av_clip_intp2()
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-04-18 14:15:07 -03:00
James Almer
979b77eec5 dca_xll: use av_clip_intp2()
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-04-18 14:14:24 -03:00
James Almer
b5564e041b dcaenc: use put_sbits()
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-04-18 14:14:11 -03:00
James Almer
6863249b34 aaccoder: use put_sbits()
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-04-18 14:13:59 -03:00
Mariusz Szczepańczyk
e623e8cbb0 lavf: add documentation on directory listing API
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-18 17:54:04 +02:00
Michael Niedermayer
e739cbb2bb avcodec/cabac: remove START/STOP_TIMER debug/benchmark code
Found-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-18 17:42:30 +02:00
Michael Niedermayer
edbb9b5e8f avformat/utils: Add HEVC to unreliable_tb()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-18 02:20:50 +02:00
Michael Niedermayer
80fa48a413 avformat/utils: Use codec_info_duration_fields in fps calculation end decission when no timestamps and thus no duration_count is available
This avoids waiting for a count to increase which will always be 0 and may
reduce the startup delay for affected streams (rare)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-18 02:18:55 +02:00
wm4
e2691b8092 hls: skip to next segment if the current is unavailable
Apparently, some live streams can delete segments too early, maybe
because the client is too far behind. In this case, it's better to skip
the segment, instead of returning EOF. (Yes, the HLS demuxer actually
returns AVERROR_EOF if opening the segment returns a 404 HTTP error.)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-17 22:54:17 +02:00
Michael Niedermayer
3acadc89f4 tests/tiny_psnr: Make the search range extend both sides from the specified shift value
This is what one would expect from the help text

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-17 21:22:27 +02:00
Michael Niedermayer
04fbab1477 Merge commit '1336bb06c9fbf9a14765e9f78616f2aad4f3a45a'
* commit '1336bb06c9fbf9a14765e9f78616f2aad4f3a45a':
  configure: Simplify avisynth check

Conflicts:
	configure

No change as check_lib2 was already used

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-17 20:23:28 +02:00
Michael Niedermayer
67ac31d1be Merge commit '247aa7af7d8197247c181e3fbfe8d93d75e41b29'
* commit '247aa7af7d8197247c181e3fbfe8d93d75e41b29':
  avisynth: Simplify shared library name construction

Conflicts:
	libavformat/avisynth.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-17 20:03:16 +02:00
wm4
12da8bc38d fate: gapless: test mp3 both with and without TOC
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-17 18:18:05 +02:00
wm4
49d5c24aa1 fate: gapless: test seeking to a specific position
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-17 18:17:35 +02:00
wm4
2a0aa318f8 fate: gapless: fix a typo in comment
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-17 18:16:45 +02:00
wm4
92eef26e67 avformat/mp3dec: fix gapless audio when seeking in CBR mode
Removing a bunch of questionable hacks makes it work. These hacks
apparently try to make concatenated mp3s with Lame headers seekable,
which doesn't make too much sense anyway. The main change is that we
trust the Xing header file size field now (the same field is used for
seeking with Xing TOC). Note that a mp3 might contain an unknown number
of unsupported additional tags, so we can't reliably compute this size
manually.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-17 17:48:22 +02:00
Shivraj Patil
4efc0e6451 avcodec/mips: MSA (MIPS-SIMD-Arch) optimizations for HEVC horizontal and vertical mc functions
Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
Reviewed-by: Nedeljko Babic <Nedeljko.Babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-17 17:39:32 +02:00
Shivraj Patil
35a7170e69 Makefile: Add support for MSA (MIPS-SIMD-Arch)
Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
Reviewed-by: Nedeljko Babic <Nedeljko.Babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-17 17:38:41 +02:00
Michael Niedermayer
8768f8f4b9 avcodec/mpegaudiodec_template: use double to build csa tables
Fixes rounding difference between 32bit x86 and 64bit
Fixes fate failure with gapless mp3

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-17 13:50:37 +02:00
Michael Niedermayer
38f6726068 avcodec/atrac3plusdsp: fix on stack alignment
Fixes fate failure on ARM
2015-04-17 12:22:04 +02:00
Vignesh Venkatasubramanian
1c37848f90 webmdashenc: Add better error handling
Return appropriate error codes and propagate the error codes from
helper functions to the outer calls. Also fix a potential leak in
call to av_realloc.

Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-17 04:48:29 +02:00
James Almer
8254011b21 configure: remove old libdcadec check
It's obsolete after the addition of the pkg-config check.
See http://comments.gmane.org/gmane.comp.video.ffmpeg.devel/191983 for the
relevant discussion

Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-04-16 20:10:19 -03:00
wm4
8297d87eec fate: add mp3 gapless test
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-16 23:05:47 +02:00
Andreas Cadhalpun
bc4fee7f2a ac3: validate end in ff_ac3_bit_alloc_calc_mask
This fixes an invalid read if end is 0:
     band_end   = ff_ac3_bin_to_band_tab[end-1] + 1;

Depending on what is before the array, this can cause stack smashing,
when band_end becomes too large.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-16 21:37:16 +02:00
Rodger Combs
55a1d75bf7 lavf/assenc: handle extra sections after Events
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-16 21:09:32 +02:00
Andreas Cadhalpun
e224aa4191 aacpsy: avoid psy_band->threshold becoming NaN
If band->thr is 0.0f, the division is undefined, making norm_fac not a
number or infinity, which causes psy_band->threshold to become NaN.

This is passed on to other variables until it finally reaches
sce->sf_idx and is converted to an integer (-2147483648).

This causes a segmentation fault when it is used as array index.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Reviewed-by: Claudio Freire <klaussfreire@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-16 20:28:55 +02:00
Andreas Cadhalpun
0be54ad280 aasc: return correct buffer size from aasc_decode_frame
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-16 19:19:09 +02:00
Andreas Cadhalpun
5b75689b98 aacdec: consistently use avctx for logging in decode_eld_specific_config
ac may be NULL and then accessing ac->avctx results in a segmentation fault.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-16 18:44:18 +02:00
James Almer
1577b29c82 configure: add missing dependencies for MIPS and PPC features
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-04-16 13:17:12 -03:00
Andreas Cadhalpun
ae6fd7300b msrledec: use signed pixel_ptr in msrle_decode_pal4
This fixes segmentation faults, when pic->linesize[0] is negative.
In that case 'line * pic->linesize[0] + pixel_ptr' is treated as
unsigned and wraps around.

This reverts commit 7d78a964.
The problem was introduced in commit f7e1367f, which should obsolete
that commit.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-16 15:52:22 +02:00
Simon Thelen
ed2a712750 configure: add pkg-config support for libdcadec
Signed-off-by: Simon Thelen <ffmpeg-dev@c-14.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-16 14:52:38 +02:00
Victor Anjin
2db24cf746 ivfenc: incorrect fourcc for VP9 video
VP80 fourcc are writed for all contexts (without ctx->codec_tag)
how to reproduce the issue:
1) Get any vp9 video (for example  http://base-n.de/webm/out9.webm)
2) ffmpeg  -i out9.webm -vcodec copy out9.ivf
3) out9.ivf have VP80 fourcc at ivf header
The proposed fix solves this issue

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-16 13:06:35 +02:00
Nicolas George
38155865df lavfi/avf_showcqt: fix error code.
Signed-off-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-16 12:38:28 +02:00
Michael Niedermayer
b50a4ca179 avformat/utils: Preserve packet duration when parsing is done only for headers
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-16 04:31:30 +02:00
Michael Niedermayer
c658269cd1 avcodec/h264_ps: Validate num_units_in_tick/time_scale before setting them in the context
This probably makes no big difference but it is more correct

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-16 03:41:41 +02:00
Vittorio Giovara
7498f2221e h264: Do not fail on unsupported timing info
The spec madandate both time_scale and num_units_in_tick greater than 0,
however since they are not essential for decoding, just ignore the whole
block and try to finish parsing the VUI.

Related to Ticket4445.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-04-16 03:41:41 +02:00
Rostislav Pehlivanov
c5d4f87e81 aaccoder: Implement Perceptual Noise Substitution for AAC
This commit implements the perceptual noise substitution AAC extension. This is a proof of concept
implementation, and as such, is not enabled by default. This is the fourth revision of this patch,
made after some problems were noted out. Any changes made since the previous revisions have been indicated.

In order to extend the encoder to use an additional codebook, the array holding each codebook has been
modified with two additional entries - 13 for the NOISE_BT codebook and 12 which has a placeholder function.
The cost system was modified to skip the 12th entry using an array to map the input and outputs it has. It
also does not accept using the 13th codebook for any band which is not marked as containing noise, thereby
restricting its ability to arbitrarily choose it for bands. The use of arrays allows the system to be easily
extended to allow for intensity stereo encoding, which uses additional codebooks.

The 12th entry in the codebook function array points to a function which stops the execution of the program
by calling an assert with an always 'false' argument. It was pointed out in an email discussion with
Claudio Freire that having a 'NULL' entry can result in unexpected behaviour and could be used as
a security hole. There is no danger of this function being called during encoding due to the codebook maps introduced.

Another change from version 1 of the patch is the addition of an argument to the encoder, '-aac_pns' to
enable and disable the PNS. This currently defaults to disable the PNS, as it is experimental.
The switch will be removed in the future, when the algorithm to select noise bands has been improved.
The current algorithm simply compares the energy to the threshold (multiplied by a constant) to determine
noise, however the FFPsyBand structure contains other useful figures to determine which bands carry noise more accurately.

Some of the sample files provided triggered an assertion when the parameter to tune the threshold was set to
a value of '2.2'. Claudio Freire reported the problem's source could be in the range of the scalefactor
indices for noise and advised to measure the minimal index and clip anything above the maximum allowed
value. This has been implemented and all the files which used to trigger the asserion now encode without error.

The third revision of the problem also removes unneded variabes and comparisons. All of them were
redundant and were of little use for when the PNS implementation would be extended.

The fourth revision moved the clipping of the noise scalefactors outside the second loop of the two-loop
algorithm in order to prevent their redundant calculations. Also, freq_mult has been changed to a float
variable due to the fact that rounding errors can prove to be a problem at low frequencies.
Considerations were taken whether the entire expression could be evaluated inside the expression
, but in the end it was decided that it would be for the best if just the type of the variable were
to change. Claudio Freire reported the two problems. There is no change of functionality
(except for low sampling frequencies) so the spectral demonstrations at the end of this commit's message were not updated.

Finally, the way energy values are converted to scalefactor indices has changed since the first commit,
as per the suggestion of Claudio Freire. This may still have some drawbacks, but unlike the first commit
it works without having redundant offsets and outputs what the decoder expects to have, in terms of the
ranges of the scalefactor indices.

Some spectral comparisons: https://trac.ffmpeg.org/attachment/wiki/Encode/AAC/Original.png (original),
https://trac.ffmpeg.org/attachment/wiki/Encode/AAC/PNS_NO.png (encoded without PNS),
https://trac.ffmpeg.org/attachment/wiki/Encode/AAC/PNS1.2.png (encoded with PNS, const = 1.2),
https://trac.ffmpeg.org/attachment/wiki/Encode/AAC/Difference1.png (spectral difference).
The constant is the value which multiplies the threshold when it gets compared to the energy, larger
values means more noise will be substituded by PNS values. Example when const = 2.2:
https://trac.ffmpeg.org/attachment/wiki/Encode/AAC/PNS_2.2.png

Reviewed-by: Claudio Freire <klaussfreire@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-15 19:59:44 +02:00
Nedeljko Babic
f4ccf38902 libavutil/softfloat: Change order of fields in SoftFloat structure.
Softfloat will be used in implementation of AAC fixed point decoder.
This change is needed in order to more easily integrate ffmpegs softfloat in
already developed algorithm for AAC.

Signed-off-by: Nedeljko Babic <nedeljko.babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-15 18:53:55 +02:00
Michael Niedermayer
574978d2bd avcodec/intelh263dec: Use check_marker()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-15 18:53:55 +02:00
Diego Biurrun
1336bb06c9 configure: Simplify avisynth check 2015-04-15 14:52:58 +02:00
Diego Biurrun
247aa7af7d avisynth: Simplify shared library name construction 2015-04-15 14:52:57 +02:00
wm4
3163083f7b avformat/mp3dec: offset seek index to end of vbr headers
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-15 13:25:08 +02:00
wm4
ddd429fab6 Revert "avformat/mp3dec: offset seek index to end of id3v2 tag"
This reverts commit 8b76c0eb56.

It was slightly incorrect; the next commit fixes it.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-15 13:25:07 +02:00
Michael Niedermayer
a742a0536d avformat/mp3dec: Allow forcing the use of the xing TOC for CBR files
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-15 13:25:07 +02:00
Michael Niedermayer
0842df2619 Merge commit 'ec89f35e3e5eb9ec5221266e801efeee7ecab4df'
* commit 'ec89f35e3e5eb9ec5221266e801efeee7ecab4df':
  x265: Map color parameters

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-15 11:57:38 +02:00
Michael Niedermayer
0fbe18b63e Merge commit '0cbb1473179d35d4eb9c9446c8ed84e197e5389b'
* commit '0cbb1473179d35d4eb9c9446c8ed84e197e5389b':
  x264: Map color parameters

Conflicts:
	libavcodec/libx264.c

See: 48d39c8786
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-15 11:49:26 +02:00
Luca Barbato
ec89f35e3e x265: Map color parameters 2015-04-15 09:48:48 +02:00
Luca Barbato
0cbb147317 x264: Map color parameters 2015-04-15 09:48:47 +02:00
Michael Niedermayer
fbdaebb298 avcodec/ituh263dec: Use check_marker()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-15 03:22:27 +02:00
wm4
95f524aff5 lavc: use correct type for printf() argument
This was passing uint32_t for %d.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-14 21:45:07 +02:00
wm4
2b5f34f788 avformat, avcodec: log discard padding
Useful for debugging.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-14 21:37:46 +02:00
Vignesh Venkatasubramanian
30e2f87d2e webdashenc: replace unchecked av_malloc with stack allocation
Replace an unchecked av_malloc call with stack allocation as the size
is always a constant.

Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-14 20:48:30 +02:00
Michael Niedermayer
ee69229dd8 Merge commit '7a5f44476696b495e0de658ed859bcb8520b93d4'
* commit '7a5f44476696b495e0de658ed859bcb8520b93d4':
  avisynth: Bump minimum required version to interface version 6

Conflicts:
	doc/general.texi
	libavformat/avisynth.c

See: 3723a18310
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-14 20:10:08 +02:00
Michael Niedermayer
64b37d3e08 Merge commit 'a6a45e5a9a9dfb725456f62e053532e505aadcfc'
* commit 'a6a45e5a9a9dfb725456f62e053532e505aadcfc':
  avisynth: Fix detection of AviSynth 2.5

See: d858c3a18f
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-14 20:07:13 +02:00
Rostislav Pehlivanov
a61c75e9f7 aacdec: Use macros for constants
This commit replaces the previous hardcoded constants with both new and previously
defined macros from aac.h. This change makes it easy for anyone reading the code
to know how encoding and decoding scalefactors works. It's also possibly
a step in unifying some of the code across both the encoder and decoder.

Reviewed-by: Claudio Freire <klaussfreire@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-14 18:04:02 +02:00
Michael Niedermayer
37d93fdbf0 avcodec/mpeg12dec: Use check_marker()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-14 15:30:39 +02:00
Michael Niedermayer
343f34c0b8 avcodec/get_bits: print details of the location of the missing bit in check_marker()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-14 15:30:39 +02:00
Paul B Mahol
c2fc466351 avcodec/alsdec: use av_malloc(z)_array()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-04-14 13:06:15 +00:00
Michael Niedermayer
4ba662b032 avcodec/mpeg4videodec: Improve wording of the missing header warning messages
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-14 14:41:11 +02:00
Michael Niedermayer
bca1577ed3 avcodec/mpeg4videodec: change log level to waning for incomplete header messages
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-14 14:12:38 +02:00
Michael Niedermayer
4103172376 Merge commit '13e4f2c7f7857feb6885f0c2ea8c9ddf438f46ea'
* commit '13e4f2c7f7857feb6885f0c2ea8c9ddf438f46ea':
  mpeg4videodec: Remove useless messages

Conflicts:
	libavcodec/mpeg4videodec.c

not merged, the messages have been an important aid for debugging in old mpeg4
and help understanding bug reports

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-14 13:58:04 +02:00
Stephen Hutchinson
7a5f444766 avisynth: Bump minimum required version to interface version 6
The AVSC_API changes in the new headers mean that the 2.6 alphas
are just as incompatible as 2.5 is.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2015-04-14 13:53:04 +02:00
Stephen Hutchinson
a6a45e5a9a avisynth: Fix detection of AviSynth 2.5
In order to safely exit when the user tries to use AviSynth 2.5, the
continue_on_fail value for 2.6's functions need to be set to 1.
Otherwise, the library loader fails before the 'upgrade to 2.6'
log message appears.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2015-04-14 13:52:41 +02:00
Michael Niedermayer
6e86ee97c8 Merge commit '49e531ff4706279c7eed774f2c8b896942924ce2'
* commit '49e531ff4706279c7eed774f2c8b896942924ce2':
  mmal: Reference MMAL VC lib explicitly

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-14 13:40:58 +02:00
Michael Niedermayer
7c521d4528 Merge commit '2de7650451d90520135d8cf6f96caa0658824208'
* commit '2de7650451d90520135d8cf6f96caa0658824208':
  mmal: Move system headers before local headers

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-14 13:28:29 +02:00
wm4
13e4f2c7f7 mpeg4videodec: Remove useless messages
They seem to sometimes trigger with old AVI files. They are just
confusing, do not help anyone, and use sloppy language.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2015-04-14 12:32:43 +02:00
wm4
49e531ff47 mmal: Reference MMAL VC lib explicitly
This is optional, but ensures that linking with -Wl,--as-needed does not
drop the library containing the MMAL VC driver. The driver normally
"registers" itself in the library constructor, but since no symbols are
explicitly referenced, the linker could remove it with --as-needed
enabled.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2015-04-14 12:32:13 +02:00
wm4
2de7650451 mmal: Move system headers before local headers
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2015-04-14 12:32:10 +02:00
Ivan Efimov
2051b401cc avfilter/drawtext: fix frame mem leak
Signed-off-by: Ivan Efimov <ioefimov@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-14 12:04:52 +02:00
Rostislav Pehlivanov
013498ba15 aacenc: Adjust the initial offset for PNS values
This commit adjusts the intial offset for PNS values, introduced
with commit f7f71b5795 earlier. This
commit shifts the value in such a way that no further offsets are
required in the aaccoder.c file. Earlier version of the PNS patch had 2 offsets in both the aaccoder and aacenc.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-14 03:42:57 +02:00
Michael Niedermayer
42a144f2c8 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  lavf/mpegtsenc: Accept 0x000001 as startcode for hevc.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-14 03:08:01 +02:00
Michael Niedermayer
89b3c5215a avcodec/atrac3plusdec: Free mdct contexts at the end
Fixes memleak

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-14 02:31:37 +02:00
Carl Eugen Hoyos
d0c895d3c5 lavf/mpegtsenc: Accept 0x000001 as startcode for hevc.
Fixes ticket #4194.
2015-04-14 01:57:38 +02:00
Michael Niedermayer
4d74c8d550 avcodec/ffv1: dont leave stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-13 20:08:42 +02:00
Michael Niedermayer
d19fc69f15 avcodec/ffv1: remove unneeded variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-13 20:07:45 +02:00
Michael Niedermayer
a3963cc8ec avcodec/ffv1: use av_freep()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-13 20:05:56 +02:00
Michael Niedermayer
fb6dd77000 Merge commit '73dacabfc9b9ef1fd2c08105fdab6238ee29c2fc'
* commit '73dacabfc9b9ef1fd2c08105fdab6238ee29c2fc':
  ffv1: Check memory allocations

Conflicts:
	libavcodec/ffv1.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-13 19:59:41 +02:00
Vittorio Giovara
73dacabfc9 ffv1: Check memory allocations
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2015-04-13 17:51:31 +02:00
wm4
f4f3065c69 h264: remove bogus YCgCo warning message
YCgCo decoding works just fine. It depends on the API user what is done
with the output. Some API users might support it, some not. Some users
might support it under certain circumstances only.

It is not the job of the decoder to print this message. If the API user
supports it, this message is extremely unhelpful.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-13 13:46:38 +02:00
Michael Niedermayer
d5dcd94630 avfilter/vf_scale: Add warning for AVCOL_SPC_YCGCO
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-13 13:45:41 +02:00
Rodger Combs
c69ff12dc3 lavf/mpeg: vobsub add an option to specify the .sub's URI
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-13 11:55:55 +02:00
James Almer
30ce065ffe fate: add tta encoder test
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-13 11:33:02 +02:00
Rodger Combs
a4d58c97d0 lavf/http: handle case where the server returns a redirect during a seek
txoffer (e.g. http://tori.aoi-chan.com/ ) redirects to the same URI on your
first request, and serves the actual file on the second. It's stupid, but AFAIK
technically compliant. We'd previously see the server not handing back a Range
header and return an error; now, instead, we see that there's a redirect and
keep track of the offset we want while trying again at the new URL.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-13 11:18:50 +02:00
Rostislav Pehlivanov
f7f71b5795 aacenc: Add support for Perceptual Noise Substitution energy values
This commit implements support for writing the noise energy values used in PNS.
The difference between regular scalefactors and noise energy values is that the latter
require a small preamble (NOISE_PRE + energy_value_diff) to be written as the first
noise-containing band. Any following noise energy values use the previous one to
base their "diff" on. Ordinary scalefactors remain unchanged other than that they ignore the noise values.

This commit should not change anything by itself, the following commits will bring it in use.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-13 04:14:27 +02:00
Mark Reid
c919cc61a1 tests/fate: added mxf opatom audio regression tests
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-13 02:08:46 +02:00
Michael Niedermayer
818e889709 Merge commit '4e5443216445f3a9b8e6cb3fa4f448762e19006e'
* commit '4e5443216445f3a9b8e6cb3fa4f448762e19006e':
  rtsp: Fix unchecked return value

See: aae9f52c4e
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-13 01:44:36 +02:00
Michael Niedermayer
4dd0c07122 Merge commit '0b72a47f5592ecc035edd5bac57558ad9604612d'
* commit '0b72a47f5592ecc035edd5bac57558ad9604612d':
  rtsp: Check a malloc return value

See: 4b03002527
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-13 01:35:08 +02:00
Himangi Saraogi
f03dfe118b avformat/rtsp: Fix dereference after null check
This fixes CID 732219

Reviewed-by: Thomas Volkert <silvo@gmx.net>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-12 23:31:55 +02:00
Michael Niedermayer
ff50b1b13b swresample/swresample-test: Randomly wipe out channel counts
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-12 22:21:53 +02:00
Michael Niedermayer
3c77bb5f23 swresample: Check channel layouts and channels against each other and print human readable error messages
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-12 22:21:34 +02:00
Michael Niedermayer
80a28c7509 swresample: Allow reinitialization without ever setting channel layouts 2015-04-12 22:21:34 +02:00
Michael Niedermayer
d7b9cb2f7a swresample: Allow reinitialization without ever setting channel counts
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-12 22:21:34 +02:00
Himangi Saraogi
4e54432164 rtsp: Fix unchecked return value
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-04-12 23:08:14 +03:00
Himangi Saraogi
0b72a47f55 rtsp: Check a malloc return value
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-04-12 23:08:13 +03:00
James Almer
14edc9f3a3 configure: add missing h263p decoder dependencies
Should fix ticket #4480

Signed-off-by: James Almer <jamrial@gmail.com>
2015-04-12 15:48:55 -03:00
Timothy Gu
7ad27f1221 fate: Include branch information in the payload header
The server is properly equiped not to choke on that now.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-12 18:02:23 +02:00
Michael Niedermayer
445a02b1ec avformat/rtpdec_asf: Fix potential pointer overflow
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-12 17:41:23 +02:00
Michael Niedermayer
870ec3f69e avformat/segafilm: Use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-12 17:14:20 +02:00
Michael Niedermayer
4270a9f547 avformat/sierravmd: use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-12 17:14:20 +02:00
Paul B Mahol
d2fc702ace avfilter: add chorus filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-04-11 20:39:43 +00:00
Mark Reid
415f1fab8d libavformat/mxfenc: added support mxf opatom audio muxing
Previous version Reviewed-by: Tomas Härdin <tomas.hardin@codemill.se>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-12 02:40:09 +02:00
Timothy Gu
a202fe00ab fate: Add atrac3+ tests
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-12 00:15:58 +02:00
Stephan Holljes
b51027fd18 libavformat/http.c: Make http-listen work as an input stream.
With this patch http can be used to listen for POST data to be used as an input stream.

Signed-off-by: Stephan Holljes <klaxa1337@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-11 23:10:44 +02:00
Michael Niedermayer
f944aeb07a avformat/rtpproto: Move dscp into context & AVOptions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-11 18:53:54 +02:00
Michael Niedermayer
816bbc1cf5 Merge commit 'bbdb50d7a8a91f38188fd15080d7f45f1540b3ac'
* commit 'bbdb50d7a8a91f38188fd15080d7f45f1540b3ac':
  libx265: print supported presets and tunes on error

See: 61090db29a
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-11 18:00:16 +02:00
Michael Niedermayer
6530e2ff0c Merge commit '7a9b764c0737f42cf2458c3c5378b0df216e14a2'
* commit '7a9b764c0737f42cf2458c3c5378b0df216e14a2':
  libdc1394: Unbreak build after c201069fa

See: fe25194c58
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-11 17:59:21 +02:00
James Almer
bbdb50d7a8 libx265: print supported presets and tunes on error
Based on code from libavcodec/libx264.c

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-04-11 11:13:28 -04:00
Michael Niedermayer
d6bcdf0dcd avformat/xwma: Use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-11 13:51:03 +02:00
Michael Niedermayer
e33355213d avformat/wtvenc: Use av_realloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-11 13:50:50 +02:00
Michael Niedermayer
e0d8ff5ef1 avformat/nsvdec: Use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-11 13:18:41 +02:00
Michael Kostylev
7a9b764c07 libdc1394: Unbreak build after c201069fa 2015-04-11 10:57:18 +02:00
Andrey Utkin
7f64a7503b rtpenc_jpeg: handle case of picture dimensions not dividing by 8
This fixes the calculation of the number of needed blocks to make
sure that ALL pixels are represented by the result.

Reviewed-by: Thomas Volkert <silvo@gmx.net>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-11 02:26:56 +02:00
Michael Niedermayer
d4a6c94046 Merge commit '4f373a5111f900af54301907132942f95276285c'
* commit '4f373a5111f900af54301907132942f95276285c':
  vfwcap: Unbreak building after c201069fa

Conflicts:
	libavdevice/vfwcap.c

See: 4d0f6d3fb4
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-11 02:19:32 +02:00
James Almer
9fc45681e0 doc: add aarch64 cpuflags to fftools documentation
Signed-off-by: James Almer <jamrial@gmail.com>
2015-04-10 20:57:19 -03:00
James Almer
666ec9bd09 doc: add missing arm cpuflags to fftools documentation
Signed-off-by: James Almer <jamrial@gmail.com>
2015-04-10 20:57:15 -03:00
James Almer
410c93cfd5 doc: add missing x86 cpuflags to fftools documentation
Signed-off-by: James Almer <jamrial@gmail.com>
2015-04-10 20:57:11 -03:00
Timothy Gu
3d6069d01c Use @verbatim instead of @example for ASCII arts
Partially fixes #3869.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-11 01:14:51 +02:00
Timothy Gu
5faca08caf texi2pod: Handle @verbatim
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-11 01:00:07 +02:00
Martin Storsjö
4f373a5111 vfwcap: Unbreak building after c201069fa
These headers can't be included in any arbitrary order.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-04-11 00:15:47 +03:00
Timothy Gu
1a562adb01 tests: Do not include stdout/stderr or diff if the test passed
FATE currently discards this information anyway, so why waste the
disk space?

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-10 22:20:36 +02:00
Timothy Gu
28e2bf90b9 Add cabac test into fate
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-10 21:49:37 +02:00
Timothy Gu
744594685e cabac-test: Return 1 if there are any errors
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-10 21:49:37 +02:00
James Almer
61090db29a avcodec/libx265: print supported presets and tunes on error
Based on code from libavcodec/libx264.c

Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-04-10 16:47:29 -03:00
Michael Niedermayer
bc48c88918 avcodec/h264: Do not fail with randomly truncated VUIs
Fixes Ticket4445

Tested-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-10 18:35:07 +02:00
Michael Niedermayer
4d0f6d3fb4 avdevice/vfwcap: revert header reordering from c201069fac
This should fix build on vs2013

Found-by: Ferdinand Oeinck <ferdo@bigroses.demon.nl>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-10 18:09:26 +02:00
Himangi Saraogi
8d15de7eb2 ffmdec: Check return value of ffm_append_recommended_configuration
Reviewed-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-10 14:44:53 +02:00
Himangi Saraogi
aae9f52c4e avformat/rtsp: Fix unchecked return value
Reviewed-by: Thomas Volkert <silvo@gmx.net>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-10 14:18:11 +02:00
Michael Niedermayer
5d0f836f62 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  lavf/flac: Autodetect raw flac files.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-10 13:36:03 +02:00
Shivraj Patil
578d99e7c6 avutil/mips/intreadwrite: build fix for mips64r6 (instruction 'lwl' not supported)
Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
Reviewed-by: Nedeljko Babic <Nedeljko.Babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-10 13:03:44 +02:00
Shivraj Patil
7fdd31421c configure: add support for 74kf cpu
Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
Reviewed-by: Nedeljko Babic <Nedeljko.Babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-10 13:03:10 +02:00
Shivraj Patil
076bfe9612 configure: add support for mips64r6 and i6400 cpu
This is a preparation patch to submit optimized code for MSA (MIPS-SIMD-Architecture)

Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
Reviewed-by: Nedeljko Babic <Nedeljko.Babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-10 13:01:34 +02:00
Shivraj Patil
8af3ce5378 configure: add support for mips32r5, p5600 cpu and msa
Imagination Technologies has come up with MIPS Warrior Processor Cores.
More details can be found at-
http://www.imgtec.com/mips/warrior/pclass.asp
http://www.imgtec.com/mips/warrior/iclass.asp

This is a preparation patch to submit optimized code for MSA (MIPS-SIMD-Architecture)
This patch set is adding support for P5600 and I6400 CPUs.

MIPS 'generic' case is added, with mips32r2 arch as default (fpu and dsp opt enabled).

Sample configurations for new MSA architectures-
    $ ./configure --enable-cross-compile --cross-prefix=<PATH> --arch=mips --target-os=linux --cpu=p5600
    $ ./configure --enable-cross-compile --cross-prefix=<PATH> --arch=mips --target-os=linux --cpu=i6400

Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
Reviewed-by: Nedeljko Babic <Nedeljko.Babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-10 12:59:47 +02:00
Michael Niedermayer
599dc8fee1 avcodec/hqx: Use av_clip_uintp2()
Suggested-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-10 12:38:03 +02:00
Carl Eugen Hoyos
7b39d853b8 lavf/flac: Autodetect raw flac files. 2015-04-10 12:35:02 +02:00
James Almer
3553b815f6 avcodec/libdcadec: honor AVCodecContext bitexact flag
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-04-09 22:37:39 -03:00
Ferdinand Oeinck
eff72a6c73 libavcodec/hqx: multi threading support
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-10 03:11:40 +02:00
Michael Niedermayer
b1b58310d0 Merge commit '8d26c193fb42d08602ac93ece039d4718d029adc'
* commit '8d26c193fb42d08602ac93ece039d4718d029adc':
  avdevice: Apply a more consistent file naming scheme

Conflicts:
	libavdevice/Makefile
	libavdevice/alsa.h
	libavdevice/alsa_dec.c
	libavdevice/alsa_enc.c
	libavdevice/sndio_enc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-09 21:36:42 +02:00
Michael Niedermayer
259fd4c7cf avdevice/vfwcap: put the headers back in the order in which they need to be
This avoids build failures

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-09 21:19:49 +02:00
Michael Niedermayer
fe25194c58 Merge commit 'c201069fac9a76e6604f9d84d76a172434d62200'
* commit 'c201069fac9a76e6604f9d84d76a172434d62200':
  avdevice: Add missing header for NULL_IF_CONFIG_SMALL

Conflicts:
	libavdevice/alsa-audio-dec.c
	libavdevice/alsa-audio-enc.c
	libavdevice/pulse_audio_dec.c
	libavdevice/sndio_enc.c
	libavdevice/vfwcap.c
	libavdevice/x11grab.c
	libavdevice/xcbgrab.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-09 21:07:24 +02:00
Michael Niedermayer
71288bf80f Merge commit '27852f2f1dec3749ea79883b70484c841169f747'
* commit '27852f2f1dec3749ea79883b70484c841169f747':
  libavformat: Handle error return from ff_listen_bind

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-09 20:58:11 +02:00
Michael Niedermayer
7ef59803e8 Merge commit '0266988ccd15436eaf5f7bb6f9509e6bfd5ce589'
* commit '0266988ccd15436eaf5f7bb6f9509e6bfd5ce589':
  hqx: Fix clipping error in idct put function

See: 92f94fd5dd
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-09 20:40:48 +02:00
Michael Niedermayer
e77270cd93 Merge commit '783df7d5c5ab15f3d1afe2541c7d461c81c5c29d'
* commit '783df7d5c5ab15f3d1afe2541c7d461c81c5c29d':
  riff: Add 'M705' FourCC for mpeg2video

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-09 20:33:51 +02:00
Michael Niedermayer
72a580268f Merge commit '5980c924e309ae1dde8bd52d9938f94ff02602eb'
* commit '5980c924e309ae1dde8bd52d9938f94ff02602eb':
  dnxhd: Log the selected profile id

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-09 20:26:18 +02:00
Michael Niedermayer
98c7d305a7 Merge commit 'be089af38f65dc8b1fe3564f98020fc815577edb'
* commit 'be089af38f65dc8b1fe3564f98020fc815577edb':
  mov: Rely on box type rather than file type for colr atom

Conflicts:
	libavformat/mov.c

See: 0276b95242
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-09 20:19:27 +02:00
Michael Niedermayer
9fd3d9acf7 Merge commit 'f8fd0c29ce5dc7d4be13e7e89d0f1e8a035ae71b'
* commit 'f8fd0c29ce5dc7d4be13e7e89d0f1e8a035ae71b':
  v210: Fix typo in header guards

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-09 20:09:10 +02:00
Timo Rothenpieler
7b0689c55f avcodec/nvenc: Add options for level and tier
Previous version reviewed-by: Philip Langdale <philipl@overt.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-09 18:20:26 +02:00
Michael Niedermayer
7be2d2a70c avcodec/h264: Use only one ERContext
This fixes slice threads with error concealment

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-09 17:42:04 +02:00
Diego Biurrun
8d26c193fb avdevice: Apply a more consistent file naming scheme 2015-04-09 16:40:12 +02:00
Diego Biurrun
c201069fac avdevice: Add missing header for NULL_IF_CONFIG_SMALL
Also reshuffle headers into canonical order where appropriate.
2015-04-09 16:40:12 +02:00
Anders Nystrom
27852f2f1d libavformat: Handle error return from ff_listen_bind
Handle error return from ff_listen_bind without leaking file descriptors.

Signed-off-by: Anders Nystrom <anders.nystrom@southpole.se>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-04-09 14:32:37 +02:00
Ferdinand Oeinck
0266988ccd hqx: Fix clipping error in idct put function
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-04-09 13:52:04 +02:00
Vittorio Giovara
783df7d5c5 riff: Add 'M705' FourCC for mpeg2video 2015-04-09 13:52:04 +02:00
Vittorio Giovara
5980c924e3 dnxhd: Log the selected profile id 2015-04-09 13:51:58 +02:00
Michael Niedermayer
98d0c4236c avcodec/h264: Be more tolerant to changing pps id between slices
Fixes Ticket4446

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-09 13:50:07 +02:00
Vittorio Giovara
be089af38f mov: Rely on box type rather than file type for colr atom
Although it's not allowed to use only allows 'nclc' in ISOM files, there
are samples that do not always respect this rule. This change prevents
atom overread and a spurious color range initialization.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-04-09 13:46:54 +02:00
Vittorio Giovara
f8fd0c29ce v210: Fix typo in header guards 2015-04-09 13:40:44 +02:00
Michael Niedermayer
0773f67395 avfilter/vsrc_life: Fix mix of declarations and statements
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-09 11:40:44 +02:00
Himangi Saraogi
df4fca2163 vda: Cast to not discard constant qualifier and silence compiler warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-09 01:23:33 +02:00
Michael Niedermayer
d630f38f47 avutil/x86/Makefile: fix conditional x86/emms.o build
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-09 01:12:51 +02:00
Michael Niedermayer
e88b3852ae avcodec/aacdec: Fix storing state before PCE decode
Fixes Ticket4460

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-09 00:42:25 +02:00
Michael Niedermayer
32e06c485b avcodec/h264_ps: Move truncation check from VUI to SPS
This more completely checks for truncation

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-08 22:19:56 +02:00
wm4
48f27b78f4 microdvd: do not export framerate hint as subtitle packet
MicroDVD has a "hack" for specifying the video framerate the subtitle
was authored against. The demuxer reads this hint correctly, but didn't
skip it correctly.

This was not noticed, because the exported packet has its duration set
to 0, making it invisible (depending on the API user's rendering logic).

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-08 20:58:25 +02:00
Michael Niedermayer
edaca0812a Merge commit 'bb815dfc38b8ef7a89d6b9684ce0cdc296385d6d'
* commit 'bb815dfc38b8ef7a89d6b9684ce0cdc296385d6d':
  g2meet: K&R formatting cosmetics

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-08 20:48:44 +02:00
Michael Niedermayer
8e1717cf12 Merge commit 'c4d37cd9ef6e374bb888f6273259b10fac5bd909'
* commit 'c4d37cd9ef6e374bb888f6273259b10fac5bd909':
  matroskadec: export cover art correctly

Conflicts:
	libavformat/matroskadec.c

See: 511585ce7f
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-08 20:37:24 +02:00
Carl Eugen Hoyos
79c11388e1 lavf/apngenc: Do not print a warning in the normal use-case. 2015-04-08 19:58:32 +02:00
Ronald S. Bultje
b926f02e81 avutil/x86/Makefile: Make building and linking of emms.c conditional
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-08 17:25:35 +02:00
Paul B Mahol
a0854c084e avfilter: handle error in query_formats() in bunch of filters
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-04-08 13:05:06 +00:00
Gilles Chanteperdrix
21e034a47a avformat/libquvi: Fix whitelist handling
Fixes null pointer dereference

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-08 14:40:56 +02:00
Diego Biurrun
bb815dfc38 g2meet: K&R formatting cosmetics 2015-04-08 14:23:36 +02:00
Michael Niedermayer
845ab37b05 avcodec/h264_slice: Fix uninitialized variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-08 13:05:38 +02:00
wm4
c4d37cd9ef matroskadec: export cover art correctly
Generally, libavformat exports cover art pictures as video streams with
1 packet and AV_DISPOSITION_ATTACHED_PIC set. Only matroskadec exported
it as attachment with codec_id set to AV_CODEC_ID_MJPEG.

Obviously, this should be consistent, so change the Matroska demuxer to
export a AV_DISPOSITION_ATTACHED_PIC pseudo video stream.

Matroska muxing is probably incorrect too. I know that it can create
broken files with an audio track and just 1 video frame when e.g.
remuxing mp3 with APIC to mkv. But for now this commit does not change
anything about muxing, and also continues to write attachments with
AV_CODEC_ID_MJPEG should the muxer application have special knowledge
that the Matroska is broken in this way.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-04-08 12:36:53 +02:00
Michael Niedermayer
386601286f avcodec/h264_slice: Dont reset mb_aff_frame per slice
Fixes null pointer dereference
Fixes Ticket4440

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-08 12:29:47 +02:00
Michael Niedermayer
795199fca4 avcodec/h264: use consistent argument name in MB_FIELD() macro
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-08 12:29:17 +02:00
ferdo@bigroses.nl
92f94fd5dd libavcodec/hqx: correct clipping error
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-08 09:53:59 +02:00
Michael Niedermayer
235589ee9e avformat/segment: Change enum to int, which is accessed via AVOption as int
This fixes depending on implementation defined behavior

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-07 23:21:48 +02:00
Michael Niedermayer
f289422a3e avformat/ape: Use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-07 22:50:07 +02:00
Michael Niedermayer
3662e251cb avformat/asfenc: Check for index_ptr allocation failure
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-07 22:29:54 +02:00
Vignesh Venkatasubramanian
d6bb82387c webmdashenc: Fix fate in MSVC
MSVC does not support the %F and %T format specifiers in strftime.
Replace that with the expanded version. This fixes the broken fate
tests in MSVC (webm-dash-manifest-*).

Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-07 21:29:20 +02:00
Michael Niedermayer
9c37c81246 Merge commit '27f274628234c1f934b9a6a6380ed567c1b4ceae'
* commit '27f274628234c1f934b9a6a6380ed567c1b4ceae':
  parseutils: Make av_small_strptime public

Conflicts:
	doc/APIchanges
	libavformat/utils.c
	libavutil/parseutils.c
	libavutil/version.h

See: 29e972f67c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-07 20:46:25 +02:00
Michael Niedermayer
0739179bfb Merge commit '108f2f381acb93827fb4add0517eeae859afa3bf'
* commit '108f2f381acb93827fb4add0517eeae859afa3bf':
  parseutils: Extend small_strptime to be used in avformat

Conflicts:
	libavutil/parseutils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-07 20:01:36 +02:00
Vignesh Venkatasubramanian
6fd300ac6c lavf: Add support for WebM Live Muxing
This patch adds support for WebM Live Muxing by adding a new WebM
Chunk muxer. It writes out live WebM Chunks which can be used for
playback using Live DASH Clients.

Please see muxers.texi for sample usage.

Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-07 15:08:59 +02:00
Luca Barbato
27f2746282 parseutils: Make av_small_strptime public
And use it in libavformat.

Based on a similar patch by Stefano Sabatini <stefasab@gmail.com>.
2015-04-07 12:36:11 +02:00
Michael Niedermayer
c4b2017ba6 avcodec/h264: finish previous slices before switching to single thread mode
Fixes null pointer dereference
Fixes Ticket4438

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-07 02:47:36 +02:00
Michael Niedermayer
43b434210e avcodec/h264: Fix race between slices where one overwrites data from the next
Fixes non deterministic crash in ticket4408/fuzz2.264
Likely fixes other samples as well

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-07 00:40:21 +02:00
Michael Niedermayer
4ec5762e25 tests/fate/mpeg4: add bitexact flag so as to avoid the version number from being included in the checksum
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-06 23:00:16 +02:00
Andreas Cadhalpun
1b8d071734 fate: add mpeg4_unpack_bframes bsf test
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-06 22:25:57 +02:00
Stephan Holljes
6d8c27f951 libavformat/http.c: Fix missing parenthesis in http_listen()
Signed-off-by: Stephan Holljes <klaxa1337@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-06 22:17:58 +02:00
Michael Niedermayer
eca39e29a3 MAINTAINERS: Add Lou Logan as server admin as he is root too
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-06 20:24:05 +02:00
Michael Niedermayer
7ddbb4e23a avcodec/pthread_frame: Fix memleak with frame threads and allocated AVOptions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-06 18:43:38 +02:00
Luca Barbato
108f2f381a parseutils: Extend small_strptime to be used in avformat
The strptime implementation is supposed to support whitespace and %T.
2015-04-06 18:09:03 +02:00
Lukasz Marek
f79cd98caf examples/avio_list_dir: init/deinit network
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2015-04-06 15:50:26 +02:00
Michael Niedermayer
a66dcfeedc avcodec/vc1dec: Check buf2 for malloc failure
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-06 15:06:42 +02:00
Michael Niedermayer
34bddf443c avfilter/af_amix: Use av_mallocz_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-06 15:04:38 +02:00
Michael Niedermayer
8a8a1cce6c avfilter/vsrc_mptestsrc: Change enum to int, which is accessed via AVOption as int
This fixes depending on implementation defined behavior

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-06 14:45:17 +02:00
Michael Niedermayer
d2277aa7e2 avformat/httpauth: Change enum to int, which is accessed via AVOption as int
This fixes depending on implementation defined behavior

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-06 14:44:33 +02:00
Michael Niedermayer
ff6841c6bb avformat/utils: avoid discarded streams in av_find_default_stream_index()
Fixes Ticket2010

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-06 04:31:29 +02:00
Michael Niedermayer
ba54512a10 avfilter/vf_mpdecimate: Fix missing ()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-06 02:41:49 +02:00
Mariusz Szczepańczyk
4286752279 lavf/libsmbclient: implement directory listing callbacks
Reviewed-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-06 01:59:04 +02:00
Michael Niedermayer
99a567cbe2 Merge commit '249796e2560c2cce1add722c3e873de96b17be74'
* commit '249796e2560c2cce1add722c3e873de96b17be74':
  svq3: initialize some required H264Context fields.

See: e6c710600e
See: aa000ddab2
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-06 01:41:00 +02:00
James Almer
43482bd1a5 swr/resample: use av_clip functions
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-05 22:46:40 +02:00
Michael Niedermayer
be920e4820 Merge commit '5637ff01218a44fcc1fff9b4382a15a6470abcc9'
* commit '5637ff01218a44fcc1fff9b4382a15a6470abcc9':
  libavcodec: Clarify the documentation of the internal codec capability flags

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-05 22:35:19 +02:00
Michael Niedermayer
db4ac46fed Merge commit '31048d48b0410b9cfb6023054d81e627d01be342'
* commit '31048d48b0410b9cfb6023054d81e627d01be342':
  avcodec/libx265: export chosen picture types

See: 2ddedfd39c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-05 22:34:17 +02:00
Michael Niedermayer
39c6834c12 Merge commit 'bd737b5178f361a9b592691848f29a7a79603a7e'
* commit 'bd737b5178f361a9b592691848f29a7a79603a7e':
  h264: reset the private data in init_thread_copy()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-05 22:25:29 +02:00
Michael Niedermayer
097efa4750 Merge commit 'a939e5b2527d0c4628815b1d3d8e29ee921227e8'
* commit 'a939e5b2527d0c4628815b1d3d8e29ee921227e8':
  h264: remove a commented out nonsense line

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-05 22:18:43 +02:00
Michael Niedermayer
aa000ddab2 avcodec/svq3: add scaling matrix init that was removed from h264 init
This is needed for svq3

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-05 22:17:50 +02:00
Michael Niedermayer
80a76905eb Merge commit '65afa65e7393e7745427e267d6c6ca814c7c8b45'
* commit '65afa65e7393e7745427e267d6c6ca814c7c8b45':
  h264: drop redundant initialization of the scaling matrices

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-05 22:04:58 +02:00
Michael Niedermayer
abae926ef8 Merge commit 'e1f907711a91e5ce19402a1831cfbe8f709b67f7'
* commit 'e1f907711a91e5ce19402a1831cfbe8f709b67f7':
  h264: factor out common code from init() and init_thread_copy()

Conflicts:
	libavcodec/h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-05 21:56:50 +02:00
Michael Niedermayer
e6c710600e avcodec/svq3: add initialization which was removed from h264 init
This is needed for the svq3 code to work

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-05 21:36:07 +02:00
Michael Niedermayer
14d241b19d Merge commit '43fd3dd80ca2d1c2ccf6a7b7632db544c809c690'
* commit '43fd3dd80ca2d1c2ccf6a7b7632db544c809c690':
  h264: drop redundant initialization in init()

Conflicts:
	libavcodec/h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-05 21:11:25 +02:00
Anton Khirnov
249796e256 svq3: initialize some required H264Context fields.
They are no longer initialized in ff_h264_decode_init() since 43fd3dd,
so svq3 needs to initialize the manually.

Fixes svq3 decoding, broken since 43fd3dd.
2015-04-05 21:02:56 +02:00
Michael Niedermayer
68f4840606 Merge commit '050324d020f843ce333276ebb6f27cc6026f37d0'
* commit '050324d020f843ce333276ebb6f27cc6026f37d0':
  h264: initialize cur_chroma_format_idc

See: a51fbb56bb / 137df692fc
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-05 21:02:13 +02:00
Michael Niedermayer
cde98920da Merge commit '84f226a3bcd8b39801a4c9051c033ab7d61aaf76'
* commit '84f226a3bcd8b39801a4c9051c033ab7d61aaf76':
  h264: use the correct SPS during PPS parsing

Conflicts:
	libavcodec/h264_ps.c

See: dc35b77b28
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-05 20:48:14 +02:00
Martin Storsjö
5637ff0121 libavcodec: Clarify the documentation of the internal codec capability flags
The previous documentation was very vague and almost misleading.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-04-05 20:47:50 +03:00
Michael Niedermayer
31048d48b0 avcodec/libx265: export chosen picture types
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-04-05 12:32:07 -04:00
Michael Niedermayer
0968180f02 avfilter/yadif: Change enums to int, which are accessed via AVOption as int
This fixes depending on implementation defined behavior

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-05 15:46:11 +02:00
Michael Niedermayer
9caec04a31 avfilter/vsrc_mandelbrot: Change enums to int, which are accessed via AVOption as int
This fixes depending on implementation defined behavior

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-05 15:44:59 +02:00
Andreas Cadhalpun
71fa0aa085 mpeg4: suggest mpeg4_unpack_bframes bsf instead of avidemux/VirtualDub
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-05 15:21:20 +02:00
Michael Niedermayer
cf880ccb6a avcodec/error_resilience: Avoid race with updating the error_count
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-05 13:32:09 +02:00
Anton Khirnov
bd737b5178 h264: reset the private data in init_thread_copy()
The generic code copies the main context's private data to all the
others. However that is quite dangerous, as it might end up copying some
pointers that are or will become invalid.

Since everything we actually need will be copied later in
update_thread_context(), it's safest to zero the private data in
init_thread_copy(), so it works the same way as init for the main
context.
2015-04-05 12:03:07 +02:00
Anton Khirnov
a939e5b252 h264: remove a commented out nonsense line 2015-04-05 12:03:02 +02:00
Anton Khirnov
65afa65e73 h264: drop redundant initialization of the scaling matrices
It will always be initialized when actually parsing the PPS.
2015-04-05 12:02:57 +02:00
Anton Khirnov
e1f907711a h264: factor out common code from init() and init_thread_copy() 2015-04-05 12:02:35 +02:00
Anton Khirnov
43fd3dd80c h264: drop redundant initialization in init()
There is no real advantage to initializing any of those in init,
assuming yuv420, before the real stream parameters are known.
2015-04-05 12:02:26 +02:00
Anton Khirnov
050324d020 h264: initialize cur_chroma_format_idc
This makes sure the various DSP contexts get properly initialized in
ff_h264_set_parameter_from_sps() whatever the value of
raw_bits_per_sample.
2015-04-05 12:02:20 +02:00
Anton Khirnov
84f226a3bc h264: use the correct SPS during PPS parsing
There is in general no reason for the currently active SPS to be the one
referenced by the PPS being parsed.
2015-04-05 12:01:34 +02:00
Stephan Holljes
4a58d757de lavf/http: add proof-of-concept http server.
Signed-off-by: Stephan Holljes <klaxa1337@googlemail.com>
Reviewed-By: Nicolas George <george@nsup.org>
2015-04-05 10:17:47 +02:00
Andreas Cadhalpun
0224b35c89 avcodec: add unpack packed B-frames bitstream filter
Fixes Ticket #2913

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-05 02:24:56 +02:00
Vignesh Venkatasubramanian
26f2e2f3f7 webmdashenc: Support for live stream manifests
This patch adds support for creating DASH manifests for WebM Live
Streams. It also updates the documentation and adds a fate test to
verify the behavior of the new muxer flag.

Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-05 02:08:55 +02:00
Michael Niedermayer
bc0e65e7d0 Merge commit 'aa1a1b2496cf3ca817e78e27bd0262a50adb91a1'
* commit 'aa1a1b2496cf3ca817e78e27bd0262a50adb91a1':
  avconv: Avoid theoretical NULL dereferences

See: d768f8f5cf
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-05 00:56:50 +02:00
Vignesh Venkatasubramanian
2171b7c58e matroskadec: Add support for parsing live header files
This patch adds support for parsing live files (produced by
-f webm_chunk) which contains only the headers but no packets. This
is only used when using -f webm_dash_manifest. There will be a
follow up patch which adds live support to WebM DASH Manifest
muxer.

Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-05 00:39:29 +02:00
Michael Niedermayer
afb327caf3 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  lavf/mov: Do not overread iTunes metadata.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-04 20:15:21 +02:00
Himangi Saraogi
aa1a1b2496 avconv: Avoid theoretical NULL dereferences
Bug-Id: CID 1292519

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-04-04 19:32:10 +02:00
Michael Niedermayer
aa6f58dd96 avcodec/h264_refs: More completely clear slice contexts in ff_h264_remove_all_refs()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-04 19:30:10 +02:00
Michael Niedermayer
fc58d5c43b avcodec/h264: Fail for invalid mixed IDR / non IDR frames in slice threading mode
Fixes Ticket4408

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-04 19:28:33 +02:00
Michael Niedermayer
60e7d2d7b9 avcodec/h264_mb: assert that frame waiting code actually references 2 fields/1 frame
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-04 18:34:36 +02:00
Michael Niedermayer
429de04320 avcodec/h264_refs: Do not set reference to things which dont exist
Fixes deadlock
Fixes Ticket4428
Fixes Ticket4429

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-04 18:25:44 +02:00
Carl Eugen Hoyos
072198166e lavf/mov: Do not overread iTunes metadata.
Fixes ticket #4425.
2015-04-04 17:35:06 +02:00
Michael Niedermayer
98c5db89bb avcodec/h264_slice: make current_slice reset code more strict
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-04 17:00:12 +02:00
Michael Niedermayer
514d9bb55d avcodec/h264: use goto end instead of return for hwaccel fails as well
This is more correct

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-04 14:40:40 +02:00
Himangi Saraogi
4b03002527 avformat/rtsp: Fix null pointer dereference
This fixes CID 1257827.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-04 13:38:34 +02:00
Rodger Combs
f0c85d9b99 lavf/assenc: style nits
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-04 13:36:57 +02:00
wm4
511585ce7f matroskadec: export cover art correctly
Generally, libavformat exports cover art pictures as video streams with
1 packet and AV_DISPOSITION_ATTACHED_PIC set. Only matroskadec exported
it as attachment with codec_id set to AV_CODEC_ID_MJPEG.

Obviously, this should be consistent, so change the Matroska demuxer to
export a AV_DISPOSITION_ATTACHED_PIC pseudo video stream.

Matroska muxing is probably incorrect too. I know that it can create
broken files with an audio track and just 1 video frame when e.g.
remuxing mp3 with APIC to mkv. But for now this commit does not change
anything about muxing, and also continues to write attachments with
AV_CODEC_ID_MJPEG should the muxer application have special knowledge
that the Matroska is broken in this way.

Fixes trac #4423.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-04 02:25:56 +02:00
Andreas Cadhalpun
f62880bfb8 mpeg4: use a self-explanatory #define MAX_NVOP_SIZE
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-04 02:23:58 +02:00
Michael Niedermayer
241913c0d0 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Fix codec fps diplay for very small fps.
  lavf/mpeg: Support alaw in Hikvision CCTV recordings.
  lavf/mpeg: Support more audio codecs in Hikvision CCTV recordings.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-04 02:15:27 +02:00
Michael Niedermayer
333eb37a96 avcodec/h264: silence ER warning when no slice threads are used
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-04 02:15:16 +02:00
Lou Logan
893e61734f MAINTAINERS: add Reynaldo as a Twitter maintainer
Signed-off-by: Lou Logan <lou@lrcd.com>
2015-04-03 15:59:17 -08:00
Michael Niedermayer
4b7356ce8f avcodec/h264: reenable ER except with slice threads by default
ER with slice threads is buggy and since the merge of the libav cleanup broken
as the ER context which is supposed to be per frame has been placed in
the slice context, so there are multiple per frame which does not work as is.

Theres no bug report about ER with frame threads. If someone knows of a
case where it crashes / fails without slice threads please mail me and
open a ticket on trac.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-04 01:43:14 +02:00
Michael Niedermayer
6da7625cc3 Merge commit 'a4d34e218f548d381e09c483e8dc6ad18a8d571c'
* commit 'a4d34e218f548d381e09c483e8dc6ad18a8d571c':
  h264: disable ER by default

Conflicts:
	libavcodec/h264.c
	libavcodec/h264_picture.c
	libavcodec/h264_slice.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-04 00:52:54 +02:00
Michael Niedermayer
959894632a Merge commit '3892bdab9b652eb003ab95e167f1765e0b0ea035'
* commit '3892bdab9b652eb003ab95e167f1765e0b0ea035':
  avconv: do not overwrite the stream codec context for streamcopy

Conflicts:
	ffmpeg.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-04 00:38:02 +02:00
Michael Niedermayer
4d02dfbde4 ffmpeg: Fix extradata allocation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-04 00:02:14 +02:00
Michael Niedermayer
20ba28af94 tests/fate/hevc: Use a bitexact scaler in the hevc param change test to avoid failing on non x86
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-03 22:48:33 +02:00
Michael Niedermayer
0cb46c1e0e Merge commit 'b2965ec7761c99e8ef9c217a28a517e37f010480'
* commit 'b2965ec7761c99e8ef9c217a28a517e37f010480':
  FATE: add a test for parameter changes in HEVC

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-03 22:39:20 +02:00
Michael Niedermayer
235863463a Merge commit 'df528b11ac607de13a7c438f2a51f2119f71a03c'
* commit 'df528b11ac607de13a7c438f2a51f2119f71a03c':
  hevc: make sure no dangling pointers remain around on VPS/SPS change

Conflicts:
	libavcodec/hevc_ps.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-03 22:16:10 +02:00
Michael Niedermayer
41dde62d7f Merge commit 'ce0bc09ee2580d49fec90a6eb0de2ba1b580c854'
* commit 'ce0bc09ee2580d49fec90a6eb0de2ba1b580c854':
  hevc: do not change the VPS if its contents are the same

Conflicts:
	libavcodec/hevc_ps.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-03 21:37:03 +02:00
Michael Niedermayer
d386a523ae Merge commit '7693ba0a0eecdcdba71b7fbd9a4a12d1ba7b82aa'
* commit '7693ba0a0eecdcdba71b7fbd9a4a12d1ba7b82aa':
  hevc: export stream parameters from extradata

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-03 21:29:54 +02:00
Carl Eugen Hoyos
c4367f950d Fix codec fps diplay for very small fps.
Fixes codec banner for the sample from ticket #4369.
2015-04-03 21:13:50 +02:00
Carl Eugen Hoyos
036079ce34 lavf/mpeg: Support alaw in Hikvision CCTV recordings.
Fixes a sample from ticket #4182.
2015-04-03 21:13:50 +02:00
Carl Eugen Hoyos
f8413f74a1 lavf/mpeg: Support more audio codecs in Hikvision CCTV recordings.
Fixes a sample from ticket #4182.
2015-04-03 21:13:50 +02:00
Michael Niedermayer
a7a6194ec4 Merge commit '1ae7afd256f9af1eb4f63f9adcf03d581ce4e2b5'
* commit '1ae7afd256f9af1eb4f63f9adcf03d581ce4e2b5':
  hevc: split out setting AVCodecContext parameters

Conflicts:
	libavcodec/hevc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-03 21:11:19 +02:00
Michael Niedermayer
5b97681eaa Merge commit '7d097a0fc57f0fa8385962a539c657c2f40b5ed0'
* commit '7d097a0fc57f0fa8385962a539c657c2f40b5ed0':
  mpegtsenc: Take max_delay into account when buffering multiple audio packets into one PES packet

Conflicts:
	libavformat/mpegtsenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-03 21:01:40 +02:00
Lou Logan
44cae91252 cmdutils: fix "Commmand" typo
Signed-off-by: Lou Logan <lou@lrcd.com>
2015-04-03 10:43:21 -08:00
Andreas Cadhalpun
1f47c2399d mpeg4: only show the divx_packed warning, when a packed frame is present
Otherwise it is shown even after the file was fixed with avidemux,
because the userdata string still ends with 'p'.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-03 20:23:24 +02:00
Michael Niedermayer
6eb6956d06 ffmpeg: Fix indentation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-03 19:39:06 +02:00
Michael Niedermayer
98c7729c13 ffmpeg: last frame duplication heuristic
This improves the last frames duration with CFR and when the input durations
are inaccurate or missing

Fixes Ticket4119

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-03 19:09:31 +02:00
Rong Yan
af5fec9538 avcodec/ppc/fdctdsp: POWER LE support in ff_fdct_altivec()
add marcos VEC_FMERGEH() VEC_FMERGEL()

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-03 18:10:27 +02:00
Himangi Saraogi
24326930d8 filtfmts: Avoid null pointer dereference
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-03 17:23:45 +02:00
Steve Dierker
acbb90407a libavformat/mxf.c: Relaxed ProRes pattern
I found another MXF File containing ProRes with the following
codec_uls: 060E2B34040101010E04020102110500
Therefor I relaxed the pattern.

Related to issue #4349

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-03 13:26:39 +02:00
Anton Khirnov
a4d34e218f h264: disable ER by default
The way it is currently designed is fundamentally unsafe and cannot be
reasonably fixed without completely rewriting it.
2015-04-03 13:14:43 +02:00
Anton Khirnov
3892bdab9b avconv: do not overwrite the stream codec context for streamcopy
Since we are not doing encoding, there is no point in ever touching the
separate encoding context. Always use the stream codec context.

Fixes writing attachments.

CC:libav-devel@libav.org
2015-04-03 13:10:03 +02:00
Anton Khirnov
b2965ec776 FATE: add a test for parameter changes in HEVC 2015-04-03 13:10:03 +02:00
Anton Khirnov
df528b11ac hevc: make sure no dangling pointers remain around on VPS/SPS change 2015-04-03 13:10:03 +02:00
Anton Khirnov
ce0bc09ee2 hevc: do not change the VPS if its contents are the same
This is the same as is done for SPS.
2015-04-03 13:10:03 +02:00
Anton Khirnov
7693ba0a0e hevc: export stream parameters from extradata
This allows the callers to have a hint of the probable stream parameters
without actually decoding anything.
2015-04-03 13:10:03 +02:00
Anton Khirnov
1ae7afd256 hevc: split out setting AVCodecContext parameters
Additionally always set the software pixel format, so it's available
even if ff_get_format() is not called later. This will be useful for
exporting stream parameters from init().
2015-04-03 13:10:02 +02:00
Martin Storsjö
7d097a0fc5 mpegtsenc: Take max_delay into account when buffering multiple audio packets into one PES packet
Make sure we don't buffer up more than max_delay worth of data
before writing a PES packet, even if pes_payload_size is set to
a larger value.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-04-03 14:06:15 +03:00
Mariusz Szczepańczyk
f10aa0e125 doc/examples: Handle new types in avio_list_dir
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-03 04:09:40 +02:00
Mariusz Szczepańczyk
26e0e393d0 lavf/avio: Add new types to AVIODirEntryType, bump minor version
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-03 04:09:34 +02:00
Stephen Hutchinson
b2c05867f5 doc: Slightly revise AviSynth version info
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-03 00:17:51 +02:00
Lukasz Marek
cd3d0d5422 lavf/ftp: remove fixed length buffers from context
It saves some memory.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2015-04-03 00:10:09 +02:00
Lukasz Marek
c043def91f lavf/ftp: parse user and password once
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2015-04-03 00:09:54 +02:00
Stephen Hutchinson
3723a18310 avisynth: Bump minimum required version to interface version 6
The AVSC_API changes in the new headers mean that the 2.6 alphas
are just as incompatible as 2.5 is.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-02 23:52:48 +02:00
Stephen Hutchinson
d858c3a18f avisynth: Fix detection of AviSynth 2.5
In order to safely exit when the user tries to use AviSynth 2.5,
the continue_on_fail value for 2.6's functions need to be set to
1.  Otherwise, the library loader fails before the 'upgrade to
2.6' log message appears.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-02 23:30:08 +02:00
James Almer
3000183732 avcodec/pngenc: don't return a value in a void function
Should fix compilation failures with strict compilers

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-02 23:22:28 +02:00
Lukasz Marek
0bf980919e fate: add AVDictionary tests
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2015-04-02 23:15:57 +02:00
Lukasz Marek
96f896750d lavu/dict: add more tests
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2015-04-02 23:15:57 +02:00
Lukasz Marek
a8c5b4551e lavu/dict: fix set function when reuse existing key pointer
Fixes following scenario:

av_dict_set(&d, "key", "old", 0);
AVDictionaryEentry *e = av_dict_get(d, "key", NULL, 0);
av_dict_set(&d, e->key, "new", 0);

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2015-04-02 23:15:57 +02:00
Donny Yang
b0a2aee408 png: Use libavutil's crc functions instead of zlib's
Signed-off-by: Donny Yang <work@kota.moe>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-02 20:41:51 +02:00
Tim Nicholson
27565ace60 ffmpeg_opt.c: fix regression introduced in 5743095c
-vtag is an input and output option.

Signed-off-by: Tim Nicholson <tim.nicholson@bbc.co.uk>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-02 20:04:00 +02:00
Michael Niedermayer
c299fbbb22 avcodec/vda_h264: try to fix build
Found-by: Stefano Pigozzi
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-02 16:04:22 +02:00
Rainer Hochecker
3e53211a57 vda: fix h264 decoding for avcC,vda wants the entire buffer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-02 15:06:28 +02:00
Timo Rothenpieler
764f87b6ab avcodec/nvenc: Fix profile parameter handling
It was not possible to set a profile before, the builtin profile
parameter does not seem to work propperly.
To be compatible with libx264, this overlays it with a local parameter
that expects a string, instead of an int, that takes the well known values
"high", "main" or "baseline".

Reviewed-by: Philip Langdale <philipl@overt.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-02 14:33:42 +02:00
Carl Eugen Hoyos
703402683a Bump lavc and lavf minor versions for apng muxer and encoder. 2015-04-02 14:09:11 +02:00
Himangi Saraogi
d768f8f5cf ffmpeg: Avoid null pointer dereferences
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-02 13:06:00 +02:00
Donny Yang
80be7daaa8 apng: Add a basic APNG muxer
Additionally, update some documentation with support for APNG

Signed-off-by: Donny Yang <work@kota.moe>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-02 04:52:59 +02:00
Donny Yang
d759844863 apng: Add a basic APNG encoder
Signed-off-by: Donny Yang <work@kota.moe>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-02 04:02:43 +02:00
Lukasz Marek
08d0dbf2ae lavu/dict: don't accept AV_DICT_DONT_STRDUP_VAL for av_dict_set_int
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-02 00:48:19 +02:00
Pranav Vaish
f669d8c1b7 avcodec/ccaption_dec: Remove the GOTO statement 2015-04-02 00:06:44 +02:00
Michael Niedermayer
53bf6b155c Merge commit 'e3ec6fe7bb2a622a863e3912181717a659eb1bad'
* commit 'e3ec6fe7bb2a622a863e3912181717a659eb1bad':
  rtsp: Add a buffer_size option

Conflicts:
	libavformat/rtsp.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-01 21:34:20 +02:00
Michael Niedermayer
b99a8e4e4a Merge commit '8c9c5479c4ba729b4ba868ab541a90b2061a7c2f'
* commit '8c9c5479c4ba729b4ba868ab541a90b2061a7c2f':
  rtp: Add an option to set the send/receive buffer size

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-01 21:12:47 +02:00
Michael Niedermayer
fde2e35e56 Merge commit '3c47e7c4350f73fc77d8e76f0dd6d2946b13c5cc'
* commit '3c47e7c4350f73fc77d8e76f0dd6d2946b13c5cc':
  rtp: Map the urloptions to AVOptions

Conflicts:
	libavformat/rtpproto.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-01 21:03:10 +02:00
Michael Niedermayer
5dd5b7d531 Revert "avcodec/exr: fix memset first arg in reverse_lut()"
This reverts commit 586ba24ff2.

Fixes Ticket 4386

Found-by: Martin Vignali <martin.vignali@gmail.com>
2015-04-01 19:53:23 +02:00
Himangi Saraogi
5b02e84bdb lavc/smvjpegdec: Avoid null dereference and return meaningful error codes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-01 19:33:45 +02:00
Michael Niedermayer
b9fbd034bf avformat/xwma: Use ff_alloc_extradata()
This prevents the fields from potentially becoming inconsistent in case of errors

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-01 18:25:34 +02:00
Michael Niedermayer
5b911f1d5b avformat/webmdashenc: use AVERROR(ENOMEM) for memory allocation failures
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-01 18:11:48 +02:00
Michael Niedermayer
5b32558fd8 tools/sidxindex: Use av_*malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-01 17:43:25 +02:00
Michael Niedermayer
c49e7924a8 avutil/eval: check for av_malloc failure
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-01 15:59:58 +02:00
Michael Niedermayer
61123634dd avutil/eval: factor av_expr_free() calls out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-01 15:59:58 +02:00
Luca Barbato
e3ec6fe7bb rtsp: Add a buffer_size option
And forward it to rtp and udp.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-04-01 14:26:35 +02:00
Luca Barbato
8c9c5479c4 rtp: Add an option to set the send/receive buffer size
It gets forwarded down to UDP.
2015-04-01 14:26:35 +02:00
Luca Barbato
3c47e7c435 rtp: Map the urloptions to AVOptions
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-04-01 14:26:35 +02:00
Timo Rothenpieler
b63c9a9990 avcodec/nvenc: Fix typoed nv_status checks
Thanks to Wyatt Aaron for pointing this out

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-01 11:55:26 +02:00
Donny Yang
3c912391dd avcodec/png: Clearly separate encoding header and frames
Signed-off-by: Donny Yang <work@kota.moe>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-01 01:04:40 +02:00
Lukasz Marek
31886968d3 lavu/avstring: add av_append_path_component() funcion
Convinient function to build paths.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-31 23:50:46 +02:00
wm4
8b76c0eb56 avformat/mp3dec: offset seek index to end of id3v2 tag
The Xing index won't account for the id3 tag - it's relative to the
headers.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-31 23:22:07 +02:00
Michael Niedermayer
2ddedfd39c avcodec/libx265: export choosen picture types
Fixes part of ticket 4285

Reviewed-by Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-31 20:21:10 +02:00
Donny Yang
749fbfd081 png: Clear up the calculation of max packet size
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-31 16:15:36 +02:00
Michael Niedermayer
65a646eb0b avcodec/internal: Fix doxy for ff_alloc_packet2() return value
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-31 16:14:22 +02:00
Marton Balint
c84b75c89c vf_drawtext: add support for setting box border width
Signed-off-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-31 13:41:25 +02:00
Himangi Saraogi
919d13d238 avformat/http: Fix null check on allocated value
probably fixes CID 1292299

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-31 12:38:02 +02:00
Rainer Hochecker
8b152c355f h264: avoid unnecessary calls to get_format
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-31 12:14:39 +02:00
Himangi Saraogi
0c9abf2119 avfilter/vf_detelecine: Fix uninitialized array index error
Fixes the defect CID 1292301

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-31 12:11:17 +02:00
Rodger Combs
5cba5291a7 lavf/segment: style nits
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-31 04:34:32 +02:00
Michael Niedermayer
385fe984fc avcodec/snowenc: Check av_frame_ref() return value
Fixes CID1026740

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-31 04:33:50 +02:00
Michael Niedermayer
a38758a97e avcodec/h264_refs: fix null pointer dereference with -DTRACE
Found-by: carl
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-31 01:57:00 +02:00
Michael Niedermayer
a105931d3e Merge commit '4978850ca2cb1ec6908f5bc79cc592ca454d11e8'
* commit '4978850ca2cb1ec6908f5bc79cc592ca454d11e8':
  build: Split JPEG-related tables off into a separate component

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-31 01:11:02 +02:00
Michael Niedermayer
48183f144d Merge commit '87f87ccf32055aca25fa08e29e22cca1ba9976d5'
* commit '87f87ccf32055aca25fa08e29e22cca1ba9976d5':
  mjpeg: Use a more precise type for put_marker()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-31 00:48:04 +02:00
Michael Niedermayer
21ee6da70c avutil/hmac: Check av_hmac_alloc() return code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-30 23:24:33 +02:00
Michael Niedermayer
1a10134e20 swresample/swresample: Use av_mallocz_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-30 23:24:33 +02:00
Mariusz Szczepańczyk
f613f238f9 lavf: Bump minor version and document directory listing API in doc/APIchanges. 2015-03-30 23:02:53 +02:00
Michael Niedermayer
fda8b7ec7d avcodec/libdcadec: remove av_assert and check bits_per_sample more completely
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-30 22:32:47 +02:00
Michael Niedermayer
1019a1cb0a avfilter/vf_vignette: Change enum to int, which is accessed via AVOption as int
This fixes depending on implementation defined behavior

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-30 21:58:42 +02:00
Michael Niedermayer
63167a6ba3 avdevice/avfoundation: Fix occured typo
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-30 21:41:17 +02:00
Michael Niedermayer
794e9fb5a6 Merge commit 'e6e3dcba0c6f11bd7022e2d3b9bcb7b6a09d6c80'
* commit 'e6e3dcba0c6f11bd7022e2d3b9bcb7b6a09d6c80':
  mjpeg: Move code only used in the encoder(s) to the appropriate header

Conflicts:
	libavcodec/mjpegdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-30 21:05:23 +02:00
Michael Niedermayer
847c0d333b Merge commit '6ed38b1f65b424a4fa92042e0069f350b95e0098'
* commit '6ed38b1f65b424a4fa92042e0069f350b95e0098':
  tiff: Return more meaningful error codes

Conflicts:
	libavcodec/tiffenc.c

See: 0187c2ccda
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-30 20:55:52 +02:00
Michael Niedermayer
98263d7515 Merge commit '23944d29a22a2cd602753b3705f73011c3bf0b18'
* commit '23944d29a22a2cd602753b3705f73011c3bf0b18':
  indeo: Give Indeo4/5 shared code a more consistent name

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-30 20:39:08 +02:00
Michael Niedermayer
f5c7531ab1 Merge commit '7d3183d3a4e800ab7a7fa24f49968a1b1bcc0161'
* commit '7d3183d3a4e800ab7a7fa24f49968a1b1bcc0161':
  qsv: Skip header compilation depending on what parts of qsv are enabled

Conflicts:
	libavcodec/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-30 20:31:50 +02:00
Himangi Saraogi
0187c2ccda tiff: Return more meaningful error codes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-30 19:34:26 +02:00
Diego Biurrun
4978850ca2 build: Split JPEG-related tables off into a separate component 2015-03-30 17:51:21 +02:00
Diego Biurrun
87f87ccf32 mjpeg: Use a more precise type for put_marker() 2015-03-30 17:51:20 +02:00
Diego Biurrun
e6e3dcba0c mjpeg: Move code only used in the encoder(s) to the appropriate header 2015-03-30 17:51:20 +02:00
Himangi Saraogi
6ed38b1f65 tiff: Return more meaningful error codes
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2015-03-30 17:51:20 +02:00
Diego Biurrun
23944d29a2 indeo: Give Indeo4/5 shared code a more consistent name 2015-03-30 17:49:05 +02:00
Diego Biurrun
7d3183d3a4 qsv: Skip header compilation depending on what parts of qsv are enabled 2015-03-30 17:41:48 +02:00
Tim Nicholson
ac9919b966 libavformat/mxfenc.c: Add 'Presentation Y offset' metadata
Previously unset, and some software mishandles files if it is absent

Signed-off-by: Tim Nicholson <tim.nicholson@bbc.co.uk>
Reviewed-by: tomas.hardin@codemill.se
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-30 15:03:41 +02:00
Michael Niedermayer
dadc43eee4 avutil/pca: Check for av_malloc* failures
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-30 04:37:42 +02:00
Michael Niedermayer
4a10811617 avformat/nutdec: Use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-30 04:32:58 +02:00
Michael Niedermayer
7c6b0436b6 avformat/img2: Change enum to int, which is accessed via AVOption as int
This fixes depending on implementation defined behavior

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-30 00:08:57 +02:00
Michael Niedermayer
f45758d3ee avformat/wavenc: Change enum to int, which is accessed via AVOption as int
This fixes depending on implementation defined behavior

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-30 00:08:57 +02:00
Michael Niedermayer
984c230cd3 avfilter/vf_transpose: Change enums to int, which are accessed via AVOption as int
This fixes depending on implementation defined behavior

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-30 00:08:57 +02:00
Michael Niedermayer
8ae350004d avfilter/tinterlace: Change enum to int, which is accessed via AVOption as int
This fixes depending on implementation defined behavior

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-30 00:08:57 +02:00
Michael Niedermayer
d0059281e6 avformat/udp: Remove (harmless) duplicated pkt_size entry from AVOption table
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-29 22:10:05 +02:00
Michael Niedermayer
8344350509 Merge commit 'ff7adead0a667e606f5a41dca591f074f9ff2f32'
* commit 'ff7adead0a667e606f5a41dca591f074f9ff2f32':
  udp: Fix pkt_size management

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-29 22:06:44 +02:00
Rodger Combs
de2aaf1a2a lavf/segment: Mark output contexts as non-seekable when applicable
This prevents sub-muxers from trying to seek back to the beginning of the
whole stream, only to find themselves overwriting some video data in the
current (often last) segment.

We only do this when not writing individual header/trailers.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-29 19:04:17 +02:00
Donny Yang
9573737dfb png: Only init zlib once
Signed-off-by: Donny Yang <work@kota.moe>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-29 18:30:30 +02:00
Donny Yang
e7ba79dc4e png: Calculate pixel format information only once
Signed-off-by: Donny Yang <work@kota.moe>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-29 18:17:37 +02:00
Donny Yang
68ede913d0 png: Return slightly more meaningful error codes
Signed-off-by: Donny Yang <work@kota.moe>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-29 17:59:08 +02:00
Luca Barbato
ff7adead0a udp: Fix pkt_size management
The default value for unset is -1, not 0.

Problem introduced in 66028b7ba6

Bug-Id: 835
2015-03-29 17:35:59 +02:00
Rodger Combs
7b060a96ad libavformat/segment: add an option to write the header to a separate file
This permits some interesting segmenting techniques with formats like Matroska,
where you can concatenate the header and segments [N, nb_segments) and get
a working file that starts at segment N's start time.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-29 16:17:04 +02:00
Rodger Combs
481f0f153a libavformat/segment: don't leave the list pb open when not in use
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-29 14:44:21 +02:00
Rodger Combs
bcf44c91c3 libavformat/hls: add an option to start from a given segment in a live stream
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-29 13:34:15 +02:00
Michael Niedermayer
81487781e7 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  lavc/h264_refs: Fix compilation with -DTRACE.
  Fix make checkheaders if libmfx is not available.
  lavf/gif: Add an option max_gif_delay to limit the frame duration.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-29 13:19:50 +02:00
Michael Niedermayer
93704e09c7 Merge commit '72025ac36c740f031d7e413041fdfe97087c83c4'
* commit '72025ac36c740f031d7e413041fdfe97087c83c4':
  lavc: add libdcadec decoder

Conflicts:
	Changelog
	configure
	libavcodec/Makefile
	libavcodec/allcodecs.c
	libavcodec/libdcadec.c

See: 519868de7d
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-29 13:01:26 +02:00
Carl Eugen Hoyos
b3673f3414 lavc/h264_refs: Fix compilation with -DTRACE. 2015-03-29 12:34:43 +02:00
Carl Eugen Hoyos
d371471c59 Fix make checkheaders if libmfx is not available. 2015-03-29 12:34:13 +02:00
Carl Eugen Hoyos
7de0fefeb5 lavf/gif: Add an option max_gif_delay to limit the frame duration.
Allows playback for the sample from ticket #4369 in less than 18 hours.
2015-03-29 12:31:00 +02:00
Michael Niedermayer
97a407f696 Merge commit '6fe2641d6e410b7bc203138fa97e1118b411f16d'
* commit '6fe2641d6e410b7bc203138fa97e1118b411f16d':
  lavc: add profile define for DTS Express

Conflicts:
	doc/APIchanges
	libavcodec/version.h

See: 11fe56c8bb
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-29 12:24:33 +02:00
Michael Niedermayer
268ff17cb7 Merge commit 'c48456166e95648719a8be8f8613f9dee98205c1'
* commit 'c48456166e95648719a8be8f8613f9dee98205c1':
  lavc: add MMAL hardware decoder wrapper

Conflicts:
	Changelog
	configure
	doc/APIchanges
	libavcodec/Makefile
	libavcodec/allcodecs.c
	libavcodec/version.h
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-29 11:32:24 +02:00
Hendrik Leppkes
72025ac36c lavc: add libdcadec decoder
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-03-29 10:15:09 +02:00
Hendrik Leppkes
6fe2641d6e lavc: add profile define for DTS Express
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-03-29 10:00:38 +02:00
wm4
c48456166e lavc: add MMAL hardware decoder wrapper
Based on a patch by Rodger Combs.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-03-29 09:55:20 +02:00
Matthieu Bouron
cf16b459a8 libavdevice/avfoundation: use pts/dts provided by the CMSampleBuffer API
Reviewed-by: Thilo Borgmann <thilo.borgmann@mail.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-29 04:08:33 +02:00
Matthieu Bouron
021b023751 libavdevice/avfoundation: add capture_mouse_clicks option
Support mouse clicks capture while recording a screen on OSX >= 10.7.

Reviewed-by: Thilo Borgmann <thilo.borgmann@mail.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-29 04:07:43 +02:00
Matthieu Bouron
c908cae74c libavdevice/avfoundation: add capture_cursor option
Add support for cursor capturing while recording a screen for OSX >=
10.8.

Reviewed-by: Thilo Borgmann <thilo.borgmann@mail.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-29 03:50:31 +02:00
Matthieu Bouron
573a77a1b6 libavdevice/avfoundation: add framerate and video size options
Support framerate ands video size options on AVCaptureDevices for
OSX >= 10.7 and iOS >= 7.0.

For screen captures, only the framerate option is taken into account.

Reviewed-by: Thilo Borgmann <thilo.borgmann@mail.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-29 03:49:38 +02:00
Michael Niedermayer
6a3833e141 ffmpeg_opt: Do not overwrite output if there is no input
Fixes Ticket4254

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-28 23:00:07 +01:00
Carl Eugen Hoyos
dcac15a84c lavc/dnxhd: Fix pix_fmt change.
Fixes ticket #4400.
2015-03-28 17:36:02 +01:00
Donny Yang
fe57514f8a png: Minor whitespace change and added missing comment
Signed-off-by: Donny Yang <work@kota.moe>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-28 17:16:55 +01:00
Donny Yang
5904d039ce png: Use av_freep() instead of av_free()
Signed-off-by: Donny Yang <work@kota.moe>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-28 17:16:55 +01:00
Michael Niedermayer
68bcc64f74 fate/filter-video: Use qp filter to generate non constant qp array for more throughout testing of the pp filter
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-28 15:29:56 +01:00
Michael Niedermayer
2856634c67 vfilter/vf_qp: Support evaluating expression per MB
also add support for x/y/w/h parameters

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-28 15:18:58 +01:00
Michael Niedermayer
a8fb8f6112 avfilter/vf_qp: split expression parsing out of loop
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-28 15:17:36 +01:00
Marton Balint
625bd463cd af_channelmap: fix number of channels
Fixes segfaults with the following command:

ffmpeg -f lavfi -i aevalsrc=0:c=stereo:n=1920 -af 'channelmap=0' test.ac3

Signed-off-by: Marton Balint <cus@passwd.hu>
Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-28 11:16:26 +01:00
Michael Niedermayer
048b6331e0 avcodec/qsv_internal: Fix project name
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-28 03:44:19 +01:00
Lukasz Marek
56b7aa2138 doc/examples: add directory listing example
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-28 03:13:44 +01:00
Tucker DiNapoli
303c3dada2 postproc: Removed unecessary if/else branch when getting QP.
There's still an if, as QP needs to be modified if isColor=0, but it
still removes a unecessary branch.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-28 01:49:12 +01:00
Michael Niedermayer
0a731e4596 Merge commit '72b7441a10f578a1d0be7083d8f5adf6a01921c2'
* commit '72b7441a10f578a1d0be7083d8f5adf6a01921c2':
  lavc: add Intel libmfx-based H.264 encoder

Conflicts:
	Changelog
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-28 01:33:27 +01:00
Michael Niedermayer
d985976e54 Merge commit '9ba27c2348d26000257e891e40a72facb0d916be'
* commit '9ba27c2348d26000257e891e40a72facb0d916be':
  qsvdec: add 'decode' to the non-static function names

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-28 01:25:20 +01:00
Michael Niedermayer
b12eacb383 Merge commit 'd0a63d8b989647ffdb5f40da8e1feaffe1a8e791'
* commit 'd0a63d8b989647ffdb5f40da8e1feaffe1a8e791':
  qsvdec: split off some code that will be shared with the encoder

Conflicts:
	libavcodec/Makefile
	libavcodec/qsvdec.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-28 01:16:21 +01:00
Michael Niedermayer
151ae8ea5b Merge commit 'b04d009b0e1a34b717f3d3bbf407aef0c742aff1'
* commit 'b04d009b0e1a34b717f3d3bbf407aef0c742aff1':
  qsv: rename to qsvdec

Conflicts:
	libavcodec/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-28 01:03:23 +01:00
Michael Niedermayer
4ae7c37099 fate: Use a variable QP input for fate-filter-pp
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-28 00:43:31 +01:00
Michael Niedermayer
c664989803 fate: simplify filter-pp tests
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-28 00:26:12 +01:00
Anton Khirnov
72b7441a10 lavc: add Intel libmfx-based H.264 encoder 2015-03-27 22:02:10 +01:00
Anton Khirnov
9ba27c2348 qsvdec: add 'decode' to the non-static function names 2015-03-27 21:57:47 +01:00
Anton Khirnov
d0a63d8b98 qsvdec: split off some code that will be shared with the encoder 2015-03-27 21:57:28 +01:00
Anton Khirnov
b04d009b0e qsv: rename to qsvdec
This is to avoid conflicts with the upcoming QSV encoding support.
2015-03-27 21:56:36 +01:00
Michael Niedermayer
d03b998c48 avformat/avio: Document the end of list case in avio_read_dir()
This was mentioned in a previous review

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-27 21:34:23 +01:00
Himangi Saraogi
fff7871772 lavfi: add inverse telecine filter
Approved-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-27 21:34:03 +01:00
Lukasz Marek
184084c699 lavf: add directory listing API
API allows protocol implementations to provide API that
allows to list directory content.
API is similar to POSIX opendir/readdir/closedir.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-27 18:29:46 +01:00
Himangi Saraogi
dbce8cdacf avfilter/vf_telecine: Avoid floating point values
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-27 15:52:59 +01:00
Michael Niedermayer
174330b18e avutil/timer: give each printed value of STOP_TIMER a fixed length
this makes the result easier to read

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-27 04:44:58 +01:00
Michael Niedermayer
0fee509cf5 avutil/timer: show histogram of cpu cycles each run took
The new information is printed at verbose log level and can thus be switched on and off
through the log level

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-27 04:20:13 +01:00
James Almer
1f5d1eed78 avutil/cpu: add missing check for mmxext to av_force_cpu_flags
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-03-26 22:54:15 -03:00
Himangi Saraogi
613483dcfb avfilter/vf_telecine: Fix loss of AVFrame properties in output
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-27 02:12:10 +01:00
Michael Niedermayer
0245abc7c1 avcodec/x86/hpeldsp_init: Put CONFIG_* first in if()
This is more consistent and may fix a build failure

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-26 15:41:27 +01:00
Michael Niedermayer
cd5a48e549 avcodec/h264_slice: Put CONFIG_GRAY first in if()
This is more consistent

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-26 15:41:27 +01:00
Michael Niedermayer
47aee6f047 avcodec/arm/flacdsp_init_arm: Put CONFIG_FLAC_DECODER first in if()
This is more consistent

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-26 15:41:27 +01:00
Michael Niedermayer
71258e5d87 avcodec/ac3dec: Put CONFIG* first in if()
This may fix build failures with EAC3 disabled and is more consistent

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-26 15:41:27 +01:00
Michael Niedermayer
2139e58439 avformat/dv: fix used dimension variables
Fixes null pointer dereference during seeking
Fixes Ticket4395

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-26 03:10:27 +01:00
Michael Niedermayer
df43d03731 avformat/rmdec: fix support for 0 sized mdpr
Fixes Ticket4393

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-26 02:02:18 +01:00
Himangi Saraogi
1301aa55f6 avfilter/vf_telecine: Fix AV desync by using the first input timestamp
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-26 00:41:54 +01:00
Philip Langdale
21adb9964e avcodec/nvenc: Need a separate class for each encoder
The encoders can't share a class instance.

Signed-off-by: Philip Langdale <philipl@overt.org>
2015-03-25 15:32:09 -07:00
Stephen Hutchinson
9f91c5198f doc: remove the reference to supporting AviSynth 2.5
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-25 20:38:32 +01:00
Stephen Hutchinson
1492118c9d avisynth: drop support of AviSynth 2.5
If the user attempts to use AviSynth 2.5, an error message will
now tell them they need to upgrade.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-25 20:37:26 +01:00
Michael Niedermayer
bdcd36a4c8 swscale/output: Fix undefined shifts
Fixes: da14e86d8462be6493eab16bc2d40f88/asan_heap-oob_204cfd2_528_cov_340150052_COMPRESS.BMP

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-25 18:31:25 +01:00
Stephen Hutchinson
3a6df0b4bb avisynth: ifdef to avoid implicit function declaration errors
The demuxer doesn't use these functions, so it shouldn't affect
anything.  Investigate whether this can be fixed by how headers
are checked in configure.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-25 16:19:14 +01:00
Himangi Saraogi
b020a25df2 avcodec/j2kenc: Initialize variable to silence compiler warnings
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-25 15:06:36 +01:00
Ronald S. Bultje
589a6042ea avutil: make AVFrameSideData buffers ref-counted.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-25 12:04:00 +01:00
Ronald S. Bultje
b8e36690e8 lavu/frame: move av_frame_copy_props() up in the file.
Preparation for following patch.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-25 12:03:53 +01:00
James Almer
23e1303c0a avcodec/nvenc_h265: add missing version bump and changelog entry
Signed-off-by: James Almer <jamrial@gmail.com>
2015-03-25 03:59:34 -03:00
James Almer
7c4910758a configure: add missing dependency for nvenc_h265
Should fix compilation of builds without nvenc

Signed-off-by: James Almer <jamrial@gmail.com>
2015-03-25 03:51:10 -03:00
Philip Langdale
21175d8586 avcodec/nvenc: Add support for H.265 encoding
Sufficiently new nvenc hardware (GM20x or later) has support for H.265
encoding. This works the same as the H.264 encoder except the
codec parameters are different.

Due to the fact that common codec parameters are not shareable, there's
quite a bit of conditional logic you'd wish we could do without, but
such is life.

Signed-off-by: Philip Langdale <philipl@overt.org>
Reviewed-by: Timo Rothenpieler <timo@rothenpieler.org>
2015-03-24 21:42:07 -07:00
Michael Niedermayer
354db19ff4 avcodec/h264: Remove bits_per_raw_sample hacks
Fixes assertion failure

Fixes: f12c79769501ee471a5c731b8304ffcb/signal_sigabrt_7ffff6ac8cc9_3766_cov_4267830138_undemuxable_h264.ts

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-25 04:14:38 +01:00
Stephen Hutchinson
e003a53452 avisynth: update headers against AviSynth+
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-25 00:22:15 +01:00
Giorgio Vazzana
62e2fae8e4 ffmpeg: fix option name in documentation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-24 23:41:01 +01:00
Michael Niedermayer
19321a295a avformat/utils: Terminate SPS in avci100_1080i_extradata to avoid warnings during parsing
Fixes: AVCI100_Test.mxf
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-24 18:20:40 +01:00
Michael Niedermayer
e5de6de8f0 avutil/pixfmt: Add missing AV_ prefix to PIX_FMT_YUV411P
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-24 17:36:39 +01:00
Timo Rothenpieler
48f7c30bf7 avcodec/nvenc: Drop support for old nvenc api
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-24 17:25:11 +01:00
Michael Niedermayer
c20eab5c85 avcodec/msrledec: More verbose error message
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-24 16:07:57 +01:00
Michael Niedermayer
f7e1367f58 avcodec/msrledec: restructure msrle_decode_pal4() based on the line number instead of the pixel pointer
Fixes out of array access
Fixes: da14e86d8462be6493eab16bc2d40f88/asan_heap-oob_204cfd2_528_cov_340150052_COMPRESS.BMP

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-24 16:07:26 +01:00
Jochen Strunk
0276b95242 avformat/mov: check color parameter type explicitly.
Fixes ticket #4387.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>

Note, Vittorio Giovara had submitted a very similar fix to me privately
a few hours before this, iam applying Jochens because it comes with a
commit message too and i had not yet applied Vittorios, but For sake
of credit, Vittorio independently solved this first
2015-03-24 14:06:03 +01:00
Michael Niedermayer
4a6096e481 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  lavf/matroskaenc: List subtitle codecs with fake codec_tags to allow remuxing.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-24 12:47:18 +01:00
Michael Niedermayer
d66ca43fc1 Merge commit '1188119624e42c1b2ce5be6137d2e6c6f4f03328'
* commit '1188119624e42c1b2ce5be6137d2e6c6f4f03328':
  avisynth: update documentation about the avisynth_c.h header

Conflicts:
	doc/general.texi

Not merged as FFmpeg provides the needed headers in compat/

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-24 12:04:21 +01:00
Michael Niedermayer
153073201c Merge commit 'a8c99205ca8703bd849efae13fcf844315c7147d'
* commit 'a8c99205ca8703bd849efae13fcf844315c7147d':
  avisynth: Fix compilation against current 2.6 header(s).

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-24 11:40:12 +01:00
Stephen Hutchinson
1188119624 avisynth: update documentation about the avisynth_c.h header
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-03-24 10:31:04 +01:00
Stephen Hutchinson
a8c99205ca avisynth: Fix compilation against current 2.6 header(s).
AviSynth 2.6 (and by extension, AviSynth+) moves these functions
into AVSC_API. This requires both adjusting their normal use,
and for AvxSynth, adjusting the position/use of the USING_AVISYNTH
ifdefs.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-03-24 10:31:04 +01:00
Carl Eugen Hoyos
b76df6efb6 lavf/matroskaenc: List subtitle codecs with fake codec_tags to allow remuxing.
Fixes remuxing of DVBSUB to mkv.
2015-03-24 10:07:18 +01:00
Carl Eugen Hoyos
c5d0148c7e doc: Remove non-existing decklink options.
Reported-by: Bostjan Hamler
2015-03-24 09:54:04 +01:00
Michael Niedermayer
a2dd2d7998 Merge commit '1ddd3e23a49b9eec11c62dca018238cf7349c90f'
* commit '1ddd3e23a49b9eec11c62dca018238cf7349c90f':
  vaapi_h264: fix slice data offset

See: aba3030a55
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-24 02:48:17 +01:00
Michael Niedermayer
70cf40f9eb Merge commit 'ae4f5d944cce431b1f4715c863122355e1d78007'
* commit 'ae4f5d944cce431b1f4715c863122355e1d78007':
  dxva2_h264: fix slice offset in long slice structs

See: cf1fba0fb8
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-24 02:31:26 +01:00
Michael Niedermayer
2850131f2c Merge commit 'b21af32aed7e343f962753943e9f16baedfb1750'
* commit 'b21af32aed7e343f962753943e9f16baedfb1750':
  lavc: Prefer x264 over openh264 if both libraries are available

See: ddae03f69b
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-24 02:23:29 +01:00
Michael Niedermayer
3e39956198 Merge commit '312a9ef04bf6b55e68e4a61694b169cd3cc69bb8'
* commit '312a9ef04bf6b55e68e4a61694b169cd3cc69bb8':
  pixfmt: Update documentation with prefixed pixel formats

Conflicts:
	libavutil/pixfmt.h

See: 231e33f050
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-24 01:56:11 +01:00
Michael Niedermayer
d280d43c26 Merge commit '592a04054e6423be5050efd2bceece48b10b9c1d'
* commit '592a04054e6423be5050efd2bceece48b10b9c1d':
  pixdesc: Replace a few leftover instances of non AV-prefixed flags

Conflicts:
	libavutil/pixdesc.c

See: c7c71f95f8
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-24 01:47:01 +01:00
Michael Niedermayer
cceb737936 Merge commit '7419b34825c20d52f667da2fbe4dc710ec8398f8'
* commit '7419b34825c20d52f667da2fbe4dc710ec8398f8':
  fate: Add test for tscc2 in mov

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-24 01:24:13 +01:00
Michael Niedermayer
dfea1acb21 Merge commit 'e4fe535d12f4f30df2dd672e30304af112a5a827'
* commit 'e4fe535d12f4f30df2dd672e30304af112a5a827':
  mov: Write the display matrix in order

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

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-24 01:14:31 +01:00
Mark Reid
001b28b021 libavformat/mxfenc: add container duration and package name to primer pack
Reviewed-by: Tomas Härdin <tomas.hardin@codemill.se>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-23 22:09:46 +01:00
Hendrik Leppkes
1ddd3e23a4 vaapi_h264: fix slice data offset 2015-03-23 20:53:29 +00:00
Hendrik Leppkes
ae4f5d944c dxva2_h264: fix slice offset in long slice structs 2015-03-23 20:53:29 +00:00
Michael Niedermayer
b21af32aed lavc: Prefer x264 over openh264 if both libraries are available 2015-03-23 20:53:29 +00:00
Vittorio Giovara
312a9ef04b pixfmt: Update documentation with prefixed pixel formats 2015-03-23 20:53:28 +00:00
Vittorio Giovara
592a04054e pixdesc: Replace a few leftover instances of non AV-prefixed flags 2015-03-23 20:53:28 +00:00
Vittorio Giovara
7419b34825 fate: Add test for tscc2 in mov
Rename the existing tscc2 test.
2015-03-23 20:53:28 +00:00
Vittorio Giovara
e4fe535d12 mov: Write the display matrix in order
This will allow to copy the matrix as is and it is just cleaner to keep
the matrix in the same order specified by the mov standard (which is
also explicitly described in the documentation).

In order to preserve compatibility, flip the angle sign in the display API
av_display_rotation_set() and av_display_rotation_get(), and improve the
documentation mentioning the rotation direction.
2015-03-23 20:53:28 +00:00
Michael Niedermayer
ad3c5ff347 Merge commit 'e0046bc9c96150fa06146ace9093f06857dd7b23'
* commit 'e0046bc9c96150fa06146ace9093f06857dd7b23':
  movenc: Write the make and model metadata keys for mov style files

Conflicts:
	libavformat/movenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-23 20:33:09 +01:00
Michael Niedermayer
67ceb42d39 avfilter/vf_stereo3d: Change enum to int, which is accessed via AVOption as int
This fixes depending on implementation defined behavior

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-23 19:31:17 +01:00
Michael Niedermayer
744c9b49a5 avutil/frame: Add some very basic documentation for AVFrameSideData
Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-23 18:46:26 +01:00
Timothy Gu
c3d0edd406 doc: Use @lisp where appropriate
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-23 17:21:38 +01:00
Timothy Gu
ecba41bfd3 doc: More semantic markup using @samp and @var where appropriate
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-23 17:08:08 +01:00
Hendrik Leppkes
aba3030a55 vaapi_h264: fix slice data offset
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-23 16:12:08 +01:00
Hendrik Leppkes
cf1fba0fb8 dxva2_h264: fix slice offset in long slice structs
Fixes Ticket #4384

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-23 16:12:08 +01:00
Timothy Gu
641ef7d4f7 doc/fate: better formatting
The initial spaces get ignored anyway so let's be consistent with other docs.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-23 13:16:42 +01:00
Martin Storsjö
e0046bc9c9 movenc: Write the make and model metadata keys for mov style files
These are essential allowing QuickTime to keep detecting content
as slow-motion - this allows preserving them on stream copy.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-23 12:43:35 +02:00
Michael Niedermayer
83020f8978 postproc/postprocess_template: split 2nd blockgroup loop out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-23 00:41:41 +01:00
Michael Niedermayer
d9e3fe8c22 postproc/postprocess_template: split first part of block loop
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-23 00:33:16 +01:00
Michael Niedermayer
2a9b9579ab postproc/postprocess_template: Move QP initialization down
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-23 00:24:46 +01:00
Michael Niedermayer
330113b032 postproc/postprocess_template: Remove dead code and comments
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-23 00:22:43 +01:00
Michael Niedermayer
fc90d1502a bpostproc/postprocess_template: drop avoidable #ifdef
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-23 00:16:07 +01:00
Michael Niedermayer
93f4538363 postproc/postprocess_template: split loop in 2 (block groups of 4, blocks)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-23 00:15:58 +01:00
Michael Niedermayer
7517e932ff avcodec/snow: fix support for odd dimensions
Fixes Ticket3914

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-22 23:34:53 +01:00
Michael Niedermayer
a089d567f1 avcodec/jpeglsdec: support PAL1-PAL7
Fixes Ticket3933

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-22 20:31:03 +01:00
Michael Niedermayer
74097e0902 avfilter/vf_signalstats: Change enum to int, which is accessed via AVOption as int
This fixes depending on implementation defined behavior

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-22 17:31:34 +01:00
Michael Niedermayer
3a23ec0daa avfilter/vf_setfield: Change enum to int, which is accessed via AVOption as int
This fixes depending on implementation defined behavior

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-22 17:30:24 +01:00
Michael Niedermayer
14bc7aaa86 Revert "avformat/flvenc: Allow muxing video codecs which are not explicitly supported by the muxer"
This commit has no known use case ATM as there are no unsupported video codecs in flv and could
theoretically be use to generate broken files allthough that would be not entirely easy as
tags/codecs still get sanity checked

This reverts commit 76f4b11780.
2015-03-22 17:19:25 +01:00
Michael Niedermayer
76f4b11780 avformat/flvenc: Allow muxing video codecs which are not explicitly supported by the muxer
This allows stream copying video codecs before they are explicitly
supported. The same feature was in the past useful for audio codecs
in flv

This partly reverts the changes from 735ab7c5e0

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-22 16:20:14 +01:00
Michael Niedermayer
797ba4d53b avcodec/h264_cavlc: Drop local_ref_count
This basically switches to the implementation from f6f7d15041
which seems faster

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-22 14:39:38 +01:00
Michael Niedermayer
563a8b4aac avcodec/h264_cabac: Drop local_ref_count
7966 -> 7897 decicycles

This basically switches to the implementation from f6f7d15041
which seems faster

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-22 14:39:32 +01:00
Michael Niedermayer
aa65ff2adf Merge commit 'cfe64613923a2d47644a87386146ada1f9f6b659'
* commit 'cfe64613923a2d47644a87386146ada1f9f6b659':
  avfilter: Document avfilter_graph_alloc return value

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-22 04:03:20 +01:00
Michael Niedermayer
cff55cfe17 Merge commit '27aa1ff35a13bc471c6e0a9cc496ec3f62f1574f'
* commit '27aa1ff35a13bc471c6e0a9cc496ec3f62f1574f':
  oggdec: Check memory allocation

Conflicts:
	libavformat/oggdec.c

See: 9b8152bf04 an others
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-22 04:02:25 +01:00
Michael Niedermayer
c75681aba3 Merge commit '93c1b04abfc0dd31211a18bf2c0041d69cd16919'
* commit '93c1b04abfc0dd31211a18bf2c0041d69cd16919':
  mms: Check memory allocation

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-22 03:52:37 +01:00
Michael Niedermayer
a821617b5a Merge commit 'd450cb07d91ef39ad1d39bd7ca0cfce4bd7b13e7'
* commit 'd450cb07d91ef39ad1d39bd7ca0cfce4bd7b13e7':
  avplay: Check memory allocation

Conflicts:
	ffplay.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-22 03:51:49 +01:00
Michael Niedermayer
a3f5a8c3e0 Merge commit 'd3aa307da076e8820298b2c59ec5d6ff01a5e374'
* commit 'd3aa307da076e8820298b2c59ec5d6ff01a5e374':
  rmenc: Check memory allocation

See: 5683810302
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-22 03:50:17 +01:00
Michael Niedermayer
324067d18b Merge commit '7ebb3022297aa00afda6800105684b8303f2608e'
* commit '7ebb3022297aa00afda6800105684b8303f2608e':
  swscale: Check memory allocation

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-22 03:40:37 +01:00
Michael Niedermayer
0346783c98 avcodec/h264.h: Drop unused macro
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-22 00:29:01 +01:00
Michael Niedermayer
141b9d5c3b avcodec/h264_slice: update slice context linesizes when a new picture is allocated
previously they where only updated when decoding started and would thus have
been inconsistent for a longer period of time leaving more chances for
problems

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 23:45:46 +01:00
Federico Tomassetti
cfe6461392 avfilter: Document avfilter_graph_alloc return value
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-03-21 23:18:15 +01:00
Federico Tomassetti
27aa1ff35a oggdec: Check memory allocation
Bug-Id: CID 1257798 / CID 1257805

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-03-21 23:18:15 +01:00
Federico Tomassetti
93c1b04abf mms: Check memory allocation
Bug-Id: CID 1258462

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-03-21 23:18:15 +01:00
Federico Tomassetti
d450cb07d9 avplay: Check memory allocation
Bug-Id: CID 1288294

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-03-21 23:18:14 +01:00
Federico Tomassetti
d3aa307da0 rmenc: Check memory allocation
Bug-Id: CID 1257832

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-03-21 23:18:14 +01:00
Federico Tomassetti
7ebb302229 swscale: Check memory allocation
Bug-Id: CID 1267890
CC: libav-stable@libav.org

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-03-21 23:18:11 +01:00
Michael Niedermayer
fa7c08d5e1 Merge commit 'c28ed1d743443e783537d279ae721be3bbdf7646'
* commit 'c28ed1d743443e783537d279ae721be3bbdf7646':
  h264: move [uv]linesize to the per-slice context

Conflicts:
	libavcodec/h264_mb.c
	libavcodec/h264_slice.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 23:16:36 +01:00
Michael Niedermayer
a6cb0534e2 Merge commit 'b53569e0681ff7bc99103ab4c961dbac3cc0fce6'
* commit 'b53569e0681ff7bc99103ab4c961dbac3cc0fce6':
  h264_cabac: remove now unnecessary H264Context function parameters

Conflicts:
	libavcodec/h264_cabac.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 23:13:25 +01:00
Michael Niedermayer
d8151a7e94 Merge commit 'a12d3188cbec15e22070e139fa5cc541da07e2c3'
* commit 'a12d3188cbec15e22070e139fa5cc541da07e2c3':
  h264: use a smaller struct for the ref lists

Conflicts:
	libavcodec/h264_direct.c
	libavcodec/h264_mb.c
	libavcodec/h264_picture.c
	libavcodec/h264_refs.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 23:05:34 +01:00
Michael Niedermayer
e970b576d2 Merge commit '94295106d20b32666a8c4e0d028ef79b9d3f3b7a'
* commit '94295106d20b32666a8c4e0d028ef79b9d3f3b7a':
  h264_mb: remove an unused function parameter

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 21:43:07 +01:00
Michael Niedermayer
8c6370afe3 Merge commit '2b4c38d3c647f409080606ef02b3363ada00be2c'
* commit '2b4c38d3c647f409080606ef02b3363ada00be2c':
  h264: drop some mpegvideo remnants from draw_horiz_band()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 21:42:14 +01:00
Michael Niedermayer
0f8bb0efc3 Merge commit '5bf3c0fa49afd5bbf43aa841ff78007d72c80736'
* commit '5bf3c0fa49afd5bbf43aa841ff78007d72c80736':
  h264: drop the now unused per-slice H264Contexts

Conflicts:
	libavcodec/h264_slice.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 21:41:17 +01:00
Michael Niedermayer
8bdcec3111 Merge commit '51d8725a6e4c7f989d6f0f38b59cb54a2d72846c'
* commit '51d8725a6e4c7f989d6f0f38b59cb54a2d72846c':
  h264: use the main H264Context as the parent for all slice contexts

Conflicts:
	libavcodec/h264.c
	libavcodec/h264.h
	libavcodec/h264_slice.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 21:33:27 +01:00
Michael Niedermayer
b1e6d8a226 Merge commit '92e0b7342c0490894cbcea4461380321e0569de2'
* commit '92e0b7342c0490894cbcea4461380321e0569de2':
  h264_slice: constify all the uses of H264Context during slice decoding

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 21:32:33 +01:00
Ronald S. Bultje
1fd1f58bd6 vp9: make above buffer pointer 32-byte aligned.
Fixes ticket #4383

Signed-off-by: James Almer <jamrial@gmail.com>
2015-03-21 17:13:46 -03:00
Michael Niedermayer
84ae7294cb Merge commit '3178f4d33ff62243f7cdddb081db516ea34396c9'
* commit '3178f4d33ff62243f7cdddb081db516ea34396c9':
  h264: move rbsp_buffer into the per-slice context

Conflicts:
	libavcodec/h264.c
	libavcodec/h264_parser.c
	libavcodec/h264_slice.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 20:16:21 +01:00
Michael Niedermayer
830e548b9e Merge commit '582683b6ac798ed2a004a4e2121b7bd47892bbfd'
* commit '582683b6ac798ed2a004a4e2121b7bd47892bbfd':
  h264: move remaining ER stuff into the per-slice context

Conflicts:
	libavcodec/h264.h
	libavcodec/h264_picture.c
	libavcodec/h264_slice.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 20:00:34 +01:00
Michael Niedermayer
44309dd294 avcodec/mpegvideo: support mbskip_table==NULL in ff_print_debug_info2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 19:28:56 +01:00
Michael Niedermayer
dd186b5825 avcodec/error_resilience: Fix mbskip_table==NULL codepath
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 19:24:03 +01:00
Michael Niedermayer
b37b0a58e3 Merge commit '5bc69f38c1af71fbcbfb4b5efa77d0aeb5424c04'
* commit '5bc69f38c1af71fbcbfb4b5efa77d0aeb5424c04':
  error_resilience: do not require mbintra/skip tables

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 19:03:10 +01:00
Michael Niedermayer
44e4a86c8a Merge commit 'c377e04d8aa74d030672e9a4788a700b0695fc14'
* commit 'c377e04d8aa74d030672e9a4788a700b0695fc14':
  h264: move top_borders into the per-slice context

Conflicts:
	libavcodec/h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 18:58:59 +01:00
Michael Niedermayer
3d1d8e1f95 Merge commit '36d04801ba9d8622c2d759c172aea18561bac74d'
* commit '36d04801ba9d8622c2d759c172aea18561bac74d':
  h264: move the scratch buffers into the per-slice context

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

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 18:50:53 +01:00
Michael Niedermayer
2730163329 Merge commit '34d4c605e9a5116d5289b35633ade5b01cacab24'
* commit '34d4c605e9a5116d5289b35633ade5b01cacab24':
  h264_loopfilter: constify all uses of H264Context

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 18:26:10 +01:00
Michael Niedermayer
e845b9573d Merge commit '7505c8dfba255f8e6c6dbb574d0cec91da16f24d'
* commit '7505c8dfba255f8e6c6dbb574d0cec91da16f24d':
  h264_cavlc: constify all uses of H264Context

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 18:19:58 +01:00
Michael Niedermayer
eb058a8dc5 Merge commit 'ba7e165b864d69da4f0c79ec7757cb351535002f'
* commit 'ba7e165b864d69da4f0c79ec7757cb351535002f':
  h264_cabac: constify all uses of H264Context

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 18:19:24 +01:00
Michael Niedermayer
9f2fad1af7 Merge commit '5c4b98de4d101ea715ef86847306a510afd0db0c'
* commit '5c4b98de4d101ea715ef86847306a510afd0db0c':
  h264.c: constify all uses of H264Context in slice and lower-level functions

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 18:18:40 +01:00
Michael Niedermayer
9d0450ae94 Merge commit 'e9b2383bf86b38ad18a001801aee20c8182e29bd'
* commit 'e9b2383bf86b38ad18a001801aee20c8182e29bd':
  h264: move mb_mbaff into the per-slice context

Conflicts:
	libavcodec/h264_cabac.c
	libavcodec/h264_cavlc.c
	libavcodec/h264_slice.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 18:07:01 +01:00
Michael Niedermayer
d511dc6530 Merge commit 'bc98e8c0e0a8babfea35c98855e366b29cbe1191'
* commit 'bc98e8c0e0a8babfea35c98855e366b29cbe1191':
  h264: move mb_field_decoding_flag into the per-slice context

Conflicts:
	libavcodec/h264_slice.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 18:03:54 +01:00
Michael Niedermayer
a0b39747b7 Merge commit '6490a0c0fbe0e55f765ea2aa2e8495181ea1f719'
* commit '6490a0c0fbe0e55f765ea2aa2e8495181ea1f719':
  h264_mb: constify all uses of H264Context

Conflicts:
	libavcodec/h264.h
	libavcodec/h264_mb.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 17:23:10 +01:00
Michael Niedermayer
06e5b331f5 Merge commit '51822879e7732ee8175dad98dde1a135f6e5c1a4'
* commit '51822879e7732ee8175dad98dde1a135f6e5c1a4':
  h264_mb: constify block_offset

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 17:22:15 +01:00
Michael Niedermayer
bc5383e6c4 Merge commit '3bea6409a1868354a1d29b34de424c3636c222b7'
* commit '3bea6409a1868354a1d29b34de424c3636c222b7':
  h264_mvpred: constify all uses of H264Context

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 17:21:44 +01:00
Michael Niedermayer
a81a6dcb11 Merge commit '460176aa19acb8d8bdb52af1ec97891e0f65843c'
* commit '460176aa19acb8d8bdb52af1ec97891e0f65843c':
  h264.h: constify all uses of H264Context

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 17:14:36 +01:00
Michael Niedermayer
48d00b527b Merge commit 'd27b8248a6ee7e64c68c46c23e00d703b9caa50c'
* commit 'd27b8248a6ee7e64c68c46c23e00d703b9caa50c':
  h264_direct: constify all uses of H264Context

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 17:13:56 +01:00
Michael Niedermayer
55215383dc Merge commit 'f42485dbce614b3f63182845da43db690b427b7c'
* commit 'f42485dbce614b3f63182845da43db690b427b7c':
  h264: use a separate GetBitContext for slice data

Conflicts:
	libavcodec/h264.c
	libavcodec/h264_cavlc.c
	libavcodec/h264_parser.c
	libavcodec/h264_slice.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 17:13:24 +01:00
Michael Niedermayer
727b202330 Merge commit '2ea00e35e4e0b58f7a306dd55d8f72a21c32c946'
* commit '2ea00e35e4e0b58f7a306dd55d8f72a21c32c946':
  h264: do not abuse the context as a temporary storage in get_last_needed_nal()

Conflicts:
	libavcodec/h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 17:02:23 +01:00
Michael Niedermayer
eba2c2321b Merge commit '404a416d4b1fcbf9db5569481d8181f296c01ea9'
* commit '404a416d4b1fcbf9db5569481d8181f296c01ea9':
  h264: remove some remnants of data partitioning

Conflicts:
	libavcodec/h264.c
	libavcodec/h264_slice.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 17:00:51 +01:00
Michael Niedermayer
72bec029ee Merge commit '7bbc254d646ed9cf6deffc3fda75ae6729f95979'
* commit '7bbc254d646ed9cf6deffc3fda75ae6729f95979':
  h264: move resync_mb_{x,y} into the per-slice context

Conflicts:
	libavcodec/h264_slice.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 16:54:48 +01:00
Michael Niedermayer
d76559fb5f Merge commit 'd4d9068cdf8f4b2b87ae87a2ef880d243f77b977'
* commit 'd4d9068cdf8f4b2b87ae87a2ef880d243f77b977':
  h264: move mb_{x,y} into the per-slice context

Conflicts:
	libavcodec/h264.c
	libavcodec/h264_cavlc.c
	libavcodec/h264_mb.c
	libavcodec/h264_slice.c
	libavcodec/svq3.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 16:46:15 +01:00
Michael Niedermayer
668c65e7e7 Merge commit '0edbe6faa7ef80daf0e84353cbe733389bf1a522'
* commit '0edbe6faa7ef80daf0e84353cbe733389bf1a522':
  h264: move mb_xy into the per-slice context

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

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 16:18:29 +01:00
Michael Niedermayer
db4234c500 Merge commit '07c5ca551b7327d3c4e33738cc0cd2d5ac2779fa'
* commit '07c5ca551b7327d3c4e33738cc0cd2d5ac2779fa':
  h264: move is_complex into the per-slice context

Conflicts:
	libavcodec/h264_slice.c
	libavcodec/svq3.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 16:10:31 +01:00
Michael Niedermayer
70eec8f432 Merge commit '47a0d393504d6726c4a235951153bee0abb3f7d6'
* commit '47a0d393504d6726c4a235951153bee0abb3f7d6':
  h264: move mb_skip_run into the per-slice context

Conflicts:
	libavcodec/h264_cavlc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 16:09:14 +01:00
Michael Niedermayer
da7f4c32ab Merge commit '9951907f6fc37a8d41566dbee09f7c15ff587de6'
* commit '9951907f6fc37a8d41566dbee09f7c15ff587de6':
  h264: move redundant_pic_count into the per-slice context

Conflicts:
	libavcodec/h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 16:07:53 +01:00
Michael Niedermayer
04d23cf1c5 Merge commit 'a9b201cacf85d710b102010cb4baef97f00ea39b'
* commit 'a9b201cacf85d710b102010cb4baef97f00ea39b':
  h264: move cabac_init_idc into the per-slice context

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 16:06:57 +01:00
Michael Niedermayer
7d23931632 Merge commit 'e6c90ce94f1b07f50cea2babf7471af455cca0ff'
* commit 'e6c90ce94f1b07f50cea2babf7471af455cca0ff':
  h264: move loopfilter parameters into the per-slice context

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 15:59:20 +01:00
Michael Niedermayer
ad6cee117e Merge commit 'bd3e460b73dd54a68dc253e010c239cefc8d8d55'
* commit 'bd3e460b73dd54a68dc253e010c239cefc8d8d55':
  h264: move direct_cache into the per-slice context

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 15:58:50 +01:00
Michael Niedermayer
6a2e1ff02a Merge commit '6479c79f5517e2881bc881e737b2dbce69553878'
* commit '6479c79f5517e2881bc881e737b2dbce69553878':
  h264: move mvd_cache into the per-slice context

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 15:58:05 +01:00
Michael Niedermayer
c9841c05be Merge commit 'a67f8ae9a2c8529bf6a635e8ca4e3483592708b1'
* commit 'a67f8ae9a2c8529bf6a635e8ca4e3483592708b1':
  h264: move mvd_table into the per-slice context

Conflicts:
	libavcodec/h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 15:57:21 +01:00
Michael Niedermayer
a4952e7343 Merge commit '5c8280c3075dd54f26752c3a1185647578421703'
* commit '5c8280c3075dd54f26752c3a1185647578421703':
  h264: move last_qscale_diff into the per-slice context

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 15:48:53 +01:00
Michael Niedermayer
4c5c913dd8 Merge commit 'e7226984ac13aacb84eae77a372df8ff7685848f'
* commit 'e7226984ac13aacb84eae77a372df8ff7685848f':
  h264: move [{top,left}_]cbp into the per-slice context

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 15:48:13 +01:00
Michael Niedermayer
f5d4d61824 Merge commit '30da98adbda6de1f55188f9058a3a5c715049633'
* commit '30da98adbda6de1f55188f9058a3a5c715049633':
  h264: move cabac[_state] into the per-slice context

Conflicts:
	libavcodec/h264_cabac.c
	libavcodec/h264_slice.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 15:45:44 +01:00
Michael Niedermayer
d86e8f235e avcodec/h264_slice: Merge 2 memcpy()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 15:37:05 +01:00
Michael Niedermayer
739edc1a7e Merge commit 'bf03a878a76dea29b36f368759e9f66102b39a5f'
* commit 'bf03a878a76dea29b36f368759e9f66102b39a5f':
  h264: move mb[_{padding,luma_dc}] into the per-slice context

Conflicts:
	libavcodec/h264.h
	libavcodec/h264_cavlc.c
	libavcodec/h264_mb.c
	libavcodec/h264_slice.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 15:36:57 +01:00
Michael Niedermayer
35a788d953 Merge commit 'b063582e0c4f775a8ba377488bd085595e0e7fae'
* commit 'b063582e0c4f775a8ba377488bd085595e0e7fae':
  h264: move intra_pcm_ptr into the per-slice context

Conflicts:
	libavcodec/h264.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 15:27:29 +01:00
Michael Niedermayer
cc2cfdc497 Merge commit '95eb35f30513e335990ad0d5dca6ddc318477291'
* commit '95eb35f30513e335990ad0d5dca6ddc318477291':
  h264: move the ref lists variables into the per-slice context

Conflicts:
	libavcodec/h264.c
	libavcodec/h264.h
	libavcodec/h264_cabac.c
	libavcodec/h264_cavlc.c
	libavcodec/h264_direct.c
	libavcodec/h264_mb.c
	libavcodec/h264_picture.c
	libavcodec/h264_refs.c
	libavcodec/h264_slice.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 15:18:10 +01:00
Michael Niedermayer
27b3522ba3 Merge commit '7747726667c86877feed30c9e18460cb8e63f551'
* commit '7747726667c86877feed30c9e18460cb8e63f551':
  h264: move map_col_to_list0[_field] into the per-slice context

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 14:46:23 +01:00
Michael Niedermayer
bd76a4822f Merge commit 'ee0d774dfa94655e44707ff3e02f4a4d282c1963'
* commit 'ee0d774dfa94655e44707ff3e02f4a4d282c1963':
  h264: move dist_scale_factor[_field] into the per-slice context

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 14:39:49 +01:00
Michael Niedermayer
20477a4ecb Merge commit 'be69f0a800903b7573b18d9287d18b2f368b8b11'
* commit 'be69f0a800903b7573b18d9287d18b2f368b8b11':
  h264: move col_{parity,fieldoff} into the per-slice context

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 14:39:32 +01:00
Michael Niedermayer
a8ac4c9b06 Merge commit '066aafced4dc6c7c9e7b37082635472249f1e93e'
* commit '066aafced4dc6c7c9e7b37082635472249f1e93e':
  h264: move direct_spatial_mv_pred into the per-slice context

Conflicts:
	libavcodec/h264_mvpred.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 14:38:59 +01:00
Michael Niedermayer
4ffbeddd35 Merge commit 'ed451a08a46b2b07fd2dba3e55ffddd18ae6e3d6'
* commit 'ed451a08a46b2b07fd2dba3e55ffddd18ae6e3d6':
  h264: move sub_mb_type into the per-slice context

Conflicts:
	libavcodec/h264_cabac.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 14:37:55 +01:00
Michael Niedermayer
97c8ecaada Merge commit '56febc993b928ccc039a32158ca60b234c311875'
* commit '56febc993b928ccc039a32158ca60b234c311875':
  h264: move the slice type variables into the per-slice context

Conflicts:
	libavcodec/h264.c
	libavcodec/h264_cabac.c
	libavcodec/h264_cavlc.c
	libavcodec/h264_slice.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 14:30:19 +01:00
Michael Niedermayer
2cc08cad9e Merge commit '5f390eef8ee2b8adab00c5d2923a52aa261eb999'
* commit '5f390eef8ee2b8adab00c5d2923a52aa261eb999':
  h264: move mb_[uv]linesize into the per-slice context

Conflicts:
	libavcodec/h264.h
	libavcodec/h264_mb.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 14:16:29 +01:00
Michael Niedermayer
892a6d0028 Merge commit '99a35d1ccbb6b6cd260ce5c8369a897a79fe6a3a'
* commit '99a35d1ccbb6b6cd260ce5c8369a897a79fe6a3a':
  h264: move neighbor_transform_size into the per-slice context

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 14:14:05 +01:00
Michael Niedermayer
f1436a7f96 Merge commit 'e6287f077c3e8e4aca11e61dd4bade1351439e6b'
* commit 'e6287f077c3e8e4aca11e61dd4bade1351439e6b':
  h264: move {mv,ref}_cache into the per-slice context

Conflicts:
	libavcodec/h264_cabac.c
	libavcodec/h264_mb.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 14:06:30 +01:00
Michael Niedermayer
b7e0356cc3 Merge commit 'f69574cf7aca4fe4d57a2155e925f37fc863474d'
* commit 'f69574cf7aca4fe4d57a2155e925f37fc863474d':
  h264: move non_zero_count_cache into the per-slice context

Conflicts:
	libavcodec/h264.c
	libavcodec/h264_cabac.c
	libavcodec/h264_cavlc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 14:02:02 +01:00
Michael Niedermayer
6ec279b54c Merge commit '64c81b2cd0dcf1fe66c381a5d2c707dddcf35a7e'
* commit '64c81b2cd0dcf1fe66c381a5d2c707dddcf35a7e':
  h264: move *_samples_available into the per-slice context

Conflicts:
	libavcodec/h264.c
	libavcodec/h264_mb.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 13:59:16 +01:00
Michael Niedermayer
20f5be1038 avcodec/h264_cabac: Fix intra4x4_pred_mode_cache argument to av_dlog()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 13:46:32 +01:00
Michael Niedermayer
6abd1e901c Merge commit '7d8154edd594981e7891d57de91f2260f8a62939'
* commit '7d8154edd594981e7891d57de91f2260f8a62939':
  h264: move intra4x4_pred_mode[_cache] into the per-slice context

Conflicts:
	libavcodec/h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 13:44:38 +01:00
Michael Niedermayer
61635c7a88 Merge commit '8b00f4df20f4a8ab0656fdaf7d00233a6515a052'
* commit '8b00f4df20f4a8ab0656fdaf7d00233a6515a052':
  h264: move some neighbour information into the per-slice context

Conflicts:
	libavcodec/h264_cabac.c
	libavcodec/h264_cavlc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 13:42:44 +01:00
Michael Niedermayer
a2740a060b Merge commit '4bd5ac200d15b4f458a50f66006549825f9fc865'
* commit '4bd5ac200d15b4f458a50f66006549825f9fc865':
  h264: move {chroma,intra16x16}_pred_mode into the per-slice context

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 13:35:38 +01:00
Michael Niedermayer
c07b7e483a Merge commit '5355ed6b20e941430c4f8fb82644e87a65366d61'
* commit '5355ed6b20e941430c4f8fb82644e87a65366d61':
  h264: move {prev,next}_mb_skipped into the per-slice context

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 13:35:05 +01:00
Michael Niedermayer
acd6b407c3 Merge commit '06789ad3b71296a9e2fbd0278632d97a5d9af8d7'
* commit '06789ad3b71296a9e2fbd0278632d97a5d9af8d7':
  h264: move qp_thresh into the per-slice context

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 13:34:33 +01:00
Michael Niedermayer
c27f53b9fb Merge commit 'd231e84b06a9964c840cff4e228509f706165fb6'
* commit 'd231e84b06a9964c840cff4e228509f706165fb6':
  h264: move the quantizers into the per-slice context

Conflicts:
	libavcodec/dxva2_h264.c
	libavcodec/h264_cavlc.c
	libavcodec/h264_loopfilter.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 13:24:23 +01:00
Michael Niedermayer
cc31d9ce80 Merge commit 'd40ae0e595fe90b5583b9269f8bb000402bde5a6'
* commit 'd40ae0e595fe90b5583b9269f8bb000402bde5a6':
  h264: do not copy qscale when updating per-thread contexts

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 13:20:54 +01:00
Michael Niedermayer
756dc7bd18 Merge commit '92c6c2a605f9b077b8fbc25b7ed6625541232b87'
* commit '92c6c2a605f9b077b8fbc25b7ed6625541232b87':
  h264: split weighted pred-related vars into per-slice context

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

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 13:13:12 +01:00
Michael Niedermayer
06c70d4537 avcodec/hevc_ps: Check cropping parameters more correctly
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 12:55:03 +01:00
Michael Niedermayer
665e0c10a6 Merge commit 'd8a45d2d49f54fde042b195f9d5859251252493d'
* commit 'd8a45d2d49f54fde042b195f9d5859251252493d':
  h264_ps: properly check cropping parameters against overflow

Conflicts:
	libavcodec/h264_ps.c

See: c3bd306e78
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 12:09:03 +01:00
Anton Khirnov
c28ed1d743 h264: move [uv]linesize to the per-slice context
While it is a per-frame variable, it is only really used in the
low-level decoding code, so it is more efficient to store it in the
slice context.
2015-03-21 11:27:16 +01:00
Anton Khirnov
b53569e068 h264_cabac: remove now unnecessary H264Context function parameters 2015-03-21 11:27:16 +01:00
Anton Khirnov
a12d3188cb h264: use a smaller struct for the ref lists
There is no need to store a whole H264Picture, with a full AVFrame
embedded in it. This should allow getting rid of the embedded AVFrame
later.
2015-03-21 11:27:16 +01:00
Anton Khirnov
94295106d2 h264_mb: remove an unused function parameter 2015-03-21 11:27:16 +01:00
Anton Khirnov
2b4c38d3c6 h264: drop some mpegvideo remnants from draw_horiz_band()
This code makes no sense for h.264.
2015-03-21 11:27:16 +01:00
Anton Khirnov
5bf3c0fa49 h264: drop the now unused per-slice H264Contexts 2015-03-21 11:27:16 +01:00
Anton Khirnov
51d8725a6e h264: use the main H264Context as the parent for all slice contexts
There is now no need to have per-slice copies of the H264Context.
2015-03-21 11:27:15 +01:00
Anton Khirnov
92e0b7342c h264_slice: constify all the uses of H264Context during slice decoding
All the variables modified by this code are either per-MB arrays or have
been moved to the per-slice context
2015-03-21 11:27:15 +01:00
Anton Khirnov
3178f4d33f h264: move rbsp_buffer into the per-slice context 2015-03-21 11:27:15 +01:00
Anton Khirnov
582683b6ac h264: move remaining ER stuff into the per-slice context 2015-03-21 11:27:15 +01:00
Anton Khirnov
5bc69f38c1 error_resilience: do not require mbintra/skip tables
h264dec does not use them at all and only allocates them for ER.
2015-03-21 11:27:15 +01:00
Anton Khirnov
c377e04d8a h264: move top_borders into the per-slice context
Also change the method for allocating to the same one as used by
edge_emu_buffer.
2015-03-21 11:27:15 +01:00
Anton Khirnov
36d04801ba h264: move the scratch buffers into the per-slice context
Also change the method for allocating them. Instead of two possible
alloc calls from different places, just ensure they are allocated at the
start of each slice. This should be simpler and less bug-prone than the
previous method.
2015-03-21 11:27:15 +01:00
Anton Khirnov
34d4c605e9 h264_loopfilter: constify all uses of H264Context
All the variables modified by this code are either per-MB arrays or have
been moved to the per-slice context
2015-03-21 11:27:15 +01:00
Anton Khirnov
7505c8dfba h264_cavlc: constify all uses of H264Context
All the variables modified by this code are either per-MB arrays or have
been moved to the per-slice context
2015-03-21 11:27:15 +01:00
Anton Khirnov
ba7e165b86 h264_cabac: constify all uses of H264Context
All the variables modified by this code are either per-MB arrays or have
been moved to the per-slice context
2015-03-21 11:27:15 +01:00
Anton Khirnov
5c4b98de4d h264.c: constify all uses of H264Context in slice and lower-level functions
All the variables modified by this code are either per-MB arrays or have
been moved to the per-slice context
2015-03-21 11:27:15 +01:00
Anton Khirnov
e9b2383bf8 h264: move mb_mbaff into the per-slice context 2015-03-21 11:27:15 +01:00
Anton Khirnov
bc98e8c0e0 h264: move mb_field_decoding_flag into the per-slice context 2015-03-21 11:27:15 +01:00
Anton Khirnov
6490a0c0fb h264_mb: constify all uses of H264Context
All the variables modified by this code are either per-MB arrays or have
been moved to the per-slice context
2015-03-21 11:27:15 +01:00
Anton Khirnov
51822879e7 h264_mb: constify block_offset
It is read-only in this code.
2015-03-21 11:27:15 +01:00
Anton Khirnov
3bea6409a1 h264_mvpred: constify all uses of H264Context
All the variables modified by this code are either per-MB arrays or have
been moved to the per-slice context
2015-03-21 11:27:15 +01:00
Anton Khirnov
460176aa19 h264.h: constify all uses of H264Context
All the variables modified by this code are either per-MB arrays or have
been moved to the per-slice context
2015-03-21 11:27:15 +01:00
Anton Khirnov
d27b8248a6 h264_direct: constify all uses of H264Context
All the variables modified by this code are either per-MB arrays or have
been moved to the per-slice context
2015-03-21 11:27:14 +01:00
Anton Khirnov
f42485dbce h264: use a separate GetBitContext for slice data 2015-03-21 11:27:14 +01:00
Anton Khirnov
2ea00e35e4 h264: do not abuse the context as a temporary storage in get_last_needed_nal()
Use a local variable instead.
2015-03-21 11:27:14 +01:00
Anton Khirnov
404a416d4b h264: remove some remnants of data partitioning 2015-03-21 11:27:14 +01:00
Anton Khirnov
7bbc254d64 h264: move resync_mb_{x,y} into the per-slice context 2015-03-21 11:27:14 +01:00
Anton Khirnov
d4d9068cdf h264: move mb_{x,y} into the per-slice context 2015-03-21 11:27:14 +01:00
Anton Khirnov
0edbe6faa7 h264: move mb_xy into the per-slice context 2015-03-21 11:27:14 +01:00
Anton Khirnov
07c5ca551b h264: move is_complex into the per-slice context 2015-03-21 11:27:14 +01:00
Anton Khirnov
47a0d39350 h264: move mb_skip_run into the per-slice context 2015-03-21 11:27:14 +01:00
Anton Khirnov
9951907f6f h264: move redundant_pic_count into the per-slice context 2015-03-21 11:27:14 +01:00
Anton Khirnov
a9b201cacf h264: move cabac_init_idc into the per-slice context 2015-03-21 11:27:14 +01:00
Anton Khirnov
e6c90ce94f h264: move loopfilter parameters into the per-slice context 2015-03-21 11:27:14 +01:00
Anton Khirnov
bd3e460b73 h264: move direct_cache into the per-slice context 2015-03-21 11:27:14 +01:00
Anton Khirnov
6479c79f55 h264: move mvd_cache into the per-slice context 2015-03-21 11:27:14 +01:00
Anton Khirnov
a67f8ae9a2 h264: move mvd_table into the per-slice context 2015-03-21 11:27:14 +01:00
Anton Khirnov
5c8280c307 h264: move last_qscale_diff into the per-slice context 2015-03-21 11:27:13 +01:00
Anton Khirnov
e7226984ac h264: move [{top,left}_]cbp into the per-slice context 2015-03-21 11:27:13 +01:00
Anton Khirnov
30da98adbd h264: move cabac[_state] into the per-slice context 2015-03-21 11:27:13 +01:00
Anton Khirnov
bf03a878a7 h264: move mb[_{padding,luma_dc}] into the per-slice context 2015-03-21 11:27:13 +01:00
Anton Khirnov
b063582e0c h264: move intra_pcm_ptr into the per-slice context 2015-03-21 11:27:13 +01:00
Anton Khirnov
95eb35f305 h264: move the ref lists variables into the per-slice context 2015-03-21 11:27:13 +01:00
Anton Khirnov
7747726667 h264: move map_col_to_list0[_field] into the per-slice context 2015-03-21 11:27:13 +01:00
Anton Khirnov
ee0d774dfa h264: move dist_scale_factor[_field] into the per-slice context 2015-03-21 11:27:13 +01:00
Anton Khirnov
be69f0a800 h264: move col_{parity,fieldoff} into the per-slice context 2015-03-21 11:27:13 +01:00
Anton Khirnov
066aafced4 h264: move direct_spatial_mv_pred into the per-slice context 2015-03-21 11:27:13 +01:00
Anton Khirnov
ed451a08a4 h264: move sub_mb_type into the per-slice context 2015-03-21 11:27:13 +01:00
Anton Khirnov
56febc993b h264: move the slice type variables into the per-slice context 2015-03-21 11:27:13 +01:00
Anton Khirnov
5f390eef8e h264: move mb_[uv]linesize into the per-slice context 2015-03-21 11:27:13 +01:00
Anton Khirnov
99a35d1ccb h264: move neighbor_transform_size into the per-slice context 2015-03-21 11:27:13 +01:00
Anton Khirnov
e6287f077c h264: move {mv,ref}_cache into the per-slice context 2015-03-21 11:27:13 +01:00
Anton Khirnov
f69574cf7a h264: move non_zero_count_cache into the per-slice context 2015-03-21 11:27:12 +01:00
Anton Khirnov
64c81b2cd0 h264: move *_samples_available into the per-slice context 2015-03-21 11:27:12 +01:00
Anton Khirnov
7d8154edd5 h264: move intra4x4_pred_mode[_cache] into the per-slice context 2015-03-21 11:27:12 +01:00
Anton Khirnov
8b00f4df20 h264: move some neighbour information into the per-slice context 2015-03-21 11:27:12 +01:00
Anton Khirnov
4bd5ac200d h264: move {chroma,intra16x16}_pred_mode into the per-slice context 2015-03-21 11:27:12 +01:00
Anton Khirnov
5355ed6b20 h264: move {prev,next}_mb_skipped into the per-slice context 2015-03-21 11:27:12 +01:00
Anton Khirnov
06789ad3b7 h264: move qp_thresh into the per-slice context 2015-03-21 11:27:12 +01:00
Anton Khirnov
d231e84b06 h264: move the quantizers into the per-slice context 2015-03-21 11:27:12 +01:00
Anton Khirnov
d40ae0e595 h264: do not copy qscale when updating per-thread contexts
It's a per-slice quantity constructed when parsing the slice header.
2015-03-21 11:27:12 +01:00
Anton Khirnov
92c6c2a605 h264: split weighted pred-related vars into per-slice context 2015-03-21 11:27:09 +01:00
Michael Niedermayer
e4588e376a Merge commit '5127c00b971b674f72609369b39a9c0f7c36977d'
* commit '5127c00b971b674f72609369b39a9c0f7c36977d':
  hevc: zero the correct variables on invalid crop parameters

Conflicts:
	libavcodec/hevc_ps.c

See: 57e5812198
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 11:24:49 +01:00
Michael Niedermayer
0e69c16e96 Merge commit 'c929659bdd7d2d5848ea52e685a3164c7b901bb0'
* commit 'c929659bdd7d2d5848ea52e685a3164c7b901bb0':
  hevc: make the crop sizes unsigned

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 11:11:17 +01:00
Anton Khirnov
d8a45d2d49 h264_ps: properly check cropping parameters against overflow
CC: libav-stable@libav.org
2015-03-21 09:35:23 +01:00
Anton Khirnov
5127c00b97 hevc: zero the correct variables on invalid crop parameters
It's the output_window that is applied to the output frame, not
pic_conf_win
2015-03-21 09:35:19 +01:00
Anton Khirnov
c929659bdd hevc: make the crop sizes unsigned 2015-03-21 09:35:14 +01:00
Michael Niedermayer
294bb6cbd7 avcodec/hevc_refs: Silence "Could not find ref with POC" for CRA/BLA
Avoids error messages during seeking

Found-by: cousin_luigi
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 04:09:46 +01:00
Michael Niedermayer
3c5c6870a7 avformat/movenc: avoid using uninitialized display_matrix_size
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 00:24:31 +01:00
Martin Vignali
276a8666d2 avcodec/metasound_data: remove unused variable lsp16s
the table was duplicated

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-20 22:33:15 +01:00
Michael Niedermayer
215c2fe0ae Merge commit '22a6d48b0d7367b3a45dd6db245f8ffaaa364995'
* commit '22a6d48b0d7367b3a45dd6db245f8ffaaa364995':
  avconv: Print the avfilter errors

Conflicts:
	ffmpeg.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-20 20:33:27 +01:00
Michael Niedermayer
50255b7a86 Merge commit '342fc46c69199b076b7c210f42208ce39a2bde1c'
* commit '342fc46c69199b076b7c210f42208ce39a2bde1c':
  cmdutils: Add a stream specifier to map usable streams

Conflicts:
	cmdutils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-20 20:15:40 +01:00
James Almer
60b9373dbd libavutil: add bmi2 optimized av_mod_uintp2
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-03-20 15:47:43 -03:00
James Almer
d13e521cc8 libavutil: add av_mod_uintp2
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-03-20 15:47:31 -03:00
Michael Niedermayer
2a8198b32f avcodec/libvpxenc: Set min/max quantizer to 0 for lossless mode
Fixes Ticket4246

Reviewed-by: James Zern <jzern@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-20 19:22:33 +01:00
Michael Niedermayer
d6dba15b97 avfilter/vf_mcdeint: Change enums to int, which are accessed via AVOption as int
This fixes depending on implementation defined behavior

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-20 19:12:57 +01:00
Michael Niedermayer
1a79850a8f avfilter/vf_overlay: Change enums to int, which are accessed via AVOption as int
This fixes depending on implementation defined behavior

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-20 19:11:58 +01:00
Michael Niedermayer
59c06902e8 avfilter/vf_phase: Change enum to int, which is accessed via AVOption as int
This fixes depending on implementation defined behavior

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-20 19:09:38 +01:00
Luca Barbato
22a6d48b0d avconv: Print the avfilter errors
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-03-20 18:42:26 +01:00
Luca Barbato
342fc46c69 cmdutils: Add a stream specifier to map usable streams
It drops everything that cannot be used for re-encoding and/or
streamcopy.
2015-03-20 16:10:20 +01:00
Michael Niedermayer
e8446a6850 configure: Silence warnings about constant unsigned overflows in MSVC
unsigned overflows are well defined in C and used for example in crypto
and various other places.
None of the affected warnings currently shown points to an actual defect

untested

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-20 15:53:44 +01:00
arwa arif
9015ca359f lavfi/eq: rework expression evaluation
In particular, add support for t, pos, n, r parameters, and add an eval
mode option.

Also, partially reword option documentation.

With several major edit by Stefano Sabatini.

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2015-03-20 09:41:32 +01:00
Stefano Sabatini
e6547cce72 lavfi/eq: factorize code in process_command() 2015-03-20 09:41:32 +01:00
James Almer
6b940b8c99 x86/xvididct: add some yasm guards
Should fix compilation on compilers with less-than-ideal dead code elimination

Signed-off-by: James Almer <jamrial@gmail.com>
2015-03-20 02:38:20 -03:00
James Almer
b0fea4ad7e x86/xvididct: remove obsolete function prototypes
Signed-off-by: James Almer <jamrial@gmail.com>
2015-03-20 02:38:14 -03:00
Martin Vignali
7fb186784a avcodec/dv: remove unused var dvquantareas
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-20 04:39:10 +01:00
Martin Vignali
5f9d30ae8f avcodec/dv: remove unused var dv100qstep
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-20 04:39:01 +01:00
Martin Vignali
57e8047972 avfilter/vf_pp7: remove unused var
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-20 04:38:52 +01:00
James Almer
03e9b1931b avcodec/libdcadec: add missing version bump and changelog entry 2015-03-19 21:09:42 -03:00
Kacper Michajłow
4f3c31df3f avcodec: Fix libdcadec include dir
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-20 02:17:31 +01:00
Michael Niedermayer
85cc76050c Merge commit '30e6abd1a8cc4fd5daf2e23ad2e768862c39e975'
* commit '30e6abd1a8cc4fd5daf2e23ad2e768862c39e975':
  webp: ensure that each transform is only used once

See: c089e720c1
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-20 01:49:31 +01:00
Michael Niedermayer
750cf4e537 Merge commit 'cf18e777aed9f73011c7ab7cbab8003189d4b9d8'
* commit 'cf18e777aed9f73011c7ab7cbab8003189d4b9d8':
  movenc: write the display transform matrix

Conflicts:
	libavformat/movenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-20 01:10:06 +01:00
Hendrik Leppkes
519868de7d avcodec: add libdcadec decoder
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-20 00:25:50 +01:00
Hendrik Leppkes
11fe56c8bb avcodec: add profile define for DTS Express
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-20 00:12:32 +01:00
Michael Niedermayer
77bd35d76d avcodec/dnxhddec: reset cur_field for non interlaced frames
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-19 23:56:31 +01:00
Michael Niedermayer
d3bd943108 avcodec/dnxhddec: Reset is_444 if format is not 444
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-19 23:33:36 +01:00
Michael Niedermayer
2c660e34cf avcodec/dnxhddec: Check that the frame is interlaced before using cur_field
Fixes Ticket4227

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-19 23:28:39 +01:00
Andreas Cadhalpun
30e6abd1a8 webp: ensure that each transform is only used once
According to the WebP Lossless Bitstream Specification
"each transform is allowed to be used only once".

If a transform is more than once this can lead to memory
corruption.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-03-19 21:03:13 +01:00
Anton Khirnov
cf18e777ae movenc: write the display transform matrix 2015-03-19 21:02:59 +01:00
Michael Niedermayer
bbcc09518e avformat/avienc: Expand master ODML index when its end is reached
Fixes 256Gb limit
Fixes Ticket4225

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-19 18:17:16 +01:00
Michael Niedermayer
adfde9a646 avformat/avienc: Fix wrongly placed comment
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-19 17:30:28 +01:00
Michael Niedermayer
81a6b075bd avformat/avidec: also print frame_num in debug output
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-19 16:36:29 +01:00
Michael Niedermayer
01775c8858 avformat/avienc: factor out update_odml_entry()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-19 16:33:50 +01:00
Michael Niedermayer
c3a6d179fb avformat/avienc: factor write_odml_master() out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-19 16:33:49 +01:00
Michael Niedermayer
5440d4b68b Merge commit '30a041887f89cd97c372ad6a516da6e012f2c88b'
* commit '30a041887f89cd97c372ad6a516da6e012f2c88b':
  ismindex: Calculate the pts duration of trun atoms, not the dts duration

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-19 14:00:39 +01:00
Michael Niedermayer
b5448e66b0 Merge commit '67a2912307c3c08f2725ccae162cfe3426b80184'
* commit '67a2912307c3c08f2725ccae162cfe3426b80184':
  movenc: Don't assume that fragment durations in pts is equal to duration in dts

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-19 13:38:25 +01:00
Michael Niedermayer
25d7e3ad59 Merge commit '5c337353a2546416631a87de4881850d99141c39'
* commit '5c337353a2546416631a87de4881850d99141c39':
  movenc: Move sidx edit list timestamp adjustment into a block

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-19 13:26:47 +01:00
Michael Niedermayer
3602782429 Merge commit 'eee13d653953083553cceadbbedf6222ef78a006'
* commit 'eee13d653953083553cceadbbedf6222ef78a006':
  movenc: Only adjust the cts offset at the start of fragments if necessary

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-19 12:47:19 +01:00
Michael Niedermayer
4631d4bec3 Merge commit '5cf892d6946b19a87bcd00d6b76ce81f45960fdb'
* commit '5cf892d6946b19a87bcd00d6b76ce81f45960fdb':
  movenc: Write pts timestamps in tfxd, instead of dts timestamps

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-19 12:38:51 +01:00
Michael Niedermayer
00ad3432e1 Merge commit 'b81b0cc22b22413760423e239ea644c9afdbfa2d'
* commit 'b81b0cc22b22413760423e239ea644c9afdbfa2d':
  movenc: Set the last packet duration based on the next packet when autoflushing

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-19 12:38:29 +01:00
Michael Niedermayer
09585e377c Merge commit '3041183677bda0a431b36e96a2c76617abaa8183'
* commit '3041183677bda0a431b36e96a2c76617abaa8183':
  dashenc: Heuristically fill in the duration of packets that need it

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-19 12:18:05 +01:00
Michael Niedermayer
76fef5cd27 Merge commit '2889c5e16711770437f380f1bead5f72c6a0b17a'
* commit '2889c5e16711770437f380f1bead5f72c6a0b17a':
  movenc: Heuristically set the duration of the last sample in a fragment if not set

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-19 12:09:51 +01:00
Michael Niedermayer
4f8540ba40 Merge commit '8dc72eeaf647736c287b59a3856a11904bedd58b'
* commit '8dc72eeaf647736c287b59a3856a11904bedd58b':
  udp: Fix crashes after adding AVOptions

See: aefed6ca87
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-19 11:22:39 +01:00
Martin Storsjö
30a041887f ismindex: Calculate the pts duration of trun atoms, not the dts duration
Since the duration is compared to the tfra durations/intervals which
are expressed in pts, calculate that here as well.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-19 10:27:22 +02:00
Martin Storsjö
67a2912307 movenc: Don't assume that fragment durations in pts is equal to duration in dts
For strict CFR, they should be pretty much equal, but if the stream
is VFR, there can be a sometimes significant difference.

Calculate the pts duration separately, used in sidx atoms and for
tfrf/tfxd boxes in smooth streaming ismv files.

Also make sure to reduce the duration of sidx entries according to
edit lists.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-19 10:27:20 +02:00
Martin Storsjö
5c337353a2 movenc: Move sidx edit list timestamp adjustment into a block
When reading these values from track->frag_info, the same adjustment
has already been done.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-19 10:27:17 +02:00
Martin Storsjö
eee13d6539 movenc: Only adjust the cts offset at the start of fragments if necessary
Adjusting it is only necessary when a sidx/tfrf/tfxd atom already has
been written for the previous fragment (since the sidx/tfrf/tfxd atoms
include the duration between the first pts of the previous fragment, to
the first pts of the new fragment).

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-19 10:27:15 +02:00
Martin Storsjö
5cf892d694 movenc: Write pts timestamps in tfxd, instead of dts timestamps
This matches what we write in tfra and tfrf since 9cbf70fa0e.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-19 10:27:12 +02:00
Martin Storsjö
b81b0cc22b movenc: Set the last packet duration based on the next packet when autoflushing
When automatically flushing fragments based on set conditions
(fragmentation on keyframes, after some interval or byte size),
we already have the next packet for one stream - use this for setting
the duration of the last packet in the flushed fragment correctly.

This avoids having to adjust the timestamp of the first packet in
the new fragment since the last duration was unknown.

Unfortunately, this only works for automatic flushing (not for
caller-triggered flushing, like in the dash muxer), and only for the
one single track that triggered the flushing. The duration of the
last sample in all other tracks still is dependent on AVPacket
duration (or heuristics).

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-19 10:27:07 +02:00
Martin Storsjö
3041183677 dashenc: Heuristically fill in the duration of packets that need it
This avoids that the mp4 muxer does a similar heuristic, adjusting
the timestamps in a way that the dash muxer doesn't know the actual
timestamps written to the file in the end. By making sure that the
mp4 muxer internal heuristic isn't applied, we know the exact
timestamps written to file, so that the timestamps in manifest match
the files.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-19 10:27:03 +02:00
Martin Storsjö
2889c5e167 movenc: Heuristically set the duration of the last sample in a fragment if not set
Even if this is a guess, it is way better than writing a zero duration
of the last sample in a fragment (because if the duration is zero,
the first sample of the next fragment will have the same timestamp
as the last sample in the previous one).

Since we normally don't require libavformat muxer users to set
the duration field in AVPacket, we probably can't strictly require
it here either, so don't log this as a strict warning, only as info.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-19 10:26:52 +02:00
Martin Storsjö
8dc72eeaf6 udp: Fix crashes after adding AVOptions
Add a missing AVClass member, check whether localaddr is null.
(Previously, localaddr was always a local stack buffer, while it
now also can be an avoption string which can be null.)

This fixes crashes when not passing any localaddr parameter, since
66028b7ba.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-19 10:25:22 +02:00
Andreas Cadhalpun
b61cb61ab8 mxfenc: don't try to write footer without header
This fixes a crash, when trying to mux h264 into mxf_opatom.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Previous version reviewed-by: tomas.hardin@codemill.se
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-19 02:20:30 +01:00
Michael Niedermayer
c5c09501f9 avformat/aiffdec: do not fail if header parser hits EOF
Based on patch by Martin Vignali <martin.vignali@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-19 01:44:14 +01:00
Michael Niedermayer
ae81e8a9c5 avformat/aiffdec: Stop header parsing once a non header packet is reached
Fix Ticket3530

Based-on debuging work by Martin Vignali <martin.vignali@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-19 01:39:47 +01:00
Clément Bœsch
d2009c77fb avfilter/vf_colormatrix: fix yuv420p threading, second try
Now seems to work fine with different combinations of odd/even heights
and odd/even number of threads.
2015-03-19 00:03:29 +01:00
Michael Niedermayer
b1fbe29e51 avcodec/mjpegdec: Support 31111100 sampling
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-18 23:28:43 +01:00
Michael Niedermayer
e15455891b avcodec/mjpegdec: Change upscale_* to an array instead of a bitmask
This allows storing integer factors instead of just 0 and 1

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-18 23:13:44 +01:00
Michael Niedermayer
ee648903f5 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  lavf/mkv: Ignore ff_isom_write_hvcc() return value as the mov muxer does.
  lavc/dts: Do not set bitrate for DTS-HD Master and High Resolution.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-18 21:24:35 +01:00
Michael Niedermayer
b3818c47d8 Merge commit '8692d74b7364b405d7939c0ed347e8a2815193a7'
* commit '8692d74b7364b405d7939c0ed347e8a2815193a7':
  mov: Add option to keep exact packet sequence after seeking

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

See: 414d6547f3
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-18 21:15:18 +01:00
Carl Eugen Hoyos
7a5356c728 lavf/mkv: Ignore ff_isom_write_hvcc() return value as the mov muxer does.
This change allows remuxing hevc from mpeg-ts to Matroska.
2015-03-18 20:35:26 +01:00
Carl Eugen Hoyos
7f1ea38868 lavc/dts: Do not set bitrate for DTS-HD Master and High Resolution.
Fixes ticket #4375.

Reviewed-by: Hendrik Leppkes
2015-03-18 20:34:35 +01:00
Micah Galizia
c59654d67d avformat/http: replace cookies with updated values instead of appending forever
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-18 19:53:26 +01:00
James Cowgill
f8323744a0 mips/float_dsp: fix vector_fmul_window_mips on mips64
Commit dfa9208074 ("mips/float_dsp: fix a bug in vector_fmul_window_mips")
fixed vector_fmul_window_mips by unrolling the loop only 4 times, but also
removed the outer C loop and replaced it with assembly branches and pointer
arithmetic. When submitting my 64-bit porting patch I missed this new
assembly which also needed porting.

This patch fixes a bus error in the fate-float-dsp test when run on 64-bit
mips.

Signed-off-by: James Cowgill <james410@cowgill.org.uk>
Reviewed-by: Nedeljko Babic <nedeljko.babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-18 19:08:02 +01:00
Derek Buitenhuis
414d6547f3 mov: Add option to keep exact packet sequence after seeking
The current behavior may produce a different sequence of packets
after seeking, compared to demuxing linearly from the beginning.
This is because the MOV demuxer seeks in each stream individually,
based on timestamp, which may set each stream at a slightly different
position than if the file would have been read sequentially.

This makes implementing certain operations, such as segmenting,
quite hard, and slower than need be.

Therefore, add an option which retains the same packet sequence
after seeking, as when a file is demuxed linearly.
2015-03-18 14:30:07 +00:00
Derek Buitenhuis
8692d74b73 mov: Add option to keep exact packet sequence after seeking
The current behavior may produce a different sequence of packets
after seeking, compared to demuxing linearly from the beginning.
This is because the MOV demuxer seeks in each stream individually,
based on timestamp, which may set each stream at a slightly different
position than if the file would have been read sequentially.

This makes implementing certain operations, such as segmenting,
quite hard, and slower than need be.

Therefore, add an option which retains the same packet sequence
after seeking, as when a file is demuxed linearly.
2015-03-18 14:28:56 +00:00
Michael Niedermayer
fbb9ef5b17 avfilter/vf_lut3d: Change enum to int, which is accessed via AVOption as int
This fixes depending on implementation defined behavior

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-18 12:32:56 +01:00
Michael Niedermayer
ee17295d10 avfilter/vf_il: Change enums to int, which are accessed via AVOption as int
This fixes depending on implementation defined behavior

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-18 12:32:56 +01:00
Michael Niedermayer
67e1562228 avfilter/vf_histogram: Change enum to int, which is accessed via AVOption as int
This fixes depending on implementation defined behavior

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-18 12:32:56 +01:00
Clément Bœsch
304fdfe9f3 lavfi: add showwavespic filter
This is a variant of showwaves. It is implemented as a different filter
so that the user is not allowed to use meaningless options which belong
to showwaves (such as rate).

Major edits done by Stefano Sabatini, from a patch by ubitux.

See thread:
From: Clément Bœsch <u@pkh.me>
To: ffmpeg-devel@ffmpeg.org
Date: Wed, 24 Dec 2014 15:03:26 +0100
Subject: [FFmpeg-devel] [PATCH] avfilter/showwaves: add single_pic option
2015-03-18 12:19:08 +01:00
Michael Niedermayer
0f16dfda50 Replace PixelFormats which sneaked in over time or where forgotten by AVPixelFormats
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-18 01:18:40 +01:00
Michael Niedermayer
4fae556322 Merge commit '58a840e21577a2168843487a98cb2cea44b5a94a'
* commit '58a840e21577a2168843487a98cb2cea44b5a94a':
  Replace a few leftover instances of enum PixelFormat with enum AVPixelFormat

See: ac627b3d38
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-18 01:09:35 +01:00
James Almer
bf2bd5b807 avcodec/ac3dec_fixed: fix compilation when ac3dec is disabled
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-03-17 19:25:55 -03:00
Michael Niedermayer
0b961423ee avcodec/aacsbr: Replace impossible condition by assert
bits can have a value of 0 or 1 they are never -1 or otherwise negative

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-17 22:55:59 +01:00
Martin Storsjö
58a840e215 Replace a few leftover instances of enum PixelFormat with enum AVPixelFormat
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-17 23:53:33 +02:00
Michael Niedermayer
ae3d2afd46 Merge commit '6289706b35d1b030258bba54cc27bb6d2c04bc9b'
* commit '6289706b35d1b030258bba54cc27bb6d2c04bc9b':
  fate: Move tdsc to the appropriate screen capture file

Conflicts:
	tests/fate/video.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-17 21:58:16 +01:00
Michael Niedermayer
c7e1e4c48a Merge commit '423f5d50e499ab972f507115700c8f31ed8993e4'
* commit '423f5d50e499ab972f507115700c8f31ed8993e4':
  mov: Fix little endian audio detection

Conflicts:
	libavformat/mov.c

See: d2549ba9df
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-17 21:46:10 +01:00
Michael Niedermayer
45f62c74dd Merge commit 'cdce9e8025fff1dee2fd3d6bc28aebc0a330c5a0'
* commit 'cdce9e8025fff1dee2fd3d6bc28aebc0a330c5a0':
  aacsbr: Fix type for index variable

See: a15adabdd3
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-17 21:30:36 +01:00
Michael Niedermayer
66de11b064 Merge commit '7c60c124c8dfaebfafa2b3c11b316db549617732'
* commit '7c60c124c8dfaebfafa2b3c11b316db549617732':
  hqx: Drop unused offsets table

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-17 21:18:25 +01:00
Michael Niedermayer
07ca090e81 Merge commit '4326bc364b58e97fc3d89417054a6b7610179a00'
* commit '4326bc364b58e97fc3d89417054a6b7610179a00':
  lavf: Do not list mov-only codecs in riff tags

Conflicts:
	libavformat/Makefile
	libavformat/avidec.c

See: 2e0b5f5c90
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-17 21:09:43 +01:00
Michael Niedermayer
de732a82b6 Merge commit 'cf9861dea5d42d0b5a6cf0609b9624525d96c1e0'
* commit 'cf9861dea5d42d0b5a6cf0609b9624525d96c1e0':
  isom: Add X-Com Radvision FourCC

See: ac494e5a66
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-17 20:58:43 +01:00
Michael Niedermayer
59f687b73c Merge commit '02d76141d68e38c80f9a205a56b9af10d74f0995'
* commit '02d76141d68e38c80f9a205a56b9af10d74f0995':
  riff: Add 'tshd' FourCC for H.264

Conflicts:
	libavformat/riff.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-17 20:48:39 +01:00
Michael Niedermayer
182499be72 Merge commit 'c0f504e947cc0a3c73770419bf7d1af98288fc59'
* commit 'c0f504e947cc0a3c73770419bf7d1af98288fc59':
  libx264: Allow full-range yuv422 and yuv444 pixel formats

See: 79209f5d6c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-17 20:41:04 +01:00
Michael Niedermayer
6d57da9aa4 Merge commit 'c9ed48e80ef807ab0c1bb946ac8db5f34d83d9c9'
* commit 'c9ed48e80ef807ab0c1bb946ac8db5f34d83d9c9':
  dca: Read params->pancABIT0[param_index] only if part0 is set

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-17 20:32:57 +01:00
Michael Niedermayer
1eb28479da Merge commit '48aef27f5232794e70ecef0d347b9f65e27a9bad'
* commit '48aef27f5232794e70ecef0d347b9f65e27a9bad':
  x86: Put COPY3_IF_LT under HAVE_6REGS

Conflicts:
	libavcodec/x86/mathops.h

See: b38910c979
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-17 20:25:47 +01:00
Clément Bœsch
09f057170e avfilter/vf_colormatrix: make sure the number of threads is even for yuv420p
Fix crash with for example:
  ffmpeg -f lavfi -i testsrc=568x320 -threads 3 -vf format=yuv420p,colormatrix=bt709:smpte170m -f null -
2015-03-17 20:19:54 +01:00
Michael Niedermayer
2cfa1fdb08 Merge commit '96dd04427fc46e5e25a5ac1f00753207e3aedb0c'
* commit '96dd04427fc46e5e25a5ac1f00753207e3aedb0c':
  isom: Add support for TSCC2

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-17 20:05:53 +01:00
Michael Niedermayer
33a79e443b Merge commit '91894f27dce531c13d7e1be20253877f2e1e9e66'
* commit '91894f27dce531c13d7e1be20253877f2e1e9e66':
  configure: Disable shift operator precedence warnings with MSVC

Conflicts:
	configure

See: 9e208ce6dd
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-17 19:58:02 +01:00
Michael Niedermayer
13f8bbfb70 avformat/mov: fix mis-detection of jpeg2000
Fixes demuxer choice for Ticket 2792

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-17 19:05:44 +01:00
Michael Niedermayer
6cd079a4e7 avfilter/vf_histeq: Change enums to int, which are accessed via AVOption as int
This fixes depending on implementation defined behavior

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-17 17:13:38 +01:00
Michael Niedermayer
7363889771 avfilter/vf_fieldmatch: Change enums to int, which are accessed via AVOption as int
This fixes depending on implementation defined behavior

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-17 17:11:42 +01:00
Michael Niedermayer
e6140e7822 avfilter/vf_field: Change enum to int, which is accessed via AVOption as int
This fixes depending on implementation defined behavior

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-17 16:52:10 +01:00
Andreas Cadhalpun
39ddda12f1 mxfenc: fix memleaks in mxf_write_footer
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Reviewed-by: tomas.hardin@codemill.se
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-17 15:05:41 +01:00
Tobias Rapp
5be04f9789 doc/protocols: Fixed missing example section marker
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-17 15:04:22 +01:00
Vittorio Giovara
6289706b35 fate: Move tdsc to the appropriate screen capture file 2015-03-17 13:36:10 +00:00
Vittorio Giovara
423f5d50e4 mov: Fix little endian audio detection
Set this field to TRUE if the audio component is to operate on
little-endian data, and FALSE otherwise.

However TRUE and FALSE are not defined. Since this flag is just a boolean,
interpret all values except for 0 as little endian.

Sample-Id: 64bit_FLOAT_Little_Endian.mov
2015-03-17 13:34:23 +00:00
Vittorio Giovara
cdce9e8025 aacsbr: Fix type for index variable
Prevents unsigned overflow and variable truncation.

Bug-Id: CID 603186
2015-03-17 13:34:23 +00:00
Vittorio Giovara
7c60c124c8 hqx: Drop unused offsets table
This is a leftover from the static to dynamic vlc table conversion.
2015-03-17 13:34:23 +00:00
Carl Eugen Hoyos
4326bc364b lavf: Do not list mov-only codecs in riff tags
Instead check for all mov code-points when demuxing avi
and print a warning if a video codec is found like this.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-03-17 13:34:22 +00:00
Paul B Mahol
cf9861dea5 isom: Add X-Com Radvision FourCC
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-03-17 13:34:22 +00:00
Vittorio Giovara
02d76141d6 riff: Add 'tshd' FourCC for H.264 2015-03-17 13:34:22 +00:00
Carl Eugen Hoyos
c0f504e947 libx264: Allow full-range yuv422 and yuv444 pixel formats
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-03-17 13:34:22 +00:00
Niels Möller
c9ed48e80e dca: Read params->pancABIT0[param_index] only if part0 is set
Prevent a spurious read from uninitialized memory.
2015-03-17 12:31:07 +01:00
Luca Barbato
48aef27f52 x86: Put COPY3_IF_LT under HAVE_6REGS
It uses 6 registers, unbreaks building on hardened x86 system.

Bug-Id: gentoo/541930
CC: libav-stable@libav.org
2015-03-17 12:31:04 +01:00
Luca Barbato
96dd04427f isom: Add support for TSCC2
As produced by Camtasia 4.
2015-03-17 12:21:23 +01:00
Diego Biurrun
91894f27dc configure: Disable shift operator precedence warnings with MSVC 2015-03-17 11:59:31 +01:00
Michael Niedermayer
d24af7044d avcodec/vc1_pred: Fix undefined shifts
Found-by: Clang -fsanitize=shift
Reported-by: Thierry Foucu <tfoucu@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-17 01:51:59 +01:00
Clément Bœsch
b17620b81b avcodec/libx264: use AVERROR_EXTERNAL instead of AVERROR_UNKNOWN 2015-03-17 00:05:58 +01:00
Clément Bœsch
fd682b1892 avfilter: handle error in query_formats() of a bunch of random video filters 2015-03-16 23:43:12 +01:00
Clément Bœsch
545b0dd6aa avfilter/formats: proper error handling in ff_set_common_*() functions 2015-03-16 23:43:12 +01:00
Clément Bœsch
f861d9b2c6 avfilter/formats: proper error handling in ff_channel_layouts_ref() and ff_formats_ref()
Also make sure the allocation and its check are properly done.
2015-03-16 23:43:12 +01:00
Clément Bœsch
93d9ce7cec avfilter/formats: use av_realloc_array in ADD_FORMAT() 2015-03-16 23:43:12 +01:00
Clément Bœsch
38fb183b12 avfilter/formats: remove unused COPY_INT_LIST() macro
This macro is unused since 247fa6c27c.
2015-03-16 23:43:12 +01:00
Michael Niedermayer
ae65cc7ed3 Merge commit '2cb9c2fc59c9267ad2631c07c81c188058502259'
* commit '2cb9c2fc59c9267ad2631c07c81c188058502259':
  movenc: Allow interleaving samples when writing fragmented files

Conflicts:
	libavformat/movenc.c
	libavformat/movenc.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-16 23:30:13 +01:00
srikanth
730f3c49e0 OpenCL uninit bug fix - clear is_compiled flag
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-16 22:52:19 +01:00
Michael Niedermayer
b425b81fd2 avformat/rtsp: Fix potential pointer overflow in sdp_probe()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-16 22:40:36 +01:00
Michael Niedermayer
1b3b018aa4 avformat/mpegts: Fix potential pointer overflows
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-16 22:37:46 +01:00
Michael Niedermayer
29db8e45fc configure: Silence EMMS warnings in ICC
Real world MMX code does not put EMMS at the start and end of every function,
it would be incredibly inefficient to do that
thus do not warn about that

Tested-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-16 22:20:46 +01:00
Michael Niedermayer
312eb0d66f Merge commit '50ff0c05b691524d1fd044a2f2eefb706932fc98'
* commit '50ff0c05b691524d1fd044a2f2eefb706932fc98':
  movenc: Support writing multiple trun atoms

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-16 21:53:02 +01:00
Michael Niedermayer
1904704a48 Merge commit 'faab8f9fcb4ffeb967dc6872c0f1e9da719106ce'
* commit 'faab8f9fcb4ffeb967dc6872c0f1e9da719106ce':
  configure: move cross_compile checks after the toolchain section

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-16 21:46:02 +01:00
Michael Niedermayer
b37852c7d9 Merge commit '3e1b5cbc9ab0a61c9bec08a1df1404b9da6ed7ea'
* commit '3e1b5cbc9ab0a61c9bec08a1df1404b9da6ed7ea':
  configure: handle Apple's armv7s in probe_arm_arch()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-16 21:34:14 +01:00
Michael Niedermayer
6416dce490 Merge commit 'f01c77157789b8e3a59ed2c9646faf8299e41641'
* commit 'f01c77157789b8e3a59ed2c9646faf8299e41641':
  fate: add explicit support for the toolchain configure option

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-16 21:27:23 +01:00
Michael Niedermayer
7c9ad3c4ea Merge commit 'a9d60c390f35f3954821bd635fd31bbb5036b29d'
* commit 'a9d60c390f35f3954821bd635fd31bbb5036b29d':
  doc: fate: remove outdated SSH key fingerprint

Conflicts:
	doc/fate.texi

Not merged, this does not apply to our servers

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-16 21:19:29 +01:00
Rainer Hochecker
786032cad8 hevc: avoid unnecessary calls to get_format
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-16 20:48:14 +01:00
zhaoxiu.zeng
332776f6c5 avformat/cavsvideodec: use avpriv_find_start_code in cavsvideo_probe()
Signed-off-by: Zeng Zhaoxiu <zhaoxiu.zeng@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-16 15:40:10 +01:00
Michael Niedermayer
d79f7bf0d6 avcodec/x86/cavsdsp: remove incorrect LOCAL_ALIGN tmp
This is faster and simpler as well

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-16 14:51:51 +01:00
Michael Niedermayer
12cf61c3b2 avcodec/hevc: Fix undefined shifts
Found-by: Clang -fsanitize=shift
Reported-by: Thierry Foucu <tfoucu@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-16 14:27:11 +01:00
Michael Niedermayer
04c52389d8 avcodec/tdsc: Remove ;;
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-16 13:04:47 +01:00
Micah Galizia
fca0851879 avformat/hls: refactor repeated HLS option updates
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-16 13:01:39 +01:00
Martin Storsjö
2cb9c2fc59 movenc: Allow interleaving samples when writing fragmented files
This is incompatible with the omit_tfhd_offset flag (writing
position independent fragments with interleaving requires the
default_base_moof flag).

This makes the moof atoms slightly bigger, but can be better for
playback (improving locality of sample data in the mdat).

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-16 13:23:19 +02:00
Martin Storsjö
50ff0c05b6 movenc: Support writing multiple trun atoms
This is needed if all the data for one track isn't continuous
within the mdat. Normally we make sure all the data for one
track is continuous, but in new cases we will need to have
the samples interleaved.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-16 13:23:19 +02:00
Janne Grunau
faab8f9fcb configure: move cross_compile checks after the toolchain section 2015-03-16 11:55:47 +01:00
Janne Grunau
3e1b5cbc9a configure: handle Apple's armv7s in probe_arm_arch() 2015-03-16 11:55:47 +01:00
Janne Grunau
f01c771577 fate: add explicit support for the toolchain configure option 2015-03-16 11:55:47 +01:00
Janne Grunau
a9d60c390f doc: fate: remove outdated SSH key fingerprint 2015-03-16 11:55:47 +01:00
Michael Niedermayer
18a9647996 Merge commit '66a0ac0a802dd794acc1ab8559d3db9e98755b57'
* commit '66a0ac0a802dd794acc1ab8559d3db9e98755b57':
  mkv: Add support for DVB subtitles

See: 4789c25d83
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-16 11:44:26 +01:00
Stefano Sabatini
83ee820a16 lavfi/sendcmd: improve error reporting and robustness in case of missing commands
In particular, fix crash with -vf sendcmd, when no arguments are provided.
2015-03-16 10:49:25 +01:00
James Almer
e8374d7202 x86/proresdsp: remove ff_prores_idct_put_10_sse4
It's exactly the same as the sse2 version.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-03-16 01:52:44 -03:00
James Almer
bdd179c8cb x86/proresdsp: remove unused macro
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-03-16 01:49:34 -03:00
Michael Niedermayer
1e4d0498df avformat/mov: Disallow ".." in dref unless use_absolute_path is set
as this kind of allows to circumvent it to some extend.
We also could add a separate parameter or value to choose this

Found-by: ramiro
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-16 03:47:56 +01:00
Mark Reid
e575589378 libavformat/mxfdec: fix MXFPackage->comment_refs memory leak
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-16 03:37:44 +01:00
Micah Galizia
7859618aff avformat/hls: store cookies returned in HLS key response
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-16 01:57:01 +01:00
Michael Niedermayer
e802abd6e3 avcodec/dcadec: if XLL is enabled use xll channels
Fixes outputting 14 channels instead of 7

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-16 01:19:18 +01:00
Michael Niedermayer
21d25441c6 avcodec/dcadec: Only upsample as much data as is there
Found-by: carl
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-16 00:44:54 +01:00
Michael Niedermayer
3e48616226 Merge commit '9a60b1fad02cb783b895b2145c3dafc01f7b337c'
* commit '9a60b1fad02cb783b895b2145c3dafc01f7b337c':
  libswscale: fix compiler warnings enumerated type mixed with another type

Conflicts:
	libswscale/swscale_unscaled.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-16 00:15:16 +01:00
Michael Niedermayer
4f3f5ee1ac Merge commit '66028b7ba6b411ba12ef553e9c8f1f4a4fe27710'
* commit '66028b7ba6b411ba12ef553e9c8f1f4a4fe27710':
  udp: Use AVOptions

Conflicts:
	libavformat/udp.c

See: aefed6ca87
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-16 00:10:09 +01:00
Luca Barbato
66a0ac0a80 mkv: Add support for DVB subtitles
Bug-Id: 833
2015-03-15 23:49:17 +01:00
Michael Niedermayer
54db7df34b Merge commit 'a4c5801070198c1f2af32fa5cf850c330615ac24'
* commit 'a4c5801070198c1f2af32fa5cf850c330615ac24':
  sctp: Update to match tcp

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-15 22:43:10 +01:00
Michael Niedermayer
96bd032193 Merge commit 'acbe15a99f158dbb0edb837fb6557171dc4376d4'
* commit 'acbe15a99f158dbb0edb837fb6557171dc4376d4':
  fate: Add test for DCA XLL

Conflicts:
	tests/fate/audio.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-15 22:20:15 +01:00
Michael Niedermayer
209001073a Merge commit '217e4ff4d1f845b76e44634e29371cd09313d1c2'
* commit '217e4ff4d1f845b76e44634e29371cd09313d1c2':
  dca: Support for XLL (lossless extension)

Conflicts:
	Changelog
	doc/general.texi
	libavcodec/Makefile
	libavcodec/dca.h
	libavcodec/dca_exss.c
	libavcodec/dcadata.h
	libavcodec/dcadec.c
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-15 22:18:41 +01:00
Michael Niedermayer
e46a7fdc87 Merge commit '4da5aacc7eba274a4f18411120de539d39c5151e'
* commit '4da5aacc7eba274a4f18411120de539d39c5151e':
  dca: Mark syncword constants unsigned; they do not fit in 32-bit signed int

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-15 21:14:46 +01:00
Michael Niedermayer
de41d5372f avcodec/dvbsub_parser: Fix potential pointer overflows
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-15 20:26:08 +01:00
Clément Bœsch
84da9339c2 avfilter/palettegen: make sure at least one frame was sent to the filter
Fix FPE.
2015-03-15 19:09:20 +01:00
Himangi Saraogi
9a60b1fad0 libswscale: fix compiler warnings enumerated type mixed with another type
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-03-15 18:29:22 +01:00
Luca Barbato
66028b7ba6 udp: Use AVOptions
Add AVOptions for options currently available as url parameters.
2015-03-15 18:29:11 +01:00
Luca Barbato
a4c5801070 sctp: Update to match tcp
Use AVOption and fallback over multiple addresses
2015-03-15 18:29:11 +01:00
Michael Niedermayer
0a4808741e avcodec/h264dsp_template: Fix undefined shifts
Found-by: Clang -fsanitize=shift
Reported-by: Thierry Foucu <tfoucu@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-15 17:30:10 +01:00
Mark Reid
8d54850f33 libavformat/mxfenc: write user comment metadata
Reviewed-by: Tomas Härdin <tomas.hardin@codemill.se>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-15 17:17:38 +01:00
Stefano Sabatini
6a63d0d826 lavfi/eq: clarify error message in case of expression parsing error 2015-03-15 14:55:13 +01:00
Diego Biurrun
acbe15a99f fate: Add test for DCA XLL 2015-03-15 14:51:44 +01:00
Niels Möller
217e4ff4d1 dca: Support for XLL (lossless extension)
Cleanup and integration by Diego Biurrun.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2015-03-15 14:51:36 +01:00
Michael Niedermayer
2cda1a16d0 avformat/dvbsub: Fix hypothetical pointer overflow in dvbsub_probe()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-15 13:45:31 +01:00
Michael Niedermayer
32c4b504b4 avformat/mpegvideodec: fix hypothetical pointer overflow in mpegvideo_probe()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-15 13:39:56 +01:00
zhaoxiu.zeng
84d8b4fb81 avformat/mpegvideodec: use avpriv_find_start_code in mpegvideo_probe()
Signed-off-by: Zeng Zhaoxiu <zhaoxiu.zeng@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-15 13:28:44 +01:00
zhaoxiu.zeng
213ddcb029 avformat/avidec: cleanup include
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-15 13:03:26 +01:00
zhaoxiu.zeng
bf696e265a avformat/avidec: use avpriv_find_start_code in avi_read_packet()
Signed-off-by: Zeng Zhaoxiu <zhaoxiu.zeng@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-15 13:02:57 +01:00
Michael Niedermayer
e3f5b6f16d avcodec/ac3: Fix undefined shift in ff_ac3_bit_alloc_calc_mask()
Found-by: Clang -fsanitize=shift
Reported-by: Thierry Foucu <tfoucu@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-15 11:21:50 +01:00
Michael Niedermayer
94ccbad488 avcodec/ac3dec: Fix undefined shifts
Found-by: Clang -fsanitize=shift
Reported-by: Thierry Foucu <tfoucu@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-15 04:30:41 +01:00
Michael Niedermayer
3b63819dfb avcodec/vc1: Fix undefined shifts
Found-by: Clang -fsanitize=shift
Reported-by: Thierry Foucu <tfoucu@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-15 02:57:24 +01:00
Michael Niedermayer
b8535b273f Revert "ppc: lavc: use LOCAL_ALIGNED instead of DECLARE_ALIGNED"
This broke build, note, LOCAL_ALIGNED_16() does not work either

Found-by: James Almer <jamrial@gmail.com>
This reverts commit 98cccdd91c.
2015-03-15 02:02:21 +01:00
Michael Niedermayer
a994fc39b3 avcodec/utils: mark codec argument as const in ff_lock_avcodec()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-14 23:33:31 +01:00
Mark Reid
43cafb956e libavformat/mxfdec: export user comments metadata
Previous-revision-reviewed-by: Tomas Härdin <tomas.hardin@codemill.se>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-14 22:46:18 +01:00
Michael Niedermayer
8003816e16 avformat/mov: Check for string truncation in mov_open_dref()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-14 21:57:04 +01:00
Michael Niedermayer
21a53dd08d avformat/mov: Use sizeof(filename) instead of a literal number
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-14 21:56:46 +01:00
Christophe Gisquet
3814f92fd7 lavc: use LOCAL_ALIGNED instead of DECLARE_ALIGNED
The later may yield incorrect code for on-stack variables.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-14 20:36:43 +01:00
Christophe Gisquet
238db7cc56 x86: lavc: use LOCAL_ALIGNED instead of DECLARE_ALIGNED
The later may yield incorrect code for on-stack variables.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-14 20:06:47 +01:00
Christophe Gisquet
98cccdd91c ppc: lavc: use LOCAL_ALIGNED instead of DECLARE_ALIGNED
The later may yield incorrect code for on-stack variables.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-14 19:07:27 +01:00
Christophe Gisquet
5d38c628b0 ppc: libswscale: use LOCAL_ALIGNED instead of DECLARE_ALIGNED
The later may yield incorrect code for on-stack variables.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-14 18:39:28 +01:00
Michael Niedermayer
a48b24e5eb avcodec/wmadec: Fix undefined shift in wma_decode_block()
Found-by: Clang -fsanitize=shift
Reported-by: Thierry Foucu <tfoucu@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-14 17:32:12 +01:00
Christophe Gisquet
73ebbfdff0 ac3dec: cosmetics
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-14 15:25:42 +01:00
Christophe Gisquet
0c3339f4bd eac3dec: fix scaling
This is the remaining error, the output on the SPX samples,
respectively csi_miami_stereo_128_spx.eac3 and
csi_miami_5.1_256_spx.eac3, goes from:
stddev:    8.71 PSNR: 77.52 MAXDIFF:  235
stddev:24270.51 PSNR: 22.17 MAXDIFF:47166
to:
stddev:    0.12 PSNR:114.12 MAXDIFF:    1
stddev:    0.12 PSNR:114.73 MAXDIFF:    1

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-14 14:05:25 +01:00
Christophe Gisquet
c4bf3833f4 ac3_fixed: fix computation of spx_noise_blend
It was set to 1 instead of sqrt(3)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-14 14:05:22 +01:00
Christophe Gisquet
b083440060 ac3_fixed: fix out-of-bound read
Should also improve decoding, but actually doesn't...

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-14 14:05:18 +01:00
Christophe Gisquet
15ce160183 x86: xvid_idct: SSE2 merged add version
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-14 13:36:47 +01:00
Christophe Gisquet
decd5193e1 x86: xvid_idct: merged idct_put SSE2 versions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-14 13:36:29 +01:00
Christophe Gisquet
8200575d84 x86: dct-test: evaluate prores idct avx version
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-14 13:23:27 +01:00
Christophe Gisquet
4eb4451be1 x86: dct-test: fix compilation for prores
When the decoder is deactivated, the x86-optimized versions are
not compiled, resulting in a link error.

The C version is unaffected, as it is part of the idctdsp
subsystem.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-14 13:23:06 +01:00
Christophe Gisquet
c3bf52713a x86: xvid_idct: port MMX iDCT to yasm
Also reduce the table duplication with SSE2 code, remove duplicated
macro parameters.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-14 11:45:11 +01:00
Andreas Cadhalpun
7b05b5093e ac3dec_fixed: always use the USE_FIXED=1 variant of the AC3DecodeContext
The AC3DecodeContext has a float (USE_FIXED=0) and an integer
(USE_FIXED=1) variant, both of which can be present in the same binary.
This is not only very confusing, but it also breaks horribly, when one
variant is used by code expecting the other.

This currently happens, because eac3dec.c is only compiled for the float
variant, but also used from ac3dec_fixed.c, which uses the integer
variant.

The result is memory corruption, leading to crashes.

So compile eac3dec.c once for each variant and adapt it, so that it
works with the integer variant.

A loss of precission and scaling bug has been fixed by the committer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-14 04:27:06 +01:00
Michael Niedermayer
e16592c42e swresample/resample: Fix undefined shifts
Found-by: Clang -fsanitize=shift
Reported-by: Thierry Foucu <tfoucu@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-14 01:15:37 +01:00
Michael Niedermayer
b14de8e689 avcodec/utils: use atomic operations on entangled_thread_counter
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-13 23:59:07 +01:00
Michael Niedermayer
b910c6ca56 configure: fix zlib dependancy of tdsc
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-13 23:45:27 +01:00
Michael Niedermayer
88ddcfa37f avcodec/tdsc: use ff_codec_open2_recursive()
Fixes assertion failure and race conditions

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-13 23:23:16 +01:00
Michael Niedermayer
e1f37c48e5 Merge commit '247e370e2a913db52ca079b347a174c8d393b171'
* commit '247e370e2a913db52ca079b347a174c8d393b171':
  TDSC decoder

Conflicts:
	Changelog
	doc/general.texi
	libavcodec/Makefile
	libavcodec/allcodecs.c
	libavcodec/version.h
	tests/fate/video.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-13 23:23:01 +01:00
Michael Niedermayer
fa4bb7c5b2 Merge commit '5a0e953c2465be9d449d5f523c3d3e2b886910b2'
* commit '5a0e953c2465be9d449d5f523c3d3e2b886910b2':
  mjpeg: Mark decoder family as thread safe

Conflicts:
	libavcodec/mjpegbdec.c
	libavcodec/mjpegdec.c
	libavcodec/mxpegdec.c
	libavcodec/sp5xdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-13 22:48:54 +01:00
Michael Niedermayer
a048bd44b2 Merge commit '117b432748ca87de4cd0f09d9b1495545e264733'
* commit '117b432748ca87de4cd0f09d9b1495545e264733':
  lavc: Introduce AVCodec internal capabilities

Conflicts:
	libavcodec/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-13 22:38:53 +01:00
Michael Niedermayer
79f013a206 Merge commit '9993a067f6c8c7e7838052ac3146aa6b80dd7e81'
* commit '9993a067f6c8c7e7838052ac3146aa6b80dd7e81':
  lavc: Improve thread locking error message

Conflicts:
	libavcodec/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-13 22:02:19 +01:00
Diego Biurrun
4da5aacc7e dca: Mark syncword constants unsigned; they do not fit in 32-bit signed int 2015-03-13 21:20:37 +01:00
Vittorio Giovara
247e370e2a TDSC decoder
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-03-13 19:48:14 +00:00
Vittorio Giovara
5a0e953c24 mjpeg: Mark decoder family as thread safe
No global variables are used and the VLC tables are allocated without
static elements. This will allow using a JPEG decoding context within
other decoders.
2015-03-13 19:48:07 +00:00
Vittorio Giovara
117b432748 lavc: Introduce AVCodec internal capabilities
This field is designed for marking codec properties useful to lavc internals.
Two internal capabilities are added:
 - FF_CODEC_CAP_INIT_THREADSAFE: codec can be opened without locks;
 - FF_CODEC_CAP_INIT_CLEANUP: codec frees memory if initialization fails.
2015-03-13 19:47:47 +00:00
Vittorio Giovara
9993a067f6 lavc: Improve thread locking error message 2015-03-13 19:47:34 +00:00
Zhang Rui
3f375950f3 avformat/http: support auto reconnect
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-13 19:07:28 +01:00
Michael Niedermayer
3727cd5416 avformat/flvdec: add support for OnCaption 2015-03-13 16:25:27 +01:00
Michael Niedermayer
1df64d6c46 avformat/flvdec: re enable flv_data_packet()
Found-by: kurosu
Reviewed-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-13 16:24:12 +01:00
Michael Niedermayer
7869b2959d avformat/flvdec: Change subtitle stream type to subtitle type
Previous-version-reviewed-by: Andreas Cadhalpun
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-13 16:03:28 +01:00
Michael Niedermayer
7b0daec233 avcodec/svq1dec: Fix undefined shifts
Found-by: Clang -fsanitize=shift
Reported-by: Thierry Foucu <tfoucu@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-13 11:55:45 +01:00
Carl Eugen Hoyos
3cd823e46f lavc: Print number of reference frames if debug level >= verbose. 2015-03-13 08:52:36 +01:00
Carl Eugen Hoyos
2e0b5f5c90 lavf: Do not list mov-only codecs in riff.c.
Instead check for all mov code-points when demuxing avi
and print a warning if a video codec is found like this.
Fixes a regression similar to the one described in ticket #4307.
2015-03-13 08:49:03 +01:00
Carl Eugen Hoyos
a47c2a1d5f doc: Fix alphabetic ordering for decklink input device. 2015-03-13 01:57:42 +01:00
Christophe Gisquet
2999bd7da2 x86: xvid_idct: port SSE2 iDCT to yasm
The main difference consists in renaming properly labels, and
letting yasm select the gprs for skipping 1D transforms.

Previous-version-reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-13 01:04:52 +01:00
Michael Niedermayer
8f8c31f4c7 Merge commit '913aa9a4874418724183a3ec862cdc63b829367d'
* commit '913aa9a4874418724183a3ec862cdc63b829367d':
  libx264: Return more meaningful error codes

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-13 00:02:27 +01:00
Michael Niedermayer
b0112019f9 Merge commit '6bdae41d3ef74a0865e8f87896e649f93b2f39bd'
* commit '6bdae41d3ef74a0865e8f87896e649f93b2f39bd':
  matroskadec: Check memory allocations

Conflicts:
	libavformat/matroskadec.c

See: 3e2a5b33f0
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-12 23:51:44 +01:00
Michael Niedermayer
9f8f2bcab6 Merge commit 'c3bd1d60af97e8d2568dac9fcce7bdabb4ff93c8'
* commit 'c3bd1d60af97e8d2568dac9fcce7bdabb4ff93c8':
  formats: Check memory allocations

Conflicts:
	libavfilter/formats.c

See: 527ca3985c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-12 22:40:56 +01:00
Michael Niedermayer
8b3a681aaa Merge commit '5a2645cafeca1c2207ac55cc831c3349572a82ed'
* commit '5a2645cafeca1c2207ac55cc831c3349572a82ed':
  nutdec: Prevent leaks on memory error

Conflicts:
	libavformat/nutdec.c

See: 269845db86
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-12 22:01:57 +01:00
Michael Niedermayer
98c387c9c1 Merge commit 'edca1dd552efa1ebef016ca9eff4ce6757605819'
* commit 'edca1dd552efa1ebef016ca9eff4ce6757605819':
  xcbgrab: Check av_strdup() allocation

Conflicts:
	libavdevice/xcbgrab.c

See: db442c8736
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-12 21:51:15 +01:00
Michael Niedermayer
a91c175db2 Merge commit '17c45d4d056d0e10ecb88b424ec9e68be398da5e'
* commit '17c45d4d056d0e10ecb88b424ec9e68be398da5e':
  libtheora: Check frame allocation

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-12 21:41:55 +01:00
Michael Niedermayer
9ecfe0b878 Merge commit 'a72d93daa09ffbad2771f1450820941055eaf210'
* commit 'a72d93daa09ffbad2771f1450820941055eaf210':
  mpegvideo_enc: Check AVCodecContext allocation

Conflicts:
	libavcodec/mpegvideo_enc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-12 21:30:37 +01:00
Michael Niedermayer
0bc2da6dcf Merge commit '78c892284150e12f6b08b287bdf7e62307c6985f'
* commit '78c892284150e12f6b08b287bdf7e62307c6985f':
  dca: Document the permuted order in the lfe_fir_64 and lfe_fir_128 tables

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-12 21:20:24 +01:00
James Almer
d5addf1555 hevcdsp: fix compilation for arm and aarch64
Also add av_cold to ff_hevcdsp_init_arm.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-12 20:01:01 +01:00
Himangi Saraogi
913aa9a487 libx264: Return more meaningful error codes
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-03-12 19:09:22 +01:00
Vittorio Giovara
6bdae41d3e matroskadec: Check memory allocations
CC: libav-stable@libav.org
2015-03-12 17:48:14 +00:00
Vittorio Giovara
c3bd1d60af formats: Check memory allocations 2015-03-12 17:46:47 +00:00
James Cowgill
a251aa1a35 mips/asmdefs: use _ABI64 as defined by gcc
Unfortunately android < api 21 (lollipop) doesn't have the sgidefs.h header,
the easiest way around this is to just use the preprocessor definitions from
gcc / clang.

Signed-off-by: James Cowgill <james410@cowgill.org.uk>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-12 16:45:31 +01:00
Vittorio Giovara
5a2645cafe nutdec: Prevent leaks on memory error
Bug-Id: CID 205122 / CID 205123
2015-03-12 15:29:59 +00:00
Vittorio Giovara
edca1dd552 xcbgrab: Check av_strdup() allocation
Bug-Id: CID 1274038
2015-03-12 15:29:59 +00:00
Vittorio Giovara
17c45d4d05 libtheora: Check frame allocation 2015-03-12 15:29:59 +00:00
Vittorio Giovara
a72d93daa0 mpegvideo_enc: Check AVCodecContext allocation 2015-03-12 15:29:59 +00:00
Michael Niedermayer
27191b82de avcodec/vp9: Fix undefined shifts in decode_frame_header()
Found-by: Clang -fsanitize=shift
Reported-by: Thierry Foucu <tfoucu@google.com>
Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-12 15:31:41 +01:00
Michael Niedermayer
b7cb8b3d43 avcodec/h264_mb: Fix undefined shifts
Found-by: Clang -fsanitize=shift
Reported-by: Thierry Foucu <tfoucu@google.com>
Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-12 15:16:46 +01:00
Rainer Hochecker
31816eae32 hevc: delay ff_thread_finish_setup for hwaccel
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-12 14:49:41 +01:00
Niels Möller
78c8922841 dca: Document the permuted order in the lfe_fir_64 and lfe_fir_128 tables 2015-03-12 13:28:42 +01:00
Michael Niedermayer
22af79a9c8 Merge commit 'b97f427fb56bdbf7de8e2d4b72d01114aa6eceda'
* commit 'b97f427fb56bdbf7de8e2d4b72d01114aa6eceda':
  lavf: Explicitly convert types at function pointer assignment

Conflicts:
	libavformat/avio.c
	libavformat/aviobuf.c
	libavformat/swfenc.c

See: a76a2ffe9d and others
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-12 12:38:20 +01:00
Michael Niedermayer
7d63f10c37 Merge commit '9c8074050745184a61059ad56045ad711299e33d'
* commit '9c8074050745184a61059ad56045ad711299e33d':
  configure: Mark qsv subsystem as not selectable on the command line

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-12 12:25:39 +01:00
Yayoi
d5232d4717 avfilter/colormatrix:add slice threading
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-12 03:45:42 +01:00
Michael Niedermayer
26d81b5703 avutil/buffer: Avoid moving the AVBufferRef to a new place in memory in av_buffer_make_writable()
This allows making a AVBufferRef writable without the need to
update all pointers to it

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-12 02:15:28 +01:00
Michael Niedermayer
35fad1e9c9 avutil/buffer: Avoid moving the AVBufferRef to a new place in memory in av_buffer_realloc()
This allows reallocating AVBufferRefs without the need to update
all pointers to it

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-12 02:15:28 +01:00
Michael Niedermayer
3bedc99723 Merge commit '67142a8c721c7916c9ad2eb439c14d567aeb88c1'
* commit '67142a8c721c7916c9ad2eb439c14d567aeb88c1':
  roqvideoenc: set enc->avctx in roq_encode_init

See: cf82c426fa
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-12 00:32:03 +01:00
Michael Niedermayer
a277c545b2 Merge commit '72211a2af0470799c9611b9c1c7039ab14a34a0a'
* commit '72211a2af0470799c9611b9c1c7039ab14a34a0a':
  asfenc: fix leaking asf->index_ptr on error

See: 2c8cff2be4
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-12 00:24:05 +01:00
Michael Niedermayer
e197dc04bb Merge commit '212556cd2144659dc6b9d121ddb38cd272bd10ae'
* commit '212556cd2144659dc6b9d121ddb38cd272bd10ae':
  qsv: Improve the log message of when initializing MFX_IMPL_HARDWARE{2, 3, 4}

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-12 00:15:58 +01:00
Diego Biurrun
b97f427fb5 lavf: Explicitly convert types at function pointer assignment
This fixes a number of "assignment from incompatible pointer type" warnings.
2015-03-11 23:53:13 +01:00
Diego Biurrun
9c80740507 configure: Mark qsv subsystem as not selectable on the command line 2015-03-11 23:40:41 +01:00
Michael Niedermayer
2ba0ef4b15 Merge commit '7a76c6c4df31d1ff65464ccf3171acd57ef004eb'
* commit '7a76c6c4df31d1ff65464ccf3171acd57ef004eb':
  configure: Enable colored output for gcc 4.9+

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-11 20:38:08 +01:00
Michael Niedermayer
693b8f11d7 Merge commit 'bacc92b59bfa5d6a1f631e63e46fc1d2fb934e51'
* commit 'bacc92b59bfa5d6a1f631e63e46fc1d2fb934e51':
  rtpdec_vp9: Drop extra sanity check for size of input packet

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-11 20:28:45 +01:00
Andreas Cadhalpun
67142a8c72 roqvideoenc: set enc->avctx in roq_encode_init
So far it is only set in roq_encode_frame, but it is used in
roq_encode_end to free the coded_frame. This currently segfaults if
roq_encode_frame is not called between roq_encode_init and
roq_encode_end.

CC:libav-stable@libav.org
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-03-11 20:28:13 +01:00
Andreas Cadhalpun
72211a2af0 asfenc: fix leaking asf->index_ptr on error
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-03-11 20:24:59 +01:00
Michael Niedermayer
2d37c57f3e Merge commit 'fe99c52fa99e44961a09cd1324aefd492b797fc8'
* commit 'fe99c52fa99e44961a09cd1324aefd492b797fc8':
  mp3: Properly use AVCodecContext API

Conflicts:
	libavformat/mp3dec.c

See: 6ad42b3e15
See: b851bc20c6
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-11 20:21:16 +01:00
Michael Niedermayer
e48ff13ba7 Merge commit '9272c965d9559a90ee64d46aebd99c117e07f7a3'
* commit '9272c965d9559a90ee64d46aebd99c117e07f7a3':
  matroskaenc: Fix type used for chapter timestamps

Conflicts:
	libavformat/matroskaenc.c

See: a4cd057bc7
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-11 20:09:18 +01:00
Michael Niedermayer
f3a35e9d59 Merge commit 'dc2d0e06af459af9a7f91b65e0a3119acc4f1baa'
* commit 'dc2d0e06af459af9a7f91b65e0a3119acc4f1baa':
  mlpdec: support TrueHD streams with an Atmos substream

See: 36bf549b27
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-11 19:59:06 +01:00
Michael Niedermayer
7cc63c4bbc Merge commit 'f36f6a608b5b2c17f8876195c61621c8f8607cee'
* commit 'f36f6a608b5b2c17f8876195c61621c8f8607cee':
  mlpdec: support major sync headers with optional extension blocks

See: ff34b2d6d3
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-11 19:51:48 +01:00
Yukinori Yamazoe
212556cd21 qsv: Improve the log message of when initializing MFX_IMPL_HARDWARE{2, 3, 4}
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-03-11 19:48:01 +01:00
Michael Niedermayer
fd4e17fcc2 avcodec/mpegvideo_motion: Fix undefined shifts in mpeg_motion_internal()
Found-by: Clang -fsanitize=shift
Reported-by: Thierry Foucu <tfoucu@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-11 19:12:38 +01:00
Vittorio Giovara
7a76c6c4df configure: Enable colored output for gcc 4.9+ 2015-03-11 18:01:36 +00:00
Vittorio Giovara
bacc92b59b rtpdec_vp9: Drop extra sanity check for size of input packet
In this case len is always at least 1, since it is checked against
RTP_VP9_DESC_REQUIRED_SIZE + 1 and then it is reduced by
RTP_VP9_DESC_REQUIRED_SIZE before entering the has_pic_id check.

Bug-Id: CID 1270811
2015-03-11 18:01:25 +00:00
Vittorio Giovara
fe99c52fa9 mp3: Properly use AVCodecContext API
Rather than having an unitialized context on the stack, allocate it with
defaults and free it when unneeded.

CC: libav-stable@libav.org
2015-03-11 17:57:56 +00:00
Michael Niedermayer
c756b3fca2 avcodec/h264dsp_template: Fix undefined shift in biweight_h264_pixels and weight_h264_pixels
Found-by: Clang -fsanitize=shift
Reported-by: Thierry Foucu <tfoucu@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-11 18:57:36 +01:00
Vittorio Giovara
9272c965d9 matroskaenc: Fix type used for chapter timestamps 2015-03-11 17:56:51 +00:00
Michael Niedermayer
2391e46430 avcodec/mpegvideo: Fix undefined shift in ff_mpv_lowest_referenced_row()
Also moves the shift out of the inner loop

Found-by: Clang -fsanitize=shift
Reported-by: Thierry Foucu <tfoucu@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-11 17:59:59 +01:00
Michael Niedermayer
9b2a964cee avcodec/vp8: Fix undefined shifts in vp8_mc_luma()
Found-by: Clang -fsanitize=shift
Reported-by: Thierry Foucu <tfoucu@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-11 16:55:07 +01:00
Michael Niedermayer
8617bc6ffa avcodec/golomb: Fix undefined shifts in unsigned rice decoding code
Found-by: Clang -fsanitize=shift
Reported-by: Thierry Foucu <tfoucu@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-11 16:47:13 +01:00
Michael Niedermayer
8c7a0932ab avcodec/amrnbde: Fix undefined shift in decode_pitch_vector()
This also simplifies the code

Found-by: Clang -fsanitize=shift
Reported-by: Thierry Foucu <tfoucu@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-11 16:29:40 +01:00
Hendrik Leppkes
dc2d0e06af 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: Anton Khirnov <anton@khirnov.net>
2015-03-11 16:06:40 +01:00
Hendrik Leppkes
f36f6a608b mlpdec: support major sync headers with optional extension blocks
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-03-11 16:03:13 +01:00
Michael Niedermayer
fa74058dd3 swscale/utils: Fix undefined shift in initFilter()
Found-by: Clang -fsanitize=shift
Reported-by: Thierry Foucu <tfoucu@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-11 15:40:28 +01:00
Michael Niedermayer
bd4c4c868c avcodec/wma: Fix undefined shift in ff_wma_run_level_decode()
Found-by: Clang -fsanitize=shift
Reported-by: Thierry Foucu <tfoucu@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-11 15:27:54 +01:00
Michael Niedermayer
e5dfa43619 avcodec/vc1_pred: Fix undefined shift in ff_vc1_pred_mv()
Found-by: Clang -fsanitize=shift
Reported-by: Thierry Foucu <tfoucu@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-11 13:16:47 +01:00
Michael Niedermayer
1932f7e2ee avcodec/mpeg12dec: Fix undefined shift
Found-by: Clang -fsanitize=shift
Reported-by: Thierry Foucu <tfoucu@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-11 04:24:57 +01:00
Christophe Gisquet
2e5605f6fa x86: Makefile: fix DBG parameter evaluation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-11 01:54:07 +01:00
Florian Jacob
c5c4ca6bc8 lavf/libssh: support reading config from ~/.ssh/config
libssh provides a function for parsing ~/.ssh/config for ssh connection parameters like user, hostname, identity file
and port. This patch makes ffmpeg use this function to take parameters from the config file for everything that's not
explicitely set in the url. It also supports host aliases, i.e. using a shorthand in the url and replacing it with the
hostname / IP address specified for the shorthand in the config file.

Signed-off-by: Florian Jacob <projects+ffmpeg@florianjacob.de>
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2015-03-11 01:34:37 +01:00
Michael Niedermayer
48df30d36c avcodec/012v: redesign main loop
Fixes out of array accesses
Fixes: ffmpeg_012v_crash.ts

Found-by: Thomas Lindroth <thomas.lindroth@gmail.com>
Reviewed-by: Thomas Lindroth <thomas.lindroth@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-10 23:33:57 +01:00
Carl Eugen Hoyos
0637b59c2c lavfi/boxblur: Fix colourpsace list.
Fixes ticket #4363.
2015-03-10 22:55:30 +01:00
Michael Niedermayer
eb7960b2bd avcodec/h264: Fix undefined shifts in pack16to32() and pack8to16()
Reported-by: Thierry Foucu <tfoucu@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-10 21:25:39 +01:00
Michael Niedermayer
111456682f avcodec/mpegvideo: Fix undefined shifts in ff_init_block_index()
Reported-by: Thierry Foucu <tfoucu@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-10 21:25:33 +01:00
Michael Niedermayer
d3b25383da avcodec/012v: Check dimensions more completely
Fixes division by 0

Found-by: Thomas Lindroth <thomas.lindroth@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-10 20:21:14 +01:00
Ole Andre Birkedal
c8372f8001 avfilter/aeval: Fixed a memory leak in EvalContext::channel_values
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-10 14:40:08 +01:00
Carl Eugen Hoyos
dcddca934c Force -D__EXTENSIONS__ on Solaris.
This fixes compilation of libavformat/udp.o on some installations,
regression since 3a5cbc91
Reported by Cristian Dustinta for SunOS 5.10
2015-03-10 13:36:49 +01:00
Carl Eugen Hoyos
1d523ea89a lavc/hevcdsp: Fix compilation for arm with --disable-neon. 2015-03-10 12:14:16 +01:00
Carl Eugen Hoyos
88bf16895a lavd/avfoundation: Silence warnings when compiling for iOS.
Reviewed-by: Thilo Borgmann
2015-03-10 12:11:15 +01:00
Carl Eugen Hoyos
87b3c6e28b lavd/avfoundation: Silence c99 warnings when using gcc.
Reviewed-by: Thilo Borgmann
2015-03-10 12:11:15 +01:00
Carl Eugen Hoyos
732f46a675 lavd/qtkit: Silence deprecation warnings when using clang.
Reviewed-by: Thilo Borgmann
2015-03-10 12:11:15 +01:00
Michael Niedermayer
f8f324cc16 Merge commit '448c8cfe4c53e9e806effd8505b46d57fa707061'
* commit '448c8cfe4c53e9e806effd8505b46d57fa707061':
  movenc: Support setting fragment_index before the moov atom is written

Conflicts:
	libavformat/movenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-10 11:42:44 +01:00
Michael Niedermayer
8d026861f5 Merge commit '0c5e380c2c266d2e8a13c000cc527529db837f10'
* commit '0c5e380c2c266d2e8a13c000cc527529db837f10':
  movenc: Don't rely on the fragment index for vc1 info gathering

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-10 11:28:24 +01:00
Michael Niedermayer
ebdae73125 Merge commit 'cf402d6fa88acd647cdff993429583bec8a34fdc'
* commit 'cf402d6fa88acd647cdff993429583bec8a34fdc':
  rtpenc_mpegts: Set chain->rtp_ctx only after avformat_write_header succeeded

Reviewed-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-10 11:17:37 +01:00
Michael Niedermayer
967afad03b Merge commit 'c83dd2d2a458075a58895c384372f57c1ec26276'
* commit 'c83dd2d2a458075a58895c384372f57c1ec26276':
  rtpenc_mpegts: Free the right ->pb in the error path in the init function

Reviewed-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-10 11:08:53 +01:00
Michael Niedermayer
14ab6f9a26 Merge commit '96a06dbaf278e8152487e08772946f63bd2a3843'
* commit '96a06dbaf278e8152487e08772946f63bd2a3843':
  FATE: add support for testing hwaccels

Conflicts:
	tests/Makefile
	tests/fate-run.sh

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-10 10:58:44 +01:00
Michael Niedermayer
f063a0b33d Merge commit 'dc7536ca3d2dbe47f40cc0fcd0fc2555a84d5f56'
* commit 'dc7536ca3d2dbe47f40cc0fcd0fc2555a84d5f56':
  avconv: do not abort immediately if initializing hwaccel fails

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-10 10:49:48 +01:00
Martin Storsjö
448c8cfe4c movenc: Support setting fragment_index before the moov atom is written
This way, the caller doesn't need to coordinate setting the option
after the moov atom has been written. The downside is that it is
no longer possible to use the option for checking whether the moov
atom already has been written, but a caller is able to keep track
of that by other means anyway.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-10 10:41:06 +02:00
Martin Storsjö
0c5e380c2c movenc: Don't rely on the fragment index for vc1 info gathering
The previous use of the mov->fragments field, for determining whether
written packets were part of the first fragment or not, didn't
work as intended when using the empty_moov flag.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-10 10:41:03 +02:00
Martin Storsjö
cf402d6fa8 rtpenc_mpegts: Set chain->rtp_ctx only after avformat_write_header succeeded
By making sure we at each time only have one pointer set, either a
local variable or one in the context, we avoid potential double frees
in the cleanup routines. If chain->rtp_ctx is set, it is closed by
calling avformat_write_trailer, but that shouldn't be called unless
avformat_write_header succeeded.

This issue was pointed out by Andreas Cadhalpun.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-10 09:58:41 +02:00
Martin Storsjö
c83dd2d2a4 rtpenc_mpegts: Free the right ->pb in the error path in the init function
This fixes a typo from 8e32b1f096.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-10 09:58:37 +02:00
Anton Khirnov
96a06dbaf2 FATE: add support for testing hwaccels 2015-03-10 07:40:11 +01:00
Anton Khirnov
dc7536ca3d avconv: do not abort immediately if initializing hwaccel fails
exit_program() will try to free the decoders, which is not a good idea
from within get_format().
Return an error instead.
2015-03-10 07:40:11 +01:00
Michael Niedermayer
3170b33e57 avfilter/vf_fftfilt: increase RDFT length by 10%
This fixes artifacts when the dimensions are exact powers of 2

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-10 03:32:38 +01:00
Mark Reid
399e31419a libavformat/mxfenc: write package name metadata
Previous-version-reviewed-by: Tomas Härdin <tomas.hardin@codemill.se>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-10 01:00:38 +01:00
Andreas Cadhalpun
2c8cff2be4 asfenc: fix leaking asf->index_ptr on error
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-09 21:58:38 +01:00
Andreas Cadhalpun
cf82c426fa roqvideoenc: set enc->avctx in roq_encode_init
So far it is only set in roq_encode_frame, but it is used in
roq_encode_end to free the coded_frame. This currently segfaults if
roq_encode_frame is not called between roq_encode_init and
roq_encode_end.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-09 21:44:30 +01:00
Michael Niedermayer
cf714205bd avcodec/libvpxenc: Clear twopass_stats.sz on deallocation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-09 21:18:43 +01:00
Michael Niedermayer
a11440c185 Merge commit '93f7948136fcda8ddbbc44a6c24418f11ca829b8'
* commit '93f7948136fcda8ddbbc44a6c24418f11ca829b8':
  libvpx: Fix mixed use of av_malloc() and av_reallocp()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-09 21:18:36 +01:00
Michael Niedermayer
e71dce5769 avformat/siff: Fix checks and variable types
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-09 21:05:29 +01:00
Michael Niedermayer
8f92c0898d Merge commit 'ad94c6ca0b86c463f476b26606259a2041dcddc9'
* commit 'ad94c6ca0b86c463f476b26606259a2041dcddc9':
  siff: Use the correct type for packet size variables

Conflicts:
	libavformat/siff.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-09 21:00:33 +01:00
Michael Niedermayer
2e8020c66c Merge commit '9f25a109922da43c1f81273a431d3b40cb5a785a'
* commit '9f25a109922da43c1f81273a431d3b40cb5a785a':
  matroskaenc: Also validate chapter end time

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-09 20:31:22 +01:00
Michael Niedermayer
d898482ae3 Merge commit 'bfeb83a8b7d3fcf09a54d8dbc9c521e10bb17530'
* commit 'bfeb83a8b7d3fcf09a54d8dbc9c521e10bb17530':
  rtpdec_hevc: Drop extra sanity check for size of input packet

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-09 20:00:11 +01:00
zhaoxiu.zeng
b3a56e60be avcodec/hevc_parser: use avpriv_find_start_code in hevc_split()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-09 18:19:10 +01:00
Michael Niedermayer
1f4088b285 avcodec/options_table: remove extradata_size from the AVOptions table
allowing access to the size but not the extradata itself is not useful
and could lead to potential problems if writing happens through this field

Reviewed-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Reviewed-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-09 17:43:25 +01:00
Claudio Freire
374ec68139 tests/fate-run: Print more details on failure of stddev / filesize compares
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-09 17:06:07 +01:00
Andreas Cadhalpun
6b8263b03a ffmdec: limit the backward seek to the last resync position
If resyncing leads to the same position as previously, it will again
lead to a resync attempt, resulting in an infinite loop.

Thus don't seek back beyond the last syncpoint.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-09 15:19:34 +01:00
Arwa Arif
b4ec6afd3d Add dependencies to configure file for vf_fftfilt
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-09 14:32:12 +01:00
Vittorio Giovara
93f7948136 libvpx: Fix mixed use of av_malloc() and av_reallocp()
This buffer is resized when vpx_codec_get_cx_data() returns a
VPX_CODEC_STATS_PKT packet.

CC: libav-stable@libav.org
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-03-09 12:58:18 +00:00
Vittorio Giovara
ad94c6ca0b siff: Use the correct type for packet size variables
The avio functions used here return an unsigned value.
Also reduce a variable scope.

CC: libav-stable@libav.org
Bug-Id: CID 1258461
2015-03-09 12:58:17 +00:00
Vittorio Giovara
9f25a10992 matroskaenc: Also validate chapter end time
This prevents it to be written as unsigned. Also add an error message.

CC: libav-stable@libav.org
Bug-Id: CID 1265717
2015-03-09 12:57:19 +00:00
Vittorio Giovara
bfeb83a8b7 rtpdec_hevc: Drop extra sanity check for size of input packet
In this case len is always at least 3, since it is checked against
RTP_HEVC_PAYLOAD_HEADER_SIZE + 1 before entering the switch block.

Bug-Id: CID 1238784
2015-03-09 12:57:01 +00:00
Andreas Cadhalpun
4c91d81be2 ffmdec: make sure the time base is valid
A negative time base can trigger assertions.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-09 13:40:20 +01:00
Michael Niedermayer
ba0198a767 Merge commit '46d4d8575979a24a8d026d9805039b724e0e3e5f'
* commit '46d4d8575979a24a8d026d9805039b724e0e3e5f':
  movenc: Avoid writing separate flags for the first sample if not necessary

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-09 11:27:29 +01:00
Michael Niedermayer
e8821e74bb Merge commit '00d751d4fc20ec88d2cc2c9f39ec8b9e9c8cdeba'
* commit '00d751d4fc20ec88d2cc2c9f39ec8b9e9c8cdeba':
  movenc: Set tfhd default sample flags based on actual samples, if possible

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-09 11:15:12 +01:00
Carl Eugen Hoyos
6453fddb58 doc: Clarify documentation for fade duration. 2015-03-09 10:57:58 +01:00
Carl Eugen Hoyos
4a94f7b22f doc: Improve video creation examples (from image2).
The examples used to drop frames in most cases which
was probably not what users expected.
2015-03-09 10:49:59 +01:00
Carl Eugen Hoyos
b69238d9ba Fix the intra_dc_precision API doc.
The mpegvideo decoder has set intra_dc_precision since forever.
2015-03-09 10:47:06 +01:00
Carl Eugen Hoyos
bf4bd427dd lavc/ffv1enc: Auto-select -coder 1 for >8bit also for yuv.
Reported-by: Christoph Gerstbauer
2015-03-09 10:40:16 +01:00
Martin Storsjö
46d4d85759 movenc: Avoid writing separate flags for the first sample if not necessary
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-09 10:36:12 +02:00
Martin Storsjö
00d751d4fc movenc: Set tfhd default sample flags based on actual samples, if possible
This avoids assuming that e.g. audio samples are marked as
sync samples.

This allows omitting the sample flags from trun, if the default
flags happen to be right for all the samples.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-09 10:36:02 +02:00
Andreas Cadhalpun
6fa98822eb ffmdec: fix infinite loop at EOF
If EOF is reached, while skipping bytes, avio_tell(pb) won't change
anymore, resulting in an infinite loop.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-09 03:14:16 +01:00
Andreas Cadhalpun
66879ee125 ffmdec: initialize f_cprv, f_stvi and f_stau
They are used in a switch statement, but it is not guaranteed that the
COMM case (where they are set to 0) is reached before the other cases.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-09 02:19:03 +01:00
Michael Niedermayer
b023230170 Merge commit '0ce3a0f9d9523a9bcad4c6d451ca5bbd7a4f420d'
* commit '0ce3a0f9d9523a9bcad4c6d451ca5bbd7a4f420d':
  utvideodec: Handle slice_height being zero

See: 3881606240
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-09 02:04:13 +01:00
Michael Niedermayer
0ce3a0f9d9 utvideodec: Handle slice_height being zero
Fixes out of array accesses.

CC: libav-stable@libav.org
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Bug-Id: CVE-2014-9604
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-03-09 00:51:15 +01:00
Michael Niedermayer
fa14685a57 Merge commit '7b9cb7b36543c2a0e46d99b0e41824b9e7dd0c8f'
* commit '7b9cb7b36543c2a0e46d99b0e41824b9e7dd0c8f':
  avprobe: Export coded_{width,height} in -show_streams

Conflicts:
	avprobe.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-08 23:58:18 +01:00
Michael Niedermayer
d5e9fc7821 avcodec/tiff: move bpp check to after "end:"
This ensures that all current and future code-pathes get bpp checked

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-08 23:36:46 +01:00
Michael Niedermayer
9889762a9b Merge commit 'ae5e1f3d663a8c9a532d89e588cbc61f171c9186'
* commit 'ae5e1f3d663a8c9a532d89e588cbc61f171c9186':
  tiff: Check that there is no aliasing in pixel format selection

See: e1c0cfaa41
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-08 23:19:30 +01:00
James Almer
1b47760bbe RELEASE: update to 2.6.git
Signed-off-by: James Almer <jamrial@gmail.com>
2015-03-08 18:59:57 -03:00
Reynaldo H. Verdejo Pinochet
e10b2a4dc0 ffserver: remove stale debug stanza
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-03-08 18:24:56 -03:00
Reynaldo H. Verdejo Pinochet
0002a22e0e ffserver: move assignment outside condition eval
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-03-08 18:24:56 -03:00
Reynaldo H. Verdejo Pinochet
923a244569 ffserver: break some too long lines
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-03-08 18:24:56 -03:00
Andreas Cadhalpun
10fd7ff814 doc: avoid the incorrect phrase 'allow to'
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-08 21:59:28 +01:00
Vittorio Giovara
7b9cb7b365 avprobe: Export coded_{width,height} in -show_streams 2015-03-08 20:41:50 +00:00
Michael Niedermayer
fa7084a065 avfilter/vf_edgedetect: Change enums to int, which are accessed via AVOption as int
This fixes depending on implementation defined behavior

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-08 21:10:31 +01:00
Michael Niedermayer
08880c1f71 avfilter/vf_curves: Change enums to int, which are accessed via AVOption as int
This fixes depending on implementation defined behavior

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-08 21:10:31 +01:00
Michael Niedermayer
ee7b5d4ef8 avfilter/vf_drawtext: Change enums to int, which are accessed via AVOption as int
This fixes depending on implementation defined behavior
2015-03-08 21:10:31 +01:00
James Almer
0d1acb944c fate: add test for vp90-2-trac4359.webm
Regression test for the bug from trac ticket #4359 fixed in commit efff3854

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-03-08 17:03:42 -03:00
Michael Niedermayer
fd503e96ef Merge commit '6448f15af02f2c3cf0df8cb8237957e426041f2d'
* commit '6448f15af02f2c3cf0df8cb8237957e426041f2d':
  mxfdec: Fix the error handling for when strftime fails

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-08 19:59:30 +01:00
Michael Niedermayer
3360c6ac0c Merge commit '5f5b78aca35d07c771f5c4c73a984be9fe04a0b8'
* commit '5f5b78aca35d07c771f5c4c73a984be9fe04a0b8':
  xcbgrab: Free the host string after checking the connection

Conflicts:
	libavdevice/xcbgrab.c

No change as the bug was not in FFmpeg

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-08 19:44:09 +01:00
Michael Niedermayer
acfb54c076 Merge commit '0025f7408a0fab2cab4a950064e4784a67463994'
* commit '0025f7408a0fab2cab4a950064e4784a67463994':
  vorbis: Check the vlc value in setup_classifs

Conflicts:
	libavcodec/vorbisdec.c

See: ae038c0914
See: 709cae2bcb
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-08 19:31:25 +01:00
Anton Khirnov
ae5e1f3d66 tiff: Check that there is no aliasing in pixel format selection
Fixes possible issues with unexpected bpp/bppcount values.

CC: libav-stable@libav.org
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Bug-Id: CVE-2014-8544
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-03-08 19:14:14 +01:00
Michael Niedermayer
10e3e3aa85 Merge commit '62de77ffcaebd42fe685b8426da56b89b2532318'
* commit '62de77ffcaebd42fe685b8426da56b89b2532318':
  vorbis: Use a local codebook variable

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-08 18:59:06 +01:00
Martin Storsjö
6448f15af0 mxfdec: Fix the error handling for when strftime fails
The str variable is a char ** here.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-08 18:40:43 +02:00
Michael Niedermayer
8fabbd0dcf doc/filters: Add some random examples for fftfilt
Reviewed-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-08 15:02:49 +01:00
Ronald S. Bultje
0b69c53a61 vp9: included uses_2pass member in vp9_ref_frame().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-08 14:50:11 +01:00
Luca Barbato
5f5b78aca3 xcbgrab: Free the host string after checking the connection
Prevent an use after free in the error message.

Bug-Id: CID 1274040
CC: libav-stable@libav.org
2015-03-08 14:39:01 +01:00
Luca Barbato
0025f7408a vorbis: Check the vlc value in setup_classifs
The valid returned values are always at most 11bit.
Remove the previous check that assumed larger values plausible and
use a signed integer to check get_vlc2 return values.

CC: libav-stable@libav.org
2015-03-08 14:33:03 +01:00
Luca Barbato
62de77ffca vorbis: Use a local codebook variable
Makes the code a little simpler.
2015-03-08 14:33:02 +01:00
Ronald S. Bultje
4ba8f3273e vp9: split segmentation map / mvpair references.
This prevents a memcpy if segmentation.update_map == false.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-08 13:58:14 +01:00
Paul B Mahol
0c49cff117 avfilter/af_astats: redo zero channel handling
Suggested-by: Nicolas George
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-03-08 11:06:45 +00:00
Michael Niedermayer
fc9b407487 Merge commit '0f9f7969ef4df3661131cede3e8cc770e1ea3db8'
* commit '0f9f7969ef4df3661131cede3e8cc770e1ea3db8':
  rmdec: Improve message for demux error

See: 3880b4541a
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-08 11:40:00 +01:00
Martin Vignali
65ba90eac6 avfilter/af_astats: Avoid Zero division in print part. 2015-03-08 08:47:27 +00:00
Carl Eugen Hoyos
0f9f7969ef rmdec: Improve message for demux error
Use correct context, reduce log level, don't assume it is a video stream,
and print the tag of the unknown stream.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-03-08 02:35:04 +00:00
zhaoxiu.zeng
9d7e42e65c avcodec/vc1_mc: optimize get_chroma_mv, and add get_luma_mv
Test results:

before:
  fate-suite/vc1/SA10091.vc1: 1062 decicycles in ff_vc1_mc_4mv_chroma's get mv, 4089 runs, 7 skips
  fate-suite/vc1/SA10143.vc1: 1112 decicycles in ff_vc1_mc_4mv_luma's get mv, 4096 runs, 0 skips
  fate-suite/vc1/SA20021.vc1: 991 decicycles in ff_vc1_mc_4mv_chroma get mv, 8192 runs, 0 skips

after:
  fate-suite/vc1/SA10091.vc1: 940 decicycles in ff_vc1_mc_4mv_chroma's get mv, 4096 runs, 0 skips
  fate-suite/vc1/SA10143.vc1: 786 decicycles in ff_vc1_mc_4mv_luma's get mv, 4096 runs, 0 skips
  fate-suite/vc1/SA20021.vc1: 876 decicycles in ff_vc1_mc_4mv_chroma get mv, 8189 runs, 3 skips

Signed-off-by: Zeng Zhaoxiu <zhaoxiu.zeng@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-08 03:04:32 +01:00
Michael Niedermayer
8849c4ceac avcodec/mpegvideo_motion: Fix off by 1 error in MV bounds checking in qpel, chroma_4mv and 8x8
No testcase available

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-08 01:46:50 +01:00
Michael Niedermayer
9f0eaf792a avcodec/mpegvideo_motion: Fix off by 1 error in MV bounds checking
Fixes Ticket4299

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-08 01:27:56 +01:00
Michael Niedermayer
6c583e9048 avcodec/opusdec: Fix delayed sample value
Fixes out of array access
Fixes: ffmpeg_opus_crash1.ogg

This solution is likely not optimal in terms of error concealment but
its simple and fixes the out of array access.

Found-by: Thomas Lindroth <thomas.lindroth@gmail.com>
Tested-by: Thomas Lindroth <thomas.lindroth@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-07 21:39:23 +01:00
Michael Niedermayer
1ae092587f avcodec/opusdec: Clear out pointers per packet
This is safer than to assume that all error pathes cleared them and
nothing will use uncleared pointers.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-07 21:39:20 +01:00
Michael Niedermayer
e3201c38d5 avcodec/utils: Align YUV411 by as much as the other YUV variants
Fixes out of array accesses
Fixes: ffmpeg_mjpeg_crash2.avi

Found-by: Thomas Lindroth <thomas.lindroth@gmail.com>
Tested-by: Thomas Lindroth <thomas.lindroth@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-07 21:39:09 +01:00
zhaoxiu.zeng
9870c03615 avcodec/vc1_mc: change the type of s_rndtblfield to uint8_t
Signed-off-by: Zeng Zhaoxiu <zhaoxiu.zeng@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-07 21:35:14 +01:00
zhaoxiu.zeng
468defc57b avcodec/vc1_mc: Simplify v_edge_pos and src_y correction when fieldmv is true
Signed-off-by: Zeng Zhaoxiu <zhaoxiu.zeng@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-07 21:06:21 +01:00
Zeng Zhaoxiu
02fc168c93 avcodec/golomb: cleanup
Signed-off-by: Zeng Zhaoxiu <zhaoxiu.zeng@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-07 20:18:32 +01:00
Xiangyu Liu
b1e9634c10 ChangeLog: Remove the redundant VP9 RTP entry
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-07 20:14:39 +01:00
Michael Niedermayer
a75353e73b Merge commit 'b77e335e441040a40fc6156b8e4a134745d10233'
* commit 'b77e335e441040a40fc6156b8e4a134745d10233':
  configure: Move the .object_arch check to the right place

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-07 19:41:00 +01:00
Michael Niedermayer
9a1884a10e Merge commit 'dcae2e32f7d8a1ca5fb8c1e4aa81313be854dd73'
* commit 'dcae2e32f7d8a1ca5fb8c1e4aa81313be854dd73':
  arm: Suppress tags about used cpu arch and extensions

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-07 19:30:51 +01:00
Martin Storsjö
b77e335e44 configure: Move the .object_arch check to the right place
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-07 18:12:58 +02:00
Zeng Zhaoxiu
1be6054261 avcodec/vc1_mc: remove useless variables
Signed-off-by: Zeng Zhaoxiu <zhaoxiu.zeng@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-07 16:25:29 +01:00
Martin Storsjö
dcae2e32f7 arm: Suppress tags about used cpu arch and extensions
When all the codepaths using manually set .arch/.fpu code is
behind runtime detection, the elf attributes should be suppressed.

This allows tools to know that the final built binary doesn't
strictly require these extensions.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-07 17:10:08 +02:00
Arwa Arif
48b5be65ae avfilter: Add FFT domain filter.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-07 13:07:10 +01:00
James Cowgill
3499a1c0a9 mips/asmdefs: change include guard to read AVUTIL_ instead of AVCODEC_
Signed-off-by: James Cowgill <james410@cowgill.org.uk>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-07 11:28:03 +01:00
Michael Niedermayer
ebd59d271c Revert "avutil/opencl: is_compiled flag not being cleared in av_opencl_uninit"
Fixed build with opencl enabled
Found-by:  WJ Liu

This reverts commit 0f2359b869.
2015-03-07 09:59:27 +01:00
Ronald S. Bultje
efff3854f0 vp9: fix segmentation map retention with threading enabled.
Fixes ticket 4359.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-07 03:30:37 +01:00
Michael Niedermayer
6f51cb514b avfilter/vf_colormatrix: Change enums to int, which are accessed via AVOption as int
This fixes depending on implementation defined behavior

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-07 02:51:02 +01:00
Michael Niedermayer
b0662a943c avfilter/f_perms: Change enums to int, which are accessed via AVOption as int
This fixes depending on implementation defined behavior

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-07 02:45:49 +01:00
Michael Niedermayer
2a34b5099b avfilter/avf_showwaves: Change enums to int, which are accessed via AVOption as int
This fixes depending on implementation defined behavior

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-07 02:44:04 +01:00
Michael Niedermayer
665d47f435 Merge commit 'cecf45b2bfbb85e9e59f355428fbd4d8cbc652a8'
* commit 'cecf45b2bfbb85e9e59f355428fbd4d8cbc652a8':
  doc: Add -list_formats all example for video4linux2

Conflicts:
	doc/indevs.texi

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-07 01:16:17 +01:00
Jonas Lindgren
cecf45b2bf doc: Add -list_formats all example for video4linux2
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-03-06 23:06:20 +01:00
Peter Tissen
79f83523f7 configure: Make compilable with VS2015 (missing hunk)
This hunk was missing in the github pull request when i downloaded it,
but is needed

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-06 22:45:56 +01:00
Peter Tissen
42493843dc configure: Make compilable with VS2015
So Visual Studio 2015 has some breaking changes regarding the C
runtime. In short, they made C99 compatable runtime.
Refer to http://blogs.msdn.com/b/vcblog/archive/2014/06/18/crt-features-fixes-and-breaking-changes-in-visual-studio-14-ctp1.aspx

Made-Seriously-Happy: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-06 21:49:00 +01:00
Andreas Cadhalpun
482c86f231 fix spelling errors
opttimizations -> optimizations
 grabing        -> grabbing
 many resource  -> many resources
 isnt           -> isn't
 silcense       -> silence

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-06 21:35:00 +01:00
Michael Niedermayer
1468ff49df Merge commit '9731cf4001377fa2f75c279072cc2b0cbd57bf8e'
* commit '9731cf4001377fa2f75c279072cc2b0cbd57bf8e':
  movenc: Keep writing zero-entry stts atoms as intended

Conflicts:
	libavformat/movenc.c

See: 95165f7c1b
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-06 20:57:11 +01:00
Clément Bœsch
70082a1e53 avcodec/samidec: make sure to properly restore parsing context after a tag 2015-03-06 20:39:45 +01:00
Michael Niedermayer
b4d89139fb Changelog: Add back "version next"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-06 19:34:05 +01:00
Michael Niedermayer
0bcb6ac150 Add 2.6 to maintained releases
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-06 17:42:36 +01:00
Martin Storsjö
9731cf4001 movenc: Keep writing zero-entry stts atoms as intended
a876585215 had the unintended side effect of returning AVERROR(ENOMEM)
when track->entry is zero, while the code intentionally wants to
continue in that case.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-06 16:17:48 +02:00
1447 changed files with 80279 additions and 18649 deletions

1
.gitignore vendored
View File

@@ -36,6 +36,7 @@
/doc/avoptions_codec.texi
/doc/avoptions_format.texi
/doc/doxy/html/
/doc/examples/avio_list_dir
/doc/examples/avio_reading
/doc/examples/decoding_encoding
/doc/examples/demuxing_decoding

382
Changelog
View File

@@ -1,30 +1,362 @@
Entries are sorted chronologically from oldest to youngest within each release,
releases are sorted from youngest to oldest.
version 2.6.1:
- avformat/mov: Disallow ".." in dref unless use_absolute_path is set
- avfilter/palettegen: make sure at least one frame was sent to the filter
- avformat/mov: Check for string truncation in mov_open_dref()
- ac3_fixed: fix out-of-bound read
- mips/asmdefs: use _ABI64 as defined by gcc
- hevc: delay ff_thread_finish_setup for hwaccel
- avcodec/012v: Check dimensions more completely
- asfenc: fix leaking asf->index_ptr on error
- roqvideoenc: set enc->avctx in roq_encode_init
- avcodec/options_table: remove extradata_size from the AVOptions table
- ffmdec: limit the backward seek to the last resync position
- Add dependencies to configure file for vf_fftfilt
- ffmdec: make sure the time base is valid
- ffmdec: fix infinite loop at EOF
- ffmdec: initialize f_cprv, f_stvi and f_stau
- arm: Suppress tags about used cpu arch and extensions
- mxfdec: Fix the error handling for when strftime fails
- avcodec/opusdec: Fix delayed sample value
- avcodec/opusdec: Clear out pointers per packet
- avcodec/utils: Align YUV411 by as much as the other YUV variants
- lavc/hevcdsp: Fix compilation for arm with --disable-neon.
- vp9: fix segmentation map retention with threading enabled.
- Revert "avutil/opencl: is_compiled flag not being cleared in av_opencl_uninit"
version 2.7.6
- avcodec/jpeg2000dec: More completely check cdef
- avutil/opt: check for and handle errors in av_opt_set_dict2()
- avcodec/flacenc: fix calculation of bits required in case of custom sample rate
- avformat: Document urls a bit
- avformat/libquvi: Set default demuxer and protocol limitations
- avformat/concat: Check protocol prefix
- doc/demuxers: Document enable_drefs and use_absolute_path
- avcodec/mjpegdec: Check for end for both bytes in unescaping
- avcodec/mpegvideo_enc: Check for integer overflow in ff_mpv_reallocate_putbitbuffer()
- avformat/avformat: Replace some references to filenames by urls
- avcodec/wmaenc: Check ff_wma_init() for failure
- avcodec/mpeg12enc: Move high resolution thread check to before initializing threads
- avformat/img2dec: Use AVOpenCallback
- avformat/avio: Limit url option parsing to the documented cases
- avformat/img2dec: do not interpret the filename by default if a IO context has been opened
- avcodec/ass_split: Fix null pointer dereference in ff_ass_style_get()
- mov: Add an option to toggle dref opening
- avcodec/gif: Fix lzw buffer size
- avcodec/put_bits: Assert buf_ptr in flush_put_bits()
- avcodec/tiff: Check subsample & rps values more completely
- swscale/swscale: Add some sanity checks for srcSlice* parameters
- swscale/x86/rgb2rgb_template: Fix planar2x() for short width
- swscale/swscale_unscaled: Fix odd height inputs for bayer_to_yv12_wrapper()
- swscale/swscale_unscaled: Fix odd height inputs for bayer_to_rgb24_wrapper()
- avcodec/aacenc: Check both channels for finiteness
- swscale/swscale-test: Fix slice height in random reference data creation.
- dca: fix misaligned access in avpriv_dca_convert_bitstream
- brstm: fix missing closing brace
- brstm: also allocate b->table in read_packet
- brstm: make sure an ADPC chunk was read for adpcm_thp
- vorbisdec: reject rangebits 0 with non-0 partitions
- vorbisdec: reject channel mapping with less than two channels
- ffmdec: reset packet_end in case of failure
- avformat/ipmovie: put video decoding_map_size into packet and use it in decoder
version 2.7.5
- configure: bump copyright year to 2016
- avformat/hls: Even stricter URL checks
- avformat/hls: More strict url checks
- swscale/utils: Detect and skip unneeded sws_setColorspaceDetails() calls
- swscale/yuv2rgb: Increase YUV2RGB table headroom
- swscale/yuv2rgb: Factor YUVRGB_TABLE_LUMA_HEADROOM out
- avformat/hls: forbid all protocols except http(s) & file
- avformat/aviobuf: Fix end check in put_str16()
- avformat/asfenc: Check pts
- avcodec/mpeg4video: Check time_incr
- avcodec/wavpackenc: Check the number of channels
- avcodec/wavpackenc: Headers are per channel
- avcodec/aacdec_template: Check id_map
- avcodec/dvdec: Fix "left shift of negative value -254"
- avcodec/mjpegdec: Fix negative shift
- avcodec/mss2: Check for repeat overflow
- avformat: Add integer fps from 31 to 60 to get_std_framerate()
- avcodec/mpegvideo_enc: Clip bits_per_raw_sample within valid range
- avfilter/vf_scale: set proper out frame color range
- avcodec/motion_est: Fix mv_penalty table size
- avcodec/h264_slice: Fix integer overflow in implicit weight computation
- swscale/utils: Use normal bilinear scaler if fast cannot be used due to tiny dimensions
- avcodec/put_bits: Always check buffer end before writing
- mjpegdec: extend check for incompatible values of s->rgb and s->ls
- swscale/utils: Fix intermediate format for cascaded alpha downscaling
- x86/float_dsp: zero extend offset from ff_scalarproduct_float_sse
- avfilter/vf_zoompan: do not free frame we pushed to lavfi
version 2.7.4
- nuv: sanitize negative fps rate
- rawdec: only exempt BIT0 with need_copy from buffer sanity check
- mlvdec: check that index_entries exist
- nutdec: reject negative value_len in read_sm_data
- xwddec: prevent overflow of lsize * avctx->height
- nutdec: only copy the header if it exists
- exr: fix out of bounds read in get_code
- on2avc: limit number of bits to 30 in get_egolomb
- avcodec/mpeg4videodec: also for empty partitioned slices
- avcodec/h264_refs: Fix long_idx check
- avcodec/h264_mc_template: prefetch list1 only if it is used in the MB
- avcodec/h264_slice: Simplify ref2frm indexing
- Revert "avcodec/aarch64/neon.S: Update neon.s for transpose_4x4H"
- avfilter/vf_mpdecimate: Add missing emms_c()
- sonic: make sure num_taps * channels is not larger than frame_size
- opus_silk: fix typo causing overflow in silk_stabilize_lsf
- ffm: reject invalid codec_id and codec_type
- golomb: always check for invalid UE golomb codes in get_ue_golomb
- aaccoder: prevent crash of anmr coder
- ffmdec: reject zero-sized chunks
- swscale/x86/rgb2rgb_template: Fallback to mmx in interleaveBytes() if the alignment is insufficient for SSE*
- swscale/x86/rgb2rgb_template: Do not crash on misaligend stride
- avformat/mxfenc: Do not crash if there is no packet in the first stream
- avcodec/aarch64/neon.S: Update neon.s for transpose_4x4H
- avformat/utils: estimate_timings_from_pts - increase retry counter, fixes invalid duration for ts files with hevc codec
- avformat/matroskaenc: Check codecdelay before use
- avutil/mathematics: Fix division by 0
- mjpegdec: consider chroma subsampling in size check
- avcodec/hevc: Check max ctb addresses for WPP
- avcodec/vp3: ensure header is parsed successfully before tables
- avcodec/jpeg2000dec: Check bpno in decode_cblk()
- avcodec/pgssubdec: Fix left shift of 255 by 24 places cannot be represented in type int
- swscale/utils: Fix for runtime error: left shift of negative value -1
- avcodec/hevc: Fix integer overflow of entry_point_offset
- avcodec/dirac_parser: Check that there is a previous PU before accessing it
- avcodec/dirac_parser: Add basic validity checks for next_pu_offset and prev_pu_offset
- avcodec/dirac_parser: Fix potential overflows in pointer checks
- avcodec/wmaprodec: Check bits per sample to be within the range not causing integer overflows
- avcodec/wmaprodec: Fix overflow of cutoff
- avformat/smacker: fix integer overflow with pts_inc
- avcodec/vp3: Fix "runtime error: left shift of negative value"
- mpegencts: Fix overflow in cbr mode period calculations
- avutil/timecode: Fix fps check
- avutil/mathematics: return INT64_MIN (=AV_NOPTS_VALUE) from av_rescale_rnd() for overflows
- avcodec/apedec: Check length in long_filter_high_3800()
- avcodec/vp3: always set pix_fmt in theora_decode_header()
- avcodec/mpeg4videodec: Check available data before reading custom matrix
- avutil/mathematics: Do not treat INT64_MIN as positive in av_rescale_rnd
- avutil/integer: Fix av_mod_i() with negative dividend
- avformat/dump: Fix integer overflow in av_dump_format()
- avcodec/h264_refs: Check that long references match before use
- avcodec/utils: Clear dimensions in ff_get_buffer() on failure
- avcodec/utils: Use 64bit for aspect ratio calculation in avcodec_string()
- avcodec/vp3: Clear context on reinitialization failure
- avcodec/hevc: allocate entries unconditionally
- avcodec/hevc_cabac: Fix multiple integer overflows
- avcodec/jpeg2000dwt: Check ndeclevels before calling dwt_encode*()
- avcodec/jpeg2000dwt: Check ndeclevels before calling dwt_decode*()
- avcodec/hevc: Check entry_point_offsets
- avcodec/cabac: Check initial cabac decoder state
- avcodec/cabac_functions: Fix "left shift of negative value -31767"
- avcodec/h264_slice: Limit max_contexts when slice_context_count is initialized
- avcodec/vp8: Do not use num_coeff_partitions in thread/buffer setup
- avcodec/ffv1dec: Clear quant_table_count if its invalid
- avcodec/ffv1dec: Print an error if the quant table count is invalid
- doc/filters/drawtext: fix centering example
- hqx: correct type and size check of info_offset
- mxfdec: check edit_rate also for physical_track
- mpegvideo: clear overread in clear_context
- dvdsubdec: validate offset2 similar to offset1
- aacdec: don't return frames without data from aac_decode_er_frame
- avcodec/takdec: Use memove, avoid undefined memcpy() use
- riffdec: prevent negative bit rate
version 2.7.3:
- rtmpcrypt: Do the xtea decryption in little endian mode
- Update versions for 2.7.3
- avformat/matroskadec: Check subtitle stream before dereferencing
- avformat/utils: Do not init parser if probing is unfinished
- avcodec/jpeg2000dec: Fix potential integer overflow with tile dimensions
- avcodec/jpeg2000dec: Check SIZ dimensions to be within the supported range
- avcodec/jpeg2000: Check comp coords to be within the supported size
- avcodec/jpeg2000: Use av_image_check_size() in ff_jpeg2000_init_component()
- avcodec/wmaprodec: Check for overread in decode_packet()
- avcodec/smacker: Check that the data size is a multiple of a sample vector
- avcodec/takdec: Skip last p2 sample (which is unused)
- avcodec/dxtory: Fix input size check in dxtory_decode_v1_410()
- avcodec/dxtory: Fix input size check in dxtory_decode_v1_420()
- avcodec/error_resilience: avoid accessing previous or next frames tables beyond height
- avcodec/dpx: Move need_align to act per line
- avcodec/flashsv: Check size before updating it
- avcodec/ivi: Check image dimensions
- avcodec/utils: Better check for channels in av_get_audio_frame_duration()
- avcodec/jpeg2000dec: Check for duplicate SIZ marker
- tests/fate/avformat: Fix fate-lavf
- doc/ffmpeg: Clarify that the sdp_file option requires an rtp output.
- ffmpeg: Don't try and write sdp info if none of the outputs had an rtp format.
- apng: use correct size for output buffer
- jvdec: avoid unsigned overflow in comparison
- avcodec/hevc_ps: Check chroma_format_idc
- avcodec/jpeg2000dec: Clip all tile coordinates
- avcodec/microdvddec: Check for string end in 'P' case
- avcodec/dirac_parser: Fix undefined memcpy() use
- avformat/xmv: Discard remainder of packet on error
- avformat/xmv: factor return check out of if/else
- avcodec/mpeg12dec: Do not call show_bits() with invalid bits
- libavutil/channel_layout: Check strtol*() for failure
- avcodec/ffv1dec: Check for 0 quant tables
- avcodec/mjpegdec: Reinitialize IDCT on BPP changes
- avcodec/mjpegdec: Check index in ljpeg_decode_yuv_scan() before using it
- avutil/file_open: avoid file handle inheritance on Windows
- avcodec/h264_slice: Disable slice threads if there are multiple access units in a packet
- opusdec: Don't run vector_fmul_scalar on zero length arrays
- avcodec/ffv1: Initialize vlc_state on allocation
- avcodec/ffv1dec: update progress in case of broken pointer chains
- avcodec/ffv1dec: Clear slice coordinates if they are invalid or slice header decoding fails for other reasons
- avformat/httpauth: Add space after commas in HTTP/RTSP auth header
- avcodec/x86/sbrdsp: Fix using uninitialized upper 32bit of noise
- avcodec/ffv1dec: Fix off by 1 error in quant_table_count check
- avcodec/ffv1dec: Explicitly check read_quant_table() return value
- avcodec/rangecoder: Check e
- avutil/log: fix zero length gnu_printf format string warning
- lavf/webvttenc: Require webvtt file to contain exactly one WebVTT stream.
- avcodec/mjpegdec: Fix decoding RGBA RCT LJPEG
- avfilter/af_asyncts: use llabs for int64_t
- avcodec/g2meet: Also clear tile dimensions on header_fail
- avcodec/g2meet: Fix potential overflow in tile dimensions check
- avcodec/svq1dec: Check init_get_bits8() for failure
- avcodec/tta: Check init_get_bits8() for failure
- avcodec/vp3: Check init_get_bits8() for failure
- swresample/swresample: Fix integer overflow in seed calculation
- avformat/mov: Fix integer overflow in FFABS
- avutil/common: Add FFNABS()
- avutil/common: Document FFABS() corner case
- avformat/dump: Fix integer overflow in aspect ratio calculation
- avformat/mxg: Use memmove()
- avcodec/truemotion1: Check for even width
- avcodec/mpeg12dec: Set dimensions in mpeg1_decode_sequence() only in absence of errors
- avcodec/libopusenc: Fix infinite loop on flushing after 0 input
- avformat/hevc: Check num_long_term_ref_pics_sps to avoid potentially long loops
- avformat/hevc: Fix parsing errors
- ffmpeg: Use correct codec_id for av_parser_change() check
- ffmpeg: Check av_parser_change() for failure
- ffmpeg: Check for RAWVIDEO and do not relay only on AVFMT_RAWPICTURE
- ffmpeg: check avpicture_fill() return value
- avformat/mux: Update sidedata in ff_write_chained()
- avcodec/flashsvenc: Correct max dimension in error message
- avcodec/svq1enc: Check dimensions
- avcodec/dcaenc: clear bitstream end
- libavcodec/aacdec_template: Use init_get_bits8() in aac_decode_frame()
- rawdec: fix mjpeg probing buffer size check
- rawdec: fix mjpeg probing
- configure: loongson disable expensive optimizations in gcc O3 optimization
- videodsp: don't overread edges in vfix3 emu_edge.
- avformat/mp3dec: improve junk skipping heuristic
- avformat/hls: add support for EXT-X-MAP
- avformat/hls: fix segment selection regression on track changes of live streams
- lavf/matroskadec: Fully parse and repack MP3 packets
- avcodec/h264_mp4toannexb_bsf: Reorder operations in nal_size check
- avformat/oggenc: Check segments_count for headers too
- avformat/segment: atomically update list if possible
- avformat/avidec: Workaround broken initial frame
- hevc: properly handle no_rasl_output_flag when removing pictures from the DPB
- hevc: fix wpp threading deadlock.
- avcodec/ffv1: separate slice_count from max_slice_count
- lavf/img2dec: Fix memory leak
- avcodec/mp3: fix skipping zeros
- avformat/srtdec: make sure we probe a number
- avformat/srtdec: more lenient first line probing
- doc: mention libavcodec can decode Opus natively
- avcodec/ffv1enc: fix assertion failure with unset bits per raw sample
- MAINTAINERS: Remove myself as leader
- mips/hevcdsp: fix string concatenation on macros
version 2.7.2:
- imc: use correct position for flcoeffs2 calculation
- hevc: check slice address length
- snow: remove an obsolete av_assert2
- webp: fix infinite loop in webp_decode_frame
- wavpack: limit extra_bits to 32 and use get_bits_long
- ffmpeg: only count got_output/errors in decode_error_stat
- ffmpeg: exit_on_error if decoding a packet failed
- pthread_frame: forward error codes when flushing
- huffyuvdec: validate image size
- wavpack: use get_bits_long to read up to 32 bits
- nutdec: check maxpos in read_sm_data before returning success
- s302m: fix arithmetic exception
- vc1dec: use get_bits_long and limit the read bits to 32
- mpegaudiodec: copy AVFloatDSPContext from first context to all contexts
- avcodec/vp8: Check buffer size in vp8_decode_frame_header()
- avcodec/vp8: Fix null pointer dereference in ff_vp8_decode_free()
- avcodec/diracdec: Check for hpel_base allocation failure
- avcodec/rv34: Clear pointers in ff_rv34_decode_init_thread_copy()
- avfilter/af_aresample: Check ff_all_* for allocation failures
- avcodec/pthread_frame: clear priv_data, avoid stale pointer in error case
- swscale/utils: Clear pix buffers
- avutil/fifo: Fix the case where func() returns less bytes than requested in av_fifo_generic_write()
- ffmpeg: Fix cleanup after failed allocation of output_files
- avformat/mov: Fix deallocation when MOVStreamContext failed to allocate
- ffmpeg: Fix crash with ost->last_frame allocation failure
- ffmpeg: Fix cleanup with ost = NULL
- avcodec/pthread_frame: check avctx on deallocation
- avcodec/sanm: Reset sizes in destroy_buffers()
- avcodec/alac: Clear pointers in allocate_buffers()
- bytestream2: set the reader to the end when reading more than available
- avcodec/utils: use a minimum 32pixel width in avcodec_align_dimensions2() for H.264
- avcodec/mpegvideo: Clear pointers in ff_mpv_common_init()
- oggparsedirac: check return value of init_get_bits
- wmalosslessdec: reset frame->nb_samples on packet loss
- wmalosslessdec: avoid reading 0 bits with get_bits
- Put a space between string literals and macros.
- avcodec/rawenc: Use ff_alloc_packet() instead of ff_alloc_packet2()
- avcodec/aacsbr: check that the element type matches before applying SBR
- avcodec/h264_slice: Use w/h from the AVFrame instead of mb_w/h
- vp9/update_prob: prevent out of bounds table read
- avfilter/vf_transpose: Fix rounding error
- avcodec/h264_refs: discard mismatching references
- avcodec/mjpegdec: Fix small picture upscale
- avcodec/pngdec: Check values before updating context in decode_fctl_chunk()
- avcodec/pngdec: Copy IHDR & plte state from last thread
- avcodec/pngdec: Require a IHDR chunk before fctl
- avcodec/pngdec: Only allow one IHDR chunk
- wmavoice: limit wmavoice_decode_packet return value to packet size
- swscale/swscale_unscaled: Fix rounding difference with RGBA output between little and big endian
- ffmpeg: Do not use the data/size of a bitstream filter after failure
- swscale/x86/rgb2rgb_template: fix signedness of v in shuffle_bytes_2103_{mmx,mmxext}
- vda: unlock the pixel buffer base address.
- swscale/rgb2rgb_template: Fix signedness of v in shuffle_bytes_2103_c()
- swscale/rgb2rgb_template: Implement shuffle_bytes_0321_c and fix shuffle_bytes_2103_c on BE
- swscale/rgb2rgb_template: Disable shuffle_bytes_2103_c on big endian
- swr: Remember previously set int_sample_format from user
- swresample: soxr implementation for swr_get_out_samples()
- avformat/swfdec: Do not error out on pixel format changes
- ffmpeg_opt: Fix forcing fourccs
- configure: Check for x265_api_get
- swscale/x86/rgb2rgb_template: don't call emms on sse2/avx functions
- swscale/x86/rgb2rgb_template: add missing xmm clobbers
- library.mak: Workaround SDL redefining main and breaking fate tests on mingw
- vaapi_h264: fix RefPicList[] field flags.
version 2.7.1:
- postproc: fix unaligned access
- avformat: clarify what package needs to be compiled with SSL support
- avcodec/libx264: Avoid reconfig on equivalent aspect ratios
- avcodec/flacenc: Fix Invalid Rice order
- tls_gnutls: fix hang on disconnection
- avcodec/hevc_ps: Only discard overread VPS if a previous is available
- ffmpeg: Free last_frame instead of just unref
- avcodec/ffv1enc: fix bps for >8bit yuv when not explicitly set
- avio: fix potential crashes when combining ffio_ensure_seekback + crc
- examples/demuxing_decoding: use properties from frame instead of video_dec_ctx
- h264: er: Copy from the previous reference only if compatible
- doc: fix spelling errors
- configure: only disable VSX for !ppc64el
- ffmpeg_opt: Check for localtime() failure
- avformat/singlejpeg: fix standalone compilation
- configure: Disable VSX on unspecified / generic CPUs
- avformat: Fix bug in parse_rps for HEVC.
- takdec: ensure chan2 is a valid channel index
- avcodec/h264_slice: Use AVFrame dimensions for grayscale handling
version 2.7:
- FFT video filter
- TDSC decoder
- DTS lossless extension (XLL) decoding (not lossless, disabled by default)
- showwavespic filter
- DTS decoding through libdcadec
- Drop support for nvenc API before 5.0
- nvenc HEVC encoder
- Detelecine filter
- Intel QSV-accelerated H.264 encoding
- MMAL-accelerated H.264 decoding
- basic APNG encoder and muxer with default extension "apng"
- unpack DivX-style packed B-frames in MPEG-4 bitstream filter
- WebM Live Chunk Muxer
- nvenc level and tier options
- chorus filter
- Canopus HQ/HQA decoder
- Automatically rotate videos based on metadata in ffmpeg
- improved Quickdraw compatibility
- VP9 high bit-depth and extended colorspaces decoding support
- WebPAnimEncoder API when available for encoding and muxing WebP
- Direct3D11-accelerated decoding
- Support Secure Transport
- Multipart JPEG demuxer
version 2.6:
- nvenc encoder
@@ -569,7 +901,7 @@ easier to use. The changes are:
all the stream in the first input file, except for the second audio
stream'.
* There is a new option -c (or -codec) for choosing the decoder/encoder to
use, which allows to precisely specify target stream(s) consistently with
use, which makes it possible to precisely specify target stream(s) consistently with
other options. E.g. -c:v lib264 sets the codec for all video streams, -c:a:0
libvorbis sets the codec for the first audio stream and -c copy copies all
the streams without reencoding. Old -vcodec/-acodec/-scodec options are now

View File

@@ -27,9 +27,11 @@ Specifically, the GPL parts of FFmpeg are:
- `vf_blackframe.c`
- `vf_boxblur.c`
- `vf_colormatrix.c`
- `vf_cover_rect.c`
- `vf_cropdetect.c`
- `vf_delogo.c`
- `vf_eq.c`
- `vf_find_rect.c`
- `vf_fspp.c`
- `vf_geq.c`
- `vf_histeq.c`

View File

@@ -14,7 +14,6 @@ patches and related discussions.
Project Leader
==============
Michael Niedermayer
final design decisions
@@ -45,7 +44,7 @@ Miscellaneous Areas
documentation Stefano Sabatini, Mike Melanson, Timothy Gu
build system (configure, makefiles) Diego Biurrun, Mans Rullgard
project server Árpád Gereöffy, Michael Niedermayer, Reimar Doeffinger, Alexander Strasser
project server Árpád Gereöffy, Michael Niedermayer, Reimar Doeffinger, Alexander Strasser, Lou Logan
presets Robert Swain
metadata subsystem Aurelien Jacobs
release management Michael Niedermayer
@@ -59,7 +58,7 @@ 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
Google+ Paul B Mahol, Michael Niedermayer, Alexander Strasser
Twitter Lou Logan
Twitter Lou Logan, Reynaldo H. Verdejo Pinochet
Launchpad Timothy Gu
@@ -545,10 +544,9 @@ x86 Michael Niedermayer
Releases
========
2.7 Michael Niedermayer
2.6 Michael Niedermayer
2.5 Michael Niedermayer
2.4 Michael Niedermayer
2.2 Michael Niedermayer
If you want to maintain an older release, please contact us

View File

@@ -80,8 +80,8 @@ SUBDIR_VARS := CLEANFILES EXAMPLES FFLIBS HOSTPROGS TESTPROGS TOOLS \
HEADERS ARCH_HEADERS BUILT_HEADERS SKIPHEADERS \
ARMV5TE-OBJS ARMV6-OBJS ARMV8-OBJS VFP-OBJS NEON-OBJS \
ALTIVEC-OBJS MMX-OBJS YASM-OBJS \
MIPSFPU-OBJS MIPSDSPR2-OBJS MIPSDSPR1-OBJS \
OBJS SLIBOBJS HOSTOBJS TESTOBJS
MIPSFPU-OBJS MIPSDSPR2-OBJS MIPSDSPR1-OBJS MSA-OBJS \
LOONGSON3-OBJS OBJS SLIBOBJS HOSTOBJS TESTOBJS
define RESET
$(1) :=

View File

@@ -1 +1 @@
2.6.1
2.7.6

View File

@@ -1,62 +1,12 @@
┌─────────────────────────────────────────────
│ RELEASE NOTES for FFmpeg 2.6 "Grothendieck" │
└─────────────────────────────────────────────
┌─────────────────────────────────────┐
│ RELEASE NOTES for FFmpeg 2.7 "Nash" │
└─────────────────────────────────────┘
The FFmpeg Project proudly presents FFmpeg 2.6 "Grothendieck", about 3
months after the release of FFmpeg 2.5.
The FFmpeg Project proudly presents FFmpeg 2.7 "Nash", about 3
months after the release of FFmpeg 2.6.
A lot of important work got in this time, so let's start talking about what
we like to brag the most about: features.
A lot of people will probably be happy to hear that we now have support for
NVENC — the Nvidia Video Encoder interface for H.264 encoding — thanks to
Timo Rothenpieler, with some little help from NVIDIA and Philip Langdale.
People in the broadcasting industry might also be interested in the first
steps of closed captions support with the introduction of a decoder by
Anshul Maheswhwari.
Regarding filters love, we improved and added many. We could talk about the
10-bit support in spp, but maybe it's more important to mention the addition
of colorlevels (yet another color handling filter), tblend (allowing you
to for example run a diff between successive frames of a video stream), or
the dcshift audio filter.
There are also two other important filters landing in libavfilter: palettegen
and paletteuse. Both submitted by the Stupeflix company. These filters will
be very useful in case you are looking for creating high quality GIFs, a
format that still bravely fights annihilation in 2015.
There are many other new features, but let's follow-up on one big cleanup
achievement: the libmpcodecs (MPlayer filters) wrapper is finally dead. The
last remaining filters (softpulldown/repeatfields, eq*, and various
postprocessing filters) were ported by Arwa Arif (OPW student) and Paul B
Mahol.
Concerning API changes, there are not many things to mention. Though, the
introduction of device inputs and outputs listing by Lukasz Marek is a
notable addition (try ffmpeg -sources or ffmpeg -sinks for an example of
the usage). As usual, see doc/APIchanges for more information.
Now let's talk about optimizations. Ronald S. Bultje made the VP9 decoder
usable on x86 32-bit systems and pre-ssse3 CPUs like Phenom (even dual core
Athlons can play 1080p 30fps VP9 content now), so we now secretly hope for
Google and Mozilla to use ffvp9 instead of libvpx. But VP9 is not the
center of attention anymore, and HEVC/H.265 is also getting many
improvements, which include C and x86 ASM optimizations, mainly from James
Almer, Christophe Gisquet and Pierre-Edouard Lepere.
Even though we had many x86 contributions, it is not the only architecture
getting some love, with Seppo Tomperi adding ARM NEON optimizations to the
HEVC stack, and James Cowgill adding MIPS64 assembly for all kind of audio
processing code in libavcodec.
And finally, Michael Niedermayer is still fixing many bugs, dealing with
most of the boring work such as making releases, applying tons of
contributors patches, and daily merging the changes from the Libav project.
A more complete Changelog is available at the root of the project, and the
A complete Changelog is available at the root of the project, and the
complete Git history on http://source.ffmpeg.org.
We hope you will like this release as much as we enjoyed working on it, and

View File

@@ -7,8 +7,11 @@ OBJS-$(HAVE_NEON) += $(NEON-OBJS) $(NEON-OBJS-yes)
OBJS-$(HAVE_MIPSFPU) += $(MIPSFPU-OBJS) $(MIPSFPU-OBJS-yes)
OBJS-$(HAVE_MIPSDSPR1) += $(MIPSDSPR1-OBJS) $(MIPSDSPR1-OBJS-yes)
OBJS-$(HAVE_MIPSDSPR2) += $(MIPSDSPR2-OBJS) $(MIPSDSPR2-OBJS-yes)
OBJS-$(HAVE_MSA) += $(MSA-OBJS) $(MSA-OBJS-yes)
OBJS-$(HAVE_LOONGSON3) += $(LOONGSON3-OBJS) $(LOONGSON3-OBJS-yes)
OBJS-$(HAVE_ALTIVEC) += $(ALTIVEC-OBJS) $(ALTIVEC-OBJS-yes)
OBJS-$(HAVE_VSX) += $(VSX-OBJS) $(VSX-OBJS-yes)
OBJS-$(HAVE_MMX) += $(MMX-OBJS) $(MMX-OBJS-yes)
OBJS-$(HAVE_YASM) += $(YASM-OBJS) $(YASM-OBJS-yes)

View File

@@ -41,8 +41,10 @@
#include "libavutil/avassert.h"
#include "libavutil/avstring.h"
#include "libavutil/bprint.h"
#include "libavutil/display.h"
#include "libavutil/mathematics.h"
#include "libavutil/imgutils.h"
#include "libavutil/libm.h"
#include "libavutil/parseutils.h"
#include "libavutil/pixdesc.h"
#include "libavutil/eval.h"
@@ -480,10 +482,22 @@ static void dump_argument(const char *a)
fputc('"', report_file);
}
static void check_options(const OptionDef *po)
{
while (po->name) {
if (po->flags & OPT_PERFILE)
av_assert0(po->flags & (OPT_INPUT | OPT_OUTPUT));
po++;
}
}
void parse_loglevel(int argc, char **argv, const OptionDef *options)
{
int idx = locate_option(argc, argv, options, "loglevel");
const char *env;
check_options(options);
if (!idx)
idx = locate_option(argc, argv, options, "v");
if (idx && argv[idx + 1])
@@ -845,6 +859,7 @@ int opt_loglevel(void *optctx, const char *opt, const char *arg)
{ "info" , AV_LOG_INFO },
{ "verbose", AV_LOG_VERBOSE },
{ "debug" , AV_LOG_DEBUG },
{ "trace" , AV_LOG_TRACE },
};
char *tail;
int level;
@@ -1535,10 +1550,10 @@ int show_protocols(void *optctx, const char *opt, const char *arg)
printf("Supported file protocols:\n"
"Input:\n");
while ((name = avio_enum_protocols(&opaque, 0)))
printf("%s\n", name);
printf(" %s\n", name);
printf("Output:\n");
while ((name = avio_enum_protocols(&opaque, 1)))
printf("%s\n", name);
printf(" %s\n", name);
return 0;
}
@@ -1553,7 +1568,7 @@ int show_filters(void *optctx, const char *opt, const char *arg)
printf("Filters:\n"
" T.. = Timeline support\n"
" .S. = Slice threading\n"
" ..C = Commmand support\n"
" ..C = Command support\n"
" A = Audio input/output\n"
" V = Video input/output\n"
" N = Dynamic number and/or type of input/output\n"
@@ -2072,6 +2087,30 @@ void *grow_array(void *array, int elem_size, int *size, int new_size)
return array;
}
double get_rotation(AVStream *st)
{
AVDictionaryEntry *rotate_tag = av_dict_get(st->metadata, "rotate", NULL, 0);
uint8_t* displaymatrix = av_stream_get_side_data(st,
AV_PKT_DATA_DISPLAYMATRIX, NULL);
double theta = 0;
if (rotate_tag && *rotate_tag->value && strcmp(rotate_tag->value, "0")) {
char *tail;
theta = av_strtod(rotate_tag->value, &tail);
if (*tail)
theta = 0;
}
if (displaymatrix && !theta)
theta = -av_display_rotation_get((int32_t*) displaymatrix);
theta -= 360*floor(theta/360 + 0.9/360);
if (fabs(theta - 90*round(theta/90)) > 2)
av_log_ask_for_sample(NULL, "Odd rotation angle\n");
return theta;
}
#if CONFIG_AVDEVICE
static int print_device_sources(AVInputFormat *fmt, AVDictionary *opts)
{
@@ -2228,4 +2267,5 @@ int show_sinks(void *optctx, const char *opt, const char *arg)
av_log_set_level(error_level);
return ret;
}
#endif

View File

@@ -597,4 +597,6 @@ void *grow_array(void *array, int elem_size, int *size, int new_size);
char name[128];\
av_get_channel_layout_string(name, sizeof(name), 0, ch_layout);
double get_rotation(AVStream *st);
#endif /* CMDUTILS_H */

View File

@@ -22,6 +22,7 @@
#include "libavutil/time.h"
#include "libavutil/log.h"
#include "libavutil/opencl.h"
#include "libavutil/avstring.h"
#include "cmdutils.h"
typedef struct {
@@ -238,7 +239,8 @@ int opt_opencl_bench(void *optctx, const char *opt, const char *arg)
devices[count].platform_idx = i;
devices[count].device_idx = j;
devices[count].runtime = score;
strcpy(devices[count].device_name, device_node->device_name);
av_strlcpy(devices[count].device_name, device_node->device_name,
sizeof(devices[count].device_name));
count++;
}
}

View File

@@ -7,7 +7,7 @@ all: all-yes
DEFAULT_YASMD=.dbg
ifeq (1, DBG)
ifeq ($(DBG),1)
YASMD=$(DEFAULT_YASMD)
else
YASMD=

View File

@@ -38,40 +38,9 @@
#ifndef __AVISYNTH_C__
#define __AVISYNTH_C__
#ifdef __cplusplus
# define EXTERN_C extern "C"
#else
# define EXTERN_C
#endif
#define AVSC_USE_STDCALL 1
#ifndef AVSC_USE_STDCALL
# define AVSC_CC __cdecl
#else
# define AVSC_CC __stdcall
#endif
#define AVSC_INLINE static __inline
#ifdef AVISYNTH_C_EXPORTS
# define AVSC_EXPORT EXTERN_C
# define AVSC_API(ret, name) EXTERN_C __declspec(dllexport) ret AVSC_CC name
#else
# define AVSC_EXPORT EXTERN_C __declspec(dllexport)
# ifndef AVSC_NO_DECLSPEC
# define AVSC_API(ret, name) EXTERN_C __declspec(dllimport) ret AVSC_CC name
# else
# define AVSC_API(ret, name) typedef ret (AVSC_CC *name##_func)
# endif
#endif
typedef unsigned char BYTE;
#ifdef __GNUC__
typedef long long int INT64;
#else
typedef __int64 INT64;
#endif
#include "avs/config.h"
#include "avs/capi.h"
#include "avs/types.h"
/////////////////////////////////////////////////////////////////////
@@ -79,8 +48,8 @@ typedef __int64 INT64;
// Constants
//
#ifndef __AVISYNTH_H__
enum { AVISYNTH_INTERFACE_VERSION = 4 };
#ifndef __AVISYNTH_6_H__
enum { AVISYNTH_INTERFACE_VERSION = 6 };
#endif
enum {AVS_SAMPLE_INT8 = 1<<0,
@@ -112,8 +81,8 @@ enum {AVS_CS_BGR = 1<<28,
AVS_CS_PLANAR = 1<<31,
AVS_CS_SHIFT_SUB_WIDTH = 0,
AVS_CS_SHIFT_SUB_HEIGHT = 1 << 3,
AVS_CS_SHIFT_SAMPLE_BITS = 1 << 4,
AVS_CS_SHIFT_SUB_HEIGHT = 8,
AVS_CS_SHIFT_SAMPLE_BITS = 16,
AVS_CS_SUB_WIDTH_MASK = 7 << AVS_CS_SHIFT_SUB_WIDTH,
AVS_CS_SUB_WIDTH_1 = 3 << AVS_CS_SHIFT_SUB_WIDTH, // YV24
@@ -180,15 +149,66 @@ enum { //SUBTYPES
AVS_FILTER_OUTPUT_TYPE_DIFFERENT=4};
enum {
AVS_CACHE_NOTHING=0,
AVS_CACHE_RANGE=1,
AVS_CACHE_ALL=2,
AVS_CACHE_AUDIO=3,
AVS_CACHE_AUDIO_NONE=4,
AVS_CACHE_AUDIO_AUTO=5
// New 2.6 explicitly defined cache hints.
AVS_CACHE_NOTHING=10, // Do not cache video.
AVS_CACHE_WINDOW=11, // Hard protect upto X frames within a range of X from the current frame N.
AVS_CACHE_GENERIC=12, // LRU cache upto X frames.
AVS_CACHE_FORCE_GENERIC=13, // LRU cache upto X frames, override any previous CACHE_WINDOW.
AVS_CACHE_GET_POLICY=30, // Get the current policy.
AVS_CACHE_GET_WINDOW=31, // Get the current window h_span.
AVS_CACHE_GET_RANGE=32, // Get the current generic frame range.
AVS_CACHE_AUDIO=50, // Explicitly do cache audio, X byte cache.
AVS_CACHE_AUDIO_NOTHING=51, // Explicitly do not cache audio.
AVS_CACHE_AUDIO_NONE=52, // Audio cache off (auto mode), X byte intial cache.
AVS_CACHE_AUDIO_AUTO=53, // Audio cache on (auto mode), X byte intial cache.
AVS_CACHE_GET_AUDIO_POLICY=70, // Get the current audio policy.
AVS_CACHE_GET_AUDIO_SIZE=71, // Get the current audio cache size.
AVS_CACHE_PREFETCH_FRAME=100, // Queue request to prefetch frame N.
AVS_CACHE_PREFETCH_GO=101, // Action video prefetches.
AVS_CACHE_PREFETCH_AUDIO_BEGIN=120, // Begin queue request transaction to prefetch audio (take critical section).
AVS_CACHE_PREFETCH_AUDIO_STARTLO=121, // Set low 32 bits of start.
AVS_CACHE_PREFETCH_AUDIO_STARTHI=122, // Set high 32 bits of start.
AVS_CACHE_PREFETCH_AUDIO_COUNT=123, // Set low 32 bits of length.
AVS_CACHE_PREFETCH_AUDIO_COMMIT=124, // Enqueue request transaction to prefetch audio (release critical section).
AVS_CACHE_PREFETCH_AUDIO_GO=125, // Action audio prefetches.
AVS_CACHE_GETCHILD_CACHE_MODE=200, // Cache ask Child for desired video cache mode.
AVS_CACHE_GETCHILD_CACHE_SIZE=201, // Cache ask Child for desired video cache size.
AVS_CACHE_GETCHILD_AUDIO_MODE=202, // Cache ask Child for desired audio cache mode.
AVS_CACHE_GETCHILD_AUDIO_SIZE=203, // Cache ask Child for desired audio cache size.
AVS_CACHE_GETCHILD_COST=220, // Cache ask Child for estimated processing cost.
AVS_CACHE_COST_ZERO=221, // Child response of zero cost (ptr arithmetic only).
AVS_CACHE_COST_UNIT=222, // Child response of unit cost (less than or equal 1 full frame blit).
AVS_CACHE_COST_LOW=223, // Child response of light cost. (Fast)
AVS_CACHE_COST_MED=224, // Child response of medium cost. (Real time)
AVS_CACHE_COST_HI=225, // Child response of heavy cost. (Slow)
AVS_CACHE_GETCHILD_THREAD_MODE=240, // Cache ask Child for thread safetyness.
AVS_CACHE_THREAD_UNSAFE=241, // Only 1 thread allowed for all instances. 2.5 filters default!
AVS_CACHE_THREAD_CLASS=242, // Only 1 thread allowed for each instance. 2.6 filters default!
AVS_CACHE_THREAD_SAFE=243, // Allow all threads in any instance.
AVS_CACHE_THREAD_OWN=244, // Safe but limit to 1 thread, internally threaded.
AVS_CACHE_GETCHILD_ACCESS_COST=260, // Cache ask Child for preferred access pattern.
AVS_CACHE_ACCESS_RAND=261, // Filter is access order agnostic.
AVS_CACHE_ACCESS_SEQ0=262, // Filter prefers sequential access (low cost)
AVS_CACHE_ACCESS_SEQ1=263, // Filter needs sequential access (high cost)
};
#define AVS_FRAME_ALIGN 16
#ifdef BUILDING_AVSCORE
struct AVS_ScriptEnvironment {
IScriptEnvironment * env;
const char * error;
AVS_ScriptEnvironment(IScriptEnvironment * e = 0)
: env(e), error(0) {}
};
#endif
typedef struct AVS_Clip AVS_Clip;
typedef struct AVS_ScriptEnvironment AVS_ScriptEnvironment;
@@ -238,29 +258,23 @@ AVSC_INLINE int avs_is_yuv(const AVS_VideoInfo * p)
AVSC_INLINE int avs_is_yuy2(const AVS_VideoInfo * p)
{ return (p->pixel_type & AVS_CS_YUY2) == AVS_CS_YUY2; }
AVSC_INLINE int avs_is_yv24(const AVS_VideoInfo * p)
{ return (p->pixel_type & AVS_CS_PLANAR_MASK) == (AVS_CS_YV24 & AVS_CS_PLANAR_FILTER); }
AVSC_API(int, avs_is_yv24)(const AVS_VideoInfo * p);
AVSC_INLINE int avs_is_yv16(const AVS_VideoInfo * p)
{ return (p->pixel_type & AVS_CS_PLANAR_MASK) == (AVS_CS_YV16 & AVS_CS_PLANAR_FILTER); }
AVSC_API(int, avs_is_yv16)(const AVS_VideoInfo * p);
AVSC_INLINE int avs_is_yv12(const AVS_VideoInfo * p)
{ return (p->pixel_type & AVS_CS_PLANAR_MASK) == (AVS_CS_YV12 & AVS_CS_PLANAR_FILTER); }
AVSC_API(int, avs_is_yv12)(const AVS_VideoInfo * p) ;
AVSC_INLINE int avs_is_yv411(const AVS_VideoInfo * p)
{ return (p->pixel_type & AVS_CS_PLANAR_MASK) == (AVS_CS_YV411 & AVS_CS_PLANAR_FILTER); }
AVSC_API(int, avs_is_yv411)(const AVS_VideoInfo * p);
AVSC_INLINE int avs_is_y8(const AVS_VideoInfo * p)
{ return (p->pixel_type & AVS_CS_PLANAR_MASK) == (AVS_CS_Y8 & AVS_CS_PLANAR_FILTER); }
AVSC_API(int, avs_is_y8)(const AVS_VideoInfo * p);
AVSC_INLINE int avs_is_property(const AVS_VideoInfo * p, int property)
{ return ((p->pixel_type & property)==property ); }
{ return ((p->image_type & property)==property ); }
AVSC_INLINE int avs_is_planar(const AVS_VideoInfo * p)
{ return !!(p->pixel_type & AVS_CS_PLANAR); }
AVSC_INLINE int avs_is_color_space(const AVS_VideoInfo * p, int c_space)
{ return avs_is_planar(p) ? ((p->pixel_type & AVS_CS_PLANAR_MASK) == (c_space & AVS_CS_PLANAR_FILTER)) : ((p->pixel_type & c_space) == c_space); }
AVSC_API(int, avs_is_color_space)(const AVS_VideoInfo * p, int c_space);
AVSC_INLINE int avs_is_field_based(const AVS_VideoInfo * p)
{ return !!(p->image_type & AVS_IT_FIELDBASED); }
@@ -274,25 +288,18 @@ AVSC_INLINE int avs_is_bff(const AVS_VideoInfo * p)
AVSC_INLINE int avs_is_tff(const AVS_VideoInfo * p)
{ return !!(p->image_type & AVS_IT_TFF); }
AVSC_INLINE int avs_bits_per_pixel(const AVS_VideoInfo * p)
{
switch (p->pixel_type) {
case AVS_CS_BGR24: return 24;
case AVS_CS_BGR32: return 32;
case AVS_CS_YUY2: return 16;
case AVS_CS_YV12:
case AVS_CS_I420: return 12;
default: return 0;
}
}
AVSC_INLINE int avs_bytes_from_pixels(const AVS_VideoInfo * p, int pixels)
{ return pixels * (avs_bits_per_pixel(p)>>3); } // Will work on planar images, but will return only luma planes
AVSC_API(int, avs_get_plane_width_subsampling)(const AVS_VideoInfo * p, int plane);
AVSC_INLINE int avs_row_size(const AVS_VideoInfo * p)
{ return avs_bytes_from_pixels(p,p->width); } // Also only returns first plane on planar images
AVSC_API(int, avs_get_plane_height_subsampling)(const AVS_VideoInfo * p, int plane);
AVSC_INLINE int avs_bmp_size(const AVS_VideoInfo * vi)
{ if (avs_is_planar(vi)) {int p = vi->height * ((avs_row_size(vi)+3) & ~3); p+=p>>1; return p; } return vi->height * ((avs_row_size(vi)+3) & ~3); }
AVSC_API(int, avs_bits_per_pixel)(const AVS_VideoInfo * p);
AVSC_API(int, avs_bytes_from_pixels)(const AVS_VideoInfo * p, int pixels);
AVSC_API(int, avs_row_size)(const AVS_VideoInfo * p, int plane);
AVSC_API(int, avs_bmp_size)(const AVS_VideoInfo * vi);
AVSC_INLINE int avs_samples_per_second(const AVS_VideoInfo * p)
{ return p->audio_samples_per_second; }
@@ -350,11 +357,13 @@ AVSC_INLINE void avs_set_fps(AVS_VideoInfo * p, unsigned numerator, unsigned den
p->fps_denominator = denominator/x;
}
#ifdef AVS_IMPLICIT_FUNCTION_DECLARATION_ERROR
AVSC_INLINE int avs_is_same_colorspace(AVS_VideoInfo * x, AVS_VideoInfo * y)
{
return (x->pixel_type == y->pixel_type)
|| (avs_is_yv12(x) && avs_is_yv12(y));
}
#endif
/////////////////////////////////////////////////////////////////////
//
@@ -391,89 +400,38 @@ typedef struct AVS_VideoFrame {
} AVS_VideoFrame;
// Access functions for AVS_VideoFrame
AVSC_INLINE int avs_get_pitch(const AVS_VideoFrame * p) {
return p->pitch;}
AVSC_API(int, avs_get_pitch_p)(const AVS_VideoFrame * p, int plane);
AVSC_INLINE int avs_get_pitch_p(const AVS_VideoFrame * p, int plane) {
switch (plane) {
case AVS_PLANAR_U: case AVS_PLANAR_V: return p->pitchUV;}
return p->pitch;}
#ifdef AVS_IMPLICIT_FUNCTION_DECLARATION_ERROR
AVSC_INLINE int avs_get_pitch(const AVS_VideoFrame * p) {
return avs_get_pitch_p(p, 0);}
#endif
AVSC_API(int, avs_get_row_size_p)(const AVS_VideoFrame * p, int plane);
AVSC_INLINE int avs_get_row_size(const AVS_VideoFrame * p) {
return p->row_size; }
AVSC_INLINE int avs_get_row_size_p(const AVS_VideoFrame * p, int plane) {
int r;
switch (plane) {
case AVS_PLANAR_U: case AVS_PLANAR_V:
if (p->pitchUV) return p->row_sizeUV;
else return 0;
case AVS_PLANAR_U_ALIGNED: case AVS_PLANAR_V_ALIGNED:
if (p->pitchUV) {
r = (p->row_sizeUV+AVS_FRAME_ALIGN-1)&(~(AVS_FRAME_ALIGN-1)); // Aligned rowsize
if (r < p->pitchUV)
return r;
return p->row_sizeUV;
} else return 0;
case AVS_PLANAR_Y_ALIGNED:
r = (p->row_size+AVS_FRAME_ALIGN-1)&(~(AVS_FRAME_ALIGN-1)); // Aligned rowsize
if (r <= p->pitch)
return r;
return p->row_size;
}
return p->row_size;
}
AVSC_API(int, avs_get_height_p)(const AVS_VideoFrame * p, int plane);
AVSC_INLINE int avs_get_height(const AVS_VideoFrame * p) {
return p->height;}
AVSC_INLINE int avs_get_height_p(const AVS_VideoFrame * p, int plane) {
switch (plane) {
case AVS_PLANAR_U: case AVS_PLANAR_V:
if (p->pitchUV) return p->heightUV;
return 0;
}
return p->height;}
AVSC_API(const BYTE *, avs_get_read_ptr_p)(const AVS_VideoFrame * p, int plane);
#ifdef AVS_IMPLICIT_FUNCTION_DECLARATION_ERROR
AVSC_INLINE const BYTE* avs_get_read_ptr(const AVS_VideoFrame * p) {
return p->vfb->data + p->offset;}
return avs_get_read_ptr_p(p, 0);}
#endif
AVSC_INLINE const BYTE* avs_get_read_ptr_p(const AVS_VideoFrame * p, int plane)
{
switch (plane) {
case AVS_PLANAR_U: return p->vfb->data + p->offsetU;
case AVS_PLANAR_V: return p->vfb->data + p->offsetV;
default: return p->vfb->data + p->offset;}
}
AVSC_API(int, avs_is_writable)(const AVS_VideoFrame * p);
AVSC_INLINE int avs_is_writable(const AVS_VideoFrame * p) {
return (p->refcount == 1 && p->vfb->refcount == 1);}
AVSC_INLINE BYTE* avs_get_write_ptr(const AVS_VideoFrame * p)
{
if (avs_is_writable(p)) {
++p->vfb->sequence_number;
return p->vfb->data + p->offset;
} else
return 0;
}
AVSC_INLINE BYTE* avs_get_write_ptr_p(const AVS_VideoFrame * p, int plane)
{
if (plane==AVS_PLANAR_Y && avs_is_writable(p)) {
++p->vfb->sequence_number;
return p->vfb->data + p->offset;
} else if (plane==AVS_PLANAR_Y) {
return 0;
} else {
switch (plane) {
case AVS_PLANAR_U: return p->vfb->data + p->offsetU;
case AVS_PLANAR_V: return p->vfb->data + p->offsetV;
default: return p->vfb->data + p->offset;
}
}
}
AVSC_API(BYTE *, avs_get_write_ptr_p)(const AVS_VideoFrame * p, int plane);
#ifdef AVS_IMPLICIT_FUNCTION_DECLARATION_ERROR
AVSC_INLINE BYTE* avs_get_write_ptr(const AVS_VideoFrame * p) {
return avs_get_write_ptr_p(p, 0);}
#endif
AVSC_API(void, avs_release_video_frame)(AVS_VideoFrame *);
// makes a shallow copy of a video frame
@@ -658,12 +616,16 @@ enum {
AVS_CPUF_SSSE3 = 0x200, // Core 2
AVS_CPUF_SSE4 = 0x400, // Penryn, Wolfdale, Yorkfield
AVS_CPUF_SSE4_1 = 0x400,
AVS_CPUF_SSE4_2 = 0x800, // Nehalem
//AVS_CPUF_AVX = 0x800, // Sandy Bridge, Bulldozer
AVS_CPUF_SSE4_2 = 0x1000, // Nehalem
//AVS_CPUF_AVX2 = 0x2000, // Haswell
//AVS_CPUF_AVX512 = 0x4000, // Knights Landing
};
AVSC_API(const char *, avs_get_error)(AVS_ScriptEnvironment *); // return 0 if no error
AVSC_API(long, avs_get_cpu_flags)(AVS_ScriptEnvironment *);
AVSC_API(int, avs_get_cpu_flags)(AVS_ScriptEnvironment *);
AVSC_API(int, avs_check_version)(AVS_ScriptEnvironment *, int version);
AVSC_API(char *, avs_save_string)(AVS_ScriptEnvironment *, const char* s, int length);
@@ -700,12 +662,12 @@ AVSC_API(AVS_VideoFrame *, avs_new_video_frame_a)(AVS_ScriptEnvironment *,
AVSC_INLINE
AVS_VideoFrame * avs_new_video_frame(AVS_ScriptEnvironment * env,
const AVS_VideoInfo * vi)
{return avs_new_video_frame_a(env,vi,AVS_FRAME_ALIGN);}
{return avs_new_video_frame_a(env,vi,FRAME_ALIGN);}
AVSC_INLINE
AVS_VideoFrame * avs_new_frame(AVS_ScriptEnvironment * env,
const AVS_VideoInfo * vi)
{return avs_new_video_frame_a(env,vi,AVS_FRAME_ALIGN);}
{return avs_new_video_frame_a(env,vi,FRAME_ALIGN);}
#endif
@@ -773,7 +735,6 @@ struct AVS_Library {
AVSC_DECLARE_FUNC(avs_function_exists);
AVSC_DECLARE_FUNC(avs_get_audio);
AVSC_DECLARE_FUNC(avs_get_cpu_flags);
AVSC_DECLARE_FUNC(avs_get_error);
AVSC_DECLARE_FUNC(avs_get_frame);
AVSC_DECLARE_FUNC(avs_get_parity);
AVSC_DECLARE_FUNC(avs_get_var);
@@ -798,6 +759,27 @@ struct AVS_Library {
AVSC_DECLARE_FUNC(avs_subframe_planar);
AVSC_DECLARE_FUNC(avs_take_clip);
AVSC_DECLARE_FUNC(avs_vsprintf);
AVSC_DECLARE_FUNC(avs_get_error);
AVSC_DECLARE_FUNC(avs_is_yv24);
AVSC_DECLARE_FUNC(avs_is_yv16);
AVSC_DECLARE_FUNC(avs_is_yv12);
AVSC_DECLARE_FUNC(avs_is_yv411);
AVSC_DECLARE_FUNC(avs_is_y8);
AVSC_DECLARE_FUNC(avs_is_color_space);
AVSC_DECLARE_FUNC(avs_get_plane_width_subsampling);
AVSC_DECLARE_FUNC(avs_get_plane_height_subsampling);
AVSC_DECLARE_FUNC(avs_bits_per_pixel);
AVSC_DECLARE_FUNC(avs_bytes_from_pixels);
AVSC_DECLARE_FUNC(avs_row_size);
AVSC_DECLARE_FUNC(avs_bmp_size);
AVSC_DECLARE_FUNC(avs_get_pitch_p);
AVSC_DECLARE_FUNC(avs_get_row_size_p);
AVSC_DECLARE_FUNC(avs_get_height_p);
AVSC_DECLARE_FUNC(avs_get_read_ptr_p);
AVSC_DECLARE_FUNC(avs_is_writable);
AVSC_DECLARE_FUNC(avs_get_write_ptr_p);
};
#undef AVSC_DECLARE_FUNC
@@ -805,7 +787,7 @@ struct AVS_Library {
AVSC_INLINE AVS_Library * avs_load_library() {
AVS_Library *library = (AVS_Library *)malloc(sizeof(AVS_Library));
if (!library)
if (library == NULL)
return NULL;
library->handle = LoadLibrary("avisynth");
if (library->handle == NULL)
@@ -832,7 +814,6 @@ AVSC_INLINE AVS_Library * avs_load_library() {
AVSC_LOAD_FUNC(avs_function_exists);
AVSC_LOAD_FUNC(avs_get_audio);
AVSC_LOAD_FUNC(avs_get_cpu_flags);
AVSC_LOAD_FUNC(avs_get_error);
AVSC_LOAD_FUNC(avs_get_frame);
AVSC_LOAD_FUNC(avs_get_parity);
AVSC_LOAD_FUNC(avs_get_var);
@@ -858,6 +839,27 @@ AVSC_INLINE AVS_Library * avs_load_library() {
AVSC_LOAD_FUNC(avs_take_clip);
AVSC_LOAD_FUNC(avs_vsprintf);
AVSC_LOAD_FUNC(avs_get_error);
AVSC_LOAD_FUNC(avs_is_yv24);
AVSC_LOAD_FUNC(avs_is_yv16);
AVSC_LOAD_FUNC(avs_is_yv12);
AVSC_LOAD_FUNC(avs_is_yv411);
AVSC_LOAD_FUNC(avs_is_y8);
AVSC_LOAD_FUNC(avs_is_color_space);
AVSC_LOAD_FUNC(avs_get_plane_width_subsampling);
AVSC_LOAD_FUNC(avs_get_plane_height_subsampling);
AVSC_LOAD_FUNC(avs_bits_per_pixel);
AVSC_LOAD_FUNC(avs_bytes_from_pixels);
AVSC_LOAD_FUNC(avs_row_size);
AVSC_LOAD_FUNC(avs_bmp_size);
AVSC_LOAD_FUNC(avs_get_pitch_p);
AVSC_LOAD_FUNC(avs_get_row_size_p);
AVSC_LOAD_FUNC(avs_get_height_p);
AVSC_LOAD_FUNC(avs_get_read_ptr_p);
AVSC_LOAD_FUNC(avs_is_writable);
AVSC_LOAD_FUNC(avs_get_write_ptr_p);
#undef __AVSC_STRINGIFY
#undef AVSC_STRINGIFY
#undef AVSC_LOAD_FUNC
@@ -870,7 +872,7 @@ fail:
}
AVSC_INLINE void avs_free_library(AVS_Library *library) {
if (!library)
if (library == NULL)
return;
FreeLibrary(library->handle);
free(library);

View File

@@ -1,68 +0,0 @@
// Copyright (c) 2011 FFmpegSource Project
//
// 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.
/* these are defines/functions that are used and were changed in the switch to 2.6
* and are needed to maintain full compatility with 2.5 */
enum {
AVS_CS_YV12_25 = 1<<3 | AVS_CS_YUV | AVS_CS_PLANAR, // y-v-u, planar
AVS_CS_I420_25 = 1<<4 | AVS_CS_YUV | AVS_CS_PLANAR, // y-u-v, planar
};
AVSC_INLINE int avs_get_height_p_25(const AVS_VideoFrame * p, int plane) {
switch (plane)
{
case AVS_PLANAR_U: case AVS_PLANAR_V:
if (p->pitchUV)
return p->height>>1;
return 0;
}
return p->height;}
AVSC_INLINE int avs_get_row_size_p_25(const AVS_VideoFrame * p, int plane) {
int r;
switch (plane)
{
case AVS_PLANAR_U: case AVS_PLANAR_V:
if (p->pitchUV)
return p->row_size>>1;
else
return 0;
case AVS_PLANAR_U_ALIGNED: case AVS_PLANAR_V_ALIGNED:
if (p->pitchUV)
{
r = ((p->row_size+AVS_FRAME_ALIGN-1)&(~(AVS_FRAME_ALIGN-1)) )>>1; // Aligned rowsize
if (r < p->pitchUV)
return r;
return p->row_size>>1;
}
else
return 0;
case AVS_PLANAR_Y_ALIGNED:
r = (p->row_size+AVS_FRAME_ALIGN-1)&(~(AVS_FRAME_ALIGN-1)); // Aligned rowsize
if (r <= p->pitch)
return r;
return p->row_size;
}
return p->row_size;
}
AVSC_INLINE int avs_is_yv12_25(const AVS_VideoInfo * p)
{ return ((p->pixel_type & AVS_CS_YV12_25) == AVS_CS_YV12_25)||((p->pixel_type & AVS_CS_I420_25) == AVS_CS_I420_25); }

View File

@@ -0,0 +1,62 @@
// Avisynth C Interface Version 0.20
// Copyright 2003 Kevin Atkinson
// This program 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 2 of the License, or
// (at your option) any later version.
//
// This program 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 this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA, or visit
// http://www.gnu.org/copyleft/gpl.html .
//
// As a special exception, I give you permission to link to the
// Avisynth C interface with independent modules that communicate with
// the Avisynth C interface solely through the interfaces defined in
// avisynth_c.h, regardless of the license terms of these independent
// modules, and to copy and distribute the resulting combined work
// under terms of your choice, provided that every copy of the
// combined work is accompanied by a complete copy of the source code
// of the Avisynth C interface and Avisynth itself (with the version
// used to produce the combined work), being distributed under the
// terms of the GNU General Public License plus this exception. An
// independent module is a module which is not derived from or based
// on Avisynth C Interface, such as 3rd-party filters, import and
// export plugins, or graphical user interfaces.
#ifndef AVS_CAPI_H
#define AVS_CAPI_H
#ifdef __cplusplus
# define EXTERN_C extern "C"
#else
# define EXTERN_C
#endif
#ifndef AVSC_USE_STDCALL
# define AVSC_CC __cdecl
#else
# define AVSC_CC __stdcall
#endif
#define AVSC_INLINE static __inline
#ifdef BUILDING_AVSCORE
# define AVSC_EXPORT EXTERN_C
# define AVSC_API(ret, name) EXTERN_C __declspec(dllexport) ret AVSC_CC name
#else
# define AVSC_EXPORT EXTERN_C __declspec(dllexport)
# ifndef AVSC_NO_DECLSPEC
# define AVSC_API(ret, name) EXTERN_C __declspec(dllimport) ret AVSC_CC name
# else
# define AVSC_API(ret, name) typedef ret (AVSC_CC *name##_func)
# endif
#endif
#endif //AVS_CAPI_H

View File

@@ -0,0 +1,55 @@
// Avisynth C Interface Version 0.20
// Copyright 2003 Kevin Atkinson
// This program 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 2 of the License, or
// (at your option) any later version.
//
// This program 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 this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA, or visit
// http://www.gnu.org/copyleft/gpl.html .
//
// As a special exception, I give you permission to link to the
// Avisynth C interface with independent modules that communicate with
// the Avisynth C interface solely through the interfaces defined in
// avisynth_c.h, regardless of the license terms of these independent
// modules, and to copy and distribute the resulting combined work
// under terms of your choice, provided that every copy of the
// combined work is accompanied by a complete copy of the source code
// of the Avisynth C interface and Avisynth itself (with the version
// used to produce the combined work), being distributed under the
// terms of the GNU General Public License plus this exception. An
// independent module is a module which is not derived from or based
// on Avisynth C Interface, such as 3rd-party filters, import and
// export plugins, or graphical user interfaces.
#ifndef AVS_CONFIG_H
#define AVS_CONFIG_H
// Undefine this to get cdecl calling convention
#define AVSC_USE_STDCALL 1
// NOTE TO PLUGIN AUTHORS:
// Because FRAME_ALIGN can be substantially higher than the alignment
// a plugin actually needs, plugins should not use FRAME_ALIGN to check for
// alignment. They should always request the exact alignment value they need.
// This is to make sure that plugins work over the widest range of AviSynth
// builds possible.
#define FRAME_ALIGN 32
#if defined(_M_AMD64) || defined(__x86_64)
# define X86_64
#elif defined(_M_IX86) || defined(__i386__)
# define X86_32
#else
# error Unsupported CPU architecture.
#endif
#endif //AVS_CONFIG_H

View File

@@ -0,0 +1,51 @@
// Avisynth C Interface Version 0.20
// Copyright 2003 Kevin Atkinson
// This program 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 2 of the License, or
// (at your option) any later version.
//
// This program 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 this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA, or visit
// http://www.gnu.org/copyleft/gpl.html .
//
// As a special exception, I give you permission to link to the
// Avisynth C interface with independent modules that communicate with
// the Avisynth C interface solely through the interfaces defined in
// avisynth_c.h, regardless of the license terms of these independent
// modules, and to copy and distribute the resulting combined work
// under terms of your choice, provided that every copy of the
// combined work is accompanied by a complete copy of the source code
// of the Avisynth C interface and Avisynth itself (with the version
// used to produce the combined work), being distributed under the
// terms of the GNU General Public License plus this exception. An
// independent module is a module which is not derived from or based
// on Avisynth C Interface, such as 3rd-party filters, import and
// export plugins, or graphical user interfaces.
#ifndef AVS_TYPES_H
#define AVS_TYPES_H
// Define all types necessary for interfacing with avisynth.dll
// Raster types used by VirtualDub & Avisynth
typedef unsigned int Pixel32;
typedef unsigned char BYTE;
// Audio Sample information
typedef float SFLOAT;
#ifdef __GNUC__
typedef long long int INT64;
#else
typedef __int64 INT64;
#endif
#endif //AVS_TYPES_H

View File

@@ -66,6 +66,8 @@ static av_always_inline int pthread_create(pthread_t *thread, const pthread_attr
struct thread_arg *thread_arg;
thread_arg = av_mallocz(sizeof(struct thread_arg));
if (!thread_arg)
return ENOMEM;
thread_arg->start_routine = start_routine;
thread_arg->arg = arg;

362
configure vendored

File diff suppressed because it is too large Load Diff

View File

@@ -15,6 +15,62 @@ libavutil: 2014-08-09
API changes, most recent first:
-------- 8< --------- FFmpeg 2.7 was cut here -------- 8< ---------
2015-06-04 - cc17b43 - lswr 1.2.100
Add swr_get_out_samples()
2015-05-27 - c312bfa - lavu 54.26.100 - cpu.h
Add AV_CPU_FLAG_AVXSLOW.
2015-05-26 - 1fb9b2a - lavu 54.25.100 - rational.h
Add av_q2intfloat().
2015-05-13 - cc48409 / e7c5e17 - lavc 56.39.100 / 56.23.0
Add av_vda_default_init2.
2015-05-11 - 541d75f - lavf 56.33.100 - avformat.h
Add AVOpenCallback AVFormatContext.open_cb
2015-05-07 - a7dd933 - 56.38.100 - avcodec.h
Add av_packet_side_data_name().
2015-05-07 - 01e59d4 - 56.37.102 - avcodec.h
Add FF_PROFILE_VP9_2 and FF_PROFILE_VP9_3.
2015-05-04 - 079b7f6 - 56.37.100 - avcodec.h
Add FF_PROFILE_VP9_0 and FF_PROFILE_VP9_1.
2015-04-22 - 748d481 - lavf 56.31.100 - avformat.h
Add AVFMT_FLAG_FAST_SEEK flag. Some formats (initially mp3) use it to enable
fast, but inaccurate seeking.
2015-04-20 - 8e8219e / c253340 - lavu 54.23.100 / 54.12.0 - log.h
Add AV_LOG_TRACE for extremely verbose debugging.
2015-04-02 - 26e0e393 - lavf 56.29.100 - avio.h
Add AVIODirEntryType.AVIO_ENTRY_SERVER.
Add AVIODirEntryType.AVIO_ENTRY_SHARE.
Add AVIODirEntryType.AVIO_ENTRY_WORKGROUP.
2015-03-31 - 3188696 - lavu 54.22.100 - avstring.h
Add av_append_path_component()
2015-03-27 - 184084c - lavf 56.27.100 - avio.h url.h
New directory listing API.
Add AVIODirEntryType enum.
Add AVIODirEntry, AVIODirContext structures.
Add avio_open_dir(), avio_read_dir(), avio_close_dir(), avio_free_directory_entry().
Add ff_alloc_dir_entry().
Extend URLProtocol with url_open_dir(), url_read_dir(), url_close_dir().
2015-03-29 - 268ff17 / c484561 - lavu 54.21.100 / 54.10.0 - pixfmt.h
Add AV_PIX_FMT_MMAL for MMAL hardware acceleration.
2015-03-19 - 11fe56c - 56.29.100 / lavc 56.22.0
Add FF_PROFILE_DTS_EXPRESS.
-------- 8< --------- FFmpeg 2.6 was cut here -------- 8< ---------
2015-03-04 - cca4476 - lavf 56.25.100

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 = 2.6.1
PROJECT_NUMBER = 2.7.6
# 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

@@ -36,6 +36,7 @@ DOCS-$(CONFIG_MANPAGES) += $(MANPAGES)
DOCS-$(CONFIG_TXTPAGES) += $(TXTPAGES)
DOCS = $(DOCS-yes)
DOC_EXAMPLES-$(CONFIG_AVIO_LIST_DIR_EXAMPLE) += avio_list_dir
DOC_EXAMPLES-$(CONFIG_AVIO_READING_EXAMPLE) += avio_reading
DOC_EXAMPLES-$(CONFIG_AVCODEC_EXAMPLE) += avcodec
DOC_EXAMPLES-$(CONFIG_DECODING_ENCODING_EXAMPLE) += decoding_encoding

View File

@@ -139,6 +139,26 @@ ffmpeg -i frame_%d.jpg -c:v copy rotated.avi
@section mp3_header_decompress
@section mpeg4_unpack_bframes
Unpack DivX-style packed B-frames.
DivX-style packed B-frames are not valid MPEG-4 and were only a
workaround for the broken Video for Windows subsystem.
They use more space, can cause minor AV sync issues, require more
CPU power to decode (unless the player has some decoded picture queue
to compensate the 2,0,2,0 frame per packet style) and cause
trouble if copied into a standard container like mp4 or mpeg-ps/ts,
because MPEG-4 decoders may not be able to decode them, since they are
not valid MPEG-4.
For example to fix an AVI file containing an MPEG-4 stream with
DivX-style packed B-frames using @command{ffmpeg}, you can use the command:
@example
ffmpeg -i INPUT.avi -codec copy -bsf:v mpeg4_unpack_bframes OUTPUT.avi
@end example
@section noise
Damages the contents of packets without damaging the container. Can be

View File

@@ -16,6 +16,9 @@ DESTDIR
Destination directory for the install targets, useful to prepare packages
or install FFmpeg in cross-environments.
GEN
Set to 1 to generate the missing or mismatched references.
Makefile targets:
all

View File

@@ -83,6 +83,23 @@ Loud sounds are fully compressed. Soft sounds are enhanced.
@end table
@section flac
FLAC audio decoder.
This decoder aims to implement the complete FLAC specification from Xiph.
@subsection FLAC Decoder options
@table @option
@item -use_buggy_lpc
The lavc FLAC encoder used to produce buggy streams with high lpc values
(like the default value). This option makes it possible to decode such streams
correctly by using lavc's old buggy lpc logic for decoding.
@end table
@section ffwavesynth
Internal wave synthetizer.

View File

@@ -151,6 +151,7 @@ probed and 0 otherwise.
@item auto_convert
If set to 1, try to perform automatic conversions on packet data to make the
streams concatenable.
The default is 1.
Currently, the only conversion is adding the h264_mp4toannexb bitstream
filter to H.264 streams in MP4 format. This is necessary in particular if
@@ -205,6 +206,11 @@ It accepts the following options:
Set the minimum valid delay between frames in hundredths of seconds.
Range is 0 to 6000. Default value is 2.
@item max_gif_delay
Set the maximum valid delay between frames in hundredth of seconds.
Range is 0 to 65535. Default value is 65535 (nearly eleven minutes),
the maximum value allowed by the specification.
@item default_delay
Set the default delay between frames in hundredths of seconds.
Range is 0 to 6000. Default value is 10.
@@ -253,6 +259,10 @@ Select the pattern type used to interpret the provided filename.
@var{pattern_type} accepts one of the following values.
@table @option
@item none
Disable pattern matching, therefore the video will only contain the specified
image. You should use this option if you do not want to create sequences from
multiple images and your filenames may contain special pattern characters.
@item sequence
Select a sequence pattern type, used to specify a sequence of files
indexed by sequential numbers.
@@ -359,6 +369,23 @@ ffmpeg -framerate 10 -pattern_type glob -i "*.png" out.mkv
@end example
@end itemize
@section mov/mp4/3gp/Quicktme
Quicktime / MP4 demuxer.
This demuxer accepts the following options:
@table @option
@item enable_drefs
Enable loading of external tracks, disabled by default.
Enabling this can theoretically leak information in some use cases.
@item use_absolute_path
Allows loading of external tracks via absolute paths, disabled by default.
Enabling this poses a security risk. It should only be enabled if the source
is known to be non malicious.
@end table
@section mpegts
MPEG-2 transport stream demuxer.

View File

@@ -228,7 +228,7 @@ autocmd InsertEnter * match ForbiddenWhitespace /\t\|\s\+\%#\@@<!$/
@end example
For Emacs, add these roughly equivalent lines to your @file{.emacs.d/init.el}:
@example
@lisp
(c-add-style "ffmpeg"
'("k&r"
(c-basic-offset . 4)
@@ -239,7 +239,7 @@ For Emacs, add these roughly equivalent lines to your @file{.emacs.d/init.el}:
)
)
(setq c-default-style "ffmpeg")
@end example
@end lisp
@section Development Policy

View File

@@ -494,6 +494,85 @@ Selected by Encoder (default)
@end table
@anchor{flac}
@section flac
FLAC (Free Lossless Audio Codec) Encoder
@subsection Options
The following options are supported by FFmpeg's flac encoder.
@table @option
@item compression_level
Sets the compression level, which chooses defaults for many other options
if they are not set explicitly.
@item frame_size
Sets the size of the frames in samples per channel.
@item lpc_coeff_precision
Sets the LPC coefficient precision, valid values are from 1 to 15, 15 is the
default.
@item lpc_type
Sets the first stage LPC algorithm
@table @samp
@item none
LPC is not used
@item fixed
fixed LPC coefficients
@item levinson
@item cholesky
@end table
@item lpc_passes
Number of passes to use for Cholesky factorization during LPC analysis
@item min_partition_order
The minimum partition order
@item max_partition_order
The maximum partition order
@item prediction_order_method
@table @samp
@item estimation
@item 2level
@item 4level
@item 8level
@item search
Bruteforce search
@item log
@end table
@item ch_mode
Channel mode
@table @samp
@item auto
The mode is chosen automatically for each frame
@item indep
Chanels are independently coded
@item left_side
@item right_side
@item mid_side
@end table
@item exact_rice_parameters
Chooses if rice parameters are calculated exactly or approximately.
if set to 1 then they are chosen exactly, which slows the code down slightly and
improves compression slightly.
@item multi_dim_quant
Multi Dimensional Quantization. If set to 1 then a 2nd stage LPC algorithm is
applied after the first stage to finetune the coefficients. This is quite slow
and slightly improves compression.
@end table
@anchor{libfaac}
@section libfaac

View File

@@ -11,7 +11,8 @@ CFLAGS += -Wall -g
CFLAGS := $(shell pkg-config --cflags $(FFMPEG_LIBS)) $(CFLAGS)
LDLIBS := $(shell pkg-config --libs $(FFMPEG_LIBS)) $(LDLIBS)
EXAMPLES= avio_reading \
EXAMPLES= avio_list_dir \
avio_reading \
decoding_encoding \
demuxing_decoding \
extract_mvs \

View File

@@ -0,0 +1,120 @@
/*
* Copyright (c) 2014 Lukasz Marek
*
* 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 <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
#include <libavformat/avio.h>
static const char *type_string(int type)
{
switch (type) {
case AVIO_ENTRY_DIRECTORY:
return "<DIR>";
case AVIO_ENTRY_FILE:
return "<FILE>";
case AVIO_ENTRY_BLOCK_DEVICE:
return "<BLOCK DEVICE>";
case AVIO_ENTRY_CHARACTER_DEVICE:
return "<CHARACTER DEVICE>";
case AVIO_ENTRY_NAMED_PIPE:
return "<PIPE>";
case AVIO_ENTRY_SYMBOLIC_LINK:
return "<LINK>";
case AVIO_ENTRY_SOCKET:
return "<SOCKET>";
case AVIO_ENTRY_SERVER:
return "<SERVER>";
case AVIO_ENTRY_SHARE:
return "<SHARE>";
case AVIO_ENTRY_WORKGROUP:
return "<WORKGROUP>";
case AVIO_ENTRY_UNKNOWN:
default:
break;
}
return "<UNKNOWN>";
}
int main(int argc, char *argv[])
{
const char *input_dir = NULL;
AVIODirEntry *entry = NULL;
AVIODirContext *ctx = NULL;
int cnt, ret;
char filemode[4], uid_and_gid[20];
av_log_set_level(AV_LOG_DEBUG);
if (argc != 2) {
fprintf(stderr, "usage: %s input_dir\n"
"API example program to show how to list files in directory "
"accessed through AVIOContext.\n", argv[0]);
return 1;
}
input_dir = argv[1];
/* register codecs and formats and other lavf/lavc components*/
av_register_all();
avformat_network_init();
if ((ret = avio_open_dir(&ctx, input_dir, NULL)) < 0) {
av_log(NULL, AV_LOG_ERROR, "Cannot open directory: %s.\n", av_err2str(ret));
goto fail;
}
cnt = 0;
for (;;) {
if ((ret = avio_read_dir(ctx, &entry)) < 0) {
av_log(NULL, AV_LOG_ERROR, "Cannot list directory: %s.\n", av_err2str(ret));
goto fail;
}
if (!entry)
break;
if (entry->filemode == -1) {
snprintf(filemode, 4, "???");
} else {
snprintf(filemode, 4, "%3"PRIo64, entry->filemode);
}
snprintf(uid_and_gid, 20, "%"PRId64"(%"PRId64")", entry->user_id, entry->group_id);
if (cnt == 0)
av_log(NULL, AV_LOG_INFO, "%-9s %12s %30s %10s %s %16s %16s %16s\n",
"TYPE", "SIZE", "NAME", "UID(GID)", "UGO", "MODIFIED",
"ACCESSED", "STATUS_CHANGED");
av_log(NULL, AV_LOG_INFO, "%-9s %12"PRId64" %30s %10s %s %16"PRId64" %16"PRId64" %16"PRId64"\n",
type_string(entry->type),
entry->size,
entry->name,
uid_and_gid,
filemode,
entry->modification_timestamp,
entry->access_timestamp,
entry->status_change_timestamp);
avio_free_directory_entry(&entry);
cnt++;
};
fail:
avio_close_dir(&ctx);
avformat_network_deinit();
return ret < 0 ? 1 : 0;
}

View File

@@ -81,22 +81,24 @@ static int decode_packet(int *got_frame, int cached)
fprintf(stderr, "Error decoding video frame (%s)\n", av_err2str(ret));
return ret;
}
if (video_dec_ctx->width != width || video_dec_ctx->height != height ||
video_dec_ctx->pix_fmt != pix_fmt) {
/* To handle this change, one could call av_image_alloc again and
* decode the following frames into another rawvideo file. */
fprintf(stderr, "Error: Width, height and pixel format have to be "
"constant in a rawvideo file, but the width, height or "
"pixel format of the input video changed:\n"
"old: width = %d, height = %d, format = %s\n"
"new: width = %d, height = %d, format = %s\n",
width, height, av_get_pix_fmt_name(pix_fmt),
video_dec_ctx->width, video_dec_ctx->height,
av_get_pix_fmt_name(video_dec_ctx->pix_fmt));
return -1;
}
if (*got_frame) {
if (frame->width != width || frame->height != height ||
frame->format != pix_fmt) {
/* To handle this change, one could call av_image_alloc again and
* decode the following frames into another rawvideo file. */
fprintf(stderr, "Error: Width, height and pixel format have to be "
"constant in a rawvideo file, but the width, height or "
"pixel format of the input video changed:\n"
"old: width = %d, height = %d, format = %s\n"
"new: width = %d, height = %d, format = %s\n",
width, height, av_get_pix_fmt_name(pix_fmt),
frame->width, frame->height,
av_get_pix_fmt_name(frame->format));
return -1;
}
printf("video_frame%s n:%d coded_n:%d pts:%s\n",
cached ? "(cached)" : "",
video_frame_count++, frame->coded_picture_number,

View File

@@ -117,7 +117,7 @@ static int open_output_file(const char *filename)
/* 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");
av_log(NULL, AV_LOG_FATAL, "Necessary encoder not found\n");
return AVERROR_INVALIDDATA;
}

View File

@@ -13,36 +13,36 @@
@chapter Introduction
FATE is an extended regression suite on the client-side and a means
FATE is an extended regression suite on the client-side and a means
for results aggregation and presentation on the server-side.
The first part of this document explains how you can use FATE from
The first part of this document explains how you can use FATE from
your FFmpeg source directory to test your ffmpeg binary. The second
part describes how you can run FATE to submit the results to FFmpeg's
FATE server.
In any way you can have a look at the publicly viewable FATE results
In any way you can have a look at the publicly viewable FATE results
by visiting this website:
@url{http://fate.ffmpeg.org/}
@url{http://fate.ffmpeg.org/}
This is especially recommended for all people contributing source
This is especially recommended for all people contributing source
code to FFmpeg, as it can be seen if some test on some platform broke
with their recent contribution. This usually happens on the platforms
the developers could not test on.
The second part of this document describes how you can run FATE to
The second part of this document describes how you can run FATE to
submit your results to FFmpeg's FATE server. If you want to submit your
results be sure to check that your combination of CPU, OS and compiler
is not already listed on the above mentioned website.
In the third part you can find a comprehensive listing of FATE makefile
In the third part you can find a comprehensive listing of FATE makefile
targets and variables.
@chapter Using FATE from your FFmpeg source directory
If you want to run FATE on your machine you need to have the samples
If you want to run FATE on your machine you need to have the samples
in place. You can get the samples via the build target fate-rsync.
Use this command from the top-level source directory:
@@ -51,11 +51,11 @@ make fate-rsync SAMPLES=fate-suite/
make fate SAMPLES=fate-suite/
@end example
The above commands set the samples location by passing a makefile
The above commands set the samples location by passing a makefile
variable via command line. It is also possible to set the samples
location at source configuration time by invoking configure with
`--samples=<path to the samples directory>'. Afterwards you can
invoke the makefile targets without setting the SAMPLES makefile
@option{--samples=<path to the samples directory>}. Afterwards you can
invoke the makefile targets without setting the @var{SAMPLES} makefile
variable. This is illustrated by the following commands:
@example
@@ -64,7 +64,7 @@ make fate-rsync
make fate
@end example
Yet another way to tell FATE about the location of the sample
Yet another way to tell FATE about the location of the sample
directory is by making sure the environment variable FATE_SAMPLES
contains the path to your samples directory. This can be achieved
by e.g. putting that variable in your shell profile or by setting
@@ -85,7 +85,7 @@ To use a custom wrapper to run the test, pass @option{--target-exec} to
@chapter Submitting the results to the FFmpeg result aggregation server
To submit your results to the server you should run fate through the
To submit your results to the server you should run fate through the
shell script @file{tests/fate.sh} from the FFmpeg sources. This script needs
to be invoked with a configuration file as its first argument.
@@ -93,23 +93,23 @@ to be invoked with a configuration file as its first argument.
tests/fate.sh /path/to/fate_config
@end example
A configuration file template with comments describing the individual
A configuration file template with comments describing the individual
configuration variables can be found at @file{doc/fate_config.sh.template}.
@ifhtml
The mentioned configuration template is also available here:
The mentioned configuration template is also available here:
@verbatiminclude fate_config.sh.template
@end ifhtml
Create a configuration that suits your needs, based on the configuration
template. The `slot' configuration variable can be any string that is not
Create a configuration that suits your needs, based on the configuration
template. The @env{slot} configuration variable can be any string that is not
yet used, but it is suggested that you name it adhering to the following
pattern <arch>-<os>-<compiler>-<compiler version>. The configuration file
itself will be sourced in a shell script, therefore all shell features may
be used. This enables you to setup the environment as you need it for your
build.
pattern @samp{@var{arch}-@var{os}-@var{compiler}-@var{compiler version}}. The
configuration file itself will be sourced in a shell script, therefore all
shell features may be used. This enables you to setup the environment as you
need it for your build.
For your first test runs the `fate_recv' variable should be empty or
For your first test runs the @env{fate_recv} variable should be empty or
commented out. This will run everything as normal except that it will omit
the submission of the results to the server. The following files should be
present in $workdir as specified in the configuration file:
@@ -122,29 +122,29 @@ present in $workdir as specified in the configuration file:
@item version
@end itemize
When you have everything working properly you can create an SSH key pair
When you have everything working properly you can create an SSH key pair
and send the public key to the FATE server administrator who can be contacted
at the email address @email{fate-admin@@ffmpeg.org}.
Configure your SSH client to use public key authentication with that key
Configure your SSH client to use public key authentication with that key
when connecting to the FATE server. Also do not forget to check the identity
of the server and to accept its host key. This can usually be achieved by
running your SSH client manually and killing it after you accepted the key.
The FATE server's fingerprint is:
@table @option
@table @samp
@item RSA
d3:f1:83:97:a4:75:2b:a6:fb:d6:e8:aa:81:93:97:51
@item ECDSA
76:9f:68:32:04:1e:d5:d4:ec:47:3f:dc:fc:18:17:86
@end table
If you have problems connecting to the FATE server, it may help to try out
If you have problems connecting to the FATE server, it may help to try out
the @command{ssh} command with one or more @option{-v} options. You should
get detailed output concerning your SSH configuration and the authentication
process.
The only thing left is to automate the execution of the fate.sh script and
The only thing left is to automate the execution of the fate.sh script and
the synchronisation of the samples directory.
@@ -165,7 +165,7 @@ Run the FATE test suite (requires the fate-suite dataset).
@section Makefile variables
@table @option
@table @env
@item V
Verbosity level, can be set to 0, 1 or 2.
@itemize
@@ -183,20 +183,20 @@ Specify how many threads to use while running regression tests, it is
quite useful to detect thread-related regressions.
@item THREAD_TYPE
Specify which threading strategy test, either @var{slice} or @var{frame},
by default @var{slice+frame}
Specify which threading strategy test, either @samp{slice} or @samp{frame},
by default @samp{slice+frame}
@item CPUFLAGS
Specify CPU flags.
@item TARGET_EXEC
Specify or override the wrapper used to run the tests.
The @var{TARGET_EXEC} option provides a way to run FATE wrapped in
The @env{TARGET_EXEC} option provides a way to run FATE wrapped in
@command{valgrind}, @command{qemu-user} or @command{wine} or on remote targets
through @command{ssh}.
@item GEN
Set to @var{1} to generate the missing or mismatched references.
Set to @samp{1} to generate the missing or mismatched references.
@end table
@section Examples

View File

@@ -1,5 +1,6 @@
slot= # some unique identifier
repo=git://source.ffmpeg.org/ffmpeg.git # the source repository
#branch=release/2.6 # the branch to test
samples= # path to samples directory
workdir= # directory in which to do all the work
#fate_recv="ssh -T fate@fate.ffmpeg.org" # command to submit report

View File

@@ -80,7 +80,7 @@ The format option may be needed for raw input files.
The transcoding process in @command{ffmpeg} for each output can be described by
the following diagram:
@example
@verbatim
_______ ______________
| | | |
| input | demuxer | encoded data | decoder
@@ -99,7 +99,7 @@ the following diagram:
|________| |______________|
@end example
@end verbatim
@command{ffmpeg} calls the libavformat library (containing demuxers) to read
input files and get packets containing encoded data from them. When there are
@@ -124,7 +124,7 @@ Simple filtergraphs are those that have exactly one input and output, both of
the same type. In the above diagram they can be represented by simply inserting
an additional step between decoding and encoding:
@example
@verbatim
_________ ______________
| | | |
| decoded | | encoded data |
@@ -136,19 +136,19 @@ an additional step between decoding and encoding:
| frames |
|__________|
@end example
@end verbatim
Simple filtergraphs are configured with the per-stream @option{-filter} option
(with @option{-vf} and @option{-af} aliases for video and audio respectively).
A simple filtergraph for video can look for example like this:
@example
@verbatim
_______ _____________ _______ ________
| | | | | | | |
| input | ---> | deinterlace | ---> | scale | ---> | output |
|_______| |_____________| |_______| |________|
@end example
@end verbatim
Note that some filters change frame properties but not frame contents. E.g. the
@code{fps} filter in the example above changes number of frames, but does not
@@ -161,7 +161,7 @@ processing chain applied to one stream. This is the case, for example, when the
more than one input and/or output, or when output stream type is different from
input. They can be represented with the following diagram:
@example
@verbatim
_________
| |
| input 0 |\ __________
@@ -179,7 +179,7 @@ input. They can be represented with the following diagram:
| input 2 |/
|_________|
@end example
@end verbatim
Complex filtergraphs are configured with the @option{-filter_complex} option.
Note that this option is global, since a complex filtergraph, by its nature,
@@ -198,14 +198,14 @@ step for the specified stream, so it does only demuxing and muxing. It is useful
for changing the container format or modifying container-level metadata. The
diagram above will, in this case, simplify to this:
@example
@verbatim
_______ ______________ ________
| | | | | |
| input | demuxer | encoded data | muxer | output |
| file | ---------> | packets | -------> | file |
|_______| |______________| |________|
@end example
@end verbatim
Since there is no decoding or encoding, it is very fast and there is no quality
loss. However, it might not work in some cases because of many factors. Applying
@@ -462,6 +462,9 @@ Technical note -- attachments are implemented as codec extradata, so this
option can actually be used to extract extradata from any stream, not just
attachments.
@item -noautorotate
Disable automatically rotating video based on file metadata.
@end table
@section Video Options
@@ -832,6 +835,14 @@ ffmpeg -i INPUT -map 0:m:language:eng OUTPUT
Note that using this option disables the default mappings for this output file.
@item -ignore_unknown
Ignore input streams with unknown type instead of failing if copying
such streams is attempted.
@item -copy_unknown
Allow input streams with unknown type to be copied instead of failing if copying
such streams is attempted.
@item -map_channel [@var{input_file_id}.@var{stream_specifier}.@var{channel_id}|-1][:@var{output_file_id}.@var{stream_specifier}]
Map an audio channel from a given input to an output. If
@var{output_file_id}.@var{stream_specifier} is not set, the audio channel will
@@ -1158,7 +1169,14 @@ This option enables or disables accurate seeking in input files with the
transcoding. Use @option{-noaccurate_seek} to disable it, which may be useful
e.g. when copying some streams and transcoding the others.
@item -thread_message_queue @var{size} (@emph{input})
@item -seek_timestamp (@emph{input})
This option enables or disables seeking by timestamp in input files with the
@option{-ss} option. It is disabled by default. If enabled, the argument
to the @option{-ss} option is considered an actual timestamp, and is not
offset by the start time of the file. This matters only for files which do
not start from timestamp 0, such as transport streams.
@item -thread_queue_size @var{size} (@emph{input})
This option sets the maximum number of queued packets when reading from the
file or device. With low latency / high rate live streams, packets may be
discarded if they are not read in a timely manner; raising this value can
@@ -1175,9 +1193,9 @@ The option is intended for cases where features are needed that cannot be
specified to @command{ffserver} but can be to @command{ffmpeg}.
@item -sdp_file @var{file} (@emph{global})
Print sdp information to @var{file}.
Print sdp information for an output stream to @var{file}.
This allows dumping sdp information when at least one output isn't an
rtp stream.
rtp stream. (Requires at least one of the output formats to be rtp).
@item -discard (@emph{input})
Allows discarding specific streams or frames of streams at the demuxer.
@@ -1203,6 +1221,9 @@ Discard all frames excepts keyframes.
Discard all frames.
@end table
@item -xerror (@emph{global})
Stop and exit on error
@end table
As a special exception, you can use a bitmap subtitle stream as input: it
@@ -1469,7 +1490,7 @@ combination with -ss to start extracting from a certain point in time.
For creating a video from many images:
@example
ffmpeg -f image2 -i foo-%03d.jpeg -r 12 -s WxH foo.avi
ffmpeg -f image2 -framerate 12 -i foo-%03d.jpeg -s WxH foo.avi
@end example
The syntax @code{foo-%03d.jpeg} specifies to use a decimal number
@@ -1484,7 +1505,7 @@ image2-specific @code{-pattern_type glob} option.
For example, for creating a video from filenames matching the glob pattern
@code{foo-*.jpeg}:
@example
ffmpeg -f image2 -pattern_type glob -i 'foo-*.jpeg' -r 12 -s WxH foo.avi
ffmpeg -f image2 -pattern_type glob -framerate 12 -i 'foo-*.jpeg' -s WxH foo.avi
@end example
@item

View File

@@ -161,7 +161,7 @@ Force a specific video decoder.
Force a specific subtitle decoder.
@item -autorotate
Automatically rotate the video according to presentation metadata. Enabled by
Automatically rotate the video according to file metadata. Enabled by
default, use @option{-noautorotate} to disable it.
@item -framedrop

View File

@@ -447,17 +447,17 @@ writer).
It can assume one of the following values:
@table @option
@item c
Perform C-like escaping. Strings containing a newline ('\n'), carriage
return ('\r'), a tab ('\t'), a form feed ('\f'), the escaping
character ('\') or the item separator character @var{SEP} are escaped using C-like fashioned
escaping, so that a newline is converted to the sequence "\n", a
carriage return to "\r", '\' to "\\" and the separator @var{SEP} is
converted to "\@var{SEP}".
Perform C-like escaping. Strings containing a newline (@samp{\n}), carriage
return (@samp{\r}), a tab (@samp{\t}), a form feed (@samp{\f}), the escaping
character (@samp{\}) or the item separator character @var{SEP} are escaped
using C-like fashioned escaping, so that a newline is converted to the
sequence @samp{\n}, a carriage return to @samp{\r}, @samp{\} to @samp{\\} and
the separator @var{SEP} is converted to @samp{\@var{SEP}}.
@item csv
Perform CSV-like escaping, as described in RFC4180. Strings
containing a newline ('\n'), a carriage return ('\r'), a double quote
('"'), or @var{SEP} are enclosed in double-quotes.
containing a newline (@samp{\n}), a carriage return (@samp{\r}), a double quote
(@samp{"}), or @var{SEP} are enclosed in double-quotes.
@item none
Perform no escaping.
@@ -485,7 +485,7 @@ The description of the accepted options follows.
Separator character used to separate the chapter, the section name, IDs and
potential tags in the printed field key.
Default value is '.'.
Default value is @samp{.}.
@item hierarchical, h
Specify if the section name specification should be hierarchical. If
@@ -507,21 +507,22 @@ The following conventions are adopted:
@item
all key and values are UTF-8
@item
'.' is the subgroup separator
@samp{.} is the subgroup separator
@item
newline, '\t', '\f', '\b' and the following characters are escaped
newline, @samp{\t}, @samp{\f}, @samp{\b} and the following characters are
escaped
@item
'\' is the escape character
@samp{\} is the escape character
@item
'#' is the comment indicator
@samp{#} is the comment indicator
@item
'=' is the key/value separator
@samp{=} is the key/value separator
@item
':' is not used but usually parsed as key/value separator
@samp{:} is not used but usually parsed as key/value separator
@end itemize
This writer accepts options as a list of @var{key}=@var{value} pairs,
separated by ":".
separated by @samp{:}.
The description of the accepted options follows.

View File

@@ -48,6 +48,11 @@
</xsd:complexType>
<xsd:complexType name="packetType">
<xsd:sequence>
<xsd:element name="tag" type="ffprobe:tagType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="side_data_list" type="ffprobe:packetSideDataListType" minOccurs="0" maxOccurs="1" />
</xsd:sequence>
<xsd:attribute name="codec_type" type="xsd:string" use="required" />
<xsd:attribute name="stream_index" type="xsd:int" use="required" />
<xsd:attribute name="pts" type="xsd:long" />
@@ -65,6 +70,16 @@
<xsd:attribute name="data_hash" type="xsd:string" />
</xsd:complexType>
<xsd:complexType name="packetSideDataListType">
<xsd:sequence>
<xsd:element name="side_data" type="ffprobe:packetSideDataType" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="packetSideDataType">
<xsd:attribute name="side_data_type" type="xsd:string"/>
<xsd:attribute name="side_data_size" type="xsd:int" />
</xsd:complexType>
<xsd:complexType name="frameType">
<xsd:sequence>
<xsd:element name="tag" type="ffprobe:tagType" minOccurs="0" maxOccurs="unbounded"/>
@@ -72,6 +87,7 @@
</xsd:sequence>
<xsd:attribute name="media_type" type="xsd:string" use="required"/>
<xsd:attribute name="stream_index" type="xsd:int" />
<xsd:attribute name="key_frame" type="xsd:int" use="required"/>
<xsd:attribute name="pts" type="xsd:long" />
<xsd:attribute name="pts_time" type="xsd:float"/>
@@ -155,6 +171,7 @@
<xsd:sequence>
<xsd:element name="disposition" type="ffprobe:streamDispositionType" minOccurs="0" maxOccurs="1"/>
<xsd:element name="tag" type="ffprobe:tagType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="side_data_list" type="ffprobe:packetSideDataListType" minOccurs="0" maxOccurs="1" />
</xsd:sequence>
<xsd:attribute name="index" type="xsd:int" use="required"/>
@@ -171,6 +188,8 @@
<!-- video attributes -->
<xsd:attribute name="width" type="xsd:int"/>
<xsd:attribute name="height" type="xsd:int"/>
<xsd:attribute name="coded_width" type="xsd:int"/>
<xsd:attribute name="coded_height" type="xsd:int"/>
<xsd:attribute name="has_b_frames" type="xsd:int"/>
<xsd:attribute name="sample_aspect_ratio" type="xsd:string"/>
<xsd:attribute name="display_aspect_ratio" type="xsd:string"/>
@@ -254,6 +273,8 @@
<xsd:complexType name="programVersionType">
<xsd:attribute name="version" type="xsd:string" use="required"/>
<xsd:attribute name="copyright" type="xsd:string" use="required"/>
<xsd:attribute name="build_date" type="xsd:string"/>
<xsd:attribute name="build_time" type="xsd:string"/>
<xsd:attribute name="compiler_ident" type="xsd:string" use="required"/>
<xsd:attribute name="configuration" type="xsd:string" use="required"/>
</xsd:complexType>

View File

@@ -82,6 +82,7 @@ Feed feed1.ffm
# ra : RealNetworks-compatible stream. Audio only.
# mpjpeg : Multipart JPEG (works with Netscape without any plugin)
# jpeg : Generate a single JPEG image.
# mjpeg : Generate a M-JPEG stream.
# asf : ASF compatible streaming (Windows Media Player format).
# swf : Macromedia Flash compatible stream
# avi : AVI format (MPEG-4 video, MPEG audio sound)

View File

@@ -118,7 +118,8 @@ Multiple streams can be connected to the same feed.
For example, you can have a situation described by the following
graph:
@example
@verbatim
_________ __________
| | | |
ffmpeg 1 -----| feed 1 |-----| stream 1 |
@@ -143,7 +144,8 @@ ffmpeg 2 -----| feed 3 |-----| stream 4 |
| | | |
| file 1 |-----| stream 5 |
|_________| |__________|
@end example
@end verbatim
@anchor{FFM}
@section FFM, FFM2 formats

View File

@@ -50,6 +50,9 @@ Match the stream by stream id (e.g. PID in MPEG-TS container).
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.
@item u
Matches streams with usable configuration, the codec must be defined and the
essential information such as video dimension or audio sample rate must be present.
Note that in @command{ffmpeg}, matching by metadata will only work properly for
input files.
@@ -187,6 +190,7 @@ warnings and errors. This is the default value.
Same as @code{info}, except more verbose.
@item debug, 48
Show everything, including debugging information.
@item trace, 56
@end table
By default the program logs to stderr, if coloring is supported by the
@@ -261,10 +265,14 @@ Possible flags for this option are:
@item sse4.1
@item sse4.2
@item avx
@item avx2
@item xop
@item fma3
@item fma4
@item 3dnow
@item 3dnowext
@item bmi1
@item bmi2
@item cmov
@end table
@item ARM
@@ -275,6 +283,13 @@ Possible flags for this option are:
@item vfp
@item vfpv3
@item neon
@item setend
@end table
@item AArch64
@table @samp
@item armv8
@item vfp
@item neon
@end table
@item PowerPC
@table @samp

View File

@@ -8,13 +8,13 @@ outputs.
To illustrate the sorts of things that are possible, we consider the
following filtergraph.
@example
@verbatim
[main]
input --> split ---------------------> overlay --> output
| ^
|[tmp] [flip]|
+-----> crop --> vflip -------+
@end example
@end verbatim
This filtergraph splits the input stream in two streams, then sends one
stream through the crop filter and the vflip filter, before merging it
@@ -163,13 +163,13 @@ follow the same constraints order of the previous point. The following
If the option value itself is a list of items (e.g. the @code{format} filter
takes a list of pixel formats), the items in the list are usually separated by
'|'.
@samp{|}.
The list of arguments can be quoted using the character "'" as initial
and ending mark, and the character '\' for escaping the characters
The list of arguments can be quoted using the character @samp{'} as initial
and ending mark, and the character @samp{\} for escaping the characters
within the quoted text; otherwise the argument string is considered
terminated when the next special character (belonging to the set
"[]=;,") is encountered.
@samp{[]=;,}) is encountered.
The name and arguments of the filter are optionally preceded and
followed by a list of link labels.
@@ -1320,6 +1320,61 @@ front_center.wav -map '[LFE]' lfe.wav -map '[SL]' side_left.wav -map '[SR]'
side_right.wav
@end example
@section chorus
Add a chorus effect to the audio.
Can make a single vocal sound like a chorus, but can also be applied to instrumentation.
Chorus resembles an echo effect with a short delay, but whereas with echo the delay is
constant, with chorus, it is varied using using sinusoidal or triangular modulation.
The modulation depth defines the range the modulated delay is played before or after
the delay. Hence the delayed sound will sound slower or faster, that is the delayed
sound tuned around the original one, like in a chorus where some vocals are slightly
off key.
It accepts the following parameters:
@table @option
@item in_gain
Set input gain. Default is 0.4.
@item out_gain
Set output gain. Default is 0.4.
@item delays
Set delays. A typical delay is around 40ms to 60ms.
@item decays
Set decays.
@item speeds
Set speeds.
@item depths
Set depths.
@end table
@subsection Examples
@itemize
@item
A single delay:
@example
chorus=0.7:0.9:55:0.4:0.25:2
@end example
@item
Two delays:
@example
chorus=0.6:0.9:50|60:0.4|0.32:0.25|0.4:2|1.3
@end example
@item
Fuller sounding chorus with three delays:
@example
chorus=0.5:0.9:50|60|40:0.4|0.32|0.3:0.25|0.4|0.3:2|2.3|1.3
@end example
@end itemize
@section compand
Compress or expand the audio's dynamic range.
@@ -2693,8 +2748,11 @@ Available values for component modes are:
@item divide
@item dodge
@item exclusion
@item glow
@item hardlight
@item hardmix
@item lighten
@item linearlight
@item multiply
@item negation
@item normal
@@ -3728,6 +3786,33 @@ FFmpeg was configured with @code{--enable-opencl}. Default value is 0.
@end table
@section detelecine
Apply an exact inverse of the telecine operation. It requires a predefined
pattern specified using the pattern option which must be the same as that passed
to the telecine filter.
This filter accepts the following options:
@table @option
@item first_field
@table @samp
@item top, t
top field first
@item bottom, b
bottom field first
The default value is @code{top}.
@end table
@item pattern
A string of numbers representing the pulldown pattern you wish to apply.
The default value is @code{23}.
@item start_frame
A number representing position of the first frame with respect to the telecine
pattern. This is to be used if the stream is cut. The default value is @code{0}.
@end table
@section drawbox
Draw a colored box on the input image.
@@ -3928,6 +4013,10 @@ Used to draw a box around text using the background color.
The value must be either 1 (enable) or 0 (disable).
The default value of @var{box} is 0.
@item boxborderw
Set the width of the border to be drawn around the box using @var{boxcolor}.
The default value of @var{boxborderw} is 0.
@item boxcolor
The color to be used for drawing box around text. For the syntax of this
option, check the "Color" section in the ffmpeg-utils manual.
@@ -3971,6 +4060,16 @@ The font family to be used for drawing text. By default Sans.
The font file to be used for drawing text. The path must be included.
This parameter is mandatory if the fontconfig support is disabled.
@item draw
This option does not exist, please see the timeline system
@item alpha
Draw the text applying alpha blending. The value can
be either a number between 0.0 and 1.0
The expression accepts the same variables @var{x, y} do.
The default value is 1.
Please see fontcolor_expr
@item fontsize
The font size to be used for drawing text.
The default value of @var{fontsize} is 16.
@@ -4149,7 +4248,7 @@ If @option{expansion} is set to @code{none}, the text is printed verbatim.
If @option{expansion} is set to @code{normal} (which is the default),
the following expansion mechanism is used.
The backslash character '\', followed by any character, always expands to
The backslash character @samp{\}, followed by any character, always expands to
the second character.
Sequence of the form @code{%@{...@}} are expanded. The text between the
@@ -4181,8 +4280,9 @@ value.
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 second argument specifies the output format. Allowed values are @samp{x},
@samp{X}, @samp{d} and @samp{u}. They are treated exactly as in the
@code{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.
@@ -4243,7 +4343,7 @@ within the parameter list.
@item
Show the text at the center of the video frame:
@example
drawtext="fontsize=30:fontfile=FreeSerif.ttf:text='hello world':x=(w-text_w)/2:y=(h-text_h-line_h)/2"
drawtext="fontsize=30:fontfile=FreeSerif.ttf:text='hello world':x=(w-text_w)/2:y=(h-text_h)/2"
@end example
@item
@@ -4366,40 +4466,72 @@ The filter accepts the following options:
@table @option
@item contrast
Set the contrast value. It accepts a float value in range @code{-2.0} to
@code{2.0}. The default value is @code{0.0}.
Set the contrast expression. The value must be a float value in range
@code{-2.0} to @code{2.0}. The default value is "0".
@item brightness
Set the brightness value. It accepts a float value in range @code{-1.0} to
@code{1.0}. The default value is @code{0.0}.
Set the brightness expression. The value must be a float value in
range @code{-1.0} to @code{1.0}. The default value is "0".
@item saturation
Set the saturation value. It accepts a float value in range @code{0.0} to
@code{3.0}. The default value is @code{1.0}.
Set the saturation expression. The value must be a float in
range @code{0.0} to @code{3.0}. The default value is "1".
@item gamma
Set the gamma value. It accepts a float value in range @code{0.1} to @code{10.0}.
The default value is @code{1.0}.
Set the gamma expression. The value must be a float in range
@code{0.1} to @code{10.0}. The default value is "1".
@item gamma_r
Set the gamma value for red. It accepts a float value in range
@code{0.1} to @code{10.0}. The default value is @code{1.0}.
Set the gamma expression for red. The value must be a float in
range @code{0.1} to @code{10.0}. The default value is "1".
@item gamma_g
Set the gamma value for green. It accepts a float value in range
@code{0.1} to @code{10.0}. The default value is @code{1.0}.
Set the gamma expression for green. The value must be a float in range
@code{0.1} to @code{10.0}. The default value is "1".
@item gamma_b
Set the gamma value for blue. It accepts a float value in range
@code{0.1} to @code{10.0}. The default value is @code{1.0}.
Set the gamma expression for blue. The value must be a float in range
@code{0.1} to @code{10.0}. The default value is "1".
@item gamma_weight
Can be used to reduce the effect of a high gamma value on bright image areas,
e.g. keep them from getting overamplified and just plain white. It accepts a
float value in range @code{0.0} to @code{1.0}.A value of @code{0.0} turns the
gamma correction all the way down while @code{1.0} leaves it at its full strength.
Default is @code{1.0}.
Set the gamma weight expression. It can be used to reduce the effect
of a high gamma value on bright image areas, e.g. keep them from
getting overamplified and just plain white. The value must be a float
in range @code{0.0} to @code{1.0}. A value of @code{0.0} turns the
gamma correction all the way down while @code{1.0} leaves it at its
full strength. Default is "1".
@item eval
Set when the expressions for brightness, contrast, saturation and
gamma expressions are evaluated.
It accepts the following values:
@table @samp
@item init
only evaluate expressions once during the filter initialization or
when a command is processed
@item frame
evaluate expressions for each incoming frame
@end table
Default value is @samp{init}.
@end table
The expressions accept the following parameters:
@table @option
@item n
frame count of the input frame starting from 0
@item pos
byte position of the corresponding packet in the input file, NAN if
unspecified
@item r
frame rate of the input video, NAN if the input frame rate is unknown
@item t
timestamp expressed in seconds, NAN if the input timestamp is unknown
@end table
@subsection Commands
@@ -4538,7 +4670,8 @@ The number of seconds for which the fade effect has to last. At the end of the
fade-in effect the output video will have the same intensity as the input video,
at the end of the fade-out transition the output video will be filled with the
selected @option{color}.
If both duration and nb_frames are specified, duration is used. Default is 0.
If both duration and nb_frames are specified, duration is used. Default is 0
(nb_frames is used by default).
@item color, c
Specify the color of the fade. Default is "black".
@@ -4591,6 +4724,67 @@ fade=t=in:st=5.5:d=0.5
@end itemize
@section fftfilt
Apply arbitrary expressions to samples in frequency domain
@table @option
@item dc_Y
Adjust the dc value (gain) of the luma plane of the image. The filter
accepts an integer value in range @code{0} to @code{1000}. The default
value is set to @code{0}.
@item dc_U
Adjust the dc value (gain) of the 1st chroma plane of the image. The
filter accepts an integer value in range @code{0} to @code{1000}. The
default value is set to @code{0}.
@item dc_V
Adjust the dc value (gain) of the 2nd chroma plane of the image. The
filter accepts an integer value in range @code{0} to @code{1000}. The
default value is set to @code{0}.
@item weight_Y
Set the frequency domain weight expression for the luma plane.
@item weight_U
Set the frequency domain weight expression for the 1st chroma plane.
@item weight_V
Set the frequency domain weight expression for the 2nd chroma plane.
The filter accepts the following variables:
@item X
@item Y
The coordinates of the current sample.
@item W
@item H
The width and height of the image.
@end table
@subsection Examples
@itemize
@item
High-pass:
@example
fftfilt=dc_Y=128:weight_Y='squish(1-(Y+X)/100)'
@end example
@item
Low-pass:
@example
fftfilt=dc_Y=0:weight_Y='squish((Y+X)/100-1)'
@end example
@item
Sharpen:
@example
fftfilt=dc_Y=0:weight_Y='1+squish(1-(Y+X)/100)'
@end example
@end itemize
@section field
Extract a single field from an interlaced image using stride
@@ -4972,6 +5166,70 @@ framework.
It does not take parameters.
@section find_rect
Find a rectangular object
It accepts the following options:
@table @option
@item object
Filepath of the object image, needs to be in gray8.
@item threshold
Detection threshold, default is 0.5.
@item mipmaps
Number of mipmaps, default is 3.
@item xmin, ymin, xmax, ymax
Specifies the rectangle in which to search.
@end table
@subsection Examples
@itemize
@item
Generate a representative palette of a given video using @command{ffmpeg}:
@example
ffmpeg -i file.ts -vf find_rect=newref.pgm,cover_rect=cover.jpg:mode=cover new.mkv
@end example
@end itemize
@section cover_rect
Cover a rectangular object
It accepts the following options:
@table @option
@item cover
Filepath of the optional cover image, needs to be in yuv420.
@item mode
Set covering mode.
It accepts the following values:
@table @samp
@item cover
cover it by the supplied image
@item blur
cover it by interpolating the surrounding pixels
@end table
Default value is @var{blur}.
@end table
@subsection Examples
@itemize
@item
Generate a representative palette of a given video using @command{ffmpeg}:
@example
ffmpeg -i file.ts -vf find_rect=newref.pgm,cover_rect=cover.jpg:mode=cover new.mkv
@end example
@end itemize
@anchor{format}
@section format
@@ -5866,7 +6124,7 @@ full weight of 1.0 forever.
When this is not 0 then idet will use the specified number of frames to determine
if the interlaced flag is accurate, it will not count undetermined frames.
If the flag is found to be accurate it will be used without any further
computations, if it is found to be inaccuarte it will be cleared without any
computations, if it is found to be inaccurate it will be cleared without any
further computations. This allows inserting the idet filter as a low computational
method to clean up the interlaced flag
@end table
@@ -11679,6 +11937,33 @@ aevalsrc=sin(1*2*PI*t)*sin(880*2*PI*t):cos(2*PI*200*t),asplit[out0],showwaves=r=
@end example
@end itemize
@section showwavespic
Convert input audio to a single video frame, representing the samples waves.
The filter accepts the following options:
@table @option
@item size, s
Specify the video size for the output. For the syntax of this option, check the
@ref{video size syntax,,"Video size" section in the ffmpeg-utils manual,ffmpeg-utils}.
Default value is @code{600x240}.
@item split_channels
Set if channels should be drawn separately or overlap. Default value is 0.
@end table
@subsection Examples
@itemize
@item
Extract a channel split representation of the wave form of a whole audio track
in a 1024x800 picture using @command{ffmpeg}:
@example
ffmpeg -i audio.flac -lavfi showwavespic=split_channels=1:s=1024x800 waveform.png
@end example
@end itemize
@section split, asplit
Split input into several identical outputs.

View File

@@ -37,6 +37,8 @@ Possible values:
@table @samp
@item ignidx
Ignore index.
@item fastseek
Enable fast, but inaccurate seeks for some formats.
@item genpts
Generate PTS.
@item nofillin
@@ -125,6 +127,25 @@ Consider all spec non compliancies as errors.
Consider things that a sane encoder should not do as an error.
@end table
@item max_interleave_delta @var{integer} (@emph{output})
Set maximum buffering duration for interleaving. The duration is
expressed in microseconds, and defaults to 1000000 (1 second).
To ensure all the streams are interleaved correctly, libavformat will
wait until it has at least one packet for each stream before actually
writing any packets to the output file. When some streams are
"sparse" (i.e. there are large gaps between successive packets), this
can result in excessive buffering.
This field specifies the maximum difference between the timestamps of the
first and the last packet in the muxing queue, above which libavformat
will output a packet regardless of whether it has queued a packet for all
the streams.
If set to 0, libavformat will continue buffering packets until it has
a packet for each stream, regardless of the maximum timestamp
difference between the buffered packets.
@item use_wallclock_as_timestamps @var{integer} (@emph{input})
Use wallclock as timestamps.

View File

@@ -179,8 +179,8 @@ included in compat/avisynth/, which allows the user to enable support
without needing to search for these headers themselves.
For Windows, supported AviSynth variants are
@url{http://avisynth.nl, AviSynth 2.5 or 2.6} for 32-bit builds and
@url{http://avs-plus.net, AviSynth+ 0.1} for 32-bit and 64-bit builds.
@url{http://avisynth.nl, AviSynth 2.6 RC1 or higher} for 32-bit builds and
@url{http://avs-plus.net, AviSynth+ r1718 or higher} for 32-bit and 64-bit builds.
For Linux and OS X, the supported AviSynth variant is
@url{https://github.com/avxsynth/avxsynth, AvxSynth}.
@@ -222,6 +222,7 @@ library:
@tab Audio format used on the Nintendo Gamecube.
@item AFC @tab @tab X
@tab Audio format used on the Nintendo Gamecube.
@item APNG @tab X @tab X
@item ASF @tab X @tab X
@item AST @tab X @tab X
@tab Audio format used on the Nintendo Wii.
@@ -253,6 +254,8 @@ library:
@item Delphine Software International CIN @tab @tab X
@tab Multimedia format used by Delphine Software games.
@item Digital Speech Standard (DSS) @tab @tab X
@item Canopus HQ @tab @tab X
@item Canopus HQA @tab @tab X
@item Canopus HQX @tab @tab X
@item CD+G @tab @tab X
@tab Video format used by CD+G karaoke disks
@@ -466,6 +469,7 @@ library:
@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 TDSC @tab @tab X
@item Text files @tab @tab X
@item THP @tab @tab X
@tab Used on the Nintendo GameCube.
@@ -507,6 +511,7 @@ following image formats are supported:
@item Alias PIX @tab X @tab X
@tab Alias/Wavefront PIX image format
@item animated GIF @tab X @tab X
@item APNG @tab X @tab X
@item BMP @tab X @tab X
@tab Microsoft BMP image
@item BRender PIX @tab @tab X
@@ -905,6 +910,7 @@ following image formats are supported:
@item COOK @tab @tab X
@tab All versions except 5.1 are supported.
@item DCA (DTS Coherent Acoustics) @tab X @tab X
@tab supported extensions: XCh, XLL (partially)
@item DPCM id RoQ @tab X @tab X
@tab Used in Quake III, Jedi Knight 2 and other computer games.
@item DPCM Interplay @tab @tab X
@@ -948,8 +954,8 @@ following image formats are supported:
@item Musepack SV8 @tab @tab X
@item Nellymoser Asao @tab X @tab X
@item On2 AVC (Audio for Video Codec) @tab @tab X
@item Opus @tab E @tab E
@tab supported through external library libopus
@item Opus @tab E @tab X
@tab encoding supported through external library libopus
@item PCM A-law @tab X @tab X
@item PCM mu-law @tab X @tab X
@item PCM signed 8-bit planar @tab X @tab X

View File

@@ -75,6 +75,7 @@ git config --global core.autocrlf false
@end example
@anchor{Updating the source tree to the latest revision}
@section Updating the source tree to the latest revision
@example
@@ -330,7 +331,7 @@ git push
Will push the changes to the default remote (@var{origin}).
Git will prevent you from pushing changes if the local and remote trees are
out of sync. Refer to and to sync the local tree.
out of sync. Refer to @ref{Updating the source tree to the latest revision}.
@example
git remote add <name> <url>

View File

@@ -150,6 +150,81 @@ $ ffmpeg -f avfoundation -pixel_format bgr0 -i "default:none" out.avi
BSD video input device.
@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
uyvy422 or v210, 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 can be 2, 8 or 16.
@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}.
@item bm_v210
If set to @samp{1}, video is captured in 10 bit v210 instead
of uyvy422. Not all Blackmagic devices support this option.
@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
@item
Capture video clip at 1080i50 10 bit:
@example
ffmpeg -bm_v210 1 -f decklink -i 'UltraStudio Mini Recorder@@11' -acodec copy -vcodec copy output.avi
@end example
@item
Capture video clip at 720p50 with 32bit audio:
@example
ffmpeg -bm_audiodepth 32 -f decklink -i 'UltraStudio Mini Recorder@@14' -acodec copy -vcodec copy output.avi
@end example
@item
Capture video clip at 576i50 with 8 audio channels:
@example
ffmpeg -bm_channels 8 -f decklink -i 'UltraStudio Mini Recorder@@3' -acodec copy -vcodec copy output.avi
@end example
@end itemize
@section dshow
Windows DirectShow input device.
@@ -275,6 +350,30 @@ If set to @option{true}, before capture starts, popup a display
dialog to the end user, allowing them to manually
modify TV audio (like mono vs. stereo, Language A,B or C).
@item audio_device_load
Load an audio capture filter device from file instead of searching
it by name. It may load additional parameters too, if the filter
supports the serialization of its properties to.
To use this an audio capture source has to be specified, but it can
be anything even fake one.
@item audio_device_save
Save the currently used audio capture filter device and its
parameters (if the filter supports it) to a file.
If a file with the same name exists it will be overwritten.
@item video_device_load
Load a video capture filter device from file instead of searching
it by name. It may load additional parameters too, if the filter
supports the serialization of its properties to.
To use this a video capture source has to be specified, but it can
be anything even fake one.
@item video_device_save
Save the currently used video capture filter device and its
parameters (if the filter supports it) to a file.
If a file with the same name exists it will be overwritten.
@end table
@subsection Examples
@@ -904,6 +1003,12 @@ conversion into the real time clock.
Some usage examples of the video4linux2 device with @command{ffmpeg}
and @command{ffplay}:
@itemize
@item
List supported formats for a video4linux2 device:
@example
ffplay -f video4linux2 -list_formats all /dev/video0
@end example
@item
Grab and show the input of a video4linux2 device:
@example
@@ -1112,86 +1217,5 @@ The syntax is:
Set the grabbing region coordinates. They are expressed as offset from the top left
corner of the X11 window. The default value is 0.
@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
uyvy422 or v210, 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 can be 2, 8 or 16.
@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}.
@item bm_v210
If set to @samp{1}, video is captured in 10 bit v210 instead
of uyvy422. Not all Blackmagic devices support this option.
@item bm_channels <CHANNELS>
Number of audio channels, can be 2, 8 or 16
@item bm_audiodepth <BITDEPTH>
Audio bit depth, can be 16 or 32.
@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
@item
Capture video clip at 1080i50 10 bit:
@example
ffmpeg -bm_v210 1 -f decklink -i 'UltraStudio Mini Recorder@@11' -acodec copy -vcodec copy output.avi
@end example
@item
Capture video clip at 720p50 with 32bit audio:
@example
ffmpeg -bm_audiodepth 32 -f decklink -i 'UltraStudio Mini Recorder@@14' -acodec copy -vcodec copy output.avi
@end example
@item
Capture video clip at 576i50 with 8 audio channels:
@example
ffmpeg -bm_channels 8 -f decklink -i 'UltraStudio Mini Recorder@@3' -acodec copy -vcodec copy output.avi
@end example
@end itemize
@c man end INPUT DEVICES

View File

@@ -12,10 +12,10 @@ A file consists of a header and a number of metadata tags divided into sections,
each on its own line.
@item
The header is a ';FFMETADATA' string, followed by a version number (now 1).
The header is a @samp{;FFMETADATA} string, followed by a version number (now 1).
@item
Metadata tags are of the form 'key=value'
Metadata tags are of the form @samp{key=value}
@item
Immediately after header follows global metadata
@@ -26,26 +26,30 @@ metadata.
@item
A section starts with the section name in uppercase (i.e. STREAM or CHAPTER) in
brackets ('[', ']') and ends with next section or end of file.
brackets (@samp{[}, @samp{]}) and ends with next section or end of file.
@item
At the beginning of a chapter section there may be an optional timebase to be
used for start/end values. It must be in form 'TIMEBASE=num/den', where num and
den are integers. If the timebase is missing then start/end times are assumed to
used for start/end values. It must be in form
@samp{TIMEBASE=@var{num}/@var{den}}, where @var{num} and @var{den} are
integers. If the timebase is missing then start/end times are assumed to
be in milliseconds.
Next a chapter section must contain chapter start and end times in form
'START=num', 'END=num', where num is a positive integer.
@samp{START=@var{num}}, @samp{END=@var{num}}, where @var{num} is a positive
integer.
@item
Empty lines and lines starting with ';' or '#' are ignored.
Empty lines and lines starting with @samp{;} or @samp{#} are ignored.
@item
Metadata keys or values containing special characters ('=', ';', '#', '\' and a
newline) must be escaped with a backslash '\'.
Metadata keys or values containing special characters (@samp{=}, @samp{;},
@samp{#}, @samp{\} and a newline) must be escaped with a backslash @samp{\}.
@item
Note that whitespace in metadata (e.g. foo = bar) is considered to be a part of
the tag (in the example above key is 'foo ', value is ' bar').
Note that whitespace in metadata (e.g. @samp{foo = bar}) is considered to be
a part of the tag (in the example above key is @samp{foo }, value is
@samp{ bar}).
@end enumerate
A ffmetadata file might look like this:

View File

@@ -1030,6 +1030,12 @@ segments to write. If this is selected, the output segment name must
contain a @code{strftime} function template. Default value is
@code{0}.
@item break_non_keyframes @var{1|0}
If enabled, allow segments to start on frames other than keyframes. This
improves behavior on some players when the time between keyframes is
inconsistent, but may make things worse on others, and can cause some oddities
during seeking. Defaults to @code{0}.
@item reset_timestamps @var{1|0}
Reset timestamps at the begin of each segment, so that each segment
will start with near-zero timestamps. It is meant to ease the playback
@@ -1210,7 +1216,17 @@ is the @option{global_header} flag.
WebM DASH Manifest muxer.
This muxer implements the WebM DASH Manifest specification to generate the DASH manifest XML.
This muxer implements the WebM DASH Manifest specification to generate the DASH
manifest XML. It also supports manifest generation for DASH live streams.
For more information see:
@itemize @bullet
@item
WebM DASH Specification: @url{https://sites.google.com/a/webmproject.org/wiki/adaptive-streaming/webm-dash-specification}
@item
ISO DASH Specification: @url{http://standards.iso.org/ittf/PubliclyAvailableStandards/c065274_ISO_IEC_23009-1_2014.zip}
@end itemize
@subsection Options
@@ -1221,6 +1237,32 @@ This muxer supports the following options:
This option has the following syntax: "id=x,streams=a,b,c id=y,streams=d,e" where x and y are the
unique identifiers of the adaptation sets and a,b,c,d and e are the indices of the corresponding
audio and video streams. Any number of adaptation sets can be added using this option.
@item live
Set this to 1 to create a live stream DASH Manifest. Default: 0.
@item chunk_start_index
Start index of the first chunk. This will go in the @samp{startNumber} attribute
of the @samp{SegmentTemplate} element in the manifest. Default: 0.
@item chunk_duration_ms
Duration of each chunk in milliseconds. This will go in the @samp{duration}
attribute of the @samp{SegmentTemplate} element in the manifest. Default: 1000.
@item utc_timing_url
URL of the page that will return the UTC timestamp in ISO format. This will go
in the @samp{value} attribute of the @samp{UTCTiming} element in the manifest.
Default: None.
@item time_shift_buffer_depth
Smallest time (in seconds) shifting buffer for which any Representation is
guaranteed to be available. This will go in the @samp{timeShiftBufferDepth}
attribute of the @samp{MPD} element. Default: 60.
@item minimum_update_period
Minimum update period (in seconds) of the manifest. This will go in the
@samp{minimumUpdatePeriod} attribute of the @samp{MPD} element. Default: 0.
@end table
@subsection Example
@@ -1236,4 +1278,47 @@ ffmpeg -f webm_dash_manifest -i video1.webm \
manifest.xml
@end example
@section webm_chunk
WebM Live Chunk Muxer.
This muxer writes out WebM headers and chunks as separate files which can be
consumed by clients that support WebM Live streams via DASH.
@subsection Options
This muxer supports the following options:
@table @option
@item chunk_start_index
Index of the first chunk (defaults to 0).
@item header
Filename of the header where the initialization data will be written.
@item audio_chunk_duration
Duration of each audio chunk in milliseconds (defaults to 5000).
@end table
@subsection Example
@example
ffmpeg -f v4l2 -i /dev/video0 \
-f alsa -i hw:0 \
-map 0:0 \
-c:v libvpx-vp9 \
-s 640x360 -keyint_min 30 -g 30 \
-f webm_chunk \
-header webm_live_video_360.hdr \
-chunk_start_index 1 \
webm_live_video_360_%d.chk \
-map 1:0 \
-c:a libvorbis \
-b:a 128k \
-f webm_chunk \
-header webm_live_audio_128.hdr \
-chunk_start_index 1 \
-audio_chunk_duration 1000 \
webm_live_audio_128_%d.chk
@end example
@c man end MUXERS

View File

@@ -277,6 +277,41 @@ Set initial byte offset.
@item end_offset
Try to limit the request to bytes preceding this offset.
@item method
When used as a client option it sets the HTTP method for the request.
When used as a server option it sets the HTTP method that is going to be
expected from the client(s).
If the expected and the received HTTP method do not match the client will
be given a Bad Request response.
When unset the HTTP method is not checked for now. This will be replaced by
autodetection in the future.
@item listen
If set to 1 enables experimental HTTP server. This can be used to send data when
used as an output option, or read data from a client with HTTP POST when used as
an input option.
@example
# Server side (sending):
ffmpeg -i somefile.ogg -c copy -listen 1 -f ogg http://@var{server}:@var{port}
# Client side (receiving):
ffmpeg -i http://@var{server}:@var{port} -c copy somefile.ogg
# Client can also be done with wget:
wget http://@var{server}:@var{port} -O somefile.ogg
# Server side (receiving):
ffmpeg -listen 1 -i http://@var{server}:@var{port} -c copy somefile.ogg
# Client side (sending):
ffmpeg -i somefile.ogg -chunked_post 0 -c copy -f ogg http://@var{server}:@var{port}
# Client can also be done with wget:
wget --post-file=somefile.ogg http://@var{server}:@var{port}
@end example
@end table
@subsection HTTP Cookies
@@ -1055,7 +1090,9 @@ subfile,,start,153391104,end,268142592,,:/media/dvd/VIDEO_TS/VTS_08_1.VOB
@end example
Play an AVI file directly from a TAR archive:
@example
subfile,,start,183241728,end,366490624,,:archive.tar
@end example
@section tcp

View File

@@ -166,7 +166,7 @@ INF: while(<$inf>) {
if ($ended =~ /^(?:ifset|ifclear|ignore|menu|iftex|ifhtml|ifnothtml)$/) {
$skipping = pop @skstack;
next;
} elsif ($ended =~ /^(?:example|smallexample|display)$/) {
} elsif ($ended =~ /^(?:example|smallexample|verbatim|display)$/) {
$shift = "";
$_ = ""; # need a paragraph break
} elsif ($ended =~ /^(?:itemize|enumerate|(?:multi|[fv])?table)$/) {
@@ -290,7 +290,7 @@ INF: while(<$inf>) {
$_ = "\n=over 4\n";
};
/^\@((?:small)?example|display)/ and do {
/^\@((?:small)?example|verbatim|display)/ and do {
push @endwstack, $endw;
$endw = $1;
$shift = "\t";

View File

@@ -12,17 +12,17 @@ explicitly specified. The following rules are applied:
@itemize
@item
@code{'} and @code{\} are special characters (respectively used for
@samp{'} and @samp{\} are special characters (respectively used for
quoting and escaping). In addition to them, there might be other
special characters depending on the specific syntax where the escaping
and quoting are employed.
@item
A special character is escaped by prefixing it with a '\'.
A special character is escaped by prefixing it with a @samp{\}.
@item
All characters enclosed between '' are included literally in the
parsed string. The quote character @code{'} itself cannot be quoted,
All characters enclosed between @samp{''} are included literally in the
parsed string. The quote character @samp{'} itself cannot be quoted,
so you may need to close the quote and escape it.
@item
@@ -71,7 +71,7 @@ Escaping and quoting can be mixed together:
@end example
@item
To include a literal @code{\} you can use either escaping or quoting:
To include a literal @samp{\} you can use either escaping or quoting:
@example
'c:\foo' can be written as c:\\foo
@end example

317
ffmpeg.c
View File

@@ -60,6 +60,7 @@
#include "libavutil/bprint.h"
#include "libavutil/time.h"
#include "libavutil/threadmessage.h"
#include "libavcodec/mathops.h"
#include "libavformat/os_support.h"
# include "libavfilter/avcodec.h"
@@ -351,7 +352,6 @@ void term_init(void)
signal(SIGQUIT, sigterm_handler); /* Quit (POSIX). */
}
#endif
avformat_network_deinit();
signal(SIGINT , sigterm_handler); /* Interrupt (ANSI). */
signal(SIGTERM, sigterm_handler); /* Termination (ANSI). */
@@ -456,7 +456,10 @@ static void ffmpeg_cleanup(int ret)
/* close files */
for (i = 0; i < nb_output_files; i++) {
OutputFile *of = output_files[i];
AVFormatContext *s = of->ctx;
AVFormatContext *s;
if (!of)
continue;
s = of->ctx;
if (s && s->oformat && !(s->oformat->flags & AVFMT_NOFILE))
avio_closep(&s->pb);
avformat_free_context(s);
@@ -466,7 +469,12 @@ static void ffmpeg_cleanup(int ret)
}
for (i = 0; i < nb_output_streams; i++) {
OutputStream *ost = output_streams[i];
AVBitStreamFilterContext *bsfc = ost->bitstream_filters;
AVBitStreamFilterContext *bsfc;
if (!ost)
continue;
bsfc = ost->bitstream_filters;
while (bsfc) {
AVBitStreamFilterContext *next = bsfc->next;
av_bitstream_filter_close(bsfc);
@@ -587,7 +595,7 @@ static void close_all_output_streams(OutputStream *ost, OSTFinished this_stream,
static void write_frame(AVFormatContext *s, AVPacket *pkt, OutputStream *ost)
{
AVBitStreamFilterContext *bsfc = ost->bitstream_filters;
AVCodecContext *avctx = ost->st->codec;
AVCodecContext *avctx = ost->encoding_needed ? ost->enc_ctx : ost->st->codec;
int ret;
if (!ost->st->codec->extradata_size && ost->enc_ctx->extradata_size) {
@@ -650,6 +658,7 @@ static void write_frame(AVFormatContext *s, AVPacket *pkt, OutputStream *ost)
if (!new_pkt.buf)
exit_program(1);
} else if (a < 0) {
new_pkt = *pkt;
av_log(NULL, AV_LOG_ERROR, "Failed to open bitstream filter %s for stream %d with codec %s",
bsfc->filter->name, pkt->stream_index,
avctx->codec ? avctx->codec->name : "copy");
@@ -914,80 +923,93 @@ static void do_video_out(AVFormatContext *s,
duration = lrintf(av_frame_get_pkt_duration(next_picture) * av_q2d(ist->st->time_base) / av_q2d(enc->time_base));
}
delta0 = sync_ipts - ost->sync_opts;
delta = delta0 + duration;
if (!next_picture) {
//end, flushing
nb0_frames = nb_frames = mid_pred(ost->last_nb0_frames[0],
ost->last_nb0_frames[1],
ost->last_nb0_frames[2]);
} else {
delta0 = sync_ipts - ost->sync_opts;
delta = delta0 + duration;
/* by default, we output a single frame */
nb0_frames = 0;
nb_frames = 1;
/* by default, we output a single frame */
nb0_frames = 0;
nb_frames = 1;
format_video_sync = video_sync_method;
if (format_video_sync == VSYNC_AUTO) {
if(!strcmp(s->oformat->name, "avi")) {
format_video_sync = VSYNC_VFR;
} else
format_video_sync = (s->oformat->flags & AVFMT_VARIABLE_FPS) ? ((s->oformat->flags & AVFMT_NOTIMESTAMPS) ? VSYNC_PASSTHROUGH : VSYNC_VFR) : VSYNC_CFR;
if ( ist
&& format_video_sync == VSYNC_CFR
&& input_files[ist->file_index]->ctx->nb_streams == 1
&& input_files[ist->file_index]->input_ts_offset == 0) {
format_video_sync = VSYNC_VSCFR;
format_video_sync = video_sync_method;
if (format_video_sync == VSYNC_AUTO) {
if(!strcmp(s->oformat->name, "avi")) {
format_video_sync = VSYNC_VFR;
} else
format_video_sync = (s->oformat->flags & AVFMT_VARIABLE_FPS) ? ((s->oformat->flags & AVFMT_NOTIMESTAMPS) ? VSYNC_PASSTHROUGH : VSYNC_VFR) : VSYNC_CFR;
if ( ist
&& format_video_sync == VSYNC_CFR
&& input_files[ist->file_index]->ctx->nb_streams == 1
&& input_files[ist->file_index]->input_ts_offset == 0) {
format_video_sync = VSYNC_VSCFR;
}
if (format_video_sync == VSYNC_CFR && copy_ts) {
format_video_sync = VSYNC_VSCFR;
}
}
if (format_video_sync == VSYNC_CFR && copy_ts) {
format_video_sync = VSYNC_VSCFR;
if (delta0 < 0 &&
delta > 0 &&
format_video_sync != VSYNC_PASSTHROUGH &&
format_video_sync != VSYNC_DROP) {
double cor = FFMIN(-delta0, duration);
if (delta0 < -0.6) {
av_log(NULL, AV_LOG_WARNING, "Past duration %f too large\n", -delta0);
} else
av_log(NULL, AV_LOG_DEBUG, "Cliping frame in rate conversion by %f\n", -delta0);
sync_ipts += cor;
duration -= cor;
delta0 += cor;
}
}
if (delta0 < 0 &&
delta > 0 &&
format_video_sync != VSYNC_PASSTHROUGH &&
format_video_sync != VSYNC_DROP) {
double cor = FFMIN(-delta0, duration);
if (delta0 < -0.6) {
av_log(NULL, AV_LOG_WARNING, "Past duration %f too large\n", -delta0);
} else
av_log(NULL, AV_LOG_DEBUG, "Cliping frame in rate conversion by %f\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;
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 (frame_drop_threshold && delta < frame_drop_threshold && ost->frame_number) {
nb_frames = 0;
} else if (delta < -1.1)
nb_frames = 0;
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)
nb_frames = 0;
else if (delta > 0.6)
ost->sync_opts = lrint(sync_ipts);
break;
case VSYNC_DROP:
case VSYNC_PASSTHROUGH:
ost->sync_opts = lrint(sync_ipts);
break;
default:
av_assert0(0);
}
case VSYNC_CFR:
// FIXME set to 0.5 after we fix some dts/pts bugs like in avidec.c
if (frame_drop_threshold && delta < frame_drop_threshold && ost->frame_number) {
nb_frames = 0;
} else if (delta < -1.1)
nb_frames = 0;
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)
nb_frames = 0;
else if (delta > 0.6)
ost->sync_opts = lrint(sync_ipts);
break;
case VSYNC_DROP:
case VSYNC_PASSTHROUGH:
ost->sync_opts = lrint(sync_ipts);
break;
default:
av_assert0(0);
}
nb_frames = FFMIN(nb_frames, ost->max_frames - ost->frame_number);
nb0_frames = FFMIN(nb0_frames, nb_frames);
memmove(ost->last_nb0_frames + 1,
ost->last_nb0_frames,
sizeof(ost->last_nb0_frames[0]) * (FF_ARRAY_ELEMS(ost->last_nb0_frames) - 1));
ost->last_nb0_frames[0] = nb0_frames;
if (nb0_frames == 0 && ost->last_droped) {
nb_frames_drop++;
av_log(NULL, AV_LOG_VERBOSE,
@@ -1003,7 +1025,7 @@ static void do_video_out(AVFormatContext *s,
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;
ost->last_droped = nb_frames == nb0_frames && next_picture;
/* duplicates frame if needed */
for (i = 0; i < nb_frames; i++) {
@@ -1017,6 +1039,9 @@ static void do_video_out(AVFormatContext *s,
} else
in_picture = next_picture;
if (!in_picture)
return;
in_picture->pts = ost->sync_opts;
#if 1
@@ -1088,6 +1113,10 @@ static void do_video_out(AVFormatContext *s,
}
ost->forced_keyframes_expr_const_values[FKF_N] += 1;
} else if ( ost->forced_keyframes
&& !strncmp(ost->forced_keyframes, "source", 6)
&& in_picture->key_frame==1) {
forced_keyframe = 1;
}
if (forced_keyframe) {
@@ -1156,7 +1185,10 @@ static void do_video_out(AVFormatContext *s,
if (!ost->last_frame)
ost->last_frame = av_frame_alloc();
av_frame_unref(ost->last_frame);
av_frame_ref(ost->last_frame, next_picture);
if (next_picture && ost->last_frame)
av_frame_ref(ost->last_frame, next_picture);
else
av_frame_free(&ost->last_frame);
}
static double psnr(double d)
@@ -1219,7 +1251,7 @@ static void finish_output_stream(OutputStream *ost)
*
* @return 0 for success, <0 for severe errors
*/
static int reap_filters(void)
static int reap_filters(int flush)
{
AVFrame *filtered_frame = NULL;
int i;
@@ -1249,6 +1281,9 @@ static int reap_filters(void)
if (ret != AVERROR(EAGAIN) && ret != AVERROR_EOF) {
av_log(NULL, AV_LOG_WARNING,
"Error in av_buffersink_get_frame_flags(): %s\n", av_err2str(ret));
} else if (flush && ret == AVERROR_EOF) {
if (filter->inputs[0]->type == AVMEDIA_TYPE_VIDEO)
do_video_out(of->ctx, ost, NULL, AV_NOPTS_VALUE);
}
break;
}
@@ -1318,6 +1353,7 @@ static void print_final_stats(int64_t total_size)
uint64_t data_size = 0;
float percent = -1.0;
int i, j;
int pass1_used = 1;
for (i = 0; i < nb_output_streams; i++) {
OutputStream *ost = output_streams[i];
@@ -1329,6 +1365,9 @@ static void print_final_stats(int64_t total_size)
}
extra_size += ost->enc_ctx->extradata_size;
data_size += ost->data_size;
if ( (ost->enc_ctx->flags & (CODEC_FLAG_PASS1 | CODEC_FLAG_PASS2))
!= CODEC_FLAG_PASS1)
pass1_used = 0;
}
if (data_size && total_size>0 && total_size >= data_size)
@@ -1415,7 +1454,12 @@ static void print_final_stats(int64_t total_size)
total_packets, total_size);
}
if(video_size + data_size + audio_size + subtitle_size + extra_size == 0){
av_log(NULL, AV_LOG_WARNING, "Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used)\n");
av_log(NULL, AV_LOG_WARNING, "Output file is empty, nothing was encoded ");
if (pass1_used) {
av_log(NULL, AV_LOG_WARNING, "\n");
} else {
av_log(NULL, AV_LOG_WARNING, "(check -ss / -t / -frames parameters if used)\n");
}
}
}
@@ -1756,17 +1800,21 @@ static void do_streamcopy(InputStream *ist, OutputStream *ost, const AVPacket *p
opkt.duration = av_rescale_q(pkt->duration, ist->st->time_base, ost->st->time_base);
opkt.flags = pkt->flags;
// FIXME remove the following 2 lines they shall be replaced by the bitstream filters
if ( ost->enc_ctx->codec_id != AV_CODEC_ID_H264
&& ost->enc_ctx->codec_id != AV_CODEC_ID_MPEG1VIDEO
&& ost->enc_ctx->codec_id != AV_CODEC_ID_MPEG2VIDEO
&& ost->enc_ctx->codec_id != AV_CODEC_ID_VC1
if ( ost->st->codec->codec_id != AV_CODEC_ID_H264
&& ost->st->codec->codec_id != AV_CODEC_ID_MPEG1VIDEO
&& ost->st->codec->codec_id != AV_CODEC_ID_MPEG2VIDEO
&& ost->st->codec->codec_id != AV_CODEC_ID_VC1
) {
if (av_parser_change(ost->parser, ost->st->codec,
int ret = av_parser_change(ost->parser, ost->st->codec,
&opkt.data, &opkt.size,
pkt->data, pkt->size,
pkt->flags & AV_PKT_FLAG_KEY)) {
pkt->flags & AV_PKT_FLAG_KEY);
if (ret < 0) {
av_log(NULL, AV_LOG_FATAL, "av_parser_change failed\n");
exit_program(1);
}
if (ret) {
opkt.buf = av_buffer_create(opkt.data, opkt.size, av_buffer_default_free, NULL, 0);
if (!opkt.buf)
exit_program(1);
@@ -1777,9 +1825,15 @@ static void do_streamcopy(InputStream *ist, OutputStream *ost, const AVPacket *p
}
av_copy_packet_side_data(&opkt, pkt);
if (ost->st->codec->codec_type == AVMEDIA_TYPE_VIDEO && (of->ctx->oformat->flags & AVFMT_RAWPICTURE)) {
if (ost->st->codec->codec_type == AVMEDIA_TYPE_VIDEO &&
ost->st->codec->codec_id == AV_CODEC_ID_RAWVIDEO &&
(of->ctx->oformat->flags & AVFMT_RAWPICTURE)) {
/* store AVPicture in AVPacket, as expected by the output format */
avpicture_fill(&pict, opkt.data, ost->st->codec->pix_fmt, ost->st->codec->width, ost->st->codec->height);
int ret = avpicture_fill(&pict, opkt.data, ost->st->codec->pix_fmt, ost->st->codec->width, ost->st->codec->height);
if (ret < 0) {
av_log(NULL, AV_LOG_FATAL, "avpicture_fill failed\n");
exit_program(1);
}
opkt.data = (uint8_t *)&pict;
opkt.size = sizeof(AVPicture);
opkt.flags |= AV_PKT_FLAG_KEY;
@@ -1830,9 +1884,12 @@ static int decode_audio(InputStream *ist, AVPacket *pkt, int *got_output)
ret = AVERROR_INVALIDDATA;
}
if (*got_output || ret<0 || pkt->size)
if (*got_output || ret<0)
decode_error_stat[ret<0] ++;
if (ret < 0 && exit_on_error)
exit_program(1);
if (!*got_output || ret < 0) {
if (!pkt->size) {
for (i = 0; i < ist->nb_filters; i++)
@@ -1975,9 +2032,12 @@ static int decode_video(InputStream *ist, AVPacket *pkt, int *got_output)
);
}
if (*got_output || ret<0 || pkt->size)
if (*got_output || ret<0)
decode_error_stat[ret<0] ++;
if (ret < 0 && exit_on_error)
exit_program(1);
if (*got_output && ret >= 0) {
if (ist->dec_ctx->width != decoded_frame->width ||
ist->dec_ctx->height != decoded_frame->height ||
@@ -2093,9 +2153,12 @@ static int transcode_subtitles(InputStream *ist, AVPacket *pkt, int *got_output)
int i, ret = avcodec_decode_subtitle2(ist->dec_ctx,
&subtitle, got_output, pkt);
if (*got_output || ret<0 || pkt->size)
if (*got_output || ret<0)
decode_error_stat[ret<0] ++;
if (ret < 0 && exit_on_error)
exit_program(1);
if (ret < 0 || !*got_output) {
if (!pkt->size)
sub2video_flush(ist);
@@ -2307,6 +2370,9 @@ static void print_sdp(void)
}
}
if (!j)
goto fail;
av_sdp_create(avc, j, sdp, sizeof(sdp));
if (!sdp_filename) {
@@ -2322,6 +2388,7 @@ static void print_sdp(void)
}
}
fail:
av_freep(&avc);
}
@@ -2360,7 +2427,7 @@ static enum AVPixelFormat get_format(AVCodecContext *s, const enum AVPixelFormat
"%s hwaccel requested for input stream #%d:%d, "
"but cannot be initialized.\n", hwaccel->name,
ist->file_index, ist->st->index);
exit_program(1);
return AV_PIX_FMT_NONE;
}
continue;
}
@@ -2619,7 +2686,7 @@ static int transcode_init(void)
if (ost->attachment_filename)
continue;
enc_ctx = ost->enc_ctx;
enc_ctx = ost->stream_copy ? ost->st->codec : ost->enc_ctx;
if (ist) {
dec_ctx = ist->dec_ctx;
@@ -2666,11 +2733,13 @@ static int transcode_init(void)
enc_ctx->rc_max_rate = dec_ctx->rc_max_rate;
enc_ctx->rc_buffer_size = dec_ctx->rc_buffer_size;
enc_ctx->field_order = dec_ctx->field_order;
enc_ctx->extradata = av_mallocz(extra_size);
if (!enc_ctx->extradata) {
return AVERROR(ENOMEM);
if (dec_ctx->extradata_size) {
enc_ctx->extradata = av_mallocz(extra_size);
if (!enc_ctx->extradata) {
return AVERROR(ENOMEM);
}
memcpy(enc_ctx->extradata, dec_ctx->extradata, dec_ctx->extradata_size);
}
memcpy(enc_ctx->extradata, dec_ctx->extradata, dec_ctx->extradata_size);
enc_ctx->extradata_size= dec_ctx->extradata_size;
enc_ctx->bits_per_coded_sample = dec_ctx->bits_per_coded_sample;
@@ -2731,9 +2800,13 @@ static int transcode_init(void)
if (!ost->st->side_data)
return AVERROR(ENOMEM);
ost->st->nb_side_data = 0;
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];
AVPacketSideData *sd_dst = &ost->st->side_data[ost->st->nb_side_data];
if (ost->rotate_overridden && sd_src->type == AV_PKT_DATA_DISPLAYMATRIX)
continue;
sd_dst->data = av_malloc(sd_src->size);
if (!sd_dst->data)
@@ -2792,6 +2865,7 @@ static int transcode_init(void)
enc_ctx->width = dec_ctx->width;
enc_ctx->height = dec_ctx->height;
break;
case AVMEDIA_TYPE_UNKNOWN:
case AVMEDIA_TYPE_DATA:
case AVMEDIA_TYPE_ATTACHMENT:
break;
@@ -2827,7 +2901,7 @@ static int transcode_init(void)
}
if (enc_ctx->codec_type == AVMEDIA_TYPE_VIDEO) {
if (ost->filter && !ost->frame_rate.num)
if (!ost->frame_rate.num)
ost->frame_rate = av_buffersink_get_frame_rate(ost->filter->filter);
if (ist && !ost->frame_rate.num)
ost->frame_rate = ist->framerate;
@@ -2864,7 +2938,7 @@ static int transcode_init(void)
break;
case AVMEDIA_TYPE_VIDEO:
enc_ctx->time_base = av_inv_q(ost->frame_rate);
if (ost->filter && !(enc_ctx->time_base.num && enc_ctx->time_base.den))
if (!(enc_ctx->time_base.num && enc_ctx->time_base.den))
enc_ctx->time_base = ost->filter->filter->inputs[0]->time_base;
if ( av_q2d(enc_ctx->time_base) < 0.001 && video_sync_method != VSYNC_PASSTHROUGH
&& (video_sync_method == VSYNC_CFR || video_sync_method == VSYNC_VSCFR || (video_sync_method == VSYNC_AUTO && !(oc->oformat->flags & AVFMT_VARIABLE_FPS)))){
@@ -2920,7 +2994,10 @@ static int transcode_init(void)
ost->forced_keyframes_expr_const_values[FKF_N_FORCED] = 0;
ost->forced_keyframes_expr_const_values[FKF_PREV_FORCED_N] = NAN;
ost->forced_keyframes_expr_const_values[FKF_PREV_FORCED_T] = NAN;
} else {
// Don't parse the 'forced_keyframes' in case of 'keep-source-keyframes',
// parse it only for static kf timings
} else if(strncmp(ost->forced_keyframes, "source", 6)) {
parse_forced_key_frames(ost->forced_keyframes, ost, ost->enc_ctx);
}
}
@@ -3043,6 +3120,17 @@ static int transcode_init(void)
if (ost->enc_ctx->bit_rate && ost->enc_ctx->bit_rate < 1000)
av_log(NULL, AV_LOG_WARNING, "The bitrate parameter is set too low."
" It takes bits/s as argument, not kbits/s\n");
ret = avcodec_copy_context(ost->st->codec, ost->enc_ctx);
if (ret < 0) {
av_log(NULL, AV_LOG_FATAL,
"Error initializing the output stream codec context.\n");
exit_program(1);
}
// copy timebase while removing common factors
ost->st->time_base = av_add_q(ost->enc_ctx->time_base, (AVRational){0, 1});
ost->st->codec->codec= ost->enc_ctx->codec;
} else {
ret = av_opt_set_dict(ost->enc_ctx, &ost->encoder_opts);
if (ret < 0) {
@@ -3050,18 +3138,9 @@ static int transcode_init(void)
"Error setting up codec context options.\n");
return ret;
}
// copy timebase while removing common factors
ost->st->time_base = av_add_q(ost->st->codec->time_base, (AVRational){0, 1});
}
ret = avcodec_copy_context(ost->st->codec, ost->enc_ctx);
if (ret < 0) {
av_log(NULL, AV_LOG_FATAL,
"Error initializing the output stream codec context.\n");
exit_program(1);
}
ost->st->codec->codec= ost->enc_ctx->codec;
// copy timebase while removing common factors
ost->st->time_base = av_add_q(ost->enc_ctx->time_base, (AVRational){0, 1});
}
/* init input streams */
@@ -3171,17 +3250,22 @@ static int transcode_init(void)
const char *in_codec_name = "?";
const char *encoder_name = "?";
const char *out_codec_name = "?";
const AVCodecDescriptor *desc;
if (in_codec) {
decoder_name = in_codec->name;
in_codec_name = avcodec_descriptor_get(in_codec->id)->name;
desc = avcodec_descriptor_get(in_codec->id);
if (desc)
in_codec_name = desc->name;
if (!strcmp(decoder_name, in_codec_name))
decoder_name = "native";
}
if (out_codec) {
encoder_name = out_codec->name;
out_codec_name = avcodec_descriptor_get(out_codec->id)->name;
desc = avcodec_descriptor_get(out_codec->id);
if (desc)
out_codec_name = desc->name;
if (!strcmp(encoder_name, out_codec_name))
encoder_name = "native";
}
@@ -3308,6 +3392,8 @@ static int check_keyboard_interaction(int64_t cur_time)
ret = AVERROR_PATCHWELCOME;
} else {
ret = avfilter_graph_queue_command(fg->graph, target, command, arg, 0, time);
if (ret < 0)
fprintf(stderr, "Queing command failed with error %s\n", av_err2str(ret));
}
}
}
@@ -3618,6 +3704,8 @@ static int process_input(int file_index)
if (av_packet_get_side_data(&pkt, src_sd->type, NULL))
continue;
if (ist->autorotate && src_sd->type == AV_PKT_DATA_DISPLAYMATRIX)
continue;
dst_data = av_packet_new_side_data(&pkt, src_sd->type, src_sd->size);
if (!dst_data)
@@ -3736,10 +3824,10 @@ static int transcode_from_filter(FilterGraph *graph, InputStream **best_ist)
*best_ist = NULL;
ret = avfilter_graph_request_oldest(graph->graph);
if (ret >= 0)
return reap_filters();
return reap_filters(0);
if (ret == AVERROR_EOF) {
ret = reap_filters();
ret = reap_filters(1);
for (i = 0; i < graph->nb_outputs; i++)
close_output_stream(graph->outputs[i]->ost);
return ret;
@@ -3805,10 +3893,11 @@ static int transcode_step(void)
ost->unavailable = 1;
return 0;
}
if (ret < 0)
return ret == AVERROR_EOF ? 0 : ret;
return reap_filters();
return reap_filters(0);
}
/*
@@ -3853,11 +3942,15 @@ static int transcode(void)
ret = transcode_step();
if (ret < 0) {
if (ret == AVERROR_EOF || ret == AVERROR(EAGAIN))
if (ret == AVERROR_EOF || ret == AVERROR(EAGAIN)) {
continue;
} else {
char errbuf[128];
av_strerror(ret, errbuf, sizeof(errbuf));
av_log(NULL, AV_LOG_ERROR, "Error while filtering.\n");
break;
av_log(NULL, AV_LOG_ERROR, "Error while filtering: %s\n", errbuf);
break;
}
}
/* dump report by using the output first video and audio streams */

View File

@@ -92,6 +92,7 @@ typedef struct OptionsContext {
/* input/output options */
int64_t start_time;
int seek_timestamp;
const char *format;
SpecifierOpt *codec_names;
@@ -121,6 +122,8 @@ typedef struct OptionsContext {
int nb_hwaccels;
SpecifierOpt *hwaccel_devices;
int nb_hwaccel_devices;
SpecifierOpt *autorotate;
int nb_autorotate;
/* output options */
StreamMap *stream_maps;
@@ -275,6 +278,7 @@ typedef struct InputStream {
int top_field_first;
int guess_layout_max;
int autorotate;
int resample_height;
int resample_width;
int resample_pix_fmt;
@@ -339,6 +343,7 @@ typedef struct InputFile {
int64_t ts_offset;
int64_t last_ts;
int64_t start_time; /* user-specified start time in AV_TIME_BASE or AV_NOPTS_VALUE */
int seek_timestamp;
int64_t recording_time;
int nb_streams; /* number of stream that ffmpeg is aware of; may be different
from ctx.nb_streams if new streams appear during av_read_frame() */
@@ -394,11 +399,13 @@ typedef struct OutputStream {
AVFrame *filtered_frame;
AVFrame *last_frame;
int last_droped;
int last_nb0_frames[3];
/* video only */
AVRational frame_rate;
int force_fps;
int top_field_first;
int rotate_overridden;
AVRational frame_aspect_ratio;

View File

@@ -364,7 +364,7 @@ static int dxva2_alloc(AVCodecContext *s)
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.Flags = D3DPRESENTFLAG_VIDEO;
hr = IDirect3D9_CreateDevice(ctx->d3d9, adapter, D3DDEVTYPE_HAL, GetShellWindow(),
hr = IDirect3D9_CreateDevice(ctx->d3d9, adapter, D3DDEVTYPE_HAL, GetDesktopWindow(),
D3DCREATE_SOFTWARE_VERTEXPROCESSING | D3DCREATE_MULTITHREADED | D3DCREATE_FPU_PRESERVE,
&d3dpp, &ctx->d3d9device);
if (FAILED(hr)) {

View File

@@ -31,6 +31,7 @@
#include "libavutil/avstring.h"
#include "libavutil/bprint.h"
#include "libavutil/channel_layout.h"
#include "libavutil/display.h"
#include "libavutil/opt.h"
#include "libavutil/pixdesc.h"
#include "libavutil/pixfmt.h"
@@ -339,6 +340,28 @@ static int insert_trim(int64_t start_time, int64_t duration,
return 0;
}
static int insert_filter(AVFilterContext **last_filter, int *pad_idx,
const char *filter_name, const char *args)
{
AVFilterGraph *graph = (*last_filter)->graph;
AVFilterContext *ctx;
int ret;
ret = avfilter_graph_create_filter(&ctx,
avfilter_get_by_name(filter_name),
filter_name, args, NULL, graph);
if (ret < 0)
return ret;
ret = avfilter_link(*last_filter, *pad_idx, ctx, 0);
if (ret < 0)
return ret;
*last_filter = ctx;
*pad_idx = 0;
return 0;
}
static int configure_output_video_filter(FilterGraph *fg, OutputFilter *ofilter, AVFilterInOut *out)
{
char *pix_fmts;
@@ -676,6 +699,27 @@ static int configure_input_video_filter(FilterGraph *fg, InputFilter *ifilter,
return ret;
last_filter = ifilter->filter;
if (ist->autorotate) {
double theta = get_rotation(ist->st);
if (fabs(theta - 90) < 1.0) {
ret = insert_filter(&last_filter, &pad_idx, "transpose", "clock");
} else if (fabs(theta - 180) < 1.0) {
ret = insert_filter(&last_filter, &pad_idx, "hflip", NULL);
if (ret < 0)
return ret;
ret = insert_filter(&last_filter, &pad_idx, "vflip", NULL);
} else if (fabs(theta - 270) < 1.0) {
ret = insert_filter(&last_filter, &pad_idx, "transpose", "cclock");
} else if (fabs(theta) > 1.0) {
char rotate_buf[64];
snprintf(rotate_buf, sizeof(rotate_buf), "%f*PI/180", theta);
ret = insert_filter(&last_filter, &pad_idx, "rotate", rotate_buf);
}
if (ret < 0)
return ret;
}
if (ist->framerate.num) {
AVFilterContext *setpts;

View File

@@ -110,6 +110,9 @@ static int no_file_overwrite = 0;
static int do_psnr = 0;
static int input_sync;
static int override_ffserver = 0;
static int input_stream_potentially_available = 0;
static int ignore_unknown_streams = 0;
static int copy_unknown_streams = 0;
static void uninit_options(OptionsContext *o)
{
@@ -601,6 +604,9 @@ static void add_input_streams(OptionsContext *o, AVFormatContext *ic)
ist->ts_scale = 1.0;
MATCH_PER_STREAM_OPT(ts_scale, dbl, ist->ts_scale, ic, st);
ist->autorotate = 1;
MATCH_PER_STREAM_OPT(autorotate, i, ist->autorotate, ic, st);
MATCH_PER_STREAM_OPT(codec_tags, str, codec_tag, ic, st);
if (codec_tag) {
uint32_t tag = strtol(codec_tag, &next, 0);
@@ -918,12 +924,25 @@ static int open_input_file(OptionsContext *o, const char *filename)
timestamp = (o->start_time == AV_NOPTS_VALUE) ? 0 : o->start_time;
/* add the stream start time */
if (ic->start_time != AV_NOPTS_VALUE)
if (!o->seek_timestamp && ic->start_time != AV_NOPTS_VALUE)
timestamp += ic->start_time;
/* if seeking requested, we execute it */
if (o->start_time != AV_NOPTS_VALUE) {
ret = avformat_seek_file(ic, -1, INT64_MIN, timestamp, timestamp, 0);
int64_t seek_timestamp = timestamp;
if (!(ic->iformat->flags & AVFMT_SEEK_TO_PTS)) {
int dts_heuristic = 0;
for (i=0; i<ic->nb_streams; i++) {
AVCodecContext *avctx = ic->streams[i]->codec;
if (avctx->has_b_frames)
dts_heuristic = 1;
}
if (dts_heuristic) {
seek_timestamp -= 3*AV_TIME_BASE / 23;
}
}
ret = avformat_seek_file(ic, -1, INT64_MIN, seek_timestamp, seek_timestamp, 0);
if (ret < 0) {
av_log(NULL, AV_LOG_WARNING, "%s: could not seek to position %0.3f\n",
filename, (double)timestamp / AV_TIME_BASE);
@@ -1008,6 +1027,8 @@ static int open_input_file(OptionsContext *o, const char *filename)
av_dict_free(&opts[i]);
av_freep(&opts);
input_stream_potentially_available = 1;
return 0;
}
@@ -1182,6 +1203,7 @@ static OutputStream *new_output_stream(OptionsContext *o, AVFormatContext *oc, e
uint32_t tag = strtol(codec_tag, &next, 0);
if (*next)
tag = AV_RL32(codec_tag);
ost->st->codec->codec_tag =
ost->enc_ctx->codec_tag = tag;
}
@@ -1546,6 +1568,19 @@ static OutputStream *new_data_stream(OptionsContext *o, AVFormatContext *oc, int
return ost;
}
static OutputStream *new_unknown_stream(OptionsContext *o, AVFormatContext *oc, int source_index)
{
OutputStream *ost;
ost = new_output_stream(o, oc, AVMEDIA_TYPE_UNKNOWN, source_index);
if (!ost->stream_copy) {
av_log(NULL, AV_LOG_FATAL, "Unknown stream encoding not supported yet (only streamcopy)\n");
exit_program(1);
}
return ost;
}
static OutputStream *new_attachment_stream(OptionsContext *o, AVFormatContext *oc, int source_index)
{
OutputStream *ost = new_output_stream(o, oc, AVMEDIA_TYPE_ATTACHMENT, source_index);
@@ -1998,10 +2033,22 @@ loop_end:
case AVMEDIA_TYPE_SUBTITLE: ost = new_subtitle_stream (o, oc, src_idx); break;
case AVMEDIA_TYPE_DATA: ost = new_data_stream (o, oc, src_idx); break;
case AVMEDIA_TYPE_ATTACHMENT: ost = new_attachment_stream(o, oc, src_idx); break;
case AVMEDIA_TYPE_UNKNOWN:
if (copy_unknown_streams) {
ost = new_unknown_stream (o, oc, src_idx);
break;
}
default:
av_log(NULL, AV_LOG_FATAL, "Cannot map stream #%d:%d - unsupported type.\n",
av_log(NULL, ignore_unknown_streams ? AV_LOG_WARNING : AV_LOG_FATAL,
"Cannot map stream #%d:%d - unsupported type.\n",
map->file_index, map->stream_index);
exit_program(1);
if (!ignore_unknown_streams) {
av_log(NULL, AV_LOG_FATAL,
"If you want unsupported types ignored instead "
"of failing, please use the -ignore_unknown option\n"
"If you want them copied, please use -copy_unknown\n");
exit_program(1);
}
}
}
}
@@ -2035,8 +2082,8 @@ loop_end:
ost->stream_copy = 0;
ost->attachment_filename = o->attachments[i];
ost->finished = 1;
ost->enc_ctx->extradata = attachment;
ost->enc_ctx->extradata_size = len;
ost->st->codec->extradata = attachment;
ost->st->codec->extradata_size = len;
p = strrchr(o->attachments[i], '/');
av_dict_set(&ost->st->metadata, "filename", (p && *p) ? p + 1 : o->attachments[i], AV_DICT_DONT_OVERWRITE);
@@ -2104,6 +2151,12 @@ loop_end:
}
}
if (!(oc->oformat->flags & AVFMT_NOSTREAMS) && !input_stream_potentially_available) {
av_log(NULL, AV_LOG_ERROR,
"No input streams but output needs an input stream\n");
exit_program(1);
}
if (!(oc->oformat->flags & AVFMT_NOFILE)) {
/* test if it already exists to avoid losing precious files */
assert_file_overwrite(filename);
@@ -2172,8 +2225,11 @@ loop_end:
continue;
ist = input_streams[output_streams[i]->source_index];
av_dict_copy(&output_streams[i]->st->metadata, ist->st->metadata, AV_DICT_DONT_OVERWRITE);
if (!output_streams[i]->stream_copy)
if (!output_streams[i]->stream_copy) {
av_dict_set(&output_streams[i]->st->metadata, "encoder", NULL, 0);
if (ist->autorotate)
av_dict_set(&output_streams[i]->st->metadata, "rotate", NULL, 0);
}
}
/* process manually set metadata */
@@ -2194,8 +2250,12 @@ loop_end:
parse_meta_type(o->metadata[i].specifier, &type, &index, &stream_spec);
if (type == 's') {
for (j = 0; j < oc->nb_streams; j++) {
ost = output_streams[nb_output_streams - oc->nb_streams + j];
if ((ret = check_stream_specifier(oc, oc->streams[j], stream_spec)) > 0) {
av_dict_set(&oc->streams[j]->metadata, o->metadata[i].u.str, *val ? val : NULL, 0);
if (!strcmp(o->metadata[i].u.str, "rotate")) {
ost->rotate_overridden = 1;
}
} else if (ret < 0)
exit_program(1);
}
@@ -2282,9 +2342,9 @@ static int opt_target(void *optctx, const char *opt, const char *arg)
opt_default(NULL, "g", norm == PAL ? "15" : "18");
opt_default(NULL, "b:v", "1150000");
opt_default(NULL, "maxrate", "1150000");
opt_default(NULL, "minrate", "1150000");
opt_default(NULL, "bufsize", "327680"); // 40*1024*8;
opt_default(NULL, "maxrate:v", "1150000");
opt_default(NULL, "minrate:v", "1150000");
opt_default(NULL, "bufsize:v", "327680"); // 40*1024*8;
opt_default(NULL, "b:a", "224000");
parse_option(o, "ar", "44100", options);
@@ -2311,9 +2371,9 @@ static int opt_target(void *optctx, const char *opt, const char *arg)
opt_default(NULL, "g", norm == PAL ? "15" : "18");
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, "maxrate:v", "2516000");
opt_default(NULL, "minrate:v", "0"); // 1145000;
opt_default(NULL, "bufsize:v", "1835008"); // 224*1024*8;
opt_default(NULL, "scan_offset", "1");
opt_default(NULL, "b:a", "224000");
@@ -2333,9 +2393,9 @@ static int opt_target(void *optctx, const char *opt, const char *arg)
opt_default(NULL, "g", norm == PAL ? "15" : "18");
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;
opt_default(NULL, "maxrate:v", "9000000");
opt_default(NULL, "minrate:v", "0"); // 1500000;
opt_default(NULL, "bufsize:v", "1835008"); // 224*1024*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
@@ -2379,6 +2439,9 @@ static int opt_vstats(void *optctx, const char *opt, const char *arg)
time_t today2 = time(NULL);
struct tm *today = localtime(&today2);
if (!today)
return AVERROR(errno);
snprintf(filename, sizeof(filename), "vstats_%02d%02d%02d.log", today->tm_hour, today->tm_min,
today->tm_sec);
return opt_vstats_file(NULL, opt, filename);
@@ -2608,6 +2671,9 @@ static int opt_filter_complex(void *optctx, const char *opt, const char *arg)
filtergraphs[nb_filtergraphs - 1]->graph_desc = av_strdup(arg);
if (!filtergraphs[nb_filtergraphs - 1]->graph_desc)
return AVERROR(ENOMEM);
input_stream_potentially_available = 1;
return 0;
}
@@ -2622,6 +2688,9 @@ static int opt_filter_complex_script(void *optctx, const char *opt, const char *
return AVERROR(ENOMEM);
filtergraphs[nb_filtergraphs - 1]->index = nb_filtergraphs - 1;
filtergraphs[nb_filtergraphs - 1]->graph_desc = graph_desc;
input_stream_potentially_available = 1;
return 0;
}
@@ -2817,6 +2886,10 @@ const OptionDef options[] = {
"overwrite output files" },
{ "n", OPT_BOOL, { &no_file_overwrite },
"never overwrite output files" },
{ "ignore_unknown", OPT_BOOL, { &ignore_unknown_streams },
"Ignore unknown stream types" },
{ "copy_unknown", OPT_BOOL | OPT_EXPERT, { &copy_unknown_streams },
"Copy unknown stream types" },
{ "c", HAS_ARG | OPT_STRING | OPT_SPEC |
OPT_INPUT | OPT_OUTPUT, { .off = OFFSET(codec_names) },
"codec name", "codec" },
@@ -2850,6 +2923,9 @@ const OptionDef options[] = {
{ "ss", HAS_ARG | OPT_TIME | OPT_OFFSET |
OPT_INPUT | OPT_OUTPUT, { .off = OFFSET(start_time) },
"set the start time offset", "time_off" },
{ "seek_timestamp", HAS_ARG | OPT_INT | OPT_OFFSET |
OPT_INPUT, { .off = OFFSET(seek_timestamp) },
"enable/disable seeking by timestamp with -ss" },
{ "accurate_seek", OPT_BOOL | OPT_OFFSET | OPT_EXPERT |
OPT_INPUT, { .off = OFFSET(accurate_seek) },
"enable/disable accurate seeking with -ss" },
@@ -2859,7 +2935,7 @@ const OptionDef options[] = {
{ "itsscale", HAS_ARG | OPT_DOUBLE | OPT_SPEC |
OPT_EXPERT | OPT_INPUT, { .off = OFFSET(ts_scale) },
"set the input ts scale", "scale" },
{ "timestamp", HAS_ARG | OPT_PERFILE, { .func_arg = opt_recording_timestamp },
{ "timestamp", HAS_ARG | OPT_PERFILE | OPT_OUTPUT, { .func_arg = opt_recording_timestamp },
"set the recording timestamp ('now' to set the current time)", "time" },
{ "metadata", HAS_ARG | OPT_STRING | OPT_SPEC | OPT_OUTPUT, { .off = OFFSET(metadata) },
"add metadata", "string=string" },
@@ -3025,7 +3101,7 @@ const OptionDef options[] = {
OPT_INPUT | OPT_OUTPUT, { .off = OFFSET(top_field_first) },
"top=1/bottom=0/auto=-1 field first", "" },
{ "vtag", OPT_VIDEO | HAS_ARG | OPT_EXPERT | OPT_PERFILE |
OPT_OUTPUT, { .func_arg = opt_old2new },
OPT_INPUT | OPT_OUTPUT, { .func_arg = opt_old2new },
"force video tag/fourcc", "fourcc/tag" },
{ "qphist", OPT_VIDEO | OPT_BOOL | OPT_EXPERT , { &qp_hist },
"show QP histogram" },
@@ -3051,6 +3127,9 @@ const OptionDef options[] = {
#if HAVE_VDPAU_X11
{ "vdpau_api_ver", HAS_ARG | OPT_INT | OPT_EXPERT, { &vdpau_api_ver }, "" },
#endif
{ "autorotate", HAS_ARG | OPT_BOOL | OPT_SPEC |
OPT_EXPERT | OPT_INPUT, { .off = OFFSET(autorotate) },
"automatically insert correct rotate filters" },
/* audio options */
{ "aframes", OPT_AUDIO | HAS_ARG | OPT_PERFILE | OPT_OUTPUT, { .func_arg = opt_audio_frames },

View File

@@ -73,10 +73,12 @@ static int vda_retrieve_data(AVCodecContext *s, AVFrame *frame)
}
av_image_copy(vda->tmp_frame->data, vda->tmp_frame->linesize,
data, linesize, vda->tmp_frame->format,
(const uint8_t **)data, linesize, vda->tmp_frame->format,
frame->width, frame->height);
ret = av_frame_copy_props(vda->tmp_frame, frame);
CVPixelBufferUnlockBaseAddress(pixbuf, kCVPixelBufferLock_ReadOnly);
if (ret < 0)
return ret;

View File

@@ -32,6 +32,7 @@
#include "libavutil/avstring.h"
#include "libavutil/colorspace.h"
#include "libavutil/eval.h"
#include "libavutil/mathematics.h"
#include "libavutil/pixdesc.h"
#include "libavutil/imgutils.h"
@@ -1531,7 +1532,7 @@ static void step_to_next_frame(VideoState *is)
static double compute_target_delay(double delay, VideoState *is)
{
double sync_threshold, diff;
double sync_threshold, diff = 0;
/* update delay to follow master synchronisation source */
if (get_master_sync_type(is) != AV_SYNC_VIDEO_MASTER) {
@@ -1553,7 +1554,7 @@ static double compute_target_delay(double delay, VideoState *is)
}
}
av_dlog(NULL, "video: delay=%0.3f A-V=%f\n",
av_log(NULL, AV_LOG_TRACE, "video: delay=%0.3f A-V=%f\n",
delay, -diff);
return delay;
@@ -1995,20 +1996,20 @@ static int configure_video_filters(AVFilterGraph *graph, VideoState *is, const c
/* Note: this macro adds a filter before the lastly added filter, so the
* processing order of the filters is in reverse */
#define INSERT_FILT(name, arg) do { \
AVFilterContext *filt_ctx; \
\
ret = avfilter_graph_create_filter(&filt_ctx, \
avfilter_get_by_name(name), \
"ffplay_" name, arg, NULL, graph); \
if (ret < 0) \
goto fail; \
\
ret = avfilter_link(filt_ctx, 0, last_filter, 0); \
if (ret < 0) \
goto fail; \
\
last_filter = filt_ctx; \
#define INSERT_FILT(name, arg) do { \
AVFilterContext *filt_ctx; \
\
ret = avfilter_graph_create_filter(&filt_ctx, \
avfilter_get_by_name(name), \
"ffplay_" name, arg, NULL, graph); \
if (ret < 0) \
goto fail; \
\
ret = avfilter_link(filt_ctx, 0, last_filter, 0); \
if (ret < 0) \
goto fail; \
\
last_filter = filt_ctx; \
} while (0)
/* SDL YUV code is not handling odd width/height for some driver
@@ -2016,20 +2017,19 @@ static int configure_video_filters(AVFilterGraph *graph, VideoState *is, const c
INSERT_FILT("crop", "floor(in_w/2)*2:floor(in_h/2)*2");
if (autorotate) {
AVDictionaryEntry *rotate_tag = av_dict_get(is->video_st->metadata, "rotate", NULL, 0);
if (rotate_tag && *rotate_tag->value && strcmp(rotate_tag->value, "0")) {
if (!strcmp(rotate_tag->value, "90")) {
INSERT_FILT("transpose", "clock");
} else if (!strcmp(rotate_tag->value, "180")) {
INSERT_FILT("hflip", NULL);
INSERT_FILT("vflip", NULL);
} else if (!strcmp(rotate_tag->value, "270")) {
INSERT_FILT("transpose", "cclock");
} else {
char rotate_buf[64];
snprintf(rotate_buf, sizeof(rotate_buf), "%s*PI/180", rotate_tag->value);
INSERT_FILT("rotate", rotate_buf);
}
double theta = get_rotation(is->video_st);
if (fabs(theta - 90) < 1.0) {
INSERT_FILT("transpose", "clock");
} else if (fabs(theta - 180) < 1.0) {
INSERT_FILT("hflip", NULL);
INSERT_FILT("vflip", NULL);
} else if (fabs(theta - 270) < 1.0) {
INSERT_FILT("transpose", "cclock");
} else if (fabs(theta) > 1.0) {
char rotate_buf[64];
snprintf(rotate_buf, sizeof(rotate_buf), "%f*PI/180", theta);
INSERT_FILT("rotate", rotate_buf);
}
}
@@ -2231,10 +2231,19 @@ static int video_thread(void *arg)
enum AVPixelFormat last_format = -2;
int last_serial = -1;
int last_vfilter_idx = 0;
if (!graph) {
av_frame_free(&frame);
return AVERROR(ENOMEM);
}
#endif
if (!frame)
if (!frame) {
#if CONFIG_AVFILTER
avfilter_graph_free(&graph);
#endif
return AVERROR(ENOMEM);
}
for (;;) {
ret = get_video_frame(is, frame);
@@ -2403,9 +2412,9 @@ static int synchronize_audio(VideoState *is, int nb_samples)
wanted_nb_samples = nb_samples + (int)(diff * is->audio_src.freq);
min_nb_samples = ((nb_samples * (100 - SAMPLE_CORRECTION_PERCENT_MAX) / 100));
max_nb_samples = ((nb_samples * (100 + SAMPLE_CORRECTION_PERCENT_MAX) / 100));
wanted_nb_samples = FFMIN(FFMAX(wanted_nb_samples, min_nb_samples), max_nb_samples);
wanted_nb_samples = av_clip(wanted_nb_samples, min_nb_samples, max_nb_samples);
}
av_dlog(NULL, "diff=%f adiff=%f sample_diff=%d apts=%0.3f %f\n",
av_log(NULL, AV_LOG_TRACE, "diff=%f adiff=%f sample_diff=%d apts=%0.3f %f\n",
diff, avg_diff, wanted_nb_samples - nb_samples,
is->audio_clock, is->audio_diff_threshold);
}

View File

@@ -33,10 +33,12 @@
#include "libavutil/avassert.h"
#include "libavutil/avstring.h"
#include "libavutil/bprint.h"
#include "libavutil/display.h"
#include "libavutil/hash.h"
#include "libavutil/opt.h"
#include "libavutil/pixdesc.h"
#include "libavutil/dict.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/libm.h"
#include "libavutil/parseutils.h"
#include "libavutil/timecode.h"
@@ -135,6 +137,8 @@ typedef enum {
SECTION_ID_PACKET,
SECTION_ID_PACKETS,
SECTION_ID_PACKETS_AND_FRAMES,
SECTION_ID_PACKET_SIDE_DATA_LIST,
SECTION_ID_PACKET_SIDE_DATA,
SECTION_ID_PIXEL_FORMAT,
SECTION_ID_PIXEL_FORMAT_FLAGS,
SECTION_ID_PIXEL_FORMAT_COMPONENT,
@@ -153,6 +157,8 @@ typedef enum {
SECTION_ID_STREAM_DISPOSITION,
SECTION_ID_STREAMS,
SECTION_ID_STREAM_TAGS,
SECTION_ID_STREAM_SIDE_DATA_LIST,
SECTION_ID_STREAM_SIDE_DATA,
SECTION_ID_SUBTITLE,
} SectionID;
@@ -172,7 +178,9 @@ static struct section sections[] = {
[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_PACKET] = { SECTION_ID_PACKET, "packet", 0, { SECTION_ID_PACKET_SIDE_DATA_LIST, -1 } },
[SECTION_ID_PACKET_SIDE_DATA_LIST] ={ SECTION_ID_PACKET_SIDE_DATA_LIST, "side_data_list", SECTION_FLAG_IS_ARRAY, { SECTION_ID_PACKET_SIDE_DATA, -1 } },
[SECTION_ID_PACKET_SIDE_DATA] = { SECTION_ID_PACKET_SIDE_DATA, "side_data", 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" },
@@ -191,9 +199,11 @@ static struct section sections[] = {
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] = { SECTION_ID_STREAM, "stream", 0, { SECTION_ID_STREAM_DISPOSITION, SECTION_ID_STREAM_TAGS, SECTION_ID_STREAM_SIDE_DATA_LIST, -1 } },
[SECTION_ID_STREAM_DISPOSITION] = { SECTION_ID_STREAM_DISPOSITION, "disposition", 0, { -1 }, .unique_name = "stream_disposition" },
[SECTION_ID_STREAM_TAGS] = { SECTION_ID_STREAM_TAGS, "tags", SECTION_FLAG_HAS_VARIABLE_FIELDS, { -1 }, .element_name = "tag", .unique_name = "stream_tags" },
[SECTION_ID_STREAM_SIDE_DATA_LIST] ={ SECTION_ID_STREAM_SIDE_DATA_LIST, "side_data_list", SECTION_FLAG_IS_ARRAY, { SECTION_ID_STREAM_SIDE_DATA, -1 } },
[SECTION_ID_STREAM_SIDE_DATA] = { SECTION_ID_STREAM_SIDE_DATA, "side_data", 0, { -1 } },
[SECTION_ID_SUBTITLE] = { SECTION_ID_SUBTITLE, "subtitle", 0, { -1 } },
};
@@ -718,6 +728,32 @@ static void writer_print_data_hash(WriterContext *wctx, const char *name,
writer_print_string(wctx, name, buf, 0);
}
static void writer_print_integers(WriterContext *wctx, const char *name,
uint8_t *data, int size, const char *format,
int columns, int bytes, int offset_add)
{
AVBPrint bp;
int offset = 0, l, i;
av_bprint_init(&bp, 0, AV_BPRINT_SIZE_UNLIMITED);
av_bprintf(&bp, "\n");
while (size) {
av_bprintf(&bp, "%08x: ", offset);
l = FFMIN(size, columns);
for (i = 0; i < l; i++) {
if (bytes == 1) av_bprintf(&bp, format, *data);
else if (bytes == 2) av_bprintf(&bp, format, AV_RN16(data));
else if (bytes == 4) av_bprintf(&bp, format, AV_RN32(data));
data += bytes;
size --;
}
av_bprintf(&bp, "\n");
offset += offset_add;
}
writer_print_string(wctx, name, bp.str, 0);
av_bprint_finalize(&bp, NULL);
}
#define MAX_REGISTERED_WRITERS_NB 64
static const Writer *registered_writers[MAX_REGISTERED_WRITERS_NB + 1];
@@ -1723,6 +1759,25 @@ static void show_packet(WriterContext *w, AVFormatContext *fmt_ctx, AVPacket *pk
if (pkt->pos != -1) print_fmt ("pos", "%"PRId64, pkt->pos);
else print_str_opt("pos", "N/A");
print_fmt("flags", "%c", pkt->flags & AV_PKT_FLAG_KEY ? 'K' : '_');
if (pkt->side_data_elems) {
int i;
writer_print_section_header(w, SECTION_ID_PACKET_SIDE_DATA_LIST);
for (i = 0; i < pkt->side_data_elems; i++) {
AVPacketSideData *sd = &pkt->side_data[i];
const char *name = av_packet_side_data_name(sd->type);
writer_print_section_header(w, SECTION_ID_PACKET_SIDE_DATA);
print_str("side_data_type", name ? name : "unknown");
print_int("side_data_size", sd->size);
if (sd->type == AV_PKT_DATA_DISPLAYMATRIX && sd->size >= 9*4) {
writer_print_integers(w, "displaymatrix", sd->data, 9, " %11d", 3, 4, 1);
print_int("rotation", av_display_rotation_get((int32_t *)sd->data));
}
writer_print_section_footer(w);
}
writer_print_section_footer(w);
}
if (do_show_data)
writer_print_data(w, "data", pkt->data, pkt->size);
writer_print_data_hash(w, "data_hash", pkt->data, pkt->size);
@@ -1769,6 +1824,7 @@ static void show_frame(WriterContext *w, AVFrame *frame, AVStream *stream,
s = av_get_media_type_string(stream->codec->codec_type);
if (s) print_str ("media_type", s);
else print_str_opt("media_type", "unknown");
print_int("stream_index", stream->index);
print_int("key_frame", frame->key_frame);
print_ts ("pkt_pts", frame->pkt_pts);
print_time("pkt_pts_time", frame->pkt_pts, &stream->time_base);
@@ -1833,6 +1889,11 @@ static void show_frame(WriterContext *w, AVFrame *frame, AVStream *stream,
name = av_frame_side_data_name(sd->type);
print_str("side_data_type", name ? name : "unknown");
print_int("side_data_size", sd->size);
if (sd->type == AV_FRAME_DATA_DISPLAYMATRIX && sd->size >= 9*4) {
abort();
writer_print_integers(w, "displaymatrix", sd->data, 9, " %11d", 3, 4, 1);
print_int("rotation", av_display_rotation_get((int32_t *)sd->data));
}
writer_print_section_footer(w);
}
writer_print_section_footer(w);
@@ -2094,6 +2155,8 @@ static int show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_id
case AVMEDIA_TYPE_VIDEO:
print_int("width", dec_ctx->width);
print_int("height", dec_ctx->height);
print_int("coded_width", dec_ctx->coded_width);
print_int("coded_height", dec_ctx->coded_height);
print_int("has_b_frames", dec_ctx->has_b_frames);
sar = av_guess_sample_aspect_ratio(fmt_ctx, stream, NULL);
if (sar.den) {
@@ -2239,6 +2302,25 @@ static int show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_id
if (do_show_stream_tags)
ret = show_tags(w, stream->metadata, in_program ? SECTION_ID_PROGRAM_STREAM_TAGS : SECTION_ID_STREAM_TAGS);
if (stream->nb_side_data) {
int i;
writer_print_section_header(w, SECTION_ID_STREAM_SIDE_DATA_LIST);
for (i = 0; i < stream->nb_side_data; i++) {
AVPacketSideData *sd = &stream->side_data[i];
const char *name = av_packet_side_data_name(sd->type);
writer_print_section_header(w, SECTION_ID_STREAM_SIDE_DATA);
print_str("side_data_type", name ? name : "unknown");
print_int("side_data_size", sd->size);
if (sd->type == AV_PKT_DATA_DISPLAYMATRIX && sd->size >= 9*4) {
writer_print_integers(w, "displaymatrix", sd->data, 9, " %11d", 3, 4, 1);
print_int("rotation", av_display_rotation_get((int32_t *)sd->data));
}
writer_print_section_footer(w);
}
writer_print_section_footer(w);
}
writer_print_section_footer(w);
av_bprint_finalize(&pbuf, NULL);
fflush(stdout);

View File

@@ -967,6 +967,10 @@ static int handle_connection(HTTPContext *c)
/* close connection if trailer sent */
if (c->state == HTTPSTATE_SEND_DATA_TRAILER)
return -1;
/* Check if it is a single jpeg frame 123 */
if (c->stream->single_frame && c->data_count > c->cur_frame_bytes && c->cur_frame_bytes > 0) {
close_connection(c);
}
break;
case HTTPSTATE_RECEIVE_DATA:
/* no need to read if no events */
@@ -1204,6 +1208,10 @@ static FFServerIPAddressACL* parse_dynamic_acl(FFServerStream *stream,
}
acl = av_mallocz(sizeof(FFServerIPAddressACL));
if (!acl) {
fclose(f);
return NULL;
}
/* Build ACL */
while (fgets(line, sizeof(line), f)) {
@@ -2055,12 +2063,19 @@ static int open_input_stream(HTTPContext *c, const char *info)
ret = avformat_open_input(&s, input_filename, c->stream->ifmt,
&c->stream->in_opts);
if (ret < 0) {
http_log("Could not open input '%s': %s\n", input_filename, av_err2str(ret));
http_log("Could not open input '%s': %s\n",
input_filename, av_err2str(ret));
return ret;
}
/* set buffer size */
if (buf_size > 0) ffio_set_buf_size(s->pb, buf_size);
if (buf_size > 0) {
ret = ffio_set_buf_size(s->pb, buf_size);
if (ret < 0) {
http_log("Failed to set buffer size\n");
return ret;
}
}
s->flags |= AVFMT_FLAG_GENPTS;
c->fmt_in = s;
@@ -2122,14 +2137,20 @@ static int http_prepare_data(HTTPContext *c)
switch(c->state) {
case HTTPSTATE_SEND_DATA_HEADER:
ctx = avformat_alloc_context();
if (!ctx)
return AVERROR(ENOMEM);
c->fmt_ctx = *ctx;
av_freep(&ctx);
av_dict_copy(&(c->fmt_ctx.metadata), c->stream->metadata, 0);
c->fmt_ctx.streams = av_mallocz_array(c->stream->nb_streams, sizeof(AVStream *));
c->fmt_ctx.streams = av_mallocz_array(c->stream->nb_streams,
sizeof(AVStream *));
if (!c->fmt_ctx.streams)
return AVERROR(ENOMEM);
for(i=0;i<c->stream->nb_streams;i++) {
AVStream *src;
c->fmt_ctx.streams[i] = av_mallocz(sizeof(AVStream));
/* if file or feed, then just take streams from FFServerStream struct */
if (!c->stream->feed ||
c->stream->feed == c->stream)
@@ -2280,7 +2301,8 @@ static int http_prepare_data(HTTPContext *c)
max_packet_size = RTSP_TCP_MAX_PACKET_SIZE;
else
max_packet_size = c->rtp_handles[c->packet_stream_index]->max_packet_size;
ret = ffio_open_dyn_packet_buf(&ctx->pb, max_packet_size);
ret = ffio_open_dyn_packet_buf(&ctx->pb,
max_packet_size);
} else {
ret = avio_open_dyn_buf(&ctx->pb);
}
@@ -2292,10 +2314,13 @@ static int http_prepare_data(HTTPContext *c)
ctx->pb->seekable = 0;
if (pkt.dts != AV_NOPTS_VALUE)
pkt.dts = av_rescale_q(pkt.dts, ist->time_base, ost->time_base);
pkt.dts = av_rescale_q(pkt.dts, ist->time_base,
ost->time_base);
if (pkt.pts != AV_NOPTS_VALUE)
pkt.pts = av_rescale_q(pkt.pts, ist->time_base, ost->time_base);
pkt.duration = av_rescale_q(pkt.duration, ist->time_base, ost->time_base);
pkt.pts = av_rescale_q(pkt.pts, ist->time_base,
ost->time_base);
pkt.duration = av_rescale_q(pkt.duration, ist->time_base,
ost->time_base);
if ((ret = av_write_frame(ctx, &pkt)) < 0) {
http_log("Error writing frame to output for stream '%s': %s\n",
c->stream->filename, av_err2str(ret));
@@ -2437,7 +2462,8 @@ static int http_send_data(HTTPContext *c)
ffurl_write(c->rtp_handles[c->packet_stream_index],
c->buffer_ptr, len);
c->buffer_ptr += len;
/* here we continue as we can send several packets per 10 ms slot */
/* here we continue as we can send several packets
* per 10 ms slot */
}
} else {
/* TCP data output */
@@ -2642,6 +2668,9 @@ static int http_receive_data(HTTPContext *c)
pb = avio_alloc_context(c->buffer, c->buffer_end - c->buffer,
0, NULL, NULL, NULL, NULL);
if (!pb)
goto fail;
pb->seekable = 0;
s->pb = pb;
@@ -2830,9 +2859,12 @@ static int prepare_sdp_description(FFServerStream *stream, uint8_t **pbuffer,
snprintf(avc->filename, 1024, "rtp://0.0.0.0");
}
if (!(avc->streams = av_malloc_array(avc->nb_streams, sizeof(*avc->streams))))
avc->streams = av_malloc_array(avc->nb_streams, sizeof(*avc->streams));
if (!avc->streams)
goto sdp_done;
if (!(avs = av_malloc_array(avc->nb_streams, sizeof(*avs))))
avs = av_malloc_array(avc->nb_streams, sizeof(*avs));
if (!avs)
goto sdp_done;
for(i = 0; i < stream->nb_streams; i++) {
@@ -2840,6 +2872,8 @@ static int prepare_sdp_description(FFServerStream *stream, uint8_t **pbuffer,
avc->streams[i]->codec = stream->streams[i]->codec;
}
*pbuffer = av_mallocz(2048);
if (!*pbuffer)
goto sdp_done;
av_sdp_create(&avc, 1, *pbuffer, 2048);
sdp_done:
@@ -2894,7 +2928,8 @@ static void rtsp_cmd_describe(HTTPContext *c, const char *url)
/* get the host IP */
len = sizeof(my_addr);
getsockname(c->fd, (struct sockaddr *)&my_addr, &len);
content_length = prepare_sdp_description(stream, &content, my_addr.sin_addr);
content_length = prepare_sdp_description(stream, &content,
my_addr.sin_addr);
if (content_length < 0) {
rtsp_reply_error(c, RTSP_STATUS_INTERNAL);
return;
@@ -3355,6 +3390,10 @@ static AVStream *add_av_stream1(FFServerStream *stream,
return NULL;
if (copy) {
fst->codec = avcodec_alloc_context3(codec->codec);
if (!fst->codec) {
av_free(fst);
return NULL;
}
avcodec_copy_context(fst->codec, codec);
} else {
/* live streams must use the actual feed's codec since it may be
@@ -3463,7 +3502,6 @@ static void extract_mpeg4_header(AVFormatContext *infile)
if (p[0] == 0x00 && p[1] == 0x00 &&
p[2] == 0x01 && p[3] == 0xb6) {
size = p - pkt.data;
// av_hex_dump_log(infile, AV_LOG_DEBUG, pkt.data, size);
st->codec->extradata = av_mallocz(size + FF_INPUT_BUFFER_PADDING_SIZE);
st->codec->extradata_size = size;
memcpy(st->codec->extradata, pkt.data, size);
@@ -3550,7 +3588,8 @@ static void build_feed_streams(void)
} else {
/* we handle a stream coming from a feed */
for(i=0;i<stream->nb_streams;i++)
stream->feed_streams[i] = add_av_stream(feed, stream->streams[i]);
stream->feed_streams[i] = add_av_stream(feed,
stream->streams[i]);
}
}
}
@@ -3566,7 +3605,12 @@ static void build_feed_streams(void)
if (avformat_open_input(&s, feed->feed_filename, NULL, NULL) >= 0) {
/* set buffer size */
ffio_set_buf_size(s->pb, FFM_PACKET_SIZE);
int ret = ffio_set_buf_size(s->pb, FFM_PACKET_SIZE);
if (ret < 0) {
http_log("Failed to set buffer size\n");
exit(1);
}
/* Now see if it matches */
if (s->nb_streams == feed->nb_streams) {
matches = 1;
@@ -3637,6 +3681,11 @@ static void build_feed_streams(void)
if (avio_check(feed->feed_filename, AVIO_FLAG_WRITE) <= 0) {
AVFormatContext *s = avformat_alloc_context();
if (!s) {
http_log("Failed to allocate context\n");
exit(1);
}
if (feed->readonly) {
http_log("Unable to create feed file '%s' as it is marked readonly\n",
feed->feed_filename);

View File

@@ -862,8 +862,10 @@ static int ffserver_parse_config_stream(FFServerConfig *config, const char *cmd,
} else {
stream->stream_type = STREAM_TYPE_LIVE;
/* JPEG cannot be used here, so use single frame MJPEG */
if (!strcmp(arg, "jpeg"))
strcpy(arg, "mjpeg");
if (!strcmp(arg, "jpeg")) {
strcpy(arg, "singlejpeg");
stream->single_frame=1;
}
stream->fmt = ffserver_guess_format(arg, NULL, NULL);
if (!stream->fmt)
ERROR("Unknown Format: '%s'\n", arg);

View File

@@ -79,6 +79,7 @@ typedef struct FFServerStream {
int multicast_port; /* first port used for multicast */
int multicast_ttl;
int loop; /* if true, send the stream in loops (only meaningful if file) */
char single_frame; /* only single frame */
/* feed specific */
int feed_opened; /* true if someone is writing to the feed */

View File

@@ -5,6 +5,7 @@ NAME = avcodec
HEADERS = avcodec.h \
avfft.h \
dv_profile.h \
d3d11va.h \
dxva2.h \
old_codec_ids.h \
qsv.h \
@@ -70,6 +71,7 @@ OBJS-$(CONFIG_IDCTDSP) += idctdsp.o simple_idct.o jrevdct.o
OBJS-$(CONFIG_IIRFILTER) += iirfilter.o
OBJS-$(CONFIG_IMDCT15) += imdct15.o
OBJS-$(CONFIG_INTRAX8) += intrax8.o intrax8dsp.o
OBJS-$(CONFIG_JPEGTABLES) += jpegtables.o
OBJS-$(CONFIG_LIBXVID) += libxvid_rc.o
OBJS-$(CONFIG_LLAUDDSP) += lossless_audiodsp.o
OBJS-$(CONFIG_LLVIDDSP) += lossless_videodsp.o
@@ -84,14 +86,18 @@ OBJS-$(CONFIG_MPEGAUDIODSP) += mpegaudiodsp.o \
mpegaudiodsp_data.o \
mpegaudiodsp_fixed.o \
mpegaudiodsp_float.o
OBJS-$(CONFIG_MPEGVIDEO) += mpegvideo.o mpegvideodsp.o \
mpegvideo_motion.o mpegutils.o
OBJS-$(CONFIG_MPEGVIDEO) += mpegvideo.o mpegvideodsp.o rl.o \
mpegvideo_motion.o mpegutils.o \
mpegvideodata.o
OBJS-$(CONFIG_MPEGVIDEOENC) += mpegvideo_enc.o mpeg12data.o \
motion_est.o ratecontrol.o \
mpegvideoencdsp.o
OBJS-$(CONFIG_NVENC) += nvenc.o
OBJS-$(CONFIG_PIXBLOCKDSP) += pixblockdsp.o
OBJS-$(CONFIG_QPELDSP) += qpeldsp.o
OBJS-$(CONFIG_QSV) += qsv.o
OBJS-$(CONFIG_QSVDEC) += qsvdec.o
OBJS-$(CONFIG_QSVENC) += qsvenc.o
OBJS-$(CONFIG_RANGECODER) += rangecoder.o
RDFT-OBJS-$(CONFIG_HARDCODED_TABLES) += sin_tables.o
OBJS-$(CONFIG_RDFT) += rdft.o $(RDFT-OBJS-yes)
@@ -133,7 +139,7 @@ OBJS-$(CONFIG_AMRWB_DECODER) += amrwbdec.o celp_filters.o \
celp_math.o acelp_filters.o \
acelp_vectors.o \
acelp_pitch_delay.o
OBJS-$(CONFIG_AMV_ENCODER) += mjpegenc.o mjpeg.o mjpegenc_common.o \
OBJS-$(CONFIG_AMV_ENCODER) += mjpegenc.o mjpegenc_common.o \
mpegvideo_enc.o motion_est.o \
ratecontrol.o mpeg12data.o \
mpegvideo.o
@@ -141,6 +147,7 @@ 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_APNG_ENCODER) += png.o pngenc.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
@@ -155,7 +162,7 @@ OBJS-$(CONFIG_ATRAC3P_DECODER) += atrac3plusdec.o atrac3plus.o \
atrac3plusdsp.o atrac.o
OBJS-$(CONFIG_AURA_DECODER) += cyuv.o
OBJS-$(CONFIG_AURA2_DECODER) += aura.o
OBJS-$(CONFIG_AVRN_DECODER) += avrndec.o mjpegdec.o mjpeg.o
OBJS-$(CONFIG_AVRN_DECODER) += avrndec.o mjpegdec.o
OBJS-$(CONFIG_AVRP_DECODER) += r210dec.o
OBJS-$(CONFIG_AVRP_ENCODER) += r210enc.o
OBJS-$(CONFIG_AVS_DECODER) += avs.o
@@ -184,7 +191,7 @@ OBJS-$(CONFIG_CINEPAK_DECODER) += cinepak.o
OBJS-$(CONFIG_CINEPAK_ENCODER) += cinepakenc.o elbg.o
OBJS-$(CONFIG_CLJR_DECODER) += cljrdec.o
OBJS-$(CONFIG_CLJR_ENCODER) += cljrenc.o
OBJS-$(CONFIG_CLLC_DECODER) += cllc.o
OBJS-$(CONFIG_CLLC_DECODER) += cllc.o canopus.o
OBJS-$(CONFIG_COOK_DECODER) += cook.o
OBJS-$(CONFIG_COMFORTNOISE_DECODER) += cngdec.o celp_filters.o
OBJS-$(CONFIG_COMFORTNOISE_ENCODER) += cngenc.o
@@ -193,7 +200,7 @@ OBJS-$(CONFIG_CSCD_DECODER) += cscd.o
OBJS-$(CONFIG_CYUV_DECODER) += cyuv.o
OBJS-$(CONFIG_DCA_DECODER) += dcadec.o dca.o dcadsp.o \
dcadata.o dca_exss.o \
synth_filter.o
dca_xll.o synth_filter.o
OBJS-$(CONFIG_DCA_ENCODER) += dcaenc.o dca.o dcadata.o
OBJS-$(CONFIG_DIRAC_DECODER) += diracdec.o dirac.o diracdsp.o \
dirac_arith.o mpeg12data.o dirac_dwt.o
@@ -246,7 +253,7 @@ OBJS-$(CONFIG_FLIC_DECODER) += flicvideo.o
OBJS-$(CONFIG_FOURXM_DECODER) += 4xm.o
OBJS-$(CONFIG_FRAPS_DECODER) += fraps.o
OBJS-$(CONFIG_FRWU_DECODER) += frwu.o
OBJS-$(CONFIG_G2M_DECODER) += g2meet.o mjpeg.o
OBJS-$(CONFIG_G2M_DECODER) += g2meet.o
OBJS-$(CONFIG_G723_1_DECODER) += g723_1.o acelp_vectors.o \
celp_filters.o celp_math.o
OBJS-$(CONFIG_G723_1_ENCODER) += g723_1.o acelp_vectors.o celp_math.o
@@ -266,13 +273,17 @@ OBJS-$(CONFIG_H264_DECODER) += h264.o h264_cabac.o h264_cavlc.o \
h264_direct.o h264_loopfilter.o \
h264_mb.o h264_picture.o h264_ps.o \
h264_refs.o h264_sei.o h264_slice.o
OBJS-$(CONFIG_H264_MMAL_DECODER) += mmaldec.o
OBJS-$(CONFIG_H264_VDA_DECODER) += vda_h264_dec.o
OBJS-$(CONFIG_H264_QSV_DECODER) += qsv_h264.o
OBJS-$(CONFIG_H264_QSV_DECODER) += qsvdec_h264.o
OBJS-$(CONFIG_H264_QSV_ENCODER) += qsvenc_h264.o
OBJS-$(CONFIG_HEVC_DECODER) += hevc.o hevc_mvs.o hevc_ps.o hevc_sei.o \
hevc_cabac.o hevc_refs.o hevcpred.o \
hevcdsp.o hevc_filter.o
OBJS-$(CONFIG_HNM4_VIDEO_DECODER) += hnm4video.o
OBJS-$(CONFIG_HQX_DECODER) += hqx.o hqxvlc.o
OBJS-$(CONFIG_HQ_HQA_DECODER) += hq_hqa.o hq_hqadata.o hq_hqadsp.o \
canopus.o
OBJS-$(CONFIG_HQX_DECODER) += hqx.o hqxvlc.o hqxdsp.o canopus.o
OBJS-$(CONFIG_HUFFYUV_DECODER) += huffyuv.o huffyuvdec.o
OBJS-$(CONFIG_HUFFYUV_ENCODER) += huffyuv.o huffyuvenc.o
OBJS-$(CONFIG_IDCIN_DECODER) += idcinvideo.o
@@ -282,8 +293,8 @@ OBJS-$(CONFIG_IFF_ILBM_DECODER) += iff.o
OBJS-$(CONFIG_IMC_DECODER) += imc.o
OBJS-$(CONFIG_INDEO2_DECODER) += indeo2.o
OBJS-$(CONFIG_INDEO3_DECODER) += indeo3.o
OBJS-$(CONFIG_INDEO4_DECODER) += indeo4.o ivi_common.o ivi_dsp.o
OBJS-$(CONFIG_INDEO5_DECODER) += indeo5.o ivi_common.o ivi_dsp.o
OBJS-$(CONFIG_INDEO4_DECODER) += indeo4.o ivi.o ivi_dsp.o
OBJS-$(CONFIG_INDEO5_DECODER) += indeo5.o ivi.o ivi_dsp.o
OBJS-$(CONFIG_INTERPLAY_DPCM_DECODER) += dpcm.o
OBJS-$(CONFIG_INTERPLAY_VIDEO_DECODER) += interplayvideo.o
OBJS-$(CONFIG_JACOSUB_DECODER) += jacosubdec.o ass.o
@@ -297,7 +308,7 @@ OBJS-$(CONFIG_JV_DECODER) += jvdec.o
OBJS-$(CONFIG_KGV1_DECODER) += kgv1dec.o
OBJS-$(CONFIG_KMVC_DECODER) += kmvc.o
OBJS-$(CONFIG_LAGARITH_DECODER) += lagarith.o lagarithrac.o
OBJS-$(CONFIG_LJPEG_ENCODER) += ljpegenc.o mjpeg.o mjpegenc_common.o
OBJS-$(CONFIG_LJPEG_ENCODER) += ljpegenc.o mjpegenc_common.o
OBJS-$(CONFIG_LOCO_DECODER) += loco.o
OBJS-$(CONFIG_MACE3_DECODER) += mace.o
OBJS-$(CONFIG_MACE6_DECODER) += mace.o
@@ -306,8 +317,8 @@ OBJS-$(CONFIG_METASOUND_DECODER) += metasound.o metasound_data.o \
twinvq.o
OBJS-$(CONFIG_MICRODVD_DECODER) += microdvddec.o ass.o
OBJS-$(CONFIG_MIMIC_DECODER) += mimic.o
OBJS-$(CONFIG_MJPEG_DECODER) += mjpegdec.o mjpeg.o
OBJS-$(CONFIG_MJPEG_ENCODER) += mjpegenc.o mjpeg.o mjpegenc_common.o
OBJS-$(CONFIG_MJPEG_DECODER) += mjpegdec.o
OBJS-$(CONFIG_MJPEG_ENCODER) += mjpegenc.o mjpegenc_common.o
OBJS-$(CONFIG_MJPEGB_DECODER) += mjpegbdec.o
OBJS-$(CONFIG_MLP_DECODER) += mlpdec.o mlpdsp.o
OBJS-$(CONFIG_MMVIDEO_DECODER) += mmvideo.o
@@ -356,7 +367,6 @@ OBJS-$(CONFIG_MXPEG_DECODER) += mxpegdec.o
OBJS-$(CONFIG_NELLYMOSER_DECODER) += nellymoserdec.o nellymoser.o
OBJS-$(CONFIG_NELLYMOSER_ENCODER) += nellymoserenc.o nellymoser.o
OBJS-$(CONFIG_NUV_DECODER) += nuv.o rtjpeg.o
OBJS-$(CONFIG_NVENC_ENCODER) += nvenc.o
OBJS-$(CONFIG_ON2AVC_DECODER) += on2avc.o on2avcdata.o
OBJS-$(CONFIG_OPUS_DECODER) += opusdec.o opus.o opus_celt.o \
opus_silk.o vorbis_data.o
@@ -458,6 +468,7 @@ 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_TDSC_DECODER) += tdsc.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
@@ -506,7 +517,8 @@ OBJS-$(CONFIG_VP6_DECODER) += vp6.o vp56.o vp56data.o vp56dsp.o \
vp6dsp.o vp56rac.o
OBJS-$(CONFIG_VP7_DECODER) += vp8.o vp8dsp.o vp56rac.o
OBJS-$(CONFIG_VP8_DECODER) += vp8.o vp8dsp.o vp56rac.o
OBJS-$(CONFIG_VP9_DECODER) += vp9.o vp9dsp.o vp56rac.o
OBJS-$(CONFIG_VP9_DECODER) += vp9.o vp9dsp.o vp56rac.o vp9dsp_8bpp.o \
vp9dsp_10bpp.o vp9dsp_12bpp.o
OBJS-$(CONFIG_VPLAYER_DECODER) += textdec.o ass.o
OBJS-$(CONFIG_VQA_DECODER) += vqavideo.o
OBJS-$(CONFIG_WAVPACK_DECODER) += wavpack.o
@@ -661,6 +673,7 @@ OBJS-$(CONFIG_ADPCM_YAMAHA_ENCODER) += adpcmenc.o adpcm_data.o
OBJS-$(CONFIG_VIMA_DECODER) += vima.o adpcm_data.o
# hardware accelerators
OBJS-$(CONFIG_D3D11VA) += dxva2.o
OBJS-$(CONFIG_DXVA2) += dxva2.o
OBJS-$(CONFIG_VAAPI) += vaapi.o
OBJS-$(CONFIG_VDA) += vda.o
@@ -668,19 +681,23 @@ OBJS-$(CONFIG_VDPAU) += vdpau.o
OBJS-$(CONFIG_H263_VAAPI_HWACCEL) += vaapi_mpeg4.o
OBJS-$(CONFIG_H263_VDPAU_HWACCEL) += vdpau_mpeg4.o
OBJS-$(CONFIG_H264_D3D11VA_HWACCEL) += dxva2_h264.o
OBJS-$(CONFIG_H264_DXVA2_HWACCEL) += dxva2_h264.o
OBJS-$(CONFIG_H264_VAAPI_HWACCEL) += vaapi_h264.o
OBJS-$(CONFIG_H264_VDA_HWACCEL) += vda_h264.o
OBJS-$(CONFIG_H264_VDPAU_HWACCEL) += vdpau_h264.o
OBJS-$(CONFIG_HEVC_D3D11VA_HWACCEL) += dxva2_hevc.o
OBJS-$(CONFIG_HEVC_DXVA2_HWACCEL) += dxva2_hevc.o
OBJS-$(CONFIG_MPEG1_VDPAU_HWACCEL) += vdpau_mpeg12.o
OBJS-$(CONFIG_MPEG1_XVMC_HWACCEL) += mpegvideo_xvmc.o
OBJS-$(CONFIG_MPEG2_D3D11VA_HWACCEL) += dxva2_mpeg2.o
OBJS-$(CONFIG_MPEG2_DXVA2_HWACCEL) += dxva2_mpeg2.o
OBJS-$(CONFIG_MPEG2_VAAPI_HWACCEL) += vaapi_mpeg2.o
OBJS-$(CONFIG_MPEG2_VDPAU_HWACCEL) += vdpau_mpeg12.o
OBJS-$(CONFIG_MPEG2_XVMC_HWACCEL) += mpegvideo_xvmc.o
OBJS-$(CONFIG_MPEG4_VAAPI_HWACCEL) += vaapi_mpeg4.o
OBJS-$(CONFIG_MPEG4_VDPAU_HWACCEL) += vdpau_mpeg4.o
OBJS-$(CONFIG_VC1_D3D11VA_HWACCEL) += dxva2_vc1.o
OBJS-$(CONFIG_VC1_DXVA2_HWACCEL) += dxva2_vc1.o
OBJS-$(CONFIG_VC1_VAAPI_HWACCEL) += vaapi_vc1.o
OBJS-$(CONFIG_VC1_VDPAU_HWACCEL) += vdpau_vc1.o
@@ -716,7 +733,6 @@ OBJS-$(CONFIG_OGG_DEMUXER) += mpeg12data.o \
OBJS-$(CONFIG_OGG_MUXER) += flac.o flacdata.o \
vorbis_data.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
@@ -731,6 +747,7 @@ OBJS-$(CONFIG_ELBG_FILTER) += elbg.o
# external codec libraries
OBJS-$(CONFIG_LIBAACPLUS_ENCODER) += libaacplus.o
OBJS-$(CONFIG_LIBCELT_DECODER) += libcelt_dec.o
OBJS-$(CONFIG_LIBDCADEC_DECODER) += libdcadec.o dca.o
OBJS-$(CONFIG_LIBFAAC_ENCODER) += libfaac.o
OBJS-$(CONFIG_LIBFDK_AAC_DECODER) += libfdk-aacdec.o
OBJS-$(CONFIG_LIBFDK_AAC_ENCODER) += libfdk-aacenc.o
@@ -773,7 +790,8 @@ OBJS-$(CONFIG_LIBVPX_VP8_ENCODER) += libvpxenc.o
OBJS-$(CONFIG_LIBVPX_VP9_DECODER) += libvpxdec.o libvpx.o
OBJS-$(CONFIG_LIBVPX_VP9_ENCODER) += libvpxenc.o libvpx.o
OBJS-$(CONFIG_LIBWAVPACK_ENCODER) += libwavpackenc.o
OBJS-$(CONFIG_LIBWEBP_ENCODER) += libwebpenc.o
OBJS-$(CONFIG_LIBWEBP_ENCODER) += libwebpenc_common.o libwebpenc.o
OBJS-$(CONFIG_LIBWEBP_ANIM_ENCODER) += libwebpenc_common.o libwebpenc_animencoder.o
OBJS-$(CONFIG_LIBX264_ENCODER) += libx264.o
OBJS-$(CONFIG_LIBX265_ENCODER) += libx265.o
OBJS-$(CONFIG_LIBXAVS_ENCODER) += libxavs.o
@@ -832,8 +850,9 @@ OBJS-$(CONFIG_CHOMP_BSF) += chomp_bsf.o
OBJS-$(CONFIG_DUMP_EXTRADATA_BSF) += dump_extradata_bsf.o
OBJS-$(CONFIG_H264_MP4TOANNEXB_BSF) += h264_mp4toannexb_bsf.o
OBJS-$(CONFIG_IMX_DUMP_HEADER_BSF) += imx_dump_header_bsf.o
OBJS-$(CONFIG_MJPEG2JPEG_BSF) += mjpeg2jpeg_bsf.o mjpeg.o
OBJS-$(CONFIG_MJPEG2JPEG_BSF) += mjpeg2jpeg_bsf.o
OBJS-$(CONFIG_MJPEGA_DUMP_HEADER_BSF) += mjpega_dump_header_bsf.o
OBJS-$(CONFIG_MPEG4_UNPACK_BFRAMES_BSF) += mpeg4_unpack_bframes_bsf.o
OBJS-$(CONFIG_MOV2TEXTSUB_BSF) += movsub_bsf.o
OBJS-$(CONFIG_MP3_HEADER_DECOMPRESS_BSF) += mp3_header_decompress_bsf.o \
mpegaudiodata.o
@@ -860,19 +879,24 @@ SKIPHEADERS += %_tablegen.h \
tableprint_vlc.h \
$(ARCH)/vp56_arith.h \
SKIPHEADERS-$(CONFIG_D3D11VA) += d3d11va.h dxva2_internal.h
SKIPHEADERS-$(CONFIG_DXVA2) += dxva2.h dxva2_internal.h
SKIPHEADERS-$(CONFIG_LIBSCHROEDINGER) += libschroedinger.h
SKIPHEADERS-$(CONFIG_LIBUTVIDEO) += libutvideo.h
SKIPHEADERS-$(CONFIG_QSV) += qsv.h qsv_internal.h
SKIPHEADERS-$(CONFIG_QSVDEC) += qsvdec.h
SKIPHEADERS-$(CONFIG_QSVENC) += qsvenc.h
SKIPHEADERS-$(CONFIG_XVMC) += xvmc.h
SKIPHEADERS-$(CONFIG_VAAPI) += vaapi_internal.h
SKIPHEADERS-$(CONFIG_VDA) += vda.h vda_internal.h
SKIPHEADERS-$(CONFIG_VDPAU) += vdpau.h vdpau_internal.h
TESTPROGS = imgconvert \
mathops \
options \
avfft \
TESTPROGS += api-flac
TESTPROGS-$(CONFIG_CABAC) += cabac
TESTPROGS-$(CONFIG_FFT) += fft fft-fixed fft-fixed32

View File

@@ -141,6 +141,10 @@ typedef struct PredictorState {
#define SCALE_MAX_DIFF 60 ///< maximum scalefactor difference allowed by standard
#define SCALE_DIFF_ZERO 60 ///< codebook index corresponding to zero scalefactor indices difference
#define NOISE_PRE 256 ///< preamble for NOISE_BT, put in bitstream with the first noise band
#define NOISE_PRE_BITS 9 ///< length of preamble
#define NOISE_OFFSET 90 ///< subtracted from global gain, used as offset for the preamble
/**
* Long Term Prediction
*/

View File

@@ -40,6 +40,12 @@
#include "aacenc.h"
#include "aactab.h"
/** Frequency in Hz for lower limit of noise substitution **/
#define NOISE_LOW_LIMIT 4000
/** Total number of usable codebooks **/
#define CB_TOT 13
/** bits needed to code codebook run value for long windows */
static const uint8_t run_value_bits_long[64] = {
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
@@ -57,6 +63,10 @@ static const uint8_t * const run_value_bits[2] = {
run_value_bits_long, run_value_bits_short
};
/** Map to convert values from BandCodingPath index to a codebook index **/
static const uint8_t aac_cb_out_map[CB_TOT] = {0,1,2,3,4,5,6,7,8,9,10,11,13};
/** Inverse map to convert from codebooks to BandCodingPath indices **/
static const uint8_t aac_cb_in_map[CB_TOT+1] = {0,1,2,3,4,5,6,7,8,9,10,11,0,12};
/**
* Quantize one coefficient.
@@ -108,7 +118,7 @@ static av_always_inline float quantize_and_encode_band_cost_template(
const float *scaled, int size, int scale_idx,
int cb, const float lambda, const float uplim,
int *bits, int BT_ZERO, int BT_UNSIGNED,
int BT_PAIR, int BT_ESC)
int BT_PAIR, int BT_ESC, int BT_NOISE)
{
const int q_idx = POW_SF2_ZERO - scale_idx + SCALE_ONE_POS - SCALE_DIV_512;
const float Q = ff_aac_pow2sf_tab [q_idx];
@@ -119,8 +129,6 @@ static av_always_inline float quantize_and_encode_band_cost_template(
float cost = 0;
const int dim = BT_PAIR ? 2 : 4;
int resbits = 0;
const int range = aac_cb_range[cb];
const int maxval = aac_cb_maxval[cb];
int off;
if (BT_ZERO) {
@@ -130,15 +138,22 @@ static av_always_inline float quantize_and_encode_band_cost_template(
*bits = 0;
return cost * lambda;
}
if (BT_NOISE) {
for (i = 0; i < size; i++)
cost += in[i]*in[i];
if (bits)
*bits = 0;
return cost * lambda;
}
if (!scaled) {
abs_pow34_v(s->scoefs, in, size);
scaled = s->scoefs;
}
quantize_bands(s->qcoefs, in, scaled, size, Q34, !BT_UNSIGNED, maxval);
quantize_bands(s->qcoefs, in, scaled, size, Q34, !BT_UNSIGNED, aac_cb_maxval[cb]);
if (BT_UNSIGNED) {
off = 0;
} else {
off = maxval;
off = aac_cb_maxval[cb];
}
for (i = 0; i < size; i += dim) {
const float *vec;
@@ -147,7 +162,7 @@ static av_always_inline float quantize_and_encode_band_cost_template(
int curbits;
float rd = 0.0f;
for (j = 0; j < dim; j++) {
curidx *= range;
curidx *= aac_cb_range[cb];
curidx += quants[j] + off;
}
curbits = ff_aac_spectral_bits[cb-1][curidx];
@@ -195,7 +210,7 @@ static av_always_inline float quantize_and_encode_band_cost_template(
int len = av_log2(coef);
put_bits(pb, len - 4 + 1, (1 << (len - 4 + 1)) - 2);
put_bits(pb, len, coef & ((1 << len) - 1));
put_sbits(pb, len, coef);
}
}
}
@@ -207,8 +222,17 @@ static av_always_inline float quantize_and_encode_band_cost_template(
return cost;
}
#define QUANTIZE_AND_ENCODE_BAND_COST_FUNC(NAME, BT_ZERO, BT_UNSIGNED, BT_PAIR, BT_ESC) \
static float quantize_and_encode_band_cost_ ## NAME( \
static float quantize_and_encode_band_cost_NONE(struct AACEncContext *s, PutBitContext *pb,
const float *in, const float *scaled,
int size, int scale_idx, int cb,
const float lambda, const float uplim,
int *bits) {
av_assert0(0);
return 0.0f;
}
#define QUANTIZE_AND_ENCODE_BAND_COST_FUNC(NAME, BT_ZERO, BT_UNSIGNED, BT_PAIR, BT_ESC, BT_NOISE) \
static float quantize_and_encode_band_cost_ ## NAME( \
struct AACEncContext *s, \
PutBitContext *pb, const float *in, \
const float *scaled, int size, int scale_idx, \
@@ -217,15 +241,16 @@ static float quantize_and_encode_band_cost_ ## NAME(
return quantize_and_encode_band_cost_template( \
s, pb, in, scaled, size, scale_idx, \
BT_ESC ? ESC_BT : cb, lambda, uplim, bits, \
BT_ZERO, BT_UNSIGNED, BT_PAIR, BT_ESC); \
BT_ZERO, BT_UNSIGNED, BT_PAIR, BT_ESC, BT_NOISE); \
}
QUANTIZE_AND_ENCODE_BAND_COST_FUNC(ZERO, 1, 0, 0, 0)
QUANTIZE_AND_ENCODE_BAND_COST_FUNC(SQUAD, 0, 0, 0, 0)
QUANTIZE_AND_ENCODE_BAND_COST_FUNC(UQUAD, 0, 1, 0, 0)
QUANTIZE_AND_ENCODE_BAND_COST_FUNC(SPAIR, 0, 0, 1, 0)
QUANTIZE_AND_ENCODE_BAND_COST_FUNC(UPAIR, 0, 1, 1, 0)
QUANTIZE_AND_ENCODE_BAND_COST_FUNC(ESC, 0, 1, 1, 1)
QUANTIZE_AND_ENCODE_BAND_COST_FUNC(ZERO, 1, 0, 0, 0, 0)
QUANTIZE_AND_ENCODE_BAND_COST_FUNC(SQUAD, 0, 0, 0, 0, 0)
QUANTIZE_AND_ENCODE_BAND_COST_FUNC(UQUAD, 0, 1, 0, 0, 0)
QUANTIZE_AND_ENCODE_BAND_COST_FUNC(SPAIR, 0, 0, 1, 0, 0)
QUANTIZE_AND_ENCODE_BAND_COST_FUNC(UPAIR, 0, 1, 1, 0, 0)
QUANTIZE_AND_ENCODE_BAND_COST_FUNC(ESC, 0, 1, 1, 1, 0)
QUANTIZE_AND_ENCODE_BAND_COST_FUNC(NOISE, 0, 0, 0, 0, 1)
static float (*const quantize_and_encode_band_cost_arr[])(
struct AACEncContext *s,
@@ -245,6 +270,8 @@ static float (*const quantize_and_encode_band_cost_arr[])(
quantize_and_encode_band_cost_UPAIR,
quantize_and_encode_band_cost_UPAIR,
quantize_and_encode_band_cost_ESC,
quantize_and_encode_band_cost_NONE, /* CB 12 doesn't exist */
quantize_and_encode_band_cost_NOISE,
};
#define quantize_and_encode_band_cost( \
@@ -312,7 +339,7 @@ typedef struct BandCodingPath {
static void encode_window_bands_info(AACEncContext *s, SingleChannelElement *sce,
int win, int group_len, const float lambda)
{
BandCodingPath path[120][12];
BandCodingPath path[120][CB_TOT];
int w, swb, cb, start, size;
int i, j;
const int max_sfb = sce->ics.max_sfb;
@@ -325,7 +352,7 @@ static void encode_window_bands_info(AACEncContext *s, SingleChannelElement *sce
abs_pow34_v(s->scoefs, sce->coeffs, 1024);
start = win*128;
for (cb = 0; cb < 12; cb++) {
for (cb = 0; cb < CB_TOT; cb++) {
path[0][cb].cost = 0.0f;
path[0][cb].prev_idx = -1;
path[0][cb].run = 0;
@@ -333,7 +360,7 @@ static void encode_window_bands_info(AACEncContext *s, SingleChannelElement *sce
for (swb = 0; swb < max_sfb; swb++) {
size = sce->ics.swb_sizes[swb];
if (sce->zeroes[win*16 + swb]) {
for (cb = 0; cb < 12; cb++) {
for (cb = 0; cb < CB_TOT; cb++) {
path[swb+1][cb].prev_idx = cb;
path[swb+1][cb].cost = path[swb][cb].cost;
path[swb+1][cb].run = path[swb][cb].run + 1;
@@ -343,14 +370,14 @@ static void encode_window_bands_info(AACEncContext *s, SingleChannelElement *sce
int mincb = next_mincb;
next_minrd = INFINITY;
next_mincb = 0;
for (cb = 0; cb < 12; cb++) {
for (cb = 0; cb < CB_TOT; cb++) {
float cost_stay_here, cost_get_here;
float rd = 0.0f;
for (w = 0; w < group_len; w++) {
FFPsyBand *band = &s->psy.ch[s->cur_channel].psy_bands[(win+w)*16+swb];
rd += quantize_band_cost(s, sce->coeffs + start + w*128,
s->scoefs + start + w*128, size,
sce->sf_idx[(win+w)*16+swb], cb,
sce->sf_idx[(win+w)*16+swb], aac_cb_out_map[cb],
lambda / band->threshold, INFINITY, NULL);
}
cost_stay_here = path[swb][cb].cost + rd;
@@ -379,7 +406,7 @@ static void encode_window_bands_info(AACEncContext *s, SingleChannelElement *sce
//convert resulting path from backward-linked list
stack_len = 0;
idx = 0;
for (cb = 1; cb < 12; cb++)
for (cb = 1; cb < CB_TOT; cb++)
if (path[max_sfb][cb].cost < path[max_sfb][idx].cost)
idx = cb;
ppos = max_sfb;
@@ -394,12 +421,13 @@ static void encode_window_bands_info(AACEncContext *s, SingleChannelElement *sce
//perform actual band info encoding
start = 0;
for (i = stack_len - 1; i >= 0; i--) {
put_bits(&s->pb, 4, stackcb[i]);
cb = aac_cb_out_map[stackcb[i]];
put_bits(&s->pb, 4, cb);
count = stackrun[i];
memset(sce->zeroes + win*16 + start, !stackcb[i], count);
memset(sce->zeroes + win*16 + start, !cb, count);
//XXX: memset when band_type is also uint8_t
for (j = 0; j < count; j++) {
sce->band_type[win*16 + start] = stackcb[i];
sce->band_type[win*16 + start] = cb;
start++;
}
while (count >= run_esc) {
@@ -413,7 +441,7 @@ static void encode_window_bands_info(AACEncContext *s, SingleChannelElement *sce
static void codebook_trellis_rate(AACEncContext *s, SingleChannelElement *sce,
int win, int group_len, const float lambda)
{
BandCodingPath path[120][12];
BandCodingPath path[120][CB_TOT];
int w, swb, cb, start, size;
int i, j;
const int max_sfb = sce->ics.max_sfb;
@@ -426,7 +454,7 @@ static void codebook_trellis_rate(AACEncContext *s, SingleChannelElement *sce,
abs_pow34_v(s->scoefs, sce->coeffs, 1024);
start = win*128;
for (cb = 0; cb < 12; cb++) {
for (cb = 0; cb < CB_TOT; cb++) {
path[0][cb].cost = run_bits+4;
path[0][cb].prev_idx = -1;
path[0][cb].run = 0;
@@ -450,7 +478,7 @@ static void codebook_trellis_rate(AACEncContext *s, SingleChannelElement *sce,
}
next_minbits = path[swb+1][0].cost;
next_mincb = 0;
for (cb = 1; cb < 12; cb++) {
for (cb = 1; cb < CB_TOT; cb++) {
path[swb+1][cb].cost = 61450;
path[swb+1][cb].prev_idx = -1;
path[swb+1][cb].run = 0;
@@ -459,6 +487,7 @@ static void codebook_trellis_rate(AACEncContext *s, SingleChannelElement *sce,
float minbits = next_minbits;
int mincb = next_mincb;
int startcb = sce->band_type[win*16+swb];
startcb = aac_cb_in_map[startcb];
next_minbits = INFINITY;
next_mincb = 0;
for (cb = 0; cb < startcb; cb++) {
@@ -466,13 +495,20 @@ static void codebook_trellis_rate(AACEncContext *s, SingleChannelElement *sce,
path[swb+1][cb].prev_idx = -1;
path[swb+1][cb].run = 0;
}
for (cb = startcb; cb < 12; cb++) {
for (cb = startcb; cb < CB_TOT; cb++) {
float cost_stay_here, cost_get_here;
float bits = 0.0f;
if (cb == 12 && sce->band_type[win*16+swb] != NOISE_BT) {
path[swb+1][cb].cost = 61450;
path[swb+1][cb].prev_idx = -1;
path[swb+1][cb].run = 0;
continue;
}
for (w = 0; w < group_len; w++) {
bits += quantize_band_cost(s, sce->coeffs + start + w*128,
s->scoefs + start + w*128, size,
sce->sf_idx[(win+w)*16+swb], cb,
sce->sf_idx[(win+w)*16+swb],
aac_cb_out_map[cb],
0, INFINITY, NULL);
}
cost_stay_here = path[swb][cb].cost + bits;
@@ -501,7 +537,7 @@ static void codebook_trellis_rate(AACEncContext *s, SingleChannelElement *sce,
//convert resulting path from backward-linked list
stack_len = 0;
idx = 0;
for (cb = 1; cb < 12; cb++)
for (cb = 1; cb < CB_TOT; cb++)
if (path[max_sfb][cb].cost < path[max_sfb][idx].cost)
idx = cb;
ppos = max_sfb;
@@ -517,12 +553,13 @@ static void codebook_trellis_rate(AACEncContext *s, SingleChannelElement *sce,
//perform actual band info encoding
start = 0;
for (i = stack_len - 1; i >= 0; i--) {
put_bits(&s->pb, 4, stackcb[i]);
cb = aac_cb_out_map[stackcb[i]];
put_bits(&s->pb, 4, cb);
count = stackrun[i];
memset(sce->zeroes + win*16 + start, !stackcb[i], count);
memset(sce->zeroes + win*16 + start, !cb, count);
//XXX: memset when band_type is also uint8_t
for (j = 0; j < count; j++) {
sce->band_type[win*16 + start] = stackcb[i];
sce->band_type[win*16 + start] = cb;
start++;
}
while (count >= run_esc) {
@@ -691,7 +728,7 @@ static void search_for_quantizers_anmr(AVCodecContext *avctx, AACEncContext *s,
}
while (idx) {
sce->sf_idx[bandaddr[idx]] = minq + q0;
minq = paths[idx][minq].prev;
minq = FFMAX(paths[idx][minq].prev, 0);
idx--;
}
//set the same quantizers inside window groups
@@ -711,9 +748,11 @@ static void search_for_quantizers_twoloop(AVCodecContext *avctx,
{
int start = 0, i, w, w2, g;
int destbits = avctx->bit_rate * 1024.0 / avctx->sample_rate / avctx->channels * (lambda / 120.f);
float dists[128] = { 0 }, uplims[128];
const float freq_mult = avctx->sample_rate/(1024.0f/sce->ics.num_windows)/2.0f;
float dists[128] = { 0 }, uplims[128] = { 0 };
float maxvals[128];
int fflag, minscaler;
int noise_sf[128] = { 0 };
int fflag, minscaler, minscaler_n;
int its = 0;
int allz = 0;
float minthr = INFINITY;
@@ -724,12 +763,14 @@ static void search_for_quantizers_twoloop(AVCodecContext *avctx,
//XXX: some heuristic to determine initial quantizers will reduce search time
//determine zero bands and upper limits
for (w = 0; w < sce->ics.num_windows; w += sce->ics.group_len[w]) {
start = 0;
for (g = 0; g < sce->ics.num_swb; g++) {
int nz = 0;
float uplim = 0.0f;
float uplim = 0.0f, energy = 0.0f;
for (w2 = 0; w2 < sce->ics.group_len[w]; w2++) {
FFPsyBand *band = &s->psy.ch[s->cur_channel].psy_bands[(w+w2)*16+g];
uplim += band->threshold;
energy += band->energy;
if (band->energy <= band->threshold || band->threshold == 0.0f) {
sce->zeroes[(w+w2)*16+g] = 1;
continue;
@@ -737,10 +778,18 @@ static void search_for_quantizers_twoloop(AVCodecContext *avctx,
nz = 1;
}
uplims[w*16+g] = uplim *512;
if (s->options.pns && start*freq_mult > NOISE_LOW_LIMIT && energy < uplim * 1.2f) {
noise_sf[w*16+g] = av_clip(4+FFMIN(log2f(energy)*2,255), -100, 155);
sce->band_type[w*16+g] = NOISE_BT;
nz= 1;
} else { /** Band type will be determined by the twoloop algorithm */
sce->band_type[w*16+g] = 0;
}
sce->zeroes[w*16+g] = !nz;
if (nz)
minthr = FFMIN(minthr, uplim);
allz |= nz;
start += sce->ics.swb_sizes[g];
}
}
for (w = 0; w < sce->ics.num_windows; w += sce->ics.group_len[w]) {
@@ -771,6 +820,7 @@ static void search_for_quantizers_twoloop(AVCodecContext *avctx,
do {
int tbits, qstep;
minscaler = sce->sf_idx[0];
minscaler_n = sce->sf_idx[0];
//inner loop - quantize spectrum to fit into given number of bits
qstep = its ? 1 : 32;
do {
@@ -785,7 +835,11 @@ static void search_for_quantizers_twoloop(AVCodecContext *avctx,
int cb;
float dist = 0.0f;
if (sce->zeroes[w*16+g] || sce->sf_idx[w*16+g] >= 218) {
if (sce->band_type[w*16+g] == NOISE_BT) {
minscaler_n = FFMIN(minscaler_n, noise_sf[w*16+g]);
start += sce->ics.swb_sizes[g];
continue;
} else if (sce->zeroes[w*16+g] || sce->sf_idx[w*16+g] >= 218) {
start += sce->ics.swb_sizes[g];
continue;
}
@@ -828,9 +882,17 @@ static void search_for_quantizers_twoloop(AVCodecContext *avctx,
fflag = 0;
minscaler = av_clip(minscaler, 60, 255 - SCALE_MAX_DIFF);
for (w = 0; w < sce->ics.num_windows; w += sce->ics.group_len[w])
for (g = 0; g < sce->ics.num_swb; g++)
if (sce->band_type[w*16+g] == NOISE_BT)
sce->sf_idx[w*16+g] = av_clip(noise_sf[w*16+g], minscaler_n, minscaler_n + SCALE_MAX_DIFF);
for (w = 0; w < sce->ics.num_windows; w += sce->ics.group_len[w]) {
for (g = 0; g < sce->ics.num_swb; g++) {
int prevsc = sce->sf_idx[w*16+g];
if (sce->band_type[w*16+g] == NOISE_BT)
continue;
if (dists[w*16+g] > uplims[w*16+g] && sce->sf_idx[w*16+g] > 60) {
if (find_min_book(maxvals[w*16+g], sce->sf_idx[w*16+g]-1))
sce->sf_idx[w*16+g]--;

View File

@@ -303,6 +303,11 @@ static uint64_t sniff_channel_order(uint8_t (*layout_map)[3], int tags)
if (num_back_channels < 0)
return 0;
if (num_side_channels == 0 && num_back_channels >= 4) {
num_side_channels = 2;
num_back_channels -= 2;
}
i = 0;
if (num_front_channels & 1) {
e2c_vec[i] = (struct elem_to_channel) {
@@ -424,7 +429,7 @@ static uint64_t sniff_channel_order(uint8_t (*layout_map)[3], int tags)
* Save current output configuration if and only if it has been locked.
*/
static void push_output_configuration(AACContext *ac) {
if (ac->oc[1].status == OC_LOCKED) {
if (ac->oc[1].status == OC_LOCKED || ac->oc[0].status == OC_NONE) {
ac->oc[0] = ac->oc[1];
}
ac->oc[1].status = OC_NONE;
@@ -457,12 +462,22 @@ static int output_configure(AACContext *ac,
AVCodecContext *avctx = ac->avctx;
int i, channels = 0, ret;
uint64_t layout = 0;
uint8_t id_map[TYPE_END][MAX_ELEM_ID] = {{ 0 }};
uint8_t type_counts[TYPE_END] = { 0 };
if (ac->oc[1].layout_map != layout_map) {
memcpy(ac->oc[1].layout_map, layout_map, tags * sizeof(layout_map[0]));
ac->oc[1].layout_map_tags = tags;
}
for (i = 0; i < tags; i++) {
int type = layout_map[i][0];
int id = layout_map[i][1];
id_map[type][id] = type_counts[type]++;
if (id_map[type][id] >= MAX_ELEM_ID) {
avpriv_request_sample(ac->avctx, "Remapped id too large\n");
return AVERROR_PATCHWELCOME;
}
}
// Try to sniff a reasonable channel order, otherwise output the
// channels in the order the PCE declared them.
if (avctx->request_channel_layout != AV_CH_LAYOUT_NATIVE)
@@ -470,12 +485,14 @@ static int output_configure(AACContext *ac,
for (i = 0; i < tags; i++) {
int type = layout_map[i][0];
int id = layout_map[i][1];
int iid = id_map[type][id];
int position = layout_map[i][2];
// Allocate or free elements depending on if they are in the
// current program configuration.
ret = che_configure(ac, position, type, id, &channels);
ret = che_configure(ac, position, type, iid, &channels);
if (ret < 0)
return ret;
ac->tag_che_map[type][id] = ac->che[type][iid];
}
if (ac->oc[1].m4ac.ps == 1 && channels == 2) {
if (layout == AV_CH_FRONT_CENTER) {
@@ -485,7 +502,6 @@ static int output_configure(AACContext *ac,
}
}
memcpy(ac->tag_che_map, ac->che, 4 * MAX_ELEM_ID * sizeof(ac->che[0][0]));
if (layout) avctx->channel_layout = layout;
ac->oc[1].channel_layout = layout;
avctx->channels = ac->oc[1].channels = channels;
@@ -527,7 +543,8 @@ static int set_default_channel_config(AVCodecContext *avctx,
int *tags,
int channel_config)
{
if (channel_config < 1 || channel_config > 7) {
if (channel_config < 1 || (channel_config > 7 && channel_config < 11) ||
channel_config > 12) {
av_log(avctx, AV_LOG_ERROR,
"invalid default channel configuration (%d)\n",
channel_config);
@@ -607,11 +624,19 @@ static ChannelElement *get_che(AACContext *ac, int type, int elem_id)
/* For indexed channel configurations map the channels solely based
* on position. */
switch (ac->oc[1].m4ac.chan_config) {
case 12:
case 7:
if (ac->tags_mapped == 3 && type == TYPE_CPE) {
ac->tags_mapped++;
return ac->tag_che_map[TYPE_CPE][elem_id] = ac->che[TYPE_CPE][2];
}
case 11:
if (ac->tags_mapped == 2 &&
ac->oc[1].m4ac.chan_config == 11 &&
type == TYPE_SCE) {
ac->tags_mapped++;
return ac->tag_che_map[TYPE_SCE][elem_id] = ac->che[TYPE_SCE][1];
}
case 6:
/* Some streams incorrectly code 5.1 audio as
* SCE[0] CPE[0] CPE[1] SCE[1]
@@ -900,7 +925,7 @@ static int decode_eld_specific_config(AACContext *ac, AVCodecContext *avctx,
if (len == 15 + 255)
len += get_bits(gb, 16);
if (get_bits_left(gb) < len * 8 + 4) {
av_log(ac->avctx, AV_LOG_ERROR, overread_err);
av_log(avctx, AV_LOG_ERROR, overread_err);
return AVERROR_INVALIDDATA;
}
skip_bits_long(gb, 8 * len);
@@ -943,10 +968,10 @@ static int decode_audio_specific_config(AACContext *ac,
GetBitContext gb;
int i, ret;
av_dlog(avctx, "audio specific config size %d\n", bit_size >> 3);
ff_dlog(avctx, "audio specific config size %d\n", bit_size >> 3);
for (i = 0; i < bit_size >> 3; i++)
av_dlog(avctx, "%02x ", data[i]);
av_dlog(avctx, "\n");
ff_dlog(avctx, "%02x ", data[i]);
ff_dlog(avctx, "\n");
if ((ret = init_get_bits(&gb, data, bit_size)) < 0)
return ret;
@@ -993,7 +1018,7 @@ static int decode_audio_specific_config(AACContext *ac,
return AVERROR(ENOSYS);
}
av_dlog(avctx,
ff_dlog(avctx,
"AOT %d chan config %d sampling index %d (%d) SBR %d PS %d\n",
m4ac->object_type, m4ac->chan_config, m4ac->sampling_index,
m4ac->sample_rate, m4ac->sbr,
@@ -1394,7 +1419,7 @@ static int decode_scalefactors(AACContext *ac, float sf[120], GetBitContext *gb,
int band_type_run_end[120])
{
int g, i, idx = 0;
int offset[3] = { global_gain, global_gain - 90, 0 };
int offset[3] = { global_gain, global_gain - NOISE_OFFSET, 0 };
int clipped_offset;
int noise_flag = 1;
for (g = 0; g < ics->num_window_groups; g++) {
@@ -1406,7 +1431,7 @@ static int decode_scalefactors(AACContext *ac, float sf[120], GetBitContext *gb,
} else if ((band_type[idx] == INTENSITY_BT) ||
(band_type[idx] == INTENSITY_BT2)) {
for (; i < run_end; i++, idx++) {
offset[2] += get_vlc2(gb, vlc_scalefactors.table, 7, 3) - 60;
offset[2] += get_vlc2(gb, vlc_scalefactors.table, 7, 3) - SCALE_DIFF_ZERO;
clipped_offset = av_clip(offset[2], -155, 100);
if (offset[2] != clipped_offset) {
avpriv_request_sample(ac->avctx,
@@ -1419,9 +1444,9 @@ static int decode_scalefactors(AACContext *ac, float sf[120], GetBitContext *gb,
} else if (band_type[idx] == NOISE_BT) {
for (; i < run_end; i++, idx++) {
if (noise_flag-- > 0)
offset[1] += get_bits(gb, 9) - 256;
offset[1] += get_bits(gb, NOISE_PRE_BITS) - NOISE_PRE;
else
offset[1] += get_vlc2(gb, vlc_scalefactors.table, 7, 3) - 60;
offset[1] += get_vlc2(gb, vlc_scalefactors.table, 7, 3) - SCALE_DIFF_ZERO;
clipped_offset = av_clip(offset[1], -100, 155);
if (offset[1] != clipped_offset) {
avpriv_request_sample(ac->avctx,
@@ -1433,7 +1458,7 @@ static int decode_scalefactors(AACContext *ac, float sf[120], GetBitContext *gb,
}
} else {
for (; i < run_end; i++, idx++) {
offset[0] += get_vlc2(gb, vlc_scalefactors.table, 7, 3) - 60;
offset[0] += get_vlc2(gb, vlc_scalefactors.table, 7, 3) - SCALE_DIFF_ZERO;
if (offset[0] > 255U) {
av_log(ac->avctx, AV_LOG_ERROR,
"Scalefactor (%d) out of range.\n", offset[0]);
@@ -2885,7 +2910,7 @@ static int aac_decode_er_frame(AVCodecContext *avctx, void *data,
ac->tags_mapped = 0;
if (chan_config < 0 || chan_config >= 8) {
if (chan_config < 0 || (chan_config >= 8 && chan_config < 11) || chan_config >= 13) {
avpriv_request_sample(avctx, "Unknown ER channel configuration %d",
chan_config);
return AVERROR_INVALIDDATA;
@@ -2919,6 +2944,11 @@ static int aac_decode_er_frame(AVCodecContext *avctx, void *data,
spectral_to_sample(ac);
if (!ac->frame->data[0] && samples) {
av_log(avctx, AV_LOG_ERROR, "no frame data found\n");
return AVERROR_INVALIDDATA;
}
ac->frame->nb_samples = samples;
ac->frame->sample_rate = avctx->sample_rate;
*got_frame_ptr = 1;
@@ -2966,6 +2996,11 @@ static int aac_decode_frame_int(AVCodecContext *avctx, void *data,
if (avctx->debug & FF_DEBUG_STARTCODE)
av_log(avctx, AV_LOG_DEBUG, "Elem type:%x id:%x\n", elem_type, elem_id);
if (!avctx->channels && elem_type != TYPE_PCE) {
err = AVERROR_INVALIDDATA;
goto fail;
}
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",
@@ -3055,6 +3090,11 @@ static int aac_decode_frame_int(AVCodecContext *avctx, void *data,
}
}
if (!avctx->channels) {
*got_frame_ptr = 0;
return 0;
}
spectral_to_sample(ac);
multiplier = (ac->oc[1].m4ac.sbr == 1) ? ac->oc[1].m4ac.ext_sample_rate > ac->oc[1].m4ac.sample_rate : 0;
@@ -3073,7 +3113,12 @@ static int aac_decode_frame_int(AVCodecContext *avctx, void *data,
AV_WL32(side, 2*AV_RL32(side));
}
*got_frame_ptr = !!samples;
if (!ac->frame->data[0] && samples) {
av_log(avctx, AV_LOG_ERROR, "no frame data found\n");
err = AVERROR_INVALIDDATA;
goto fail;
}
if (samples) {
ac->frame->nb_samples = samples;
ac->frame->sample_rate = avctx->sample_rate;
@@ -3142,7 +3187,7 @@ static int aac_decode_frame(AVCodecContext *avctx, void *data,
if (INT_MAX / 8 <= buf_size)
return AVERROR_INVALIDDATA;
if ((err = init_get_bits(&gb, buf, buf_size * 8)) < 0)
if ((err = init_get_bits8(&gb, buf, buf_size)) < 0)
return err;
switch (ac->oc[1].m4ac.object_type) {

View File

@@ -78,9 +78,9 @@ static const float * const tns_tmp2_map[4] = {
};
// @}
static const int8_t tags_per_config[16] = { 0, 1, 1, 2, 3, 3, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0 };
static const int8_t tags_per_config[16] = { 0, 1, 1, 2, 3, 3, 4, 5, 0, 0, 0, 4, 5, 0, 5, 0 };
static const uint8_t aac_channel_layout_map[7][5][3] = {
static const uint8_t aac_channel_layout_map[16][5][3] = {
{ { TYPE_SCE, 0, AAC_CHANNEL_FRONT }, },
{ { TYPE_CPE, 0, AAC_CHANNEL_FRONT }, },
{ { TYPE_SCE, 0, AAC_CHANNEL_FRONT }, { TYPE_CPE, 0, AAC_CHANNEL_FRONT }, },
@@ -88,9 +88,16 @@ static const uint8_t aac_channel_layout_map[7][5][3] = {
{ { TYPE_SCE, 0, AAC_CHANNEL_FRONT }, { TYPE_CPE, 0, AAC_CHANNEL_FRONT }, { TYPE_CPE, 1, AAC_CHANNEL_BACK }, },
{ { TYPE_SCE, 0, AAC_CHANNEL_FRONT }, { TYPE_CPE, 0, AAC_CHANNEL_FRONT }, { TYPE_CPE, 1, AAC_CHANNEL_BACK }, { TYPE_LFE, 0, AAC_CHANNEL_LFE }, },
{ { TYPE_SCE, 0, AAC_CHANNEL_FRONT }, { TYPE_CPE, 0, AAC_CHANNEL_FRONT }, { TYPE_CPE, 1, AAC_CHANNEL_FRONT }, { TYPE_CPE, 2, AAC_CHANNEL_BACK }, { TYPE_LFE, 0, AAC_CHANNEL_LFE }, },
{ { 0, } },
{ { 0, } },
{ { 0, } },
{ { TYPE_SCE, 0, AAC_CHANNEL_FRONT }, { TYPE_CPE, 0, AAC_CHANNEL_FRONT }, { TYPE_CPE, 1, AAC_CHANNEL_BACK }, { TYPE_SCE, 1, AAC_CHANNEL_BACK }, { TYPE_LFE, 0, AAC_CHANNEL_LFE }, },
{ { TYPE_SCE, 0, AAC_CHANNEL_FRONT }, { TYPE_CPE, 0, AAC_CHANNEL_FRONT }, { TYPE_CPE, 1, AAC_CHANNEL_SIDE }, { TYPE_CPE, 2, AAC_CHANNEL_BACK }, { TYPE_LFE, 0, AAC_CHANNEL_LFE }, },
{ { 0, } },
/* TODO: Add 7+1 TOP configuration */
};
static const uint64_t aac_channel_layout[8] = {
static const uint64_t aac_channel_layout[16] = {
AV_CH_LAYOUT_MONO,
AV_CH_LAYOUT_STEREO,
AV_CH_LAYOUT_SURROUND,
@@ -99,6 +106,12 @@ static const uint64_t aac_channel_layout[8] = {
AV_CH_LAYOUT_5POINT1_BACK,
AV_CH_LAYOUT_7POINT1_WIDE_BACK,
0,
0,
0,
AV_CH_LAYOUT_6POINT1,
AV_CH_LAYOUT_7POINT1,
0,
/* AV_CH_LAYOUT_7POINT1_TOP, */
};
#endif /* AVCODEC_AACDECTAB_H */

View File

@@ -388,15 +388,26 @@ static void encode_band_info(AACEncContext *s, SingleChannelElement *sce)
static void encode_scale_factors(AVCodecContext *avctx, AACEncContext *s,
SingleChannelElement *sce)
{
int off = sce->sf_idx[0], diff;
int diff, off_sf = sce->sf_idx[0], off_pns = sce->sf_idx[0] - NOISE_OFFSET;
int noise_flag = 1;
int i, w;
for (w = 0; w < sce->ics.num_windows; w += sce->ics.group_len[w]) {
for (i = 0; i < sce->ics.max_sfb; i++) {
if (!sce->zeroes[w*16 + i]) {
diff = sce->sf_idx[w*16 + i] - off + SCALE_DIFF_ZERO;
if (sce->band_type[w*16 + i] == NOISE_BT) {
diff = sce->sf_idx[w*16 + i] - off_pns;
off_pns = sce->sf_idx[w*16 + i];
if (noise_flag-- > 0) {
put_bits(&s->pb, NOISE_PRE_BITS, diff + NOISE_PRE);
continue;
}
} else {
diff = sce->sf_idx[w*16 + i] - off_sf;
off_sf = sce->sf_idx[w*16 + i];
}
diff += SCALE_DIFF_ZERO;
av_assert0(diff >= 0 && diff <= 120);
off = sce->sf_idx[w*16 + i];
put_bits(&s->pb, ff_aac_scalefactor_bits[diff], ff_aac_scalefactor_code[diff]);
}
}
@@ -578,8 +589,16 @@ 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");
if (isnan(cpe->ch[ch].coeffs[ 0]) || isinf(cpe->ch[ch].coeffs[ 0]) ||
isnan(cpe->ch[ch].coeffs[ 128]) || isinf(cpe->ch[ch].coeffs[ 128]) ||
isnan(cpe->ch[ch].coeffs[2*128]) || isinf(cpe->ch[ch].coeffs[2*128]) ||
isnan(cpe->ch[ch].coeffs[3*128]) || isinf(cpe->ch[ch].coeffs[3*128]) ||
isnan(cpe->ch[ch].coeffs[4*128]) || isinf(cpe->ch[ch].coeffs[4*128]) ||
isnan(cpe->ch[ch].coeffs[5*128]) || isinf(cpe->ch[ch].coeffs[5*128]) ||
isnan(cpe->ch[ch].coeffs[6*128]) || isinf(cpe->ch[ch].coeffs[6*128]) ||
isnan(cpe->ch[ch].coeffs[7*128]) || isinf(cpe->ch[ch].coeffs[7*128])) {
av_log(avctx, AV_LOG_ERROR, "Input contains NaN/+-Inf\n");
return AVERROR(EINVAL);
}
}
@@ -722,9 +741,9 @@ static av_cold int dsp_init(AVCodecContext *avctx, AACEncContext *s)
ff_init_ff_sine_windows(10);
ff_init_ff_sine_windows(7);
if (ret = ff_mdct_init(&s->mdct1024, 11, 0, 32768.0))
if ((ret = ff_mdct_init(&s->mdct1024, 11, 0, 32768.0)) < 0)
return ret;
if (ret = ff_mdct_init(&s->mdct128, 8, 0, 32768.0))
if ((ret = ff_mdct_init(&s->mdct128, 8, 0, 32768.0)) < 0)
return ret;
return 0;
@@ -831,6 +850,9 @@ static const AVOption aacenc_options[] = {
{"anmr", "ANMR method", 0, AV_OPT_TYPE_CONST, {.i64 = AAC_CODER_ANMR}, INT_MIN, INT_MAX, AACENC_FLAGS, "aac_coder"},
{"twoloop", "Two loop searching method", 0, AV_OPT_TYPE_CONST, {.i64 = AAC_CODER_TWOLOOP}, INT_MIN, INT_MAX, AACENC_FLAGS, "aac_coder"},
{"fast", "Constant quantizer", 0, AV_OPT_TYPE_CONST, {.i64 = AAC_CODER_FAST}, INT_MIN, INT_MAX, AACENC_FLAGS, "aac_coder"},
{"aac_pns", "Perceptual Noise Substitution", offsetof(AACEncContext, options.pns), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 1, AACENC_FLAGS, "aac_pns"},
{"disable", "Disable PNS", 0, AV_OPT_TYPE_CONST, {.i64 = 0 }, INT_MIN, INT_MAX, AACENC_FLAGS, "aac_pns"},
{"enable", "Enable PNS (Proof of concept)", 0, AV_OPT_TYPE_CONST, {.i64 = 1 }, INT_MIN, INT_MAX, AACENC_FLAGS, "aac_pns"},
{NULL}
};

View File

@@ -42,6 +42,7 @@ typedef enum AACCoder {
typedef struct AACEncOptions {
int stereo_mode;
int aac_coder;
int pns;
} AACEncOptions;
struct AACEncContext;

View File

@@ -304,6 +304,8 @@ static av_cold int psy_3gpp_init(FFPsyContext *ctx) {
const float num_bark = calc_bark((float)bandwidth);
ctx->model_priv_data = av_mallocz(sizeof(AacPsyContext));
if (!ctx->model_priv_data)
return AVERROR(ENOMEM);
pctx = (AacPsyContext*) ctx->model_priv_data;
pctx->chan_bitrate = chan_bitrate;
@@ -313,7 +315,7 @@ static av_cold int psy_3gpp_init(FFPsyContext *ctx) {
ctx->bitres.size = 6144 - pctx->frame_bits;
ctx->bitres.size -= ctx->bitres.size % 8;
pctx->fill_level = ctx->bitres.size;
minath = ath(3410, ATH_ADD);
minath = ath(3410 - 0.733 * ATH_ADD, ATH_ADD);
for (j = 0; j < 2; j++) {
AacPsyCoeffs *coeffs = pctx->psy_coef[j];
const uint8_t *band_sizes = ctx->bands[j];
@@ -355,6 +357,10 @@ static av_cold int psy_3gpp_init(FFPsyContext *ctx) {
}
pctx->ch = av_mallocz_array(ctx->avctx->channels, sizeof(AacPsyChannel));
if (!pctx->ch) {
av_freep(&ctx->model_priv_data);
return AVERROR(ENOMEM);
}
lame_window_init(pctx, ctx->avctx);
@@ -727,7 +733,10 @@ static void psy_3gpp_analyze_channel(FFPsyContext *ctx, int channel,
if (active_lines > 0.0f)
band->thr = calc_reduced_thr_3gpp(band, coeffs[g].min_snr, reduction);
pe += calc_pe_3gpp(band);
band->norm_fac = band->active_lines / band->thr;
if (band->thr > 0.0f)
band->norm_fac = band->active_lines / band->thr;
else
band->norm_fac = 0.0f;
norm_fac += band->norm_fac;
}
}

View File

@@ -514,7 +514,7 @@ static int sbr_make_f_master(AACContext *ac, SpectralBandReplication *sbr,
/// High Frequency Generation - Patch Construction (14496-3 sp04 p216 fig. 4.46)
static int sbr_hf_calc_npatches(AACContext *ac, SpectralBandReplication *sbr)
{
int i, k, sb = 0;
int i, k, last_k = -1, last_msb = -1, sb = 0;
int msb = sbr->k[0];
int usb = sbr->kx[1];
int goal_sb = ((1000 << 11) + (sbr->sample_rate >> 1)) / sbr->sample_rate;
@@ -528,6 +528,12 @@ static int sbr_hf_calc_npatches(AACContext *ac, SpectralBandReplication *sbr)
do {
int odd = 0;
if (k == last_k && msb == last_msb) {
av_log(ac->avctx, AV_LOG_ERROR, "patch construction failed\n");
return AVERROR_INVALIDDATA;
}
last_k = k;
last_msb = msb;
for (i = k; i == k || sb > (sbr->k[0] - 1 + msb - odd); i--) {
sb = sbr->f_master[i];
odd = (sb + sbr->k[0]) & 1;
@@ -635,7 +641,7 @@ static int read_sbr_grid(AACContext *ac, SpectralBandReplication *sbr,
GetBitContext *gb, SBRData *ch_data)
{
int i;
unsigned bs_pointer = 0;
int bs_pointer = 0;
// frameLengthFlag ? 15 : 16; 960 sample length frames unsupported; this value is numTimeSlots
int abs_bord_trail = 16;
int num_rel_lead, num_rel_trail;
@@ -728,6 +734,7 @@ static int read_sbr_grid(AACContext *ac, SpectralBandReplication *sbr,
break;
}
av_assert0(bs_pointer >= 0);
if (bs_pointer > ch_data->bs_num_env + 1) {
av_log(ac->avctx, AV_LOG_ERROR,
"Invalid bitstream, bs_pointer points to a middle noise border outside the time borders table: %d\n",
@@ -747,11 +754,11 @@ static int read_sbr_grid(AACContext *ac, SpectralBandReplication *sbr,
ch_data->t_q[0] = ch_data->t_env[0];
ch_data->t_q[ch_data->bs_num_noise] = ch_data->t_env[ch_data->bs_num_env];
if (ch_data->bs_num_noise > 1) {
unsigned int idx;
int idx;
if (ch_data->bs_frame_class == FIXFIX) {
idx = ch_data->bs_num_env >> 1;
} else if (ch_data->bs_frame_class & 1) { // FIXVAR or VARVAR
idx = ch_data->bs_num_env - FFMAX((int)bs_pointer - 1, 1);
idx = ch_data->bs_num_env - FFMAX(bs_pointer - 1, 1);
} else { // VARFIX
if (!bs_pointer)
idx = 1;
@@ -1012,6 +1019,8 @@ static unsigned int read_sbr_data(AACContext *ac, SpectralBandReplication *sbr,
{
unsigned int cnt = get_bits_count(gb);
sbr->id_aac = id_aac;
if (id_aac == TYPE_SCE || id_aac == TYPE_CCE) {
if (read_sbr_single_channel_element(ac, sbr, gb)) {
sbr_turnoff(sbr);
@@ -1688,6 +1697,12 @@ void ff_sbr_apply(AACContext *ac, SpectralBandReplication *sbr, int id_aac,
int nch = (id_aac == TYPE_CPE) ? 2 : 1;
int err;
if (id_aac != sbr->id_aac) {
av_log(ac->avctx, AV_LOG_ERROR,
"element type mismatch %d != %d\n", id_aac, sbr->id_aac);
sbr_turnoff(sbr);
}
if (!sbr->kx_and_m_pushed) {
sbr->kx[0] = sbr->kx[1];
sbr->m[0] = sbr->m[1];
@@ -1711,6 +1726,7 @@ void ff_sbr_apply(AACContext *ac, SpectralBandReplication *sbr, int id_aac,
sbr->c.sbr_hf_inverse_filter(&sbr->dsp, sbr->alpha0, sbr->alpha1,
(const float (*)[40][2]) sbr->X_low, sbr->k[0]);
sbr_chirp(sbr, &sbr->data[ch]);
av_assert0(sbr->data[ch].bs_num_env > 0);
sbr_hf_gen(ac, sbr, sbr->X_high,
(const float (*)[40][2]) sbr->X_low,
(const float (*)[2]) sbr->alpha0,

View File

@@ -137,7 +137,7 @@ static int aasc_decode_frame(AVCodecContext *avctx,
return ret;
/* report that the buffer was completely consumed */
return buf_size;
return avpkt->size;
}
static av_cold int aasc_decode_end(AVCodecContext *avctx)

View File

@@ -131,6 +131,9 @@ int ff_ac3_bit_alloc_calc_mask(AC3BitAllocParameters *s, int16_t *band_psd,
int band_start, band_end, begin, end1;
int lowcomp, fastleak, slowleak;
if (end <= 0)
return AVERROR_INVALIDDATA;
/* excitation function */
band_start = ff_ac3_bin_to_band_tab[start];
band_end = ff_ac3_bin_to_band_tab[end-1] + 1;
@@ -200,9 +203,9 @@ int ff_ac3_bit_alloc_calc_mask(AC3BitAllocParameters *s, int16_t *band_psd,
if (band >= AC3_CRITICAL_BANDS || dba_lengths[seg] > AC3_CRITICAL_BANDS-band)
return -1;
if (dba_values[seg] >= 4) {
delta = (dba_values[seg] - 3) << 7;
delta = (dba_values[seg] - 3) * 128;
} else {
delta = (dba_values[seg] - 4) << 7;
delta = (dba_values[seg] - 4) * 128;
}
for (i = 0; i < dba_lengths[seg]; i++) {
mask[band++] += delta;

View File

@@ -140,8 +140,8 @@ int avpriv_ac3_parse_header2(GetBitContext *gbc, AC3HeaderInfo **phdr)
hdr->channel_mode = get_bits(gbc, 3);
hdr->lfe_on = get_bits1(gbc);
hdr->bit_rate = (uint32_t)(8.0 * hdr->frame_size * hdr->sample_rate /
(hdr->num_blocks * 256.0));
hdr->bit_rate = 8LL * hdr->frame_size * hdr->sample_rate /
(hdr->num_blocks * 256);
hdr->channels = ff_ac3_channels_tab[hdr->channel_mode] + hdr->lfe_on;
}
hdr->channel_layout = avpriv_ac3_channel_layout_tab[hdr->channel_mode];

View File

@@ -112,7 +112,7 @@ static const uint8_t ac3_default_coeffs[8][5][2] = {
static inline int
symmetric_dequant(int code, int levels)
{
return ((code - (levels >> 1)) << 24) / levels;
return ((code - (levels >> 1)) * (1 << 24)) / levels;
}
/*
@@ -196,10 +196,10 @@ static av_cold int ac3_decode_init(AVCodecContext *avctx)
s->fdsp = avpriv_alloc_fixed_dsp(avctx->flags & CODEC_FLAG_BITEXACT);
#else
s->fdsp = avpriv_float_dsp_alloc(avctx->flags & CODEC_FLAG_BITEXACT);
ff_fmt_convert_init(&s->fmt_conv, avctx);
#endif
ff_ac3dsp_init(&s->ac3dsp, avctx->flags & CODEC_FLAG_BITEXACT);
ff_fmt_convert_init(&s->fmt_conv, avctx);
av_lfg_init(&s->dith_state, 0);
if (USE_FIXED)
@@ -470,7 +470,7 @@ static void calc_transform_coeffs_cpl(AC3DecodeContext *s)
int cpl_coord = s->cpl_coords[ch][band] << 5;
for (bin = band_start; bin < band_end; bin++) {
s->fixed_coeffs[ch][bin] =
MULH(s->fixed_coeffs[CPL_CH][bin] << 4, cpl_coord);
MULH(s->fixed_coeffs[CPL_CH][bin] * (1 << 4), cpl_coord);
}
if (ch == 2 && s->phase_flags[band]) {
for (bin = band_start; bin < band_end; bin++)
@@ -567,8 +567,7 @@ static void ac3_decode_transform_coeffs_ch(AC3DecodeContext *s, int ch_index, ma
av_log(s->avctx, AV_LOG_ERROR, "bap %d is invalid in plain AC-3\n", bap);
bap = 15;
}
mantissa = get_sbits(gbc, quantization_tab[bap]);
mantissa <<= 24 - quantization_tab[bap];
mantissa = (unsigned)get_sbits(gbc, quantization_tab[bap]) << (24 - quantization_tab[bap]);
break;
}
coeffs[freq] = mantissa >> exps[freq];
@@ -602,7 +601,7 @@ static void decode_transform_coeffs_ch(AC3DecodeContext *s, int blk, int ch,
/* if AHT is used, mantissas for all blocks are encoded in the first
block of the frame. */
int bin;
if (!blk && CONFIG_EAC3_DECODER)
if (CONFIG_EAC3_DECODER && !blk)
ff_eac3_decode_transform_coeffs_aht_ch(s, ch);
for (bin = s->start_freq[ch]; bin < s->end_freq[ch]; bin++) {
s->fixed_coeffs[ch][bin] = s->pre_mantissa[ch][bin][blk] >> s->dexps[ch][bin];
@@ -924,14 +923,13 @@ static int decode_audio_block(AC3DecodeContext *s, int blk)
bin = s->spx_src_start_freq;
for (bnd = 0; bnd < s->num_spx_bands; bnd++) {
int bandsize;
int bandsize = s->spx_band_sizes[bnd];
int spx_coord_exp, spx_coord_mant;
INTFLOAT nratio, sblend, nblend;
#if USE_FIXED
int64_t accu;
/* calculate blending factors */
bandsize = s->spx_band_sizes[bnd];
accu = (int64_t)((bin << 23) + (bandsize << 22)) * s->spx_dst_end_freq;
int64_t accu = ((bin << 23) + (bandsize << 22))
* (int64_t)s->spx_dst_end_freq;
nratio = (int)(accu >> 32);
nratio -= spx_blend << 18;
@@ -951,7 +949,6 @@ static int decode_audio_block(AC3DecodeContext *s, int blk)
float spx_coord;
/* calculate blending factors */
bandsize = s->spx_band_sizes[bnd];
nratio = ((float)((bin + (bandsize >> 1))) / s->spx_dst_end_freq) - spx_blend;
nratio = av_clipf(nratio, 0.0f, 1.0f);
nblend = sqrtf(3.0f * nratio); // noise is scaled by sqrt(3)
@@ -1355,7 +1352,7 @@ static int decode_audio_block(AC3DecodeContext *s, int blk)
}
/* apply spectral extension to high frequency bins */
if (s->spx_in_use && CONFIG_EAC3_DECODER) {
if (CONFIG_EAC3_DECODER && s->spx_in_use) {
ff_eac3_apply_spectral_extension(s);
}

View File

@@ -36,6 +36,7 @@
#include "libavutil/internal.h"
#include "libavutil/opt.h"
#include "avcodec.h"
#include "internal.h"
#include "me_cmp.h"
#include "put_bits.h"
#include "audiodsp.h"
@@ -1687,43 +1688,43 @@ static void dprint_options(AC3EncodeContext *s)
case 16: av_strlcpy(strbuf, "E-AC-3 (enhanced)", 32); break;
default: snprintf(strbuf, 32, "ERROR");
}
av_dlog(avctx, "bitstream_id: %s (%d)\n", strbuf, s->bitstream_id);
av_dlog(avctx, "sample_fmt: %s\n", av_get_sample_fmt_name(avctx->sample_fmt));
ff_dlog(avctx, "bitstream_id: %s (%d)\n", strbuf, s->bitstream_id);
ff_dlog(avctx, "sample_fmt: %s\n", av_get_sample_fmt_name(avctx->sample_fmt));
av_get_channel_layout_string(strbuf, 32, s->channels, avctx->channel_layout);
av_dlog(avctx, "channel_layout: %s\n", strbuf);
av_dlog(avctx, "sample_rate: %d\n", s->sample_rate);
av_dlog(avctx, "bit_rate: %d\n", s->bit_rate);
av_dlog(avctx, "blocks/frame: %d (code=%d)\n", s->num_blocks, s->num_blks_code);
ff_dlog(avctx, "channel_layout: %s\n", strbuf);
ff_dlog(avctx, "sample_rate: %d\n", s->sample_rate);
ff_dlog(avctx, "bit_rate: %d\n", s->bit_rate);
ff_dlog(avctx, "blocks/frame: %d (code=%d)\n", s->num_blocks, s->num_blks_code);
if (s->cutoff)
av_dlog(avctx, "cutoff: %d\n", s->cutoff);
ff_dlog(avctx, "cutoff: %d\n", s->cutoff);
av_dlog(avctx, "per_frame_metadata: %s\n",
ff_dlog(avctx, "per_frame_metadata: %s\n",
opt->allow_per_frame_metadata?"on":"off");
if (s->has_center)
av_dlog(avctx, "center_mixlev: %0.3f (%d)\n", opt->center_mix_level,
ff_dlog(avctx, "center_mixlev: %0.3f (%d)\n", opt->center_mix_level,
s->center_mix_level);
else
av_dlog(avctx, "center_mixlev: {not written}\n");
ff_dlog(avctx, "center_mixlev: {not written}\n");
if (s->has_surround)
av_dlog(avctx, "surround_mixlev: %0.3f (%d)\n", opt->surround_mix_level,
ff_dlog(avctx, "surround_mixlev: %0.3f (%d)\n", opt->surround_mix_level,
s->surround_mix_level);
else
av_dlog(avctx, "surround_mixlev: {not written}\n");
ff_dlog(avctx, "surround_mixlev: {not written}\n");
if (opt->audio_production_info) {
av_dlog(avctx, "mixing_level: %ddB\n", opt->mixing_level);
ff_dlog(avctx, "mixing_level: %ddB\n", opt->mixing_level);
switch (opt->room_type) {
case AC3ENC_OPT_NOT_INDICATED: av_strlcpy(strbuf, "notindicated", 32); break;
case AC3ENC_OPT_LARGE_ROOM: av_strlcpy(strbuf, "large", 32); break;
case AC3ENC_OPT_SMALL_ROOM: av_strlcpy(strbuf, "small", 32); break;
default: snprintf(strbuf, 32, "ERROR (%d)", opt->room_type);
}
av_dlog(avctx, "room_type: %s\n", strbuf);
ff_dlog(avctx, "room_type: %s\n", strbuf);
} else {
av_dlog(avctx, "mixing_level: {not written}\n");
av_dlog(avctx, "room_type: {not written}\n");
ff_dlog(avctx, "mixing_level: {not written}\n");
ff_dlog(avctx, "room_type: {not written}\n");
}
av_dlog(avctx, "copyright: %s\n", opt->copyright?"on":"off");
av_dlog(avctx, "dialnorm: %ddB\n", opt->dialogue_level);
ff_dlog(avctx, "copyright: %s\n", opt->copyright?"on":"off");
ff_dlog(avctx, "dialnorm: %ddB\n", opt->dialogue_level);
if (s->channel_mode == AC3_CHMODE_STEREO) {
switch (opt->dolby_surround_mode) {
case AC3ENC_OPT_NOT_INDICATED: av_strlcpy(strbuf, "notindicated", 32); break;
@@ -1731,11 +1732,11 @@ static void dprint_options(AC3EncodeContext *s)
case AC3ENC_OPT_MODE_OFF: av_strlcpy(strbuf, "off", 32); break;
default: snprintf(strbuf, 32, "ERROR (%d)", opt->dolby_surround_mode);
}
av_dlog(avctx, "dsur_mode: %s\n", strbuf);
ff_dlog(avctx, "dsur_mode: %s\n", strbuf);
} else {
av_dlog(avctx, "dsur_mode: {not written}\n");
ff_dlog(avctx, "dsur_mode: {not written}\n");
}
av_dlog(avctx, "original: %s\n", opt->original?"on":"off");
ff_dlog(avctx, "original: %s\n", opt->original?"on":"off");
if (s->bitstream_id == 6) {
if (opt->extended_bsi_1) {
@@ -1745,17 +1746,17 @@ static void dprint_options(AC3EncodeContext *s)
case AC3ENC_OPT_DOWNMIX_LORO: av_strlcpy(strbuf, "loro", 32); break;
default: snprintf(strbuf, 32, "ERROR (%d)", opt->preferred_stereo_downmix);
}
av_dlog(avctx, "dmix_mode: %s\n", strbuf);
av_dlog(avctx, "ltrt_cmixlev: %0.3f (%d)\n",
ff_dlog(avctx, "dmix_mode: %s\n", strbuf);
ff_dlog(avctx, "ltrt_cmixlev: %0.3f (%d)\n",
opt->ltrt_center_mix_level, s->ltrt_center_mix_level);
av_dlog(avctx, "ltrt_surmixlev: %0.3f (%d)\n",
ff_dlog(avctx, "ltrt_surmixlev: %0.3f (%d)\n",
opt->ltrt_surround_mix_level, s->ltrt_surround_mix_level);
av_dlog(avctx, "loro_cmixlev: %0.3f (%d)\n",
ff_dlog(avctx, "loro_cmixlev: %0.3f (%d)\n",
opt->loro_center_mix_level, s->loro_center_mix_level);
av_dlog(avctx, "loro_surmixlev: %0.3f (%d)\n",
ff_dlog(avctx, "loro_surmixlev: %0.3f (%d)\n",
opt->loro_surround_mix_level, s->loro_surround_mix_level);
} else {
av_dlog(avctx, "extended bitstream info 1: {not written}\n");
ff_dlog(avctx, "extended bitstream info 1: {not written}\n");
}
if (opt->extended_bsi_2) {
switch (opt->dolby_surround_ex_mode) {
@@ -1764,23 +1765,23 @@ static void dprint_options(AC3EncodeContext *s)
case AC3ENC_OPT_MODE_OFF: av_strlcpy(strbuf, "off", 32); break;
default: snprintf(strbuf, 32, "ERROR (%d)", opt->dolby_surround_ex_mode);
}
av_dlog(avctx, "dsurex_mode: %s\n", strbuf);
ff_dlog(avctx, "dsurex_mode: %s\n", strbuf);
switch (opt->dolby_headphone_mode) {
case AC3ENC_OPT_NOT_INDICATED: av_strlcpy(strbuf, "notindicated", 32); break;
case AC3ENC_OPT_MODE_ON: av_strlcpy(strbuf, "on", 32); break;
case AC3ENC_OPT_MODE_OFF: av_strlcpy(strbuf, "off", 32); break;
default: snprintf(strbuf, 32, "ERROR (%d)", opt->dolby_headphone_mode);
}
av_dlog(avctx, "dheadphone_mode: %s\n", strbuf);
ff_dlog(avctx, "dheadphone_mode: %s\n", strbuf);
switch (opt->ad_converter_type) {
case AC3ENC_OPT_ADCONV_STANDARD: av_strlcpy(strbuf, "standard", 32); break;
case AC3ENC_OPT_ADCONV_HDCD: av_strlcpy(strbuf, "hdcd", 32); break;
default: snprintf(strbuf, 32, "ERROR (%d)", opt->ad_converter_type);
}
av_dlog(avctx, "ad_conv_type: %s\n", strbuf);
ff_dlog(avctx, "ad_conv_type: %s\n", strbuf);
} else {
av_dlog(avctx, "extended bitstream info 2: {not written}\n");
ff_dlog(avctx, "extended bitstream info 2: {not written}\n");
}
}
#endif

View File

@@ -22,6 +22,7 @@
#include <inttypes.h>
#include "libavutil/avassert.h"
#include "libavutil/common.h"
#include "libavutil/float_dsp.h"
#include "avcodec.h"
@@ -240,6 +241,7 @@ void ff_set_fixed_vector(float *out, const AMRFixed *in, float scale, int size)
float y = in->y[i] * scale;
if (in->pitch_lag > 0)
av_assert0(x < size);
do {
out[x] += y;
y *= in->pitch_fac;

View File

@@ -197,7 +197,7 @@ static inline int16_t adpcm_ima_wav_expand_nibble(ADPCMChannelStatus *c, GetBitC
step_index = av_clip(step_index, 0, 88);
sign = nibble & (1 << shift);
delta = nibble & ((1 << shift) - 1);
delta = av_mod_uintp2(nibble, shift);
diff = ((2 * delta + 1) * step) >> shift;
predictor = c->predictor;
if (sign) predictor -= diff;
@@ -578,6 +578,8 @@ static int get_nb_samples(AVCodecContext *avctx, GetByteContext *gb,
case AV_CODEC_ID_ADPCM_IMA_DK4:
if (avctx->block_align > 0)
buf_size = FFMIN(buf_size, avctx->block_align);
if (buf_size < 4 * ch)
return AVERROR_INVALIDDATA;
nb_samples = 1 + (buf_size - 4 * ch) * 2 / ch;
break;
case AV_CODEC_ID_ADPCM_IMA_RAD:
@@ -591,13 +593,15 @@ static int get_nb_samples(AVCodecContext *avctx, GetByteContext *gb,
int bsamples = ff_adpcm_ima_block_samples[avctx->bits_per_coded_sample - 2];
if (avctx->block_align > 0)
buf_size = FFMIN(buf_size, avctx->block_align);
if (buf_size < 4 * ch)
return AVERROR_INVALIDDATA;
nb_samples = 1 + (buf_size - 4 * ch) / (bsize * ch) * bsamples;
break;
}
case AV_CODEC_ID_ADPCM_MS:
if (avctx->block_align > 0)
buf_size = FFMIN(buf_size, avctx->block_align);
nb_samples = 2 + (buf_size - 7 * ch) * 2 / ch;
nb_samples = (buf_size - 6 * ch) * 2 / ch;
break;
case AV_CODEC_ID_ADPCM_SBPRO_2:
case AV_CODEC_ID_ADPCM_SBPRO_3:
@@ -610,6 +614,8 @@ static int get_nb_samples(AVCodecContext *avctx, GetByteContext *gb,
case AV_CODEC_ID_ADPCM_SBPRO_4: samples_per_byte = 2; break;
}
if (!s->status[0].step_index) {
if (buf_size < ch)
return AVERROR_INVALIDDATA;
nb_samples++;
buf_size -= ch;
}
@@ -1498,7 +1504,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data,
prev = 0;
}
prev = av_clip((prev + 0x20) >> 6, -0x200000, 0x1fffff);
prev = av_clip_intp2((prev + 0x20) >> 6, 21);
byte = bytestream2_get_byteu(&gb);
if (!channel)
@@ -1528,6 +1534,11 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data,
*got_frame_ptr = 1;
if (avpkt->size < bytestream2_tell(&gb)) {
av_log(avctx, AV_LOG_ERROR, "Overread of %d < %d\n", avpkt->size, bytestream2_tell(&gb));
return avpkt->size;
}
return bytestream2_tell(&gb);
}

View File

@@ -316,6 +316,12 @@ static int decode_element(AVCodecContext *avctx, AVFrame *frame, int ch_index,
int lpc_quant[2];
int rice_history_mult[2];
if (!alac->rice_limit) {
avpriv_request_sample(alac->avctx,
"Compression with rice limit 0");
return AVERROR(ENOSYS);
}
decorr_shift = get_bits(&alac->gb, 8);
decorr_left_weight = get_bits(&alac->gb, 8);
@@ -528,6 +534,12 @@ static int allocate_buffers(ALACContext *alac)
int ch;
int buf_size = alac->max_samples_per_frame * sizeof(int32_t);
for (ch = 0; ch < 2; ch++) {
alac->predict_error_buffer[ch] = NULL;
alac->output_samples_buffer[ch] = NULL;
alac->extra_bits_buffer[ch] = NULL;
}
for (ch = 0; ch < FFMIN(alac->channels, 2); ch++) {
FF_ALLOC_OR_GOTO(alac->avctx, alac->predict_error_buffer[ch],
buf_size, buf_alloc_fail);

View File

@@ -76,24 +76,30 @@ void avcodec_register_all(void)
/* hardware accelerators */
REGISTER_HWACCEL(H263_VAAPI, h263_vaapi);
REGISTER_HWACCEL(H263_VDPAU, h263_vdpau);
REGISTER_HWACCEL(H264_D3D11VA, h264_d3d11va);
REGISTER_HWACCEL(H264_DXVA2, h264_dxva2);
REGISTER_HWACCEL(H264_MMAL, h264_mmal);
REGISTER_HWACCEL(H264_QSV, h264_qsv);
REGISTER_HWACCEL(H264_VAAPI, h264_vaapi);
REGISTER_HWACCEL(H264_VDA, h264_vda);
REGISTER_HWACCEL(H264_VDA_OLD, h264_vda_old);
REGISTER_HWACCEL(H264_VDPAU, h264_vdpau);
REGISTER_HWACCEL(HEVC_D3D11VA, hevc_d3d11va);
REGISTER_HWACCEL(HEVC_DXVA2, hevc_dxva2);
REGISTER_HWACCEL(MPEG1_XVMC, mpeg1_xvmc);
REGISTER_HWACCEL(MPEG1_VDPAU, mpeg1_vdpau);
REGISTER_HWACCEL(MPEG2_XVMC, mpeg2_xvmc);
REGISTER_HWACCEL(MPEG2_D3D11VA, mpeg2_d3d11va);
REGISTER_HWACCEL(MPEG2_DXVA2, mpeg2_dxva2);
REGISTER_HWACCEL(MPEG2_VAAPI, mpeg2_vaapi);
REGISTER_HWACCEL(MPEG2_VDPAU, mpeg2_vdpau);
REGISTER_HWACCEL(MPEG4_VAAPI, mpeg4_vaapi);
REGISTER_HWACCEL(MPEG4_VDPAU, mpeg4_vdpau);
REGISTER_HWACCEL(VC1_D3D11VA, vc1_d3d11va);
REGISTER_HWACCEL(VC1_DXVA2, vc1_dxva2);
REGISTER_HWACCEL(VC1_VAAPI, vc1_vaapi);
REGISTER_HWACCEL(VC1_VDPAU, vc1_vdpau);
REGISTER_HWACCEL(WMV3_D3D11VA, wmv3_d3d11va);
REGISTER_HWACCEL(WMV3_DXVA2, wmv3_dxva2);
REGISTER_HWACCEL(WMV3_VAAPI, wmv3_vaapi);
REGISTER_HWACCEL(WMV3_VDPAU, wmv3_vdpau);
@@ -107,7 +113,7 @@ void avcodec_register_all(void)
REGISTER_ENCDEC (AMV, amv);
REGISTER_DECODER(ANM, anm);
REGISTER_DECODER(ANSI, ansi);
REGISTER_DECODER(APNG, apng);
REGISTER_ENCDEC (APNG, apng);
REGISTER_ENCDEC (ASV1, asv1);
REGISTER_ENCDEC (ASV2, asv2);
REGISTER_DECODER(AURA, aura);
@@ -171,11 +177,13 @@ void avcodec_register_all(void)
REGISTER_ENCDEC (H263P, h263p);
REGISTER_DECODER(H264, h264);
REGISTER_DECODER(H264_CRYSTALHD, h264_crystalhd);
REGISTER_DECODER(H264_MMAL, h264_mmal);
REGISTER_DECODER(H264_QSV, h264_qsv);
REGISTER_DECODER(H264_VDA, h264_vda);
REGISTER_DECODER(H264_VDPAU, h264_vdpau);
REGISTER_DECODER(HEVC, hevc);
REGISTER_DECODER(HNM4_VIDEO, hnm4_video);
REGISTER_DECODER(HQ_HQA, hq_hqa);
REGISTER_DECODER(HQX, hqx);
REGISTER_ENCDEC (HUFFYUV, huffyuv);
REGISTER_DECODER(IDCIN, idcin);
@@ -227,7 +235,6 @@ void avcodec_register_all(void)
REGISTER_DECODER(MVC2, mvc2);
REGISTER_DECODER(MXPEG, mxpeg);
REGISTER_DECODER(NUV, nuv);
REGISTER_ENCODER(NVENC, nvenc);
REGISTER_DECODER(PAF_VIDEO, paf_video);
REGISTER_ENCDEC (PAM, pam);
REGISTER_ENCDEC (PBM, pbm);
@@ -269,6 +276,7 @@ void avcodec_register_all(void)
REGISTER_DECODER(SVQ3, svq3);
REGISTER_ENCDEC (TARGA, targa);
REGISTER_DECODER(TARGA_Y216, targa_y216);
REGISTER_DECODER(TDSC, tdsc);
REGISTER_DECODER(THEORA, theora);
REGISTER_DECODER(THP, thp);
REGISTER_DECODER(TIERTEXSEQVIDEO, tiertexseqvideo);
@@ -511,6 +519,7 @@ void avcodec_register_all(void)
/* external libraries */
REGISTER_DECODER(LIBCELT, libcelt);
REGISTER_DECODER(LIBDCADEC, libdcadec)
REGISTER_ENCODER(LIBFAAC, libfaac);
REGISTER_ENCDEC (LIBFDK_AAC, libfdk_aac);
REGISTER_ENCDEC (LIBGSM, libgsm);
@@ -534,6 +543,7 @@ void avcodec_register_all(void)
REGISTER_ENCDEC (LIBVPX_VP8, libvpx_vp8);
REGISTER_ENCDEC (LIBVPX_VP9, libvpx_vp9);
REGISTER_ENCODER(LIBWAVPACK, libwavpack);
REGISTER_ENCODER(LIBWEBP_ANIM, libwebp_anim); /* preferred over libwebp */
REGISTER_ENCODER(LIBWEBP, libwebp);
REGISTER_ENCODER(LIBX264, libx264);
REGISTER_ENCODER(LIBX264RGB, libx264rgb);
@@ -542,13 +552,20 @@ void avcodec_register_all(void)
REGISTER_ENCODER(LIBXVID, libxvid);
REGISTER_DECODER(LIBZVBI_TELETEXT, libzvbi_teletext);
REGISTER_ENCODER(LIBAACPLUS, libaacplus);
REGISTER_ENCODER(LIBOPENH264, libopenh264);
/* text */
REGISTER_DECODER(BINTEXT, bintext);
REGISTER_DECODER(XBIN, xbin);
REGISTER_DECODER(IDF, idf);
/* external libraries, that shouldn't be used by default if one of the
* above is available */
REGISTER_ENCODER(LIBOPENH264, libopenh264);
REGISTER_ENCODER(H264_QSV, h264_qsv);
REGISTER_ENCODER(NVENC, nvenc);
REGISTER_ENCODER(NVENC_H264, nvenc_h264);
REGISTER_ENCODER(NVENC_HEVC, nvenc_hevc);
/* parsers */
REGISTER_PARSER(AAC, aac);
REGISTER_PARSER(AAC_LATM, aac_latm);
@@ -596,6 +613,7 @@ void avcodec_register_all(void)
REGISTER_BSF(MJPEG2JPEG, mjpeg2jpeg);
REGISTER_BSF(MJPEGA_DUMP_HEADER, mjpega_dump_header);
REGISTER_BSF(MP3_HEADER_DECOMPRESS, mp3_header_decompress);
REGISTER_BSF(MPEG4_UNPACK_BFRAMES, mpeg4_unpack_bframes);
REGISTER_BSF(MOV2TEXTSUB, mov2textsub);
REGISTER_BSF(NOISE, noise);
REGISTER_BSF(REMOVE_EXTRADATA, remove_extradata);

View File

@@ -253,24 +253,24 @@ static av_cold void dprint_specific_config(ALSDecContext *ctx)
AVCodecContext *avctx = ctx->avctx;
ALSSpecificConfig *sconf = &ctx->sconf;
av_dlog(avctx, "resolution = %i\n", sconf->resolution);
av_dlog(avctx, "floating = %i\n", sconf->floating);
av_dlog(avctx, "frame_length = %i\n", sconf->frame_length);
av_dlog(avctx, "ra_distance = %i\n", sconf->ra_distance);
av_dlog(avctx, "ra_flag = %i\n", sconf->ra_flag);
av_dlog(avctx, "adapt_order = %i\n", sconf->adapt_order);
av_dlog(avctx, "coef_table = %i\n", sconf->coef_table);
av_dlog(avctx, "long_term_prediction = %i\n", sconf->long_term_prediction);
av_dlog(avctx, "max_order = %i\n", sconf->max_order);
av_dlog(avctx, "block_switching = %i\n", sconf->block_switching);
av_dlog(avctx, "bgmc = %i\n", sconf->bgmc);
av_dlog(avctx, "sb_part = %i\n", sconf->sb_part);
av_dlog(avctx, "joint_stereo = %i\n", sconf->joint_stereo);
av_dlog(avctx, "mc_coding = %i\n", sconf->mc_coding);
av_dlog(avctx, "chan_config = %i\n", sconf->chan_config);
av_dlog(avctx, "chan_sort = %i\n", sconf->chan_sort);
av_dlog(avctx, "RLSLMS = %i\n", sconf->rlslms);
av_dlog(avctx, "chan_config_info = %i\n", sconf->chan_config_info);
ff_dlog(avctx, "resolution = %i\n", sconf->resolution);
ff_dlog(avctx, "floating = %i\n", sconf->floating);
ff_dlog(avctx, "frame_length = %i\n", sconf->frame_length);
ff_dlog(avctx, "ra_distance = %i\n", sconf->ra_distance);
ff_dlog(avctx, "ra_flag = %i\n", sconf->ra_flag);
ff_dlog(avctx, "adapt_order = %i\n", sconf->adapt_order);
ff_dlog(avctx, "coef_table = %i\n", sconf->coef_table);
ff_dlog(avctx, "long_term_prediction = %i\n", sconf->long_term_prediction);
ff_dlog(avctx, "max_order = %i\n", sconf->max_order);
ff_dlog(avctx, "block_switching = %i\n", sconf->block_switching);
ff_dlog(avctx, "bgmc = %i\n", sconf->bgmc);
ff_dlog(avctx, "sb_part = %i\n", sconf->sb_part);
ff_dlog(avctx, "joint_stereo = %i\n", sconf->joint_stereo);
ff_dlog(avctx, "mc_coding = %i\n", sconf->mc_coding);
ff_dlog(avctx, "chan_config = %i\n", sconf->chan_config);
ff_dlog(avctx, "chan_sort = %i\n", sconf->chan_sort);
ff_dlog(avctx, "RLSLMS = %i\n", sconf->rlslms);
ff_dlog(avctx, "chan_config_info = %i\n", sconf->chan_config_info);
#endif
}
@@ -352,16 +352,20 @@ static av_cold int read_specific_config(ALSDecContext *ctx)
if (get_bits_left(&gb) < bits_needed)
return AVERROR_INVALIDDATA;
if (!(sconf->chan_pos = av_malloc(avctx->channels * sizeof(*sconf->chan_pos))))
if (!(sconf->chan_pos = av_malloc_array(avctx->channels, sizeof(*sconf->chan_pos))))
return AVERROR(ENOMEM);
ctx->cs_switch = 1;
for (i = 0; i < avctx->channels; i++) {
sconf->chan_pos[i] = -1;
}
for (i = 0; i < avctx->channels; i++) {
int idx;
idx = get_bits(&gb, chan_pos_bits);
if (idx >= avctx->channels) {
if (idx >= avctx->channels || sconf->chan_pos[idx] != -1) {
av_log(avctx, AV_LOG_WARNING, "Invalid channel reordering.\n");
ctx->cs_switch = 0;
break;
@@ -678,7 +682,7 @@ static int read_var_block_data(ALSDecContext *ctx, ALSBlockData *bd)
if (!sconf->rlslms) {
if (sconf->adapt_order) {
if (sconf->adapt_order && sconf->max_order) {
int opt_order_length = av_ceil_log2(av_clip((bd->block_length >> 3) - 1,
2, sconf->max_order + 1));
*bd->opt_order = get_bits(gb, opt_order_length);
@@ -1242,6 +1246,7 @@ static int revert_channel_correlation(ALSDecContext *ctx, ALSBlockData *bd,
ALSChannelData *ch = cd[c];
unsigned int dep = 0;
unsigned int channels = ctx->avctx->channels;
unsigned int channel_size = ctx->sconf.frame_length + ctx->sconf.max_order;
if (reverted[c])
return 0;
@@ -1272,9 +1277,9 @@ static int revert_channel_correlation(ALSDecContext *ctx, ALSBlockData *bd,
bd->raw_samples = ctx->raw_samples[c] + offset;
for (dep = 0; !ch[dep].stop_flag; dep++) {
unsigned int smp;
unsigned int begin = 1;
unsigned int end = bd->block_length - 1;
ptrdiff_t smp;
ptrdiff_t begin = 1;
ptrdiff_t end = bd->block_length - 1;
int64_t y;
int32_t *master = ctx->raw_samples[ch[dep].master_channel] + offset;
@@ -1286,11 +1291,28 @@ static int revert_channel_correlation(ALSDecContext *ctx, ALSBlockData *bd,
if (ch[dep].time_diff_sign) {
t = -t;
if (begin < t) {
av_log(ctx->avctx, AV_LOG_ERROR, "begin %td smaller than time diff index %d.\n", begin, t);
return AVERROR_INVALIDDATA;
}
begin -= t;
} else {
if (end < t) {
av_log(ctx->avctx, AV_LOG_ERROR, "end %td smaller than time diff index %d.\n", end, t);
return AVERROR_INVALIDDATA;
}
end -= t;
}
if (FFMIN(begin - 1, begin - 1 + t) < ctx->raw_buffer - master ||
FFMAX(end + 1, end + 1 + t) > ctx->raw_buffer + channels * channel_size - master) {
av_log(ctx->avctx, AV_LOG_ERROR,
"sample pointer range [%p, %p] not contained in raw_buffer [%p, %p].\n",
master + FFMIN(begin - 1, begin - 1 + t), master + FFMAX(end + 1, end + 1 + t),
ctx->raw_buffer, ctx->raw_buffer + channels * channel_size);
return AVERROR_INVALIDDATA;
}
for (smp = begin; smp < end; smp++) {
y = (1 << 6) +
MUL64(ch[dep].weighting[0], master[smp - 1 ]) +
@@ -1303,6 +1325,16 @@ static int revert_channel_correlation(ALSDecContext *ctx, ALSBlockData *bd,
bd->raw_samples[smp] += y >> 7;
}
} else {
if (begin - 1 < ctx->raw_buffer - master ||
end + 1 > ctx->raw_buffer + channels * channel_size - master) {
av_log(ctx->avctx, AV_LOG_ERROR,
"sample pointer range [%p, %p] not contained in raw_buffer [%p, %p].\n",
master + begin - 1, master + end + 1,
ctx->raw_buffer, ctx->raw_buffer + channels * channel_size);
return AVERROR_INVALIDDATA;
}
for (smp = begin; smp < end; smp++) {
y = (1 << 6) +
MUL64(ch[dep].weighting[0], master[smp - 1]) +
@@ -1461,6 +1493,11 @@ static int read_frame_data(ALSDecContext *ctx, unsigned int ra_frame)
// TODO: read_diff_float_data
if (get_bits_left(gb) < 0) {
av_log(ctx->avctx, AV_LOG_ERROR, "Overread %d\n", -get_bits_left(gb));
return AVERROR_INVALIDDATA;
}
return 0;
}
@@ -1666,6 +1703,12 @@ static av_cold int decode_init(AVCodecContext *avctx)
avctx->sample_fmt = sconf->resolution > 1
? AV_SAMPLE_FMT_S32 : AV_SAMPLE_FMT_S16;
avctx->bits_per_raw_sample = (sconf->resolution + 1) * 8;
if (avctx->bits_per_raw_sample > 32) {
av_log(avctx, AV_LOG_ERROR, "Bits per raw sample %d larger than 32.\n",
avctx->bits_per_raw_sample);
ret = AVERROR_INVALIDDATA;
goto fail;
}
}
// set maximum Rice parameter for progressive decoding based on resolution
@@ -1680,14 +1723,14 @@ static av_cold int decode_init(AVCodecContext *avctx)
// allocate quantized parcor coefficient buffer
num_buffers = sconf->mc_coding ? avctx->channels : 1;
ctx->quant_cof = av_malloc(sizeof(*ctx->quant_cof) * num_buffers);
ctx->lpc_cof = av_malloc(sizeof(*ctx->lpc_cof) * num_buffers);
ctx->quant_cof_buffer = av_malloc(sizeof(*ctx->quant_cof_buffer) *
num_buffers * sconf->max_order);
ctx->lpc_cof_buffer = av_malloc(sizeof(*ctx->lpc_cof_buffer) *
num_buffers * sconf->max_order);
ctx->lpc_cof_reversed_buffer = av_malloc(sizeof(*ctx->lpc_cof_buffer) *
sconf->max_order);
ctx->quant_cof = av_malloc_array(num_buffers, sizeof(*ctx->quant_cof));
ctx->lpc_cof = av_malloc_array(num_buffers, sizeof(*ctx->lpc_cof));
ctx->quant_cof_buffer = av_malloc_array(num_buffers * sconf->max_order,
sizeof(*ctx->quant_cof_buffer));
ctx->lpc_cof_buffer = av_malloc_array(num_buffers * sconf->max_order,
sizeof(*ctx->lpc_cof_buffer));
ctx->lpc_cof_reversed_buffer = av_malloc_array(sconf->max_order,
sizeof(*ctx->lpc_cof_buffer));
if (!ctx->quant_cof || !ctx->lpc_cof ||
!ctx->quant_cof_buffer || !ctx->lpc_cof_buffer ||
@@ -1704,15 +1747,14 @@ static av_cold int decode_init(AVCodecContext *avctx)
}
// allocate and assign lag and gain data buffer for ltp mode
ctx->const_block = av_malloc (sizeof(*ctx->const_block) * num_buffers);
ctx->shift_lsbs = av_malloc (sizeof(*ctx->shift_lsbs) * num_buffers);
ctx->opt_order = av_malloc (sizeof(*ctx->opt_order) * num_buffers);
ctx->store_prev_samples = av_malloc(sizeof(*ctx->store_prev_samples) * num_buffers);
ctx->use_ltp = av_mallocz(sizeof(*ctx->use_ltp) * num_buffers);
ctx->ltp_lag = av_malloc (sizeof(*ctx->ltp_lag) * num_buffers);
ctx->ltp_gain = av_malloc (sizeof(*ctx->ltp_gain) * num_buffers);
ctx->ltp_gain_buffer = av_malloc (sizeof(*ctx->ltp_gain_buffer) *
num_buffers * 5);
ctx->const_block = av_malloc_array(num_buffers, sizeof(*ctx->const_block));
ctx->shift_lsbs = av_malloc_array(num_buffers, sizeof(*ctx->shift_lsbs));
ctx->opt_order = av_malloc_array(num_buffers, sizeof(*ctx->opt_order));
ctx->store_prev_samples = av_malloc_array(num_buffers, sizeof(*ctx->store_prev_samples));
ctx->use_ltp = av_mallocz_array(num_buffers, sizeof(*ctx->use_ltp));
ctx->ltp_lag = av_malloc_array(num_buffers, sizeof(*ctx->ltp_lag));
ctx->ltp_gain = av_malloc_array(num_buffers, sizeof(*ctx->ltp_gain));
ctx->ltp_gain_buffer = av_malloc_array(num_buffers * 5, sizeof(*ctx->ltp_gain_buffer));
if (!ctx->const_block || !ctx->shift_lsbs ||
!ctx->opt_order || !ctx->store_prev_samples ||
@@ -1728,12 +1770,12 @@ static av_cold int decode_init(AVCodecContext *avctx)
// allocate and assign channel data buffer for mcc mode
if (sconf->mc_coding) {
ctx->chan_data_buffer = av_malloc(sizeof(*ctx->chan_data_buffer) *
num_buffers * num_buffers);
ctx->chan_data = av_malloc(sizeof(*ctx->chan_data) *
num_buffers);
ctx->reverted_channels = av_malloc(sizeof(*ctx->reverted_channels) *
num_buffers);
ctx->chan_data_buffer = av_mallocz_array(num_buffers * num_buffers,
sizeof(*ctx->chan_data_buffer));
ctx->chan_data = av_mallocz_array(num_buffers,
sizeof(*ctx->chan_data));
ctx->reverted_channels = av_malloc_array(num_buffers,
sizeof(*ctx->reverted_channels));
if (!ctx->chan_data_buffer || !ctx->chan_data || !ctx->reverted_channels) {
av_log(avctx, AV_LOG_ERROR, "Allocating buffer memory failed.\n");
@@ -1751,9 +1793,9 @@ static av_cold int decode_init(AVCodecContext *avctx)
channel_size = sconf->frame_length + sconf->max_order;
ctx->prev_raw_samples = av_malloc (sizeof(*ctx->prev_raw_samples) * sconf->max_order);
ctx->raw_buffer = av_mallocz(sizeof(*ctx-> raw_buffer) * avctx->channels * channel_size);
ctx->raw_samples = av_malloc (sizeof(*ctx-> raw_samples) * avctx->channels);
ctx->prev_raw_samples = av_malloc_array(sconf->max_order, sizeof(*ctx->prev_raw_samples));
ctx->raw_buffer = av_mallocz_array(avctx->channels * channel_size, sizeof(*ctx->raw_buffer));
ctx->raw_samples = av_malloc_array(avctx->channels, sizeof(*ctx->raw_samples));
// allocate previous raw sample buffer
if (!ctx->prev_raw_samples || !ctx->raw_buffer|| !ctx->raw_samples) {
@@ -1770,10 +1812,10 @@ static av_cold int decode_init(AVCodecContext *avctx)
// allocate crc buffer
if (HAVE_BIGENDIAN != sconf->msb_first && sconf->crc_enabled &&
(avctx->err_recognition & (AV_EF_CRCCHECK|AV_EF_CAREFUL))) {
ctx->crc_buffer = av_malloc(sizeof(*ctx->crc_buffer) *
ctx->cur_frame_length *
avctx->channels *
av_get_bytes_per_sample(avctx->sample_fmt));
ctx->crc_buffer = av_malloc_array(ctx->cur_frame_length *
avctx->channels *
av_get_bytes_per_sample(avctx->sample_fmt),
sizeof(*ctx->crc_buffer));
if (!ctx->crc_buffer) {
av_log(avctx, AV_LOG_ERROR, "Allocating buffer memory failed.\n");
ret = AVERROR(ENOMEM);

View File

@@ -399,17 +399,17 @@ static void decode_pitch_vector(AMRContext *p,
decode_pitch_lag_1_6(&pitch_lag_int, &pitch_lag_frac,
amr_subframe->p_lag, p->pitch_lag_int,
subframe);
} else
} else {
ff_decode_pitch_lag(&pitch_lag_int, &pitch_lag_frac,
amr_subframe->p_lag,
p->pitch_lag_int, subframe,
mode != MODE_4k75 && mode != MODE_5k15,
mode <= MODE_6k7 ? 4 : (mode == MODE_7k95 ? 5 : 6));
pitch_lag_frac *= 2;
}
p->pitch_lag_int = pitch_lag_int; // store previous lag in a uint8_t
pitch_lag_frac <<= (p->cur_frame_mode != MODE_12k2);
pitch_lag_int += pitch_lag_frac > 0;
/* Calculate the pitch vector by interpolating the past excitation at the

View File

@@ -592,14 +592,14 @@ static void decode_array_0000(APEContext *ctx, GetBitContext *gb,
int ksummax, ksummin;
rice->ksum = 0;
for (i = 0; i < 5; i++) {
for (i = 0; i < FFMIN(blockstodecode, 5); i++) {
out[i] = get_rice_ook(&ctx->gb, 10);
rice->ksum += out[i];
}
rice->k = av_log2(rice->ksum / 10) + 1;
if (rice->k >= 24)
return;
for (; i < 64; i++) {
for (; i < FFMIN(blockstodecode, 64); i++) {
out[i] = get_rice_ook(&ctx->gb, rice->k);
rice->ksum += out[i];
rice->k = av_log2(rice->ksum / ((i + 1) * 2)) + 1;
@@ -892,6 +892,9 @@ static void long_filter_high_3800(int32_t *buffer, int order, int shift, int len
int32_t dotprod, sign;
int32_t coeffs[256], delay[256];
if (order >= length)
return;
memset(coeffs, 0, order * sizeof(*coeffs));
for (i = 0; i < order; i++)
delay[i] = buffer[i];
@@ -1461,13 +1464,13 @@ static int ape_decode_frame(AVCodecContext *avctx, void *data,
nblocks);
return AVERROR_INVALIDDATA;
}
s->samples = nblocks;
/* Initialize the frame decoder */
if (init_frame_decoder(s) < 0) {
av_log(avctx, AV_LOG_ERROR, "Error reading frame header\n");
return AVERROR_INVALIDDATA;
}
s->samples = nblocks;
}
if (!s->data) {

266
libavcodec/api-flac-test.c Normal file
View File

@@ -0,0 +1,266 @@
/*
* Copyright (c) 2015 Ludmila Glinskih
* Copyright (c) 2001 Fabrice Bellard
*
* 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.
*/
/*
* FLAC codec test.
* Encodes raw data to FLAC format and decodes it back to raw. Compares raw-data
* after that.
*/
#include "avcodec.h"
#include "libavutil/common.h"
#include "libavutil/samplefmt.h"
#define NUMBER_OF_FRAMES 200
#define NAME_BUFF_SIZE 100
/* generate i-th frame of test audio */
static int generate_raw_frame(uint16_t *frame_data, int i, int sample_rate,
int channels, int frame_size)
{
int j, k;
for (j = 0; j < frame_size; j++) {
frame_data[channels * j] = 10000 * ((j / 10 * i) % 2);
for (k = 1; k < channels; k++)
frame_data[channels * j + k] = frame_data[channels * j] * (k + 1);
}
return 0;
}
static int init_encoder(AVCodec *enc, AVCodecContext **enc_ctx,
int64_t ch_layout, int sample_rate)
{
AVCodecContext *ctx;
int result;
char name_buff[NAME_BUFF_SIZE];
av_get_channel_layout_string(name_buff, NAME_BUFF_SIZE, 0, ch_layout);
av_log(NULL, AV_LOG_INFO, "channel layout: %s, sample rate: %i\n", name_buff, sample_rate);
ctx = avcodec_alloc_context3(enc);
if (!ctx) {
av_log(NULL, AV_LOG_ERROR, "Can't allocate encoder context\n");
return AVERROR(ENOMEM);
}
ctx->sample_fmt = AV_SAMPLE_FMT_S16;
ctx->sample_rate = sample_rate;
ctx->channel_layout = ch_layout;
result = avcodec_open2(ctx, enc, NULL);
if (result < 0) {
av_log(ctx, AV_LOG_ERROR, "Can't open encoder\n");
return result;
}
*enc_ctx = ctx;
return 0;
}
static int init_decoder(AVCodec *dec, AVCodecContext **dec_ctx,
int64_t ch_layout)
{
AVCodecContext *ctx;
int result;
ctx = avcodec_alloc_context3(dec);
if (!ctx) {
av_log(NULL, AV_LOG_ERROR , "Can't allocate decoder context\n");
return AVERROR(ENOMEM);
}
ctx->request_sample_fmt = AV_SAMPLE_FMT_S16;
/* XXX: FLAC ignores it for some reason */
ctx->request_channel_layout = ch_layout;
ctx->channel_layout = ch_layout;
result = avcodec_open2(ctx, dec, NULL);
if (result < 0) {
av_log(ctx, AV_LOG_ERROR, "Can't open decoder\n");
return result;
}
*dec_ctx = ctx;
return 0;
}
static int run_test(AVCodec *enc, AVCodec *dec, AVCodecContext *enc_ctx,
AVCodecContext *dec_ctx)
{
AVPacket enc_pkt;
AVFrame *in_frame, *out_frame;
uint8_t *raw_in = NULL, *raw_out = NULL;
int in_offset = 0, out_offset = 0;
int frame_data_size = 0;
int result = 0;
int got_output = 0;
int i = 0;
in_frame = av_frame_alloc();
if (!in_frame) {
av_log(NULL, AV_LOG_ERROR, "Can't allocate input frame\n");
return AVERROR(ENOMEM);
}
in_frame->nb_samples = enc_ctx->frame_size;
in_frame->format = enc_ctx->sample_fmt;
in_frame->channel_layout = enc_ctx->channel_layout;
if (av_frame_get_buffer(in_frame, 32) != 0) {
av_log(NULL, AV_LOG_ERROR, "Can't allocate a buffer for input frame\n");
return AVERROR(ENOMEM);
}
out_frame = av_frame_alloc();
if (!out_frame) {
av_log(NULL, AV_LOG_ERROR, "Can't allocate output frame\n");
return AVERROR(ENOMEM);
}
raw_in = av_malloc(in_frame->linesize[0] * NUMBER_OF_FRAMES);
if (!raw_in) {
av_log(NULL, AV_LOG_ERROR, "Can't allocate memory for raw_in\n");
return AVERROR(ENOMEM);
}
raw_out = av_malloc(in_frame->linesize[0] * NUMBER_OF_FRAMES);
if (!raw_out) {
av_log(NULL, AV_LOG_ERROR, "Can't allocate memory for raw_out\n");
return AVERROR(ENOMEM);
}
for (i = 0; i < NUMBER_OF_FRAMES; i++) {
av_init_packet(&enc_pkt);
enc_pkt.data = NULL;
enc_pkt.size = 0;
generate_raw_frame((uint16_t*)(in_frame->data[0]), i, enc_ctx->sample_rate,
enc_ctx->channels, enc_ctx->frame_size);
memcpy(raw_in + in_offset, in_frame->data[0], in_frame->linesize[0]);
in_offset += in_frame->linesize[0];
result = avcodec_encode_audio2(enc_ctx, &enc_pkt, in_frame, &got_output);
if (result < 0) {
av_log(NULL, AV_LOG_ERROR, "Error encoding audio frame\n");
return result;
}
/* if we get an encoded packet, feed it straight to the decoder */
if (got_output) {
result = avcodec_decode_audio4(dec_ctx, out_frame, &got_output, &enc_pkt);
if (result < 0) {
av_log(NULL, AV_LOG_ERROR, "Error decoding audio packet\n");
return result;
}
if (got_output) {
if (result != enc_pkt.size) {
av_log(NULL, AV_LOG_INFO, "Decoder consumed only part of a packet, it is allowed to do so -- need to update this test\n");
return AVERROR_UNKNOWN;
}
if (in_frame->nb_samples != out_frame->nb_samples) {
av_log(NULL, AV_LOG_ERROR, "Error frames before and after decoding has different number of samples\n");
return AVERROR_UNKNOWN;
}
if (in_frame->channel_layout != out_frame->channel_layout) {
av_log(NULL, AV_LOG_ERROR, "Error frames before and after decoding has different channel layout\n");
return AVERROR_UNKNOWN;
}
if (in_frame->format != out_frame->format) {
av_log(NULL, AV_LOG_ERROR, "Error frames before and after decoding has different sample format\n");
return AVERROR_UNKNOWN;
}
memcpy(raw_out + out_offset, out_frame->data[0], out_frame->linesize[0]);
out_offset += out_frame->linesize[0];
}
}
av_free_packet(&enc_pkt);
}
if (memcmp(raw_in, raw_out, frame_data_size * NUMBER_OF_FRAMES) != 0) {
av_log(NULL, AV_LOG_ERROR, "Output differs\n");
return 1;
}
av_log(NULL, AV_LOG_INFO, "OK\n");
av_freep(&raw_in);
av_freep(&raw_out);
av_frame_free(&in_frame);
av_frame_free(&out_frame);
return 0;
}
static int close_encoder(AVCodecContext **enc_ctx)
{
avcodec_close(*enc_ctx);
av_freep(enc_ctx);
return 0;
}
static int close_decoder(AVCodecContext **dec_ctx)
{
avcodec_close(*dec_ctx);
av_freep(dec_ctx);
return 0;
}
int main(void)
{
AVCodec *enc = NULL, *dec = NULL;
AVCodecContext *enc_ctx = NULL, *dec_ctx = NULL;
uint64_t channel_layouts[] = {AV_CH_LAYOUT_STEREO, AV_CH_LAYOUT_5POINT1_BACK, AV_CH_LAYOUT_SURROUND, AV_CH_LAYOUT_STEREO_DOWNMIX};
int sample_rates[] = {8000, 44100, 48000, 192000};
int cl, sr;
avcodec_register_all();
enc = avcodec_find_encoder(AV_CODEC_ID_FLAC);
if (!enc) {
av_log(NULL, AV_LOG_ERROR, "Can't find encoder\n");
return 1;
}
dec = avcodec_find_decoder(AV_CODEC_ID_FLAC);
if (!dec) {
av_log(NULL, AV_LOG_ERROR, "Can't find decoder\n");
return 1;
}
for (cl = 0; cl < FF_ARRAY_ELEMS(channel_layouts); cl++) {
for (sr = 0; sr < FF_ARRAY_ELEMS(sample_rates); sr++) {
if (init_encoder(enc, &enc_ctx, channel_layouts[cl], sample_rates[sr]) != 0)
return 1;
if (init_decoder(dec, &dec_ctx, channel_layouts[cl]) != 0)
return 1;
if (run_test(enc, dec, enc_ctx, dec_ctx) != 0)
return 1;
close_encoder(&enc_ctx);
close_decoder(&dec_ctx);
}
}
return 0;
}

View File

@@ -27,6 +27,6 @@ void ff_flac_lpc_16_arm(int32_t *samples, const int coeffs[32], int order,
av_cold void ff_flacdsp_init_arm(FLACDSPContext *c, enum AVSampleFormat fmt, int channels,
int bps)
{
if (bps <= 16 && CONFIG_FLAC_DECODER)
c->lpc = ff_flac_lpc_16_arm;
if (CONFIG_FLAC_DECODER)
c->lpc16 = ff_flac_lpc_16_arm;
}

View File

@@ -36,8 +36,8 @@ int ff_ass_subtitle_header(AVCodecContext *avctx,
"[Script Info]\r\n"
"; Script generated by FFmpeg/Lavc%s\r\n"
"ScriptType: v4.00+\r\n"
"PlayResX: 384\r\n"
"PlayResY: 288\r\n"
"PlayResX: %d\r\n"
"PlayResY: %d\r\n"
"\r\n"
"[V4+ Styles]\r\n"
@@ -67,6 +67,7 @@ int ff_ass_subtitle_header(AVCodecContext *avctx,
"[Events]\r\n"
"Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text\r\n",
!(avctx->flags & CODEC_FLAG_BITEXACT) ? AV_STRINGIFY(LIBAVCODEC_VERSION) : "",
ASS_DEFAULT_PLAYRESX, ASS_DEFAULT_PLAYRESY,
font, font_size, color, color, back_color, back_color,
-bold, -italic, -underline, alignment);

View File

@@ -25,6 +25,9 @@
#include "avcodec.h"
#include "libavutil/bprint.h"
#define ASS_DEFAULT_PLAYRESX 384
#define ASS_DEFAULT_PLAYRESY 288
/**
* @name Default values for ASS style
* @{

View File

@@ -523,7 +523,7 @@ ASSStyle *ff_ass_style_get(ASSSplitContext *ctx, const char *style)
if (!style || !*style)
style = "Default";
for (i=0; i<ass->styles_count; i++)
if (!strcmp(ass->styles[i].name, style))
if (ass->styles[i].name && !strcmp(ass->styles[i].name, style))
return ass->styles + i;
return NULL;
}

View File

@@ -103,7 +103,7 @@ typedef struct ASSSplitContext ASSSplitContext;
* Split a full ASS file or a ASS header from a string buffer and store
* the split structure in a newly allocated context.
*
* @param buf String containing the ASS formated data.
* @param buf String containing the ASS formatted data.
* @return Newly allocated struct containing split data.
*/
ASSSplitContext *ff_ass_split(const char *buf);

View File

@@ -333,6 +333,8 @@ static av_cold int encode_init(AVCodecContext *avctx)
avctx->global_quality / 2) / avctx->global_quality;
avctx->extradata = av_mallocz(8);
if (!avctx->extradata)
return AVERROR(ENOMEM);
avctx->extradata_size = 8;
((uint32_t *) avctx->extradata)[0] = av_le2ne32(a->inv_qscale);
((uint32_t *) avctx->extradata)[1] = av_le2ne32(AV_RL32("ASUS"));
@@ -361,6 +363,8 @@ AVCodec ff_asv1_encoder = {
.encode2 = encode_frame,
.pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUV420P,
AV_PIX_FMT_NONE },
.caps_internal = FF_CODEC_CAP_INIT_THREADSAFE |
FF_CODEC_CAP_INIT_CLEANUP,
};
#endif
@@ -375,5 +379,7 @@ AVCodec ff_asv2_encoder = {
.encode2 = encode_frame,
.pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUV420P,
AV_PIX_FMT_NONE },
.caps_internal = FF_CODEC_CAP_INIT_THREADSAFE |
FF_CODEC_CAP_INIT_CLEANUP,
};
#endif

View File

@@ -820,7 +820,7 @@ static void decode_qu_spectra(GetBitContext *gb, const Atrac3pSpecCodeTab *tab,
int num_coeffs = tab->num_coeffs;
int bits = tab->bits;
int is_signed = tab->is_signed;
unsigned val, mask = (1 << bits) - 1;
unsigned val;
for (pos = 0; pos < num_specs;) {
if (group_size == 1 || get_bits1(gb)) {
@@ -828,7 +828,7 @@ static void decode_qu_spectra(GetBitContext *gb, const Atrac3pSpecCodeTab *tab,
val = get_vlc2(gb, vlc_tab->table, vlc_tab->bits, 1);
for (i = 0; i < num_coeffs; i++) {
cf = val & mask;
cf = av_mod_uintp2(val, bits);
if (is_signed)
cf = sign_extend(cf, bits);
else if (cf && get_bits1(gb))
@@ -1724,11 +1724,7 @@ static int decode_tones_info(GetBitContext *gb, Atrac3pChanUnitCtx *ctx,
if (num_channels == 2) {
get_subband_flags(gb, ctx->waves_info->tone_sharing, ctx->waves_info->num_tone_bands);
get_subband_flags(gb, ctx->waves_info->tone_master, ctx->waves_info->num_tone_bands);
if (get_subband_flags(gb, ctx->waves_info->phase_shift,
ctx->waves_info->num_tone_bands)) {
avpriv_report_missing_feature(avctx, "GHA Phase shifting");
return AVERROR_PATCHWELCOME;
}
get_subband_flags(gb, ctx->waves_info->invert_phase, ctx->waves_info->num_tone_bands);
}
ctx->waves_info->tones_index = 0;

View File

@@ -122,7 +122,7 @@ typedef struct Atrac3pWaveSynthParams {
int num_tone_bands; ///< number of PQF bands with tones
uint8_t tone_sharing[ATRAC3P_SUBBANDS]; ///< 1 - subband-wise tone sharing flags
uint8_t tone_master[ATRAC3P_SUBBANDS]; ///< 1 - subband-wise tone channel swapping
uint8_t phase_shift[ATRAC3P_SUBBANDS]; ///< 1 - subband-wise 180° phase shifting
uint8_t invert_phase[ATRAC3P_SUBBANDS]; ///< 1 - subband-wise phase inversion
int tones_index; ///< total sum of tones in this unit
Atrac3pWaveParam waves[48];
} Atrac3pWaveSynthParams;

View File

@@ -72,6 +72,9 @@ static av_cold int atrac3p_decode_close(AVCodecContext *avctx)
av_freep(&ctx->ch_units);
av_freep(&ctx->fdsp);
ff_mdct_end(&ctx->mdct_ctx);
ff_mdct_end(&ctx->ipqf_dct_ctx);
return 0;
}
@@ -381,7 +384,7 @@ static int atrac3p_decode_frame(AVCodecContext *avctx, void *data,
*got_frame_ptr = 1;
return avctx->block_align;
return FFMIN(avctx->block_align, avpkt->size);
}
AVCodec ff_atrac3p_decoder = {

View File

@@ -116,14 +116,16 @@ av_cold void ff_atrac3p_init_wave_synth(void)
* @param[in] synth_param ptr to common synthesis parameters
* @param[in] waves_info parameters for each sine wave
* @param[in] envelope envelope data for all waves in a group
* @param[in] phase_shift flag indicates 180° phase shift
* @param[in] fdsp ptr to floating-point DSP context
* @param[in] invert_phase flag indicating 180° phase shift
* @param[in] reg_offset region offset for trimming envelope data
* @param[out] out receives sythesized data
*/
static void waves_synth(Atrac3pWaveSynthParams *synth_param,
Atrac3pWavesData *waves_info,
Atrac3pWaveEnvelope *envelope,
int phase_shift, int reg_offset, float *out)
AVFloatDSPContext *fdsp,
int invert_phase, int reg_offset, float *out)
{
int i, wn, inc, pos;
double amp;
@@ -146,6 +148,10 @@ static void waves_synth(Atrac3pWaveSynthParams *synth_param,
}
}
/* invert phase if requested */
if (invert_phase)
fdsp->vector_fmul_scalar(out, out, -1.0f, 128);
/* fade in with steep Hann window if requested */
if (envelope->has_start_point) {
pos = (envelope->start_pos << 2) - reg_offset;
@@ -216,12 +222,12 @@ void ff_atrac3p_generate_tones(Atrac3pChanUnitCtx *ch_unit, AVFloatDSPContext *f
/* synthesize waves for both overlapping regions */
if (tones_now->num_wavs && reg1_env_nonzero)
waves_synth(ch_unit->waves_info_prev, tones_now, &tones_now->curr_env,
ch_unit->waves_info_prev->phase_shift[sb] & ch_num,
fdsp, ch_unit->waves_info_prev->invert_phase[sb] & ch_num,
128, wavreg1);
if (tones_next->num_wavs && reg2_env_nonzero)
waves_synth(ch_unit->waves_info, tones_next, &tones_next->curr_env,
ch_unit->waves_info->phase_shift[sb] & ch_num, 0, wavreg2);
waves_synth(ch_unit->waves_info, tones_next, &tones_next->curr_env, fdsp,
ch_unit->waves_info->invert_phase[sb] & ch_num, 0, wavreg2);
/* Hann windowing for non-faded wave signals */
if (tones_now->num_wavs && tones_next->num_wavs &&
@@ -599,8 +605,8 @@ void ff_atrac3p_ipqf(FFTContext *dct_ctx, Atrac3pIPQFChannelCtx *hist,
const float *in, float *out)
{
int i, s, sb, t, pos_now, pos_next;
DECLARE_ALIGNED(32, float, idct_in)[ATRAC3P_SUBBANDS];
DECLARE_ALIGNED(32, float, idct_out)[ATRAC3P_SUBBANDS];
LOCAL_ALIGNED(32, float, idct_in, [ATRAC3P_SUBBANDS]);
LOCAL_ALIGNED(32, float, idct_out, [ATRAC3P_SUBBANDS]);
memset(out, 0, ATRAC3P_FRAME_SAMPLES * sizeof(*out));

View File

@@ -291,6 +291,8 @@ enum AVCodecID {
AV_CODEC_ID_MVC1_DEPRECATED,
AV_CODEC_ID_MVC2_DEPRECATED,
AV_CODEC_ID_HQX,
AV_CODEC_ID_TDSC,
AV_CODEC_ID_HQ_HQA,
AV_CODEC_ID_BRENDER_PIX= MKBETAG('B','P','I','X'),
AV_CODEC_ID_Y41P = MKBETAG('Y','4','1','P'),
@@ -1823,7 +1825,7 @@ typedef struct AVCodecContext {
/**
* precision of the intra DC coefficient - 8
* - encoding: Set by user.
* - decoding: unused
* - decoding: Set by libavcodec
*/
int intra_dc_precision;
@@ -2850,6 +2852,7 @@ typedef struct AVCodecContext {
#define FF_PROFILE_DTS_96_24 40
#define FF_PROFILE_DTS_HD_HRA 50
#define FF_PROFILE_DTS_HD_MA 60
#define FF_PROFILE_DTS_EXPRESS 70
#define FF_PROFILE_MPEG2_422 0
#define FF_PROFILE_MPEG2_HIGH 1
@@ -2909,6 +2912,11 @@ typedef struct AVCodecContext {
#define FF_PROFILE_HEVC_MAIN_STILL_PICTURE 3
#define FF_PROFILE_HEVC_REXT 4
#define FF_PROFILE_VP9_0 0
#define FF_PROFILE_VP9_1 1
#define FF_PROFILE_VP9_2 2
#define FF_PROFILE_VP9_3 3
/**
* level
* - encoding: Set by user.
@@ -3262,6 +3270,11 @@ typedef struct AVCodec {
* Will be called when seeking
*/
void (*flush)(AVCodecContext *);
/**
* Internal codec capabilities.
* See FF_CODEC_CAP_* in internal.h
*/
int caps_internal;
} AVCodec;
int av_codec_get_max_lowres(const AVCodec *codec);
@@ -3839,6 +3852,8 @@ int av_packet_merge_side_data(AVPacket *pkt);
int av_packet_split_side_data(AVPacket *pkt);
const char *av_packet_side_data_name(enum AVPacketSideDataType type);
/**
* Pack a dictionary for use in side_data.
*

View File

@@ -336,6 +336,29 @@ uint8_t *av_packet_get_side_data(AVPacket *pkt, enum AVPacketSideDataType type,
return NULL;
}
const char *av_packet_side_data_name(enum AVPacketSideDataType type)
{
switch(type) {
case AV_PKT_DATA_PALETTE: return "Palette";
case AV_PKT_DATA_NEW_EXTRADATA: return "New Extradata";
case AV_PKT_DATA_PARAM_CHANGE: return "Param Change";
case AV_PKT_DATA_H263_MB_INFO: return "H263 MB Info";
case AV_PKT_DATA_REPLAYGAIN: return "Replay Gain";
case AV_PKT_DATA_DISPLAYMATRIX: return "Display Matrix";
case AV_PKT_DATA_STEREO3D: return "Stereo 3D";
case AV_PKT_DATA_AUDIO_SERVICE_TYPE: return "Audio Service Type";
case AV_PKT_DATA_SKIP_SAMPLES: return "Skip Samples";
case AV_PKT_DATA_JP_DUALMONO: return "JP Dual Mono";
case AV_PKT_DATA_STRINGS_METADATA: return "Strings Metadata";
case AV_PKT_DATA_SUBTITLE_POSITION: return "Subtitle Position";
case AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL: return "Matroska BlockAdditional";
case AV_PKT_DATA_WEBVTT_IDENTIFIER: return "WebVTT ID";
case AV_PKT_DATA_WEBVTT_SETTINGS: return "WebVTT Settings";
case AV_PKT_DATA_METADATA_UPDATE: return "Metadata Update";
}
return NULL;
}
#define FF_MERGE_MARKER 0x8c4d9d108e25e9feULL
int av_packet_merge_side_data(AVPacket *pkt){

View File

@@ -950,15 +950,32 @@ static int binkb_decode_plane(BinkContext *c, AVFrame *frame, GetBitContext *gb,
return 0;
}
static int bink_put_pixels(BinkContext *c,
uint8_t *dst, uint8_t *prev, int stride,
uint8_t *ref_start,
uint8_t *ref_end)
{
int xoff = get_value(c, BINK_SRC_X_OFF);
int yoff = get_value(c, BINK_SRC_Y_OFF);
uint8_t *ref = prev + xoff + yoff * stride;
if (ref < ref_start || ref > ref_end) {
av_log(c->avctx, AV_LOG_ERROR, "Copy out of bounds @%d, %d\n",
xoff, yoff);
return AVERROR_INVALIDDATA;
}
c->hdsp.put_pixels_tab[1][0](dst, ref, stride, 8);
return 0;
}
static int bink_decode_plane(BinkContext *c, AVFrame *frame, GetBitContext *gb,
int plane_idx, int is_chroma)
{
int blk, ret;
int i, j, bx, by;
uint8_t *dst, *prev, *ref, *ref_start, *ref_end;
uint8_t *dst, *prev, *ref_start, *ref_end;
int v, col[2];
const uint8_t *scan;
int xoff, yoff;
LOCAL_ALIGNED_16(int16_t, block, [64]);
LOCAL_ALIGNED_16(uint8_t, ublock, [64]);
LOCAL_ALIGNED_16(int32_t, dctblock, [64]);
@@ -1080,15 +1097,10 @@ static int bink_decode_plane(BinkContext *c, AVFrame *frame, GetBitContext *gb,
prev += 8;
break;
case MOTION_BLOCK:
xoff = get_value(c, BINK_SRC_X_OFF);
yoff = get_value(c, BINK_SRC_Y_OFF);
ref = prev + xoff + yoff * stride;
if (ref < ref_start || ref > ref_end) {
av_log(c->avctx, AV_LOG_ERROR, "Copy out of bounds @%d, %d\n",
bx*8 + xoff, by*8 + yoff);
return AVERROR_INVALIDDATA;
}
c->hdsp.put_pixels_tab[1][0](dst, ref, stride, 8);
ret = bink_put_pixels(c, dst, prev, stride,
ref_start, ref_end);
if (ret < 0)
return ret;
break;
case RUN_BLOCK:
scan = bink_patterns[get_bits(gb, 4)];
@@ -1114,15 +1126,10 @@ static int bink_decode_plane(BinkContext *c, AVFrame *frame, GetBitContext *gb,
dst[coordmap[*scan++]] = get_value(c, BINK_SRC_COLORS);
break;
case RESIDUE_BLOCK:
xoff = get_value(c, BINK_SRC_X_OFF);
yoff = get_value(c, BINK_SRC_Y_OFF);
ref = prev + xoff + yoff * stride;
if (ref < ref_start || ref > ref_end) {
av_log(c->avctx, AV_LOG_ERROR, "Copy out of bounds @%d, %d\n",
bx*8 + xoff, by*8 + yoff);
return AVERROR_INVALIDDATA;
}
c->hdsp.put_pixels_tab[1][0](dst, ref, stride, 8);
ret = bink_put_pixels(c, dst, prev, stride,
ref_start, ref_end);
if (ret < 0)
return ret;
c->bdsp.clear_block(block);
v = get_bits(gb, 7);
read_residue(gb, block, v);
@@ -1139,15 +1146,10 @@ static int bink_decode_plane(BinkContext *c, AVFrame *frame, GetBitContext *gb,
c->bdsp.fill_block_tab[1](dst, v, stride, 8);
break;
case INTER_BLOCK:
xoff = get_value(c, BINK_SRC_X_OFF);
yoff = get_value(c, BINK_SRC_Y_OFF);
ref = prev + xoff + yoff * stride;
if (ref < ref_start || ref > ref_end) {
av_log(c->avctx, AV_LOG_ERROR, "Copy out of bounds @%d, %d\n",
bx*8 + xoff, by*8 + yoff);
return -1;
}
c->hdsp.put_pixels_tab[1][0](dst, ref, stride, 8);
ret = bink_put_pixels(c, dst, prev, stride,
ref_start, ref_end);
if (ret < 0)
return ret;
memset(dctblock, 0, sizeof(*dctblock) * 64);
dctblock[0] = get_value(c, BINK_SRC_INTER_DC);
read_dct_coeffs(gb, dctblock, bink_scan, bink_inter_quant, -1);

View File

@@ -31,6 +31,7 @@
#include "libavutil/atomic.h"
#include "libavutil/avassert.h"
#include "avcodec.h"
#include "internal.h"
#include "mathops.h"
#include "get_bits.h"
#include "put_bits.h"
@@ -69,6 +70,8 @@ void avpriv_copy_bits(PutBitContext *pb, const uint8_t *src, int length)
if (length == 0)
return;
av_assert0(length <= put_bits_left(pb));
if (CONFIG_SMALL || words < 16 || put_bits_count(pb) & 7) {
for (i = 0; i < words; i++)
put_bits(pb, 16, AV_RB16(src + 2 * i));
@@ -169,7 +172,7 @@ static int build_table(VLC *vlc, int table_nb_bits, int nb_codes,
if (table_nb_bits > 30)
return -1;
table_index = alloc_table(vlc, table_size, flags & INIT_VLC_USE_NEW_STATIC);
av_dlog(NULL, "new table index=%d size=%d\n", table_index, table_size);
ff_dlog(NULL, "new table index=%d size=%d\n", table_index, table_size);
if (table_index < 0)
return table_index;
table = (volatile VLC_TYPE (*)[2])&vlc->table[table_index];
@@ -179,7 +182,7 @@ static int build_table(VLC *vlc, int table_nb_bits, int nb_codes,
n = codes[i].bits;
code = codes[i].code;
symbol = codes[i].symbol;
av_dlog(NULL, "i=%d n=%d code=0x%x\n", i, n, code);
ff_dlog(NULL, "i=%d n=%d code=0x%x\n", i, n, code);
if (n <= table_nb_bits) {
/* no need to add another table */
j = code >> (32 - table_nb_bits);
@@ -191,7 +194,7 @@ static int build_table(VLC *vlc, int table_nb_bits, int nb_codes,
}
for (k = 0; k < nb; k++) {
int bits = table[j][1];
av_dlog(NULL, "%4x: code=%d n=%d\n", j, i, n);
ff_dlog(NULL, "%4x: code=%d n=%d\n", j, i, n);
if (bits != 0 && bits != n) {
av_log(NULL, AV_LOG_ERROR, "incorrect codes\n");
return AVERROR_INVALIDDATA;
@@ -221,7 +224,7 @@ static int build_table(VLC *vlc, int table_nb_bits, int nb_codes,
subtable_bits = FFMIN(subtable_bits, table_nb_bits);
j = (flags & INIT_VLC_LE) ? bitswap_32(code_prefix) >> (32 - table_nb_bits) : code_prefix;
table[j][1] = -subtable_bits;
av_dlog(NULL, "%4x: n=%d (subtable)\n",
ff_dlog(NULL, "%4x: n=%d (subtable)\n",
j, codes[i].bits + table_nb_bits);
index = build_table(vlc, subtable_bits, k-i, codes+i, flags);
if (index < 0)
@@ -244,7 +247,7 @@ static int build_table(VLC *vlc, int table_nb_bits, int nb_codes,
/* Build VLC decoding tables suitable for use with get_vlc().
'nb_bits' set thee decoding table size (2^nb_bits) entries. The
'nb_bits' set the decoding table size (2^nb_bits) entries. The
bigger it is, the faster is the decoding. But it should not be too
big to save memory and L1 cache. '9' is a good compromise.
@@ -262,7 +265,7 @@ static int build_table(VLC *vlc, int table_nb_bits, int nb_codes,
'xxx_size' : gives the number of bytes of each entry of the 'bits'
or 'codes' tables.
'wrap' and 'size' allows to use any memory configuration and types
'wrap' and 'size' make it possible to use any memory configuration and types
(byte/word/long) to store the 'bits', 'codes', and 'symbols' tables.
'use_static' should be set to 1 for tables, which should be freed

View File

@@ -71,8 +71,10 @@ static av_always_inline type bytestream2_get_ ## name ## u(GetByteContext *g) \
} \
static av_always_inline type bytestream2_get_ ## name(GetByteContext *g) \
{ \
if (g->buffer_end - g->buffer < bytes) \
if (g->buffer_end - g->buffer < bytes) { \
g->buffer = g->buffer_end; \
return 0; \
} \
return bytestream2_get_ ## name ## u(g); \
} \
static av_always_inline type bytestream2_peek_ ## name(GetByteContext *g) \

View File

@@ -51,7 +51,7 @@ void ff_init_cabac_encoder(CABACContext *c, uint8_t *buf, int buf_size){
*
* @param buf_size size of buf in bits
*/
void ff_init_cabac_decoder(CABACContext *c, const uint8_t *buf, int buf_size){
int ff_init_cabac_decoder(CABACContext *c, const uint8_t *buf, int buf_size){
c->bytestream_start=
c->bytestream= buf;
c->bytestream_end= buf + buf_size;
@@ -64,6 +64,9 @@ void ff_init_cabac_decoder(CABACContext *c, const uint8_t *buf, int buf_size){
#endif
c->low+= ((*c->bytestream++)<<2) + 2;
c->range= 0x1FE;
if ((c->range<<(CABAC_BITS+1)) < c->low)
return AVERROR_INVALIDDATA;
return 0;
}
void ff_init_cabac_states(void)
@@ -174,7 +177,7 @@ int main(void){
CABACContext c;
uint8_t b[9*SIZE];
uint8_t r[9*SIZE];
int i;
int i, ret = 0;
uint8_t state[10]= {0};
AVLFG prng;
@@ -188,15 +191,11 @@ int main(void){
}
for(i=0; i<SIZE; i++){
START_TIMER
put_cabac_bypass(&c, r[i]&1);
STOP_TIMER("put_cabac_bypass")
}
for(i=0; i<SIZE; i++){
START_TIMER
put_cabac(&c, state, r[i]&1);
STOP_TIMER("put_cabac")
}
put_cabac_terminate(&c, 1);
@@ -206,22 +205,24 @@ STOP_TIMER("put_cabac")
memset(state, 0, sizeof(state));
for(i=0; i<SIZE; i++){
START_TIMER
if( (r[i]&1) != get_cabac_bypass(&c) )
if( (r[i]&1) != get_cabac_bypass(&c) ) {
av_log(NULL, AV_LOG_ERROR, "CABAC bypass failure at %d\n", i);
STOP_TIMER("get_cabac_bypass")
ret = 1;
}
}
for(i=0; i<SIZE; i++){
START_TIMER
if( (r[i]&1) != get_cabac_noinline(&c, state) )
if( (r[i]&1) != get_cabac_noinline(&c, state) ) {
av_log(NULL, AV_LOG_ERROR, "CABAC failure at %d\n", i);
STOP_TIMER("get_cabac")
ret = 1;
}
}
if(!get_cabac_terminate(&c))
if(!get_cabac_terminate(&c)) {
av_log(NULL, AV_LOG_ERROR, "where's the Terminator?\n");
ret = 1;
}
return 0;
return ret;
}
#endif /* TEST */

Some files were not shown because too many files have changed in this diff Show More