Compare commits

...

8453 Commits
n2.7 ... master

Author SHA1 Message Date
Timothy Gu
d3426fb592 Merge commit '606fb6c032fa44d9fa1efd4971308c228f2ebfff'
* commit '606fb6c032fa44d9fa1efd4971308c228f2ebfff':
  h264: call the hwaccel frame_start() from h264_field_start()

This commit is a noop, as it conflicts with 3e53211a578fc6b042ceff45b2702335294e0464.

Merged-by: Timothy Gu <timothygu99@gmail.com>
2016-08-03 17:47:06 -07:00
Timothy Gu
826c780c12 Revert "Revert "Merge commit 'd1d7678040cd60148f97b372cb4291bcc45b2e22'""
This reverts commit e4af9be0f45c8f2ca148fb971f1e0c6782530e8c and redoes
796027f22154c799e0063e2457b31e0cfd1dddae.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
2016-08-03 17:45:52 -07:00
Timothy Gu
e4af9be0f4 Revert "Merge commit 'd1d7678040cd60148f97b372cb4291bcc45b2e22'"
This reverts commit 796027f22154c799e0063e2457b31e0cfd1dddae, reversing
changes made to bca30ed2b67f095fd31e07319a622ac30ad22978.

Preemptive revert before further testing has been done.
2016-08-03 17:06:55 -07:00
Timothy Gu
796027f221 Merge commit 'd1d7678040cd60148f97b372cb4291bcc45b2e22'
* commit 'd1d7678040cd60148f97b372cb4291bcc45b2e22':
  h264: fix the check for mixed IDR/non-IDR slices

Conflicts:
	libavcodec/h264_slice.c
	libavcodec/h264dec.c

Merged-by: Timothy Gu <timothygu99@gmail.com>
2016-08-03 15:59:51 -07:00
Timothy Gu
bca30ed2b6 Merge commit 'b13fc1e344011949929975a3451f78f226aa1de3'
* commit 'b13fc1e344011949929975a3451f78f226aa1de3':
  h264: do not pass H264Context to h264_slice_header_parse()

Conflicts:
	libavcodec/h264dec.h

Did not merge the h264_slice_header_parse() part. We use a few other
members of H264Context for error checking in that function.

Merged-by: Timothy Gu <timothygu99@gmail.com>
2016-08-03 15:41:59 -07:00
Paul B Mahol
4be8ab70a6 avfilter/af_astats: extend bitdepth calculation 2016-08-03 20:32:43 +02:00
Michael Niedermayer
b1ce800372 avformat/teeproto: Support parsing protocol options
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-08-03 19:40:26 +02:00
Michael Niedermayer
c5cc3b08e5 avformat/oggdec: Fix integer overflow with invalid pts
If negative pts are possible for some codecs in ogg then the code needs to be
changed to use signed values.

Found-by: Thomas Guilbert <tguilbert@google.com>
Fixes: clusterfuzz_usan-2016-08-02
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-08-03 16:09:03 +02:00
Michael Niedermayer
6cd9a8b67a ffplay: Fix invalid array index
Found-by: Thomas Guilbert <tguilbert@google.com>
Fixes: clusterfuzz_usan-2016-08-02
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-08-03 16:09:03 +02:00
Carl Eugen Hoyos
8916ad956a doc/filters: Fix option ranges for the sab filter.
Fixes ticket #5751.
2016-08-03 15:20:38 +02:00
Patrick Felt
e9659d1a0b decklink: Remove unneeded spaces in initializers 2016-08-02 22:46:28 -07:00
Burt P
e0b8cba058 af_hdcd: add flags to AVOption defs
Signed-off-by: Burt P <pburt0@gmail.com>
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2016-08-02 22:40:23 -07:00
Timothy Gu
fd242479c6 mediacodec: Return ENOSYS on unsupported platforms 2016-08-02 22:32:12 -07:00
Timothy Gu
4e2a8c4920 jni: Return ENOSYS on unsupported platforms 2016-08-02 22:32:12 -07:00
Timothy Gu
58c7bf789f doxygen: Standardize root-level modules 2016-08-02 22:15:25 -07:00
Timothy Gu
a4d7a6d1dd mathematics: Extend and edit Doxygen 2016-08-02 21:53:34 -07:00
Timothy Gu
952c4cf7d0 rational: Extend Doxygen 2016-08-02 21:52:40 -07:00
Timothy Gu
f29ffbc87d avutil/hash: Add more detailed Doxygen documentation 2016-08-02 21:49:52 -07:00
James Almer
613c86299f avcodec/h264dec: move ff_h264_ps_uninit prototype to h264_ps.h
It's the proper place since 8c7932884d09bc580036640453fd6b7ad4dd77b4

Signed-off-by: James Almer <jamrial@gmail.com>
2016-08-03 00:36:09 -03:00
Steven Robertson
e1be80aa11 libavcodec/dnxhd: Enable 12-bit DNxHR support.
10- and 12-bit DNxHR use the same DC coefficient decoding process and
VLC table, just with a different shift value. From SMPTE 2019-1:2016,
8.2.4 DC Coefficient Decoding:

"For 8-bit video sampling, the maximum value of η=11 and for
10-/12-bit video sampling, the maximum value of η=13."

A sample file will be uploaded to show that with this patch, things
decode correctly:
dnxhr_hqx_12bit_1080p_smpte_colorbars_davinci_resolve.mov

Signed-off-by: Steven Robertson <steven@strobe.cc>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-08-03 03:17:32 +02:00
Timothy Gu
708d9e9fba Doxyfile: Set STRIP_FROM_INC_PATH to project root
Show proper #include's on struct pages.

Before:

    #include <buffer.h>

After

    #include <libavutil/buffer.h>
2016-08-02 15:53:53 -07:00
Timothy Gu
ec234ccea4 mem: Order function prototypes semantically 2016-08-02 15:17:31 -07:00
Patrick Felt
5469293758 cosmetics: Correct comments in decklink_dec
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2016-08-02 13:01:12 -07:00
James Almer
efc9d5c4bc x86/ttaenc: add ff_ttaenc_filter_process_{ssse3,sse4}
Signed-off-by: James Almer <jamrial@gmail.com>
2016-08-02 15:48:04 -03:00
James Almer
7a9a8afc82 avcodec/ttaenc: split off hybrid filter processing as ttaencdsp
Signed-off-by: James Almer <jamrial@gmail.com>
2016-08-02 15:47:38 -03:00
Michael Niedermayer
35e7fc6030 avformat/tee: Factor parse_slave_options() out
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-08-02 20:22:55 +02:00
LoRd_MuldeR
8ab200fb8a avfilter/af_dynaudnorm: improve pre-filling code
In order to avoid possible clipping at the very
beginning. Especially apparent when "alternative"
boundary mode is used.

Adopted from original commit by committer.
2016-08-02 20:00:44 +02:00
Paul B Mahol
82b84c71b0 avcodec/alacenc: allocate bigger packets 2016-08-02 18:41:11 +02:00
Timothy Gu
1fcf243216 mathematics: Make function prototypes identical to definitions
Doxygen gets confused by this.
2016-08-02 09:01:09 -07:00
Carl Eugen Hoyos
5aede05120 lavu/hwcontext_vaapi: Fix compilation if VA_FOURCC_ABGR is not defined.
Fixes ticket #5484.
2016-08-02 17:07:41 +02:00
Timothy Gu
39211cb9aa murmur3: Add Doxygen documentation
The interface has been stable for some time now.
2016-08-02 07:50:44 -07:00
Timothy Gu
0a7a4e33f3 avutil: Add detailed Doxygen description to a few hashes 2016-08-02 07:48:21 -07:00
Timothy Gu
19d7098c9e avutil: Group hash functions separately in Doxygen 2016-08-02 07:48:08 -07:00
Timothy Gu
fbe22355b7 build: Make API documentation depend on config.mak
The Doxygen command is generated from the list of installed headers,
which may change per configuration (e.g. `--enable-gpl` results in
libpostproc to be built and installed).
2016-08-02 07:45:13 -07:00
Carl Eugen Hoyos
8ee113afa1 lavf/rmdec: Do not return EIO on EOF.
Reported-by: applemax82
2016-08-02 16:16:31 +02:00
Lucas Cooper
3d7ea1d39e doc/filters: Add stats_version documentation to PSNR filter
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-08-02 12:50:06 +02:00
Petru Rares Sincraian
7be021d949 fate: add test for tremolo filter
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-08-02 12:50:04 +02:00
James Almer
01f0598b18 Merge commit '996f13413b0415097e2a184d161462ffb3ceb647'
* commit '996f13413b0415097e2a184d161462ffb3ceb647':
  h264: fix warnings in fill_filter_caches_inter()

Conflicts:
libavcodec/h264_slice.c

See ef8f6464a55db730cab8c48a1a51fa4e6ca12107

Merged-by: James Almer <jamrial@gmail.com>
2016-08-01 19:11:08 -03:00
Burt P
bea17a3d57 af_hdcd: Warn if there is any resampling or format conversion in the link chain
HDCD is only encoded in s16@44100Hz. Scan the chain of AVFilterLinks
for any resampling or format conversion/truncation that might cause
problems for the filter and issue warnings.

Signed-off-by: Burt P <pburt0@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-08-01 23:57:55 +02:00
Burt P
d574e22659 af_hdcd: Process stereo channels together, fix #5727
Issue #5727: gain adjustment should only be applied if matching
gain value from a valid packet in both channels. The existing functions process
each channel separately, so it was not possible.

* New versions of hdcd_process(), hdcd_scan(), hdcd_integrate() named
  hdcd_*_stereo() that process both channels together.
* target_gain applied will be the last matching target_gain.
* The old single channel functions remain as an option. They can be
  used by: -af hdcd=process_stereo=0.

Signed-off-by: Burt P <pburt0@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-08-01 23:57:55 +02:00
James Almer
517dd04f6d Merge commit 'bc7f4268514624e1286ea76d27a89a56b4ee18e1'
* commit 'bc7f4268514624e1286ea76d27a89a56b4ee18e1':
  h264: drop tests whether the codec id is AV_CODEC_ID_H264

Conflicts:
libavcodec/h264dec.c

Merged-by: James Almer <jamrial@gmail.com>
2016-08-01 18:15:07 -03:00
James Almer
fd4eb56528 Merge commit '8281cd5cb80582d668ce0848e0e035b383f161f6'
* commit '8281cd5cb80582d668ce0848e0e035b383f161f6':
  h264_cabac: drop an always true condition

Merged-by: James Almer <jamrial@gmail.com>
2016-08-01 16:46:57 -03:00
James Almer
f41048f6ec Merge commit '5c2fb561d94fc51d76ab21d6f7cc5b6cc3aa599c'
* commit '5c2fb561d94fc51d76ab21d6f7cc5b6cc3aa599c':
  h264: add H264_ prefix to the NAL unit types

Conflicts:
libavcodec/h264_parse.c
libavcodec/h264_parser.c
libavcodec/h264_slice.c
libavcodec/h264dec.c

Merged-by: James Almer <jamrial@gmail.com>
2016-08-01 15:11:05 -03:00
Burt P
12759cc034 af_hdcd: Move code detect/check into own function
Signed-off-by: Burt P <pburt0@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-08-01 19:48:32 +02:00
Burt P
b90d0ab4be af_hdcd: add force_pe filter option
Used to attempt replication of some results from
http://www.audiomisc.co.uk/HFN/HDCD/Examined.html
May not be generally useful, defaults to off.

Signed-off-by: Burt P <pburt0@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-08-01 19:48:28 +02:00
Burt P
6517177d97 af_hdcd: Improve error detection logging
* Moves the filter context member out of state and into HDCDContext
* More useful information when an error is detected
* Gives a location near where the error was detected

Signed-off-by: Burt P <pburt0@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-08-01 19:48:24 +02:00
Burt P
bbf0b4fa88 MAINTAINERS: Add myself for af_hdcd
Signed-off-by: Burt P <pburt0@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-08-01 19:47:54 +02:00
James Almer
4c121ad546 Merge commit '1cf2f3d334f52849aae2be868bad1e5fa5f59aa0'
* commit '1cf2f3d334f52849aae2be868bad1e5fa5f59aa0':
  h264_sei: drop an unnecessary h264dec.h include

Merged-by: James Almer <jamrial@gmail.com>
2016-08-01 13:04:30 -03:00
James Almer
7c8bf2dc2b Merge commit 'b24dafe10572254ff0decc18b0d7c3d3707d5a29'
* commit 'b24dafe10572254ff0decc18b0d7c3d3707d5a29':
  lavc: drop unnecessary h264dec.h includes

Merged-by: James Almer <jamrial@gmail.com>
2016-08-01 13:03:15 -03:00
James Almer
9ee1f03365 Merge commit '70b1dcef2d859ae6b3e21d61de928c3dd0cf1aa4'
* commit '70b1dcef2d859ae6b3e21d61de928c3dd0cf1aa4':
  h264: tighten the valid range for ref_frame_count

Conflicts:
libavcodec/h264_ps.c

Merged-by: James Almer <jamrial@gmail.com>
2016-08-01 13:02:20 -03:00
James Almer
8c7932884d Merge commit 'f638b67e5790735f34620bf82025c9b9d6fc7216'
* commit 'f638b67e5790735f34620bf82025c9b9d6fc7216':
  h264: move the parameter set definitions to a new header file

Conflicts:
libavcodec/h264_parse.h
libavcodec/h264_ps.c
libavcodec/h264dec.h

Merged-by: James Almer <jamrial@gmail.com>
2016-08-01 12:58:09 -03:00
Michael Niedermayer
77b0f3f26d avcodec/vp9_parser: Check the input frame sizes for being consistent
Suggested-by: BBB
Fixed-by: BBB
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-08-01 17:05:51 +02:00
Timothy Gu
fd2cde0234 Doxygen: Re-enable JAVADOC_AUTOBRIEF 2016-07-31 20:56:23 -07:00
Timothy Gu
04da20e58f dynarray: Change AV_ to FF_ for AV_DYNARRAY_ADD
The header is not installed and the macro isn't used outside libavutil,
so it is obviously privat to libavutil. Make the name reflect that.
2016-07-31 10:19:03 -07:00
Michael Bradshaw
c9ae8be5a8 avformat/matroskaenc: fix Voids with size < 10
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-31 16:59:49 +02:00
Burt P
390eea61be af_hdcd: give cdt expired counter a value for never set
The counter is now -1 if the code detect timer was never set,
and 0 if it was set but never expired.

Signed-off-by: Burt P <pburt0@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-31 16:36:22 +02:00
Burt P
999c6b1da8 af_hdcd: fix a minor cosmetic annoyance
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-31 16:36:08 +02:00
Timothy Gu
cebad64d4f Doxyfile: Reset unused options back to default
Silences a few warnings.
2016-07-30 19:52:28 -07:00
Timothy Gu
5522da9ee1 doxygen: Remove outdated EXPAND_AS_DEFINED 2016-07-30 19:52:24 -07:00
Alexey Tourbin
906ee41141 avfilter/af_stereowiden: fix read/write past the end of buffer
The stereowiden filter uses a buffer, s->buffer[], and a pointer
within the buffer, s->write, to implement inter-channel delays.
The loop which applies the delayed samples turns out to be faulty.

   109      for (n = 0; n < in->nb_samples; n++, src += 2, dst += 2) {
   110          const float left = src[0], right = src[1];
   111          float *read = s->write + 2;
   112
   113          if (read > s->buffer + s->length)
   114              read = s->buffer;
   115
   116          dst[0] = drymix * left - crossfeed * right - feedback * read[1];
   117          dst[1] = drymix * right - crossfeed * left - feedback * read[0];
   118
   119          s->write[0] = left;
   120          s->write[1] = right;
   121
   122          if (s->write == s->buffer + s->length)
   123              s->write = s->buffer;
   124          else
   125              s->write += 2;
   126      }

For one, the buffer gets written past its end in lines 119-120, before
the bound check is done in lines 122-123.  This can be easily confirmed
by valgrind.

==3544== Invalid read of size 4
==3544==    at 0x593B41: filter_frame (af_stereowiden.c:116)
==3544==  Address 0xb1b03c4 is 4 bytes after a block of size 7,680 alloc'd
==3544==
==3544== Invalid read of size 4
==3544==    at 0x593B66: filter_frame (af_stereowiden.c:117)
==3544==  Address 0xb1b03c0 is 0 bytes after a block of size 7,680 alloc'd
==3544==
==3544== Invalid write of size 4
==3544==    at 0x593B79: filter_frame (af_stereowiden.c:119)
==3544==  Address 0xb1b03c0 is 0 bytes after a block of size 7,680 alloc'd
==3544==
==3544== Invalid write of size 4
==3544==    at 0x593B7D: filter_frame (af_stereowiden.c:120)
==3544==  Address 0xb1b03c4 is 4 bytes after a block of size 7,680 alloc'd

Also, using two separate pointers, s->write and read = s->write + 2,
does not seem to be well thought out.  To apply the delay of s->buffer[],
it is enough to read the delayed samples at the current position within
the buffer, and then to store new samples at the same current position.
Thus the application of delayed samples can probably be best described
with a single pointer s->cur.

I also introduce a minor change to ensure that the size of s->buffer[]
is always a multiple of 2.  Since the delay parameter is a float, it is
otherwise possible to trick the code into allocating off-by-one buffer.
2016-07-30 21:53:25 +02:00
Paul B Mahol
61d302dd52 doc/filters: mention HDMI output format for stereo3d filter 2016-07-30 15:17:21 +02:00
Timothy Gu
7204a6298b doxygen: Set tab size to 4 2016-07-29 19:01:40 -07:00
Timothy Gu
6253e5676f doxygen: Update Doxyfile for Doxygen 1.8.8 2016-07-29 19:01:40 -07:00
Timothy Gu
f198b8af72 doxygen: Fix PREDEFINED syntax 2016-07-29 19:01:40 -07:00
Timothy Gu
22df70e9ed doxygen: Add a note on libavutil's modular nature 2016-07-29 19:01:40 -07:00
Chris Cunningham
52ec4cc09b libavformat/matroskadec: Add test for seeking with codec delay.
Also cleanup parens for the skip_to_timecode check.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-30 01:02:41 +02:00
Lucas Cooper
bc9ce5f6be avfilter: Add new format for PSNR stats log
Add an AVOption stats_version with a new header for V2 stats, which
specifies the stats log version and lists the fields that will be
present in the log (to ease parsing).

The primary motivation is to facilitate the addition of optional fields
to the log without breaking backwards compatibility, while making the
logs easier to parse.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-29 20:49:53 +02:00
Michael Niedermayer
0219dc6c07 avformat/rmdec: Clear extradata when extradata_size is cleared
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-29 12:12:18 +02:00
Clément Bœsch
a170365ae9 Merge commit '4e2f6212483ae1b2a4043cddf0a1cb001b476abc'
* commit '4e2f6212483ae1b2a4043cddf0a1cb001b476abc':
  svq3: stop using H264Picture

Merged-by: Clément Bœsch <u@pkh.me>
2016-07-29 11:20:55 +02:00
Clément Bœsch
ecf65c30cf Merge commit '251cbb44003caf179fb17afbb8a6c56643c2a646'
* commit '251cbb44003caf179fb17afbb8a6c56643c2a646':
  h264: create a new header for common h264 definitions

Merged-by: Clément Bœsch <u@pkh.me>
2016-07-29 11:13:44 +02:00
Clément Bœsch
15b26e88cb Merge commit '9df889a5f116c1ee78c2f239e0ba599c492431aa'
* commit '9df889a5f116c1ee78c2f239e0ba599c492431aa':
  h264: rename h264.[ch] to h264dec.[ch]

Merged-by: Clément Bœsch <u@pkh.me>
2016-07-29 11:01:36 +02:00
Clément Bœsch
7dda97fb86 Merge commit 'f651c6a259d4bc78f25db11d25df9256d5110bd3'
* commit 'f651c6a259d4bc78f25db11d25df9256d5110bd3':
  h264: factor out setting frame properties / side data

Merged-by: Clément Bœsch <u@pkh.me>
2016-07-29 10:39:57 +02:00
Clément Bœsch
cc0852bee3 Merge commit '19446dc5fff6a2f5ccd1a73db66e266255a5d768'
* commit '19446dc5fff6a2f5ccd1a73db66e266255a5d768':
  h264: drop unused NAL_FF_IGNORE

Merged-by: Clément Bœsch <u@pkh.me>
2016-07-29 10:24:42 +02:00
Clément Bœsch
13872d2aa1 Merge commit 'bcd91f1644b46dd142c5355c8b742b27d9028903'
* commit 'bcd91f1644b46dd142c5355c8b742b27d9028903':
  h264: move a per-field block from decode_slice_header() to field_start()

Merged-by: Clément Bœsch <u@pkh.me>
2016-07-29 10:24:06 +02:00
Josh de Kock
238733f741 hapdec: remove unused memory.h include
Most systems have this, so it isn't really a problem to include it
even if it's not used, but some do not have memory.h as it is
non-standard. Since it's unused just remove it anyway.
2016-07-29 09:13:01 +01:00
Clément Bœsch
a63c73122e Merge commit '17e7c03e12d1e4490921e7bffaeaa6b46a7ada4e'
* commit '17e7c03e12d1e4490921e7bffaeaa6b46a7ada4e':
  h264: only allow ending a field/starting a new one before finish_setup()

This commit is a noop. According to Michael, after 8385e171 this commit
should not be necessary anymore.

Merged-by: Clément Bœsch <u@pkh.me>
2016-07-29 09:59:36 +02:00
Stefano Sabatini
156b5bb9bf lavf/mpegtsenc: add special case for handling timed ID3 packets
Set the stream_id to 0xbd (private_stream_id_1). Tools seem to assume
that value, and this is consistent with MPEG TS specification (ITU-T
H.222.0 section 2.12.3).
2016-07-29 08:47:41 +02:00
Petru Rares Sincraian
286368099a fate: add test for stereotools filter
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-29 00:30:22 +02:00
Petru Rares Sincraian
08c1b6bb72 fate: add test for silenceremove filter
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-29 00:30:22 +02:00
Matthieu Bouron
83b9909398 Changelog: add entry for MediaCodec hwaccel 2016-07-28 16:11:52 +02:00
Zhao Zhili
65b2feb890 avutil/mem: fix memleak
The original code assumes av_realloc() will free ptr if size is zero.
The assumes is incorrect now.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-28 12:09:05 +02:00
Paul B Mahol
d7ae4f79d3 avfilter/f_drawgraph: add another slide mode 2016-07-28 10:30:06 +02:00
Clément Bœsch
37abc8cca2 lavfi/hdcd: fix style 2016-07-28 09:30:10 +02:00
Clément Bœsch
4791716c1d lavfi/hdcd: mark pe_str as static and const 2016-07-28 09:29:20 +02:00
Burt P
fb91143ef1 af_hdcd: Report PE as being intermittent or permanent
The Peak Extend feature could be enabled permanently or only
when needed. This is now reported.

Signed-off-by: Burt P <pburt0@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-28 02:26:57 +02:00
softworkz
70c1647a35 avformat/matroskaenc: Write duration early during mkv_write_header (Rev #3)
Rev #2: Fixes doubled header writing, checked FATE running without errors
Rev #3: Fixed coding style

This commit addresses the following scenario:

we are using ffmpeg to transcode or remux mkv (or something else) to mkv. The result is being streamed on-the-fly to an HTML5 client (streaming starts while ffmpeg is still running). The problem here is that the client is unable to detect the duration because the duration is only written to the mkv at the end of the transcoding/remoxing process. In matroskaenc.c, the duration is only written during mkv_write_trailer but not during mkv_write_header.

The approach:

FFMPEG is currently putting quite some effort to estimate the durations of source streams, but in many cases the source stream durations are still left at 0 and these durations are nowhere mapped to or used for output streams. As much as I would have liked to deduct or estimate output durations based on input stream durations - I realized that this is a hard task (as Nicolas already mentioned in a previous conversation). It would involve changes to the duration calculation/estimation/deduction for input streams and propagating these durations to output streams or the output context in a correct way.
So I looked for a simple and small solution with better chances to get accepted. In webmdashenc.c I found that a duration is written during write_header and this duration is taken from the streams' metadata, so I decided for a similar approach.

And here's what it does:

At first it is checking the duration of the AVFormatContext. In typical cases this value is not set, but: It is set in cases where the user has specified a recording_time or an end_time via the -t or -to parameters.
Then it is looking for a DURATION metadata field in the metadata of the output context (AVFormatContext::metadata). This would only exist in case the user has explicitly specified a metadata DURATION value from the command line.
Then it is iterating all streams looking for a "DURATION" metadata (this works unless the option "-map_metadata -1" has been specified) and determines the maximum value.
The precendence is as follows: 1. Use duration of AVFormatContext - 2. Use explicitly specified metadata duration value - 3. Use maximum (mapped) metadata duration over all streams.

To test this:

1. With explicit recording time:
ffmpeg -i file:"src.mkv" -loglevel debug -t 01:38:36.000 -y "dest.mkv"

2. Take duration from metadata specified via command line parameters:
ffmpeg -i file:"src.mkv" -loglevel debug -map_metadata -1 -metadata Duration="01:14:33.00" -y "dest.mkv"

3. Take duration from mapped input metadata:
ffmpeg -i file:"src.mkv" -loglevel debug -y "dest.mkv"

Regression risk:

Very low IMO because it only affects the header while ffmpeg is still running. When ffmpeg completes the process, the duration is rewritten to the header with the usual value (same like without this commit).

Signed-off-by: SoftWorkz <softworkz@hotmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-28 02:06:55 +02:00
Anssi Hannula
04964ac311 avformat/hls: Fix missing streams in some cases with MPEG TS
HLS demuxer calls the subdemuxer avformat_find_stream_info() while
overriding the subdemuxer AVFMTCTX_NOHEADER flag by clearing it.
However, this prevents some streams in some MPEG TS streams from being
detected properly.

Simply removing the clearing of the flag would cause the inner
avformat_find_stream_info() call to take longer in some cases, without
a way to control it.

To fix the issue, do not clear the flag but propagate it to HLS demuxer.
To avoid the above-mentioned mandatory delay, the call to
avformat_find_stream_info() is dropped except in the HLS ID3 timestamped
case. The HLS demuxer user should be calling avformat_find_stream_info()
on the HLS demuxer if it wants to find the stream info.

The main streams are now created dynamically after read_header time if
the subdemuxer uses AVFMTCTX_NOHEADER (mpegts).

Subdemuxer avformat_find_stream_info() is still called for the HLS ID3
timestamped case as the HLS demuxer needs to know the packet durations
to properly interleave ID3 timestamped streams with MPEG TS streams on
sub-segment level.

Fixes ticket #4930.
2016-07-28 01:24:57 +03:00
Anssi Hannula
83db3c84fa avformat/hls: Move stream propagation to a separate function
Creation of main demuxer streams from subdemuxer streams is moved to
update_streams_from_subdemuxer() which can be called repeatedly.

There should be no functional changes.
2016-07-28 01:24:57 +03:00
Anssi Hannula
9884f17e34 avformat/hls: Use an array instead of stream offset for stream mapping
This will be useful when the amount of streams per subdemuxer is not
known at hls_read_header time in a following commit.
2016-07-28 01:24:57 +03:00
Anssi Hannula
4d85069e5d avformat/hls: Sync starting segment across variants on live streams
This will avoid a large time difference between variants in the most
common case.
2016-07-28 01:24:57 +03:00
Anssi Hannula
9cb30f7a88 avformat/hls: Fix regression with ranged media segments
Commit 81306fd4bdf ("hls: eliminate ffurl_* usage", merged in d0fc5de3a6)
changed the hls demuxer to use AVIOContext instead of URLContext for its
HTTP requests.

HLS demuxer uses the "offset" option of the http demuxer, requesting
the initial file offset for the I/O (http URLProtocol uses the "Range:"
HTTP header to try to accommodate that).

However, the code in libavformat/aviobuf.c seems to be doing its own
accounting for the current file offset (AVIOContext.pos), with the
assumption that the initial offset is always zero.

HLS demuxer does an explicit seek after open_url to account for cases
where the "offset" was not effective (due to the URL being a local file
or the HTTP server not obeying it), which should be a no-op in case the
file offset is already at that position.

However, since aviobuf.c code thinks the starting offset is 0, this
doesn't work properly.

This breaks retrieval of ranged media segments.

To fix the regression, just drop the seek call from the HLS demuxer when
the HTTP(S) protocol is used.
2016-07-28 01:24:57 +03:00
Anssi Hannula
60873bf992 avformat/utils: Fix find_stream_info not considering the extradata it found
Commit 9200514ad8717c6 ("lavf: replace AVStream.codec with
AVStream.codecpar") merged in commit 6f69f7a8bf6a0d01 changed
avformat_find_stream_info() to put the extradata it got from
st->parser->parser->split() to st->internal->avctx instead of st->codec
(extradata in st->internal->avctx will be later copied to st->codecpar).

However, in the same function, the "is stream ready?" check was changed
to check for extradata in st->codecpar instead of st->codec, even
though st->codecpar is not yet updated at that point.

Extradata retrieved from split() is therefore not considered anymore,
and avformat_find_stream_info() will therefore needlessly continue
probing in some cases.

Fix that by checking for the extradata at st->internal->avctx where it
is actually put.
2016-07-28 01:24:57 +03:00
Burt P
c26305f6ae af_hdcd: Add counter for cdt expirations
Adds a counter for when the "code detect timer" expired without
finding a valid packet.

Signed-off-by: Burt P <pburt0@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-27 23:09:45 +02:00
Burt P
c7ba34b6ea af_hdcd: more comments in state struct
Add some comments describing the fields in hdcd_state_t.

Signed-off-by: Burt P <pburt0@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-27 23:09:26 +02:00
Burt P
91854b8ef6 af_hdcd: Improve HDCD detection
HDCD is now only considered detected if a valid packet
is active in both channels simultaneously.

Signed-off-by: Burt P <pburt0@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-27 22:21:43 +02:00
Burt P
bfe9155aee fate: Add HDCD filter tests for false positive and error detection
Signed-off-by: Burt P <pburt0@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-27 22:21:43 +02:00
Michael Niedermayer
8385e1718e avcodec/h264_slice: Make setup_finished check cover more cases 2016-07-27 19:29:55 +02:00
Xinzheng Zhang
ad14aab3b4 avformat/flvdec: parse keyframe before a\v stream was created add_keyframes_index() when stream created or keyframe parsed
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-27 19:29:55 +02:00
Xinzheng Zhang
cd141e71bd avformat/flvdec: splitting add_keyframes_index() out from parse_keyframes_index()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-27 19:29:55 +02:00
Clément Bœsch
6c41eda18e Merge commit 'debca90863e4ee53447efd02483c500f89766384'
* commit 'debca90863e4ee53447efd02483c500f89766384':
  h264: store {curr,max}_pic_num in the per-slice context

Merged-by: Clément Bœsch <u@pkh.me>
2016-07-27 18:07:30 +02:00
Clément Bœsch
87d1f82059 Merge commit 'f966498e433fead2f5e6b5b66fad2ac062146d22'
* commit 'f966498e433fead2f5e6b5b66fad2ac062146d22':
  h264: decode the poc values from the slice header into the per-slice context

Merged-by: Clément Bœsch <u@pkh.me>
2016-07-27 17:31:18 +02:00
Clément Bœsch
f8ce1e8282 lavc/h264_slice: adjust a few line breaks to reduce diff with Libav 2016-07-27 17:24:48 +02:00
Clément Bœsch
78c7197ea0 Merge commit '54dd9b1cdd9e54f1ee39ae25af0324f8aba2831b'
* commit '54dd9b1cdd9e54f1ee39ae25af0324f8aba2831b':
  h264: set mb_aff_frame in frame_start()
  h264: move the block starting a new field out of slice_header_parse()

Both commits are merged at the same time in order to prevent a
regression with Ticket #4440 (see 38660128).

Merged-by: Clément Bœsch <u@pkh.me>
2016-07-27 17:00:14 +02:00
Matthieu Bouron
376d8fb2c5 lavc/ffjni: replace ff_jni_{attach,detach} with ff_jni_get_env
If a JNI environment is not already attached to the thread where the
MediaCodec calls are made the current implementation will attach /
detach an environment for each MediaCodec call wasting some CPU time.

ff_jni_get_env replaces ff_jni_{attach,detach} by permanently attaching
an environment (if it is not already the case) to the current thread.
The environment will be automatically detached at the thread destruction
using a pthread_key callback.

Saves around 5% of CPU time (out of 20%) while decoding a stream with
MediaCodec.
2016-07-27 15:43:39 +02:00
Martin Storsjö
293676c476 libopenh264: Support building with the 1.6 release
This fixes trac issue #5417.

This is cherry-picked from libav commit
d825b1a5306576dcd0553b7d0d24a3a46ad92864.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-07-27 10:19:46 +03:00
Martin Storsjö
c5d326f551 Add an OpenH264 decoder wrapper
This is cherrypicked from libav, from commits
82b7525173f20702a8cbc26ebedbf4b69b8fecec and
d0b1e6049b06eeeeca146ece4d2f199c5dba1565.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-07-27 10:19:40 +03:00
James Almer
54a0a52be1 checkasm/vp9dsp: use declare_func_emms in check_loopfilter
Fixes checkasm failures on mmxext functions

Signed-off-by: James Almer <jamrial@gmail.com>
2016-07-26 22:16:21 -03:00
dericed
461073e809 ffprobe.xsd: add missing timecode attribute to frameSideDataType
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-27 00:42:13 +02:00
Josh de Kock
c2fcf4fa0b avdev/jack: remove duplicated dispatch macros
The macros were moved to compat/dispatch_semaphore/semaphore.h after a libav merge, and were never removed from jack.c
2016-07-26 23:10:47 +01:00
Ronald S. Bultje
a4edaa0270 vp9: add mxext versions of the single-block (w=8,npx=8) h/v loopfilters.
Each takes about 0.1% of runtime in my profiles, and they didn't have
any SIMD yet so far (we only had simd for npx=16 double-block versions).
2016-07-26 15:59:07 -04:00
Ronald S. Bultje
7ca422bb1b vp9: add mxext versions of the single-block (w=4,npx=8) h/v loopfilters.
Each takes about 0.5% of runtime in my profiles, and they didn't have
any SIMD yet so far (we only had simd for npx=16 double-block versions).
2016-07-26 15:59:07 -04:00
Ronald S. Bultje
726501a34e vp9: add 32x32 idct AVX2 implementation.
About 1.8x speedup compared to AVX version for full IDCT. Other
sub-IDCT scenarios also see speedups. Full --bench output for
idct_32x32_add_{bpp}_${subidct}_${opt} (50k cycles):

nop: 16.5
vp9_inv_dct_dct_32x32_add_8_1_c: 2284.4
vp9_inv_dct_dct_32x32_add_8_1_sse2: 145.0
vp9_inv_dct_dct_32x32_add_8_1_ssse3: 137.4
vp9_inv_dct_dct_32x32_add_8_1_avx: 137.1
vp9_inv_dct_dct_32x32_add_8_1_avx2: 73.2
vp9_inv_dct_dct_32x32_add_8_2_c: 14680.8
vp9_inv_dct_dct_32x32_add_8_2_sse2: 2617.2
vp9_inv_dct_dct_32x32_add_8_2_ssse3: 982.9
vp9_inv_dct_dct_32x32_add_8_2_avx: 958.5
vp9_inv_dct_dct_32x32_add_8_2_avx2: 704.2
vp9_inv_dct_dct_32x32_add_8_4_c: 14443.1
vp9_inv_dct_dct_32x32_add_8_4_sse2: 2717.1
vp9_inv_dct_dct_32x32_add_8_4_ssse3: 965.7
vp9_inv_dct_dct_32x32_add_8_4_avx: 1000.7
vp9_inv_dct_dct_32x32_add_8_4_avx2: 717.1
vp9_inv_dct_dct_32x32_add_8_8_c: 14436.4
vp9_inv_dct_dct_32x32_add_8_8_sse2: 2671.8
vp9_inv_dct_dct_32x32_add_8_8_ssse3: 1038.5
vp9_inv_dct_dct_32x32_add_8_8_avx: 983.0
vp9_inv_dct_dct_32x32_add_8_8_avx2: 729.4
vp9_inv_dct_dct_32x32_add_8_16_c: 14614.7
vp9_inv_dct_dct_32x32_add_8_16_sse2: 2701.7
vp9_inv_dct_dct_32x32_add_8_16_ssse3: 1334.4
vp9_inv_dct_dct_32x32_add_8_16_avx: 1276.7
vp9_inv_dct_dct_32x32_add_8_16_avx2: 719.5
vp9_inv_dct_dct_32x32_add_8_32_c: 14363.6
vp9_inv_dct_dct_32x32_add_8_32_sse2: 2575.6
vp9_inv_dct_dct_32x32_add_8_32_ssse3: 2633.9
vp9_inv_dct_dct_32x32_add_8_32_avx: 2539.6
vp9_inv_dct_dct_32x32_add_8_32_avx2: 1395.0
2016-07-26 15:59:07 -04:00
Clément Bœsch
c6e900e925 lavfi/curves: fix meaningless const int returned value
Spotted-by: James Almer <jamrial@gmail.com>
2016-07-26 21:22:27 +02:00
Luca Barbato
e85d38c20a librtmp: Avoid an infiniloop setting connection arguments
The exit condition was missing.

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2016-07-26 12:05:29 -07:00
James Almer
be04c4aa00 avformt/matroskaenc: undo an accidental revert by commit 5d48e4ea
Commit 5d48e4eafa6c4559683892b8638d10508125f3cf accidentally reverted changes
made to matroskaenc by commit 989a614b707dcff8abdffe28dc24ec64a83b2837.

Signed-off-by: James Almer <jamrial@gmail.com>
2016-07-26 15:22:32 -03:00
Dmitry Vagin
dc151d138c ffprobe: add missing PROGRAM_STREAM_TAGS case
ffprobe did not show tags with only '-show_entries programs'

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-26 19:22:47 +02:00
James Almer
fb91850fe1 avutil/frame: access avframe fields directly in get_frame_defaults()
The accessors are needed only from outside libavutil.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-07-25 17:37:18 -03:00
Josh de Kock
384251daff lavd/libdc1394: distinguish between enumeration errors and no cameras found
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-25 19:39:13 +02:00
Kacper Michajłow
e947b75b1c libavformat/rtpdec_asf: zero initialize the AVIOContext struct
This fixes crash in avformat_open_input() when accessing
protocol_whitelist field.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-25 19:39:13 +02:00
James Almer
0c75bd8e3c avcodec/dnxhddata: move avpriv_dnxhd_parse_header_prefix to a header
It's a small and simple function that can be inlined.

This removes one private symbol and should reduce object dependencies with the next
major bump

Signed-off-by: James Almer <jamrial@gmail.com>
2016-07-25 12:19:39 -03:00
James Almer
26cb7232c3 Revert "lavc: always build dnxhddata"
This reverts commit 2adbea4e216ce38a8bf6c72de16267c9162c174d.

A better solution will follow in the next commit.
2016-07-25 12:19:31 -03:00
Carl Eugen Hoyos
71167f7f84 lavc/Makefile: Fix standalone compilation of the svq3 decoder.
Regression since 0bf5fd2e
2016-07-24 23:50:33 +02:00
Matthieu Bouron
2adbea4e21 lavc: always build dnxhddata
lavc/movenc rely on avpriv_dnxhd_parse_header_prefix declared by
dnxhddata.h since e47981dab7fb7c9499b959cb0125b7281301969a.

Fixes a missing symbol error in lavc/movenc if the dnxhd encoder is not
enabled.
2016-07-24 22:57:06 +02:00
Carl Eugen Hoyos
9bd35a76fc lavc/h264_ps: Be more verbose when truncating likely oversized PPS. 2016-07-24 20:21:37 +02:00
Ivan Uskov
b4054100f6 Revert "Merge commit '3c53627ac17fc6bdea5029be57da1e03b32d265d'"
This reverts commit d30cf57a7b2097b565db02ecfffbdc9c16423d0e, reversing changes made to
acc155ac55baa95d1c16c0364b02244bc04d83a8. The commit d30cf57a7b2097b565db02ecfffbdc9c16423d0e
provided irrelevant code complexity and decoding slowdown. But the main disadvantage of this
commit is a decoder crash. So it should be reverted.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-24 18:36:26 +02:00
Clément Bœsch
308f9b1c49 lavfi/selectivecolor: add 16-bit support 2016-07-24 15:29:37 +02:00
Clément Bœsch
b8aaedcd01 lavfi/selectivecolor: fix picking black as neutral when alpha is present 2016-07-24 14:21:50 +02:00
Mark Reid
6108cb2ce3 tests/fate: add dnxhr encoding tests
added sws_flags flags and tested against x86_32

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-24 12:31:07 +02:00
Clément Bœsch
6e971f7d66 lavfi: bump minor after recent curves filter additions 2016-07-24 12:22:41 +02:00
Clément Bœsch
b470d81f4e lavfi/curves: prefix init and uninit function names 2016-07-24 12:18:30 +02:00
Clément Bœsch
62a31aecf6 lavfi/curves: pass log ctx as void* instead of AVFilterContext* 2016-07-24 12:18:30 +02:00
Clément Bœsch
39c6d4a8c5 lavfi/curves: reindent after previous commit 2016-07-24 12:18:30 +02:00
Clément Bœsch
e30cdac14b lavfi/curves: add 16-bit support 2016-07-24 12:18:30 +02:00
Clément Bœsch
f19f5b906d lavfi/curves: move alloc and init of LUTs inside config_input()
This is needed in order to have different sizes of LUTs according to the
input.
2016-07-24 12:18:30 +02:00
Clément Bœsch
050f790594 lavfi/curves: dynamically allocate LUTs
This simplifies following commits.
2016-07-24 12:18:30 +02:00
Clément Bœsch
4eee06ae87 lavfi/curves: add various const where it makes sense 2016-07-24 12:18:30 +02:00
Clément Bœsch
51a873d441 lavfi/curves: remove pointless logging since the addition of plot option 2016-07-24 12:18:30 +02:00
Clément Bœsch
4a8f5f1fd8 lavfi/curves: add plot option 2016-07-24 12:18:30 +02:00
Clément Bœsch
5c14018fc4 lavfi/curves: do not automatically insert points at x=0 and x=1
There is actually a need for the origin and end point not to be defined.
We can not automatically insert them with the y value of the first and
last point as it will influence the curves in a wrong way.

Fixes #5397
2016-07-24 12:18:30 +02:00
Michael Niedermayer
783a2568b2 tests/fate/filter-audio: fate-filter-chorus: Randomly change parameters to some values which pass on arm/mips/x86-32/64
If this still doesnt give the same results on all platforms then this should be
disabled

Found-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-24 03:52:55 +02:00
Kacper Michajłow
69630f4d30 libavutil/opt: Small bugfix in example.
Fix const corectness and zero init the struct. This example code would actually crash when initializing string.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-24 00:41:15 +02:00
Jan Sebechlebsky
75bd5d3e2d avformat/tee: Rescale ts using av_packet_rescale_ts
This ensures that AV_NOPTS_VALUE value is handled
correctly.

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Jan Sebechlebsky <sebechlebskyjan@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-07-23 20:02:05 +02:00
Mark Reid
ece12db4f1 libavcodec/dnxhdenc: add support for dnxhr encoding
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-23 14:07:43 +02:00
Mark Reid
cdca1902ab libavcodec/dnxhdenc: add support for variable mircoblock counts
dnxhr has variable resolution, 8160 is the mb num for 1920x1080

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-23 14:07:37 +02:00
Mark Reid
c2cd1a5ea7 tests/fate/dnxhd: add dnxhr prefix tests
The data offset value in the prefix increases as the heights increases.
This test adds a tests for some common dnxhr heights.

can somebody add the following test footage to fate/dnxhd?
https://dl.dropboxusercontent.com/u/170952/fate/dnxhd/prefix-256x1536.dnxhr
https://dl.dropboxusercontent.com/u/170952/fate/dnxhd/prefix-256x1716.dnxhr
https://dl.dropboxusercontent.com/u/170952/fate/dnxhd/prefix-256x2048.dnxhr
https://dl.dropboxusercontent.com/u/170952/fate/dnxhd/prefix-256x2160.dnxhr
https://dl.dropboxusercontent.com/u/170952/fate/dnxhd/prefix-256x3212.dnxhr

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-23 13:54:13 +02:00
Mark Reid
e47981dab7 libavformat/movenc: add dnxhr compatibility for apple players
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-23 13:54:12 +02:00
Nikolay Aleksandrov
8ec599caa4 MAINTAINERS: add myself to the project server
I've been helping out with the project servers' maintenance and migration
to the new machine hosted in Telepoint's data center in Sofia, BG.

Signed-off-by: Nikolay Aleksandrov <razor@blackwall.org>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-23 11:13:06 +02:00
Chris Cunningham
d59820f6fe libavformat/matroskadec: fix unsigned overflow to improve seeking
When seeking a file where codec delay is greater than 0, the timecode
can become negative after offsetting by the codec delay. Failing to cast
to a signed int64 will cause the check against skip_to_timecode to evaluate
true for these negative values. This breaks the "skip_to" seek mechanism.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-23 10:32:28 +02:00
Mark Reid
0a088dea3d ffmpeg.c: copy video profile when using stream_copy
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-23 03:52:38 +02:00
Carl Eugen Hoyos
db8e8c9731 lavc/intrax8: Use correct printf specifier for size_t on Windows. 2016-07-22 19:23:01 +02:00
Jan Sebechlebsky
1c46e53dcc avcodec/mpeg4_unpack_bframes_bsf: Check av_packet_from_data() return value
Signed-off-by: Jan Sebechlebsky <sebechlebskyjan@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-22 19:04:21 +02:00
Jan Sebechlebsky
8c997b3d3d avcodec/mpeg4_unpack_bframes_bsf: Copy packet props
mpeg4_unpack_bframes_bsf bitstream filters constructs
resulting packet using av_packet_from_data() function.
This function however modifies only buffer (data) and leaves
other fields untouched, so the content of other fields
of the output packet is undefined.
It is working with old BSF API, since old API filters
just data and the packet fields are copied in
av_apply_bitstream_filters from input packet.

This change fixes the behaviour for the new BSF API.

Signed-off-by: Jan Sebechlebsky <sebechlebskyjan@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-22 18:55:37 +02:00
Sasi Inguva
282477bf45 libx264: Increase x264 opts character limit to 4096
Signed-off-by: Sasi Inguva <isasi@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-22 16:37:44 +02:00
Steven Liu
41ad6d193a doc/muxers: improve hlsenc description
Signed-off-by: Moritz Barsnick <barsnick@gmx.net>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-22 16:31:30 +02:00
Steven Liu
6f07467831 doc/muxers: add hls_flags option description
Signed-off-by: Steven Liu <liuqi@gosun.com>
Reviewed-by: Moritz Barsnick <barsnick@gmx.net>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-22 16:31:30 +02:00
Petru Rares Sincraian
fa393e3061 fate: add test for extrastereo filter
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-22 13:13:24 +02:00
Michael Niedermayer
e83a01def3 avformat/teeproto: Fix memset sizeof
Found-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-22 10:47:34 +02:00
James Zern
640c0962c0 libvpxenc,cosmetics: rename common fns vp8 -> vpx
+ the context struct

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Zern <jzern@google.com>
2016-07-21 20:51:13 -07:00
James Zern
2afddfe9bf libvpxdec,cosmetics: rename common fns vp8 -> vpx
+ the context struct

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Zern <jzern@google.com>
2016-07-21 20:50:26 -07:00
Yong Lei
8dcfe43de0 avcodec/huffman: beautify: add space between #include and filename.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-22 03:14:07 +02:00
Michael Niedermayer
b9d77c1dfc doc/protocols: Fix seperated typo
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-22 01:05:49 +02:00
Michael Niedermayer
697b2bbd54 avcodec/ffv1dec: Test extradata_size instead of extradata for better robustness
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-21 23:37:02 +02:00
Michael Niedermayer
38cc5c298c avformat/mov: Do not allocate empty extradata
Fixes Ticket5723

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-21 21:55:18 +02:00
Michael Niedermayer
9264bb7e79 avfilter/vf_psnr: Fix rounding error in average_max
The intermediate was rounded to an integer

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-21 11:26:28 +02:00
Mark Reid
541731488e libavformat/rawenc: add dnxhr raw format extension
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-21 04:15:15 +02:00
Jörn Heusipp
64131b87d6 libopenmpt: Add "date" to metadata.
Signed-off-by: Jörn Heusipp <osmanx@problemloesungsmaschine.de>
Signed-off-by: Josh de Kock <josh@itanimul.li>
2016-07-21 02:47:35 +01:00
Jörn Heusipp
840df1f193 libopenmpt: set stream duration and fix time base
Fix the confusion around the used time base.

Check size returned from avio_size()

Signed-off-by: Jörn Heusipp <osmanx@problemloesungsmaschine.de>
Signed-off-by: Josh de Kock <josh@itanimul.li>
2016-07-21 02:47:35 +01:00
Josh de Kock
4ed6edac76 docs/demuxers: add libopenmpt section
Signed-off-by: Josh de Kock <josh@itanimul.li>
2016-07-21 02:47:35 +01:00
Josh de Kock
9134d2df5b libopenmpt: add subsong support
Signed-off-by: Josh de Kock <josh@itanimul.li>
2016-07-21 02:47:35 +01:00
James Almer
120f34b6ac avformat/oggenc: add vp8 muxing support
Addresses ticket #5687

Signed-off-by: James Almer <jamrial@gmail.com>
2016-07-20 22:32:48 -03:00
James Almer
66408fce49 avformat: add an Ogg Video muxer
Signed-off-by: James Almer <jamrial@gmail.com>
2016-07-20 22:32:43 -03:00
James Almer
ec0e888e3a Changelog: move a misplaced entry to the correct section
Signed-off-by: James Almer <jamrial@gmail.com>
2016-07-20 22:32:39 -03:00
Michael Niedermayer
3af1aba2be avformat/mux: Fix some codecpar non uses
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-21 03:02:24 +02:00
Petru Rares Sincraian
3fd2ef922e fate: add test for earwax filter
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-20 23:09:04 +02:00
Petru Rares Sincraian
7403dcc34e fate: add test for dcshift filter
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-20 23:09:04 +02:00
James Almer
7a15cf42ee x86/diracdsp: make ff_put_signed_rect_clamped_10_sse4 work on x86_32
Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-07-20 13:43:38 -03:00
Mark Reid
41d7642a7b libavcodec/dnxhd: add dnxhr profiles
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-20 13:40:06 +02:00
Jun Zhao
a06acfff76 ffmpeg_opt: Delete duplicate “hwaccel_output_format” option.
Delete duplicate “hwaccel_output_format” option.

Signed-off-by: Jun Zhao <mypopydev@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-20 12:07:38 +02:00
Vignesh Venkatasubramanian
134fe28981 libavcodec/libvpx: Add VPx alpha decode support
VPx (VP8/VP9) alpha encoding has been part of FFmpeg. Now, add the
ability to decode such files with alpha channel.

Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
2016-07-19 20:31:13 -07:00
Petru Rares Sincraian
2383618a40 fate: add test for chorus filter
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-20 02:53:42 +02:00
James Almer
1582e306a4 avformat/avlanguage: make av_convert_lang_to() internal
The header was never installed and the function is only used in libavformat

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-07-19 21:43:14 -03:00
James Almer
b3820cabad avformat/oggenc: fix page duration calculation when granule differs from timestamp
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-07-19 21:12:18 -03:00
James Almer
5adfbd3918 avformat/oggparsevp8: fix pts calculation on pages ending with an invisible frame
Signed-off-by: James Almer <jamrial@gmail.com>
2016-07-19 21:12:10 -03:00
James Almer
114870dbc9 configure: add support for new CPUs
Add new -march values for Intel and AMD CPUs introduced with GCC 5 and 6, and
improve SunCC flags accordingly.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-07-19 20:45:48 -03:00
Michael Niedermayer
9bf3fdcd3c avcodec/h264_slice: Move h264_init_ps() call into h264_field_start()
This was missing from f512e4a39037ef798ec78170f734c7733abe3231

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-20 00:07:18 +02:00
Michael Niedermayer
fd1588919d avcodec/h264: remove list_count and ref_count clearing
The code conflicts with moving the h264_init_ps() call point

Without this, ff_h264_parse_ref_count() fills ref and list count and
h264_init_ps() subsequently wipes them out on a "success" path.
Subsequently things crash as the wiped fields are used.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-20 00:02:12 +02:00
Petru Rares Sincraian
68f991d909 fate: add test for avfft
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-19 23:25:01 +02:00
Michael Niedermayer
64caafaeb1 avformat: Add tee protocol
Option passing support will be submitted seperately to the ML

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-19 18:41:19 +02:00
Clément Bœsch
21c081a246 lavc/h264: fix spacing before comment 2016-07-19 15:34:03 +02:00
Zhao Zhili
450cf400fc avutil/mem: fix wrong comment
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-18 22:52:36 +02:00
Josh de Kock
daf421d2ab MAINTAINERS: add myself for libopenmpt
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-18 20:10:29 +02:00
Aman Gupta
a49ed9e32d avcodec/ccaption_dec: default rollup to row 10
This ensures that captions are written towards the bottom of the screen
when tuning into mid-stream. The row will be reset on the receipt of the
next PAC command. Row 10 was chosen as it corresponds to the value of
"0" in a PAC (see row_map in handle_pac()).

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-18 01:34:56 +02:00
Aman Gupta
9ca9671458 avcodec/ccaption_dec: implement positioning for closed captions
Positioning math is based on the guidelines in https://dvcs.w3.org/hg/text-tracks/raw-file/default/608toVTT/608toVTT.html#positioning-in-cea-608

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-18 01:31:25 +02:00
James Almer
64d16fd7f5 tools/patcheck: add a couple more common typos
Signed-off-by: James Almer <jamrial@gmail.com>
2016-07-17 18:38:14 -03:00
Aman Gupta
309322ef65 avcodec/ccaption_dec: change write_char() to void as return value is unused
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-17 20:16:22 +02:00
Michael Niedermayer
af13967b64 MAINTAINERS: Add Aman Gupta for ccaption_dec
Anshul appears to have no time currently as he has not reacted to patches or mails
and Aman agreed to take over maintaince or help

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-17 20:01:38 +02:00
James Almer
d688f39dc4 cosmetics: fix some misspelled words
Signed-off-by: James Almer <jamrial@gmail.com>
2016-07-17 13:10:27 -03:00
Jörn Heusipp
f1eb6ddcb3 libavformat/libopenmpt: Fix memory leak in error path in read_header_openmpt().
Signed-off-by: Jörn Heusipp <osmanx@problemloesungsmaschine.de>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-17 16:20:46 +02:00
Michael Niedermayer
2b14204339 avcodec/dnxhddata: replace % by &
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-16 22:08:37 +02:00
James Almer
8f0434f85c fate: fix apng tests dependencies
Signed-off-by: James Almer <jamrial@gmail.com>
2016-07-16 15:29:43 -03:00
James Almer
298f556af4 configure: add missing loongson dependencies
Signed-off-by: James Almer <jamrial@gmail.com>
2016-07-16 15:18:58 -03:00
Mark Reid
ed0dc14ebb libavcodec/dnxhd: add support more dnxhr header prefixes
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-16 15:39:28 +02:00
Jan Sebechlebsky
df9cc7f0a9 avformat/tee: Use ff_format_output_open() function
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Jan Sebechlebsky <sebechlebskyjan@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-07-16 01:30:01 +02:00
Jan Sebechlebsky
6a3515a5a4 avformat/utils: Add ff_format_output_open() function
Add ff_format_output_open utility function to wrap
io_open callback of AVFormatContext structure.

Signed-off-by: Jan Sebechlebsky <sebechlebskyjan@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-07-16 01:29:44 +02:00
Jan Sebechlebsky
e144b86fa4 avformat/tee: Support flushing by writing NULL pkt
This will add support for flushing by writing NULL
packet to the tee muxer, which propagates the action
to slave muxers as expected.

Signed-off-by: Jan Sebechlebsky <sebechlebskyjan@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-07-16 01:28:11 +02:00
Jan Sebechlebsky
3d7b5ad217 avformat/tee: Use ff_stream_encode_params_copy()
Use ff_stream_encode_params_copy() to copy encoding-related
fields (parameters) of stream.

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Jan Sebechlebsky <sebechlebskyjan@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-07-16 01:15:16 +02:00
Jan Sebechlebsky
1732d89403 avformat/utils: Add ff_stream_encode_params_copy()
Signed-off-by: Jan Sebechlebsky <sebechlebskyjan@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-07-16 01:15:00 +02:00
Josh de Kock
d52dd768a3 lavf: add libopenmpt demuxer
Fixes ticket #5623

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-15 20:59:25 +02:00
Steven Liu
b701ec4152 refine the method option describe of hlsenc doc
Signed-off-by: LiuQi <liuqi@gosun.com>
Reviewed-by: Moritz Barsnick <barsnick@gmx.net>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-15 16:24:28 +02:00
Pavel Koshevoy
25ca74d314 Restore compatibility with powerpc-apple-darwin9-gcc-4.2.1
... and attempt to preserve compatibility with clang that was
introduced in 311a953c76081fca99b872629d248f9d69ebc0c3 (untested)

Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-15 13:58:54 +02:00
Clément Bœsch
77726d32a8 lavf/vplayerdec: Improve auto-detection.
Fixes the incorrect detection of 16_selma_OneFrame_QP39.yuv (gray16le
rawvideo) as vplayer format.
2016-07-15 10:36:05 +02:00
Carl Eugen Hoyos
e1023aa1dd lavf/img2dec: Also auto-detect (unusual) uncompressed pcx. 2016-07-15 10:26:27 +02:00
Carl Eugen Hoyos
040b4e139b lavf/img2: Remove ffv1-img.
The ffv1 format currently needs a container.
2016-07-15 10:25:02 +02:00
Burt P
c41718c0d0 af_hdcd: detect and report encoding errors and oddities
Count and report when a code is signaled but fails to match a known pattern.
For example try Līve - Secret Samadhi.

Signed-off-by: Burt P <pburt0@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-14 22:09:00 +02:00
Burt P
5c7457c028 af_hdcd: only hdcd_update_info() when something changes
Only call hdcd_update_info() when the control code changes
instead of every frame, so the counters are more meaningful.

Signed-off-by: Burt P <pburt0@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-14 22:09:00 +02:00
Burt P
33fc4cc7c6 af_hdcd: fewer false positives by ignoring code_counterC in HDCD detection
Signed-off-by: Burt P <pburt0@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-14 22:09:00 +02:00
Steven Liu
e29d2d9c92 avformat/segment: remove the check_bitstream from segment
because the BSF logic was re-factored into a shareable
function and both av_write_frame and av_interleaved_write_frame use it it

Signed-off-by: LiuQi <liuqi@gosun.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-14 21:33:19 +02:00
Clément Bœsch
2c138b2c9b Merge commit 'b25cd7540e7cba9868edc13817c0ce1ddef90ffc'
* commit 'b25cd7540e7cba9868edc13817c0ce1ddef90ffc':
  h264: pass a H2645NAL to slice header decoding

Merged-by: Clément Bœsch <u@pkh.me>
2016-07-14 19:41:37 +02:00
Clément Bœsch
def8506766 Merge commit '523c4c5b70994f5cd1f192b68d07cf24b292ca05'
* commit '523c4c5b70994f5cd1f192b68d07cf24b292ca05':
  fate: Add TrueMotion 2 RT tests

Merged-by: Clément Bœsch <u@pkh.me>
2016-07-14 19:37:14 +02:00
Clément Bœsch
e28d66052d Merge commit '906ffed9b1b8b06979eb656989aecacb1ae75a3a'
* commit '906ffed9b1b8b06979eb656989aecacb1ae75a3a':
  fate: Move Duck Truemotion 1 and 2 tests to vpx.mak

Merged-by: Clément Bœsch <u@pkh.me>
2016-07-14 19:35:04 +02:00
Clément Bœsch
bec7145252 lavc/truemotion2rt: mark AVPacket* as const 2016-07-14 19:29:43 +02:00
Clément Bœsch
93c13886a2 Merge commit '470cd0c5fe6337b6cb5276b3f84400999450fc1b'
* commit '470cd0c5fe6337b6cb5276b3f84400999450fc1b':
  Add TrueMotion 2.0 Real Time decoder

Merged-by: Clément Bœsch <u@pkh.me>
2016-07-14 19:27:39 +02:00
Clément Bœsch
87e9cefa91 lavc/codec_desc: move a few codecs out of the image codecs list
Also shuffle them a little to simplify next Libav merge.
2016-07-14 19:14:26 +02:00
Clément Bœsch
9e6bb3b6ee fate/video: use FATE_VIDEO instead of FATE_SAMPLES_AVCONV
Consistent with the rest of the rules
2016-07-14 19:01:51 +02:00
Clément Bœsch
cd02df5256 Merge commit 'cc58656aca95b5ab517989a9524b9a2b1c5653cf'
* commit 'cc58656aca95b5ab517989a9524b9a2b1c5653cf':
  fate: Add tests for MagicYUV

Merged-by: Clément Bœsch <u@pkh.me>
2016-07-14 18:57:37 +02:00
Clément Bœsch
c3e2e842fa Merge commit 'd78fd2fa21cde28465e40dd0be4446b1387d22a6'
* commit 'd78fd2fa21cde28465e40dd0be4446b1387d22a6':
  Add MagicYUV decoder

Changes observed from Libav:
- many cosmetics (function renames/move, spacing, line breaks)
- MagicYUVContext.slices_size is now unsigned
- use of pixdesc (include fixed in FFmpeg)
- mention of "Lossless" in the long name dropped (also removed from
  general.texi in FFmpeg)
- addition of the FF_CODEC_CAP_INIT_THREADSAFE caps
- use of qsort() instead of AV_QSORT() (NOT MERGED)
- use of AVCodecContext.{width,height} instead of AVCodecContext.coded_{width,height} (NOT MERGED)

See also 77f9c4b7aa9eb793b3019025e177245896821816

Merged-by: Clément Bœsch <u@pkh.me>
2016-07-14 18:52:20 +02:00
Michael Niedermayer
a2c90d5f98 avformat/mux: Apply auto bsfs in av_write_frame() too
Reviewed-by: Steven Liu <lingjiujianke@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-14 17:51:57 +02:00
Michael Niedermayer
de9674c5ea avformat/mux: Factor do_packet_auto_bsf() out
Reviewed-by: Steven Liu <lingjiujianke@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-14 17:51:57 +02:00
Matthieu Bouron
6c8942cdfb lavf/mov: fix stream extradata_size allocation
Fixes CID 1363963.
2016-07-14 09:18:39 +02:00
Rostislav Pehlivanov
f41e37b84f dirac_vlc: prevent shifting a 0 by 64 bits when zeroing residue
Adding a check for bits == 0 would still make Coverity misdetect this,
so just revert to the normal way of setting the residue to 0.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-07-14 01:29:34 +01:00
Rostislav Pehlivanov
c4adcff976 dirac_vlc: add a SET_RESIDUE macro and fix recent regression
Can also be used in future cleanups since 99% of the time the leftover
appending will just append to an already empty residue.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-07-14 01:00:59 +01:00
Rostislav Pehlivanov
000eb01a7d diracdec: fix unchecked byte length
Also drops the start variable since it's redundant.
Found by Coverity, fixes CID1363964

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-07-13 23:53:05 +01:00
Rostislav Pehlivanov
b2b12b2d4a diracdec: fix maximum quantization index checks
Found by Coverity, fixes CID1363961 and CID1363962

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-07-13 23:40:06 +01:00
Rostislav Pehlivanov
9c0aba434e dirac_vlc: remove redundant macro declaration
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-07-13 23:38:10 +01:00
Rostislav Pehlivanov
e24c31b656 dirac_vlc: fix undefined shifts
Shifting by more than 63 bits is undefined behavior, athough any
compiler not returning 0 after shifting by any amount would be insane.

Found by Coverity, fixes CID1363959 and CID1363960

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-07-13 23:35:03 +01:00
Michael Niedermayer
e879819e7b avfilter/vf_uspp: Check for encoding failure
Fixes CID1363015

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-13 20:16:27 +02:00
Matthieu Bouron
57fa9608e4 Merge commit 'ec9f04423b82afa323e90f5b2c677be74302c1fd'
* commit 'ec9f04423b82afa323e90f5b2c677be74302c1fd':
  ffv1: Error out on unsupported format

This commit is a noop, the feature is already present in FFmpeg.

Merged-by: Matthieu Bouron <matthieu.bouron@stupeflix.com>
2016-07-13 17:40:56 +02:00
James Almer
fde9c5e424 fate: fix fate-vp8 dependencies
Fix the demuxer dependencies in some of the tests and remove the vp8 decoder
dependency for the stream copy tests

Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-07-13 12:33:56 -03:00
Matthieu Bouron
a91c330a29 Merge commit '105998fb5ca3c343f5c8cb39ce3197f87a5e4d36'
* commit '105998fb5ca3c343f5c8cb39ce3197f87a5e4d36':
  checkasm: Add tests for h264 idct

Merged-by: Matthieu Bouron <matthieu.bouron@stupeflix.com>
2016-07-13 17:22:29 +02:00
Matthieu Bouron
495a40cecb tests/checkasm: reduce cosmetic diff with libav
Chunk was not merged in ca5ec2bf51d8c4f8bb0a829d0a65c70c968888a3.
2016-07-13 17:11:58 +02:00
Matthieu Bouron
354336490d Merge commit '846a3e78a535f05ee61bb23a160f3378f041f751'
* commit '846a3e78a535f05ee61bb23a160f3378f041f751':
  mov: Support prores with multiple stsd

Merged-by: Matthieu Bouron <matthieu.bouron@stupeflix.com>
2016-07-13 16:56:20 +02:00
Matthieu Bouron
3c058f5701 Merge commit '76729970049fe95659346503f7401a5d869f9959'
* commit '76729970049fe95659346503f7401a5d869f9959':
  mov: Implement support for multiple sample description tables

Notes:
  * The sc->stsc_data[index].id checks have been moved from the mov_read_stsc
  to mov_read_packet before the value is used in mov_change_extradata to
  not break playback of samples with broken stsc entries (see sample of
  ticket #1918).

  * sc->stsc_index is now checked against sc->stsc_count - 1 before it
  is incremented so it remains lesser than sc->stsc_count. Fixes a crash
  with:

  ./ffmpeg -i matrixbench_mpeg2.mpg -t 1 -frag_duration 200k test.mov
  ./ffprobe -show_packets test.mov

Merged-by: Matthieu Bouron <matthieu.bouron@stupeflix.com>
2016-07-13 16:34:54 +02:00
Martin Vignali
f2b08a0702 libavcodec/exr : cosmetics, rename variable in b44_uncompress func
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-13 14:56:27 +02:00
Vignesh Venkatasubramanian
acca56d962 libvpx: Enable vp9 alpha encoding
Chrome canary now supports decoding of VP9 streams with alpha
channel [1]. Add support to ffmpeg for creating such files.

[1] https://codereview.chromium.org/2096813002/

Reviewed-by: James Zern <jzern@google.com>
Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
2016-07-12 23:19:50 -07:00
Burt P
7af44ce2f7 af_hdcd: don't log full HDCD stats if HDCD was not detected
Signed-off-by: Burt P <pburt0@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-12 22:55:04 +02:00
Burt P
0d8caeb41e af_hdcd: integrate() renamed hdcd_integrate() to be consistent with the other function names
Signed-off-by: Burt P <pburt0@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-12 21:39:01 +02:00
Michael Niedermayer
2408f92678 avcodec/dirac_vlc: Fix avutil.h include
Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-12 19:11:40 +02:00
James Almer
4acdbb1c6c avformat/oggenc: always use the time base stored in the theora header
Fixes ticket #5704

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-07-12 11:24:30 -03:00
Michael Niedermayer
9157ac2f9c avcodec/dirac_vlc: Fix mixed declaration and statements
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-12 13:30:52 +02:00
Rostislav Pehlivanov
a337cb7361 diracdec: fix #coeffs -> byte conversion
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-07-12 10:44:24 +01:00
Rostislav Pehlivanov
df1dc52195 diracdsp_init: add missing ARCH_X86_64 check
That SIMD is still x86_64 only for now.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-07-12 00:39:12 +01:00
Rostislav Pehlivanov
2094562923 diracdec: do not memset the entire coefficient buffer for HQ pictures
This is now handled by the slice decoding function.

Signed-off-by: Rostislav Pehlivanov <rpehlivanov@obe.tv>
2016-07-11 23:41:32 +01:00
Rostislav Pehlivanov
dcad4677d6 diracdec: do not allocate and free slice parameters every frame
Signed-off-by: Rostislav Pehlivanov <rpehlivanov@obe.tv>
2016-07-11 23:40:57 +01:00
Rostislav Pehlivanov
0eb0f93109 diracdec: implement a LUT-based Golomb code parser
Still much left to optimize, but it provides a significant performance
improvement - 10% for 300Mbps (1080p30), 25% for 1.5Gbps (4k 60fps) in
comparison with the default implementation.

Signed-off-by: Rostislav Pehlivanov <rpehlivanov@obe.tv>
2016-07-11 23:40:28 +01:00
Rostislav Pehlivanov
c43485f707 diracdec: rewrite HQ slice decoding
Now coefficients are written to a buffer and are then dequantized by the
new SIMD dequantization functions. For the lower bands without enough
coefficients to fill a register (and hence they overwrite) the C version
of the dequantization function is used.

The buffer is per-thread and will be realloc'd if anything changes.
This prevents regressions and having to limit slice size.

Signed-off-by: Rostislav Pehlivanov <rpehlivanov@obe.tv>
2016-07-11 23:38:45 +01:00
Rostislav Pehlivanov
09d89d9406 diractab: expose the maximum quantization index as a macro
Prevents having to have random magic values in the decoder and a
separate macro in the encoder.

Signed-off-by: Rostislav Pehlivanov <rpehlivanov@obe.tv>
2016-07-11 23:38:01 +01:00
Rostislav Pehlivanov
b9c6c5f453 diracdec: decode HQ profile slices in rows
Siginificantly improves the performance.

Signed-off-by: Rostislav Pehlivanov <rpehlivanov@obe.tv>
2016-07-11 23:34:54 +01:00
Rostislav Pehlivanov
17caae7202 diracdec: simplify golomb parsing and dequantization
In preparation for the following commits, this commit simplifies the
coefficient parsing and dequantization function. It was needlessly
inlined without much performance gain.

Signed-off-by: Rostislav Pehlivanov <rpehlivanov@obe.tv>
2016-07-11 23:34:25 +01:00
Rostislav Pehlivanov
bd61f3c6bf diracdsp: add SIMD for the 10 bit version of put_signed_rect_clamped
Signed-off-by: Rostislav Pehlivanov <rpehlivanov@obe.tv>
2016-07-11 23:33:24 +01:00
Rostislav Pehlivanov
80721cc1ff diracdsp: add dequantization SIMD
Currently unused, to be used in the following commits.

Signed-off-by: Rostislav Pehlivanov <rpehlivanov@obe.tv>
2016-07-11 23:30:11 +01:00
Carl Eugen Hoyos
244d22452c lavc/Makefile: Fix standalone compilation of the lame encoder.
Also fix a possible issue with the mpegaudio audiotoolbox decoders.
Fixes ticket #5703.
2016-07-11 23:21:19 +02:00
James Almer
f60b54902f avformat/oggenc: make flac the default for oga muxer
This allows simpler selection of flac in ogg from the command line,
while following the RFC 5334 recommendation[1] for the oga extension.

[1] https://tools.ietf.org/html/rfc5334#section-10.3

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-07-11 13:08:19 -03:00
Ronald S. Bultje
70d418c7e6 Revert "PPC64: Add versions of functions in libswscale/input.c optimized for POWER8 VSX SIMD."
This reverts commit 1df908f33f658979b32599489ca6f1a39821013c. The expected
performance improvements are essentially non-existent.
2016-07-11 10:15:05 -04:00
Ronald S. Bultje
f0a2b6249b vp9: add 16x16 idct avx2 (8-bit).
checkasm --bench, 10k runs, for *_add_${bpc}_${sub_idct}_${opt}, shows
that it's about 1.65x as fast as the AVX version for the full IDCT, and
similar speedups for the sub-IDCTs:

nop: 24.6
vp9_inv_dct_dct_16x16_add_8_1_c: 6444.8
vp9_inv_dct_dct_16x16_add_8_1_sse2: 638.6
vp9_inv_dct_dct_16x16_add_8_1_ssse3: 484.4
vp9_inv_dct_dct_16x16_add_8_1_avx: 661.2
vp9_inv_dct_dct_16x16_add_8_1_avx2: 311.5
vp9_inv_dct_dct_16x16_add_8_2_c: 6665.7
vp9_inv_dct_dct_16x16_add_8_2_sse2: 646.9
vp9_inv_dct_dct_16x16_add_8_2_ssse3: 455.2
vp9_inv_dct_dct_16x16_add_8_2_avx: 521.9
vp9_inv_dct_dct_16x16_add_8_2_avx2: 304.3
vp9_inv_dct_dct_16x16_add_8_4_c: 7022.7
vp9_inv_dct_dct_16x16_add_8_4_sse2: 647.4
vp9_inv_dct_dct_16x16_add_8_4_ssse3: 467.1
vp9_inv_dct_dct_16x16_add_8_4_avx: 446.1
vp9_inv_dct_dct_16x16_add_8_4_avx2: 297.0
vp9_inv_dct_dct_16x16_add_8_8_c: 6800.4
vp9_inv_dct_dct_16x16_add_8_8_sse2: 598.6
vp9_inv_dct_dct_16x16_add_8_8_ssse3: 465.7
vp9_inv_dct_dct_16x16_add_8_8_avx: 440.9
vp9_inv_dct_dct_16x16_add_8_8_avx2: 290.2
vp9_inv_dct_dct_16x16_add_8_16_c: 6626.6
vp9_inv_dct_dct_16x16_add_8_16_sse2: 599.5
vp9_inv_dct_dct_16x16_add_8_16_ssse3: 475.0
vp9_inv_dct_dct_16x16_add_8_16_avx: 469.9
vp9_inv_dct_dct_16x16_add_8_16_avx2: 286.4
2016-07-11 10:14:58 -04:00
Michael Niedermayer
a2550e7d2e avcodec/iff: Check that there are enough bytes in dgb before reading
Fixes CID1361959

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-11 14:48:57 +02:00
Michael Niedermayer
9585c50942 avcodec/iff: remove useless ()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-11 14:44:27 +02:00
Michael Niedermayer
92139c1bd1 avcodec/mediacodecdec_h264: Fix occured typo
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-11 13:00:04 +02:00
Michael Niedermayer
37c658b56b doc/muxers: Fix Thisimproves typo
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-11 12:55:29 +02:00
Steven Liu
b45a976ed4 add split_by_time flag for support splite mpegts segment at non-keyframe
support split hls segment at duration set by hls_time

Signed-off-by: LiuQi <liuqi@gosun.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-11 12:20:40 +02:00
Marton Balint
593987810e avutil/parseutils: dont assume standard time when parsing a timestamp
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-07-11 01:06:23 +02:00
Michael Niedermayer
58dc8bbca4 avcodec/h264_refs: Assert that op is 0-2
Coverity fails to realize this

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-10 21:23:11 +02:00
Sami Hult
d4c8e93190 Changed metadata print option to accept general urls
This is an - once again - updated patch, that uses avio_write instead
of avio_puts to stream clean text output without null characters. Works
now for me as intended.

Changes metadata filter to accept general urls as file argument without
breaking former behaviour. As a byproduct, it also allows for writing to
file "-" if specified as "file:-".

Example:

ffmpeg -i test.wav -filter_complex "silencedetect=n=-40dB:d=0.1,ametadata=mode=print:file='pipe\:4'" -f null

Signed-off-by: Sami Hult <sami.hult@gmail.com>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-10 00:36:49 +02:00
Michael Niedermayer
e98ab799be avcodec/vaapi_encode_h264: Use av_clip_uintp2()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-10 00:36:20 +02:00
James Almer
fd6dbc5385 Revert "configure: Enable GCC vectorization on ≥4.9 on x86"
This reverts commit cb8646af24bd8e9627cc5e1c62b049a00fe0b07b.

This change has brough more issues than benefits, between compilation
time failures depending on flags used and code miscompilation causing
runtime crashes.

See the "[PATCH 2/2] configure: Enable GCC vectorization on ≥4.9"
thread in the ffmpeg-devel mailing list for the relevant discussion.
2016-07-09 16:00:06 -03:00
Clément Bœsch
3cdd5f4b7c Revert "Merge commit '187d719760bd130f848194ec4a6bd476341914bb'"
This reverts commit c67aa7f287e791b2c02c0c6471336c8adc88020e, reversing
changes made to 46bd0e8e0dfb4b295e8fbe6854904eccb0cb5c82.

The merge should have been a noop as the support was added in
601c2388549ff395bc99383029e92c2219152af0
2016-07-09 15:56:04 +02:00
Clément Bœsch
c67aa7f287 Merge commit '187d719760bd130f848194ec4a6bd476341914bb'
* commit '187d719760bd130f848194ec4a6bd476341914bb':
  h264: Support AV_PKT_DATA_NEW_EXTRADATA

Merged-by: Clément Bœsch <u@pkh.me>
2016-07-09 15:03:27 +02:00
Clément Bœsch
46bd0e8e0d Merge commit '75872d77d215d64b8d9430df23c6c74ff921227b'
* commit '75872d77d215d64b8d9430df23c6c74ff921227b':
  lavc: Document AV_PKT_DATA_NEW_EXTRADATA

Merged-by: Clément Bœsch <u@pkh.me>
2016-07-09 14:55:39 +02:00
Clément Bœsch
84ecbbfb27 Merge commit 'f1a9eee41c4b5ea35db9ff0088ce4e6f1e187f2c'
* commit 'f1a9eee41c4b5ea35db9ff0088ce4e6f1e187f2c':
  x86: Add missing movsxd for the int stride parameter

Merged-by: Clément Bœsch <u@pkh.me>
2016-07-09 14:52:23 +02:00
Clément Bœsch
1ad3ffadd9 Merge commit 'a2ddfadc2d9e91cf70aa7430a7340b418bdb5b42'
* commit 'a2ddfadc2d9e91cf70aa7430a7340b418bdb5b42':
  avdevice: Ignore timefilter test program

This commit is a noop, /timefilter entry was added in the original merge
(5d48e4eafa6c4559683892b8638d10508125f3cf)

Merged-by: Clément Bœsch <u@pkh.me>
2016-07-09 14:49:32 +02:00
Clément Bœsch
3536493082 Merge commit 'd6c2c2796d8885e99fc90793cdd7937826f82fab'
* commit 'd6c2c2796d8885e99fc90793cdd7937826f82fab':
  LICENSE: Fix silly typo

This commit is a noop, the typo disappeared when the whole paragraph was
reworked in 484aec4da3f729fca9d9f84a6b895a8f882554db.

Merged-by: Clément Bœsch <u@pkh.me>
2016-07-09 14:48:24 +02:00
Clément Bœsch
a7ce5b25c0 Merge commit '84b2d3fb68caf71cff4b80b44ff865d7ae2531ce'
* commit '84b2d3fb68caf71cff4b80b44ff865d7ae2531ce':
  h264: Drop unused function check_opcodes()

Merged-by: Clément Bœsch <u@pkh.me>
2016-07-09 14:45:12 +02:00
Clément Bœsch
415072605b Merge commit '05a4bacbf7ece618553d339afe1d0b57bc87aea8'
* commit '05a4bacbf7ece618553d339afe1d0b57bc87aea8':
  avpacket: Error out when creating 0-sized side data

This commit is a noop, see 5a633ec2dd453c67ff23819c28d98e6b09c47295

AV_PKT_DATA_METADATA_UPDATE can be zero sized in order to clear old
meta.

Note: maybe we could add a start or end marker.

Merged-by: Clément Bœsch <u@pkh.me>
2016-07-09 14:43:46 +02:00
Clément Bœsch
1cfa350429 Merge commit 'bcc07e2576cb723007bea1238afd019ae2d1b005'
* commit 'bcc07e2576cb723007bea1238afd019ae2d1b005':
  pixdesc: Use C99 array to list color properties names

Merged-by: Clément Bœsch <u@pkh.me>
2016-07-09 14:21:01 +02:00
Clément Bœsch
b4abf0e396 Merge commit 'a833ff68f6bf9dc72c3ef0ddf830ebed743c0703'
* commit 'a833ff68f6bf9dc72c3ef0ddf830ebed743c0703':
  h264: Fix decoding delay for Intra only streams

Merged-by: Clément Bœsch <u@pkh.me>
2016-07-09 14:06:11 +02:00
Clément Bœsch
775389fc59 Merge commit '90f469aa2b98a868cdbe35170c24272de10e1341'
* commit '90f469aa2b98a868cdbe35170c24272de10e1341':
  lavc: add H.264 MVC profiles

Merged-by: Clément Bœsch <u@pkh.me>
2016-07-09 14:01:28 +02:00
Clément Bœsch
f512e4a390 Merge commit '61f168ae348f94f39e7afc6971654455a5de0e4d'
* commit '61f168ae348f94f39e7afc6971654455a5de0e4d':
  h264: factor out setting the parameter sets for a frame

Michael's changes on top of the merge undo parts of the original diff
that are not factorization:

"The call point is left where it was before. Such a change should be in
a separate commit and has multiple issues, one being null pointer
dereferences the other is that some safety checks would become
conditional.

I tried to split the PPS init between the new and old functions
similarly to the SPS code."

Merged-by: Clément Bœsch <u@pkh.me>
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-09 13:57:43 +02:00
Matthieu Bouron
0f2654c9a3 lavc: add mediacodec hwaccel support 2016-07-08 17:02:37 +02:00
Hendrik Leppkes
83a940e7fb h2645_parse: don't overread AnnexB NALs within an avc stream
We know the maximum size of an AnnexB NAL, signaling it as the maximum
NAL size allows ff_h2645_extract_rbsp to determine the correct size.
2016-07-08 15:20:20 +02:00
Hendrik Leppkes
c3e9b098e1 h2645_parse: only read avc length code at the correct position
Reading it from any other position would result in a wrong size being
read, instead fallback to the re-sync mechanic in the else clause.
2016-07-08 15:20:16 +02:00
Michael Niedermayer
b450b82514 avcodec/exr: Fix mixed declarations and statements
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-07 14:53:01 +02:00
Martin Vignali
50747d6b1f libavcodec/exr : indent gray support patch
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-06 23:53:28 +02:00
Martin Vignali
7ebd13fc8b libavodec/exr : add support for Y and YA file (ticket #5621)
a gray channel in exr, is named Y
we admit that the file need to be interpreted as gray
only if no other channel match (except alpha)

to manage RGB and Y in the color conversion part of decode_block,
the color processing is now made with a for loop.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-06 23:52:49 +02:00
Burt P
ba69a81019 libavfilter/af_hdcd.c: Collect HDCD stats and report
The new HDCD filter really does nothing to show that it is working or
that HDCD control information was even detected in the stream. This
patch collects information about the decode, like which features were
used, and reports it to the user at the end.

Also,
* Fixes low-level gain adjustment
* Updates the documentation

Signed-off-by: Burt P <pburt0@gmail.com>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-06 22:54:47 +02:00
Carl Eugen Hoyos
3e4357eb82 lavc/libx265: Support gray encoding.
Gray encoding crashes with libx265 <= 84, so check the library version.
2016-07-06 18:56:19 +02:00
Matthieu Bouron
88d9c30cf5 lavc/mediacodecdec_h264: properly convert extradata to annex-b
H264ParamSets has its SPS/PPS stored raw (SODB) and needs to be
converted to NAL units before sending them to MediaCodec.

This patch adds the missing convertion of the SPS/PPS from SOBP to RBSP
which makes the resulting NAL units correct.

Fixes codec initialization on Nexus 4 and Nexus 7.
2016-07-06 15:10:16 +02:00
Michael Niedermayer
55ef890b29 avcodec/iff: Print error for cols/bpp/bytes being bad in decode_delta_j()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-06 11:20:41 +02:00
Michael Niedermayer
fcdbbbd85a avcodec/iff: decode_delta_j: Check that the number of bytes that will be read are available
This should avoid long loops
related to CID1361958

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-06 11:19:41 +02:00
Petru Rares Sincraian
3f5b7a2d73 fate: add test for asetrate
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-06 01:20:21 +02:00
Carl Eugen Hoyos
420ba222c6 lavc/mjpeg_parser: Allow jpegls parsing.
Fixes ticket #5691.
2016-07-05 23:48:22 +02:00
James Almer
645489cf90 x86/dcadsp: optimize lfe_fir0_float_fma3 on x86_32
About 10% faster.

Signed-off-by: James Almer <jamrial@gmail.com>
2016-07-05 17:48:20 -03:00
smitbose
d915b6e592 Added Quadrox format
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-05 02:31:35 +02:00
Martin Vignali
ce466d0a15 fate/apng : add test for apng decoding
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-05 01:48:00 +02:00
Martin Vignali
9cc114fa54 fate/png : add test for rgba64 and interleaved rgb
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-05 01:48:00 +02:00
Paul B Mahol
de30863fff avfilter/vf_rotate: add >8 bit depth support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-07-04 20:39:16 +02:00
Hendrik Leppkes
1ad4471526 configure: disable the new optimizer in Visual Studio 2015 Update 3
Visual Studio 2015 Update 3 introduced a new SSA optimizer, however
it unfortunately causes miscompilations. Until it is fixed, the new
optimizations are disabled and should be re-checked on subsequent
compiler releases.

Fixes recent FATE failure of fate-lavf-pam on VS2015.
2016-07-03 23:37:44 +02:00
James Almer
293484fa5e avcodec: add missing xmm/neon clobber test wrappers for the new decode API
Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-07-03 18:04:30 -03:00
Clément Bœsch
64c619369b lavc/h264_slice: use sps directly when checking for invalid 8x8 inference 2016-07-03 15:11:40 +02:00
Carl Eugen Hoyos
d5edb6c048 lavf/aiffdec: Support QDMC demuxing. 2016-07-03 04:37:48 +02:00
Michael Graczyk
37941878f1 libopusenc: Add channel mapping family argument
The default value of -1 indicates that ffmpeg should determine the channel
mapping automatically, which was the behavior before this commit.

Unless the -mapping_family argument is provided, behavior is unchanged.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-02 23:31:16 +02:00
Michael Graczyk
a1e3c7cf0f libopusenc: Refactor to simplify forthcoming mapping_family parameter
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-02 23:31:10 +02:00
Michael Niedermayer
fb6b6b5166 tests/checkasm/pixblockdsp: Test 8 byte aligned positions
The code is documented as to require 8byte alignment

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-02 22:21:53 +02:00
Michael Niedermayer
07f5e75a47 tests/fate: Add test for ticket 3386 ([H264] [Regression] illegal short term buffer state detected)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-02 21:37:48 +02:00
Michael Niedermayer
febc862b53 avcodec/h264_parser: Set sps/pps_ref
Fixes use of freed memory
Should fix valgrind failures of fate-h264-skip-nointra

Found-by: logan
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-02 03:07:23 +02:00
James Almer
77eb05a2f1 avcodec/h264_slice: Only call ff_h264_flush_change() on initialized contexts
Changed by committer to ensure context_initialized is reset
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-01 21:39:09 +02:00
Martin Vignali
92bf87db29 fate/webp : add test for lossless picture to improve cover
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-01 20:58:51 +02:00
Clément Bœsch
5565e27111 Merge commit '6e92181bf836f48627a4733b6fd240a99fd36365'
* commit '6e92181bf836f48627a4733b6fd240a99fd36365':
  h264: pass just the PPS to get_chroma_qp()

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-07-01 14:23:38 +02:00
Clément Bœsch
2021326f99 Merge commit 'd1f539c97e04e7cebecaf6916c5064f243d39fcf'
* commit 'd1f539c97e04e7cebecaf6916c5064f243d39fcf':
  h264: merge the two reinit blocks in slice_header_parse()

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-07-01 14:19:09 +02:00
Clément Bœsch
99b37f53a1 Merge commit '3fba16ecd978d5bed338b8da643c3435e62b3437'
* commit '3fba16ecd978d5bed338b8da643c3435e62b3437':
  h264: factor starting a new field out of parsing the slice header

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-07-01 14:02:00 +02:00
Michael Niedermayer
2a8dadb38f doc/APIchanges: fill in missing git hash
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-01 02:42:03 +02:00
Michael Niedermayer
86fec7a7e8 doc/APIchanges: document the lavu/lavf field moves
Based-on: patch by James Almer
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-01 02:11:47 +02:00
Michael Niedermayer
c1c7e0abb0 avformat/avformat: Move new field to the end of AVStream
This fixes part of Ticket5676
This fixes kodi, mpv, chromium and ffplay build against 3.0 and linked to 3.1

This is a similar ABI fix to 1eb43af1a0e542ad83dcbf327197785d815fc42d

Approved-by: BBB
Approved-by: jamrial
Approved-by: BtbN
Approved-by: nevcairiel
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-30 17:43:01 +02:00
Hendrik Leppkes
c2e13d2ecd avformat/utils: update deprecated AVStream->codec when the context is updated
This ensures the AVStream->codec entry is kept in sync when new streams are
discovered mid-playback or changes to the context occur from other sources.

Fixes trac 5678.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-30 17:43:01 +02:00
Michael Niedermayer
042fb69deb avutil/frame: Move new field to the end of AVFrame
This fixes part of Ticket5676
This fixes kodi, mpv, chromium and ffplay build against 3.0 and linked to 3.1

This is a similar ABI fix to 1eb43af1a0e542ad83dcbf327197785d815fc42d

Approved-by: BBB
Approved-by: jamrial
Approved-by: BtbN
Approved-by: nevcairiel
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-30 17:43:01 +02:00
Martin Vignali
d9e1e08133 libavcodec/exr : fix decoding piz float file.
fix ticket #5674

the size of data to process in piz_uncompress, is now calc
using the pixel type of each channel.

the data reorganization, alos take care about the size of
each channel

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-30 12:16:52 +02:00
Dan Parrot
1df908f33f PPC64: Add versions of functions in libswscale/input.c optimized for POWER8 VSX SIMD.
This patch addresses Trac ticket #5570. The optimized functions are in file
libswscale/ppc/input_vsx.c. Each optimized function name is a concatenation of the
corresponding name in libswscale/input.c with suffix _vsx.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-30 12:02:08 +02:00
Vadim Kalinsky
e370aad67d avformat/mov: Skip non-key frames if AVDISCARD_NONKEY is set.
Github: Closes #222
2016-06-30 12:00:13 +02:00
Clément Bœsch
f48aea66dd Merge commit 'bec993381cfec72051b0d9f12ac9d9bb9c750983'
* commit 'bec993381cfec72051b0d9f12ac9d9bb9c750983':
  h264: postpone generating the implicit MMCOs

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-30 10:24:03 +02:00
Clément Bœsch
d407e76c42 Merge commit '2d410ebbaa1e760d6837cb434a6d1d4c3c6f0d85'
* commit '2d410ebbaa1e760d6837cb434a6d1d4c3c6f0d85':
  h264: decode the MMCOs into per-slice contexts

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-30 10:15:51 +02:00
Benoit Fouet
879330c561 h264: make H264ParamSets sps const 2016-06-30 09:24:39 +02:00
Benoit Fouet
4cc1ce4a91 h264: straighten dimensions check ff_h264_decode_seq_parameter_set
The MBS only flag was not taken into account when checking macroblock dimensions.
Also removes the unneeded check in init_dimensions for slices.
2016-06-30 09:24:39 +02:00
Benoit Fouet
3e8cda1eb1 h264_ps: change decode_scaling_matrices so that it takes const {s,p}ps
In order to be able to make SPS const in H264ParamSets,
modify decode_scaling_matrices so that it returns if the scaling
matrix are present in the SPS, instead of altering the input SPS
structure.
2016-06-30 09:24:39 +02:00
Clément Bœsch
57d30fde9e Merge commit '39ab2ea53121b9976a619cd545fbd3464b908696'
* commit '39ab2ea53121b9976a619cd545fbd3464b908696':
  h264: rename mmco_index to nb_mmco

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-29 20:07:52 +02:00
Clément Bœsch
c28aecc56a Merge commit '7ab5d577a9affe3397c08b032f983f9bf7101865'
* commit '7ab5d577a9affe3397c08b032f983f9bf7101865':
  h264: move initializing the slice start out of h264_slice_header_parse()

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-29 20:04:23 +02:00
Petru Rares Sincraian
2b1995e3ee fate: add test for asetnsamples
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-29 19:32:37 +02:00
Timo Rothenpieler
1a75145559 lavfi: Move new field to the end of AVFilterContext
This fixes an accidental ABI break introduced at 8688d3a.
2016-06-29 18:23:28 +02:00
Clément Bœsch
4890b0851c Merge commit '4cec43a9eeb58eb9e581a2d9d25f78e5bfbb0960'
* commit '4cec43a9eeb58eb9e581a2d9d25f78e5bfbb0960':
  h264: move calculating the POC out of h264_slice_header_parse()

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-29 17:59:57 +02:00
Clément Bœsch
9ab6f01839 Merge commit '6dd996c7c81575a1e4969987ab175a6df7beab3d'
* commit '6dd996c7c81575a1e4969987ab175a6df7beab3d':
  h264: move building the reference list out of h264_slice_header_parse()

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-29 17:42:06 +02:00
Clément Bœsch
3b95452ca8 Merge commit '0bad254300356005af4aef00a706bf2e8eee96bc'
* commit '0bad254300356005af4aef00a706bf2e8eee96bc':
  h264: move initing the implicit pred weight table out of h264_slice_header_parse()

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-29 17:39:33 +02:00
Clément Bœsch
2aff557c6a Merge commit 'ed9a20ebe4a89de119ea97bdccf688ece8c6648c' into merge-libav-new
* commit 'ed9a20ebe4a89de119ea97bdccf688ece8c6648c':
  h264: split reading the ref list modifications and actually building the ref list

ref_modifications.val are read as u32 instead of u8 in FFmpeg.

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-29 17:32:05 +02:00
Michael Niedermayer
89cccfc905 fate/h264: add test for skip-nointra and skip-nokey 2016-06-29 16:22:37 +02:00
Clément Bœsch
a2901472fe lavc/h264_slice: properly forward positive "error" code
Fixes ./ffmpeg -skip_frame nokey -i h264/h264_intra_first-small.ts

Regression since c54e2740e1f4a8fb7fa4e521755bf4158c4cda51
2016-06-29 16:16:26 +02:00
Clément Bœsch
cdecb39fca Merge commit 'fa57059079190242517701120cfdccad93c866da'
* commit 'fa57059079190242517701120cfdccad93c866da':
  h264: move initialising the implicit pred weight table for MBAFF

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-29 15:29:38 +02:00
Clément Bœsch
527a579327 Merge commit '7b50d60442af8d9527e9da46818011fe15a5265a'
* commit '7b50d60442af8d9527e9da46818011fe15a5265a':
  h264: call ff_h264_fill_mbaff_ref_list() when constructing the normal ref list

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-29 15:17:16 +02:00
Clément Bœsch
d7a2451688 Merge commit 'b16e9b9ac9db449cae2242767dd3c3fc309357c4'
* commit 'b16e9b9ac9db449cae2242767dd3c3fc309357c4':
  h264: move initialising the explicit pred weight table for MBAFF

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-29 15:03:12 +02:00
Clément Bœsch
7f607120d9 Merge commit 'b93c0aed79f7f942e0dec26e53c147f297ce2ff6'
* commit 'b93c0aed79f7f942e0dec26e53c147f297ce2ff6':
  h264: drop an outdated comment

This commit is a noop, see 237d31e0b98b95eef687e612177ca3ea24b709fc

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-29 15:00:01 +02:00
Clément Bœsch
3c5a3882f9 Merge commit '77a1e2c5f8f8250dfacff24b993eb473260ed13e'
* commit '77a1e2c5f8f8250dfacff24b993eb473260ed13e':
  h264: move direct mode inits out of h264_slice_header_parse()

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-29 14:58:31 +02:00
Clément Bœsch
c54e2740e1 Merge commit 'd06e4d8aab9c679b6aea2591d2a9b382df9e5f74'
* commit 'd06e4d8aab9c679b6aea2591d2a9b382df9e5f74':
  h264: start splitting decode_slice_header()

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-29 14:55:02 +02:00
Michael Niedermayer
0c50f6905f avcodec/h264: Remove au_pps_id
This should not be needed anymore and simplifies the next merge

Requested-by: Clément Bœsch <u@pkh.me>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-29 14:49:15 +02:00
Michael Niedermayer
e6e8750e94 avcodec/h264: Remove current_sps_id
This should not be needed anymore and simplifies the next merge

Requested-by: Clément Bœsch <u@pkh.me>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-29 14:49:15 +02:00
Timo Rothenpieler
1eb43af1a0 lavfi: Move new field to the end of AVFilterLink
Even though this is not part of the public API, some external
applications access fields after it, thus breaking after updating from
ffmpeg 3.0 or earlier.
Since it is not public, it can be freely moved to the end to avoid
that problem in the future.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-29 12:53:07 +02:00
Timo Rothenpieler
1bd9fb6de5 ffplay: Fix usage of private lavfi API
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-29 12:53:01 +02:00
Clément Bœsch
6c841e03ce Merge commit '2940e196c5e439d9869f8c02a49a318d0847453c'
* commit '2940e196c5e439d9869f8c02a49a318d0847453c':
  vaapi_h265: cu_qp_delta should not be used in constant-QP mode

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-29 12:03:47 +02:00
Clément Bœsch
4b90413cb2 Merge commit '02fa1ad9266f9b1ea11565ac2f93f45853e351e8'
* commit '02fa1ad9266f9b1ea11565ac2f93f45853e351e8':
  vaapi_h264: Add source version identifier as unregistered SEI

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-29 12:03:40 +02:00
Clément Bœsch
cc3de390b7 Merge commit '48e2967cd50c2e1a2a539fd697d20ead2c5c4cc8'
* commit '48e2967cd50c2e1a2a539fd697d20ead2c5c4cc8':
  vaapi_h264: Add support for SEI messages

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-29 12:03:28 +02:00
Clément Bœsch
19fe328f12 Merge commit '19d7667a81499d4357ec8e0851701e17c238e584'
* commit '19d7667a81499d4357ec8e0851701e17c238e584':
  vaapi_encode: Add support for writing arbitrary additional packed headers

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-29 12:03:20 +02:00
Clément Bœsch
3e71e34333 Merge commit '081961f819c0b16c7a860d7da7d39f1fd91bd2f0'
* commit '081961f819c0b16c7a860d7da7d39f1fd91bd2f0':
  vaapi_h264: Add support for VUI parameters

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-29 12:03:06 +02:00
Clément Bœsch
fc0eafb7f8 Merge commit '2e4a7bd553ec7c805b4a3b90733405a14ba69072'
* commit '2e4a7bd553ec7c805b4a3b90733405a14ba69072':
  h264: drop unused H264Context.gb

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-29 11:56:57 +02:00
Clément Bœsch
bef74ef367 Merge commit '4f81f8dba735c212efae077c4fec8ad4fe53b352'
* commit '4f81f8dba735c212efae077c4fec8ad4fe53b352':
  Drop unnecessary golomb.h #includes

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-29 11:54:54 +02:00
Clément Bœsch
4b9574b275 Merge commit '197ae68e78784524a7ccf97a3c301092715305d3'
* commit '197ae68e78784524a7ccf97a3c301092715305d3':
  Drop unnecessary unary.h #includes

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-29 11:52:34 +02:00
Clément Bœsch
bf7d016219 Merge commit '6ac52f05a6fcadb84972c9557b28c67a416f866b'
* commit '6ac52f05a6fcadb84972c9557b28c67a416f866b':
  dvbsub_parser: Add missing mem.h #include

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-29 11:52:03 +02:00
Clément Bœsch
daedfa7254 Merge commit '81f769fa129edc51c28285649c2df6da717e718f'
* commit '81f769fa129edc51c28285649c2df6da717e718f':
  gsm: Move requant_tab table to the gsm tables file

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-29 11:48:53 +02:00
Clément Bœsch
0501305e38 Merge commit '42dc214323637464759354912e18b2bee1884dd1'
* commit '42dc214323637464759354912e18b2bee1884dd1':
  mpc: Drop unused GetBitContext context member

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-29 11:46:36 +02:00
Clément Bœsch
c7253353f8 Merge commit '85b8403c6fd11e1c570caa970c7f435ac5f9583e'
* commit '85b8403c6fd11e1c570caa970c7f435ac5f9583e':
  svq1enc: Drop unused GetBitContext context member

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-29 11:45:37 +02:00
Clément Bœsch
f8beca6f10 Merge commit '6d8fd614ff957af242efcd8a6a0619874382f3a4'
* commit '6d8fd614ff957af242efcd8a6a0619874382f3a4':
  vorbis: Kill some pointless debug code

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-29 11:43:57 +02:00
Clément Bœsch
9afa64dfdf Merge commit '59c6509d9f0236acbc317198eab76dab8320bced'
* commit '59c6509d9f0236acbc317198eab76dab8320bced':
  mss2: Drop a silly assert

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-29 11:42:42 +02:00
Clément Bœsch
f755aa5ebd lavc: move 2 more BITSTREAM_READER_LE definitions
This was mentioned to be in ae753dbd0de448b51f0e0b980c26b94747ec44f5 but
actually wasn't.
2016-06-29 11:41:12 +02:00
Clément Bœsch
ae753dbd0d Merge commit 'b668662939de3a02454cfc9ba3e6d10b87527a40'
* commit 'b668662939de3a02454cfc9ba3e6d10b87527a40':
  get_bits: Move BITSTREAM_READER_LE definition before all relevant #includes

The merge commit also includes changes for libavcodec/interplayacm.c and
libavcodec/truemotion2rt.c

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-29 11:35:10 +02:00
Clément Bœsch
543142990b Merge commit '09c4e5c5988c0037d108c5fc2a137d9ad488f7f4'
* commit '09c4e5c5988c0037d108c5fc2a137d9ad488f7f4':
  indeo2: Drop disabled big-endian ir2_codes table

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-29 11:20:20 +02:00
Clément Bœsch
9b35242370 Merge commit 'b7f98659f21dce438c33b512e25fd64b8d07c347'
* commit 'b7f98659f21dce438c33b512e25fd64b8d07c347':
  Remove unnecessary get_bits.h #includes

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-29 11:16:01 +02:00
Clément Bœsch
1994a73a6b Merge commit '2a48a75a6f508121b96b0732a9fe03a46303f579'
* commit '2a48a75a6f508121b96b0732a9fe03a46303f579':
  sgirledec: simplify, no need to use reget buffer

This commit is a noop, see ccc3f4e7104eda0f72436720ebcdc2e916217c7a

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-29 11:09:36 +02:00
Clément Bœsch
ee7d01e81a Merge commit '6e2ad28cf76461b02d85ad178087ba0c628b8d9d'
* commit '6e2ad28cf76461b02d85ad178087ba0c628b8d9d':
  aic: add frame threading support

This commit is a noop, see 8e069eb525d46b8f89089e37fc7ac81b2d9b1092

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-29 11:07:41 +02:00
Clément Bœsch
dd1b1e3223 Merge commit 'c3ed259e4fef64a1af4f6537be545fba47491aa9'
* commit 'c3ed259e4fef64a1af4f6537be545fba47491aa9':
  fate: Move Canopus decoder tests to a separate file

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-29 11:05:49 +02:00
Matthieu Bouron
db0af7250a lavc/mediacodecdec_h264: add missing NAL headers to SPS/PPS buffers
Fixes a regression introduced by 0cd5e281df3f69c1ed8f2a72a5bcbf9691e1b5d5.
2016-06-29 10:46:29 +02:00
Michael Niedermayer
8a3221cc67 avformat/mov: Check sample size
Fixes integer overflow
Fixes: poc.mp4

Found-by: ajax secure <ajax4sec@hotmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-29 00:30:55 +02:00
Martin Vignali
2bdb26b4ee fate/webp : add test for lossy compression.
the result of ffmpeg decoding is binary exact with the yuv output of
official decoder (dwebp)

Signed-off-by: James Almer <jamrial@gmail.com>
2016-06-28 18:21:12 -03:00
Michael Niedermayer
c0cb53cd1f avdevice/decklink_common: Replace rare spelling of Succesfully by 500 times more common one
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-28 03:07:54 +02:00
Michael Niedermayer
6cc4c42226 avcodec/ccaption_dec: Fix mixed declaration and statement.
Found-by: ubitux
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-28 02:33:03 +02:00
Aman Gupta
4448f16ef5 avcodec/ccaption_dec: implement tab offset commands
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-28 01:52:31 +02:00
Michael Niedermayer
0a72b69889 MAINTAINERS: remove 2.4 as 3.1 was released
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-27 22:51:39 +02:00
Clément Bœsch
8b4d6cc809 Merge commit '20a8c78ce0a5baf37f6a94e2d1e57e186b6f4b54'
* commit '20a8c78ce0a5baf37f6a94e2d1e57e186b6f4b54':
  avconv: Do not copy extradata if source buffer is empty

This commit is a noop, see 4d02dfbde475d249916eb19c360e890059aa6aa5

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-27 20:10:35 +02:00
Clément Bœsch
e6d0acd438 Merge commit '38f99017e69bd25e88be87117237c29727c25635'
* commit '38f99017e69bd25e88be87117237c29727c25635':
  vp9: Return the correct size when decoding a superframe

This commit is a noop, see c2f3715cb3fce093137591e3005de3e831b1f9fd

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-27 19:54:37 +02:00
Clément Bœsch
85a52a77ce Merge commit 'b2d5d6a7f20a255a5f3c9bf539cc507afd909ce5'
* commit 'b2d5d6a7f20a255a5f3c9bf539cc507afd909ce5':
  build: Only enable symbol reduction if the compiler does proper DCE

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-27 19:48:21 +02:00
Clément Bœsch
da7c918e80 Merge commit 'c5fd4b50610f62cbb3baa4f4108139363128dea1'
* commit 'c5fd4b50610f62cbb3baa4f4108139363128dea1':
  build: Simplify postprocessing of linker version script files

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-27 19:39:46 +02:00
Clément Bœsch
c5566f0a94 lavc/pnm_parser: disable parsing for text based PNMs
P1, P2, and P3 are respectively the text versions of PBM, PGM and PPM
files.

We can not obtain the buffer size using av_imgage_get_buffer_size() as
every pixel in the picture will occupy a random size between 16 and 32
bits ("4 " and "231 " are such example).

Ideally, we could look for the next header (or EOF) in the bytestream,
but this commit is meant to fix a decoding regression introduced by
48ac4532d437790e56b8ed5d0d467dc88685f035.

Fix Ticket #5670
2016-06-27 18:04:50 +02:00
Matthieu Bouron
0acc170aad Merge commit '535a742c2695a9e0c586b50d7fa76e318232ff24'
* commit '535a742c2695a9e0c586b50d7fa76e318232ff24':
  build: Change structure of the linker version script templates

Merged-by: Matthieu Bouron <matthieu.bouron@stupeflix.com>
2016-06-27 17:56:47 +02:00
Rick Kern
d956171813 Changelog: Add VideoToolbox encoder entry for 3.1
Signed-off-by: Rick Kern <kernrj@gmail.com>
2016-06-27 11:43:13 -04:00
Matthieu Bouron
0fd76d77d6 Merge commit '5b1b495c8d21600eac694d50f428654a3125e217'
* commit '5b1b495c8d21600eac694d50f428654a3125e217':
  build: Print a message when generating version scripts

Merged-by: Matthieu Bouron <matthieu.bouron@stupeflix.com>
2016-06-27 17:35:04 +02:00
Matthieu Bouron
9eb3da2f99 asm: FF_-prefix internal macros used in inline assembly
See merge commit '39d6d3618d48625decaff7d9bdbb45b44ef2a805'.
2016-06-27 17:21:18 +02:00
Matthieu Bouron
39d6d3618d Merge commit '1e9c5bf4c136fe9e010cc8a7e7270bba0d1bf45e'
* commit '1e9c5bf4c136fe9e010cc8a7e7270bba0d1bf45e':
  asm: FF_-prefix internal macros used in inline assembly

This commit is a noop as the ASM codebase differs too much between libav
and ffmpeg. The corresponding chunks will be found in the next commit.

Merged-by: Matthieu Bouron <matthieu.bouron@stupeflix.com>
2016-06-27 17:18:25 +02:00
Paul B Mahol
d693392886 avformat/mov: parse rtmd track timecode
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-06-27 10:27:25 +02:00
Marton Balint
b18d6c5800 avdevice/decklink: fix mingw portability
Fixes ticket #5669.

Signed-off-by: Marton Balint <cus@passwd.hu>
2016-06-27 02:12:07 +02:00
Rick Kern
729d82abae configure: use c++98 for c++ files
Use c++98 standard instead of c++11.

Signed-off-by: Rick Kern <kernrj@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-26 23:25:23 +02:00
Martin Vignali
bd2cec7021 fate/webp : add test for webp lossless decoding (rgb and rgba)
output have been compared with official decoding tool output (dwebp)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-26 21:12:33 +02:00
Martin Vignali
971ee09d32 fate/exr : add tests for file with half and float channels
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-26 21:12:32 +02:00
James Almer
c6f2d1a21f changelog: fix entry order
Signed-off-by: James Almer <jamrial@gmail.com>
2016-06-26 15:27:47 -03:00
James Almer
069fd69662 Update FFmpeg 3.1 cut marker
Signed-off-by: James Almer <jamrial@gmail.com>
2016-06-26 14:45:54 -03:00
Marton Balint
cf0a05668b avdevice/decklink: add support for setting input packet timestamp source
Reviewed-by: Deti Fliegl <deti@fliegl.de>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-06-26 19:18:06 +02:00
Marton Balint
da89c6e37c avdevice/decklink: add support for audio and video input selection
Reviewed-by: Deti Fliegl <deti@fliegl.de>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-06-26 19:18:02 +02:00
Marton Balint
8f9fa49bd8 avdevice/decklink: add support for setting duplex mode
This patch also makes BlackMagic drivers v10.6.1 a hard requirement.

Reviewed-by: Deti Fliegl <deti@fliegl.de>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-06-26 19:17:56 +02:00
Marton Balint
e22760aafd avdevice/decklink: always free decklink resources on error
Reviewed-by: Deti Fliegl <deti@fliegl.de>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-06-26 19:17:52 +02:00
Marton Balint
38d75fe906 avdevice/decklink: factorize device finder function
Reviewed-by: Deti Fliegl <deti@fliegl.de>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-06-26 19:17:45 +02:00
Marton Balint
4ce0a77ec8 avdevice/decklink: remove unused itermode iterators
Reviewed-by: Deti Fliegl <deti@fliegl.de>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-06-26 19:17:40 +02:00
Marton Balint
1fc85d8511 avdevice/decklink: factorize cleanup function to common code
Reviewed-by: Deti Fliegl <deti@fliegl.de>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-06-26 19:17:37 +02:00
Marton Balint
340cea9f22 avdevice/decklink_dec: fix bitrate calculations
Reviewed-by: Deti Fliegl <deti@fliegl.de>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-06-26 19:17:29 +02:00
Michael Niedermayer
e9394ca63d avcodec/libopenjpegenc: Set numresolutions by default to a value that is not too large
Fixes issues with libopenjpeg 2.1

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-26 18:08:04 +02:00
Hendrik Leppkes
c142dc203e Merge commit 'dc40a70c5755bccfb1a1349639943e1f408bea50'
* commit 'dc40a70c5755bccfb1a1349639943e1f408bea50':
  Drop unnecessary libavutil/x86/asm.h #includes

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-06-26 15:53:00 +02:00
Hendrik Leppkes
5e418fd63a Merge commit '5264e7ba217b3c0ceae813917134e1ab52573141'
* commit '5264e7ba217b3c0ceae813917134e1ab52573141':
  ac3: Check the array bound before dereferencing

See d85ebea3f3b68ebccfe308fa839fc30fa634e4de

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-06-26 15:47:05 +02:00
Hendrik Leppkes
f2a3798ea4 Merge commit 'a86aa16088ad7f22a8918d71adb8c040d6033d84'
* commit 'a86aa16088ad7f22a8918d71adb8c040d6033d84':
  vaapi_h264: Add trivial support for low-power encoding

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-06-26 15:44:43 +02:00
Hendrik Leppkes
d3327b7eda Merge commit 'b51c7c6b8a5b35cfd06cb9655f9ec4c9f0ddd81b'
* commit 'b51c7c6b8a5b35cfd06cb9655f9ec4c9f0ddd81b':
  vaapi_h264: Fix frame_num after non-reference frames

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-06-26 15:44:35 +02:00
Hendrik Leppkes
18b1b8be6a Merge commit '2bfa067d0b636e7b2004fb0ad5a53d0d48c6de32'
* commit '2bfa067d0b636e7b2004fb0ad5a53d0d48c6de32':
  vaapi_encode: Check config attributes before creating config

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-06-26 15:44:25 +02:00
Hendrik Leppkes
5a9134f5f1 Merge commit '6641819feedb086ebba3d2be89b8d33980f367e1'
* commit '6641819feedb086ebba3d2be89b8d33980f367e1':
  build: Ignore generated mapfile and remove it on distclean

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-06-26 15:43:05 +02:00
Hendrik Leppkes
cd52ec2337 Merge commit 'f5c43884190be094749acfba104e3eab98d8ff1e'
* commit 'f5c43884190be094749acfba104e3eab98d8ff1e':
  FATE: drop the audio stream from the dxtory test

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-06-26 15:41:49 +02:00
Hendrik Leppkes
7fe7cdca36 Merge commit 'fe7b21c8f148493c6fbceb7f887a77531dd1ae0e'
* commit 'fe7b21c8f148493c6fbceb7f887a77531dd1ae0e':
  avconv: fix parsing bitstream filters

Not merged because ffmpeg_opt.c still uses the old BSF API.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-06-26 15:39:06 +02:00
Hendrik Leppkes
c9ee36e60f Merge commit '80fb19bc234a3f2350d891adf39f3738a8e4849f'
* commit '80fb19bc234a3f2350d891adf39f3738a8e4849f':
  avconv: fix a check for av_bsf_get_by_name() return value

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-06-26 15:37:34 +02:00
Hendrik Leppkes
4e6f2dbcd3 Merge commit '9f7590f4e497c12693247d7f935a20d7773a64dd'
* commit '9f7590f4e497c12693247d7f935a20d7773a64dd':
  avconv_vaapi: use the hwcontext device creation API

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-06-26 15:36:27 +02:00
Hendrik Leppkes
06a0e18435 hwcontext_dxva2: Use GetDesktopWindow instead of GetShellWindow
Improves compatibility with some MinGW variants,
see 771537edcf703434161c100e6898891546d1d4b3
2016-06-26 15:34:40 +02:00
Hendrik Leppkes
85da4f9258 Merge commit '18c506e9e6e8df8b1d496d093077b8240ea68c28'
* commit '18c506e9e6e8df8b1d496d093077b8240ea68c28':
  avconv_dxva2: use the hwcontext device creation API

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-06-26 15:34:01 +02:00
Hendrik Leppkes
844256740d Merge commit 'f72db3f2f3a8c83a4f5dede8fa03434b2bf676c6'
* commit 'f72db3f2f3a8c83a4f5dede8fa03434b2bf676c6':
  avconv_vdpau: use the hwcontext device creation API

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-06-26 15:29:39 +02:00
Hendrik Leppkes
ed5d03ff6f Merge commit 'b8bf9194af602cf3a4bcd19a5e278e3d6d69f8fa'
* commit 'b8bf9194af602cf3a4bcd19a5e278e3d6d69f8fa':
  hwcontext_vaapi: implement device creation

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-06-26 15:25:38 +02:00
Hendrik Leppkes
162370b473 Merge commit '8e70385a8ed06f96f1e9e35cf7b6788a5c56eded'
* commit '8e70385a8ed06f96f1e9e35cf7b6788a5c56eded':
  hwcontext_dxva2: implement device creation

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-06-26 15:25:24 +02:00
Hendrik Leppkes
c5a0c16850 Merge commit '2e219b491bcc0845248345fdad31231b081e06d1'
* commit '2e219b491bcc0845248345fdad31231b081e06d1':
  hwcontext_cuda: implement device creation

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-06-26 15:25:12 +02:00
Hendrik Leppkes
613ac3bf82 Merge commit '38392b2af815898b8716826c4e29d95c04fb2647'
* commit '38392b2af815898b8716826c4e29d95c04fb2647':
  hwcontext_vdpau: implement device creation

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-06-26 15:24:53 +02:00
Hendrik Leppkes
481f320aa3 Merge commit '1c9e8616c535ef496e7ee8a5cbc5e9e972a6977d'
* commit '1c9e8616c535ef496e7ee8a5cbc5e9e972a6977d':
  hwcontext: add a function for opening devices

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-06-26 15:23:24 +02:00
Hendrik Leppkes
2c1d0f871f Merge commit '24b5cff01bbac4e08acfd6d19c499e880988f520'
* commit '24b5cff01bbac4e08acfd6d19c499e880988f520':
  lavc: handle hw_frames_ctx where necessary

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-06-26 15:20:43 +02:00
Hendrik Leppkes
b20fe650ef Merge commit '4024b566d664a4b161d677554be52f32e7ad4236'
* commit '4024b566d664a4b161d677554be52f32e7ad4236':
  golomb: Give svq3_get_se_golomb()/svq3_get_ue_golomb() better names

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-06-26 15:12:48 +02:00
Hendrik Leppkes
324f0fbff1 Merge commit '7ca4fdc046a945949866bb6fc550e3cab1fc8c00'
* commit '7ca4fdc046a945949866bb6fc550e3cab1fc8c00':
  fate: More fine-grained dependencies for demuxer tests

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-06-26 15:06:47 +02:00
Hendrik Leppkes
093e06f2d6 Merge commit '07377fb557909015338b4c215b87b9c73ea577ad'
* commit '07377fb557909015338b4c215b87b9c73ea577ad':
  fate: More fine-grained dependencies for voice codec tests

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-06-26 14:58:58 +02:00
Hendrik Leppkes
f972653ec1 Merge commit '3fdffc032e8ea5676bc0c2551b900c0dc887835b'
* commit '3fdffc032e8ea5676bc0c2551b900c0dc887835b':
  rtsp: Use avcodec_descriptor_get instead of avcodec_find_decoder

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-06-26 14:51:33 +02:00
Hendrik Leppkes
b95534bb67 Merge commit 'e47b8bbf0b54599d44b9330eb4d68cdde4f6d298'
* commit 'e47b8bbf0b54599d44b9330eb4d68cdde4f6d298':
  avcodec: Bump micro version after changing public JPEG 2000 defines

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-06-26 14:49:10 +02:00
Hendrik Leppkes
46ff31d39c Merge commit 'ad61da054bd8c74a5d5b38d80846228fc6147108'
* commit 'ad61da054bd8c74a5d5b38d80846228fc6147108':
  jpeg2000: Fix profile define values

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-06-26 14:41:05 +02:00
Hendrik Leppkes
7c6ae9ca04 Merge commit 'ac84e618df4765ba751327497994066d0931e6a8'
* commit 'ac84e618df4765ba751327497994066d0931e6a8':
  avfiltergraph: check the query_formats() return value

This commit is a noop, see 6a4c5c730ed67a7f472e43205fd96e91781796ce

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-06-26 14:40:19 +02:00
Hendrik Leppkes
f9a186c59b Merge commit '2ef6dab0a79a9852a92ed80b07f9e32a37530d9e'
* commit '2ef6dab0a79a9852a92ed80b07f9e32a37530d9e':
  lavc: document that avcodec_close() should not be used

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-06-26 14:35:10 +02:00
Hendrik Leppkes
69c38d64d7 Merge commit '04fc8e24a091ed1d77d7a3c0cbcfe60baec19a9f'
* commit '04fc8e24a091ed1d77d7a3c0cbcfe60baec19a9f':
  lavc: deprecate avcodec_get_context_defaults3()

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-06-26 14:34:53 +02:00
Hendrik Leppkes
6988cf2969 Merge commit '5f30ac27795f9f98043e8582ccaad8813104adc4'
* commit '5f30ac27795f9f98043e8582ccaad8813104adc4':
  lavc: deprecate avcodec_copy_context()

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-06-26 14:34:02 +02:00
Hendrik Leppkes
97bdb94341 Merge commit '14634429b915333f3612eaf41db3954222dc4aaf'
* commit '14634429b915333f3612eaf41db3954222dc4aaf':
  lavf: update muxing doxy

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-06-26 14:32:38 +02:00
Hendrik Leppkes
314e608631 Merge commit '74b1bf632f125a795e66e5fd0a060b9c7c55b7a3'
* commit '74b1bf632f125a795e66e5fd0a060b9c7c55b7a3':
  mp3: Make the extrasize explicit

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-06-26 14:31:53 +02:00
Hendrik Leppkes
e2836397f1 Merge commit '52567e8198669a1e7493c75771613f87a90466c3'
* commit '52567e8198669a1e7493c75771613f87a90466c3':
  get_bits: Drop some TRACE-level debug code

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-06-26 14:19:48 +02:00
Hendrik Leppkes
b23d4e52fd Merge commit 'e45a638f50cc1dbeb87b9792e68f57e77fc0c3b5'
* commit 'e45a638f50cc1dbeb87b9792e68f57e77fc0c3b5':
  dump: Drop unused variable

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-06-26 14:13:36 +02:00
Hendrik Leppkes
4531981a9b Merge commit 'e2a3df1a464091075040a81ffc419fa21a8a5fd8'
* commit 'e2a3df1a464091075040a81ffc419fa21a8a5fd8':
  avconv: Use more precise deprecation ifdefs

The PSNR functionality is not deprecated in ffmpeg.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-06-26 14:08:51 +02:00
Hendrik Leppkes
b8945c4e2a Merge commit '35c858066840352d6d43385bbc728467c5150974'
* commit '35c858066840352d6d43385bbc728467c5150974':
  avconv: stop using AVStream.codec

Not merged, as ffmpeg.c is not migrated to codecpar yet, and this commit
only changes minor parts of AVStream.codec usage, which should get applied
after ffmpeg.c is using codecpar.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-06-26 14:05:57 +02:00
Paul B Mahol
8fb92ea7e2 avcodec: add YUY2 Lossless Codec decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-06-26 10:18:10 +02:00
Michael Niedermayer
074fdf4d12 doc/APIchanges: Add FFmpeg 3.1 cut marker
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-26 03:13:17 +02:00
Michael Niedermayer
7b92fe8d3f doc/APIchanges: Fill in and correct more stuff
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-26 02:59:23 +02:00
Michael Niedermayer
8baa1d2209 avfilter/vf_paletteuse: enable skip_initial_unpaired
Fixes crash due to unprocessed input being passed through

This fixes the last segfault caused by mixing 3.0 and 3.1 libs and
applications

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-26 01:08:28 +02:00
Michael Niedermayer
f1dabc958e avfilter/dualinput: Add support to skip initial unpaired frames
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-26 01:01:28 +02:00
Michael Niedermayer
9981b70da5 avcodec/h264_sei: Do not skip subsequent SEIs on errors potentially caused by missing parameter sets.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-26 00:44:47 +02:00
Michael Niedermayer
fdd8aac7e1 avfilter/src_movie: Add option to remove timestamp discontinuities
This can also be extended to remove discontiuities caused by seek commands

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-26 00:20:00 +02:00
Jan Sebechlebsky
d46a8e30dc avformat/tee: Support arbitrary number of slaves
Signed-off-by: Jan Sebechlebsky <sebechlebskyjan@gmail.com>
2016-06-25 23:34:26 +02:00
Timo Rothenpieler
888a5c7947 avcodec/nvenc: Bring encoder names in line with other encoders 2016-06-25 23:05:17 +02:00
Rodger Combs
6ee7adb881
lavf/srtdec: fix indent 2016-06-25 15:53:11 -05:00
Rodger Combs
af7e2734b9
lavf: update auto-bsf to new BSF API 2016-06-25 15:50:04 -05:00
Rodger Combs
150e5e13b1
lavf: deprecate av_apply_bitstream_filters 2016-06-25 15:50:03 -05:00
Rodger Combs
1df401505c
lavf/srtdec: fix probing files with negative first timestamps 2016-06-25 15:50:03 -05:00
Martin Storsjö
a590d344e3 omx: Don't return > 0 from omx_encode_frame
The encode function is supposed to just return 0 on success.
This stems from a mixup with the return value of decode functions.

Reviewed-by: Jan Gerber <j@v2v.cc>
Signed-off-by: Martin Storsjö <martin@martin.st>
2016-06-25 21:39:17 +02:00
Michael Niedermayer
4cc896ea5f avformat/format: Fix registering a format more than once and related races
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-25 20:09:10 +02:00
Clément Bœsch
a887fbb582 lavfi/subtitles: remove unecessary checks 2016-06-25 19:14:21 +02:00
Clément Bœsch
e73ccfd6ad lavfi/subtitles: fix memleak after 6bcb1e1a
Spotted-by: James Almer <jamrial@gmail.com>
2016-06-25 19:12:03 +02:00
Aman Gupta
ee2a8f142b avcodec/omx: fix deprecation warning for ff_alloc_packet
Tested-by: Jan Gerber <j@v2v.cc>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-25 18:48:59 +02:00
Martin Vignali
d96b8144c0 avcodec/exr: add missed hunks from previous exr commit 2016-06-25 18:28:06 +02:00
Martin Vignali
1e38791b7f avcodec/exr: fix reading float channel when there is half and float channels in a file 2016-06-25 18:10:10 +02:00
Clément Bœsch
6bcb1e1aff lavfi/subtitles: switch to codecpar 2016-06-25 16:53:35 +02:00
David Murmann
0296b4b8d8 avformat/movenc: add option to use keys/mdta atoms for metadata
Add -movflags use_metadata_tags to the mov muxer. This will cause
the muxer to write all metadata to the file in the keys and mtda
atoms.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-25 14:38:14 +02:00
Clément Bœsch
dfd0c0f981 lavc/neontest: fix constness in arm/aarch64 avcodec_open2() wrappers 2016-06-25 13:41:13 +02:00
Clément Bœsch
8ca78d0fef lavf/utils: fix const warning at a find_decoder() call 2016-06-25 13:38:53 +02:00
Clément Bœsch
11ee8a4504 ffmpeg: do not use deprecated AVSubtitleRect.pict 2016-06-25 13:35:46 +02:00
Clément Bœsch
e13134c730 Merge commit '3399a26d3f57d462e839c0ee51223ae9aca20852'
* commit '3399a26d3f57d462e839c0ee51223ae9aca20852':
  nvenc: allow setting the number of slices
  nvenc: De-compensate aspect ratio compensation of DVD-like content.
  nvenc: list the major contributors in the copyright header
  configure: Don't require nonfree for nvenc
  nvenc: drop the hard dependency on CUDA
  nvenc: only support HW frames when CUDA is enabled
  nvenc: write the VUI signal properties for HEVC
  nvenc: only write the VUI signal type fields if they are set
  nvenc: Generate bufferingPeriod/pictureTiming SEI
  nvenc: Delay frame output to increase encoding speed
  nvenc: add support for lossless encoding
  nvenc: Generate AUD NAL units for better compatiblity
  nvenc: fix the rc option definitions

All these commits are noop as requested by Timo Rothenpieler.

<BtbN> andrey_turkin, ubitux, yeah, I like the current state of nvenc in
ffmpeg, I think most remaining differences should be merged on the libav
side of things. At least I'm not aware of anything that's missing in
ffmpeg.

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-25 11:58:36 +02:00
Clément Bœsch
c7babd50de Merge commit '65dc7ca4c8e7e56362626a5d31e563e80108f104'
* commit '65dc7ca4c8e7e56362626a5d31e563e80108f104':
  Add release notes for 12.

This commit is a noop, but we absolutely need someone to write the
release notes.

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-25 11:46:08 +02:00
Clément Bœsch
2ab823d4a6 Merge commit 'd68fb1475856cf93199e2bc4eee3063902c35df7'
* commit 'd68fb1475856cf93199e2bc4eee3063902c35df7':
  mjpegdec: Properly fail on malloc failure

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-25 11:42:57 +02:00
Clément Bœsch
63ac806ccb Merge commit '85ce9636e42dbda06b7d0af76a528a64b113fb3a'
* commit '85ce9636e42dbda06b7d0af76a528a64b113fb3a':
  configure: move the hardware accel libs' entries in the configure output

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-25 11:32:26 +02:00
Clément Bœsch
7bf52e12d4 Merge commit 'c0f4c7db9fea1c07d290a298b8db858b7ceed96d'
* commit 'c0f4c7db9fea1c07d290a298b8db858b7ceed96d':
  configure: move the hardware accel libs' entries in the help text

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-25 11:23:19 +02:00
Clément Bœsch
680ec710ec Merge commit '5e2203448ab4cc8ea1d933b87f1b39b009201044'
* commit '5e2203448ab4cc8ea1d933b87f1b39b009201044':
  configure: improve the help text for external libraries

Only merged the explanation paragraphs. The removal of "enable/disable"
and "[no]" would create too much inconsistency and might cause
confusion.

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-25 11:01:50 +02:00
Clément Bœsch
b45348130a Merge commit '0d95d88fbd1aeadafb8b0b1bfb880bf21b33132c'
* commit '0d95d88fbd1aeadafb8b0b1bfb880bf21b33132c':
  lavc: revert the Makefile part of 330177b

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-25 10:46:08 +02:00
Clément Bœsch
1e9b79b2db movenc: mark astronomical_body const string as static 2016-06-25 10:30:28 +02:00
Rick Kern
8db203a9dd lavd/decklink: Fix compile issue on OS X
Fixes #4124: Invalid argument '-std=c99' not allowed with 'C++/ObjC++'
C++ files fail to compile. This adds '-std=c++11' to CXX_FLAGS to fix.

Signed-off-by: Rick Kern <kernrj@gmail.com>
2016-06-24 21:59:43 -04:00
Jing Yu
311a953c76 avcodec/ppc: fix broken build when compiling libavcodec with LLVM on PPC backend
This commit fixes a broken build when compiling libavcodec with LLVM
compiler. These assembly files use non-standard format that is only
supported by GCC compiler. It would be nice to use a common standard
format. With this patch, both GCC and LLVM can build and generate the
same objects.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-25 03:48:19 +02:00
Michael Niedermayer
46a60fe184 avformat: Fix ff_interleaved_peek()
Fixes assertion failures in movenc

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-25 03:04:55 +02:00
Michael Niedermayer
f573acc424 avformat/matroskadec: Call matroska_read_close() on header parsing error
Fixes memleak
Fixes Ticket5169

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-24 18:39:53 +02:00
Petru Rares Sincraian
84b252ba2a fate: add anequalizer test
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-24 14:54:06 +02:00
Clément Bœsch
b77f62e27f Merge commit 'ded4a6543dfb5a2f1d9f7fb8d3ab27a1872c22b3'
* commit 'ded4a6543dfb5a2f1d9f7fb8d3ab27a1872c22b3':
  xtea-test: Use struct allocation functions from the API

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-24 11:16:52 +02:00
Clément Bœsch
b6310ab6b5 Merge commit '8131bd4c22ad59b040173f67a5b2edb75863e801'
* commit '8131bd4c22ad59b040173f67a5b2edb75863e801':
  blowfish-test: Use struct allocation functions from the API

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-24 11:14:23 +02:00
Clément Bœsch
1ca383c8d4 Merge commit 'a86ef80494d759807a5ef8dd12838f0690092e37'
* commit 'a86ef80494d759807a5ef8dd12838f0690092e37':
  blowfish-test: Return different values for different errors

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-24 11:10:35 +02:00
Clément Bœsch
2c45254a77 Merge commit 'b84f3a40034d28828c4ca639d012479a7eaace28'
* commit 'b84f3a40034d28828c4ca639d012479a7eaace28':
  movenc: Write 'loci' geotag metadata for 3gp and mp4

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-24 11:08:33 +02:00
Clément Bœsch
7a1785014b Merge commit 'f12a705ee570e16ca692c66b62821a2dbdf82566'
* commit 'f12a705ee570e16ca692c66b62821a2dbdf82566':
  movenc: Factorize a function for finding a metadata entry and the associated language

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-24 11:01:40 +02:00
Clément Bœsch
8e934e4c33 Merge commit 'daec1651f1c0f8f8e704db375a2ecb364a722fa1'
* commit 'daec1651f1c0f8f8e704db375a2ecb364a722fa1':
  movenc: Write ?xyz geotag metadata for mov files

This commit is a noop, see a3ec1d6abddb98f7c3d4f280d71e008e88a2d385

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-24 10:54:48 +02:00
Clément Bœsch
7414ae4d8a Merge commit 'bc43131997a456ecdff160eab288395f5adb8d72'
* commit 'bc43131997a456ecdff160eab288395f5adb8d72':
  mov: Also export loci altitude

This commit is a noop, see 08b7d19deff96a0adae93ba7d585176036442f31

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-24 10:53:22 +02:00
Clément Bœsch
b1b5ba034f Merge commit '94d8141c8cd96c176f7d4bdb74a95331ec7db19b'
* commit '94d8141c8cd96c176f7d4bdb74a95331ec7db19b':
  mov: Append place name instead of overwriting for loci

This commit is a noop, see 1607f774949add9e93bba6f288c9c5bf2c10d880

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-24 10:51:13 +02:00
Clément Bœsch
c8c402201a Merge commit 'f126365cdad6327e6def8ceb918eaf538fbb97b3'
* commit 'f126365cdad6327e6def8ceb918eaf538fbb97b3':
  mov: Fix parsing short loci

This commit is a noop, see 50393bce31a5618f5125aaaf97bb69886fc4261d

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-24 10:49:05 +02:00
Clément Bœsch
9c4af99583 Merge commit '704d2bd18be8f134cb9ab19463a3c4eb63233dbd'
* commit '704d2bd18be8f134cb9ab19463a3c4eb63233dbd':
  mov: Print reason of loci parsing failure

See 9e4f0cfc8ff4ab635ea12bdbd8d85d8bb1ba25f9

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-24 10:45:57 +02:00
Clément Bœsch
6dd80591b8 Merge commit 'd34826c33d401929b2ff8aee161fd39ad0a73613'
* commit 'd34826c33d401929b2ff8aee161fd39ad0a73613':
  mov: Add a comment referring to the standard that defines the loci box

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-24 10:44:00 +02:00
Muhammad Faiz
1b7eaead0c avfilter/showcqt: set some frame properties
Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
2016-06-24 15:33:16 +07:00
Michael Niedermayer
6935aaa748 avcodec/flac_parser: Increase FLAC_MAX_SEQUENTIAL_HEADERS by 1
Fixes Ticket5343

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-24 03:34:42 +02:00
Matthieu Bouron
7e4e8fdd34 Merge commit '72d621069fc301b431fac36b5281699a362562f2'
* commit '72d621069fc301b431fac36b5281699a362562f2':
  movenc: Add a missed const

Merged-by: Matthieu Bouron <matthieu.bouron@stupeflix.com>
2016-06-23 22:30:37 +02:00
Matthieu Bouron
c60d328e67 Merge commit 'a79aafd0b4d37eda6f15dc68e6509d4e815290c9'
* commit 'a79aafd0b4d37eda6f15dc68e6509d4e815290c9':
  movenc: Add a test for VFR with b-frames, with a duration change at a fragment end

Merged-by: Matthieu Bouron <matthieu.bouron@stupeflix.com>
2016-06-23 22:20:10 +02:00
Matthieu Bouron
b1e1da52fe Merge commit 'e1eb0fc960163402bbb4e630185790488f7d28ed'
* commit 'e1eb0fc960163402bbb4e630185790488f7d28ed':
  movenc: Use packets in interleaving queues for the duration at the end of fragments

Merged-by: Matthieu Bouron <matthieu.bouron@stupeflix.com>
2016-06-23 22:02:31 +02:00
Michael Niedermayer
388f095766 avformat/g729dec: Fix av_log() formating string
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-23 21:37:05 +02:00
Michael Niedermayer
947daffa59 avcodec/libx264: Remove unused variable
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-23 21:36:02 +02:00
Clément Bœsch
8f4a2d4834 MAINTAINERS: purge a bunch of entries
This is definitely not complete.

Anton, Diego and Luca are still maintaining their code in Libav, but are
unwilling to do so in FFmpeg, so removing these entries will prevent
them from getting poked by our users.

Måns, Justin, Kostya and Jason left both projects a while ago.
2016-06-23 19:25:19 +02:00
Matthieu Bouron
d671652f6e Merge commit 'fd4957d9c67996e7d218fd36b4168c9cb85f9ea7'
* commit 'fd4957d9c67996e7d218fd36b4168c9cb85f9ea7':
  movenc-test: Test write_data_type

Merged-by: Matthieu Bouron <matthieu.bouron@stupeflix.com>
2016-06-23 18:03:49 +02:00
Matthieu Bouron
dc62016c4b Merge commit '71852a1ba89abc8749e309d9d662c49d47e19531'
* commit '71852a1ba89abc8749e309d9d662c49d47e19531':
  matroskaenc: Provide output bytestream markers

Merged-by: Matthieu Bouron <matthieu.bouron@stupeflix.com>
2016-06-23 17:57:34 +02:00
Clément Bœsch
a86fe0d738 tests/api: add .gitignore
Fixes regression since 5d48e4eafa6c4559683892b8638d10508125f3cf
2016-06-23 17:57:22 +02:00
Matthieu Bouron
4e7a921282 Merge commit 'dbbaad32e36b9046cd19d6e3329e2ca7ab49b401'
* commit 'dbbaad32e36b9046cd19d6e3329e2ca7ab49b401':
  movenc: Provide output bytestream markers for fragmented content

Merged-by: Matthieu Bouron <matthieu.bouron@stupeflix.com>
2016-06-23 17:52:14 +02:00
Matthieu Bouron
625eb41086 Merge commit '371df9ba71393a1c5429d5f40c76348b30e556c7'
* commit '371df9ba71393a1c5429d5f40c76348b30e556c7':
  flvenc: Provide output bytestream markers

Merged-by: Matthieu Bouron <matthieu.bouron@stupeflix.com>
2016-06-23 17:43:19 +02:00
Matthieu Bouron
5d75e46677 Merge commit 'db7968bff4851c2be79b15b2cb2ae747424d2fca'
* commit 'db7968bff4851c2be79b15b2cb2ae747424d2fca':
  avio: Allow custom IO users to get labels for the output bytestream

Merged-by: Matthieu Bouron <matthieu.bouron@stupeflix.com>
2016-06-23 15:59:44 +02:00
Matthieu Bouron
55816c9269 lavc/mediacodec: increase buffer dequeue timeout when the codec needs to be drained
Increase buffer dequeue timeout when the codec needs to be drained as it
could happen that no input buffer is available when we receive a null
packet for the first time (meaning we are unable to signal end of stream
and mark the codec as draining).

Fixes potential loss of last frames after sending a null packet.
2016-06-23 14:14:15 +02:00
Matthieu Bouron
b316ebf46d lavc/mediacodec: rely on buffer flags to detect end of stream 2016-06-23 14:14:15 +02:00
Matthieu Bouron
30e3a27119 lavc/mediacodec: re-indent after previous commit 2016-06-23 14:14:15 +02:00
Matthieu Bouron
a71d518575 lavc/mediacodec: discard 0-sized buffers
Their only purpose is to carry the end of stream flag.
2016-06-23 14:14:15 +02:00
Clément Bœsch
c8550e8244 ffprobe: print stereo3d information
Based on 8e757716c61e0563a63829e30b02d5ba2a422ad6

See https://github.com/mpv-player/mpv/issues/1045 for mk3d
elektranox.org samples.
2016-06-23 13:48:14 +02:00
Clément Bœsch
ccf942a0c2 ffprobe: refactor pkt side data printing 2016-06-23 13:48:14 +02:00
Clément Bœsch
78f5589b29 Merge commit '8e757716c61e0563a63829e30b02d5ba2a422ad6'
* commit '8e757716c61e0563a63829e30b02d5ba2a422ad6':
  avprobe: Print stereo3d information

This commit is not merged as it doesn't apply at all in our tree. The
two following commits will add the same feature.

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-23 13:47:01 +02:00
Derek Buitenhuis
a02766fb4d avcodec: remove libutvideo wrapper support
The 10-bit decoding support is available now in native decoder.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-06-23 13:04:11 +02:00
Paul B Mahol
dccea0ed0d avcodec/sheervideo: fix YbYr format decoding
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-06-23 12:59:20 +02:00
Clément Bœsch
abb3cc46d5 Merge commit '0c4468dc185fa8b9e7d6add914595c5e928b24fd'
* commit '0c4468dc185fa8b9e7d6add914595c5e928b24fd':
  stereo3d: Add API to get name from value or value from name

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-23 12:38:51 +02:00
Clément Bœsch
5954730ba3 Merge commit 'd621b2f795684f7119057f986066060adbe84220'
* commit 'd621b2f795684f7119057f986066060adbe84220':
  lavf: Raw G.729 demuxer

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-23 12:26:25 +02:00
Clément Bœsch
28dac0dc06 Merge commit '34effe816f9f3df2e6b8bc738e2b5a86a24fd0d7'
* commit '34effe816f9f3df2e6b8bc738e2b5a86a24fd0d7':
  fate: Update fate-lavf-ts after commit 393596f9d5

This commit is a noop, see c0ff42bf6468c7440568ec15c81edc52289f0c8a

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-23 12:16:42 +02:00
Clément Bœsch
84b39d3e14 Merge commit 'b8de14bcdf876c7e236a6dd2ad35342ff4b42cf8'
* commit 'b8de14bcdf876c7e236a6dd2ad35342ff4b42cf8':
  tools: Port to codec parameters API

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-23 12:14:45 +02:00
David Murmann
c3b0af7456 avformat/mov: add more datatypes in metadata handling
Implement variable sized big-endian integers, since these are found
in files created by ARRI cameras.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-23 11:40:32 +02:00
Clément Bœsch
c0ff42bf64 Merge commit '393596f9d51134d6e45d81ae129223f4faea1232'
* commit '393596f9d51134d6e45d81ae129223f4faea1232':
  mpegtsenc: stop impersonating ses in sdt

This commit also includes the needed FATE updates later spotted by
Martin Storsjö and fixed in 34effe816f9f3df2e6b8bc738e2b5a86a24fd0d7 on
Libav side.

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-23 08:17:31 +02:00
rogerdpack
bfbffbd7d8 dshow: avoid duplicate NULL check before free
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-23 03:18:16 +02:00
rogerdpack
9e907c040d dshow: don't add two instances of same device to graphs
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-23 03:18:16 +02:00
Michael Niedermayer
18f687f737 MAINTAINERS: Remove Linux / PowerPC maintainer
See: [FFmpeg-devel] PPC64: PowerPC Maintainer information is incorrect

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-23 00:55:13 +02:00
Petru Rares Sincraian
f6c48a7316 fate: add apad test
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-23 00:47:13 +02:00
Clément Bœsch
aef2d3d2b5 lavc: fix previous merge 2016-06-23 00:42:16 +02:00
Clément Bœsch
bcafc41a5a Merge commit 'ffa190d0479d2370dd89c95692f822cbff2cc24c'
* commit 'ffa190d0479d2370dd89c95692f822cbff2cc24c':
  Move VLC and RL_VLC_ELEM structure definitions to a separate header

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-23 00:29:25 +02:00
Hendrik Leppkes
e799e2270c Merge commit 'b23613268c6b56a8f9de7859562d82b4b88353d9'
* commit 'b23613268c6b56a8f9de7859562d82b4b88353d9':
  avconv_dxva2: use the hwcontext API

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-06-22 23:36:37 +02:00
Hendrik Leppkes
0c312a4562 hwcontext_dxva2: support P010 10-bit surfaces 2016-06-22 23:28:47 +02:00
Petru Rares Sincraian
610c0770e3 fate: add test for amerge
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-22 23:05:33 +02:00
Hendrik Leppkes
3689efea3d Merge commit 'c46db38cde8e8fd8ecb1c6602f10ec0e002f29a8'
* commit 'c46db38cde8e8fd8ecb1c6602f10ec0e002f29a8':
  hwcontext: add a dxva2 implementation

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-06-22 22:38:49 +02:00
Michael Niedermayer
d0b21b28a3 avformat/flacdec: Fix seeking close to EOF
Fixes Ticket5428

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-22 21:10:37 +02:00
Michael Niedermayer
b0b3676e13 avcodec/flac_parser: Raise threshold for detecting invalid data
Fixes regression from Ticket5428

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-22 21:10:36 +02:00
Clément Bœsch
6c98398b0b lavc/get_bits: add a logging context to check_marker()
Based on d338abb664febbc2c7266af7818aab1f12dbc161
2016-06-22 20:07:49 +02:00
Clément Bœsch
7475a9351f Merge commit 'd338abb664febbc2c7266af7818aab1f12dbc161'
* commit 'd338abb664febbc2c7266af7818aab1f12dbc161':
  mpeg4videodec: Call av_log() in check_marker() with AVCodecContext instead of NULL

This commit is a noop.

Since check_marker() is still in get_bits.h in FFmpeg and shared amongst
decoders, a similar but different change will be committed in the next
commit in to serve the same purpose of this one (that is, passing a
logging context to the av_log() in that function).

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-22 20:05:03 +02:00
Clément Bœsch
575be7311c Merge commit 'e4b38878da6b38ef5ca54ce14be985d6ae088834'
* commit 'e4b38878da6b38ef5ca54ce14be985d6ae088834':
  Move check_marker() from get_bits to mpeg4videodec

Not merged, check_marker() is used in various other places in FFmpeg.

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-22 19:57:11 +02:00
Clément Bœsch
541e1c2c3b Merge commit '31f6a4b4b83aca1d73f3cfc99ce2b39331970bf3'
* commit '31f6a4b4b83aca1d73f3cfc99ce2b39331970bf3':
  lavc: mark the old audio/video encoding API as deprecated

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-22 19:51:36 +02:00
Clément Bœsch
93f5a27313 Merge commit '2fb1d17a5a6b6ff8da2434cde0fda821f06f608c'
* commit '2fb1d17a5a6b6ff8da2434cde0fda821f06f608c':
  x86inc: Enable AVX emulation in additional cases

This commit is a noop, see e428f3b30cebbc2beafb3ff2972dbf8b47bc4a70

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-22 19:40:49 +02:00
Clément Bœsch
1c85027afe Merge commit '300fb0df84e9a563ed3b8a9b3d365abb6cf34600'
* commit '300fb0df84e9a563ed3b8a9b3d365abb6cf34600':
  x86inc: Improve handling of %ifid with multi-token parameters

This commit is a noop, see 4bd5583acea5d65a2f8fd8fcd5ab7b404af23f45

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-22 19:40:29 +02:00
Clément Bœsch
3d1b9383b7 Merge commit '8d02579fae756336ae2a88d521e8cf2f6b436a2f'
* commit '8d02579fae756336ae2a88d521e8cf2f6b436a2f':
  x86inc: Fix AVX emulation of some instructions

This commit is a noop, see 42be240ad6874fbc2b0e88a3ee133ece58d60692

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-22 19:39:13 +02:00
Clément Bœsch
a24cbbbfc4 Merge commit 'ba3eb745cc236765c916b74b39c1874da5c3aefc'
* commit 'ba3eb745cc236765c916b74b39c1874da5c3aefc':
  x86inc: Fix AVX emulation of scalar float instructions

This commit is a noop, see 8dd3ee9dddcaf1d538252d77dd2af3ea139f4f96

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-22 19:38:53 +02:00
Clément Bœsch
17fdffc9f8 Merge commit '8996515b137f962e3a8691241c285c96437b6c53'
* commit '8996515b137f962e3a8691241c285c96437b6c53':
  avpacket: fix setting AVPacket.data in av_packet_ref()

This commit is a noop, see ed3a02547c71ac06fa27f17ad53116a74f78d927

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-22 19:32:00 +02:00
Clément Bœsch
d4b1b3b06c Merge commit 'e62ff72fc1052273deb708ba715f73e5187281d4'
* commit 'e62ff72fc1052273deb708ba715f73e5187281d4':
  lavc: make avcodec_open2() fail when the timebase is not set for encoding

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-22 19:29:56 +02:00
Michael Niedermayer
70d48accd8 avcodec/tests/options: Set timebase
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-22 18:49:33 +02:00
Clément Bœsch
a444a50510 Merge commit '11de006babf735aafa3462d43dd2c02bb6ac6e2f'
* commit '11de006babf735aafa3462d43dd2c02bb6ac6e2f':
  Combine deprecation guards where appropriate

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-22 17:36:42 +02:00
Clément Bœsch
48ac4532d4 lavf/img2dec: add pnm pipe demuxers 2016-06-22 15:24:19 +02:00
Michael Niedermayer
99c3c3237b avformat/utils: Use internal->avctx for bitrate in estimate_timings_from_bit_rate() if needed
The internal avctx bitrate is copied into codecpar after estimate_timings()

Fixes Ticket5646

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-22 14:16:58 +02:00
Michael Niedermayer
4fecb97fd3 avformat/utils: change bit_rate to 64 bit in estimate_timings_from_bit_rate()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-22 14:16:58 +02:00
Clément Bœsch
a9eda4b260 swr: fix time.h include 2016-06-22 14:00:08 +02:00
Clément Bœsch
5d48e4eafa Merge commit 'a6a750c7ef240b72ce01e9653343a0ddf247d196'
* commit 'a6a750c7ef240b72ce01e9653343a0ddf247d196':
  tests: Move all test programs to a subdirectory

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-22 13:44:34 +02:00
Michael Bradshaw
989a614b70 libavformat/matroskaenc: omit segment UID for webm
SegmentUID is not a supported element in WebM. See:
http://www.webmproject.org/docs/container/#SegmentUID

Reviewed-by: Dave Rice <dave@dericed.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-22 12:12:46 +02:00
Clément Bœsch
5558ff3a9f Merge commit '257f00ec1ab06a2a161f535036c6512f3fc8e801'
* commit '257f00ec1ab06a2a161f535036c6512f3fc8e801':
  Split global .gitignore file into per-directory files

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-22 11:28:51 +02:00
Clément Bœsch
85185578ce lavc/qtrleenc: simplify FF_API_CODED_FRAME deprecation guard 2016-06-22 11:09:19 +02:00
Clément Bœsch
0491d6993a lavc/error_resilience: remove unused skip_last_mv label
Unused since a7b8a6e704d3bea4a2bf724b6b6a3b1de1b08886
2016-06-22 11:07:54 +02:00
Clément Bœsch
e6247a22c0 Merge commit '763d69bfb2f0094e99f43e657cfd2b0471361f6b'
* commit '763d69bfb2f0094e99f43e657cfd2b0471361f6b':
  Add some more deprecation guards

- psnr() deprecation is not merged within ffmpeg.c as we still use it in
  non-deprecated code

- the XVMC chunk is not merged as we still apparently maintain it

- The guarding in lavc/qtrleenc.c could be simplified but merged anyway.

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-22 11:06:04 +02:00
Matthieu Bouron
df3484f87c lavc/videotoolbox: fix avcC extradata creation
Fixes properly ticket #5638.

Since 772ad7142dff590c7bb30370acf5d3c9a8fb512b PPS and SPS contain the
nal type byte.

This reverts commit b8d754c5d0a2e99022c27bd1159ea3f597f67452.
This reverts commit 8e47a99f576da10b2a36e33b6b9acbf1c2da7485.
2016-06-22 10:03:45 +02:00
Michael Niedermayer
e0faad837c avformat/flvdec: Do not check last size if it could not be read due to EOF
Fixes part of Ticket5648
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-22 03:02:47 +02:00
Michael Niedermayer
3f380b9b40 avformat/flvdec: Also print sum_flv_tag_size on size mismatches
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-22 03:02:47 +02:00
Michael Niedermayer
e8931d79cc avformat/flvdec: Accept last size if its off by 1
Fixes part of Ticket5648

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-22 03:02:47 +02:00
Clément Bœsch
a4403e49b9 Merge commit 'b7e64fba7f37cc0399beae844f0a5dbef9219376'
* commit 'b7e64fba7f37cc0399beae844f0a5dbef9219376':
  Reduce the scope of some variables

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-21 22:40:56 +02:00
Clément Bœsch
00e122bc0f Merge commit 'bc2a32969eb4db17677971def5ad5b936d9d1648'
* commit 'bc2a32969eb4db17677971def5ad5b936d9d1648':
  rtsp: Parse SSRC attributes in the SDP

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-21 22:26:44 +02:00
Clément Bœsch
4873952f88 Merge commit '9ea78fd00a49f0691c1a5134eb59d4e5bb380a2a'
* commit '9ea78fd00a49f0691c1a5134eb59d4e5bb380a2a':
  rtpdec: Always check if we have the next packet queued

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-21 22:24:30 +02:00
Clément Bœsch
91450cda2e Merge commit '0c1d66a07917602303f129f5a5651faeec2415d5'
* commit '0c1d66a07917602303f129f5a5651faeec2415d5':
  avconv_vaapi: fix double-free with some unsupported streams

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-21 22:22:51 +02:00
Clément Bœsch
475a686a01 Merge commit '885a9d6087315a85d98f7e89656ef01dc7104c4c'
* commit '885a9d6087315a85d98f7e89656ef01dc7104c4c':
  pgssub: Fix subpicture colorspace and range

See 9779b6262471d553c1ed811ff7312564e39d8adf

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-21 22:20:49 +02:00
Clément Bœsch
e4c07dc4b7 Merge commit '1f77e634bb838f71ff21923b5e9fe3104c831c52'
* commit '1f77e634bb838f71ff21923b5e9fe3104c831c52':
  colorspace: Add support for BT709

See 9779b6262471d553c1ed811ff7312564e39d8adf

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-21 22:16:16 +02:00
Clément Bœsch
363d4a0e65 Merge commit '283226e11ccf50a71d25d150fbbf1743f74c6c49'
* commit '283226e11ccf50a71d25d150fbbf1743f74c6c49':
  simple_idct_template: Fix strict aliasing violation

See 5df703aa1b03814e9cd216ab703501481166b3bb

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-21 22:12:36 +02:00
Clément Bœsch
e276f21f99 Merge commit 'e9443105ea4e8bc1d826ddceeba2816488c6ce92'
* commit 'e9443105ea4e8bc1d826ddceeba2816488c6ce92':
  avio: Remove a leftover comment

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-21 22:10:54 +02:00
Clément Bœsch
8df1dbd798 Merge commit '5afb94c817abffad030c6b94d7003dca8aace3d5'
* commit '5afb94c817abffad030c6b94d7003dca8aace3d5':
  Mark read-only tables as static

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-21 22:09:35 +02:00
Clément Bœsch
ea80e90e13 Merge commit '1f1ad8ace040a08edc2646ff638ca42a8828779f'
* commit '1f1ad8ace040a08edc2646ff638ca42a8828779f':
  configure: Document --enable-libfontconfig

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-21 22:03:18 +02:00
Clément Bœsch
d0d9dbec2f Merge commit 'def03d14687b9d089950ba8e45083e666de4eb68'
* commit 'def03d14687b9d089950ba8e45083e666de4eb68':
  vf_frei0r: Drop overly verbose and broken debug output

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-21 22:00:12 +02:00
Clément Bœsch
8ef57a0d61 Merge commit '41ed7ab45fc693f7d7fc35664c0233f4c32d69bb'
* commit '41ed7ab45fc693f7d7fc35664c0233f4c32d69bb':
  cosmetics: Fix spelling mistakes

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-21 21:55:34 +02:00
Aman Gupta
373b82066c avformat/mpegts: include stream type for aac
this removes the need to probe to discover aac streams
inside mpegts containers, thus speeding up initial playback.

Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-21 21:21:30 +02:00
Clément Bœsch
9204a84998 Merge commit '5c31eaa9998b2185e0aa04d11adff128498dc14a'
* commit '5c31eaa9998b2185e0aa04d11adff128498dc14a':
  Remove unnecessary get_bits.h #includes and add missing headers where needed.

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-21 15:42:49 +02:00
Clément Bœsch
3801060cd0 Merge commit 'c11c693accaad65d3f4afa44c27f2338a2e3bf8f'
* commit 'c11c693accaad65d3f4afa44c27f2338a2e3bf8f':
  h264: Drop broken trace debug output

This commit is not merged as the debug was fixed in
94011f994ab2e531a49fabbb2c86e735f87df3ca.

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-21 15:38:52 +02:00
Clément Bœsch
d12cce3fb2 Merge commit '5f1c3cbd524728317bf460259aa8f3ef5ec935c6'
* commit '5f1c3cbd524728317bf460259aa8f3ef5ec935c6':
  vaapi: Drop pointless debug output

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-21 15:36:43 +02:00
Clément Bœsch
14762dd3f3 Merge commit '015c2d923902fcd562571993eaf1231ce388c7f0'
* commit '015c2d923902fcd562571993eaf1231ce388c7f0':
  libopencore-amr: Fix ff_dlog()/av_log() invocations

The log changed in our tree in 4a289624545c559107fac93597b23289a8b15c9f
is kept as is since it's the correct thing to do (the log mentions what
the first byte *was*, so it's refering to the source packet, not the
encoded bitstream).

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-21 15:30:16 +02:00
Clément Bœsch
c01f1157ac Merge commit '0f40c9098498ad90dbbd2380eb4269015e84bde4'
* commit '0f40c9098498ad90dbbd2380eb4269015e84bde4':
  Drop pointless assert.h #includes

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-21 15:26:20 +02:00
Clément Bœsch
82439dec0f Merge commit '74d98d1b0e0e7af444c933ea3c472494de3ce6f2'
* commit '74d98d1b0e0e7af444c933ea3c472494de3ce6f2':
  mpegts: Validate the SL Packet Header Configuration

See e630ca5111077fa8adc972fe8a3d7e2b3e8dc91f

Our local timestamp_len > 64 is adjusted to > 63 to match the Libav
check and the actual specifications (14496-1, 10.2.2).

There is no need to request a sample as it violates the specifications
and such a file would likely be the result of a crafted/fuzzed sample.

On the other hand, the clipping of the value is kept for extra safety.

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-21 14:46:36 +02:00
Matthieu Bouron
0cd5e281df lavc/mediacodecdec_h264: use ff_h264_decode_extradata to extract PPS/SPS
Fixes playback of HLS streams on MediaTek devices which requires PPS/SPS
to be set in their respective csd-{0,1} buffers.
2016-06-21 14:20:57 +02:00
Clément Bœsch
72ed8d8bd2 Merge commit '1982d0cc561912d685a0c2dbe58bc19f50bae231'
* commit '1982d0cc561912d685a0c2dbe58bc19f50bae231':
  fate: Add test for MTS2/MSS4

The timestamps differ because we use a more appropriate timebase.

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-21 14:14:21 +02:00
Clément Bœsch
2c2957e23f Merge commit '375cad096565b0796df2a307faae7619766f7c49'
* commit '375cad096565b0796df2a307faae7619766f7c49':
  rtpdec_vp9: Support parsing the scalability structure

This commit is a noop, see cab237953ea60963c627df53833513a0764ff8fe

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-21 13:44:35 +02:00
Clément Bœsch
f17c65ed83 Merge commit '943f4bea37dc8d510d2f43c0bbe0df59c9b34768'
* commit '943f4bea37dc8d510d2f43c0bbe0df59c9b34768':
  rtpdec_h264: Use avpriv_report_missing_feature instead of a manual av_log

This commit is a noop, see d50b3fe463138a8378d0d0884750bd71db825c82

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-21 13:43:32 +02:00
Clément Bœsch
4e637eb54d Merge commit 'b55e3633d3f60cf0f51269f25936409b79d2729e'
* commit 'b55e3633d3f60cf0f51269f25936409b79d2729e':
  rtpdec: Use AVERROR_PATCHWELCOME instead of AVERROR(ENOSYS) for unimplemented features

This commit is a noop, see 94dee9067acd6439550ccc4bdfef1694814ea0bc

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-21 13:41:35 +02:00
Clément Bœsch
c281028c4d Merge commit '70c77fdfc1076fd7f6cd20079237ddc97e1a10bc'
* commit '70c77fdfc1076fd7f6cd20079237ddc97e1a10bc':
  rtpdec_vp9: Update header parsing to spec draft 02

This commit is a noop, see 43880f971662c6f79f58ffb373200306e155e0f5

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-21 13:38:54 +02:00
Clément Bœsch
d5fb087e03 Merge commit '33b83d89e3720aecc60b4df3d8021cbc5780dd91'
* commit '33b83d89e3720aecc60b4df3d8021cbc5780dd91':
  rtpdec_vp9: Make sure to free the temp buffer on close

This commit is a noop, see 03aa4cd22b4b1522260355c499729c08ce640732

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-21 13:37:50 +02:00
Clément Bœsch
59fced9e26 Merge commit 'c26741332165a049717e6da84db13a24ee8edade'
* commit 'c26741332165a049717e6da84db13a24ee8edade':
  Revert "mmaldec: autodetect by default" since it breaks linking on systems without mmal libraries

This commit is not merged as the previous one wasn't either.

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-21 13:36:32 +02:00
Clément Bœsch
60e862c91f Merge commit '33ac77e850efdfd0e8835950c3d947baffd4df45'
* commit '33ac77e850efdfd0e8835950c3d947baffd4df45':
  mmaldec: autodetect by default

This commit is not merged (it will be reverted in the next one to
merge).

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-21 13:36:07 +02:00
Clément Bœsch
d16aefee5c lavc/mmaldec: reduce some diffs with Libav missed in previous skipped merges 2016-06-21 13:35:36 +02:00
Clément Bœsch
ba5100ce84 Merge commit '74beead9bd596180bcac6108548fc0a86d8eb4ae'
* commit '74beead9bd596180bcac6108548fc0a86d8eb4ae':
  mmaldec: limit internal buffering

See 14a90c9ef09a4b046500dceab5ca1875e330a376

The introduction of the MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS check is
merged.

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-21 13:32:57 +02:00
Clément Bœsch
a826ffb829 Merge commit '45a954f5aa35161a741fffd6c8bb92e9f91a1720'
* commit '45a954f5aa35161a741fffd6c8bb92e9f91a1720':
  mmaldec: print the MMAL format FourCC automatically

This commit is a noop, see d27a12cb0982921e503e68692bb99b6dfe1a6144

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-21 13:25:09 +02:00
Clément Bœsch
7f2626ccda Merge commit '84bba36846870c6269732351c022eeef094c6c83'
* commit '84bba36846870c6269732351c022eeef094c6c83':
  configure: fix mmal build dependencies

This commit is a noop, see 0badf4564a90ffa6f104b275277a6015a1d33905

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-21 13:23:55 +02:00
Clément Bœsch
4db44ea76e Merge commit 'ce589940c2cac936891e8bba275580d6efc41e8b'
* commit 'ce589940c2cac936891e8bba275580d6efc41e8b':
  mmaldec: send only a single EOS packet on flushing

This commit is a noop, see dafe4cd29cada351a2785433b24401fc602911c4

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-21 13:22:22 +02:00
Clément Bœsch
a92efb5987 Merge commit '46aaad78c3cf03d43e7c9ca1d4a8b8a71fb0527d'
* commit '46aaad78c3cf03d43e7c9ca1d4a8b8a71fb0527d':
  mmaldec: correct package buffering accounting

This commit is a noop, see a55fbfa4c4967068a9c37f041110ace9fb633d4e

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-21 13:21:50 +02:00
Clément Bœsch
93c75640c9 Merge commit '9a382f363950c0aab1500aa0937f73bf4dde9ee3'
* commit '9a382f363950c0aab1500aa0937f73bf4dde9ee3':
  mmaldec: add vc1 decoding support

This commit is a noop, see b07cbf6724207ba768ebb2ccdee1b6749fd6ca31

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-21 13:21:06 +02:00
Clément Bœsch
c824c3c47c Merge commit 'd52208e8d549d4c84a2a348aa3790b1a177e779a'
* commit 'd52208e8d549d4c84a2a348aa3790b1a177e779a':
  mmaldec: Add mpeg2 decoding support

This commit is a noop, see 7ebe12fc55591053cbd194ca6638e5c32beaee45

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-21 13:18:47 +02:00
Clément Bœsch
5ffbfe38a5 Merge commit '2689bb115ca64921789092148deaf213a0d94d2e'
* commit '2689bb115ca64921789092148deaf213a0d94d2e':
  mmaldec: Fix avpriv_atomic_get usage

This commit is a noop, see da43e9e157a3c64337348b44193ab390bd481911

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-21 13:06:11 +02:00
Clément Bœsch
b5f9f16582 Merge commit '366ba2dee1f2b17825b42e2164d3b9879f0271b1'
* commit '366ba2dee1f2b17825b42e2164d3b9879f0271b1':
  mmaldec: Use av_assert0() instead of assert()

This commit is a noop, see c0152ebb9e0501b9d3d4386531995683a4ac824c

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-21 13:04:40 +02:00
Clément Bœsch
5605c1b3c0 Merge commit 'f2422b58756ba97e3cbadc190f1ed950aa201ec7'
* commit 'f2422b58756ba97e3cbadc190f1ed950aa201ec7':
  testprogs: Mark some tables as static const

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-21 12:58:56 +02:00
Clément Bœsch
7cf4b442ce Merge commit '5b1409c75563b4a3aca113c34d09e3b5442de47f'
* commit '5b1409c75563b4a3aca113c34d09e3b5442de47f':
  fate: Add test for MSS1

Test was already present, see 849e55e58ecc6815e8bd326ac18dda748db48682.

The merge removes the audio decoding present in our version and
simplifies the rules.

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-21 12:50:03 +02:00
Clément Bœsch
f36fcf7b6c Merge commit '4b2e69397b84d1c1a29ffae6e9f106f2c32b1869'
* commit '4b2e69397b84d1c1a29ffae6e9f106f2c32b1869':
  dds: Add support for monochrome images

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-21 12:29:46 +02:00
Clément Bœsch
c8b0d2eb8c Merge commit '6eb2505855fa832ba7d0a1c2fb9f92c41c5446e3'
* commit '6eb2505855fa832ba7d0a1c2fb9f92c41c5446e3':
  dds: Drop gray-alpha swapping

This commit is not merged, see 139cbeb75e0f5e3176b2b09660d2570b1bcc2408.

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-21 12:17:12 +02:00
Clément Bœsch
28dcf18706 Merge commit '39cdbb12aa2140520246bc4c3e22436b9f8a121a'
* commit '39cdbb12aa2140520246bc4c3e22436b9f8a121a':
  dxva2_h264: Unbreak compilation after 3176217c6

This commit is a noop. The compilation was fixed in the merge commit
itself (1534ef87c74cc66a117bf61c467641c2129bc964). The additional local
unused sps is not merged.

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-21 11:38:53 +02:00
Clément Bœsch
93a0f4a3cb Merge commit '4012fe1ee819edc7689e182189e66c5401fb4b41'
* commit '4012fe1ee819edc7689e182189e66c5401fb4b41':
  ape: Unbreak adaptcoeffs computation

This commit is a noop, see dd4fb2339f76a958bd7e63e5ac18b8c10852ae1a

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-21 11:30:29 +02:00
Clément Bœsch
2c0854f724 Merge commit '2e5bde956519ae19cedfa482e199518e495bcaf5'
* commit '2e5bde956519ae19cedfa482e199518e495bcaf5':
  h264: eliminate max_contexts

This commit is a noop as max_contexts can change and mismatch the
nb_slice_ctx (see 507b01f89969601f15555f7416804fb691632cbb).

The file in the Ticket is not decodable anymore, so it was not possible
to check if that code path was triggerable some way or another, or even
test a different fix.

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-21 11:29:01 +02:00
Anton Khirnov
606fb6c032 h264: call the hwaccel frame_start() from h264_field_start()
This is a more appropriate place for it.
2016-06-21 11:19:51 +02:00
Anton Khirnov
d1d7678040 h264: fix the check for mixed IDR/non-IDR slices 2016-06-21 11:19:19 +02:00
Anton Khirnov
b13fc1e344 h264: do not pass H264Context to h264_slice_header_parse()
This should make it more clear that this function does not need any
decoder-global state other than the parameter sets.
2016-06-21 11:18:44 +02:00
Anton Khirnov
996f13413b h264: fix warnings in fill_filter_caches_inter()
The code does some weird casting to a 2-dimensional sub-array of
ref2frm. This is not necessary, since only one dimension is needed
there.
2016-06-21 11:18:15 +02:00
Anton Khirnov
bc7f426851 h264: drop tests whether the codec id is AV_CODEC_ID_H264
Those are unused remnants of the old SVQ3 code.
2016-06-21 11:17:59 +02:00
Anton Khirnov
8281cd5cb8 h264_cabac: drop an always true condition 2016-06-21 11:17:53 +02:00
Anton Khirnov
5c2fb561d9 h264: add H264_ prefix to the NAL unit types
This will prevent conflicts e.g. in code that deals with both h264 and
hevc.
2016-06-21 11:17:28 +02:00
Anton Khirnov
1cf2f3d334 h264_sei: drop an unnecessary h264dec.h include
The code does not depend on the h264 decoder anymore and only needs
information from h264_ps
2016-06-21 11:15:44 +02:00
Anton Khirnov
b24dafe105 lavc: drop unnecessary h264dec.h includes 2016-06-21 11:15:11 +02:00
Anton Khirnov
70b1dcef2d h264: tighten the valid range for ref_frame_count
This field (which the spec calls max_num_ref_frames) must be less than
or equal to MaxDpbFrames, which is at most 16.
2016-06-21 11:14:07 +02:00
Anton Khirnov
f638b67e57 h264: move the parameter set definitions to a new header file
The PS parsing code is independent from the decoder, so it makes more
sense for it to have its own separate header.
2016-06-21 11:13:29 +02:00
Anton Khirnov
4e2f621248 svq3: stop using H264Picture
The SVQ3 decoder has been decoupled from the H.264 decoder, so it can
now use its own data type.
2016-06-21 11:13:08 +02:00
Anton Khirnov
251cbb4400 h264: create a new header for common h264 definitions
Move the NAL unit types into it. This will allow to stop including the
whole decoder-specific h264dec.h in some code that is unrelated to the
decoder and only needs some enum values.
2016-06-21 11:12:41 +02:00
Anton Khirnov
9df889a5f1 h264: rename h264.[ch] to h264dec.[ch]
This is more consistent with the naming of other decoders.
2016-06-21 11:11:26 +02:00
Anton Khirnov
f651c6a259 h264: factor out setting frame properties / side data
Right now this code is mixed with selecting the next output frame. Move
it to a separate function called from h264_field_start(), which is a
more appropriate place for this.
2016-06-21 11:10:58 +02:00
Anton Khirnov
19446dc5ff h264: drop unused NAL_FF_IGNORE 2016-06-21 11:10:46 +02:00
Anton Khirnov
bcd91f1644 h264: move a per-field block from decode_slice_header() to field_start()
This is a more appropriate place for it.
2016-06-21 11:10:29 +02:00
Anton Khirnov
17e7c03e12 h264: only allow ending a field/starting a new one before finish_setup()
Doing this after ff_thread_finish_setup() is called is invalid and can
conflict with reads from the other thread.
2016-06-21 11:10:00 +02:00
Anton Khirnov
debca90863 h264: store {curr,max}_pic_num in the per-slice context
While the value of those variables will be constant for the whole frame,
they are only used in two functions called from slice header decoding.
Moving them to the per-slice context allows us to make the H264Context
passed to slice_header_parse() constant.
2016-06-21 11:09:21 +02:00
Anton Khirnov
f966498e43 h264: decode the poc values from the slice header into the per-slice context
Copy them into the decoder-global context in field_start(). This avoids
modifying the decoder-global context during bitstream parsing.
2016-06-21 11:08:56 +02:00
Anton Khirnov
54dd9b1cdd h264: set mb_aff_frame in frame_start()
Avoid unnecessary modification of the decoder-global state in per-slice
code.
2016-06-21 11:08:32 +02:00
Anton Khirnov
8d36932c8d h264: move the block starting a new field out of slice_header_parse()
There is no bitstream parsing in that block and messing with
decoder-global state is not something that belongs into header parsing.

Nothing else in this function depends on the value of current_slice,
except for two validity checks. Those checks are also moved out of
slice_header_parse().
2016-06-21 11:08:03 +02:00
Anton Khirnov
b25cd7540e h264: pass a H2645NAL to slice header decoding
Replace the decoder-global nal_unit_type/nal_ref_idc variables with the
per-NAL ones. The decoder-global ones still cannot be removed because
they are used by hwaccels.
2016-06-21 11:07:10 +02:00
Clément Bœsch
dea0a2b69a Merge commit 'e3c9041cfe2e6526802255583d27abf9a921863e'
* commit 'e3c9041cfe2e6526802255583d27abf9a921863e':
  h264: allocate some tables per slice contexts, not threads

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-21 10:28:14 +02:00
Clément Bœsch
04aefe205b Merge commit 'e0652795292223f8bc8e5bac019c1fca7323d23c'
* commit 'e0652795292223f8bc8e5bac019c1fca7323d23c':
  h264: remove an artificial restriction on the number of slice threads

Tested with multiple runs of fate-h264 THREADS=50 THREAD_TYPE=slice

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-21 10:24:31 +02:00
Clément Bœsch
26cfafa52d lavc/h264_slice: mark ref2frm as const pointers 2016-06-21 10:09:19 +02:00
James Almer
afd04058bc avformat/oggparsevorbis: free base64 encoded data immediately after decoding it
It has no use afterwards and freeing it before calling ff_flac_parse_picture()
may help prevent OOM issues on memory constrained scenarios.

Signed-off-by: James Almer <jamrial@gmail.com>
2016-06-20 23:04:42 -03:00
James Almer
8b5b756c4d avformat/oggparsevorbis: use the base64 decode size macro
Allocate the memory needed for the decoded data rather than the
encoded data.

Signed-off-by: James Almer <jamrial@gmail.com>
2016-06-20 23:04:35 -03:00
Muhammad Faiz
6031e5d1af swresample/x86: add support for exact_rational
phase_shift and phase_mask is removed
generally exact_rational=on is faster than exact_rational=off

Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
2016-06-21 05:18:21 +07:00
Vittorio Giovara
523c4c5b70 fate: Add TrueMotion 2 RT tests 2016-06-20 15:51:34 -04:00
Vittorio Giovara
906ffed9b1 fate: Move Duck Truemotion 1 and 2 tests to vpx.mak 2016-06-20 15:49:09 -04:00
Paul B Mahol
470cd0c5fe Add TrueMotion 2.0 Real Time decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-06-20 15:48:12 -04:00
Vittorio Giovara
cc58656aca fate: Add tests for MagicYUV 2016-06-20 15:47:23 -04:00
Paul B Mahol
d78fd2fa21 Add MagicYUV decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-06-20 15:45:51 -04:00
Clément Bœsch
d0bde818ac MAINTAINERS: update my entries 2016-06-20 21:32:23 +02:00
Benjamin Larsson
ce028bc350 Remove Benjamin Larsson from MAINTAINERS
Signed-off-by: Lou Logan <lou@lrcd.com>
2016-06-20 11:19:45 -08:00
Petru Rares Sincraian
bc370c8f68 fate: add test for alimiter
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-20 20:15:20 +02:00
Matthieu Bouron
0ea58059d6 lavc/h264_ps: add ff_h264_ps_uninit and use it 2016-06-20 16:09:09 +02:00
Matthieu Bouron
acfab2dce6 lavf/mov: ignore ctts entries that do not apply to a least one sample
Fixes packet pts of samples which contain ctts entries with count <= 0.
2016-06-20 15:43:14 +02:00
Clément Bœsch
0528410e04 Merge commit '4fd34e639d15b44e02686c9b4ef58c9c3c9b0a69'
* commit '4fd34e639d15b44e02686c9b4ef58c9c3c9b0a69':
  h264: remove pointless setting of some variables in loop_filter

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-20 15:38:11 +02:00
Clément Bœsch
fabdb7505a Merge commit '9c858ce33fa9b94ebc320dd9d9fa423e708e90cc'
* commit '9c858ce33fa9b94ebc320dd9d9fa423e708e90cc':
  h264: remove a pointless comment

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-20 15:36:44 +02:00
Clément Bœsch
4053989890 Merge commit 'b77fffa127663028169c5ed543956af4b9496c29'
* commit 'b77fffa127663028169c5ed543956af4b9496c29':
  h264: make slice threading work with deblocking_filter=1

again label, and SLICE_SINGLETHREAD error handling are preserved as that
SLICE_SINGLETHREAD can be raised on a remaining case.

slice_context_count is also kept since it's still in use.

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-20 15:34:26 +02:00
Clément Bœsch
c8f7a23319 Merge commit '370ddc7b38d6b27b54fc2f5ee5f3dd9506f8c7c8'
* commit '370ddc7b38d6b27b54fc2f5ee5f3dd9506f8c7c8':
  h264: remove H264Context.pict_type

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-20 12:48:49 +02:00
Clément Bœsch
0ab1816315 Merge commit '56087ec0a29314d1860f6f0e6f40fbb9b40feccd'
* commit '56087ec0a29314d1860f6f0e6f40fbb9b40feccd':
  h264: drop a pointless indirection

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-20 12:31:29 +02:00
Carl Eugen Hoyos
dcdf69561f lavc/audiotoolboxdec: Forward extradata for QDMC and QDM2.
Fixes audiotoolbox decoding of QDMC and QDM2.
2016-06-20 12:23:59 +02:00
Clément Bœsch
cbe2dc7275 Merge commit '0e7772c5e4f1b31e2a3dda714ba4f89b1cca644a'
* commit '0e7772c5e4f1b31e2a3dda714ba4f89b1cca644a':
  h264: remove unused H264SliceContext.rbsp_buffer

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-20 12:07:10 +02:00
Clément Bœsch
c957909a9f Merge commit '7f045c4429e91688f1f2335dd347203431901c06'
* commit '7f045c4429e91688f1f2335dd347203431901c06':
  h264: merge ff_h264_free_context() into h264_decode_end()

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-20 12:03:21 +02:00
Clément Bœsch
d98ca4b14c Merge commit '99c554efc8b09c3f1bb2fb41c3da5431085f7470'
* commit '99c554efc8b09c3f1bb2fb41c3da5431085f7470':
  h264: eliminate low_delay

ff_print_debug_info2() is adjusted to allow a NULL pointer as low_delay.
It's only useful for MPEG codecs with the exception of H264.

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-20 11:47:40 +02:00
Clément Bœsch
38a2d9aeec lavc/h264_parser: replace AVCodecContext with logging ctx in scan_mmco_reset() 2016-06-20 10:36:16 +02:00
Clément Bœsch
4fdea02d68 lavc/h264: add a logging ctx to ff_h264_pred_weight_table() 2016-06-20 10:36:16 +02:00
Matthieu Bouron
432891a96e lavc/mediacodecdec{,_h264}: set FF_CODEC_CAP_SETS_PKT_DTS capability
And sets frames pkt_dts to AV_NOPTS_VALUE as we do not want lavc/utils
to overwrite the field with incorrect values as the decoder is
asynchronous.
2016-06-20 10:07:41 +02:00
Dan Dennedy
b8d754c5d0 lavc/videotoolbox: Fix videotoolbox compile error on OS X 10.8.
Fixes error:
libavcodec/videotoolbox.c:511:18: error: implicit declaration of function
'CMVideoFormatDescriptionCreateFromH264ParameterSets' is invalid in C99

This was added in 10.9:
https://developer.apple.com/reference/coremedia/1489818-cmvideoformatdescriptioncreatefr?language=objc
2016-06-19 21:52:56 -04:00
Marton Balint
e07b8d68f5 avformat/mux: do not call write_packet with a flush packet if header is not written
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-06-20 00:27:26 +02:00
Marton Balint
517fe64406 avformat/mux: do not call write_header multiple times if it fails the first time
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-06-20 00:27:26 +02:00
Thomas Mundt
b577d42183 doc/filters.texi: Move bwdif to correct alphabetical position
Signed-off-by: Thomas Mundt <loudmax@yahoo.de>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-06-19 19:24:03 -03:00
Michael Niedermayer
dfbb5de172 tests/api/api-codec-param-test: Do not directly access caps_internal
The caps_internal field has moved without major bump and direct
access causes crashes, found when testing 3.1

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-20 00:08:45 +02:00
Michael Niedermayer
3fd0694a11 avformat/version: Change the version bumping comment
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-20 00:08:45 +02:00
Marton Balint
e32857f30e ffplay: ensure that we buffer at least 1 second of content
In order to do that, we keep track of the total duration of packets in a packet
queue.

Signed-off-by: Marton Balint <cus@passwd.hu>
2016-06-19 23:35:22 +02:00
Marton Balint
8594a8fbf9 ffplay: factorize checking if a stream needs additional packets
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-06-19 23:35:22 +02:00
Marton Balint
cc16229d91 avformat/udp: replace packet_gap with bitrate option
We haven't had a stable release since the packet_gap addition, so probably it
is worth reworking the option to something that makes more sense to the end
user. Also add burst_bits option to specify maximum length of bit bursts.

Signed-off-by: Marton Balint <cus@passwd.hu>
2016-06-19 22:55:57 +02:00
Marton Balint
0a06569487 avformat/udp: do not accumulate packet_gap delay errors
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-06-19 22:54:57 +02:00
Thomas Mundt
8b7b52c863 avfilter/vf_bwdif: Change default to deinterlace all frames
Signed-off-by: Thomas Mundt <loudmax@yahoo.de>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-06-19 17:02:09 -03:00
Clément Bœsch
fd1d84bcf6 lavc/magicyuv: fix undefined behaviour introduced in 8a135a55b
Order of evaluation of parameters in C is not defined.
2016-06-19 19:01:14 +02:00
Carl Eugen Hoyos
e274113292 lavc/cafenc: Allow QDMC muxing. 2016-06-19 18:51:39 +02:00
James Almer
5f5a97dc3d avcodec/qsvenc_h264: declare the QSVEncContext variable before using it
Should fix compilation.

Regression introduced by commit 63adb3602d3b35c5d1df14cf1e477bc458f96b7b

Signed-off-by: James Almer <jamrial@gmail.com>
2016-06-19 12:04:03 -03:00
Clément Bœsch
c3afe64d0c Merge commit '5b35b290dd76db64f079b3940f6148c8f273fc17'
* commit '5b35b290dd76db64f079b3940f6148c8f273fc17':
  h264: remove a stale comment

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-19 13:48:09 +02:00
Clément Bœsch
d5cfe23324 Merge commit '89ae244e78a8d636fbb8427a2da052b04cf710bd'
* commit '89ae244e78a8d636fbb8427a2da052b04cf710bd':
  h264_refs: remove an unused parameter from ff_h264_fill_mbaff_ref_list()

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-19 13:45:59 +02:00
Clément Bœsch
222e7d23d0 Merge commit '755f79f84cbeb5d749fb120e55e0098a2d7663a0'
* commit '755f79f84cbeb5d749fb120e55e0098a2d7663a0':
  h264_refs: make the H264Context const where possible

ff_h264_decode_ref_pic_list_reordering() and h264_initialise_ref_list()
do not have a const H264Context * as they modify the default_ref inside
that context.

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-19 13:36:33 +02:00
Clément Bœsch
902862bb4b Merge commit 'a2fd547839d3ef8f342b6f2c096d0887675d3b1a'
* commit 'a2fd547839d3ef8f342b6f2c096d0887675d3b1a':
  h264_refs: reorder functions to avoid forward declarations

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-19 13:04:17 +02:00
Clément Bœsch
98456d4d69 Merge commit '0ba471d7d864c712f45d7ac6aca4829aba025adc'
* commit '0ba471d7d864c712f45d7ac6aca4829aba025adc':
  h264: eliminate copy_fields

Added a copy of default_ref which isn't present in Libav.

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-19 13:00:28 +02:00
Clément Bœsch
0ed14bba12 Merge commit '72da8d9bb24d1b1bf74c2f1108650c0da0054d2e'
* commit '72da8d9bb24d1b1bf74c2f1108650c0da0054d2e':
  h264_parser: remove the remaining dependencies on the h264 decoder

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-19 12:50:24 +02:00
Clément Bœsch
34ec084b84 lavc/h264: move history parsing variable to H264ParseContext
This makes h264_find_frame_end() not depend on H264Context anymore.
2016-06-19 12:38:28 +02:00
Clément Bœsch
48ea5433c8 lavc/h264_parser: pass logctx to h264_find_frame_end()
This helps removing the H264Context from the H264ParseContext.
2016-06-19 12:34:38 +02:00
Clément Bœsch
0bf5fd2e19 Merge commit '98c97994c5b90bdae02accb155eeceeb5224b8ef'
* commit '98c97994c5b90bdae02accb155eeceeb5224b8ef':
  h264: decouple extradata parsing from the decoder

Main changes:

- move get_avc_nalsize() inside h264_parser.c and make it use
  H264ParseContext instead of H264Context. This helps fixing
  fate-flv-demux.

- Also use is_avc/nal_length_size from the H264ParseContext in various
  places instead of the H264Context one as that's the fields now filled
  by ff_h264_decode_extradata()

- h264_parse: dont fail decode_extradata_ps() due to nal split failure.
  Change by Michael to fix decoding of h264/ref_10.avi.

Merged-by: Clément Bœsch <u@pkh.me>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-19 12:17:41 +02:00
Paul B Mahol
8a135a55b3 avcodec/magicyuv: check dimensions
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-06-19 09:45:29 +02:00
Andrey Turkin
63adb3602d libavcodec: factor out SEI generation for A53 captions
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-19 02:11:20 +02:00
Michael Niedermayer
0fcc252829 Revert "avfilter/trim: add compatibility layer to not break ABI used by ffmpeg"
This reverts commit 9219ec93b145725ac74fbfbde7f67ac5135b85cf.

Fixes Ticket 5411
2016-06-19 01:19:32 +02:00
Clément Bœsch
b51d5c99b8 lavc/h264_parse: remove tabs introduced in a2922b5d 2016-06-18 14:10:00 +02:00
Clément Bœsch
5584f019b5 Merge commit '728d90a0c1973661a9e73da697bf4f90c9d19577'
* commit '728d90a0c1973661a9e73da697bf4f90c9d19577':
  h264: decouple h264_sei from the h264 decoder

Main changes:

- SEI decoding doesn't have access to the debug flag in the codec context so a
  few logging are dropped.

- naming of quincunx_sampling_flag and frame_packing_arrangement_type are kept
  as they are in FFmpeg instead of respectively quincunx_subsampling and
  arrangement_type used in Libav because the former match the specifications.

- don't reset the x264 build info once read in order to fix
  fate-h264-lossless (change by Hendrik)

- H264Context.has_recovery_point and deprecated
  AVCodecContext.dtg_active_format are set after ff_h264_sei_decode()
  based on the SEI state since ff_h264_sei_decode() doesn't have access
  to H264Context anymore.

- frame_packing_arrangement_type is not checked against <= 0 in
  decode_postinit() since it is always read as a positive value with
  get_bits(). This fixes a -Wtype-limits warning by GCC spotted by
  Michael.

Side Notes:

- tested that ffprobe on the file from ticket #3652 still returns 4
  keyframes
- tested that playback from ticket #3063 still works

Merged-by: Clément Bœsch <clement@stupeflix.com>
Signed-off-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-06-18 14:04:55 +02:00
Jerome Martinez
ec9f04423b ffv1: Error out on unsupported format
Transparency is supported only by YUV and within specific bit depths.
2016-06-18 12:46:43 +02:00
James Almer
403a53c60e avcodec/ffv1enc: silence warning about deprecated coded_frame
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-06-17 16:53:13 -03:00
Michael Niedermayer
4efbeadadc avcodec/snow: Document BlockNode
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-17 21:48:34 +02:00
Michael Niedermayer
737f06577c avcodec/snow: Remove unused function
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-17 21:48:34 +02:00
Martin Storsjö
105998fb5c checkasm: Add tests for h264 idct
The tests are inspired by similar tests for vp9 by
Ronald Bultje.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-06-17 21:37:56 +03:00
Clément Bœsch
6cb550e933 lavc/videotoolbox: remove config_info maximum capacity
In case of extradata, config_info will contain two entries instead of
one.
2016-06-17 17:46:19 +02:00
Clément Bœsch
6fd58eba1c lavc/videotoolbox: CFRelease() session
"When you are done with a decompression session you created, call
VTDecompressionSessionInvalidate to tear it down and then CFRelease to
release your object reference."
2016-06-17 17:46:19 +02:00
Clément Bœsch
2770e16d70 fate/h264: add test for ticket #631 2016-06-17 17:46:19 +02:00
Vittorio Giovara
846a3e78a5 mov: Support prores with multiple stsd
This function needs to return false, or data in the additional tables
will be skipped, and the decoder will not be able to decode frames
associated with them.
2016-06-17 11:38:33 -04:00
Vittorio Giovara
7672997004 mov: Implement support for multiple sample description tables
Store data from each stsd in a separate extradata buffer, keep track of
the stsc index for read and seek operations, switch buffers when the
index differs. Decoder is notified with an AV_PKT_DATA_NEW_EXTRADATA
packet side data.

Since H264 supports this notification, and can be reset midstream, enable
this feature only for multiple avcC's. All other stsd types (such as
hvc1 and hev1) need decoder-side changes, so they are left disabled for
now.

This is implemented only in non-fragmented MOVs.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-06-17 11:38:33 -04:00
Vittorio Giovara
187d719760 h264: Support AV_PKT_DATA_NEW_EXTRADATA 2016-06-17 11:05:33 -04:00
Vittorio Giovara
75872d77d2 lavc: Document AV_PKT_DATA_NEW_EXTRADATA 2016-06-17 11:02:40 -04:00
Kongqun Yang
54327c2b34 Add experimental support for vp9 in iso-bmff
Implemented according to the draft specification
"VP Codec ISO Media File Format Binding":
http://www.webmproject.org/vp9/#draft-vp-codec-iso-media-file-format-binding

'-strict -2' is required to use this feature.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2016-06-17 10:36:09 -04:00
Muhammad Faiz
7f1b503ec2 swresample/resample: do not increase phase_count on exact_rational
high phase_count is only useful when dst_incr_mod is non zero
in other word, it is only useful on soft compensation

on init, it will build filter with low phase_count
but when soft compensation is enabled, rebuild filter
with high phase_count

this approach saves lots of memory

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
2016-06-17 16:02:49 +07:00
Muhammad Faiz
ee575acb8c swresample/resample: add support for odd phase_count
because exact_rational does not guarantee
that phase_count is even

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
2016-06-17 16:00:13 +07:00
Steve Lhomme
193a421994 d3d11va: don't keep the context lock while waiting for a frame
also fixes a deadlock found by Денис Кулаков <kudesnik33ra@gmail.com>

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-17 08:39:41 +02:00
Rick Kern
8b069b1cd5 lavc/videotoolboxenc: remove unnecessary logging
Signed-off-by: Rick Kern <kernrj@gmail.com>
2016-06-16 21:22:13 -04:00
Rick Kern
2584299ae6 MAINTAINERS: Add myself for videotoolbox.c, remove vda* maintainer
Person in MAINTAINERS hasn't responded to a patch on the ML or private
email, and doesn't maintain the files according to git.

Signed-off-by: Rick Kern <kernrj@gmail.com>
2016-06-16 21:16:24 -04:00
Rick Kern
8e47a99f57 lavc/videotoolbox: fix H.264 hwaccel init issue
Fixes VTDecompressionSessionCreate() error.

Signed-off-by: Rick Kern <kernrj@gmail.com>
2016-06-16 21:06:45 -04:00
Rick Kern
143685a42b lavc/audiotoolboxenc: fix dropped frames on iOS
AudioConverterFillComplexBuffer() doesn't always call its callback. A frame
queue is used to prevent skipped audio samples.

Signed-off-by: Rick Kern <kernrj@gmail.com>
2016-06-16 21:02:41 -04:00
Yuri Zats
ebda8216dc avformat/http: change seek_ret to int64
Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-16 23:55:21 +02:00
Jan Sebechlebsky
f5273197dc avutil/threadmessage.h: Fix swapped comments
Fix swapped descriptions of av_thread_message_queue_set_err_send
and av_thread_message_queue_set_err_recv.

Signed-off-by: Jan Sebechlebsky <sebechlebskyjan@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-06-16 23:54:51 +02:00
James Almer
94011f994a avodec/h264dec: fix compilation with -DTRACE
Signed-off-by: James Almer <jamrial@gmail.com>
2016-06-16 18:52:23 -03:00
Petru Rares Sincraian
c4a82194e0 fate: add test for agate
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-16 23:39:52 +02:00
Martin Storsjö
f1a9eee41c x86: Add missing movsxd for the int stride parameter
Signed-off-by: Martin Storsjö <martin@martin.st>
2016-06-17 00:11:21 +03:00
Paul B Mahol
6098d4b8a8 avcodec/sheervideo: check build_vlc for failure
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-06-16 23:05:30 +02:00
Niklas Söderlund
6fd4145a1e lavd/v4l2: allow devices not implementing VIDIOC_G_PARM
Not all v4l2 devices implement the VIDIOC_G_PARM ioctl. This patch allow
ffmpeg to open such device and treat it the same as devices that do
implement the ioctl but returns that it do not implement the
V4L2_CAP_TIMEPERFRAME capability.

Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Reviewed-by: Benoit Fouet <benoit.fouet@free.fr>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-16 16:27:35 +02:00
Michael Niedermayer
eaa11437a4 doc/APIchanges: Fill in some missing things
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-15 23:27:38 +02:00
Muhammad Faiz
f92b56de96 fate: add swr-resample_exact_async tests
Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
2016-06-16 00:21:39 +07:00
Carl Eugen Hoyos
aec96e233f lavc/dpx: Support decoding 12 bit colourspace with transparency information. 2016-06-15 17:45:51 +02:00
Matthieu Bouron
346b3c5c41 lavc/mediacodec: re-indent after previous commit 2016-06-15 16:40:36 +02:00
Matthieu Bouron
e452abc5c2 lavc/mediacodec: refactor ff_AMediaCodecList_getCodecByType
Allows to select a codec (encoder or decoder) only if it supports a
specific profile.

Adds ff_AMediaCodecProfile_getProfileFromAVCodecContext to convert an
AVCodecContext profile to a MediaCodec profile. It only supports H264
for now.

The codepath using MediaCodecList.findDecoderForFormat() (Android >= 5.0)
has been dropped as this method does not allow to select a decoder
compatible with a specific profile.
2016-06-15 16:36:13 +02:00
Benjamin Steffes
5b95b4616a avfilter/af_hdcd: Use int32_t instead of int for gaintable in hdcd filter.
Signed-off-by: Benjamin Steffes <benjaminst123@gmail.com>

(comment by ronald)
prevent the theoretical case where the container type (int)
would be 64 bit on some platforms, which would waste some space

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-15 14:30:50 +02:00
dsmudhar
7a2b9dd060 vf_codecview: added new options
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-15 13:56:07 +02:00
Benoit Fouet
2234566cfb hls muxer doc: clarify segment splitting option
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-15 11:28:04 +02:00
Hendrik Leppkes
cb46b78b2e os_support: use the appropriate stat functions matching the stat type
The stat struct is defined to stati64, which requires using the appropriate wstati/stati functions as well.
Fixes a whole bunch of compiler warnings as well as build breakage with the decklink avdevice.

Fixes trac #5640
2016-06-14 23:49:42 +02:00
Aman Gupta
ddffafc0b0 avformat/utils: in debug mode, print number of streams found before avformat_find_stream_info()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-14 21:37:21 +02:00
Aman Gupta
e9391ab121 avformat/mpegts: enhance logging in trace mode
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-14 21:34:23 +02:00
Michael Niedermayer
fa0097e008 avfilter/vf_telecine: Make frame writable before writing into it
Fixes Ticket 5627

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-14 18:08:56 +02:00
James Almer
ede4ec1f8f x86/aacpsdsp: optimize add_squares loop
Signed-off-by: James Almer <jamrial@gmail.com>
2016-06-14 12:41:23 -03:00
Carl Eugen Hoyos
d5ded429f2 lavc/dpx: Support decoding 10 bit colourspace with transparency information.
Fixes one sample from ticket #5639.
2016-06-14 17:02:34 +02:00
Stefano Sabatini
6bcc6fd55d doc/muxers/mpegts: apply misc consistency/formatting fixes 2016-06-14 12:11:04 +02:00
Stefano Sabatini
4b5620446a lavf/utils: fix timestamp trace log in estimate_timings() function
Use the correct timebase, also replace "stream" with "format" in the
context of the format.
2016-06-14 12:11:04 +02:00
Diego Biurrun
a2ddfadc2d avdevice: Ignore timefilter test program 2016-06-14 11:14:06 +02:00
Diego Biurrun
d6c2c2796d LICENSE: Fix silly typo 2016-06-14 11:14:06 +02:00
Diego Biurrun
84b2d3fb68 h264: Drop unused function check_opcodes() 2016-06-14 11:14:06 +02:00
Clément Bœsch
7dd8cd1933 lavc/h264_sei: fix broken style around green metadata code 2016-06-14 08:23:23 +02:00
Clément Bœsch
5342bb624d lavc/h264: rename GreenMetaData to H264SEIGreenMetaData
Reduces diff for the next merge with Libav.
2016-06-14 08:23:23 +02:00
Clément Bœsch
b0ec36c9b1 lavc/h264_sei: reduce scope of parameters for green meta decode
This is again will help the merge as ff_h264_decode_sei will not have
access to H264Context anymore.
2016-06-14 08:23:23 +02:00
Clément Bœsch
fef89aae98 lavc/h264: move green meta logging out of the sei decoding
This will simplify the next Libav merge where SEI decoding doesn't have
access to the debug level anymore.
2016-06-14 08:23:23 +02:00
Martin Storsjö
cab237953e rtpdec_vp9: Support parsing the scalability structure
We still only support one single layer though, but this allows
receiving streams that have this structure present even for
single layer streams.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-06-14 08:00:17 +02:00
Martin Storsjö
d50b3fe463 rtpdec_h264: Use avpriv_report_missing_feature instead of a manual av_log
Signed-off-by: Martin Storsjö <martin@martin.st>
2016-06-14 08:00:17 +02:00
Martin Storsjö
94dee9067a rtpdec: Use AVERROR_PATCHWELCOME instead of AVERROR(ENOSYS) for
unimplemented features

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-06-14 08:00:17 +02:00
Martin Storsjö
43880f9716 rtpdec_vp9: Update header parsing to spec draft 02
Signed-off-by: Martin Storsjö <martin@martin.st>
2016-06-14 08:00:17 +02:00
Martin Storsjö
03aa4cd22b rtpdec_vp9: Make sure to free the temp buffer on close
Signed-off-by: Martin Storsjö <martin@martin.st>
2016-06-14 08:00:17 +02:00
Michael Niedermayer
228568fc8a fate: fate-filter-acrossfade needs samples
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-14 04:27:54 +02:00
Michael Niedermayer
00c4861f13 avformat/mpegts: adjust probe score for low check_count
Fixes mis-detection of tiff as mpegts
Fixes Ticket5565

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-14 02:20:10 +02:00
Marton Balint
9da27fb579 avformat/mux: factorize header writing code
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-06-13 22:43:22 +02:00
Marton Balint
301ead1313 avformat/mux: call deinit if write_header fails
Docs clearly states that av_write_trailer should only be called if
avformat_write_header was successful, therefore we have to deinit if we return
failure.

Signed-off-by: Marton Balint <cus@passwd.hu>
2016-06-13 22:43:22 +02:00
Marton Balint
4bee44007a avformat/mxfdec: check if source_package is NULL
Fixes ticket #5554.

Reviewed-by: Tomas Härdin <tomas.hardin@codemill.se>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-06-13 22:43:22 +02:00
Clément Bœsch
7a2a8b541a lavc/h264_sei: fix green metadata typo 2016-06-13 22:41:38 +02:00
Jérôme Martinez
878c3a3645 avcodec/ffv1dec: fix some unsupported pix_fmt
When checking pix_fmt mapping, some bitstreams are mapped to an
incorrect pix_fmt instead of being rejected (ENOSYS).
Actually, such bitstreams are not supported (FFmpeg encoder does not
produce such bitstream, such bitstream may come only from another
encoder for the moment).

- JPEG 2000 RCT 11/13/15/16 bit depths are mapped to a 8-bit FFmpeg
pix_fmt (e.g. bgr0), which is not expected.
- JPEG 2000 RCT 9/10/12/14 bit depths with alpha are mapped to a
FFmpeg pix_fmt without alpha (e.g. AV_PIX_FMT_GBRP9 for 9-bit with
alpha), which is not expected.

The order for choosing the pix_fmt is changed to the one used by YCbCr
selection (<=8 bit first).
" && !f->transparency" is added to the other lines.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-13 22:07:35 +02:00
Thomas Bernard
836f3555a8 avformat/au: Read MetaData from AU Sun audio file header
recognize title= album= artist= genre= track=

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-13 20:58:43 +02:00
Michael Niedermayer
4879841d15 avformat/dump: Show coded dimensions again
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-13 20:26:21 +02:00
Vittorio Giovara
05a4bacbf7 avpacket: Error out when creating 0-sized side data
This mimics the behaviour of other av_*_new_side_data().
This is not caught by the malloc check, since padding
is always added to the allocated size.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-06-13 13:31:21 -04:00
Thomas Volkert
1f872332c4 rtpdec_vc2hq: avoid magic number 2016-06-13 18:40:14 +02:00
Thomas Volkert
668fb1cb6a rtpenc: packetizer for VP9 RTP payload format (draft v2) 2016-06-13 18:09:34 +02:00
Vittorio Giovara
bcc07e2576 pixdesc: Use C99 array to list color properties names 2016-06-13 11:51:18 -04:00
Michael Niedermayer
60de31e98c avformat/utils: Export coded dimensions unconditionally
This fixes a API regression
Probably fixes Ticket5451

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-13 13:07:55 +02:00
Muhammad Faiz
6602361295 avfilter/graphparser: remove '\n' from parse_filter
this allow a filter to be written like this:
aformat =
    sample_fmts  = fltp|flt:
    sample_rates = 44100|44800

Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
2016-06-13 16:17:53 +07:00
Muhammad Faiz
0b8dcb3349 doc/resampler: add exact_rational option
Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
2016-06-13 13:12:05 +07:00
Muhammad Faiz
241e250520 fate: add libswresample exact_rational test
Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
2016-06-13 12:36:09 +07:00
Muhammad Faiz
b8c6e5a661 swresample: add exact_rational option
give high quality resampling
as good as with linear_interp=on
as fast as without linear_interp=on
tested visually with ffplay
ffplay -f lavfi "aevalsrc='sin(10000*t*t)', aresample=osr=48000, showcqt=gamma=5"
ffplay -f lavfi "aevalsrc='sin(10000*t*t)', aresample=osr=48000:linear_interp=on, showcqt=gamma=5"
ffplay -f lavfi "aevalsrc='sin(10000*t*t)', aresample=osr=48000:exact_rational=on, showcqt=gamma=5"

slightly speed improvement
for fair comparison with -cpuflags 0
audio.wav is ~ 1 hour 44100 stereo 16bit wav file
ffmpeg -i audio.wav -af aresample=osr=48000 -f null -
        old         new
real    13.498s     13.121s
user    13.364s     12.987s
sys      0.131s      0.129s

linear_interp=on
        old         new
real    23.035s     23.050s
user    22.907s     22.917s
sys      0.119s     0.125s

exact_rational=on
real    12.418s
user    12.298s
sys      0.114s

possibility to decrease memory usage if soft compensation is ignored

Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
2016-06-13 12:36:01 +07:00
Matt Oliver
5ca44ebd99 lavu/intmath.h: fix compilation with msvc10.
Signed-off-by: Matt Oliver <protogonoi@gmail.com>
2016-06-13 13:49:24 +10:00
Matt Oliver
37787f2616 lavf/os_support.h: Fix for unicode filenames on windows.
Fixes #819 #5256 #5281

Signed-off-by: Matt Oliver <protogonoi@gmail.com>
2016-06-13 13:47:32 +10:00
Ilya87
be37a66971 Timeline function for the eq filter
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-13 01:57:22 +02:00
Michael Niedermayer
4a8ed314fb avcodec/h264_slice: Add casts to suppress warnings
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-13 01:57:22 +02:00
James Almer
15f9189b9c avformat/redspark: deobfuscate header decrypt code
Signed-off-by: James Almer <jamrial@gmail.com>
2016-06-12 17:26:43 -03:00
James Almer
8fdad638f9 avformat/redspark: remove av_malloc usage
Signed-off-by: James Almer <jamrial@gmail.com>
2016-06-12 17:26:40 -03:00
Clément Bœsch
aafdad1b45 lavc/videotoolbox: fix sps/pps mistake introduced in 1534ef87 2016-06-12 20:53:57 +02:00
Clément Bœsch
4df944920c lavc/videotoolbox: fixes compilation after 1534ef87 2016-06-12 20:53:57 +02:00
Clément Bœsch
82d79970ed lavc/vda_h264: fixes compilation after 1534ef87 2016-06-12 20:53:57 +02:00
Anton Mitrofanov
a833ff68f6 h264: Fix decoding delay for Intra only streams
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-06-12 20:29:29 +02:00
Anton Khirnov
90f469aa2b lavc: add H.264 MVC profiles 2016-06-12 20:27:53 +02:00
Anton Khirnov
61f168ae34 h264: factor out setting the parameter sets for a frame 2016-06-12 20:27:53 +02:00
Anton Khirnov
6e92181bf8 h264: pass just the PPS to get_chroma_qp()
It does not need the whole context. This will simplify the following
commit.
2016-06-12 20:27:53 +02:00
Anton Khirnov
d1f539c97e h264: merge the two reinit blocks in slice_header_parse()
The only difference is that the first of them contains a
ff_h264_flush_change() call. While that is not necessary in the second
block, it should cause no problems either.

Reduce the verbosity of the reinit log message from info to verbose,
since now it will be displayed during every decode session.
2016-06-12 20:27:53 +02:00
Anton Khirnov
3fba16ecd9 h264: factor starting a new field out of parsing the slice header 2016-06-12 20:27:53 +02:00
Anton Khirnov
bec993381c h264: postpone generating the implicit MMCOs
Do it right before the MMCOs are applied to the DPB. This will allow
moving the frame_start() call out of the slice header parsing, since
generating the implicit MMCOs needs to be done after frame_start().
2016-06-12 20:27:53 +02:00
Anton Khirnov
2d410ebbaa h264: decode the MMCOs into per-slice contexts
They are stored in the slice header, so technically they are per-slice
(though they must be the same in every slice). This will simplify the
following commits.
2016-06-12 20:27:53 +02:00
Anton Khirnov
39ab2ea531 h264: rename mmco_index to nb_mmco
The variable stores the number of mmco entries, so the current name is
misleading.
2016-06-12 20:27:53 +02:00
Anton Khirnov
7ab5d577a9 h264: move initializing the slice start out of h264_slice_header_parse() 2016-06-12 20:27:53 +02:00
Anton Khirnov
4cec43a9ee h264: move calculating the POC out of h264_slice_header_parse()
This function does not do any bitstream parsing and it depends on the
current frame being allocated, so this will allow the frame_start() to
be moved out eventually.
2016-06-12 20:27:52 +02:00
Anton Khirnov
6dd996c7c8 h264: move building the reference list out of h264_slice_header_parse()
This does not do any bitstream parsing and will allow moving out other
code in later commits.
2016-06-12 20:27:52 +02:00
Anton Khirnov
0bad254300 h264: move initing the implicit pred weight table out of h264_slice_header_parse()
It depends on the reference list, so this will allow moving out the
reference list construction and consequently other code it depends on.
2016-06-12 20:27:52 +02:00
Anton Khirnov
ed9a20ebe4 h264: split reading the ref list modifications and actually building the ref list
This will allow postponing the reference list construction (and by
consequence some other functions, like frame_start) until the whole
slice header has been parsed.
2016-06-12 20:27:52 +02:00
Anton Khirnov
fa57059079 h264: move initialising the implicit pred weight table for MBAFF
Do it where the normal implicit table is initialised.
2016-06-12 20:27:52 +02:00
Anton Khirnov
7b50d60442 h264: call ff_h264_fill_mbaff_ref_list() when constructing the normal ref list
There is no real reason to call it separately.
2016-06-12 20:27:52 +02:00
Anton Khirnov
b16e9b9ac9 h264: move initialising the explicit pred weight table for MBAFF
Currently it's done in the code that initialises the ref list for
MBAFF, which is not a logical place for it. Move it to the function that
parses the pred table from the bitstream, which is analogous to what is
done for the implicit weight table as well.
2016-06-12 20:27:52 +02:00
Anton Khirnov
b93c0aed79 h264: drop an outdated comment 2016-06-12 20:27:52 +02:00
Anton Khirnov
77a1e2c5f8 h264: move direct mode inits out of h264_slice_header_parse()
This code does not do any bitstream parsing, it just initializes some
internal state.
2016-06-12 20:27:52 +02:00
Anton Khirnov
d06e4d8aab h264: start splitting decode_slice_header()
That function is currently very long and entangles bitstream parsing and
decoder configuration. This makes the code much harder to read than
necessary.

Begin splitting the code that configures the decoder state based on the
slice header information from the parsing of the slice header.
2016-06-12 20:27:52 +02:00
Michael Niedermayer
c3ad63c6a3 avcodec/iff: Fix bytestream advance
Fixes Ticket5585

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-12 20:26:32 +02:00
Clément Bœsch
bd3fd467fe Merge commit 'c8dcff0cdb17d0aa03ac729eba12d1a20f1f59c8'
* commit 'c8dcff0cdb17d0aa03ac729eba12d1a20f1f59c8':
  h264: factor out calculating the POC count into a separate file

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-12 19:01:43 +02:00
Clément Bœsch
65d5f32fd7 Merge commit '113aeee6aed35cb786a9f6d69b0cb210f498b9da'
* commit '113aeee6aed35cb786a9f6d69b0cb210f498b9da':
  h264_parser: move the H264DSPContext to the parser context

H264Context is kept locally as it is currently needed for logging
(h->avctx as log context) and for is_avc and nal_length_size. These
later fields will later be obtained when the extradata parsing is
decoupled from the decoder. This code will be updated accordingly when
that commit is merged.

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-12 15:43:28 +02:00
Petru Rares Sincraian
b78b077c91 fate: add afade test
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-12 15:05:48 +02:00
Clément Bœsch
83163577e2 lavc/h264: remove unused ff_h264_init_dequant_tables prototype
Unused since 1534ef87 / 3176217c.
2016-06-12 13:38:23 +02:00
Clément Bœsch
1534ef87c7 Merge commit '3176217c60ca7828712985092d9102d331ea4f3d'
* commit '3176217c60ca7828712985092d9102d331ea4f3d':
  h264: decouple h264_ps from the h264 decoder

Main changes:

- a local GetBitContext is created for the various
  ff_h264_decode_seq_parameter_set() attempts

- just like the old code, remove_sps() is adjusted so it doesn't remove
  the pps.

  Fixes decode with Ticket #631
  http://ffmpeg.org/pipermail/ffmpeg-user/attachments/20111108/dae58f17/attachment.mp4
  but see next point as well.

- ff_h264_update_thread_context() is updated to work even when SPS
  isn't set as it breaks current skip_frame code. This makes sure we
  can still decode the sample from ticket #631 without the need for
  -flags2 +chunks. (Thanks to Michael)

- keep {sps,pps}_ref pointers that stay alive even when the active
  pps/sps get removed from the available lists (patch by michaelni with
  additionnal frees in ff_h264_free_context() from mateo)

- added a check on sps in avpriv_h264_has_num_reorder_frames() to fix
  crashes with mpegts_with_dvbsubs.ts from Ticket #4074
  http://samples.ffmpeg.org/ffmpeg-bugs/trac/ticket4074/mpegts_with_dvbsubs.ts

- in h264_parser.c:h264_parse(), after the ff_h264_decode_extradata() is
  called, the pps and sps from the local parser context are updated with
  the pps and sps from the used h264context. This fixes fate-flv-demux.

- in h264_slice.c, "PPS changed between slices" error is not triggered
  anymore in one condition as it makes fate-h264-xavc-4389 fails with
  THREADS=N (Thanks to Michael)

Merged-by: Clément Bœsch <clement@stupeflix.com>
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
Merged-by: Matthieu Bouron <matthieu.bouron@stupeflix.com>
2016-06-12 13:26:52 +02:00
Paul B Mahol
1a57b464cf avcodec/sheervideo: add 10-bit interlaced RGB(A) support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-06-12 12:35:05 +02:00
Paul B Mahol
84efdabc94 avcodec/utvideodec: add support for UQRG and UQRA formats
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-06-12 01:07:23 +02:00
Carl Eugen Hoyos
4c9d1c6f9a lavu/file_open: Use current directory for temporary files also on Android.
Fixes ticket #5620.
2016-06-11 22:41:18 +02:00
Carl Eugen Hoyos
3da860fbcf lavc/libutvideodec: Do not set bits_per_raw_sample.
It is not always 8 but never different from the pix_fmt property.
2016-06-11 22:38:41 +02:00
Paul B Mahol
3ecc59bc35 avcodec/utvideodec: fix multiple slices for UQY2 and other issues
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-06-11 21:31:49 +02:00
Dave Rice
5d12cfacde avfilter/vf_histogram: indent histogram options 2016-06-11 18:40:55 +02:00
Dave Rice
91bc42528c avfilter/vf_histogram: shortcuts for histogram options 2016-06-11 18:40:48 +02:00
Paul B Mahol
115e63c8d6 avcodec/utvideo: add support for UQY2
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-06-11 18:36:39 +02:00
Michael Niedermayer
b21f674876 avcodec/mpc8: Correct end truncation
Fixes Ticket5478

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-11 17:27:19 +02:00
Rick Kern
98a3355c6a lavc/videotoolboxenc: set extradata when opening codec
VideoToolbox doesn't supply parameter sets until the first frame is done
encoding. This spins up a temporary encoder and encodes a single frame to
get this data.

Signed-off-by: Rick Kern <kernrj@gmail.com>
2016-06-11 10:30:34 -04:00
Rick Kern
c5a5ca754b lavc/videotoolboxenc: fix allocated buffer size
Allocates a buffer with padding, and with enough room for start codes when
length codes are smaller.

Signed-off-by: Rick Kern <kernrj@gmail.com>
2016-06-11 10:30:34 -04:00
Ivan
c1f57e2f91 libavformat/flvenc: support for codec configuration change mid stream
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-11 10:54:43 +02:00
Ivan
52985768af libavformat/flvenc: refactoring: extracted method for writing codec headers
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-11 10:54:43 +02:00
Michael Niedermayer
5fd73948bb avformat/mp3dec: Increase probe score slightly when the whole data from begin to end is mp3
Improves score for 1000-frames-of-noise-encoded-with-lame.mp3 without file extension

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-11 02:58:00 +02:00
Mark Thompson
d4cd8e7f6a vaapi_encode_h26[45]: Reject bitrate targets higher than 2^31 2016-06-10 21:18:58 +01:00
Michael Niedermayer
056a4ae771 avcodec/cfhd: Set dimensions unconditionally
Fixes Ticket5215

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-10 22:05:38 +02:00
Paul B Mahol
9e9286e9ed avcodec/sheervideo: add support for 10-bit interlaced YCbCr(A) 4:2:2
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-06-10 17:17:12 +02:00
Paul B Mahol
f0e7b06453 avcodec/sheervideo: fix argx format support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-06-10 17:17:12 +02:00
Paul B Mahol
9d30690f20 swscale: add input support for gbrap10 pixel format
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-06-10 17:17:12 +02:00
Paul B Mahol
8100426fe4 avutil: add 10-bit planar RGB with alpha
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-06-10 17:17:12 +02:00
Timo Rothenpieler
d865e74e6d ffmpeg: Add cuvid hwaccel support 2016-06-10 16:31:23 +02:00
Timo Rothenpieler
88e8aef9e9 avcodec/cuvid: add cuvid decoder 2016-06-10 16:31:23 +02:00
Michael Niedermayer
24f5136196 avcodec/mpegvideo: Do not clear the parse context during init
It is allocated before, this cannot work
Fixes Ticket5613

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-10 15:54:20 +02:00
Pedro Arthur
e616e9a4b8 swscale: fix ring buffer size when scaling slices of a frame
The ring buffer size should be able to store input lines
when there is not enough lines to output a single line.
2016-06-10 09:45:24 -03:00
Pedro Arthur
b5deacfb1f swscale: fix crash with swscale-test when using slices 2016-06-10 08:50:57 -03:00
Paul B Mahol
2ed8baa614 avcodec/sheervideo: add support for 10-bit interlaced YCbCr(A) 4:4:4(:4)
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-06-10 11:26:18 +02:00
Michael Niedermayer
bb5bc08ba6 MAINTAINERs cleanup (remove myself from things i de facto dont maintain)
x86 is maintained entirely by others these days
ML, mostly too

remove myself from a few spots that have other maintainers and where i
just dont know the code that well anyway to do an ideal job

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-10 10:22:31 +02:00
Paul B Mahol
c156420bce avcodec/sheervideo: fix prediction for ybyr format
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-06-10 09:52:38 +02:00
Paul B Mahol
0a9e781b88 avcodec/sheervideo: fix predictions for c82p format
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-06-10 00:25:36 +02:00
Mark Thompson
2940e196c5 vaapi_h265: cu_qp_delta should not be used in constant-QP mode 2016-06-09 21:15:39 +01:00
Mark Thompson
02fa1ad926 vaapi_h264: Add source version identifier as unregistered SEI
Contains the libavcodec version, the VAAPI version and the libva
driver vendor string.
2016-06-09 21:15:39 +01:00
Mark Thompson
48e2967cd5 vaapi_h264: Add support for SEI messages
Send buffering_period and pic_timing messages when in modes
targetting bitrate.  Also adds NAL HRD parameters to VUI.
2016-06-09 21:15:39 +01:00
Mark Thompson
19d7667a81 vaapi_encode: Add support for writing arbitrary additional packed headers 2016-06-09 21:15:39 +01:00
Mark Thompson
081961f819 vaapi_h264: Add support for VUI parameters
Supports aspect ratio, colour format and timing information.
2016-06-09 21:15:39 +01:00
Kyle Swanson
765703498a avfilter/af_loudnorm: add dual_mono option
Signed-off-by: Kyle Swanson <k@ylo.ph>
2016-06-09 13:06:30 -05:00
Michael Niedermayer
6826f16e4a avformat/utils: Do not overwrite, but use sample_fmt from context
Fixes Ticket 3759

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-09 19:32:56 +02:00
Michael Niedermayer
218bb8b3f3 avformat/utils: Open decoder even if there are no packets if parameters are missing
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-09 19:32:56 +02:00
Michael Niedermayer
2a70e78a28 avformat/utils: Initialize st in loop
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-09 19:32:56 +02:00
Paul B Mahol
0c7fa152b9 avcodec/sheervideo: supports some other 8bit formats
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-06-09 15:30:27 +02:00
Paul B Mahol
e826ceeb55 avcodec/sheervideo: add interlaced YCbCr(A) 4:2:2:4 8-bit support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-06-09 13:17:38 +02:00
Anton Khirnov
2e4a7bd553 h264: drop unused H264Context.gb
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2016-06-09 11:19:15 +02:00
Michael Niedermayer
37bb600405 avutil/opt: Fix max/min checking in av_opt_set() for AV_OPT_TYPE_VIDEO_RATE
Fixes Ticket5618

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-09 10:35:13 +02:00
Michael Niedermayer
4888932c4d avformat: Fix max value of AV_OPT_TYPE_VIDEO_RATE
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-09 10:35:13 +02:00
Michael Niedermayer
f2c8b666be avfilter: Fix max value of AV_OPT_TYPE_VIDEO_RATE
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-09 10:35:13 +02:00
Michael Niedermayer
584fff9478 avdevice: Fix max value of AV_OPT_TYPE_VIDEO_RATE
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-09 10:34:42 +02:00
Paul B Mahol
131cb675cf avcodec/sheervideo: add interlaced YCbCr(A) 4:4:4:4 8-bit support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-06-09 10:23:02 +02:00
James Almer
172af20852 x86/showcqt: use three operand format for some instructions
Fixes failures with yasm 1.1.0 and older

Signed-off-by: James Almer <jamrial@gmail.com>
2016-06-08 19:37:08 -03:00
James Almer
7d7fdd6532 x86/showcqt: add missing preprocessor checks
Old yasm/nasm versions don't support some of these

Signed-off-by: James Almer <jamrial@gmail.com>
2016-06-08 19:34:43 -03:00
Rostislav Pehlivanov
a04ae469e7 aacsbr: reduce element type mismatch warning severity
All HE-AAC samples with an LFE channel make this warning get spammed on
every frame. Turning off SBR for LFE channels makes sense (since it has
much less coefficients than normal channels do), so this error print is
of no value in this case.
It makes sense to keep the error in other cases, hence why it's still
around, degraded to warning severity since the decoder will still
attempt to decode without SBR.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-06-08 21:01:04 +01:00
Muhammad Faiz
2991d93520 avfilter/src_movie: call open_stream after guess_channel_layout
fix error 'Channel layout change is not supported' when
opening wav file

Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
2016-06-09 02:00:10 +07:00
Muhammad Faiz
a096d3ec47 avfilter/avf_showcqt: set range on fps/rate/r option
see Ticket #5618

Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
2016-06-09 01:16:26 +07:00
James Almer
82dbfccaf0 x86/aacdec: use HADDPS macro
Signed-off-by: James Almer <jamrial@gmail.com>
2016-06-08 14:18:18 -03:00
James Almer
99b899483e avutil/x86util: move haddps sse emulation from showcqt
Signed-off-by: James Almer <jamrial@gmail.com>
2016-06-08 14:18:00 -03:00
Diego Biurrun
4f81f8dba7 Drop unnecessary golomb.h #includes 2016-06-08 18:51:57 +02:00
Diego Biurrun
197ae68e78 Drop unnecessary unary.h #includes 2016-06-08 18:51:56 +02:00
Diego Biurrun
6ac52f05a6 dvbsub_parser: Add missing mem.h #include 2016-06-08 18:51:56 +02:00
Mark Thompson
9d8664dd84 MAINTAINERS: Add myself as maintainer for VAAPI encoders
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-08 15:15:00 +02:00
Michael Niedermayer
f883f0b0bd avcodec/h264: Put context_count check back
Fixes assertion failure

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-08 15:15:00 +02:00
Muhammad Faiz
1e69ac9246 avfilter/avf_showcqt: cqt_calc optimization on x86
on x86_64:
        time    PSNR
plain   3.303   inf
SSE     1.649   107.087535
SSE3    1.632   107.087535
AVX     1.409   106.986771
FMA3    1.265   107.108437

on x86_32 (PSNR compared to x86_64 plain):
        time    PSNR
plain   7.225   103.951979
SSE     1.827   105.859282
SSE3    1.819   105.859282
AVX     1.533   105.997661
FMA3    1.384   105.885377

FMA4 test is not available

Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
2016-06-08 16:09:43 +07:00
James Almer
49b0246635 avformat/matroskadec: force 48kHz sample rate when rescaling Opus inital padding
Mkvtoolnix stores the sample rate of the original stream as reported by the
"OpusHead" stream header instead of 48kHz, the actual sample rate of the Opus
stream.
Ignoring the stored sample rate and forcing 48kHz preserves the correct initial
padding when remuxing such files.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-06-07 20:32:25 -03:00
Michael Niedermayer
27c1eae55f avcodec/h264: Fix off by 1 context count
Fixes fate-h264-xavc-4389 with slice threads
2016-06-07 23:32:34 +02:00
Paul B Mahol
c206a32435 avcodec/sheervideo: fix order of operations for raw lines
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-06-07 23:14:07 +02:00
Paul B Mahol
60bac785c3 avcodec/sheervideo: add support for 8-bit interlaced (A)RGB
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-06-07 22:47:12 +02:00
Paul B Mahol
fdf832a986 avcodec: add BitJazz SheerVideo decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-06-07 21:38:49 +02:00
Michael Niedermayer
c36fc857b5 avcodec/alsdec: Check r to prevent out of array read
No testcase known

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-07 21:10:22 +02:00
Lou Logan
1748eb02c8 doc/filters: remove outdated showwavespic example
Use "colors" option instead.

Signed-off-by: Lou Logan <lou@lrcd.com>
2016-06-07 10:52:15 -08:00
Michael Niedermayer
e01b19dece avformat/mpegts: Fix probing of mpegts with invalid ASC
Fixes Ticket5566

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-07 15:46:08 +02:00
Michael Niedermayer
a2e6c785ce avformat/rawdec: Fix avg_framerate for h264
The framerate is 25 which is a fixed default and is wrong undo the 1 line
change which caused this regression
Only the avg_frame rate setting is removed
The timebase update is not done as there was a objection (see ML)
Fixes Ticket 5444

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-07 14:08:13 +02:00
Diego Biurrun
81f769fa12 gsm: Move requant_tab table to the gsm tables file
This avoids duplicating the table in the gsm template file.
Also adjust the table type to uint8_t to save space.
2016-06-07 13:22:22 +02:00
Diego Biurrun
42dc214323 mpc: Drop unused GetBitContext context member 2016-06-07 13:09:57 +02:00
Diego Biurrun
85b8403c6f svq1enc: Drop unused GetBitContext context member 2016-06-07 13:09:57 +02:00
Diego Biurrun
6d8fd614ff vorbis: Kill some pointless debug code 2016-06-07 13:09:57 +02:00
Diego Biurrun
59c6509d9f mss2: Drop a silly assert 2016-06-07 13:09:57 +02:00
Diego Biurrun
b668662939 get_bits: Move BITSTREAM_READER_LE definition before all relevant #includes
This avoids the danger that get_bits.h might get indirectly #included before
BITSTREAM_READER_LE is defined.

Also sort headers into canonical order where appropriate.
2016-06-07 13:09:57 +02:00
Diego Biurrun
09c4e5c598 indeo2: Drop disabled big-endian ir2_codes table
Only the little-endian variant of the table is ever used.
2016-06-07 13:09:57 +02:00
Diego Biurrun
b7f98659f2 Remove unnecessary get_bits.h #includes 2016-06-07 13:09:57 +02:00
Matthieu Bouron
1729387c7a lavc/mediacodec: improve error messages 2016-06-07 10:22:27 +02:00
Matthieu Bouron
93f4d1646e lavc/mediacodec: bypass width/height restrictions when looking for a decoder
Codec width/height restrictions seem hardcoded at the OMX level and
seem arbitrary. Bypassing those restrictions allows a device to decode
streams at higher resolutions.

For example it allows a Nexus 5 to decode h264 streams with a resolution
higher than 1920x1080.
2016-06-07 10:22:20 +02:00
Matthieu Bouron
cb89fd2334 lavc/mediacodec: rename MediaFormat field clazz to mediaformat_class for consistency 2016-06-07 10:20:44 +02:00
Matthieu Bouron
56ef387e21 lavc/mediacodec: move struct declarations at the begin 2016-06-07 10:20:44 +02:00
Matthieu Bouron
79efd3b8b8 lavc/mediacodec: rename jfields_mapping to jni_amediacodeclist_mapping 2016-06-07 10:20:36 +02:00
Matthieu Bouron
f2e7f9966e lavc/mediacodec: do not delete a local reference twice in case of error 2016-06-07 10:18:11 +02:00
Michael Niedermayer
153ab83bd3 avcodec/utils: check skip_samples signedness
Fixes Ticket5528

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-07 04:31:39 +02:00
Muhammad Faiz
77d4dfbec6 avfilter/af_firequalizer: add zero_phase option
simply by substracting pts to compensate delay
also handle AV_NOPTS_VALUE

Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
2016-06-07 07:55:48 +07:00
Michael Niedermayer
e7f658be57 avdevice/dshow: Fix frame rate
Fixes: Ticket5526

Tested-by: kgp700

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-07 02:32:13 +02:00
Martin Vignali
a2b2af791c Changelog : add OpenExr improvements
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-07 00:17:20 +02:00
Timo Rothenpieler
808356c61c avcodec/nvenc: Check capabilities for interlaced encoding 2016-06-06 23:52:55 +02:00
Michael Niedermayer
a5eb70ad95 avformat/mpegts: Do not trust BSSD descriptor, it is sometimes not an S302M stream
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-06 21:56:51 +02:00
Paul B Mahol
2a48a75a6f sgirledec: simplify, no need to use reget buffer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-06-06 12:05:02 -04:00
Paul B Mahol
6e2ad28cf7 aic: add frame threading support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-06-06 12:03:20 -04:00
Vittorio Giovara
c3ed259e4f fate: Move Canopus decoder tests to a separate file
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-06-06 11:59:53 -04:00
Vittorio Giovara
20a8c78ce0 avconv: Do not copy extradata if source buffer is empty
Fixes clang-usan runtime error "null pointer passed as argument 2,
which is declared to never be null" while streamcopying.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-06-06 11:56:21 -04:00
Martin Vignali
9511a0895d avcodec/exr: indent b44 uncompress function 2016-06-06 15:59:18 +02:00
Martin Vignali
bc1f3dfaa3 avcodec/exr: fix decoding of B44 exr when all channel doesnt have the same pixel type 2016-06-06 15:42:34 +02:00
Martin Vignali
df7cd4176a avcodec/exr: move channel_line_size to thread data
In order to be used by b44 uncompress.
2016-06-06 15:42:30 +02:00
Martin Vignali
03152e74df avcodec/exr: improve pxr24 uncompress
Fix pxr24 uncompress when all channels doesnt have the same pixel type.
The expected length after zip decoding, is now calculated channel by channel.
2016-06-06 15:39:46 +02:00
Martin Vignali
16107aeaf3 avcodec/exr: remove unneed scanline_size var 2016-06-06 15:39:39 +02:00
Martin Vignali
42297d8419 avcodec/exr: fix tile decoding when all channels doesnt have the same pixel type
Also simplify the tile code, sharing more code with the scanline mode.
2016-06-06 15:39:22 +02:00
Martin Vignali
d24eb9a3c6 avcodec/exr: indent the if (layer_match) part 2016-06-06 15:39:06 +02:00
Martin Vignali
753088a2a4 avcodec/exr: fix layer detection
Only test a channel if the layer name match.
Avoid to try to mix channel between the main layer (rgba layer),
and the layer request by the user.
2016-06-06 15:38:35 +02:00
Michael Niedermayer
43a4276c69 avcodec/bmp_parser: Check fsize
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-06 14:32:48 +02:00
Michael Niedermayer
37005e65eb avcodec/bmp_parser: reset state
Fixes part of ticket 5598

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-06 14:30:40 +02:00
Michael Niedermayer
250b620d29 avcodec/bmp_parser: Fix remaining size
Fixes part of ticket 5598

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-06 14:27:20 +02:00
Michael Niedermayer
bfe945ac3a avcodec/bmp_parser: Fix frame_start_found in cross frame cases
Fixes part of ticket 5598

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-06 14:01:43 +02:00
Michael Niedermayer
b5bc436ebc avformat/matroskadec: Fix rounding error with codec_delay
Fixes Ticket5509

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-06 05:01:34 +02:00
Michael Niedermayer
bacc4b6e81 avcodec/wmalosslessdec: Use unsigned operations for overflowing cases
Fixes undefined behavior in fate-lossless-wma24-2

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-06 02:24:22 +02:00
Michael Niedermayer
5a8b41b4a7 avformat/movenc: Skip unsupported video tracks in timecode generation
Fixes Ticket5414

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-06 01:30:48 +02:00
Michael Niedermayer
abc957e896 avfilter/af_amix: dont fail if there are no samples in output_frame()
Fixes Ticket5326

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-06 00:31:05 +02:00
Vivekanand
b092ee701f avformat/allformats: Making av_register_all() thread-safe.
When multiple threads tries to call av_register_all(), the first thread sets
initialized to 1 and do the register process. At the same time, other thread might
also call av_register_all(), which returns immediately because initialized is set to 1
(even when it has not completed registering codecs). We can avoid this problem
if we set initialised to 1 while exiting from function.

Github: Closes #196
2016-06-05 23:48:12 +02:00
Michael Niedermayer
f730367a60 avcodec/mpeg4videodec: Fix default low_delay flag value if not coded
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-05 20:55:09 +02:00
Michael Niedermayer
87c53e5354 avcodec/mpeg4videodec: Print low_delay value with -debug 1 in decode_vol_header()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-05 20:19:57 +02:00
Thomas Mundt
a0a4a4b370 avfilter/vf_colormatrix: add bt.2020 colorspace
Signed-off-by: Thomas Mundt <loudmax@yahoo.de>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-05 19:46:38 +02:00
Thomas Mundt
2e395bbccf avfilter/vf_colormatrix: increase precision
Signed-off-by: Thomas Mundt <loudmax@yahoo.de>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-05 18:47:36 +02:00
Michael Niedermayer
13aae86a2b avutil/frame: Assert that width/height/channels is 0 for the destination of av_frame*_ref()
This should detect caes where these functions are called in unclean destinations
2016-06-05 17:12:35 +02:00
Michael Niedermayer
3bc060f366 doc/examples/transcoding: Use the decoders pixel format if the encoder does not list which are supported
This affects rawvideo and wraped_avframe, no others are affected atm

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-05 17:10:15 +02:00
Michael Niedermayer
134cba728b Seperate x264rgb encoder and only enable when its actually supported
This avoids enabling and building the x264rgb encoder when its actually not supported and
thus would not work

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-05 17:04:29 +02:00
Denis Charmet
38f99017e6 vp9: Return the correct size when decoding a superframe
According to avcodec.h, avcodec_decode_video2 should return the number of
bytes used if a frame was decoded.

The current implementation returns size - used size of all the subframes.
This fixes the VLC's bug https://trac.videolan.org/vlc/ticket/16836.

The superframe is always fully consumed.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2016-06-05 16:58:04 +02:00
Michael Niedermayer
2ccf9ae6cc avformat/format: Print debug info when probe score is increased due to mime type
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-05 16:35:40 +02:00
Michael Niedermayer
5fb6e39dd1 avcodec/cfhd: clear idwt_buf on allocation
This avoids use of uninitialized variables and might make bugs in general
easier to reproduce

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-05 15:41:50 +02:00
Michael Niedermayer
f90c9c306f Check av_dup_packet() return code
Fixes: CID1338320

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-05 15:22:59 +02:00
Michael Niedermayer
39c0b22df4 avcodec/mpegvideo: Deallocate last/next picture earlier
Fixes regression with mplayers direct rendering and reduces buffer count
pressure in some cases

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-05 02:08:54 +02:00
Michael Niedermayer
bb3388fd60 avformat/dump: Print tbc value
Fixes regression of av_dump_format()
Fixes part of Ticket 5444

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-04 21:56:34 +02:00
Michael Niedermayer
d953b2857b avcodec/utils: initialize delay in avcodec_parameters_to_context()
Fixes lost codec delayy
Should fix Ticket5509

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-04 20:46:16 +02:00
Timo Rothenpieler
7c55f5d782 avcodec/nvenc: Don't set packet duration
It's not expected to be set on video packets and causes issues in
ffmpeg.c.
2016-06-04 12:20:59 +02:00
Muhammad Faiz
1e6a0c9d14 avfilter/avf_showcqt: render default font at 960x16
and let ffmpeg scaler scale it
this impoves quality

Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
2016-06-04 14:05:04 +07:00
Michael Niedermayer
958bf659d8 avdevice/lavfi: Do not set avg_frame_rate to the timebase
Fixes regression
Fixes Ticket5422 (The timebase is 1/25k but the fps are not 25k)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-04 02:10:10 +02:00
Michael Niedermayer
b28e102875 avformat/version: Add Ticket5421 to list of tickets possibly affected by a major bump
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-03 23:09:19 +02:00
Michael Niedermayer
fc07972582 avformat/dump: Use codec and QP limits from AVCodecContext
Fixes regression
Fixes Ticket5421

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-03 22:26:00 +02:00
Jan Sebechlebsky
0e84eee719 libavutil/fifo: Fix fifo grow step
Fifo was reallocating always to twice of the requested size.
This fixes it to reallocate to requested size, or twice of the
original size - whichever is greater.

Signed-off-by: Jan Sebechlebsky <sebechlebskyjan@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-03 14:49:56 +02:00
Nicolas George
8b05a7ffe4 lavf/udp: fix dead code.
Since d607861, service can not be NULL, only "0".
An UDP address with neither local port nor address leaves both
service and node to their default value, and POSIX specifies
that they are not allowed to be both NULL; "0" is equivalent
to an unspecified port for all currently known protocols.

Fix CID 1341570.
2016-06-03 12:46:02 +02:00
Thomas Bernard
1f8c0e44cb avformat/au: Write MetaData in AU Sun audio file header
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-03 12:18:57 +02:00
Matthieu Bouron
12f47539ca lavc/mediacodecdec_h264: rename input_ref to input_pkt 2016-06-03 10:20:54 +02:00
Matthieu Bouron
15432a903e lavc/mediacodecdec_h264: switch to new BSF API 2016-06-03 10:20:54 +02:00
Matthieu Bouron
e0df56f25d lavc/vaapi_encoder_{h264,h265}: fix bad format warning 2016-06-03 10:09:39 +02:00
Michael Niedermayer
79b6c9acd5 fate/prores: use aac fixed for audio to fix fate failures on arm
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-03 04:35:59 +02:00
Michael Niedermayer
e78515f2ae tests/fate/h264: Add test for xavc and somewhat odd pps/sps
(Ticket 4389)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-03 01:42:57 +02:00
Lars Kiesow
e9bb80d3dc doc/filters: Remove duplicated setdar example
Signed-off-by: Lou Logan <lou@lrcd.com>
2016-06-02 15:01:53 -08:00
Paul B Mahol
e8a236add8 avcodec/magicyuv: set correct size of last slice for each plane
Fixes invalid read.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-06-02 22:43:51 +02:00
Derek Buitenhuis
cc4ab320cf MAINTAINERS: Remove myself
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-06-02 09:25:37 -08:00
Michael Niedermayer
ad72d7d299 avformat: Copy properties from internal context
Fixes Ticket5467 "Lossless j2k information no longer shown"

Based on suggestion by Hendrik Leppkes
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-02 16:57:49 +02:00
Michael Niedermayer
3402871f36 avcodec/h264_refs: Fix pps_ref_count with multiple PPS
Found-by: ubitux
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-02 14:51:49 +02:00
Michael Niedermayer
a8289d2407 avcodec/h264_refs: Remove unused pps_count
Found-by: ubitux
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-02 14:48:12 +02:00
Michael Niedermayer
4865252c08 avformat/udp: Protect write to circular_buffer_error by mutex
This isnt really needed on most platforms but
fixes CID1362183

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-02 13:41:04 +02:00
Muhammad Faiz
1b05521bb7 avfilter/avf_showcqt: full chroma blending on draw_axis_yuv
improve quality on axis drawing with yuv422p and yuv420p format

Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
2016-06-02 16:14:16 +07:00
Paul B Mahol
a3c2a9c736 avcodec/magicyuv: fix decoding of raw slices
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-06-02 06:59:46 +02:00
Mark Thompson
7e0623b70b vaapi: Enable more libva surface formats
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-02 01:40:51 +02:00
Andriy Lysnevych
2fe04630e7 avcodec/avpacket: Respect payload offset in av_grow_packet
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-02 00:52:22 +02:00
Michael Niedermayer
d1efdd54f2 avformat: Document where the AVOption names can be found for the fields of AVFormatContext
Missing docs found by: nevcairiel

RFC: should we add support so that the C field names always work as av option names/keys ?

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-01 18:12:45 +02:00
Michael Niedermayer
b8426b865e avcodec: Document where the AVOption names can be found for the fields of AVCodecContext
Missing docs found by: nevcairiel

RFC: should we add support so that the C field names always work as av option names/keys ?

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-01 18:12:39 +02:00
Michael Niedermayer
003a9e4854 avutil/frame: Document avcodec_get_frame_class() and the option naming system
Missing docs found by: nevcairiel

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-01 18:12:34 +02:00
Michael Niedermayer
77ba4a7843 library.mak: Put -Umain back for tests
Fixes build on mingw32 with SDL

reverts one line from 96d616052b3d39678e477fa10610ca688f46fff9

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-01 16:32:08 +02:00
Neil Birkbeck
785038c92c lavu: Adding ARIB STD-B67 (hybrid log-gamma) enum value and transfer function.
Adding hybrid log-gamma (https://en.wikipedia.org/wiki/Hybrid_Log-Gamma)
based on the standardization in ARIB STD-B67:
http://www.arib.or.jp/english/html/overview/doc/2-STD-B67v1_0.pdf

The choice of enum value of 18 is consistent with HEVC:
http://phenix.it-sudparis.eu/jct/doc_end_user/current_document.php?id=10481

And also with latest proposal for color format in mkv:
https://mailarchive.ietf.org/arch/search/?email_list=cellar&gbt=1&q=Colour+Format+proposal

The implementation assumes a nominal input range of [0, 1], which is
consistent with HEVC.

Signed-off-by: Neil Birkbeck <neil.birkbeck@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-01 16:32:08 +02:00
Piotr Bandurski
4c7d3e827c avformat/isom: add MagicYUV FourCCs 2016-06-01 14:59:06 +02:00
Paul B Mahol
77f9c4b7aa avocdec: add MagicYUV decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-05-31 22:37:09 +02:00
Michael Niedermayer
d0388bd32e avcodec/bmp_parser: Fix state
Fixes Ticket5598

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-31 22:13:51 +02:00
Timo Rothenpieler
e5babccfbc avcodec/nvenc: Refactor timestamp generation logic
Directly adapted from libav
2016-05-31 18:59:37 +02:00
Timo Rothenpieler
69c25c0ad7 avcodec/nvenc: forward frame duration 2016-05-31 18:39:28 +02:00
Timo Rothenpieler
971351b664 avcodec/nvenc: Handle minqp-only case in set_vbr 2016-05-31 17:00:07 +02:00
Timo Rothenpieler
eae4eba9cb avcodec/nvenc: twopass mode works in all modes 2016-05-31 16:55:24 +02:00
Timo Rothenpieler
1330a0f31f avcodec/nvenc: Fix forcing constqp rc mode
The CONSTQP enum value is 0, so this check failed for it.
2016-05-31 16:53:38 +02:00
Andrey Turkin
58c6dcb4b7 avcodec/nvenc: don't enqueue timestamps until a frame was accepted
Otherwise timestamps/pending FIFOs would go out of sync if nvEncodePicture ever fails.

Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-05-31 16:50:45 +02:00
Andrey Turkin
2f53b5b74b avcodec/nvenc: refactor encode_frame a bit
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-05-31 16:47:07 +02:00
foo86
214e63f851 avcodec/dca_parser: skip initial padding
Padding before the first sync word can be very large for DTS-in-WAV
streams. There is no reason to include this padding in parsed packet.

Signed-off-by: James Almer <jamrial@gmail.com>
2016-05-31 11:45:59 -03:00
foo86
1f7b67a1ca avcodec/dca_parser: simplify state machine
Signed-off-by: James Almer <jamrial@gmail.com>
2016-05-31 11:45:55 -03:00
foo86
054a2c9fdf avcodec/dca: support EXSS marker in avpriv_dca_convert_bitstream()
This is now required by dcadec_decode_frame(). All remaining users of
avpriv_dca_convert_bitstream() have been updated to expect EXSS marker.

Signed-off-by: James Almer <jamrial@gmail.com>
2016-05-31 11:45:49 -03:00
foo86
d1f558b362 avcodec/dca: require checked bitstream reader
Remove half-working attempt at supporting unchecked bitstream reader by
always copying input data into intermediate buffer with large amount of
padding at the end.

Convert LBR decoder to checked bitstream reader. Convert
dcadec_decode_frame() to parse input data directly if possible.

Signed-off-by: James Almer <jamrial@gmail.com>
2016-05-31 11:45:48 -03:00
Andrey Turkin
d3463912c1 avcodec/nvenc: extract timestamp calculations into separate function
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-05-31 16:32:03 +02:00
Andrey Turkin
0d021cc8b3 avcodec/nvenc: rework library load and GPU selection
Use explicit nvenc capability checks instead to determine usable devices
instead of SM versions.

Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-05-31 16:04:53 +02:00
Andrey Turkin
f052ef30ef avcodec/nvenc: allow configuring number of surfaces
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-05-31 15:48:43 +02:00
Andrey Turkin
b69335304d avcodec/nvenc: use INIT_CLEANUP to deal with init failures
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-05-31 15:48:43 +02:00
Andrey Turkin
f84dfbc74a avcodec/nvenc: add rate control option
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-05-31 15:48:43 +02:00
Andrey Turkin
40df468ab1 avcodec/nvenc: convert tier to AVOptions
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-05-31 15:48:43 +02:00
Andrey Turkin
b0172873a8 avcodec/nvenc: convert levels to AVOptions
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-05-31 15:48:43 +02:00
Andrey Turkin
9824321b32 avcodec/nvenc: convert profile parsing to AVOptions
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-05-31 15:48:43 +02:00
Andrey Turkin
faffff88c2 avcodec/nvenc: use AVOptions to select presets
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-05-31 15:48:43 +02:00
Michael Niedermayer
e1de62c5be doc: Add color_trc values
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-31 15:15:54 +02:00
Andrey Turkin
7aa16d59bf avcodec/nvenc: split H264/HEVC encoder definitions into separate files
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-05-31 11:15:19 +00:00
Rostislav Pehlivanov
a1953d4cec aacpsy: remove dead code
This code wasn't removed when the functionality was moved inside
aacenc.c with commit 8005b6de4f88c9

Fixes CID1361962

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-05-31 01:08:25 +01:00
Marton Balint
0d0b9397d6 avformat/movenc: remove useless if and reindent
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-05-31 00:35:16 +02:00
Marton Balint
15005701b5 avformat/movenc: propagate shift_data errors properly
The second one is not explicitly needed, as res is not reset, but it is there
for consistency.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-05-31 00:35:16 +02:00
Marton Balint
37d201aad9 ffplay: simplify display code
And get rid of frame_queue_prev.

Signed-off-by: Marton Balint <cus@passwd.hu>
2016-05-31 00:33:50 +02:00
Michael Niedermayer
0b9b3163f2 avcodec/libxvid: Fix use of uninitialized AVPacket fields
Fixes CID1361964

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-31 00:24:22 +02:00
ZhouXiaoyong
2c7fd0e36b avcodec/mips/h264qpel_mmi.c: Version 2 of the optimizations for loongson mmi
1. no longer use the register names directly and optimized code format
2. to be compatible with O32, specify type of address variable with mips_reg and handle the address variable with PTR_ operator
3. use uld and mtc1 to workaround cpu 3A2000 gslwlc1 bug (gslwlc1 instruction extension bug in O32 ABI)
4. h264qpel use hepldsp optimizations

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-30 22:00:02 +02:00
Diego Biurrun
b2d5d6a7f2 build: Only enable symbol reduction if the compiler does proper DCE
With compilers that do not support proper dead code elimination, like
Sun C 5.12, linking fails due to missing references to unavailable,
but also unused, symbols.

Bug-Id: 895
2016-05-30 14:59:43 +02:00
Mark Reid
d74cc61574 libavformat/movenc: remove unnecessary null check
Fixes CID1361955

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-30 02:33:06 +02:00
Michael Niedermayer
645f7c1ce5 avfilter/f_loop: Fix leak on error
Fixes CID1355117

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-29 21:21:59 +02:00
Michael Niedermayer
be96ebdcd7 avfilter/vf_fieldhint: Reorder operation to prevent hypothetical integer overflow
Fixes CID1355110

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-29 19:00:15 +02:00
Diego Biurrun
c5fd4b5061 build: Simplify postprocessing of linker version script files
Generate the files in a single postprocessing step w/o intermediate files.
2016-05-29 16:49:16 +02:00
Diego Biurrun
535a742c26 build: Change structure of the linker version script templates
Split version files into one line per symbol/directive to allow compatibility
with the Solaris linker without preprocessing and eliminate $ from version file
templates to simplify the postprocessing shell command.
2016-05-29 16:43:11 +02:00
Diego Biurrun
5b1b495c8d build: Print a message when generating version scripts 2016-05-29 15:09:05 +02:00
Michael Niedermayer
7ae4d574e8 avfilter/vf_fieldhint: Assert that mode is valid
Its checked by the AVOption code
Fixes CID1355122
Fixes CID1355121

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-29 14:49:27 +02:00
Michael Niedermayer
52ca24bdd2 avutil/softfloat: Improve doxy for av_sub_sf() and av_sf2int()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-29 14:45:07 +02:00
Michael Niedermayer
cbd19881f7 avformat/udp: Remove unused variable
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-29 12:35:14 +02:00
Michael Niedermayer
dac030d3aa avformat/movenc: Fix potential track width/height overflows
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-29 04:42:04 +02:00
Michael Niedermayer
17d320800b avformat/movenc: Avoid integer overflow
Fixes: CID1361947

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-29 03:56:23 +02:00
Thomas Guilbert
1a82d2cf8f avformat/oggparseopus: Fix Undefined behavior in oggparseopus.c and libavformat/utils.c
Fixes: usan_granule_overflow

constant type fix by commiter
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-29 00:58:15 +02:00
Michael Niedermayer
c1ed78a591 avformat/utils: avoid overflow in compute_chapters_end() with huge durations
Fixes: usan_granule_overflow

Found-by: Thomas Guilbert <tguilbert@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-29 00:25:21 +02:00
Michael Niedermayer
2be3007ed5 avformat/utils: avoid overflow in update_stream_timings() with huge durations
Fixes: usan_granule_overflow

Found-by: Thomas Guilbert <tguilbert@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-29 00:14:02 +02:00
Petru Rares Sincraian
af56d0dffa fate: add aemphasis test
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-28 22:09:17 +02:00
Diego Biurrun
1e9c5bf4c1 asm: FF_-prefix internal macros used in inline assembly
These warnings conflict with system macros on Solaris, producing
truckloads of warnings about macro redefinition.
2016-05-28 19:18:26 +02:00
Diego Biurrun
dc40a70c57 Drop unnecessary libavutil/x86/asm.h #includes 2016-05-28 19:18:26 +02:00
Michael Niedermayer
d1520a6cfd avutil/softfloat: Document public constants and a few public functions
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-28 14:24:20 +02:00
Carl Eugen Hoyos
a64a030ba0 lavf/mov: Support one more Avid compression id for AVCI50.
Reported by forum user lexidata.
2016-05-28 11:57:37 +02:00
Michael Niedermayer
86d703fd55 avformat/movenc: Fix memleak of reshuffled packet
Fixes CID1361952

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-28 03:13:14 +02:00
Michael Niedermayer
5db111757c avformat/movenc: Rename reshuffles return variable to ensure it is not mixed up
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-28 02:55:33 +02:00
Michael Niedermayer
f66ca036bc avformat/oggparseflac: Fix memleaks in old_flac_header()
Fixes CID1361953

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-28 01:22:01 +02:00
Michael Niedermayer
9106cba22a fate: Add fate-prores-gray
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-27 18:27:52 +02:00
Håvard Espeland
9c43703620 avcodec/proresdec2: Add support for grayscale videos
Signed-off-by: Håvard Espeland <espeland@mixedrealities.no>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-27 17:25:40 +02:00
Michael Niedermayer
281caece46 avfilter/avfiltergraph: Clear graph pointers in ff_filter_graph_remove_filter()
When a filter is no longer part of a graph, its pointers should be cleared
so no stale pointers remain.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-27 16:30:25 +02:00
Luca Barbato
5264e7ba21 ac3: Check the array bound before dereferencing
CC: libav-stable@libav.org

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-05-27 15:49:48 +02:00
Hendrik Leppkes
2dc954e0bd Merge commit '44d16df413878588659dd8901bba016b5a869fd1'
* commit '44d16df413878588659dd8901bba016b5a869fd1':
  h264_parser: eliminate H264SliceContext usage

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-05-27 14:28:21 +02:00
Mark Thompson
a86aa16088 vaapi_h264: Add trivial support for low-power encoding
Experimental; requires Skylake and VAAPI 0.39.1 (not yet released).
Also increases the allowed range of the quality option - in low-power
mode, the Intel driver supports levels 1-8 (and 0 meaning default).
2016-05-27 10:57:00 +01:00
Mark Thompson
b51c7c6b8a vaapi_h264: Fix frame_num after non-reference frames
Non-reference frames (nal_ref_idc == 0) should be discardable, so
frame_num does not advance after them.  Before this change, a stream
containing unreferenced B-frames would be rejected by the reference
decoder.
2016-05-27 10:56:55 +01:00
Mark Thompson
2bfa067d0b vaapi_encode: Check config attributes before creating config
This prevents attempts to use unsupported modes, such as low-power
H.264 mode on non-Skylake targets.  Also fixes a crash on invalid
configuration, when trying to destroy an invalid VA config/context.
2016-05-27 10:56:45 +01:00
Diego Biurrun
6641819fee build: Ignore generated mapfile and remove it on distclean 2016-05-27 11:27:24 +02:00
Gregor Riepl
d970f7ba31 ffserver: fixed deallocation bug in build_feed_streams
Signed-off-by: Gregor Riepl <onitake@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-27 00:22:06 +02:00
Michael Niedermayer
7f5c6ea511 avformat/utils: Fix use of uninitialized variable
Fixes CID1361961

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-26 19:04:46 +02:00
foo86
a0f76b825c avcodec/dca: move EXSS sampling frequency arrays to dca.c
Avoids unwanted parser dependency on dcadata.

Signed-off-by: James Almer <jamrial@gmail.com>
2016-05-26 13:32:48 -03:00
Anton Khirnov
f5c4388419 FATE: drop the audio stream from the dxtory test
This is a video test and there are no audio packets in the sample
anyway.
2016-05-26 15:40:34 +02:00
Anton Khirnov
fe7b21c8f1 avconv: fix parsing bitstream filters
The current code modifies the user-supplied string, which is shared for
the whole output file. So a bitstream filter specification applied to
multiple streams would not work correctly.
2016-05-26 15:40:34 +02:00
Anton Khirnov
80fb19bc23 avconv: fix a check for av_bsf_get_by_name() return value 2016-05-26 15:40:34 +02:00
Anton Khirnov
9f7590f4e4 avconv_vaapi: use the hwcontext device creation API 2016-05-26 15:40:34 +02:00
Anton Khirnov
18c506e9e6 avconv_dxva2: use the hwcontext device creation API 2016-05-26 15:40:34 +02:00
Anton Khirnov
f72db3f2f3 avconv_vdpau: use the hwcontext device creation API 2016-05-26 15:40:34 +02:00
Anton Khirnov
b8bf9194af hwcontext_vaapi: implement device creation 2016-05-26 15:40:34 +02:00
Anton Khirnov
8e70385a8e hwcontext_dxva2: implement device creation 2016-05-26 15:40:33 +02:00
Anton Khirnov
2e219b491b hwcontext_cuda: implement device creation 2016-05-26 15:40:33 +02:00
Anton Khirnov
38392b2af8 hwcontext_vdpau: implement device creation 2016-05-26 15:40:33 +02:00
Anton Khirnov
1c9e8616c5 hwcontext: add a function for opening devices 2016-05-26 15:40:32 +02:00
Andrey Turkin
24b5cff01b lavc: handle hw_frames_ctx where necessary
avcodec_copy_context() didn't handle hw_frames_ctx references correctly
which could cause crashes.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-05-26 15:40:05 +02:00
Paul B Mahol
d93495c954 avcodec/vble: add frame threading support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-05-26 12:22:45 +02:00
Michael Niedermayer
89e9393022 doc/developer.texi: Add a code of conduct
See: [FFmpeg-devel] [Vote] Code of Conduct

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-26 01:51:34 +02:00
Muhammad Faiz
defab0825f avfilter/src_movie: add various commands
add seek command
add get_duration command

Update to codecpar by commiter

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-25 17:19:41 +02:00
Matthieu Bouron
d14deeb6bc lavc/mediacodec: add missing MediaCodec.Get{Input,Output}Buffer() checks 2016-05-25 16:46:47 +02:00
Matthieu Bouron
fbc9359d85 lavc/mediacodec: factorize static fields initialization 2016-05-25 16:46:47 +02:00
Diego Biurrun
4024b566d6 golomb: Give svq3_get_se_golomb()/svq3_get_ue_golomb() better names 2016-05-25 16:37:43 +02:00
James Almer
493db04c4e avcodec/Makefile: add missing dependencies to dca parser
They are needed starting with the previous commit

Signed-off-by: James Almer <jamrial@gmail.com>
2016-05-25 11:23:48 -03:00
foo86
cb55c5b49e avcodec/dca_parser: set duration for core-less streams
Signed-off-by: James Almer <jamrial@gmail.com>
2016-05-25 11:23:45 -03:00
foo86
72a9a7e9cb avcodec/dca_exss: prepare to be called from parser context
Signed-off-by: James Almer <jamrial@gmail.com>
2016-05-25 11:22:55 -03:00
Diego Biurrun
7ca4fdc046 fate: More fine-grained dependencies for demuxer tests 2016-05-25 15:16:38 +02:00
Diego Biurrun
07377fb557 fate: More fine-grained dependencies for voice codec tests 2016-05-25 15:16:25 +02:00
Timo Rothenpieler
24fcb23351 avcodec/nvenc: Require Maxwell for lossless 2016-05-25 12:16:54 +02:00
Andrey Turkin
a8cf25dd92 avcodec/nvenc: CUDA frames support
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-05-25 12:16:48 +02:00
Andrey Turkin
cfb49fc6f7 avcodec/nvenc: replace custom FIFOs with AVFifos
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-05-25 12:16:45 +02:00
Andrey Turkin
e1691c44f0 avcodec/nvenc: combine input and output surface structures
There is no point in separate structures as they have 1:1 relationship,
they are always used together and they have same lifetime.

Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-05-25 12:16:40 +02:00
Andrey Turkin
82d705e245 avcodec/nvenc: split large functions into smaller ones
Functions names and scopes are from libav. This commit basically moves
code around without changing it; it shouldn't change any functionality
except some small leak fixes on error paths.

Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-05-25 12:16:33 +02:00
Martin Storsjö
3fdffc032e rtsp: Use avcodec_descriptor_get instead of avcodec_find_decoder
This is only used for logging a human readable codec name for
debugging.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-05-25 12:22:28 +03:00
Michael Niedermayer
9591ca704b avformat/udp: Close the socket after destroying the thread using the socket
for send() this cannot work and even for recv() it feels very wrong and hackish

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-25 01:39:23 +02:00
Michael Niedermayer
9b7a8bddac avformat/udp: redesign threaded udp tx code
This fixes partially completed send()
Avoids holding the mutex during send()
fixes race conditions in error handling
removes copied non thread specific blocking code
Fixes deadlocks on closure
Fixes data loss on closure

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-25 01:39:23 +02:00
Pavel Nikiforov
413c842a69 avformat/udp: Add a delay between packets for streaming to clients with short buffer
This commit enables sending UDP packets in a background thread with specified delay.
When sending packets without a delay some devices with small RX buffer
( MAG200 STB, for example) will drop tail packets in bursts causing
decoding errors.

To use it specify "fifo_size" with "packet_gap" .

The output url will looks like udp://xxx:yyy?fifo_size=<output fifo
size>&packet_gap=<delay in usecs>

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-25 01:39:22 +02:00
dsmudhar
49640ae315 libavcodec/dv_tablegen: fixed wrong printf format
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-24 20:47:03 +02:00
dsmudhar
04d35004c3 libavfilter/vf_hwdownload: show error when ff_formats_ref fails
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-24 20:00:17 +02:00
Michael Niedermayer
35b37591c0 avfilter/af_hdcd: Replace complexer expression by litteral constant
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-24 19:56:55 +02:00
Diego Biurrun
e47b8bbf0b avcodec: Bump micro version after changing public JPEG 2000 defines 2016-05-24 15:47:15 +02:00
Francois Cartegnie
ad61da054b jpeg2000: Fix profile define values
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2016-05-24 12:22:57 +02:00
Michael Niedermayer
4c82ccad2b avformat/mov: Avoid "Unintended sign extension"
Fixes CID1361957

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-24 04:37:50 +02:00
ZhouXiaoyong
8392794c92 avcodec/mips/idctdsp_mmi: Version 2 of the optimizations for loongson mmi
1. no longer use the register names directly and optimized code format
    2. to be compatible with O32, specify type of address variable with mips_reg and handle the address variable with PTR_ operator

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-23 23:42:05 +02:00
ZhouXiaoyong
377e5db3db avcodec/mips/pixblockdsp_mmi: Version 2 of the optimizations for loongson mmi
1. no longer use the register names directly and optimized code format
    2. to be compatible with O32, specify type of address variable with mips_reg and handle the address variable with PTR_ operator

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-23 23:42:04 +02:00
ZhouXiaoyong
05a546181f avcodec/mips/blockdsp_mmi: Version 2 of the optimizations for loongson mmi
1. no longer use the register names directly and optimized code format
    2. to be compatible with O32, specify type of address variable with mips_reg and handle the address variable with PTR_ operator

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-23 23:42:03 +02:00
foo86
9bd1d79584 avcodec/dca_exss: always update downmix flags
Fixes potential parsing failure when total number of channels indicated
by EXSS asset descriptor decreases mid-stream and stale embedded downmix
flags are referenced.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-23 22:54:44 +02:00
Paul B Mahol
5b8faaad6c avfilter/vf_blend: fix incorrect Y variable when threading is used
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-05-23 21:49:15 +02:00
dsmudhar
6b852a3fd9 libavutil/opencl: fixed uninitialized var warning
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-23 11:28:03 +02:00
Anton Khirnov
ac84e618df avfiltergraph: check the query_formats() return value 2016-05-23 06:46:18 +02:00
Anton Khirnov
2ef6dab0a7 lavc: document that avcodec_close() should not be used
We cannot deprecate it until the new parser API is in place, because of
the way libavformat works. But the majority of the users can already
simply replace it with avcodec_free_context(), which will simplify the
transition once it is finally deprecated.
2016-05-23 06:46:18 +02:00
Anton Khirnov
04fc8e24a0 lavc: deprecate avcodec_get_context_defaults3()
This function is supposed to "reset" a codec context to a clean state so
that it can be opened again. The only reason it exists is to allow using
AVStream.codec as a decoding context (after it was already
opened/used/closed by avformat_find_stream_info()). Since that behaviour
is now deprecated, there is no reason for this function to exist
anymore.
2016-05-23 06:46:17 +02:00
Anton Khirnov
5f30ac2779 lavc: deprecate avcodec_copy_context()
Since AVCodecContext contains a lot of complex state, copying a codec
context is not a well-defined operation. The purpose for which it is
typically used (which is well-defined) is copying the stream parameters
from one codec context to another. That is now possible with through the
AVCodecParameters API. Therefore, there is no reason for
avcodec_copy_context() to exist.
2016-05-23 06:46:17 +02:00
Anton Khirnov
14634429b9 lavf: update muxing doxy
Describe the new AVCodecParameters API.
2016-05-23 06:46:17 +02:00
dsmudhar
84417593b9 libavcodec/cfhd: fixed wrong printf format
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-23 05:39:37 +02:00
dsmudhar
5836a5037e libavfilter/af_hdcd: fixed negative signed value shift
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-23 05:39:37 +02:00
Petru Rares Sincraian
89806e0b9a fate: add aecho test
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-23 02:31:03 +02:00
Paul B Mahol
cd506c2792 avcodec/truemotion2rt: also export key frame info
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-05-22 23:32:38 +02:00
Luca Barbato
74b1bf632f mp3: Make the extrasize explicit
Initialize the bit buffer with the correct size (amount of bits that will
be read) instead of relying on the bitstream reader overreading the
correct values.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2016-05-22 23:07:54 +02:00
Piotr Bandurski
854c405dab avcodec/iff: mention RGB8/RGBN decoder
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-22 23:04:37 +02:00
Paul B Mahol
5ce1d089f0 avcodec/mvcdec: simplify, no need to use reget buffer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-05-22 22:58:01 +02:00
Diego Biurrun
52567e8198 get_bits: Drop some TRACE-level debug code
It will not be provided by the new bit reader anyway.
2016-05-22 20:22:43 +02:00
Diego Biurrun
e45a638f50 dump: Drop unused variable 2016-05-22 20:22:43 +02:00
Diego Biurrun
e2a3df1a46 avconv: Use more precise deprecation ifdefs
This fixes compilation with the libavcodec version bumped to 58.
2016-05-22 20:22:43 +02:00
Anton Khirnov
35c8580668 avconv: stop using AVStream.codec
It is now only used by the av_parser_change() call during streamcopy, so
allocate a special AVCodecContext instance for this case. This instance
should go away when the new parser API is finished.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2016-05-22 20:22:42 +02:00
Michael Niedermayer
566be4f9e8 avformat/matroskaenc: reindent after last commit
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-22 03:22:16 +02:00
Michael Niedermayer
2062d51275 avformat/matroskaenc: wrap par->format use as sample format under codec_type == AVMEDIA_TYPE_AUDI
Fixes CID1361946

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-22 03:22:09 +02:00
Michael Niedermayer
9d5894b239 avformat/avienc: Fix memleaks on errors
Fixes CID1361951

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-22 02:14:33 +02:00
Michael Niedermayer
ea88dc3e8e avformat/avienc: Rename reshuffles return variable to ensure it is not mixed up
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-22 02:14:33 +02:00
Paul B Mahol
defb960a47 avfilter/af_loudnorm: fix crash when ebur128 initialization was not successfull/complete
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-05-21 19:23:04 +02:00
Paul B Mahol
4da4bfcdc9 avformat: add MTAF demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-05-21 18:49:45 +02:00
Paul B Mahol
8c17eea46f avcodec: add adpcm MTAF decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-05-21 18:49:45 +02:00
Michael Niedermayer
e7c5dbb4d1 avfilter/avf_ahistogram: raise minimum acmax to 1
If acmax can be 0 then it could result in a division by 0
Fixes CID1351345

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-21 18:47:25 +02:00
Paul B Mahol
8e069eb525 avcodec/aic: add frame threading support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-05-21 18:10:07 +02:00
Zhou Xiaoyong
c749be9eb3 avcodec/mips: loongson optimize h264pred with mmi v3
1. no longer use the register names directly and optimized code format
2. to be compatible with O32, specify type of address variable with mips_reg and handle the address variable with PTR_ operator
3. ff_pred16x16_plane_ functions only support N64 ABI now

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-21 17:13:13 +02:00
Zhou Xiaoyong
4a963ee698 avcodec/mips: loongson optimize hpeldsp with mmi v1
1.the codes are compatible with O32 ABI
2.use uld and mtc1 to workaround cpu 3A2000 gslwlc1 bug (gslwlc1 instruction extension bug in O32 ABI)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-21 17:13:13 +02:00
Zhou Xiaoyong
a20646bb24 avcodec/mips/mpegvideo_mmi: Version 2 of the optimizations for loongson mmi
1. no longer use the register names directly and optimized code format
2. to be compatible with O32, specify type of address variable with mips_reg and handle the address variable with PTR_ operator

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-21 17:13:13 +02:00
Paul B Mahol
ccc3f4e710 avcodec/sgirledec: simplify, no need to use reget buffer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-05-21 15:49:03 +02:00
ZhouXiaoyong
a3eb5a3cdd avcodec/mips/h264chroma_mmi: Version 2 of the optimizations for loongson mmi
1. no longer use the register names directly and optimized code format
2. to be compatible with O32, specify type of address variable with mips_reg and handle the address variable with PTR_ operator
3. use uld and mtc1 to workaround cpu 3A2000 gslwlc1 bug (gslwlc1 instruction extension bug in O32 ABI)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-21 14:25:33 +02:00
foo86
64fe1eebdd avcodec/dca: use LUT for LBR frequency ranges
Values for unsupported frequencies > 48000 Hz are still included (parser
will make use of them).

Also convert sampling frequencies array to unsigned.

Signed-off-by: James Almer <jamrial@gmail.com>
2016-05-20 23:12:37 -03:00
foo86
801dbf0269 avcodec/dca: simplify 'residual ok' flag tracking
Move this from separate structure field to a packet flag.

Behavior should be equivalent, except that residual flag is now properly
cleared when packet has no core frame at all.

Also print a message when forcing recovery mode due to invalid residual
to make debugging easier.

Signed-off-by: James Almer <jamrial@gmail.com>
2016-05-20 22:54:48 -03:00
foo86
a0349ae27c avcodec/dca_parser: improve frame end search
Parse core frame size directly when searching for frame end instead of
using value extracted from previous frame.

Account for unused bits when calculating sync word distance for 14-bit
streams to avoid alias sync detection.

Parse EXSS frame size and skip over EXSS frame to avoid alias sync
detection.

Signed-off-by: James Almer <jamrial@gmail.com>
2016-05-20 16:36:08 -03:00
foo86
39f7620d76 avcodec/dca: don't set initial sample_fmt
Valid sample_fmt will be set by dcadec_decode_frame() based on stream type.

Signed-off-by: James Almer <jamrial@gmail.com>
2016-05-20 15:11:34 -03:00
foo86
b5cda23039 avcodec/dca: remove useless debug message
Most DTS-in-WAV streams trigger this, making debug output hard to read.

Signed-off-by: James Almer <jamrial@gmail.com>
2016-05-20 14:58:25 -03:00
Michael Niedermayer
b50bd69516 avutil/eval-test: Check av_expr_parse_and_eval() for failure and also check it in the fate test
Fixes CID1361940

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-20 19:32:02 +02:00
foo86
e0706e9cc8 avcodec/dca: remove Rice code length limit
Signed-off-by: James Almer <jamrial@gmail.com>
2016-05-20 14:11:49 -03:00
Paul B Mahol
8b5941ce59 doc/filters: fix order of tinterlace filter drop modes
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-05-20 09:51:55 +02:00
Michael Niedermayer
b24fffeb94 avcodec/utils: Move avctx->codec check before its use
Fixes CID1361954

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-20 04:32:57 +02:00
Paul B Mahol
14992421df avcodec/adpcm: pick correct step_index for IMA AMV
Fixes #5538

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-05-19 23:48:25 +02:00
Michael Niedermayer
699201ac0e avcodec/options-test: Check avcodec_open2() return value
Fixes: CID1361937

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-19 21:19:00 +02:00
Stefano Sabatini
4b38df82c2 lavf/mpegts: add ID3 entry to the REGD_types array
This allows to recognize ID3 packets from their corresponding descriptor
tag.
2016-05-19 18:26:32 +02:00
Stefano Sabatini
1ab8e03a45 lavf/mpegtsenc: set metadata stream type and write descriptor for ID3 packets
This allow to remux data packets which are then recognized as ID3 packets.
2016-05-19 18:26:32 +02:00
Michael Niedermayer
7ecfe4dc36 avcodec/diracdec: Fix potential integer overflow
Fixes CID1361948

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-19 18:13:29 +02:00
Paul B Mahol
7494b49780 avformat/iff: parse DPAN chunk
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-05-19 17:02:06 +02:00
Paul B Mahol
a5c5ae5ed8 avcodec/iff: add support for ANBR files
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-05-19 16:52:30 +02:00
Anton Khirnov
3399a26d3f nvenc: allow setting the number of slices
Based on a patch by Agatha Hu <ahu@nvidia.com>
2016-05-19 14:17:04 +02:00
Philip Langdale
10545f84b8 nvenc: De-compensate aspect ratio compensation of DVD-like content.
For reasons we are not privy to, nvidia decided that the nvenc encoder
should apply aspect ratio compensation to 'DVD like' content, assuming that
the content is not BT.601 compliant, but needs to be BT.601 compliant. In
this context, that means that they make the following, questionable,
assumptions:

1) If the input dimensions are 720x480 or 720x576, assume the content has
an active area of 704x480 or 704x576.

2) Assume that whatever the input sample aspect ratio is, it does not account
for the difference between 'physical' and 'active' dimensions.

From these assumptions, they then conclude that they can 'help', by adjusting
the sample aspect ratio by a factor of 45/44. And indeed, if you wanted to
display only the 704 wide active area with the same aspect ratio as the full
720 wide image - this would be the correct adjustment factor, but what if you
don't? And more importantly, what if you're used to lavc not making this kind
of adjustment at encode time - because none of the other encoders do this!

And, what if you had already accounted for BT.601 and your input had the
correct attributes? Well, it's going to apply the compensation anyway!
So, if you take some content, and feed it through nvenc repeatedly, it
will keep scaling the aspect ratio every time, stretching your video out
more and more and more.

So, clearly, regardless of whether you want to apply bt.601 aspect ratio
adjustments or not, this is not the way to do it. With any other lavc
encoder, you would do it as part of defining your input parameters or do
the adjustment at playback time, and there's no reason by nvenc should
be any different.

This change adds some logic to undo the compensation that nvenc would
otherwise do.

nvidia engineers have told us that they will work to make this
compensation mechanism optional in a future release of the nvenc
SDK. At that point, we can adapt accordingly.

Signed-off-by: Philip Langdale <philipl@overt.org>
Reviewed-by: Timo Rothenpieler <timo@rothenpieler.org>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-05-19 14:17:04 +02:00
Anton Khirnov
9375c97460 nvenc: list the major contributors in the copyright header 2016-05-19 14:17:04 +02:00
Timo Rothenpieler
09522a303d configure: Don't require nonfree for nvenc
As the nvEncodeApi.h header is now MIT licensed, this can be dropped.
The loaded CUDA and NVENC libraries are part of the nvidia driver, and
thus count as system libraries.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-05-19 14:17:03 +02:00
Anton Khirnov
6f58b4dc47 nvenc: drop the hard dependency on CUDA
The code needs only a few definitions from cuda.h, so define them
directly when CUDA is not enabled. CUDA is still required for accepting
HW frames as input.

Based on the code by Timo Rothenpieler <timo@rothenpieler.org>.
2016-05-19 14:17:03 +02:00
Anton Khirnov
f11ec8cee7 nvenc: only support HW frames when CUDA is enabled
hwcontext_cuda.h includes cuda.h, so this will allow building nvenc
without depending on cuda.h
2016-05-19 14:17:03 +02:00
Anton Khirnov
2156c4c300 nvenc: write the VUI signal properties for HEVC
Bump the API version requirement to 6.

Based on a patch by Agatha Hu <ahu@nvidia.com>.
2016-05-19 14:17:03 +02:00
Anton Khirnov
a1df786503 nvenc: only write the VUI signal type fields if they are set
Based on a patch by Agatha Hu <ahu@nvidia.com>.
2016-05-19 14:17:03 +02:00
Timo Rothenpieler
cea1fb854c nvenc: Generate bufferingPeriod/pictureTiming SEI
For some unknown reason enabling these causes proper CBR padding,
so as there are no known downsides just always enable them in CBR mode.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-05-19 14:17:03 +02:00
Timo Rothenpieler
a1e215ea01 nvenc: Delay frame output to increase encoding speed
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-05-19 14:17:01 +02:00
Anton Khirnov
9427d92f40 nvenc: add support for lossless encoding
Based on a patch by Philip Langdale <philipl@overt.org>
2016-05-19 14:08:55 +02:00
Timo Rothenpieler
795329dd4c nvenc: Generate AUD NAL units for better compatiblity
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-05-19 14:08:30 +02:00
Anton Khirnov
e42b9bc894 nvenc: fix the rc option definitions 2016-05-19 14:08:25 +02:00
Anton Khirnov
65dc7ca4c8 Add release notes for 12. 2016-05-19 13:44:41 +02:00
Derek Buitenhuis
d68fb14758 mjpegdec: Properly fail on malloc failure
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-05-19 13:44:41 +02:00
Anton Khirnov
85ce9636e4 configure: move the hardware accel libs' entries in the configure output
Print them as a subsection of the external library section, in line with
what is done for the help text in the previous commit.
2016-05-19 13:43:29 +02:00
Anton Khirnov
c0f4c7db9f configure: move the hardware accel libs' entries in the help text
Group them in a subsection of the external library section. That should
make them easier to find and understand how they fit in the scheme of
things.

Also, rewrite the description text in a similar way as in the previous
commit.
2016-05-19 13:41:51 +02:00
Anton Khirnov
5e2203448a configure: improve the help text for external libraries
Add a more accurate description of what the switches actually do (i.e.
allow using the given library, not enabling the corresponding
codecs etc.).

Replace the library descriptions, in many cases boilerplate text without
useful information, with a short summary of what the library does.
2016-05-19 13:40:53 +02:00
Anton Khirnov
0d95d88fbd lavc: revert the Makefile part of 330177b
There is no real advantage to listing some codecs or subsystems
separately simply because they are somehow "hw-accelerated", on the
contrary it makes them harder to find than in a plain alphabetically
ordered list.
2016-05-19 13:40:53 +02:00
Diego Biurrun
ded4a6543d xtea-test: Use struct allocation functions from the API 2016-05-19 09:55:55 +02:00
Diego Biurrun
8131bd4c22 blowfish-test: Use struct allocation functions from the API 2016-05-19 09:55:55 +02:00
Diego Biurrun
a86ef80494 blowfish-test: Return different values for different errors 2016-05-19 09:55:55 +02:00
Martin Storsjö
b84f3a4003 movenc: Write 'loci' geotag metadata for 3gp and mp4
Signed-off-by: Martin Storsjö <martin@martin.st>
2016-05-19 10:46:55 +03:00
Martin Storsjö
f12a705ee5 movenc: Factorize a function for finding a metadata entry and the associated language
Signed-off-by: Martin Storsjö <martin@martin.st>
2016-05-19 10:46:54 +03:00
Michael Niedermayer
daec1651f1 movenc: Write ?xyz geotag metadata for mov files
Signed-off-by: Martin Storsjö <martin@martin.st>
2016-05-19 10:46:53 +03:00
Michael Niedermayer
bc43131997 mov: Also export loci altitude
Signed-off-by: Martin Storsjö <martin@martin.st>
2016-05-19 10:46:53 +03:00
Michael Niedermayer
94d8141c8c mov: Append place name instead of overwriting for loci
Signed-off-by: Martin Storsjö <martin@martin.st>
2016-05-19 10:46:52 +03:00
Michael Niedermayer
f126365cda mov: Fix parsing short loci
Previously, we required the minimum number of bytes required for
the full box. Don't strictly require the astronomical body and additional
notes fields, but do require an altitude field (which currently isn't
parsed). This matches the initial length check at the start of the function
(which doesn't know about the variable length place field).

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-05-19 10:46:51 +03:00
Michael Niedermayer
704d2bd18b mov: Print reason of loci parsing failure
Signed-off-by: Martin Storsjö <martin@martin.st>
2016-05-19 10:46:45 +03:00
Martin Storsjö
d34826c33d mov: Add a comment referring to the standard that defines the loci box
Signed-off-by: Martin Storsjö <martin@martin.st>
2016-05-19 10:46:39 +03:00
James Almer
e34e7a575e avformat/dtshddec: move data_start outside of DTSHDDemuxContext
It's only used in dtshd_read_header()

Signed-off-by: James Almer <jamrial@gmail.com>
2016-05-19 00:02:50 -03:00
Michael Niedermayer
df01a29c1b avcodec/exr: Fix potential integer overflow
Fixes CID1361949

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-19 03:28:25 +02:00
Michael Niedermayer
641dccc2aa avcodec/h264: Check init_get_bits8() for failure
Fixes CID1361935

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-19 00:19:52 +02:00
Michael Niedermayer
4a81bddb4d ffmpeg_filter: Fix AVBufferSrcParameters leak
Fixed: CID1361950

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-19 00:10:27 +02:00
Michael Niedermayer
d08f2c172f avformat/avidec: Detect index with too short entries
Fixes Ticket5498

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-18 23:59:02 +02:00
Michael Niedermayer
7155bd1c94 avcodec/m101: Ask for samples with too small extradata_size
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-18 23:59:02 +02:00
Kyle Swanson
c0c378009b avfilter: add loudnorm
Signed-off-by: Kyle Swanson <k@ylo.ph>
2016-05-18 22:15:01 +02:00
Martin Storsjö
72d621069f movenc: Add a missed const
This was missed in e1eb0fc9601, when ff_interleaved_peek was
changed to include const during the evolution of the patch.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-05-18 21:59:48 +03:00
Michael Niedermayer
42ee137a0a avcodec/m101: Check BPS value
Fixes null pointer dereference
Fixes Ticket5520

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-18 18:40:22 +02:00
Paul B Mahol
810a8ba5b6 avcodec/iff: add forgotten checks for end of input buffer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-05-18 12:46:43 +02:00
Paul B Mahol
eef2f64294 avcodec/iff: scala anim32 & anim16 decompression
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-05-18 12:32:41 +02:00
Martin Storsjö
a79aafd0b4 movenc: Add a test for VFR with b-frames, with a duration change at a fragment end
Signed-off-by: Martin Storsjö <martin@martin.st>
2016-05-18 10:37:05 +03:00
Martin Storsjö
e1eb0fc960 movenc: Use packets in interleaving queues for the duration at the end of fragments
As long as caller only writes packets using av_interleaved_write_frame
with no manual flushing, this should allow us to always have accurate
durations at the end of fragments, since there should be at least
one queued packet in each stream (except for the stream where the
current packet is being written, but if the muxer itself does the
cutting of fragments, it also has info about the next packet for that
stream).

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-05-18 10:37:03 +03:00
Martin Storsjö
fd4957d9c6 movenc-test: Test write_data_type
Signed-off-by: Martin Storsjö <martin@martin.st>
2016-05-18 10:37:00 +03:00
Martin Storsjö
71852a1ba8 matroskaenc: Provide output bytestream markers
Signed-off-by: Martin Storsjö <martin@martin.st>
2016-05-18 10:36:58 +03:00
Martin Storsjö
dbbaad32e3 movenc: Provide output bytestream markers for fragmented content
Signed-off-by: Martin Storsjö <martin@martin.st>
2016-05-18 10:36:55 +03:00
Martin Storsjö
371df9ba71 flvenc: Provide output bytestream markers
Signed-off-by: Martin Storsjö <martin@martin.st>
2016-05-18 10:36:53 +03:00
Martin Storsjö
db7968bff4 avio: Allow custom IO users to get labels for the output bytestream
This allows callers with avio write callbacks to get the bytestream
positions that correspond to keyframes, suitable for live streaming.

In the simplest form, a caller could expect that a header is written
to the bytestream during the avformat_write_header, and the data
output to the avio context during e.g. av_write_frame corresponds
exactly to the current packet passed in.

When combined with av_interleaved_write_frame, and with muxers that
do buffering (most muxers that do some sort of fragmenting or
clustering), the mapping from input data to bytestream positions
is nontrivial.

This allows callers to get directly information about what part
of the bytestream is what, without having to resort to assumptions
about the muxer behaviour.

One keyframe/fragment/block can still be split into multiple (if
they are larger than the aviocontext buffer), which would call
the callback with e.g. AVIO_DATA_MARKER_SYNC_POINT, followed by
AVIO_DATA_MARKER_UNKNOWN for the second time it is called with
the following data.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-05-18 10:36:45 +03:00
Michael Niedermayer
936751b652 avformat/avio: Fix null pointer dereference in case of memleak
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-18 00:53:21 +02:00
Yong Lei
7bacf74536 avformat/avio: fix memory leak in url_find_protocol
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-18 00:51:52 +02:00
Chris Cunningham
2875745d35 avformat/utils: Check negative bps before shifting in ff_get_pcm_codec_id()
Fixes: undefined shift.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-17 23:47:24 +02:00
Vittorio Giovara
8e757716c6 avprobe: Print stereo3d information 2016-05-17 12:25:27 -04:00
Vittorio Giovara
0c4468dc18 stereo3d: Add API to get name from value or value from name
Use it in av_dump_format() instead of a huge switch case.
2016-05-17 12:25:27 -04:00
Vladimir Voroshilov
d621b2f795 lavf: Raw G.729 demuxer
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-05-17 12:24:32 -04:00
Derek Buitenhuis
d55568d22a Merge commit '71d3305c2711d4f6ec8b92db09ff64cf4e19a58e'
* commit '71d3305c2711d4f6ec8b92db09ff64cf4e19a58e':
  h264_parse: make sure the ref count is zeroed on all failure paths

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-17 15:18:43 +01:00
Derek Buitenhuis
278dcec28d Merge commit 'a6e27f7add2698fdd89911632b570c3d0c3f2aaa'
* commit 'a6e27f7add2698fdd89911632b570c3d0c3f2aaa':
  h264: factor out parsing the reference count into a separate file

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-17 15:16:38 +01:00
Derek Buitenhuis
6b295bccbb Merge commit '56b17a33f231859cbccbd741b4763617cb4ecf03'
* commit '56b17a33f231859cbccbd741b4763617cb4ecf03':
  h264: stop testing whether the reference count changes in ff_set_ref_count()

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-17 14:55:36 +01:00
Derek Buitenhuis
7ab2c036b9 Merge commit 'e9f884416c76558098fc1f63825b293956e8483c'
* commit 'e9f884416c76558098fc1f63825b293956e8483c':
  h264: move reading direct_spatial_mv_pred out of ff_set_ref_count()

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-17 14:38:14 +01:00
Hendrik Leppkes
15ad023210 Merge commit '8d0cc8ca97678f4ca87948ebabcbaab5a4f4c1f6'
* commit '8d0cc8ca97678f4ca87948ebabcbaab5a4f4c1f6':
  h264_parser: switch to h2645_parse for NAL unescaping

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-05-17 14:21:12 +02:00
Hendrik Leppkes
a9bb4cf87d h2645_parse: support badly muxed mp4 streams
Some streams contain an additional AnnexB NAL inside the mp4/nalff NALU.
This commonly occurs in interlaced streams where both fields are packed
into the same MP4 NAL with an AnnexB startcode in between.

Port handling of this format from the previous h264 nal handling.

Fixes trac #5529
2016-05-17 14:03:21 +02:00
Martin Storsjö
34effe816f fate: Update fate-lavf-ts after commit 393596f9d5
Signed-off-by: Martin Storsjö <martin@martin.st>
2016-05-17 12:41:38 +03:00
Diego Biurrun
b8de14bcdf tools: Port to codec parameters API 2016-05-17 11:16:26 +02:00
Paul B Mahol
95b20ad7b2 avcodec/iff: fix artifacts with uncompressed ham ANIMs
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-05-17 11:02:44 +02:00
Francois Cartegnie
393596f9d5 mpegtsenc: stop impersonating ses in sdt
Unless specified, users must use non registered
range for network id

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-05-17 10:29:36 +02:00
Alexandra Hájková
ffa190d047 Move VLC and RL_VLC_ELEM structure definitions to a separate header
Use the newly created vlc.h directly instead of including get_bits when needed.
The VLC and RL_VLC_ELEM structures are independent from the bitreader.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-05-17 10:29:27 +02:00
Anton Khirnov
b23613268c avconv_dxva2: use the hwcontext API 2016-05-17 09:11:34 +02:00
Anton Khirnov
c46db38cde hwcontext: add a dxva2 implementation 2016-05-17 09:11:25 +02:00
ZhouXiaoyong
af3e944e7e avcodec/mips/h264dsp_mmi: Version 2 of the optimizations for loongson mmi
1. no longer use the register names directly and optimized code format
2. to be compatible with O32, specify type of address variable with mips_reg and handle the address variable with PTR_ operator
3. optimize some unaligned loads and stores
4. use uld and mtc1 to workaround cpu 3A2000 gslwlc1 bug (gslwlc1 instruction extension bug in O32 ABI)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-17 04:18:42 +02:00
James Almer
60c2e38dcb avformat/dtshddec: implement AUPR_HDR chunk parsing
Use it to get stream duration, sample rate, channel count and initial padding

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-05-16 19:29:59 -03:00
James Almer
ab3c04c458 avformat/dtshddec: parse chunks stored after audio data
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-05-16 19:29:55 -03:00
Paul B Mahol
72e33eec3a avcodec/iff: add support for ANIMs with keyframes and concatenated ANIMs
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-05-16 22:39:03 +02:00
Paul B Mahol
8767470fb5 avcodec/iff: check if there is enough bytes left
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-05-16 15:39:28 +02:00
Michael Niedermayer
635b2ec5f2 avformat/utils: Do not compute the bitrate from duration == 0
Fixes division by 0 in fate-acodec-ra144

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-16 14:23:49 +02:00
Michael Niedermayer
6085d6b2ae ffmpeg: Check that r_frame_rate is set before attempting to use it
Avoids unexpected occurance and dependency on NaN behavior and divisions by 0

Testcase: fate-lavf-fate-avi_cram

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-16 14:23:49 +02:00
Alexandra Hájková
d338abb664 mpeg4videodec: Call av_log() in check_marker() with AVCodecContext instead of NULL
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-05-16 10:51:17 +02:00
Alexandra Hájková
e4b38878da Move check_marker() from get_bits to mpeg4videodec
MPEG-4 is the only decoder which uses check_marker().

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-05-16 10:51:01 +02:00
Anton Khirnov
31f6a4b4b8 lavc: mark the old audio/video encoding API as deprecated 2016-05-16 10:31:26 +02:00
Anton Mitrofanov
2fb1d17a5a x86inc: Enable AVX emulation in additional cases
Allows emulation to work when dst is equal to src2 as long as the
instruction is commutative, e.g. `addps m0, m1, m0`.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-05-16 10:31:24 +02:00
Anton Mitrofanov
300fb0df84 x86inc: Improve handling of %ifid with multi-token parameters
The yasm/nasm preprocessor only checks the first token, which means that
parameters such as `dword [rax]` are treated as identifiers, which is
generally not what we want.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-05-16 10:31:20 +02:00
Anton Mitrofanov
8d02579fae x86inc: Fix AVX emulation of some instructions
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-05-16 10:31:17 +02:00
Henrik Gramner
ba3eb745cc x86inc: Fix AVX emulation of scalar float instructions
Those instructions are not commutative since they only change the first
element in the vector and leave the rest unmodified.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-05-16 10:31:13 +02:00
Anton Khirnov
8996515b13 avpacket: fix setting AVPacket.data in av_packet_ref()
The data field does not necessarily point to the beginning of the
underlying AVBuffer.

CC: libav-stable@libav.org
2016-05-16 10:31:08 +02:00
Anton Khirnov
e62ff72fc1 lavc: make avcodec_open2() fail when the timebase is not set for encoding
Many encoders use it. There is also a divide by the timebase lower in
this function, which would crash when it is not set.
2016-05-16 10:30:57 +02:00
Michael Niedermayer
feeb3a9261 swresample/resample: Fix division by 0 with tap_count=1
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-16 05:10:21 +02:00
Michael Niedermayer
2f76157eb0 swresample/rematrix: Use clipping s16 rematrixing if overflows are possible
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-15 22:25:34 +02:00
Paul B Mahol
5afecff1ef avformat/adxdec: set bit_rate, fixes duration calculation
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-05-15 19:05:19 +02:00
Michael Niedermayer
7fe81bc4f8 swresample/rematrix: Use error diffusion to avoid error in the DC component of the matrix
This fixes the sum of the integer coefficients ending up summing to a value
larger than the value representing unity.

This issue occurs with qN0.dts when converting to stereo

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-15 18:36:53 +02:00
Michael Niedermayer
35c23bf67d avcodec/dsd: Fix "warning: ctables defined but not used [-Wunused-variable]"
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-15 17:46:38 +02:00
Paul B Mahol
5350e0fc97 avcodec/iff: rewrite out of bounds checking in writer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-05-15 16:35:47 +02:00
Michael Niedermayer
fd4a52e4da avcodec/dstdec: Fix "warning: initialization from incompatible pointer type [enabled by default]"
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-15 12:21:15 +02:00
James Almer
81c3ce0855 doc/general: update supported DCA extensions 2016-05-14 23:00:12 -03:00
Will Kelleher
964f07f68e hevc: Fix memory leak related to a53_caption data
Signed-off-by: Will Kelleher <wkelleher@gogoair.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-15 01:30:53 +02:00
Paul B Mahol
6543a72fce doc/general: mention DST decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-05-15 01:26:02 +02:00
Paul B Mahol
9b017ac7f1 doc/general: mention WSD demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-05-15 01:22:36 +02:00
Paul B Mahol
26eee872e8 avcodec/escape124: change transitions table type to int8_t
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-05-15 01:19:49 +02:00
Paul B Mahol
f57897e498 avcodec: bump minor and update Changelog for recent DST addition
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-05-15 01:19:49 +02:00
Peter Ross
86e493a6ff avcodec: add Direct Stream Transfer (DST) decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-05-15 01:01:45 +02:00
foo86
365b0c13e4 avcodec/dca: print error message when no frame is found in packet
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-14 19:59:49 +02:00
Paul B Mahol
51a1c1c6ac avcodec/iff: check for end of buffer in input for delta_l decompression
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-05-14 14:29:59 +02:00
ZhouXiaoyong
d680ab1c46 avutil/mips: header asmdefs.h add some PTR_ macros for loongson
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-14 04:46:52 +02:00
James Almer
004b582386 avutil/lzo: split test out into a separate file
Signed-off-by: James Almer <jamrial@gmail.com>
2016-05-13 22:48:56 -03:00
Paul B Mahol
01ead2a639 avcodec/iff: implement 3rd delta ANIM decompression
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-05-13 23:28:19 +02:00
James Almer
8ba257bac6 avformat/Makefile: fix avlanguage dependencies
Signed-off-by: James Almer <jamrial@gmail.com>
2016-05-13 17:19:56 -03:00
James Almer
d8ef8b960a avutil/sha512-test: fix memleak
Signed-off-by: James Almer <jamrial@gmail.com>
2016-05-13 16:53:44 -03:00
James Almer
7ee0e0ca1d avutil/sha-test: fix memleak
Signed-off-by: James Almer <jamrial@gmail.com>
2016-05-13 16:53:26 -03:00
James Almer
64dbfcc415 avutil/ripemd-test: fix memleak
Signed-off-by: James Almer <jamrial@gmail.com>
2016-05-13 16:53:18 -03:00
James Almer
f92d2f3292 avutil/aes-test: fix memleak
Signed-off-by: James Almer <jamrial@gmail.com>
2016-05-13 16:53:08 -03:00
Matthieu Bouron
f6265a5cbc swresample/arm: add ff_resample_common_apply_filter_{x4,x8}_{float,s16}_neon 2016-05-13 21:13:46 +02:00
Diego Biurrun
11de006bab Combine deprecation guards where appropriate
Some code blocks use multiple bits of deprecated API.
2016-05-13 15:14:30 +02:00
Diego Biurrun
a6a750c7ef tests: Move all test programs to a subdirectory 2016-05-13 14:55:56 +02:00
Diego Biurrun
257f00ec1a Split global .gitignore file into per-directory files 2016-05-13 14:55:56 +02:00
Paul B Mahol
17ea1cd559 avcodec/iff: change delta l offset to uint32_t
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-05-13 14:02:59 +02:00
Andriy Lysnevych
ed3a02547c avcodec/avpacket: Respect payload offset in av_packet_ref
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-13 03:49:26 +02:00
Tobias Rapp
77d1e88cf5 avformat/dump.c: fix mixed log levels
Previously a partial log message without newline was printed in case of
loglevel=warning.

Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-13 03:49:26 +02:00
Paul B Mahol
cb928fc448 lavc: add IFF ANIM decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-05-13 00:24:48 +02:00
Derek Buitenhuis
97946b20b6 Merge commit 'f3ed484953b81856e40239d2410058a96188b2be'
* commit 'f3ed484953b81856e40239d2410058a96188b2be':
  h264_mp4toannexb_bsf: do not fail on annex B extradata

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-12 14:34:03 +01:00
Luca Barbato
dd4fb2339f ape: Unbreak adaptcoeffs computation
And simplify and explain the expression.

Fault introduced in f3fdef108eb06b1e71b29152bf6822519e787efe

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-12 14:32:16 +01:00
Derek Buitenhuis
5b9a4476e3 Merge commit '5fca95c8e515a5ae542d9626ec088bdfc658450e'
* commit '5fca95c8e515a5ae542d9626ec088bdfc658450e':
  libx264: Forbid inverted Stereo3D mode

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-12 14:29:34 +01:00
Derek Buitenhuis
e3cfd1b275 Merge commit '9e2af0e9071a1229cfe21efff394691d91f979b2'
* commit '9e2af0e9071a1229cfe21efff394691d91f979b2':
  libx264: Allow Stereo3D monoscopic value

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-12 14:29:09 +01:00
Derek Buitenhuis
d4acf9f2dd Merge commit 'a08b5d7b5725932f4ad39e95c5d6589392dee2c6'
* commit 'a08b5d7b5725932f4ad39e95c5d6589392dee2c6':
  build: Silence the lcov-reset target

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-12 14:28:23 +01:00
Derek Buitenhuis
1549ca4267 Merge commit '75b90ef722b7cdfc70118ab987e298d087aae693'
* commit '75b90ef722b7cdfc70118ab987e298d087aae693':
  libavformat: Update the comment about AVOutputFormat flags

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-12 14:27:54 +01:00
Derek Buitenhuis
ee96b7b1c6 Merge commit '74383def8f46805faf3391c98516b248108a9a6b'
* commit '74383def8f46805faf3391c98516b248108a9a6b':
  movenc: Handle pts == NOPTS when autoflushing

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-12 14:27:34 +01:00
Derek Buitenhuis
a022c1fe76 Merge commit '0abb07bad7026a945a31ba4047e6583c8b3fa3da'
* commit '0abb07bad7026a945a31ba4047e6583c8b3fa3da':
  movenc: Update a comment to reflect how the code actually behaves

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-12 14:27:01 +01:00
Derek Buitenhuis
a2906846da Merge commit '79fdbfdb3e50f3f906903e027714ee04c1a00e89'
This commit is purposely skipped because it doesn't work very well
with what our img2enc.c supports.

* commit '79fdbfdb3e50f3f906903e027714ee04c1a00e89':
  img2enc: Refactor the atomic renaming code

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-12 14:26:19 +01:00
Derek Buitenhuis
22900770c5 Merge commit 'f3fdef108eb06b1e71b29152bf6822519e787efe'
* commit 'f3fdef108eb06b1e71b29152bf6822519e787efe':
  ape: Avoid undefined behaviour

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-12 14:20:51 +01:00
Derek Buitenhuis
3fd5f09845 Merge commit '6b2ad3ca48a6638cb0226ed5aab41d435d8c83a5'
This commit is a no-op.

* commit '6b2ad3ca48a6638cb0226ed5aab41d435d8c83a5':
  indeo3: Avoid undefined behaviour

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-12 14:18:49 +01:00
Derek Buitenhuis
f8a4b8bc40 Merge commit 'eae2ebded3b801ed55d32746b98db88ffe196f4f'
* commit 'eae2ebded3b801ed55d32746b98db88ffe196f4f':
  libxvid: Create extradata in init using a dummy frame

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-12 14:18:02 +01:00
Derek Buitenhuis
92d934106c Merge commit '785bfb1d7bb8de567c3aac1d9cc369b55ac9fb7b'
* commit '785bfb1d7bb8de567c3aac1d9cc369b55ac9fb7b':
  pixfmt: fix wrong comment

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-12 14:17:13 +01:00
Derek Buitenhuis
9f8a942d6a Merge commit '06edef3d5e072ef3c4face9ce946d2d9c36cc477'
* commit '06edef3d5e072ef3c4face9ce946d2d9c36cc477':
  Generate the lists of enabled protocols/bsfs from configure.

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-12 14:04:02 +01:00
Carl Eugen Hoyos
d1cacbbea9 lavc/libutvideoenc: Cast an unsigned constant to int.
Fixes the following warning / error:
libavcodec/libutvideoenc.cpp:281:1: warning: narrowing conversion of ‘3221258240u’ from ‘unsigned int’ to ‘int’ inside { } is ill-formed in C++11 [-Wnarrowing]

Fixes ticket #5542.
2016-05-12 09:07:02 +02:00
James Almer
cd244fae98 avutil/cpu-test: Fix includes (needed for HAVE_*)
Commit message by commiter
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-12 03:48:32 +02:00
Michael Niedermayer
65ffc0b1ed avutil/float_dsp-test: Add include config.h for HAVE_*
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-12 03:48:32 +02:00
James Almer
7d8e19a5c4 avutil: make crypto testprogs include headers only
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-05-11 19:47:35 -03:00
Derek Buitenhuis
f693184557 Split drawutils test out into separate file
This was missed during 96d616052b3d39678e477fa10610ca688f46fff9 because
it is not included in FATE.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-11 20:43:19 +01:00
Derek Buitenhuis
64fbf2f03e avfft-test: Add missing mem.h include
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-11 20:42:55 +01:00
Christophe Gisquet
9ca16bdd3f lossless audio dsp: unroll
The loops are guaranteed to be at least multiples of 8, so this
unrolling is safe but allows exploiting execution ports.

For int32 version: 68 -> 58c.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-11 21:03:07 +02:00
Michael Niedermayer
bf29794022 avcodec/dca_lbr: Fix "warning: missing braces around initializer"
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-11 21:03:07 +02:00
Derek Buitenhuis
c71c3b9ff4 Merge commit 'a0f469da744db83db32f3fe13186ee4aa2bc7dc5'
* commit 'a0f469da744db83db32f3fe13186ee4aa2bc7dc5':
  hwcontext: initialize sw_format in av_hwframe_ctx_alloc()

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-11 19:46:17 +01:00
Derek Buitenhuis
ed8bacfb5c Merge commit '5e1a3ea3ba7bb0c71d931e93e60fb75f51b0cc1a'
* commit '5e1a3ea3ba7bb0c71d931e93e60fb75f51b0cc1a':
  lavc: move the vaapi encoders further down in the list of codecs

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-11 19:45:20 +01:00
Derek Buitenhuis
8ed427f9f9 Merge commit '92fdea37477b5a2d1329e5ef0773e24473fa8f12'
These are all trivial to merge.

* commit '92fdea37477b5a2d1329e5ef0773e24473fa8f12':
  vaapi_h265: Add -qp option, use it to replace use of -global_quality
  vaapi_h265: Add constant-bitrate encode support
  vaapi_h264: Add encode quality option (for quality-speed tradeoff)
  vaapi_h264: Add -qp option, use it to replace use of -global_quality
  vaapi_encode: Add support for codec-local options
  vaapi_h264: Add constant-bitrate encode support
  vaapi_encode: Refactor slightly to allow easier setting of global options

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-11 19:40:39 +01:00
Derek Buitenhuis
bc3d2f2578 Merge commit '18019f8cb9663dd1032c65aa453eaec18d641905'
* commit '18019f8cb9663dd1032c65aa453eaec18d641905':
  FATE: add an H.264 test with unescaped extradata
  FATE: add an H.264 test with invalid reference lists

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-11 19:39:09 +01:00
Derek Buitenhuis
75a1fc0376 Merge commit '9d4d9be538faa537440fff37d3b7ecf322911a55'
* commit '9d4d9be538faa537440fff37d3b7ecf322911a55':
  libavcodec: Document that encoders may use the framerate field in AVCodecContext

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-11 19:26:22 +01:00
Derek Buitenhuis
ec1d8abfb9 Merge commit '1bb56abb9b37bd208a66164339c92cad59b1087b'
* commit '1bb56abb9b37bd208a66164339c92cad59b1087b':
  omx: Add support for zerocopy input of frames

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-11 19:24:26 +01:00
Derek Buitenhuis
e330ab0fb7 Merge commit 'f1cd9b03f3fa875eb5e394281b4b688cec611658'
* commit 'f1cd9b03f3fa875eb5e394281b4b688cec611658':
  omx: Add support for broadcom OMX on raspberry pi

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-11 19:23:15 +01:00
Derek Buitenhuis
0e38723220 Merge commit 'e8919ec486a5559fdcf366e347be0656d904a87f'
* commit 'e8919ec486a5559fdcf366e347be0656d904a87f':
  libavcodec: Add H264/MPEG4 encoders based on OpenMAX IL

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-11 19:19:28 +01:00
Derek Buitenhuis
f4c88eef95 Merge commit 'b8e899f4bf5f09900aa71552112d32a5566b6baf'
* commit 'b8e899f4bf5f09900aa71552112d32a5566b6baf':
  mmaldec: Use imgutils.h for copying frames

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-11 19:15:14 +01:00
Derek Buitenhuis
4f173d055c Merge commit '798845ce7e5b7fdd17c7269c5d267fb487d9c46f'
* commit '798845ce7e5b7fdd17c7269c5d267fb487d9c46f':
  testprogs: Add missing libm.h includes

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-11 19:14:36 +01:00
Derek Buitenhuis
96d616052b Merge commit 'd12b5b2f135aade4099f4b26b0fe678656158c13'
* commit 'd12b5b2f135aade4099f4b26b0fe678656158c13':
  build: Split test programs off into separate files

Some conversions done by: James Almer <jamrial@gmail.com>
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-11 19:13:03 +01:00
Hendrik Leppkes
27506aceda avcodec/dca_lbr: explicitly initialize structs with zero
This fixes build on MSVC and conforms to the usual init style used.
2016-05-11 16:34:57 +02:00
Derek Buitenhuis
ce3037ac8e Merge commit '330177b508420a553083df94f22cbd5142de0f4a'
* commit '330177b508420a553083df94f22cbd5142de0f4a':
  build: Group declarations for hw-accelerated de-/encoding separately

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-11 15:19:06 +01:00
Timo Rothenpieler
c921ca9b5d avcodec/nvenc: Write buffPeriod/picTime SEI in both CBR modes 2016-05-11 12:58:52 +02:00
Diego Biurrun
763d69bfb2 Add some more deprecation guards
Avoids unused function/label/variable warnings after the next version bump.
2016-05-11 12:22:49 +02:00
Diego Biurrun
b7e64fba7f Reduce the scope of some variables
This avoids unused variable warnings after the next version bump.
Also drop a trace level av_log() call that is in the way.
2016-05-11 12:21:25 +02:00
Timo Rothenpieler
3a9df7dfec avcodec/nvenc: Generate bufferingPeriod/pictureTiming SEI
For some unknown reason enabling these causes propper CBR padding,
so as there are no known downsides just always enable them in CBR mode.
2016-05-11 10:34:31 +02:00
Martin Storsjö
bc2a32969e rtsp: Parse SSRC attributes in the SDP
When feeding input RTP packets to the depacketizer via custom IO,
it needs to pick the right stream using the payload type for
RTP packets, and using the SSRC for RTCP packets. If the first
packet is an RTCP packet, we don't (currently) know the SSRC
yet and thus can't pick the right RTP depacketizer to handle it.

By parsing the SSRC attribute in the SDP, we can map initial
RTCP packets to the right stream.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-05-11 10:35:26 +03:00
Martin Storsjö
9ea78fd00a rtpdec: Always check if we have the next packet queued
It doesn't matter what the actual reason for not returning
an AVPacket was - if we didn't return any packet and we have
the next one queued, parse it immediately. (rtp_parse_queued_packet
always consumes a queued packet if one exists, so there's no risk
for infinite loops.)

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-05-11 10:35:01 +03:00
James Almer
c8c14d0ffc aarch64/synth_filter: fix compilation
Signed-off-by: James Almer <jamrial@gmail.com>
2016-05-10 23:33:12 -03:00
Chris Cunningham
542f725964 libavformat/oggdec: Free stream private when header parsing fails.
Leaking this private structure opens up the possibility that it may
be re-used when parsing later packets in the stream. This is
problematic if the later packets are not the same codec type (e.g.
private allocated during Vorbis parsing, but later packets are Opus
and the private is assumed to be the oggopus_private type in
opus_header()).

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-11 03:50:37 +02:00
Rodger Combs
d645182227
lavfi/drawutils: support NV12 and NV21 2016-05-10 20:32:50 -05:00
James Almer
b2244fa0a6 avcodec/rscc: check input buffer size for deflate mode
Fixes overreads.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-05-10 22:07:19 -03:00
foo86
6c44696b3d avcodec/dca: add DTS Express (LBR) decoder
Signed-off-by: James Almer <jamrial@gmail.com>
2016-05-10 20:33:28 -03:00
Felt, Patrick
fce7513122 avdevice/decklink_dec: Convert decklink input module to use codecpar
There are still a couple of deprecated calls that I’m not sure what to do with.
They are both related to some logic around AVCodecContext.coded_frame.
I couldn’t find anywhere that really documented what that was, or where it was intended to move to.
I left the warnings on.

Reviewed-by: Deti Fliegl <deti@fliegl.de>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-11 01:14:01 +02:00
Michael Niedermayer
ea791c080d avformat/utils: Check bps before using it in a shift in ff_get_pcm_codec_id()
Fixes undefined shift
Fixes: usan_shift

Found-by: Thomas Guilbert <tguilbert@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-11 00:32:32 +02:00
Michael Niedermayer
8efaee3710 avformat/oggparseopus: Check that granule pos is within the supported range
Larger values would imply file durations of astronomic proportions and cause
overflows

Fixes integer overflow
Fixes: usan_int64_overflow

Found-by: Thomas Guilbert <tguilbert@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-11 00:32:32 +02:00
Jean Delvare
aeefe018f8 avfilter/delogo: Check that logo area is inside the picture
We can only remove the logo if it is inside the picture. We need at
least one pixel around the logo area for interpolation.

Fixes ticket #5527 (Delogo crash with x=0 and/or y=0).

Signed-off-by: Jean Delvare <jdelvare@suse.com>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-10 18:18:47 +02:00
Ronald S. Bultje
531ff7161d vf_colorspace: don't enable passthrough if bitdepth doesn't match.
Also check return value of av_frame_copy() in passthrough mode, so that
if a copy fails (as it did here, because bitdepth didn't match), the filter
doesn't return success, which would mean sending an uninitialized framebuffer
further down the filtergraph.
2016-05-10 09:26:17 -04:00
Ronald S. Bultje
356c116536 vf_colorspace: fix range order. 2016-05-10 09:26:17 -04:00
Ronald S. Bultje
9bbed8645a vf_colorspace: make whitepoint adaptation mode configurable.
Also add von kries whitepoint adaptation, and add 'identity' to turn
whitepoint adaptation off.
2016-05-10 09:26:16 -04:00
Ronald S. Bultje
3ed5218bd3 fate: add matroska-remux test.
This tests automatic insertion of the vp9_superframe BSF as well as
ensuring that the colorspace properties in the video header can be
modified when remuxing (-c:v copy).
2016-05-10 09:26:12 -04:00
Ronald S. Bultje
9c4943e671 ffmpeg: copy color properties in case of -c:v copy.
I have no idea why the first hunk uses ost->enc_ctx, because as far as
I understand, that is never used in case of -c:v copy, but this code
block is only entered if encoding_needed=0, which means stream_copy=1.
My point being: review from someone that knows this really well would
be appreciated.
2016-05-10 08:37:56 -04:00
Ronald S. Bultje
f4075767b2 vf_colorspace: use enums for bpp/subsampling array indices.
Also add some documentation for each function to colorspacedsp.h.
2016-05-10 08:37:56 -04:00
Ronald S. Bultje
9b26a8077f vf_colorspace: add const to yuv_stride[] argument in DSP functions. 2016-05-10 08:37:55 -04:00
Ronald S. Bultje
431117dcb5 vf_colorspace: add floyd-steinberg dithering option to full conversion. 2016-05-10 08:37:55 -04:00
Mark Thompson
0c1d66a079 avconv_vaapi: fix double-free with some unsupported streams
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-05-10 11:30:25 +02:00
Jan Ekström
885a9d6087 pgssub: Fix subpicture colorspace and range
Widen the values from limited to full range and use BT.709 where it
should be used according to the video resolution:

SD is BT.601, HD is BT.709

Default to BT.709 due to most observed HDMV content being HD.
2016-05-10 11:30:25 +02:00
Jan Ekström
1f77e634bb colorspace: Add support for BT709
BT.709 coefficients were gathered from the first two parts of BT.709
to BT.2020 conversion guide in ARIB STD-B62 (Pt. 1, Chapter 6.2.2).
They were additionally confirmed by manually calculating values.
2016-05-10 11:30:25 +02:00
Michael Niedermayer
283226e11c simple_idct_template: Fix strict aliasing violation
This fixes fate-wmv8-intrax8 in certain configurations, e.g.
gcc 4.4.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-05-10 09:41:07 +03:00
Tobias Rapp
9486de5a85 avfilter/f_metadata: update print output header line format
Update print mode output header line format to be more consistent with
other log output of FFmpeg. The printf-modifiers have been inspired by
the showinfo filter.

Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-10 00:07:22 +02:00
Tobias Rapp
21f9fbce5c avfilter/f_metadata: add pts_time to print output
This allows e.g. to correlate signalstats metadata to time position
without having to find out the filter chain timebase first.

Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-09 23:02:15 +02:00
Derek Buitenhuis
ca5ec2bf51 Merge commit '01621202aad7e27b2a05c71d9ad7a19dfcbe17ec'
* commit '01621202aad7e27b2a05c71d9ad7a19dfcbe17ec':
  build: miscellaneous cosmetics

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-09 16:25:28 +01:00
Przemysław Sobala
1a3cff4f7e libavutil/opt: add writing AV_OPT_TYPE_VIDEO_RATE AVOption
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-09 15:01:31 +02:00
Przemysław Sobala
5fce4753ff avfilter/vf_fps: set fps value boundaries
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-09 15:01:07 +02:00
Derek Buitenhuis
38eeb85ff3 Merge commit 'e656a6ccd9cab1b0a79cffe3e609793857aae330'
* commit 'e656a6ccd9cab1b0a79cffe3e609793857aae330':
  configure: cosmetics: Drop pointless end-of-line semicolons

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-08 23:57:32 +01:00
Derek Buitenhuis
68b8505d4d Merge commit '00658253e237ab975ae2d384e02b5936781f103d'
* commit '00658253e237ab975ae2d384e02b5936781f103d':
  fate: Update DDS tests

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-08 23:55:28 +01:00
Derek Buitenhuis
d62984d8a0 Merge commit '22e49e6edead9c83696f20127988f659b952ce65'
* commit '22e49e6edead9c83696f20127988f659b952ce65':
  dds: Simplify postprocessing check

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-08 23:50:09 +01:00
Derek Buitenhuis
6ebec1049e Merge commit '02538636261fdec9c70f4185b23147c636f269b4'
* commit '02538636261fdec9c70f4185b23147c636f269b4':
  dds: Add support for alpha-only files

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-08 23:49:26 +01:00
Derek Buitenhuis
6c00703685 Merge commit '9a9fb710bcf4657e030467cfe2556cb0e2c01afc'
* commit '9a9fb710bcf4657e030467cfe2556cb0e2c01afc':
  dds: Add support for rgb555 files

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-08 23:49:04 +01:00
Derek Buitenhuis
486776d06f Merge commit '8dde92b95a197eb809d798aacb34dbe52a0689a8'
* commit '8dde92b95a197eb809d798aacb34dbe52a0689a8':
  fate: Update Screenpresso tests

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-08 23:46:58 +01:00
Derek Buitenhuis
483e9d8a2b Merge commit 'ec8a69fab657f9cce624e8b0f4069d12696890bf'
* commit 'ec8a69fab657f9cce624e8b0f4069d12696890bf':
  screenpresso: Correctly handle keyframes

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-08 23:43:55 +01:00
Derek Buitenhuis
5d31074daf Merge commit '95db8c757cb003a71b040b567f38be74151deb5c'
* commit '95db8c757cb003a71b040b567f38be74151deb5c':
  screenpresso: Add extended pixel format support

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-08 23:43:35 +01:00
Derek Buitenhuis
e4c8e19064 Merge commit 'b5f47d95c6cb8ffa9982eb8fd3e9ab5c9f97e914'
* commit 'b5f47d95c6cb8ffa9982eb8fd3e9ab5c9f97e914':
  fate: Update RSCC tests

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-08 23:41:40 +01:00
Derek Buitenhuis
dd2d26dc82 Merge commit '51dc4de1218a81ee8e5b3f941839c5e3125a6d4b'
* commit '51dc4de1218a81ee8e5b3f941839c5e3125a6d4b':
  rscc: Add extended pixel format support

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-08 23:33:08 +01:00
Derek Buitenhuis
f0d4f3026d Merge commit '4c6836db0f300d2c0401c6a1927a95c3258cc1ae'
This commit is a no-op.

* commit '4c6836db0f300d2c0401c6a1927a95c3258cc1ae':
  nvenc_h264: Fix name of private AVClass

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-08 23:27:22 +01:00
Derek Buitenhuis
ee865e9780 Merge commit 'e3453fd44480d903338c663238bf280215dd9a07'
* commit 'e3453fd44480d903338c663238bf280215dd9a07':
  matroska: Write the field order information

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-08 23:25:58 +01:00
Derek Buitenhuis
2d2af18f42 Merge commit 'b3051a460cf02a5b86ff0d1e14abba23ea55ff6d'
This commit is a no-op. We cherry picked it earlier.

* commit 'b3051a460cf02a5b86ff0d1e14abba23ea55ff6d':
  vaapi_h264: Fix bit offset of slice data.

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-08 23:07:55 +01:00
Derek Buitenhuis
13b77e09c7 Merge commit '33275a0de05e9bc321f2537a2a67921fab81624f'
* commit '33275a0de05e9bc321f2537a2a67921fab81624f':
  ac3dec: change logging of skipped E-AC-3 substreams.

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-08 23:07:01 +01:00
Derek Buitenhuis
15cb52577a Merge commit 'fef2147b7a689b80d716c3edb9d4a18904865275'
* commit 'fef2147b7a689b80d716c3edb9d4a18904865275':
  eac3dec: don't call avpriv_request_sample every frame.

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-08 23:05:22 +01:00
Derek Buitenhuis
9109b5240b Merge commit '1db8eb154908cde577477b6ab17430a0cd46b7bd'
* commit '1db8eb154908cde577477b6ab17430a0cd46b7bd':
  avconv: Drop an unused variable

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-08 23:04:53 +01:00
Derek Buitenhuis
dc0152548f Merge commit '6bb99757b780144d9fa27cdce09d3621e1a0ed43'
* commit '6bb99757b780144d9fa27cdce09d3621e1a0ed43':
  jack: Support OSX

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-08 23:02:33 +01:00
Derek Buitenhuis
f3972b3b7d Merge commit '5f0226668124aa7ae4db501ba7f4ace4c770f3d1'
* commit '5f0226668124aa7ae4db501ba7f4ace4c770f3d1':
  matroska: Support interlaced content correctly

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-08 22:58:18 +01:00
Derek Buitenhuis
f93c409c0b Merge commit '44f05f15d4a34ef2f0d62259e5d5b43371bc0954'
* commit '44f05f15d4a34ef2f0d62259e5d5b43371bc0954':
  build: Do not check the vaapi_encode.h header if VAAPI is not enabled

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-08 22:53:50 +01:00
Derek Buitenhuis
4c3732c881 Merge commit 'bd016dbf23e8e7dc34ff2696912575f7620cec0d'
* commit 'bd016dbf23e8e7dc34ff2696912575f7620cec0d':
  Mark tables used only within their files as static

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-08 22:52:40 +01:00
Derek Buitenhuis
630586af88 Merge commit '061dc20351bf3b8a237216d2b39d3a3b736d1916'
* commit '061dc20351bf3b8a237216d2b39d3a3b736d1916':
  h264: Add missing ff_ prefix to internally visible h264_init_dequant_tables()

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-08 22:51:09 +01:00
Derek Buitenhuis
3005ee372d Merge commit '69a638019fc0db4c2b75b36ef45d0acb6d2e9628'
* commit '69a638019fc0db4c2b75b36ef45d0acb6d2e9628':
  avconv: fix -frames for video

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-08 22:50:46 +01:00
Derek Buitenhuis
939345854a Merge commit '83f230c2445a94fdd94c66504482217fcece5909'
* commit '83f230c2445a94fdd94c66504482217fcece5909':
  lavc: VAAPI MJPEG encoder

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-08 22:46:52 +01:00
Derek Buitenhuis
a82d1a8c7a Merge commit '31fe1f2577f8208f79a4b3ab59465e78dd497555'
* commit '31fe1f2577f8208f79a4b3ab59465e78dd497555':
  lavc: VAAPI H.265 encoder

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-08 22:45:39 +01:00
Derek Buitenhuis
b975aeec02 Merge commit '2c62fcdf5d617791a653d7957d449f75569eede0'
* commit '2c62fcdf5d617791a653d7957d449f75569eede0':
  lavc: VAAPI H.264 encoder

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-08 22:43:52 +01:00
Derek Buitenhuis
508957fd0f Merge commit '104c804bcaac24b52eb51ed17df2fb311e6ae73e'
* commit '104c804bcaac24b52eb51ed17df2fb311e6ae73e':
  lavc: VAAPI encode common infrastructure

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-08 22:41:12 +01:00
Derek Buitenhuis
172d3568b3 Merge commit '5d273d3efac340ef8de445c955ff44c7abed4e8f'
* commit '5d273d3efac340ef8de445c955ff44c7abed4e8f':
  avconv: VAAPI hwcontext initialisation and hwaccel helper

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-08 22:39:39 +01:00
Christophe Gisquet
01938585f4 vc2: fate tests 2016-05-08 19:50:39 +01:00
Michael Niedermayer
5df703aa1b avcodec/simple_idct_template: Fix strict aliasing violation
Fixes intrax8 test

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-08 20:40:27 +02:00
Rostislav Pehlivanov
b6c207f535 vc2enc_dwt: use 32 bit coefficients by default
The problem is that with particularly complex images and especially at
high bit depths and 5-level transforms the coefficients would overflow,
causing huge artifacts to appear. This was discovered thanks to the fate
tests, which will have to be redone as this fixes a multitude of
problems and increases PSNR.

There is a slight performance drop associated with this change, making
the encoder slower by 1.15 times, however this is necessary in order to
avoid undefined behavior and overflows.

It would be worth to template the transforms to keep the performance for
8 bit images as 32 bit coefficients are unnecessary for that case, but
the primary use of the encoder is to encode video at 10 bits.

Reviewed-by: Christophe Gisquet <christophe.gisquet@gmail.com>
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-05-08 19:09:42 +01:00
Hendrik Leppkes
64fd62d68a avcodec/dxva2_h264: fix slice offset in long slice struct after ca2f19b9
The GetBitContext now includes the NAL header, which offsets the slice by
one byte, which needs to be accounted for here.
2016-05-08 17:48:19 +02:00
Mark Thompson
617cd45ddc vaapi_h264: Fix bit offset of slice data.
Commit ca2f19b9cc37be509d85f05c8f902860475905f8 modified the meaning of
H264SliceContext.gb: it is now initialised at the start of the NAL unit
header, rather than at the start of the slice header.  The VAAPI slice
decoder uses the offset after parsing to determine the offset of the
slice data in the bitstream, so with the changed meaning we no longer
need to add the extra byte to account for the NAL unit header because
it is now included directly.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-08 16:46:04 +01:00
Michael Niedermayer
caee88d193 fate: Remove duplicate wmv8_x8intra.wmv test
Also temporary enable the test so we get updated fate failure statistics

Note, this does not work on all platforms, it fails on MIPS
and ml archives indicate it failed on x86 openbsd with some compilers as well

Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-08 02:10:26 +02:00
Christophe Gisquet
9630b3fc06 x86: lossless audio: SSE4 madd 32bits
The unique user so far is wmalossless 24bits. The few samples tested show an
order of 8, so more unrolling or an avx2 version do not make sense.

Timings: 68 -> 49 cycles

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-07 23:28:48 +02:00
Derek Buitenhuis
e811ebcd9c Merge commit 'ca8c7591735c0f80cc29e31e2e92cb10228e14c7'
* commit 'ca8c7591735c0f80cc29e31e2e92cb10228e14c7':
  intrax8: Remove mpegvideo dependency

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-07 21:41:27 +01:00
Derek Buitenhuis
f2c7812839 Merge commit '6ebd06a9b2508747a135ee4c880d8f612e08932b'
* commit '6ebd06a9b2508747a135ee4c880d8f612e08932b':
  intrax8: Drop lots of pointless parentheses

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-07 21:40:21 +01:00
Derek Buitenhuis
741960e2f3 Merge commit '9b57995cdd489a4cff51dcc1a1f08ac77ec5a58c'
* commit '9b57995cdd489a4cff51dcc1a1f08ac77ec5a58c':
  intrax8: Drop MB emulation code

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-07 21:40:05 +01:00
Derek Buitenhuis
f110c624b1 Merge commit '9fa888c02801fff2e8817c24068f5296bbe60000'
* commit '9fa888c02801fff2e8817c24068f5296bbe60000':
  intrax8: Keep a reference to the decoder blocks

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-07 21:39:44 +01:00
Derek Buitenhuis
c59c792470 Merge commit 'c2084ffcbfc11d1b6ed3a4a0df9cafd56fbb896f'
* commit 'c2084ffcbfc11d1b6ed3a4a0df9cafd56fbb896f':
  intrax8: Use the generic horizband function

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-07 21:37:32 +01:00
Derek Buitenhuis
123fef54cc Merge commit 'b1268e0f032a3af3912fe3fb8d3855e12d7ea83b'
* commit 'b1268e0f032a3af3912fe3fb8d3855e12d7ea83b':
  intrax8: Pass macroblock coordinates to ff_intrax8_decode_picture

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-07 21:36:54 +01:00
Derek Buitenhuis
578fb5a27d Merge commit 'd0540fd02171a6233d2016b199d013299debf7e3'
* commit 'd0540fd02171a6233d2016b199d013299debf7e3':
  intrax8: Pass macroblock size to ff_intrax8_common_init

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-07 21:35:20 +01:00
Derek Buitenhuis
eee5a7cd7d Merge commit '9f4d99138df434a73b097c997fb4cafc65f4ff54'
* commit '9f4d99138df434a73b097c997fb4cafc65f4ff54':
  fate: Add test for WMV2 with jframes

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-07 21:34:07 +01:00
Hendrik Leppkes
d46e856350 h265_parse: skip zero sized NAL units
Avoids extra error checks later on and/or invalid reads.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-07 21:14:23 +01:00
Hendrik Leppkes
d6f92103e0 h264: do not return an error when NAL parsing of extradata failed
Fixes AnnexB samples with broken extradata, but proper in-band parameter sets

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-07 21:14:17 +01:00
Hendrik Leppkes
772ad7142d Merge commit 'ca2f19b9cc37be509d85f05c8f902860475905f8'
* commit 'ca2f19b9cc37be509d85f05c8f902860475905f8':
  h264: switch to h2645_parse for NAL parsing

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-05-07 21:13:44 +01:00
Hendrik Leppkes
9cc1ab63ac h2645_parse: allow partial escaping
This ports the fix from 033a533 to the new parser module in prepartion
of using it for the h264 decoder.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-07 21:11:21 +01:00
Hendrik Leppkes
c802389393 h2645_parse: initialize the GetBitContext to the proper size
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-07 21:11:10 +01:00
Hendrik Leppkes
6eb1b40ad8 hevc: fix size condition in ptl parsing
When only one sublayer is present, no information is coded. Only when at least two
are present, all 8 sublayers are written.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-07 21:10:59 +01:00
Jan Sebechlebsky
1bc83f6ea8 avformat/tee: Use ref instead copy in write_packet
Replace av_copy_packet and deprecated av_dup_packet by
creating reference using av_packet_ref.

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Jan Sebechlebsky <sebechlebskyjan@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-05-07 17:25:40 +02:00
Jan Sebechlebsky
a3c877aca7 avformat/tee: Fix TeeSlave.bsfs pointer array size
TeeSlave.bsfs is array of pointers to AVBitStreamFilterContext,
so element size should be really size of a pointer, not size
of TeeSlave structure.

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Jan Sebechlebsky <sebechlebskyjan@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-05-07 17:24:15 +02:00
Marton Balint
215a2d7678 ffplay: force setting alsa buffer size
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-05-07 17:18:26 +02:00
compn
1e109bbbf1 riff: add comment for g721,g723 codec tags
Signed-off-by: Piotr Bandurski <ami_stuff@o2.pl>
2016-05-07 06:56:43 -04:00
Piotr Bandurski
e601e078e9 avformat/riff: add M102 FourCC
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-07 04:42:27 +02:00
Michael Niedermayer
fc6894770e avcodec/m101: simplify 8bit code
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-07 04:42:52 +02:00
Michael Niedermayer
22d1148c77 avcodec/m101: remove unneeded zeroing of priv_data_size
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-07 04:42:52 +02:00
Michael Niedermayer
cbe265ccd7 avcodec/m101: Simplify if() condition
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-07 04:42:52 +02:00
James Almer
03fceb771c fate: fix dcadec test dependencies
Signed-off-by: James Almer <jamrial@gmail.com>
2016-05-06 18:52:27 -03:00
Martin Storsjö
e9443105ea avio: Remove a leftover comment
The declarations that this comment referred to were removed
in 2439f2ca8 - there is no unbuffered IO in this header now.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-05-06 22:34:59 +03:00
Carl Eugen Hoyos
017d42ebc6 configure: Only utvideo <= 15.3.0 is supported.
Fixes ticket #5511.
2016-05-06 19:42:35 +02:00
Michael Niedermayer
58b3e5606b avcodec/avcodec: Move AV_CODEC_ID_M101 to the 2nd group of video codecs
Found-by: durandal_1707
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-06 15:57:14 +02:00
Michael Niedermayer
5621da4996 avformat/riff: add M101
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-06 15:36:24 +02:00
Michael Niedermayer
4155d5e06f avcodec: add M101 decoder
Fixes Ticket 2611

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-06 15:36:24 +02:00
Timo Rothenpieler
31ce01bdb9 avcodec/nvenc: don't set profile in lossless mode 2016-05-06 10:15:29 +02:00
James Almer
bd63ecec78 avcodec/dcadsp: use LOCAL_ALIGNED_32 instead of LOCAL_ALIGNED(32, ...) 2016-05-06 00:47:55 -03:00
Andrey Utkin
abb69a2f2b avcodec: Add "sar" alias to "aspect" option of video encoders
It is impossible to pass "aspect" parameter to encoder from ffmpeg CLI
because option from lavc/options_table.h is eclipsed by option with same
name in ffmpeg_opt.c, which has different meaning (DAR, not SAR).

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-06 03:47:36 +02:00
Muhammad Faiz
1d4400ac7f avfilter/graphparser: add '\r' as whitespace
for compatibility with platforms that treat it
as newline

Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
2016-05-06 07:37:12 +07:00
Muhammad Faiz
83065939cb avutil/parsing: add '\r' as whitespace
for compatibility with platforms that treat it
as newline

Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
2016-05-06 07:35:45 +07:00
Christophe Gisquet
9c1aa14bf0 vc2enc: prevent random data
The slice prefix is 0 in the reference encoder and the decoder ignores it.
Writing 0 there seems like the best temporary solution.

The padding could have contained uninitialized data, but reference VC2
encoders put 0xFF there, hence the memset value.

Overall this allows producing bistreams with no random data for use by fate.
2016-05-06 01:12:51 +01:00
Petru Rares Sincraian
7a679e4ac0 fate: Add test for vorbis encoder
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-05 21:08:23 +02:00
Paul B Mahol
c5d2d3dced avcodec/alac: fix 20-bit support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-05-05 18:15:22 +02:00
Rick Kern
f1560dbb2a lavd/avfoundation: use AVCodecParameters
Fixes "Could not find codec parameters for stream" error (#5494)

Signed-off-by: Rick Kern <kernrj@gmail.com>
2016-05-05 16:03:45 +02:00
Diego Biurrun
5afb94c817 Mark read-only tables as static 2016-05-05 10:48:34 +02:00
Diego Biurrun
1f1ad8ace0 configure: Document --enable-libfontconfig 2016-05-05 10:47:00 +02:00
Paul B Mahol
5b174dd3f1 avfilter/vf_waveform: fix order of graticule scale items
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-05-05 10:38:37 +02:00
Muhammad Faiz
d2f73c3daf avfilter/avf_showcqt: add . 2016-05-05 14:03:32 +07:00
Michael Niedermayer
e7a9b434c5 fate: Add test for broken SPS (Ticket 2580)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-05 04:11:52 +02:00
Rostislav Pehlivanov
770d3c85af vc2enc: do not print the lavc version if the bitexact flag is enabled
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-05-05 00:20:11 +01:00
James Almer
e3df56f5b4 avformat/dtsdec: reduce the scope of crctab
Signed-off-by: James Almer <jamrial@gmail.com>
2016-05-04 19:23:23 -03:00
foo86
bb7c558070 avformat/dtsdec: detect core-less streams
Signed-off-by: James Almer <jamrial@gmail.com>
2016-05-04 19:14:32 -03:00
James Almer
fe483ac428 avformat/mpegtsenc: fix usage of AVStream.codec
Signed-off-by: James Almer <jamrial@gmail.com>
2016-05-04 18:39:27 -03:00
James Almer
fc1c836def avcodec/hevc_parser: fix packet_split function name
Fixes compilation of hevc_parser without hevc_decoder

Signed-off-by: James Almer <jamrial@gmail.com>
2016-05-04 18:26:06 -03:00
Michael Niedermayer
03e8c1b843 avformat/h264dec: Avoid get_ue_golomb_31( ) due to ff_ prefixed table from golomb.c
Found-by: jamrial
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-04 22:43:01 +02:00
Michael Niedermayer
824906a541 avformat/utils: Do not detect video codecs when audio is expected
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-04 22:19:44 +02:00
Michael Niedermayer
3646ef6f7c avformat/h264dec: Check pps_id/sps_id fields from parameter sets
Fixes a misdetection in wav.detected.as.h264.error.wav

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-04 22:19:44 +02:00
Diego Biurrun
def03d1468 vf_frei0r: Drop overly verbose and broken debug output 2016-05-04 18:40:50 +02:00
Rick Kern
dc750194b6 lavc/videotoolboxenc: Set colorimetry values
Signed-off-by: Rick Kern <kernrj@gmail.com>
2016-05-04 18:40:40 +02:00
Rick Kern
c356b6865d lavc/videotoolboxenc: Support pixel aspect ratio
Signed-off-by: Rick Kern <kernrj@gmail.com>
2016-05-04 18:40:40 +02:00
Rick Kern
9d8a38d20b lavc/videotoolboxenc: Support for forced I-frames
Setting AVFrame.pic_type to AV_PICTURE_TYPE_I will force an I-frame.

Signed-off-by: Rick Kern <kernrj@gmail.com>
2016-05-04 18:40:40 +02:00
Rick Kern
4b806081b2 lavc/videotoolboxenc: add concatentation properties
Add frames_before and frames_after as hints that there will be frames before
or after the frames produced in this session. This may help with
concatenation issues like bit rate spikes.

Signed-off-by: Rick Kern <kernrj@gmail.com>
2016-05-04 18:40:40 +02:00
Rick Kern
ca429e7253 lavc/videotoolboxenc: Add realtime encoding property
Hint to the encoder that encoding should be done in real-time, even at the
expense of quality.

Signed-off-by: Rick Kern <kernrj@gmail.com>
2016-05-04 18:40:40 +02:00
Rick Kern
272dd437bc lavc/videotoolboxenc: Handle out-of-memory and fix memory leak
Signed-off-by: Rick Kern <kernrj@gmail.com>
2016-05-04 18:40:40 +02:00
Rick Kern
2fbf39382d lavc/videotoolboxenc: Fix DTS
Some devices output an invalid DTS when B-frames aren't used. Using PTS for
the DTS in this case.

Signed-off-by: Rick Kern <kernrj@gmail.com>
2016-05-04 18:40:40 +02:00
Rick Kern
abe05892be lavc/videotoolboxenc: Fix AVCodecContext.has_b_frames usage.
Now set by the encoder, not used as an input parameter.

Signed-off-by: Rick Kern <kernrj@gmail.com>
2016-05-04 18:40:40 +02:00
Rick Kern
645df43144 lavc/videotoolboxenc: Add entropy setting
Add an entropy setting to choose between CAVLC and CABAC.

Signed-off-by: Rick Kern <kernrj@gmail.com>
2016-05-04 18:40:40 +02:00
Rick Kern
fbe0cf8ca7 lavc/videotoolboxenc: Require hardware encoding
Software encoding can be allowed by setting allow_sw to 1.

Signed-off-by: Rick Kern <kernrj@gmail.com>
2016-05-04 18:40:40 +02:00
Rick Kern
0d4bf3074d lavc/videotoolboxenc: Handle hwaccel format as input
Handle AV_PIX_FMT_VIDEOTOOLBOX.
This results in better energy usage and faster encoding, especially on iOS.
When the buffer comes from the media server, no memcpy's are needed.

Signed-off-by: Rick Kern <kernrj@gmail.com>
2016-05-04 18:40:40 +02:00
Rick Kern
d7cf3610c2 lavc/videotoolboxenc: Use shared pixel buffer pool
This reduces the chance of a memcpy in the media server.

Signed-off-by: Rick Kern <kernrj@gmail.com>
2016-05-04 18:40:40 +02:00
Vittorio Giovara
41ed7ab45f cosmetics: Fix spelling mistakes
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2016-05-04 18:16:21 +02:00
Alexandra Hájková
5c31eaa999 Remove unnecessary get_bits.h #includes and add missing headers where needed.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2016-05-04 15:14:14 +02:00
Paul B Mahol
66eb5b809a avcodec/adpcm: fix decoding of stereo non 4-bit ADPCM IMA WAV
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-05-04 11:33:34 +02:00
Paul B Mahol
3395ad48fa avcodec/adpcm: replace char/short/long with int8_t/int16_t/int
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-05-04 00:36:02 +02:00
foo86
b7d267399b avcodec/dca: convert to AVCRC
Signed-off-by: James Almer <jamrial@gmail.com>
2016-05-03 16:40:43 -03:00
smallishzulu
77a7ff8f05 lavf/mpegtsenc: Define service_type "HEVC digital television service".
Fixes ticket #5455.
2016-05-03 21:35:21 +02:00
Thomas Volkert
f591b7b526 rtpenc: packetizer for VC-2 HQ RTP payload format (draft v1) 2016-05-03 19:07:37 +02:00
Michael Niedermayer
1ef267b83f avcodec/h264: Put the removed SPS handling code back
reverts one hunk from 7966ddfc0bb7ee87dc2606b7b146701db6f6c717
The new code from 7966ddfc0bb7ee87dc2606b7b146701db6f6c717 only covers extradata based SPS

Fixes: ffplay -ss 13 58af5798-fa2c-42a2-997d-dc8e49de2d8a.flv

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-03 15:56:57 +02:00
Diego Biurrun
c11c693acc h264: Drop broken trace debug output 2016-05-03 15:45:11 +02:00
Diego Biurrun
5f1c3cbd52 vaapi: Drop pointless debug output 2016-05-03 15:45:11 +02:00
Diego Biurrun
015c2d9239 libopencore-amr: Fix ff_dlog()/av_log() invocations 2016-05-03 15:45:10 +02:00
Diego Biurrun
0f40c90984 Drop pointless assert.h #includes 2016-05-03 15:45:10 +02:00
Derek Buitenhuis
7966ddfc0b Merge commit 'a7829a2a3f8e6ec0b9f2673c11f56916800aeb33'
* commit 'a7829a2a3f8e6ec0b9f2673c11f56916800aeb33':
  h264: reimplement 3aa661ec5 in a more explicit way

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-03 13:42:38 +01:00
Carl Eugen Hoyos
fd0f1442eb lavf/mpegtsenc: Fix stream_type for low sample rate MP2/MP3. 2016-05-03 14:15:14 +02:00
Derek Buitenhuis
a454ad670c Merge commit 'add1467e5e447b79e8743a0b05c54dcf58c61dfe'
* commit 'add1467e5e447b79e8743a0b05c54dcf58c61dfe':
  svq3: drop the build dependency on the h264 decoder

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-03 10:57:36 +01:00
Derek Buitenhuis
43b7e5aa32 Merge commit 'a4d126dc59c39bb03e5e444432d1b27af26a45b4'
* commit 'a4d126dc59c39bb03e5e444432d1b27af26a45b4':
  svq3: eliminate remaining H264Context usage.

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-03 10:52:14 +01:00
Derek Buitenhuis
2a018be10f Merge commit '7bbdae81e895a49125dba58bad01b98389966c39'
* commit '7bbdae81e895a49125dba58bad01b98389966c39':
  svq3: move block_offset to SVQ3Context

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-03 10:27:55 +01:00
Derek Buitenhuis
f32a23c849 Merge commit '1848a154a49d18c1f31f54ee75c7445dc49a7ecc'
* commit '1848a154a49d18c1f31f54ee75c7445dc49a7ecc':
  svq3: stop using H264Context.gb

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-03 10:27:24 +01:00
Derek Buitenhuis
8bba752ae9 Merge commit 'ea6ab02a174bcc11f3eaa1b840c9a4c895968690'
* commit 'ea6ab02a174bcc11f3eaa1b840c9a4c895968690':
  svq3: move the frame num variables to the SVQ3Context

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-03 10:24:33 +01:00
Derek Buitenhuis
014fb816d1 Merge commit '21b746932241246be846a133abb3c5f91b1cab85'
* commit '21b746932241246be846a133abb3c5f91b1cab85':
  svq3: eliminate H264Context.cur_pic usage

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-03 10:24:08 +01:00
Derek Buitenhuis
2d3cc682c4 Merge commit '939b388383db8d0db5b2ff483e3a197c27b79791'
* commit '939b388383db8d0db5b2ff483e3a197c27b79791':
  svq3: eliminate remaining H264SliceContext usage

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-03 10:23:23 +01:00
Derek Buitenhuis
5db920bcb6 Merge commit '5a5db90edf71ef4c60db8ad7b0ebaa9a810c2d9e'
* commit '5a5db90edf71ef4c60db8ad7b0ebaa9a810c2d9e':
  svq3: move pict_type to the SVQ3Context

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-03 10:17:34 +01:00
Derek Buitenhuis
1bfbdb8f0b Merge commit '12f13ecb2dcddfa3ee930167395370d3c6fff90c'
* commit '12f13ecb2dcddfa3ee930167395370d3c6fff90c':
  svq3: move mb strides/sizes to the SVQ3Context

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-03 10:15:54 +01:00
Derek Buitenhuis
297e2768da Merge commit 'ad9d3384de08f02967d6eb11196ee8c78e8b2dba'
* commit 'ad9d3384de08f02967d6eb11196ee8c78e8b2dba':
  svq3: move the dequant buffer to SVQ3Context

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-03 10:15:22 +01:00
Carl Eugen Hoyos
80d14de52d lavf/mpegts: Add E-AC3 registered stream specifier "EAC3".
Related to ticket #5501.
2016-05-03 10:51:35 +02:00
Christophe Gisquet
7d453aaf65 wmalossless: allow calling madd_int16
This is done by actually handling the "prev_values" in the cascaded LMS data
as if it were int16_t, thus requiring switching at various locations the
computations.
2016-05-03 09:18:54 +02:00
Luca Barbato
74d98d1b0e mpegts: Validate the SL Packet Header Configuration
timeStampLength, OCRLength and AU_Length have well specified upper
boundaries.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-05-03 14:21:45 +09:00
Michael Niedermayer
dc34fa6a9e avformat/riff: add M702
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-03 01:07:31 +02:00
Michael Niedermayer
df820af2c5 avcodec/error_resilience: Improve missing slice handling for mpeg2
Fixes: m702_2.avi

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-03 01:07:24 +02:00
foo86
ce2f9fdb0a avcodec/dca: fix sync word search error condition
This didn't actually check if sync word was found and always errored out
with "-err_detect explode" option enabled.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-02 23:26:44 +02:00
Michael Niedermayer
9fcb59c9bc avcodec/options_table: fix strict compliance constant flags to match the strict field
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-02 22:16:57 +02:00
Michael Niedermayer
11db7eee9b avformat/options_table: Add missing identifier for very strict compliance
Fixes Ticket5443

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-02 22:16:40 +02:00
Christophe Gisquet
79e86640ff fate: wma: add lossless 24bits tests
Should evaluate coefficients and raw pcm tiles.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-02 21:50:10 +02:00
Diego Biurrun
1982d0cc56 fate: Add test for MTS2/MSS4 2016-05-02 16:12:04 +02:00
Michael Niedermayer
deaf58abf2 avcodec/mjpegdec: Do not try to detect last scan but apply idct after all scans for progressive jpeg
Fixes: IMG-20160418-WA0002.jpg

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-02 12:45:14 +02:00
Jan Sebechlebsky
0ff3489534 avcodec/mjpeg2jpeg_bsf: Check ff_bsf_get_packet success
This fixes ticket #5487 - mjpeg2jpeg bitstream filter causes
segmentation fault with header-less mjpeg.

Signed-off-by: Jan Sebechlebsky <sebechlebskyjan@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-02 04:10:03 +02:00
foo86
1fee770a1c avcodec/dca: move channel counter utility into dca.h
Signed-off-by: James Almer <jamrial@gmail.com>
2016-05-01 16:50:32 -03:00
foo86
2df7d4fa45 avcodec/dca: move huffman data into separate object file
Signed-off-by: James Almer <jamrial@gmail.com>
2016-05-01 16:50:29 -03:00
Paul B Mahol
bc2fe36228 avcodec/noise_bsf: set correct size of .priv_data_size field
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-05-01 22:23:48 +02:00
Michael Niedermayer
3187277ebb avcodec/wmalosslessdec: Fix memset sizeof
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-01 18:44:06 +02:00
Michael Niedermayer
52623ef785 avcodec/smc: Mark pixel pointer as const
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-01 17:47:55 +02:00
Paul B Mahol
25482d5c42 avformat/wsddec: set bit_rate, fixes duration estimation
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-05-01 16:25:57 +02:00
Paul B Mahol
423a6a0993 avformat/dsfdec: set bit_rate, fixes duration estimation
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-05-01 16:16:39 +02:00
Carl Eugen Hoyos
88a849c714 lavf/mpegts: Return small probe score for very short transport streams.
Fixes Debian bug 823098.
2016-05-01 15:39:13 +02:00
Carl Eugen Hoyos
00ffbdfb68 lavc/fic: Do not warn about empty cursor.
Fixes ticket #5174.
2016-05-01 15:30:22 +02:00
Carl Eugen Hoyos
47a11ff457 lavc/fic: Be less verbose for invisible cursor outside of video. 2016-05-01 15:28:59 +02:00
Clément Bœsch
9f3dd53050 lavc/srtenc: do not emit any subrip tags with text codec
Fixes presence of opening tags when running
  ffmpeg -i x.ass -c text x.srt

Reported-by: Jean First <jeanfirst@gmail.com>
2016-05-01 15:16:50 +02:00
Clément Bœsch
bbf02f7d28 lavc: override decode return value only in case of error
Fixes Ticket #5350

Regression since 29412821241050c846dbceaad4b9752857659977.
2016-05-01 14:53:53 +02:00
Christophe Gisquet
532e937083 avcodec/wmalosslessdec: silence a sample request
16bits samples with CDLMS orders of 8 are currently unsupported, but have never
been encountered before.

However, 8 seems to be the most frequent, if not the only order used for 24bits.
In that case, the dsp functions are fine with handling order that are multiples
of 8, so silence the warning.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-05-01 11:18:09 +02:00
Paul B Mahol
8f4358888f avcodec/wmalosslessdec: fix type for coeffs and lms_updates in cdlms struct
They should really be int16_t.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-05-01 10:49:12 +02:00
foo86
b286ff69c0 avcodec/dcaenc: move channel reordering tables to dcaenc.h
DCA core decoder no longer uses fixed tables for channel reordering.
Move them into private encoder header (and drop ff_dca_ prefix).

Signed-off-by: James Almer <jamrial@gmail.com>
2016-05-01 00:13:41 -03:00
foo86
de28e73cce avcodec/dcaenc: reuse shared quant levels table
Signed-off-by: James Almer <jamrial@gmail.com>
2016-05-01 00:13:37 -03:00
Michael Niedermayer
9a499e0ae7 avformat/riff: add m704
(Ticket 2616)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-01 01:43:06 +02:00
Michael Niedermayer
cb84c12fa2 avcodec/mpeg12dec: Print position in end mismatch error
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-01 01:43:06 +02:00
Michael Niedermayer
390703fcf5 avcodec/mpeg12dec: Do not choke on extra m704 alpha data
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-05-01 01:43:06 +02:00
Martin Storsjö
375cad0965 rtpdec_vp9: Support parsing the scalability structure
We still only support one single layer though, but this allows
receiving streams that have this structure present even for
single layer streams.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-04-30 20:58:23 +03:00
Martin Storsjö
943f4bea37 rtpdec_h264: Use avpriv_report_missing_feature instead of a manual av_log
Signed-off-by: Martin Storsjö <martin@martin.st>
2016-04-30 20:58:18 +03:00
Martin Storsjö
b55e3633d3 rtpdec: Use AVERROR_PATCHWELCOME instead of AVERROR(ENOSYS) for unimplemented features
Signed-off-by: Martin Storsjö <martin@martin.st>
2016-04-30 20:57:44 +03:00
Martin Storsjö
70c77fdfc1 rtpdec_vp9: Update header parsing to spec draft 02
Signed-off-by: Martin Storsjö <martin@martin.st>
2016-04-30 20:57:41 +03:00
Martin Storsjö
33b83d89e3 rtpdec_vp9: Make sure to free the temp buffer on close
Signed-off-by: Martin Storsjö <martin@martin.st>
2016-04-30 20:57:31 +03:00
Paul B Mahol
a67816bcce avcodec/wmalosslessdec: fix decoding of raw pcm tiles
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-04-30 19:56:53 +02:00
Paul B Mahol
675cfb2f86 avformat/iff: fix deadlock in parsing dsd chunks
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-04-30 18:06:53 +02:00
Paul B Mahol
d171cd076f avformat/dsfdec: check if number of channels is <= 0
Fixes FPE bellow.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-04-30 17:50:22 +02:00
Peter Ross
10d48c63b2 avformat: add Wideband Single-bit Data (WSD) demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-04-30 17:45:36 +02:00
Janne Grunau
c267413321 Revert "mmaldec: autodetect by default" since it breaks linking on systems without mmal libraries
This reverts commit 33ac77e850efdfd0e8835950c3d947baffd4df45.
2016-04-30 16:05:32 +02:00
Carl Eugen Hoyos
a2810d03b9 configure: Add pixelutils dependency for framerate filter. 2016-04-30 13:35:24 +02:00
wm4
33ac77e850 mmaldec: autodetect by default
It qualifies as a system library.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-04-30 08:34:10 +02:00
wm4
74beead9bd mmaldec: limit internal buffering
This uses a new MMAL feature, which limits the number of extra frames
that can be buffered within the decoder. VIDEO_MAX_NUM_CALLBACKS can
be defined as positive or negative number. Positive numbers are
absolute, and can lead to deadlocks if the user underestimates the
number of required buffers. Negative numbers specify the number of extra
buffers, e.g. -1 means no extra buffer, (-1-N) means N extra buffers.

Set a gratuitous default of -11 (N=10). This is much lower than the
firmware default, which appears to be 96.

This is backwards compatible, but needs a symbol only present in newer
firmware headers. (It's an enum item, so it requires a check in
configure.)

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-04-30 08:31:08 +02:00
wm4
45a954f5aa mmaldec: print the MMAL format FourCC automatically
Slight simplification. The result is the same. Also, change the
wording of the message as requested in patch review.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-04-30 08:29:13 +02:00
wm4
84bba36846 configure: fix mmal build dependencies
The mmal decoders do not depend on the software decoders.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-04-30 08:27:48 +02:00
wm4
ce589940c2 mmaldec: send only a single EOS packet on flushing
Fixes apparent mmal_port_disable() freezes in ffmmal_stop_decoder() when
calling ffmmal_decode() with flush semantics a large number of times in
a row.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-04-30 08:26:22 +02:00
wm4
46aaad78c3 mmaldec: correct package buffering accounting
The assert in ffmmal_stop_decoder() could trigger sometimes. The
packets_buffered counter was indeed not correctly maintained, and
packets were not subtracted from it if they were still in the waiting
queue.

For some reason, this happened especially with VC-1.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-04-30 08:19:58 +02:00
wm4
9a382f3639 mmaldec: add vc1 decoding support
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-04-30 08:19:53 +02:00
Julian Scheel
d52208e8d5 mmaldec: Add mpeg2 decoding support
Register mmaldec as mpeg2 decoder. Supporting mpeg2 in mmaldec is just a
matter of setting the correct MMAL_ENCODING on the input port. To ease the
addition of further supported mmal codecs a macro is introduced to generate
the decoder and decoder class structs.

Signed-off-by: Julian Scheel <julian@jusst.de>
Signed-off-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-04-30 08:11:13 +02:00
Julian Scheel
2689bb115c mmaldec: Fix avpriv_atomic_get usage
There is no avpriv_atomic_get, instead avpriv_atomic_int_get is to be used for
integers. This fixes building mmaldec.

Signed-off-by: Julian Scheel <julian@jusst.de>
Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-04-30 08:00:58 +02:00
Michael Niedermayer
366ba2dee1 mmaldec: Use av_assert0() instead of assert()
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-04-30 08:00:02 +02:00
Diego Biurrun
f2422b5875 testprogs: Mark some tables as static const 2016-04-29 16:21:23 +02:00
wm4
66dd21d50b avcodec/utils: split side-data in new decode API too
The deprecated avcodec_decode_video2() and avcodec_decode_audio4()
functions called av_packet_split_side_data() on the input packets. This
is required for packets produced by libavformat with the
AVFMT_FLAG_KEEP_SIDE_DATA flag unset (which is unfortunately the
default).

The new API didn't do this yet, although it didn't matter as no decoder
supports the new API yet. The emulation layer for the old API calls the
old API functions, which took care of the splitting. Add this code to
the new API codec entrypoints too, because we shouldn't send essentially
corrupted data to decoders.
2016-04-29 10:35:00 +02:00
Michael Niedermayer
78baa450d9 avformat/ffmdec: Check pix_fmt
Fixes crash
Fixes Ticket5412

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-28 23:25:18 +02:00
Kieran Kunhya
e9a9ca1936 avcodec/cfhd: Don't decode coefficients if no end of header tag found. Fixes fuzzed files such as the one in in ticket #5383 2016-04-28 21:33:08 +01:00
Dave Yeo
3cb3dddeb4 configure: Allow choice in choosing a symlink command
Signed-off-by: Dave Yeo <daveryeo@telus.net>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-28 02:33:10 +02:00
Dmitriy Kuminov
5d7696fe2b configure: Do not create/install versioned DLLs on OS/2.
Only one DLL for each module must be present on OS/2: SLIBNAME_WITH_MAJOR
(the same as on Windows). Creating other DLLs makes no sense as they can't
be used.

Signed-off-by: Dave Yeo <daveryeo@telus.net>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-28 02:32:53 +02:00
Александр Слободенюк
688664e02d avformat/riff: support for matrox m703 mpeg-2
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-28 02:30:59 +02:00
Michael Niedermayer
492011f3c6 avutil/log: Fix occured typo
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-28 01:06:54 +02:00
Piotr Bandurski
55e6323090 avformat/riff: assign g721 and g723 codec tags to g726 decoder 2016-04-28 00:01:35 +02:00
Timo Rothenpieler
c4312b1cf4 avcodec/nvenc: Add missing lossless presets to doc string 2016-04-27 22:22:29 +02:00
Timo Rothenpieler
bc4137d4aa configure: Don't require nonfree for nvenc
As the nvEncodeApi.h header is now MIT licensed, this can be dropped.
The loaded CUDA and NVENC libraries are part of the nvidia driver, and
thus count as system libraries.
2016-04-27 20:17:33 +02:00
Andreas Weis
333207224f avutil/log: added test case for av_log_format_line2
Signed-off-by: Andreas Weis <github@ghulbus-inc.de>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-27 19:23:05 +02:00
Andreas Weis
fb9187129c avutil/log: added av_log_format_line2 which returns buffer length
The new function behaves the same as av_log_format_line, but also forwards
the return value from the underlying snprintf call. This will allow
callers to accurately determine the size requirements for the line buffer.

Signed-off-by: Andreas Weis <github@ghulbus-inc.de>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-27 19:23:05 +02:00
Derek Buitenhuis
6f784c158b Merge commit '549fc77273636d0d02175362af5dcd60c79f7633'
* commit '549fc77273636d0d02175362af5dcd60c79f7633':
  svq3: move mb2br_xy to the SVQ3Context

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-27 16:52:02 +01:00
Derek Buitenhuis
f09fd96cee Merge commit '99dde60391cade40ae026b9e385a5280be6b9882'
* commit '99dde60391cade40ae026b9e385a5280be6b9882':
  svq3: move {ref,mv}_cache to the SVQ3Context

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-27 16:49:19 +01:00
Derek Buitenhuis
c0b51aa2d2 Merge commit '89a13998a1b5074411dff5a461dce3837057b0b8'
* commit '89a13998a1b5074411dff5a461dce3837057b0b8':
  svq3: rip out the svq3-relevant parts of pred_motion() out of h264

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-27 16:48:30 +01:00
Derek Buitenhuis
fed686af23 Merge commit '8eecae77ff6e2923de57dd883421d24fd53ca61f'
* commit '8eecae77ff6e2923de57dd883421d24fd53ca61f':
  svq3: move edge_emu_buffer to the SVQ3Context

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-27 16:47:52 +01:00
Derek Buitenhuis
463de5625b Merge commit '527bf5f7c6890664b0f1dccd42397f4d204659fe'
* commit '527bf5f7c6890664b0f1dccd42397f4d204659fe':
  svq3: move the pred mode variables to SVQ3Context

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-27 16:46:54 +01:00
Derek Buitenhuis
a2922b5d61 Merge commit 'ecc31f6b086453ab9811dce2ae5ceb6a7c19e4ad'
* commit 'ecc31f6b086453ab9811dce2ae5ceb6a7c19e4ad':
  h264: move ff_h264_check_intra[4x4]_pred_mode() to h264_parse

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-27 16:34:40 +01:00
Derek Buitenhuis
c18535399d Merge commit '1877712c586df2261f2806f45388c77592b89d1e'
* commit '1877712c586df2261f2806f45388c77592b89d1e':
  svq3: move mb_{x,y,xy} to SVQ3Context

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-27 16:07:47 +01:00
Derek Buitenhuis
7dca134285 Merge commit 'c2a4ca944d9029a3c162f8f3ddd317b83a7bd600'
* commit 'c2a4ca944d9029a3c162f8f3ddd317b83a7bd600':
  svq3: eliminate write_back_intra_pred_mode() usage

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-27 16:07:19 +01:00
Derek Buitenhuis
47bb289170 Merge commit 'c73fb9efb22c8d66d24de2716f7f9970f234c3c3'
* commit 'c73fb9efb22c8d66d24de2716f7f9970f234c3c3':
  svq3: add all the required dsp contexts into SVQ3Context

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-27 16:06:42 +01:00
Derek Buitenhuis
656b071a8f Merge commit '15b0517da986b312fc2fcb364a92db328380b15b'
* commit '15b0517da986b312fc2fcb364a92db328380b15b':
  svq3: make the dsp functions static

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-27 16:06:12 +01:00
Derek Buitenhuis
d6f01c61ed Merge commit '9b30f8dd8fa5bef5f16904cb98745b4a58f8f776'
* commit '9b30f8dd8fa5bef5f16904cb98745b4a58f8f776':
  h264: remove the svq3-specific code

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-27 15:48:00 +01:00
Ivan Uskov
b577a54a7c qsv: Fix wrong ticks_per_frame for H.264
For H.264 stream ticks_per_frame should be 2, as per the docs.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-27 15:33:53 +01:00
Umair Khan
a2ba50b03a avcodec/alsdec: Fix bitstream reading
Signed-off-by: Umair Khan <omerjerk@gmail.com>
Reviewed-by: Thilo Borgmann <thilo.borgmann@mail.de>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-27 13:15:12 +02:00
Diego Biurrun
5b1409c755 fate: Add test for MSS1 2016-04-27 11:57:45 +02:00
Paul B Mahol
1f62a6e780 avcodec/shorten: make max frame size bigger if custom block size was used
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-04-27 09:08:45 +02:00
Michael Niedermayer
566d64d4fb avcodec/h264: Only recover from reference pictures
Fixes spec compliance
Fixes Ticket5346

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-27 01:33:25 +02:00
Vittorio Giovara
4b2e69397b dds: Add support for monochrome images 2016-04-26 16:30:18 -04:00
Vittorio Giovara
6eb2505855 dds: Drop gray-alpha swapping
The original sample was generated with invalid software.
2016-04-26 16:30:04 -04:00
Michael Niedermayer
4efd3ec50a avcodec/svq3: fix assert type (was av_assert2 in h264 from where this was copied)
Type was lost in f8d1bb2f2ce9031940019e1cda4d30bc409ee349

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-26 21:45:47 +02:00
Michael Niedermayer
005c61c6b8 avcodec/ttaenc: Reallocate packet if its too small
Fixes assertion failure
Fixes Ticket5394

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-26 19:45:59 +02:00
Rodger Combs
e1c20485c1
lavc/audiotoolboxdec: move to new BSF API 2016-04-26 10:35:09 -05:00
Rodger Combs
95116bf35f
lavc/audiotoolboxdec: fix memory leak 2016-04-26 10:35:09 -05:00
Nicolas George
0cb19c30c6 lavf/concatdec: clear extradata when inserting h264_mp4toannexb bsf.
Fix remuxing H.264-in-MP4 to Matroska, possibly others.
2016-04-26 16:58:59 +02:00
Nicolas George
b8fa374fb6 lavf/concatdec: remove unrelated change during codecpar merge.
Clearing the extradata is not related to the codecpar change,
and it breaks if auto_convert is disabled.

Fix trac ticket #5461.
2016-04-26 16:58:59 +02:00
Derek Buitenhuis
f8d1bb2f2c Merge commit 'e42ca48a8bddc637a4013ab253598973f07e1a5c'
* commit 'e42ca48a8bddc637a4013ab253598973f07e1a5c':
  svq3: rip out the mb decoding code shared with h264

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-26 15:11:59 +01:00
Derek Buitenhuis
ee38234c43 Merge commit 'e481458bc308ee838deaeacac51929514762e7a7'
* commit 'e481458bc308ee838deaeacac51929514762e7a7':
  h264: factor out pred weight table parsing into a separate file

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-26 15:04:29 +01:00
Derek Buitenhuis
79aafd43fd Merge commit '90ed6c5cf7f236bc9efb47c97b40358c666d1386'
* commit '90ed6c5cf7f236bc9efb47c97b40358c666d1386':
  h2645_parse: compute the actual data length, without trailing paddding

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-26 14:27:35 +01:00
Derek Buitenhuis
438ed974b8 Merge commit 'b667252a41fbf5a3f6ea8c67fdbc03db3d748977'
* commit 'b667252a41fbf5a3f6ea8c67fdbc03db3d748977':
  h2645_parse: add support for parsing h264

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-26 14:07:03 +01:00
Derek Buitenhuis
b5c10c4c92 Merge commit '52ec149fbee57b6ca817049c9706212a0774a32c'
* commit '52ec149fbee57b6ca817049c9706212a0774a32c':
  h2645_parse: change the AVCodecContext* parameter to void*

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-26 14:04:48 +01:00
Derek Buitenhuis
8e73574d4f Merge commit '8229eff4b7a98ae5d85bb75f3bb072781b4a8ebe'
* commit '8229eff4b7a98ae5d85bb75f3bb072781b4a8ebe':
  h2645_parse: add a function for uninitializing the packet

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-26 14:01:45 +01:00
Derek Buitenhuis
3c4ca4c5d7 Merge commit 'fa936a307f5cddfc2664600157a8207ca8080af6'
* commit 'fa936a307f5cddfc2664600157a8207ca8080af6':
  hevc_parse: rename into h2645_parse

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-26 13:56:47 +01:00
Martin Storsjö
39cdbb12aa dxva2_h264: Unbreak compilation after 3176217c6
Signed-off-by: Martin Storsjö <martin@martin.st>
2016-04-25 22:44:59 +03:00
Derek Buitenhuis
492d229303 qsvenc_hevc: Fix usage of ff_hevc_extract_rbsp
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-25 20:03:23 +01:00
Martin Vignali
3ce19882c5 libavcodec/exr: move xsize and ysize to thread data
Fixes slice threading.

Signed-off-by: James Almer <jamrial@gmail.com>
2016-04-25 14:19:05 -03:00
Derek Buitenhuis
4791a910c0 lavc/hevc_parse: Don't take a HEVCContext
It's not even used anymore, and the checks are no longer
functionally important.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-25 14:40:33 +01:00
Michael Niedermayer
9ac154d1fa avcodec/ac3dec: Reset SPX when switching from EAC3 to AC3
Fixes Ticket5319

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-25 04:08:21 +02:00
Jan Ekström
9779b62624 pgssubdec: fix subpicture output colorspace and range
Functionality used before didn't widen the values from limited to
full range. Additionally, now the decoder uses BT.709 where it
should be used according to the video resolution.

Default for not yet set colorimetry is BT.709 due to most observed
HDMV content being HD.

BT.709 coefficients were gathered from the first two parts of BT.709
to BT.2020 conversion guide in ARIB STD-B62 (Pt. 1, Chapter 6.2.2).
They were additionally confirmed by manually calculating values.

Fixes #4637
2016-04-24 23:05:04 +02:00
Derek Buitenhuis
87b8e95008 Merge commit 'cdb1665f70def544ddab3e3ed3763ef99c8b3873'
* commit 'cdb1665f70def544ddab3e3ed3763ef99c8b3873':
  aarch64: Make transpose_4x4H do a regular transpose

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-24 12:51:42 +01:00
Derek Buitenhuis
4fe4c5c376 Merge commit 'edf54887e2935a30f9d9a46dd806802c3c867c0e'
This merge is a no-op.

* commit 'edf54887e2935a30f9d9a46dd806802c3c867c0e':
  rtpdec_jpeg: fix low contrast image on low quality setting

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-24 12:49:00 +01:00
Derek Buitenhuis
896fce8509 Merge commit '159323897f545e7405fb9db234e0ba123e174376'
* commit '159323897f545e7405fb9db234e0ba123e174376':
  intrax8: Add a local BlockDSPContext and initialize it

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-24 12:36:23 +01:00
Derek Buitenhuis
52692eed61 Merge commit '1eaae7abb8f208fefb4e8b9e983e61b2499206a3'
* commit '1eaae7abb8f208fefb4e8b9e983e61b2499206a3':
  intrax8: Reference the current AVCodecContext

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-24 12:34:58 +01:00
Derek Buitenhuis
50fa5715bc Merge commit '8072345e9f86d88fbc4a15c17cb03f1e4701c9a5'
* commit '8072345e9f86d88fbc4a15c17cb03f1e4701c9a5':
  intrax8: Keep a reference to the GetBitContext reader

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-24 12:34:16 +01:00
Derek Buitenhuis
93c61c980d Merge commit '65f14128c4bcf8fcd9d3ba1e20b7a22057c9cfb0'
* commit '65f14128c4bcf8fcd9d3ba1e20b7a22057c9cfb0':
  intrax8: Use a constant buffer instead of a ScratchpadContext

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-24 12:33:07 +01:00
Derek Buitenhuis
36dad14693 Merge commit 'eaeba6f241e0de0e797be10f8fda967ef8489e64'
* commit 'eaeba6f241e0de0e797be10f8fda967ef8489e64':
  intrax8: Pass the output frame to the decoding function

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-24 12:32:38 +01:00
Derek Buitenhuis
e5c655b098 Merge commit '577393321c389ad2973bec6168a8045c94a9e099'
* commit '577393321c389ad2973bec6168a8045c94a9e099':
  intrax8: Carry over the loopfilter value in ff_intrax8_decode_picture

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-24 12:31:14 +01:00
Derek Buitenhuis
83e0b1b1d7 Merge commit '68127e1bf8037a6e0acd6401cc8c5da950e3fa0a'
* commit '68127e1bf8037a6e0acd6401cc8c5da950e3fa0a':
  intrax8: Keep a reference to the context idctdsp

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-24 12:19:53 +01:00
Derek Buitenhuis
627115b3e4 Merge commit '65127450add50c3bca307edc0517d2e8382717a0'
* commit '65127450add50c3bca307edc0517d2e8382717a0':
  intrax8: Make x8_init_block_index not use mpegvideo fields

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-24 12:16:16 +01:00
Derek Buitenhuis
1a9ffc59d2 Merge commit '922b7e6d86e6197dfa5ebde602dd12cc66fb5f1f'
* commit '922b7e6d86e6197dfa5ebde602dd12cc66fb5f1f':
  intrax8: Use local destination buffers

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-24 12:08:11 +01:00
Derek Buitenhuis
9809371aa5 Merge commit 'a7da517f6a5c472f46f67dd33bb6b95ccc919923'
* commit 'a7da517f6a5c472f46f67dd33bb6b95ccc919923':
  h264data: Move all data tables from a header to a .c file

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-24 11:54:53 +01:00
Derek Buitenhuis
a5a6621616 Merge commit 'f4d581cda3897f66c1dda7586b93f86a591dbbef'
* commit 'f4d581cda3897f66c1dda7586b93f86a591dbbef':
  lavc: Deduplicate zigzag_scan table

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-24 11:47:39 +01:00
Michael Niedermayer
2e67a99fbc avfilter/vf_drawtext: Check return code of load_glyph()
Fixes segfault
Fixes Ticket5347

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-24 12:39:25 +02:00
Derek Buitenhuis
64ae08ffec Merge commit '02cd8bb9cb4381c50f42a9284098cc8a33d397db'
* commit '02cd8bb9cb4381c50f42a9284098cc8a33d397db':
  h264: Clean up #includes

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-24 11:36:44 +01:00
Michael Niedermayer
c84ba07db4 avformat/mux: Check that deinit is set before calling it
Fixes null pointer dereference

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-24 12:07:37 +02:00
Luca Barbato
4012fe1ee8 ape: Unbreak adaptcoeffs computation
And simplify and explain the expression.

Fault introduced in f3fdef108eb06b1e71b29152bf6822519e787efe
2016-04-24 10:18:25 +02:00
Anton Khirnov
2e5bde9565 h264: eliminate max_contexts
It is always equal to nb_slice_ctx.
2016-04-24 10:06:25 +02:00
Anton Khirnov
e3c9041cfe h264: allocate some tables per slice contexts, not threads
This is more correct and avoids wasting space when frame threading is
used.
2016-04-24 10:06:25 +02:00
Anton Khirnov
e065279529 h264: remove an artificial restriction on the number of slice threads
This limit is now unnecessary, we can easily support an arbitrary number
of threads.
2016-04-24 10:06:25 +02:00
Anton Khirnov
4fd34e639d h264: remove pointless setting of some variables in loop_filter
Those should already be set to the correct values.
2016-04-24 10:06:25 +02:00
Anton Khirnov
9c858ce33f h264: remove a pointless comment 2016-04-24 10:06:25 +02:00
Anton Khirnov
b77fffa127 h264: make slice threading work with deblocking_filter=1
In such a case, decode the MBs in parallel without the loop filter, then
execute the filter serially.

The ref2frm array was previously moved to H264SliceContext. That was
incorrect, since it applies to all the slices and should properly be in
H264Context (it did not actually break decoding, since this distinction
only becomes relevant with slice threading and deblocking_filter=1,
which was not implemented before this commit). The ref2frm array is thus
moved back to H264Context.
2016-04-24 10:06:25 +02:00
Anton Khirnov
370ddc7b38 h264: remove H264Context.pict_type
It is not used for anything internally, just exported in the output
frames. So remove the indirection and set it directly in frame_start().
2016-04-24 10:06:25 +02:00
Anton Khirnov
56087ec0a2 h264: drop a pointless indirection 2016-04-24 10:06:25 +02:00
Anton Khirnov
0e7772c5e4 h264: remove unused H264SliceContext.rbsp_buffer 2016-04-24 10:06:25 +02:00
Anton Khirnov
7f045c4429 h264: merge ff_h264_free_context() into h264_decode_end()
It is no longer called from outside the h264 decoder.
2016-04-24 10:06:24 +02:00
Anton Khirnov
99c554efc8 h264: eliminate low_delay
It is always unconditionally initialized in decode_postinit() and then
immediately used in one place further below. All the other places where
it is accessed are just useless fluff.
2016-04-24 10:06:24 +02:00
Anton Khirnov
5b35b290dd h264: remove a stale comment
This comment used to apply to code that was removed.
2016-04-24 10:06:24 +02:00
Anton Khirnov
89ae244e78 h264_refs: remove an unused parameter from ff_h264_fill_mbaff_ref_list() 2016-04-24 10:06:24 +02:00
Anton Khirnov
755f79f84c h264_refs: make the H264Context const where possible 2016-04-24 10:06:24 +02:00
Anton Khirnov
a2fd547839 h264_refs: reorder functions to avoid forward declarations 2016-04-24 10:06:24 +02:00
Anton Khirnov
0ba471d7d8 h264: eliminate copy_fields
It is very fragile against fields being moved and hides what is actually
being copied. Copy all the fields explicitly instead.
2016-04-24 10:06:24 +02:00
Anton Khirnov
72da8d9bb2 h264_parser: remove the remaining dependencies on the h264 decoder 2016-04-24 10:06:24 +02:00
Anton Khirnov
98c97994c5 h264: decouple extradata parsing from the decoder
This will allow decoupling the parser from the decoder.
2016-04-24 10:06:24 +02:00
Anton Khirnov
728d90a0c1 h264: decouple h264_sei from the h264 decoder
Make the SEI parsing independent of the H264Context, to allow
decoupling the parser from the decoder.
2016-04-24 10:06:24 +02:00
Anton Khirnov
c8dcff0cdb h264: factor out calculating the POC count into a separate file
This will allow decoupling the parser from the decoder.
2016-04-24 10:06:24 +02:00
Anton Khirnov
113aeee6ae h264_parser: move the H264DSPContext to the parser context 2016-04-24 10:06:24 +02:00
Anton Khirnov
3176217c60 h264: decouple h264_ps from the h264 decoder
Make the SPS/PPS parsing independent of the H264Context, to allow
decoupling the parser from the decoder. The change is modelled after the
one done earlier for HEVC.

Move the dequant buffers to the PPS to avoid complex checks whether they
changed and an expensive copy for frame threads.
2016-04-24 10:06:23 +02:00
Anton Khirnov
44d16df413 h264_parser: eliminate H264SliceContext usage
It is no longer needed for anything.
2016-04-24 10:06:23 +02:00
Anton Khirnov
71d3305c27 h264_parse: make sure the ref count is zeroed on all failure paths 2016-04-24 10:06:23 +02:00
Anton Khirnov
a6e27f7add h264: factor out parsing the reference count into a separate file
This will allow decoupling the parser from the decoder.
2016-04-24 10:06:23 +02:00
Anton Khirnov
56b17a33f2 h264: stop testing whether the reference count changes in ff_set_ref_count()
It is no longer necessary after 741b494fa8cd28a7d096349bac183893c236e3f9
2016-04-24 10:06:23 +02:00
Anton Khirnov
e9f884416c h264: move reading direct_spatial_mv_pred out of ff_set_ref_count()
It has nothing to do with the reference count and so does not belong in
this function.
2016-04-24 10:06:23 +02:00
Anton Khirnov
8d0cc8ca97 h264_parser: switch to h2645_parse for NAL unescaping
Remove now unused ff_h264_decode_nal().
2016-04-24 10:06:23 +02:00
Anton Khirnov
f3ed484953 h264_mp4toannexb_bsf: do not fail on annex B extradata
Just pass through the bitstream as is. This is the same as what is done
for HEVC already.
2016-04-24 10:06:23 +02:00
Michael Niedermayer
dbe1dd59e0 avformat/mpegts: Skip over broken 0x80 headers
This fixes demuxing of 01c56b0dc1.ts

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-24 02:51:50 +02:00
Michael Niedermayer
ea41ab0987 avformat/mpegts: factor duplicate seek back code into mpegts_resync
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-24 02:51:50 +02:00
Michael Niedermayer
38433345e5 avcodec/utils: Assert that the number of consumed bytes in avcodec_decode_audio4() is <= the input size
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-23 17:23:59 +02:00
Carl Eugen Hoyos
0499012a55 lavf/isom: Support Perian tag NELL for nellymoser.
Reported by forum user turas35.
2016-04-23 11:11:32 +02:00
Michael Niedermayer
a39e3e5e7b avutil/aes: Remove duplicate include
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-23 02:05:53 +02:00
Jan Sebechlebsky
2063f3ed9c avformat/tee: Handling slave failure in tee muxer
Adds per slave option 'onfail' to the tee muxer allowing an output to
fail, so other slave outputs can continue.

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Jan Sebechlebsky <sebechlebskyjan@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-04-22 20:04:27 +02:00
Jan Sebechlebsky
f9d7e9feec avformat/tee: Fix leaks in tee muxer when open_slave fails
In open_slave failure can happen before bsfs array is initialized,
close_slave must check that bsfs is not NULL before accessing
tee_slave->bsfs[i] element.

Slave muxer expects write_trailer to be called if it's
write_header suceeded (so resources allocated in write_header
are freed). Therefore if failure happens after successfull
write_header call, we must ensure that write_trailer of
that particular slave is called.

Some cleanups are made by Marton Balint.

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Jan Sebechlebsky <sebechlebskyjan@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-04-22 19:49:50 +02:00
wm4
27adf9f9cd avcodec/utils: fix minor memory leaks on avcodec_open2() failure 2016-04-22 19:29:48 +02:00
Derek Buitenhuis
53a9b164c5 Merge commit '704a39769719d2e1ae3f13bfc562b51c9cd002d7'
* commit '704a39769719d2e1ae3f13bfc562b51c9cd002d7':
  rtmpdh: add an stdio.h include

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-22 17:21:52 +01:00
Derek Buitenhuis
a980cc47cd Merge commit 'e3dfef8e3c85a64dbe6388117303f5819fa3c6a2'
This commit is a no-op. Ivan Uskov is going to port it for us.

* commit 'e3dfef8e3c85a64dbe6388117303f5819fa3c6a2':
  qsvdec_h2645: switch to the new BSF API

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-22 17:20:57 +01:00
Lou Logan
3eafbbe70a doc/APIchanges: Fix bitsream typo
Signed-off-by: Lou Logan <lou@lrcd.com>
2016-04-21 22:06:05 -08:00
Michael Niedermayer
268b5ae10a doc/APIchanges: Fix bistream typo
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-22 04:48:38 +02:00
Michael Niedermayer
7b7c338e9a avfilter: Add AV_OPT_FLAG_FILTERING_PARAM to where it was missing
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-21 20:20:42 +02:00
Paul B Mahol
c85d04251d avcodec: add TrueMotion 2.0 Real Time decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-04-21 20:15:17 +02:00
Vittorio Giovara
5fca95c8e5 libx264: Forbid inverted Stereo3D mode 2016-04-21 12:25:42 -04:00
Vittorio Giovara
9e2af0e907 libx264: Allow Stereo3D monoscopic value 2016-04-21 12:24:35 -04:00
Derek Buitenhuis
aa40df483b Merge commit 'a638e9184d63e57e67901f34afe919fd56fd3ac4'
* commit 'a638e9184d63e57e67901f34afe919fd56fd3ac4':
  vf_fade: make sure the slice end is always in the frame

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-21 16:52:03 +01:00
Derek Buitenhuis
5f587b1daf Merge commit '3b08d9d932eef09403074d5af31e10d8011e840b'
* commit '3b08d9d932eef09403074d5af31e10d8011e840b':
  testprogs: K&R formatting cosmetics

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-21 16:50:06 +01:00
Derek Buitenhuis
32c044cbc6 Merge commit '439929859ae0eb9542d3bb8a0c856bd5a1d1ec48'
* commit '439929859ae0eb9542d3bb8a0c856bd5a1d1ec48':
  testprogs: Clean up #includes

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-21 16:04:17 +01:00
Derek Buitenhuis
53107052b2 Merge commit '3dfbf32b95ae69a9b15cd4912bc1c68fa16b4093'
* commit '3dfbf32b95ae69a9b15cd4912bc1c68fa16b4093':
  build: Drop redundant removal of compiled object files

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-21 16:03:43 +01:00
Derek Buitenhuis
420806f0d1 Merge commit 'b298b36fc008ad94a24929fe770c8189d96bcac4'
* commit 'b298b36fc008ad94a24929fe770c8189d96bcac4':
  fate: Only run SRTP test if SRTP code is enabled

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-21 16:02:35 +01:00
Derek Buitenhuis
7e3d3a6a89 Merge commit '3ee2ec5ec1e39a438f89302d949c93a1b5d365a2'
* commit '3ee2ec5ec1e39a438f89302d949c93a1b5d365a2':
  unix: Use rw_timeout for setting the connect timeout

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-21 16:01:50 +01:00
Derek Buitenhuis
ba2d37e9ad Merge commit '136c3438bbdb56a5d2f1f0f486f180641dc6dda0'
This commit is a no-op.

* commit '136c3438bbdb56a5d2f1f0f486f180641dc6dda0':
  tcp: Use rw_timeout for setting the connect/listen timeouts

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-21 16:01:30 +01:00
Derek Buitenhuis
f8e89d8a29 Merge commit 'fab8156b2f30666adabe227b3d7712fd193873b1'
* commit 'fab8156b2f30666adabe227b3d7712fd193873b1':
  avio: Copy URLContext generic options into child URLContexts

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-21 15:55:09 +01:00
Derek Buitenhuis
be5fde92ff libnut: Pass stream to ff_parse_specific_params
This function bo longer takes an AVCodecContext.

Fixes ticket #5430.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-21 15:21:09 +01:00
Diego Biurrun
a08b5d7b57 build: Silence the lcov-reset target 2016-04-21 14:29:43 +02:00
wm4
656b07b5a9 lavf: use new decode API
From Libav commit 8bc4accc37ab047d2fd85d672c577b39dfc918e1, with
additional code for decoding subtitles (not present in Libav).

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-04-21 14:23:36 +02:00
wm4
7fc329e2dd lavc: introduce a new decoding/encoding API with decoupled input/output
Until now, the decoding API was restricted to outputting 0 or 1 frames
per input packet. It also enforces a somewhat rigid dataflow in general.

This new API seeks to relax these restrictions by decoupling input and
output. Instead of doing a single call on each decode step, which may
consume the packet and may produce output, the new API requires the user
to send input first, and then ask for output.

For now, there are no codecs supporting this API. The API can work with
codecs using the old API, and most code added here is to make them
interoperate. The reverse is not possible, although for audio it might.

From Libav commit 05f66706d182eb0c36af54d72614bf4c33e957a9.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-04-21 14:23:36 +02:00
Michael Niedermayer
a0b92788a8 avformat/utils: Remove use of caps_internal as it is not public API
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-21 13:49:32 +02:00
Michael Niedermayer
0de99ab06f avcodec: Add avpriv_codec_get_cap_skip_frame_fill_param()
With this the use of the caps_internal from libavformat can be avoided

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-21 13:49:32 +02:00
Martin Storsjö
75b90ef722 libavformat: Update the comment about AVOutputFormat flags
Add a flag which applies here, which had been missed.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-04-21 11:20:46 +03:00
Martin Storsjö
74383def8f movenc: Handle pts == NOPTS when autoflushing
This muxer generally handles pts == NOPTS by using dts instead;
do this for consistency here as well.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-04-21 11:20:39 +03:00
Michael Niedermayer
9f36ea57ae avcodec/avpacket: Fix off by 5 error
Fixes out of array read
Fixes: mozilla bug 1266129
Found-by: Tyson Smith
Tested-by: Tyson Smith
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-21 00:52:40 +02:00
Paul B Mahol
38797a8033 avcodec/takdec: add code that got somehow lost in process of REing
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-04-20 22:47:09 +02:00
Anton Mitrofanov
e428f3b30c x86inc: Enable AVX emulation in additional cases
Allows emulation to work when dst is equal to src2 as long as the
instruction is commutative, e.g. `addps m0, m1, m0`.
2016-04-20 19:16:22 +02:00
Anton Mitrofanov
4bd5583ace x86inc: Improve handling of %ifid with multi-token parameters
The yasm/nasm preprocessor only checks the first token, which means that
parameters such as `dword [rax]` are treated as identifiers, which is
generally not what we want.
2016-04-20 19:16:22 +02:00
Anton Mitrofanov
42be240ad6 x86inc: Fix AVX emulation of some instructions 2016-04-20 19:16:22 +02:00
Henrik Gramner
8dd3ee9ddd x86inc: Fix AVX emulation of scalar float instructions
Those instructions are not commutative since they only change the first
element in the vector and leave the rest unmodified.
2016-04-20 19:16:22 +02:00
Tobias Rapp
ef59c6f7e8 fate: add readvitc filter test
Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-20 18:08:17 +02:00
Michael Niedermayer
9a6ae7fbb2 fate: Add test for ticket 1833 (Ogg/Vorbis Chapters)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-20 01:41:44 +02:00
Petru Rares Sincraian
0b32aff83d fate: Add test for mts2 (mss4) codec
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-20 00:02:30 +02:00
Martin Storsjö
0abb07bad7 movenc: Update a comment to reflect how the code actually behaves
This codepath isn't quite as bad as it used to sound, if fragments
are cut automatically at video packets.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-04-19 22:43:00 +03:00
Luca Barbato
79fdbfdb3e img2enc: Refactor the atomic renaming code
And use it for the separate-plane side-feature as well.

Bug-Id: 935
2016-04-19 20:30:48 +02:00
Luca Barbato
f3fdef108e ape: Avoid undefined behaviour
Avoid the clang warning

"warning: shifting a negative signed value is undefined"
2016-04-19 20:22:31 +02:00
Derek Buitenhuis
e344646c80 Merge commit '564b4591bbe223bdc5f36a1131eaef103f23f5d0'
* commit '564b4591bbe223bdc5f36a1131eaef103f23f5d0':
  opt: Add av_opt_copy()

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-19 19:19:53 +01:00
Luca Barbato
6b2ad3ca48 indeo3: Avoid undefined behaviour
Avoid the clang warning

"warning: shifting a negative signed value is undefined"
2016-04-19 19:00:41 +02:00
Derek Buitenhuis
eae2ebded3 libxvid: Create extradata in init using a dummy frame
Modifying global header extradata in encode_frame is an API violation
and only happens to work currently because mov writes its header
at the end of the file.

Heavily based off of a patch from 2012 by Nicolas George.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-04-19 19:00:41 +02:00
Derek Buitenhuis
c54d835e2f Merge commit '8833f1508b7b6afc3172a8017934a7a54428c686'
This commit is a no-op.

* commit '8833f1508b7b6afc3172a8017934a7a54428c686':
  opt: Add const to av_opt_next

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-19 14:43:23 +01:00
Derek Buitenhuis
90eb249969 Merge commit '933dec0e29ec4d2cb83474279a6c52d62fdb7310'
* commit '933dec0e29ec4d2cb83474279a6c52d62fdb7310':
  file: Add an option for following a file that is being written

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-19 14:41:19 +01:00
Thomas Guillem
785bfb1d7b pixfmt: fix wrong comment
The h264/hevc Annex E colour primaries table says that AVCOL_SPC_SMPTE170M is
similar than AVCOL_SPC_SMPTE240M. These two values are not similar than
AVCOL_SPC_BT470BG.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-04-19 13:38:29 +02:00
Anton Khirnov
06edef3d5e Generate the lists of enabled protocols/bsfs from configure. 2016-04-19 13:34:07 +02:00
Paul B Mahol
13406b6124 avcodec/tak_parser: fix parsing of streams with bunch of small frames at end
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-04-18 23:37:41 +02:00
Petru Rares Sincraian
f25367f4b4 fate: Add test for 012v codec
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-18 22:43:58 +02:00
Petru Rares Sincraian
849e55e58e fate: Add test for mss1 codec
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-18 17:33:48 +02:00
Derek Buitenhuis
299d4f9428 Merge commit 'ccea588f831906084b8c8235222920e6984beb72'
* commit 'ccea588f831906084b8c8235222920e6984beb72':
  avio: Add an option 'rw_timeout'

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-18 15:47:54 +01:00
Derek Buitenhuis
4eef36a4f6 Merge commit 'd44f3e4059506a182f59218b1e967d42b01e097c'
* commit 'd44f3e4059506a182f59218b1e967d42b01e097c':
  avio: Apply avoptions on the URLContext itself as well

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-18 15:35:12 +01:00
Derek Buitenhuis
94e5f0922b Merge commit '8a02a8031ef4f98faf5647f0e01a8922247bf748'
* commit '8a02a8031ef4f98faf5647f0e01a8922247bf748':
  lavfi: add an NVIDIA NPP-based scaling filter

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-18 15:34:04 +01:00
Derek Buitenhuis
34245eccaf Merge commit '98114d70e48caf871b0fe9b8e5bf8ebd989b845d'
* commit '98114d70e48caf871b0fe9b8e5bf8ebd989b845d':
  lavf: VAAPI scale filter

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-18 15:22:24 +01:00
Derek Buitenhuis
528af33b6f Merge commit '8bc4accc37ab047d2fd85d672c577b39dfc918e1'
This commit is a no-op. wm4 is working to get these into ffmpeg
proper, with ffmpeg versions of the patches.

* commit '8bc4accc37ab047d2fd85d672c577b39dfc918e1':
  lavf: use new decode API
  avconv: use new encode API
  avconv: use new decode API
  lavc: introduce a new decoding/encoding API with decoupled input/output

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-18 15:13:28 +01:00
Derek Buitenhuis
1be5509fbb Merge commit '0d2fcdb1c5c9e844c232e5429130727121990d0e'
These commits are no-ops. Not going to merge these since our opt
tests are more complex, and have several blocks with different
options.

* commit '0d2fcdb1c5c9e844c232e5429130727121990d0e':
  opt-test: Merge struct declaration and initialization
  opt-test: Move some variable declarations to avoid block braces

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-18 15:00:18 +01:00
Michael Niedermayer
ce18e48aec avcodec/dump_extradata_bsf: Add back 'k' and 'e' options
broken since af9cac1be1750ecc0e12c6788a3aeed1f1a778be

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-18 02:54:33 +02:00
Michael Niedermayer
57fc93ecb2 avcodec/remove_extradata_bsf: Add back 'k' and 'e' options
broken since af9cac1be1750ecc0e12c6788a3aeed1f1a778be

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-18 02:54:27 +02:00
Michael Niedermayer
8106479503 avcodec/bitstream_filter: Fix initializing options from the argument string
Fixes ffmpeg ... -vbsf noise=234 ...

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-18 02:48:44 +02:00
Michael Niedermayer
76d0209db4 avcodec/intrax8: Remove duplicated chunk from ba5bcf96124a4933eef170dfe7955809d8d54a64
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-18 00:59:18 +02:00
Carl Eugen Hoyos
db7d0d6e7c lavc/fic: Cosmetics, fix a typo.
Found by Moritz Barsnick
2016-04-18 00:18:54 +02:00
Thilo Borgmann
37a4d3383f lavfi/perspective: Add basic timeline editing.
Add number of input and output frames to possible variables.
Add option eval to reevaluate coordinate expressions during
initialization or for every frame.
2016-04-17 21:12:34 +02:00
Derek Buitenhuis
d97a61a8f1 Merge commit 'a84713e70d06238100cb0f867ad6031c272054b0'
This commit is a no-op.

* commit 'a84713e70d06238100cb0f867ad6031c272054b0':
  parseutils-test: Move some variable declarations to avoid block braces

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-17 19:46:01 +01:00
Carl Eugen Hoyos
1106a2c5dd lavc/webp: Print a warning for unsupported chunks. 2016-04-17 20:42:10 +02:00
Derek Buitenhuis
4b23a8137f Merge commit '52385410b7de012c2562fb5ba8f07a4e1112c4e7'
* commit '52385410b7de012c2562fb5ba8f07a4e1112c4e7':
  des-test: Move a variable declaration to avoid an ifdef

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-17 19:40:53 +01:00
Derek Buitenhuis
8f540b8612 Merge commit '65a802401c6cc136576bb2e613c0577cbf622aa8'
* commit '65a802401c6cc136576bb2e613c0577cbf622aa8':
  build: Add component for the SRTP common code

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-17 19:39:57 +01:00
Derek Buitenhuis
9b36f446ac Merge commit '30e9ef21cea09fa5e880e979c9f5b39edccbb6f4'
* commit '30e9ef21cea09fa5e880e979c9f5b39edccbb6f4':
  timefilter-test: Only compile timefilter-test if JACK is enabled

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-17 19:37:54 +01:00
Derek Buitenhuis
b0c75963c8 Merge commit '48362ceadeb2eb5286ae94ef7f9542d990ff7ec7'
* commit '48362ceadeb2eb5286ae94ef7f9542d990ff7ec7':
  doc: Update paths to match new examples location

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-17 19:36:59 +01:00
Derek Buitenhuis
9d4799c247 Merge commit '8dead2aaca4aa8b84b77b05745755afb56b7d37a'
* commit '8dead2aaca4aa8b84b77b05745755afb56b7d37a':
  Move const qualifier before type name

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-17 19:35:03 +01:00
Derek Buitenhuis
61400a1dc7 Merge commit 'd909f43b5c773a73c8d526638744547ba4aa8c59'
* commit 'd909f43b5c773a73c8d526638744547ba4aa8c59':
  vc1dec: wmv2dec: Validate ff_intrax8_common_init return value

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-17 19:32:26 +01:00
Derek Buitenhuis
f64b53f2bf Merge commit '0372e73f917e72c40b09270f771046fc142be4a7'
* commit '0372e73f917e72c40b09270f771046fc142be4a7':
  intrax8: Check and propagate errors from ff_intrax8_common_init

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-17 19:31:32 +01:00
Derek Buitenhuis
c29ac4abb8 Merge commit 'ad8aa8e6c648b61f01b9f106f27b9d4f3d094345'
* commit 'ad8aa8e6c648b61f01b9f106f27b9d4f3d094345':
  intrax8: Move documentation from implementation to header file

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-17 19:30:01 +01:00
Derek Buitenhuis
ba5bcf9612 Merge commit '2ade1cdafb96bf47e77f7ed74731d78a30aae950'
* commit '2ade1cdafb96bf47e77f7ed74731d78a30aae950':
  intrax8: K&R formatting cosmetics

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-17 19:27:53 +01:00
Derek Buitenhuis
7120bff0a3 Merge commit '6f5ff559dbd01fa4ea96bc0a1d2e0c21f2db8d13'
* commit '6f5ff559dbd01fa4ea96bc0a1d2e0c21f2db8d13':
  intrax8: Adjust printf conversion specifier for sizeof expression

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-17 19:13:30 +01:00
Derek Buitenhuis
2c3e38f44f Merge commit '42244ce07a1f4f5108ae86d50fe72db785d483ed'
* commit '42244ce07a1f4f5108ae86d50fe72db785d483ed':
  intrax8: Move a comment to the place it corresponds

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-17 19:11:43 +01:00
Derek Buitenhuis
e445b80c74 Merge commit '750562549ceef268b29b94f6a887d9cf331a8c78'
* commit '750562549ceef268b29b94f6a887d9cf331a8c78':
  intrax8: Wrap multiline macros in do{}while(0) clauses

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-17 19:11:17 +01:00
Derek Buitenhuis
909f5e7100 Merge commit '0c6a70873fc6e43194b471d112c30823b6c8d0b4'
* commit '0c6a70873fc6e43194b471d112c30823b6c8d0b4':
  intrax8: Move error resilience out of intrax8

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-17 19:09:12 +01:00
Derek Buitenhuis
dff9894acd Merge commit '709c0f79d8032fcf733bfe58e79ca7ff0858c8bc'
* commit '709c0f79d8032fcf733bfe58e79ca7ff0858c8bc':
  nuv: Use the correct context for av_image_check_size

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-17 19:06:18 +01:00
Derek Buitenhuis
d9357332ae Merge commit '64250d94b74d3fd47cc8b1611f48daf6a6ed804a'
* commit '64250d94b74d3fd47cc8b1611f48daf6a6ed804a':
  indeo4: Consistently initialize variables

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-17 18:53:11 +01:00
Derek Buitenhuis
1117d6f4b1 Merge commit '6202e2fede75df92cbc374a3f7d6893d0c5ac721'
* commit '6202e2fede75df92cbc374a3f7d6893d0c5ac721':
  indeo4: Rework stream analysis report

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-17 18:51:58 +01:00
Derek Buitenhuis
98e3153fa3 Merge commit '4426540f0c3ee516662f79d0a6ab5b95503b6611'
This commit is a no-op. We will do this when we convert ffmpeg.c

* commit '4426540f0c3ee516662f79d0a6ab5b95503b6611':
  avconv: switch to the new BSF API

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-17 18:50:11 +01:00
Derek Buitenhuis
af9cac1be1 Merge commit '33d18982fa03feb061c8f744a4f0a9175c1f63ab'
* commit '33d18982fa03feb061c8f744a4f0a9175c1f63ab':
  lavc: add a new bitstream filtering API

Conversions-by: Hendrik Leppkes <h.leppkes@gmail.com>
Conversions-by: Derek Buitenguis <derek.buitenhuis@gmail.com>
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-17 18:47:40 +01:00
Michael Niedermayer
6d160afab2 avfilter/vf_readvitc: Use avpriv_frame_get_metadatap() avoid direct access to AVFrame.metadata (to comply to API)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-17 18:21:42 +02:00
Ronald S. Bultje
ee729cc0ed vp9: ignore frame_context_index field in key-/intraonly-frames.
Reproduces a bug to remain consistent with libvpx' behaviour.
2016-04-17 09:28:56 -04:00
Ronald S. Bultje
6135aed0d2 vf_scale: support bt2020 in in/out_color_matrix properties. 2016-04-17 09:28:30 -04:00
Michael Niedermayer
c8d95e5ceb avfilter/colorspacedsp_template: Add argument protecting () to avg()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-17 13:17:18 +02:00
Paul B Mahol
7a0aee1688 avcodec/takdec: fix decoding of some sample rates with multichannel coder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-04-17 11:30:56 +02:00
Ivan
3a727606c4 avcodec/h264: Fix for H.264 configuration parsing
Sometimes video fails to decode if H.264 configuration changes mid stream.
The reason is that configuration parser assumes that nal_ref_idc is equal to 11b
while actually some codecs but 01b there. The H.264 spec is somewhat
vague about this but it looks like it allows any non-zero nal_ref_idc for sps/pps.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-17 02:39:36 +02:00
James Almer
b63ba3a517 avformat/hashenc: add missing avio_flush to hash_write_trailer
It was accidentally deleted in the previous hashenc commit

Signed-off-by: James Almer <jamrial@gmail.com>
2016-04-16 21:31:58 -03:00
Michael Niedermayer
487c346d98 avcodec/exr: Fix "libavcodec/exr.c:1494:13: warning: ISO C90 forbids mixed declarations and code"
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-17 01:52:26 +02:00
Michael Niedermayer
618032da0d fate: add test for Ticket4816 (PNG decoding with alpha)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-17 01:16:19 +02:00
Rostislav Pehlivanov
9e138c4813 vc2enc: use 32x16 slices by default
Approximately 1.25 times faster than 64x32, visually and
statistically improves quality.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-04-16 23:59:36 +01:00
Rostislav Pehlivanov
77fb7177af vc2enc: don't require interlacing for 1080p50/60 base video formats
Typo

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-04-16 23:59:36 +01:00
Tobias Rapp
2aad631a81 avfilter: add readvitc filter
Add a filter to scan the top lines of video frames for vertical interval
timecode (VITC) information and attach it as metadata keys.

Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com>
2016-04-16 16:22:43 +02:00
Michael Niedermayer
60517c3ad6 avfilter/af_hdcd: Fix informations typo
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-16 02:01:10 +02:00
Michael Niedermayer
c4fad02779 avformat/matroskaenc: Undo bits_per_coded_sample change as bits_per_raw_sample is available again
Reminded-by: James Almer
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-16 02:01:10 +02:00
Carl Eugen Hoyos
a676c29af5 lavf/bink: Cosmetics: Reindent after last commit. 2016-04-15 21:26:04 +02:00
Carl Eugen Hoyos
6d39132fd4 lavf/bink: Support Monkey Island 4 (SMUSH) files.
Fixes ticket #5410.
2016-04-15 21:22:10 +02:00
Carl Eugen Hoyos
139cbeb75e lavc/dds: Fix GRAY8A decoding.
Fixes ticket #4667.
2016-04-15 21:06:34 +02:00
Michael Niedermayer
f07923253a avcodec/avcodec: Document signed/unsignedness of sample formats in relation to bits_per_raw_sample
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-15 17:58:05 +02:00
Michael Niedermayer
bcf936eaea avcodec/utils: Add braces to framecount computation
Suggestes-by: ubitux
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-15 15:48:02 +02:00
Michael Niedermayer
a7fa1e38ca avcodec/utils: Fix duration of ATRAC3 packets
Fixes ticket1680

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-15 15:03:27 +02:00
Benjamin Steffes
0cfe16437f lavfi/af_hdcd: Implement high definition audio cd filtering.
Fixes ticket #4441.
2016-04-15 12:14:55 +02:00
Anton Khirnov
a0f469da74 hwcontext: initialize sw_format in av_hwframe_ctx_alloc() 2016-04-15 10:15:54 +02:00
Anton Khirnov
5e1a3ea3ba lavc: move the vaapi encoders further down in the list of codecs
Right now they are the first encoders for those codecs in the list, so
they are selected when the caller requests a codec by id.
Since they require special treatment, they should not be selected by
default if there are other encoders (e.g. libx264/5) available.
2016-04-15 10:10:57 +02:00
Mark Thompson
92fdea3747 vaapi_h265: Add -qp option, use it to replace use of -global_quality
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-04-15 10:07:05 +02:00
Mark Thompson
f70e462793 vaapi_h265: Add constant-bitrate encode support
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-04-15 10:07:05 +02:00
Mark Thompson
fcf536b130 vaapi_h264: Add encode quality option (for quality-speed tradeoff)
Only supported on VAAPI 0.36 and higher.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-04-15 10:07:05 +02:00
Mark Thompson
9629701ce9 vaapi_h264: Add -qp option, use it to replace use of -global_quality
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-04-15 10:07:05 +02:00
Mark Thompson
69b06ed428 vaapi_encode: Add support for codec-local options
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-04-15 10:07:05 +02:00
Mark Thompson
6e8f66fc93 vaapi_h264: Add constant-bitrate encode support
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-04-15 10:07:05 +02:00
Mark Thompson
f6b8552369 vaapi_encode: Refactor slightly to allow easier setting of global options
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-04-15 10:07:04 +02:00
Anton Khirnov
18019f8cb9 FATE: add an H.264 test with unescaped extradata
See commit a7829a2
2016-04-15 10:06:39 +02:00
Anton Khirnov
d7abe900c3 FATE: add an H.264 test with invalid reference lists
See commit 9d74012
2016-04-15 10:04:52 +02:00
James Almer
bb505cd505 avformat/hashenc: simplify hash_write_trailer
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-04-14 20:59:08 -03:00
Michael Niedermayer
21acc4db5f avcodec: Add bits_per_raw_sample to AVCodecParameters
The bits_per_raw_sample represents the number of bits of precision per sample.

The field is added at the logical place, not at the end as the code was just
recently added

This fixes the regression about losing the audio sample precision information

The change in the fate test checksum un-does the change from the merge

Previous version reviewed by: wm4 <nfxjfg@googlemail.com>
Previous version reviewed by: Dominik 'Rathann' Mierzejewski <dominik@greysector.net>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-15 00:33:55 +02:00
James Almer
c8ed93efcf avformat/yop: alloc codecpar extradata only once
Fixes memleak

Signed-off-by: James Almer <jamrial@gmail.com>
2016-04-14 15:55:10 -03:00
Paul B Mahol
9cd2ca9966 avcodec/ralf: add support for mono
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-04-14 22:31:57 +02:00
Paul B Mahol
c9fb81ff41 avcodec/atrac3: pass AVCodecContext to av_log if available
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-04-14 18:47:57 +02:00
Paul B Mahol
323b8c95e4 avformat: add AVFormatContext to ff_get_extradata()
Needed for av_log() inside that function.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-04-14 18:21:08 +02:00
Michael Niedermayer
8e26bdd59b avcodec/bmp_parser: Ensure remaining_size is not too small in startcode packet crossing corner case
Fixes Ticket 5438

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-14 15:28:02 +02:00
Derek Buitenhuis
e1a8f7818c Merge commit 'a2d1922bde8db2cdac95051918fe81ae18c0376b'
This commit is a no-op.

* commit 'a2d1922bde8db2cdac95051918fe81ae18c0376b':
  takdec: ensure chan2 is a valid channel index

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-14 14:02:21 +01:00
Derek Buitenhuis
0520d573db Merge commit '9765549f551ff40869aee1a6492b6a976c86cfe9'
* commit '9765549f551ff40869aee1a6492b6a976c86cfe9':
  mpegts: Forward the errors on mpeg4 objects parsing

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-14 14:01:31 +01:00
Derek Buitenhuis
8688d3af39 Merge commit '07a844f32ebb78503981df017fa3ebfedb75fe1c'
* commit '07a844f32ebb78503981df017fa3ebfedb75fe1c':
  lavfi: generic hardware surface upload and download filters

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-14 13:59:45 +01:00
Derek Buitenhuis
28abb216cb Merge commit '551c6775abb5e0ad34c26d7e23bc6fbbe8ccc9d4'
* commit '551c6775abb5e0ad34c26d7e23bc6fbbe8ccc9d4':
  lavu: VAAPI hwcontext implementation

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-14 13:49:55 +01:00
Derek Buitenhuis
eb2da769bd Merge commit 'd264c720f7b74286840719e506daba39f83b438b'
* commit 'd264c720f7b74286840719e506daba39f83b438b':
  lavu: deprecate AV_PIX_FMT_VAAPI_*, replace with AV_PIX_FMT_VAAPI

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-14 13:46:00 +01:00
Derek Buitenhuis
afccfaf26a Merge commit 'b1f01e85a92d401a9b29c79f23db36b7685e8c09'
* commit 'b1f01e85a92d401a9b29c79f23db36b7685e8c09':
  lavu: add a way to query hwcontext frame constraints

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-14 13:33:37 +01:00
Derek Buitenhuis
7af788aa62 Merge commit '1098f5c0495c61a98d4ff6b8e24c17974d4bace5'
* commit '1098f5c0495c61a98d4ff6b8e24c17974d4bace5':
  svq3: Use a separate buffer for decoding the slices

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-14 13:25:33 +01:00
James Almer
0efafc5849 avformat/framehash: enable new output
Also, make every addition except for sidedata part of version 1 instead of the
new version 2.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-13 21:13:21 -03:00
James Almer
868bce48f6 avformat/framehash: add sidedata checksum
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-04-13 20:58:04 -03:00
Jan Sebechlebsky
2ea5ab6fc6 avformat/tee: Refactor close_slaves function in tee muxer
Closing single slave operation is pulled out into separate
function close_slave(TeeSlave*).
Both close_slave and close_slaves function are moved before
open_slave function.

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Jan Sebechlebsky <sebechlebskyjan@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-04-14 00:49:11 +02:00
Bryan Huh
949444348b avformat/dump: Fix sign bug in reported "start" time
Previously, the bug was that if -1 < start_time < 0, the reported
"start" time would lose the negative-sign.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-14 00:13:15 +02:00
Paul B Mahol
56759f69a6 avcodec/wmalosslessdec: improve 24bit support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-04-13 22:56:53 +02:00
Paul B Mahol
5ac71e9db8 avcodec/wmalosslessdec: improve >2 channel support
Before it worked for stereo files only.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-04-13 22:56:33 +02:00
Michael Niedermayer
3c0511f29e tests/checkasm/vf_colorspace: Make bpp_mask const
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-13 22:39:41 +02:00
Lou Logan
fa0f59d55d doc/demuxers: fix "Quicktme" typo
Signed-off-by: Lou Logan <lou@lrcd.com>
Found-by: furq
2016-04-13 10:41:42 -08:00
James Almer
5557e881c9 avformat/framehash: add extradata checksum
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-04-13 11:41:20 -03:00
James Almer
33aa8a6221 avformat/framecrc: enable new output
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-04-13 11:37:14 -03:00
Derek Buitenhuis
89ec4d46ee Merge commit '2f4a1bb9bfb29112711ba904e1dc0dd58e24f361'
This commit is a no-op.

* commit '2f4a1bb9bfb29112711ba904e1dc0dd58e24f361':
  cmdutils: update copyright year to 2016

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-13 17:35:40 +01:00
Derek Buitenhuis
e5bb7d98f8 Merge commit '8b4b1c1eea9daa4e2003aa0935e73f56aab8102d'
This commit is a no-op.

* commit '8b4b1c1eea9daa4e2003aa0935e73f56aab8102d':
  matroska: Support V_QUICKTIME as written in the specification

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-13 17:34:16 +01:00
Derek Buitenhuis
c182845068 Merge commit '92c1a83ee9394b39d68f6affd9104752a03714f8'
* commit '92c1a83ee9394b39d68f6affd9104752a03714f8':
  qsv: Fix loading multiple plugins

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-13 17:31:36 +01:00
Derek Buitenhuis
bdd6275691 Merge commit '7e01d48cfd168c3dfc663f03a3b6a98e0ecba328'
* commit '7e01d48cfd168c3dfc663f03a3b6a98e0ecba328':
  mov: Check the entries value when parsing dref boxes

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-13 17:30:47 +01:00
Derek Buitenhuis
37f4cdb937 Merge commit '59b9d2f684f1ff66627ca2b7d2dd05771ade62f0'
* commit '59b9d2f684f1ff66627ca2b7d2dd05771ade62f0':
  configure: Add support for clang llvm-cov

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-13 17:29:10 +01:00
Derek Buitenhuis
6e6b1fe7f7 Merge commit 'c11a8586264520e6afcddc52156f4a1fd2fb07b2'
* commit 'c11a8586264520e6afcddc52156f4a1fd2fb07b2':
  configure: Support msan as toolchain

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-13 17:28:44 +01:00
Derek Buitenhuis
c849ed8b2f Merge commit '328e9a15c568843580ff3ff490748d545f16def8'
* commit '328e9a15c568843580ff3ff490748d545f16def8':
  buffer: drop a reference to a non-existing function from the docs

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-13 17:27:01 +01:00
Derek Buitenhuis
27558679a1 Merge commit '7480d001312d9ba706333ec970264ed9df3f82cb'
* commit '7480d001312d9ba706333ec970264ed9df3f82cb':
  pixfmt: fix the AV_PIX_FMT_VAAPI_VLD doxy

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-13 17:26:08 +01:00
Derek Buitenhuis
2691a8399f Revert "Merge commit '1ceb07eb313c2d51383408025e57a2fe50ccd164'"
Broke a lot of stuff and didn't fix anything.

This reverts commit 3c461eecd48ba2cf7616d98e6f99954de3ad4b06, reversing
changes made to 884dd175f061c03d7ba4896685e81bf8adc3ea94.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-13 17:11:10 +01:00
Derek Buitenhuis
f8b09e90e9 Merge commit '39a2d3288e82e4e576c03efb32179ef5a19fff50'
This commit is a no-op. Ours are not identical / refactorable.

* commit '39a2d3288e82e4e576c03efb32179ef5a19fff50':
  mpegvideo: Refactor emulated_edge_mc calls

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-13 16:31:35 +01:00
Derek Buitenhuis
d3e1c6f975 Merge commit '0242351390643d176b10600c2eb854414f9559e6'
* commit '0242351390643d176b10600c2eb854414f9559e6':
  mpegvideo: Fix undefined negative shifts in mpeg_motion_internal

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-13 16:29:12 +01:00
Derek Buitenhuis
c2f9f81650 Merge commit '7d4a1ff344cbf969ac648642a0fd8484fd5b8637'
This commit is a no-op. We solved it already.

* commit '7d4a1ff344cbf969ac648642a0fd8484fd5b8637':
  mpegvideo: Fix undefined negative shifts in ff_init_block_index

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-13 16:27:32 +01:00
Derek Buitenhuis
eff2b43117 Merge commit '1389b4c18d1042c196603ba66c25113bcee1738b'
This commit is a no-op.

* commit '1389b4c18d1042c196603ba66c25113bcee1738b':
  idct8x8: Fix undefined negative shifts

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-13 16:25:22 +01:00
Derek Buitenhuis
09dc684566 Merge commit 'e10b7ef2fe56603fb1baac6b20fd6bd0a3fdd0d0'
* commit 'e10b7ef2fe56603fb1baac6b20fd6bd0a3fdd0d0':
  vdpau: Add missing deprecation guards

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-13 16:22:14 +01:00
Derek Buitenhuis
feb1f7abc5 Merge commit 'd40cb726d271b0284642a1ba159eb26a5c579f77'
* commit 'd40cb726d271b0284642a1ba159eb26a5c579f77':
  mov: Trim dref absolute path

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-13 16:21:12 +01:00
Derek Buitenhuis
e7ac968f60 Merge commit '0b6e5d6b32b91c6da79cd919a3c2ede9d682f838'
This commit is a no-op.

[16:15] <@Daemon404> wm4, ping
[16:15] <@Daemon404> whats up with "avconv: remove sub-frame warning"
[16:15] <@Daemon404> it's in libav but not ours?
[16:15] <@Daemon404> mailing list bikeshedding?
[16:15] <@wm4> it's in ffmpeg.c too
[16:16] <@wm4> you can probably skip it for now
[16:16] <@wm4> michaelni was against removing it this way
[16:17] <@Daemon404> ok

* commit '0b6e5d6b32b91c6da79cd919a3c2ede9d682f838':
  avconv: remove sub-frame warning

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-13 16:17:23 +01:00
Derek Buitenhuis
f5b93c46e9 Merge commit '2e2f8534ebde47d3a3909fe64c2e66204bc56874'
This commit is a no-op.

* commit '2e2f8534ebde47d3a3909fe64c2e66204bc56874':
  lavc: factor apply_param_change() AV_EF_EXPLODE handling

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-13 16:14:42 +01:00
Derek Buitenhuis
be6b58a981 Merge commit '7a6cf2771414c7ab8bca0811d589f6091a6e2b71'
* commit '7a6cf2771414c7ab8bca0811d589f6091a6e2b71':
  lavu: improve documentation of some AVFrame functions

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-13 16:11:39 +01:00
Derek Buitenhuis
3bf368a2a6 Merge commit '84b5dcf27589b32713a4ba0723a129156b4d2408'
This commit is a no-op.

* commit '84b5dcf27589b32713a4ba0723a129156b4d2408':
  asfenc: remove an unused variable

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-13 16:10:10 +01:00
Derek Buitenhuis
bfd0f42277 Merge commit 'ff3db937ef3aa30046a3936146f86ad48ee2ff90'
This commit is a no-op. As far as I can tell, we already added
checks, to address this CVE in 7c0b84d89911b2035161f5ef51aafbfcc84aa9e2,
which is also reflected in the CVE database:

    https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-2326

* commit 'ff3db937ef3aa30046a3936146f86ad48ee2ff90':
  asfenc: fix some possible integer overflows

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-13 16:08:44 +01:00
Derek Buitenhuis
3c461eecd4 Merge commit '1ceb07eb313c2d51383408025e57a2fe50ccd164'
* commit '1ceb07eb313c2d51383408025e57a2fe50ccd164':
  avformat_find_stream_info: move duration guessing after updating codec parameters

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-13 15:36:55 +01:00
Derek Buitenhuis
884dd175f0 Merge commit '11843ededacd0157aea642771837557549b5b417'
* commit '11843ededacd0157aea642771837557549b5b417':
  fate: Add separate target for all indeo3 tests

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-13 15:20:53 +01:00
Derek Buitenhuis
622f18a2bf Merge commit 'b39ab8549a53e2fc7978ab9db50e5c2ba6a6602d'
* commit 'b39ab8549a53e2fc7978ab9db50e5c2ba6a6602d':
  fate: Add test for indeo2 with delta frames

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-13 14:39:23 +01:00
Derek Buitenhuis
78af369189 Merge commit 'f8c34f4b8d62afad3f63cf3d9617d73735bef8c1'
This commit is a no-op. They rewrote fixes we already did,
to the character.

* commit 'f8c34f4b8d62afad3f63cf3d9617d73735bef8c1':
  indeo2: Fix banding artefacts

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-13 14:37:46 +01:00
Derek Buitenhuis
6b1a0f2058 Merge commit 'd4066a702407352a0648af882c34ea81a404fa2b'
This commit is a no-op. Ours is already formatted the same.

* commit 'd4066a702407352a0648af882c34ea81a404fa2b':
  indeo2data: K&R formatting cosmetics

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-13 14:36:22 +01:00
Derek Buitenhuis
546bf316ca Merge commit '1a094af638281295bf087945923d258b5acd1ab1'
This commit is a no-op. The value of the refactoring is dubious and
merging it is error prone. If someone feels strongly about merging it,
let me know, and I will.

* commit '1a094af638281295bf087945923d258b5acd1ab1':
  fft: Split MDCT bits off from FFT

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-13 14:32:19 +01:00
Rodger Combs
c890bcbacf
lavf/audiotoolboxdec: only provide block alignment for ILBC
Fixes decode errors for some AVI files
2016-04-13 03:27:29 -05:00
Rodger Combs
c11157c09a
lavf/audiotoolboxdec: only send extradata for formats that use it
Fixes initialization errors for some AVI files
2016-04-13 03:27:29 -05:00
Rodger Combs
acd5910e39
lavc/audiotoolboxdec: reindent 2016-04-13 03:27:29 -05:00
Rodger Combs
b20d3bf4a4
lavc/audiotoolboxdec: avoid relying on consumer-provided params when possible 2016-04-13 03:27:29 -05:00
Tobias Rapp
ee104580c5 avfilter/vf_drawtext: add optional default value to metadata function
Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com>
2016-04-13 08:39:07 +02:00
James Almer
3674a53d17 avformat/uncodedframecrc: fix incompatible pointer type warning
Signed-off-by: James Almer <jamrial@gmail.com>
2016-04-13 01:39:59 -03:00
Michael Niedermayer
4d59d075a9 tests/checkasm/vf_colorspace: Fix dst array sizes
Suggested & Approved by: BBB
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-12 23:46:52 +02:00
Marton Balint
ee94b1a50a ffplay: convert to codecpar
Tested-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-04-12 23:41:15 +02:00
Yuuki Galaxy
af5419f91b libavfilter/vf_owdenoise.c: skip processing when strength is 0
It is practical to de-noise only on luma while keeping chroma unchanged.

However, libavfilter/vf_owdenoise.c always do the Wavelet transform/retransform on all 3 channels without check whether chroma_strength is 0.

Thus I make this patch. De-noise on Y only for yuv420 is now 1.5 times faster.

Signed-off-by: Yuuki Galaxy <galaxy001@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-12 22:57:32 +02:00
Martin Vignali
ac07e57c39 avcodec/exr: fix huf_decode 2016-04-12 22:54:56 +02:00
Paul B Mahol
392b0a25c2 avcodec/exr: fix clearing end of bitmap
Inspired by patch from Martin Vignali.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-04-12 22:54:56 +02:00
Ronald S. Bultje
5ce703a6bf vf_colorspace: x86-64 SIMD (SSE2) optimizations. 2016-04-12 16:42:48 -04:00
Ronald S. Bultje
2e2e08a35b lavfi: new colorspace conversion filter.
The intent here is similar to colormatrix, but it's LGPLv2.1-or-later
(instead of GPLv2.0) and supports gamma/chromaticity correction.
2016-04-12 16:42:45 -04:00
James Almer
d7815df402 arm/rdft_init: fix license header
Signed-off-by: James Almer <jamrial@gmail.com>
2016-04-12 15:01:19 -03:00
Michael Niedermayer
e3111b1ff8 avformat/framehash: Add more information to the output
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-04-12 11:18:57 -03:00
Moritz Barsnick
f4a0236cbd avformat: add hash and framehash muxers
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Moritz Barsnick <barsnick@gmx.net>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-04-12 11:18:52 -03:00
Derek Buitenhuis
e8373143e1 ffprobe: Don't try and decode things that have no dec_ctx
The last instance of a missing dec_ctx check from the merge.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-12 17:24:07 +01:00
Derek Buitenhuis
9cb1ed5735 ffprobe: Fix missing dec_ctx check
Missed it during the merge of ffprobe codecpar conversion.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-12 16:50:01 +01:00
Derek Buitenhuis
aa9517583e Merge commit '4d13bcceb9a1820f8e9b2c89e00816d3db41b716'
This commit is a no-op.

* commit '4d13bcceb9a1820f8e9b2c89e00816d3db41b716':
  sdp: fix opus sprop-stereo fmtp syntax

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-12 15:59:41 +01:00
Derek Buitenhuis
05e4783c29 Merge commit 'f6ccee9bed92c09799777c1dfb2b2772763e0e83'
* commit 'f6ccee9bed92c09799777c1dfb2b2772763e0e83':
  fate: fft: Split DCT/FFT/MDCT/RDFT tests into separate targets

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-12 15:58:15 +01:00
Derek Buitenhuis
2605967f7e Merge commit '4c297249ac0f513a610a62691ce96d6b62f65b94'
* commit '4c297249ac0f513a610a62691ce96d6b62f65b94':
  rdft: arm: Split RDFT initialization into a separate file

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-12 15:43:34 +01:00
Derek Buitenhuis
197fa698c6 Merge commit '97aec6e75ef36ed0402653519daa8e1fc8ddb555'
* commit '97aec6e75ef36ed0402653519daa8e1fc8ddb555':
  fft: arm: Drop unnecessary #include, add missing ones

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-12 15:43:09 +01:00
Derek Buitenhuis
d496d52d02 Merge commit '73ff983e8dd22ccee166403d0bbbc9c1cd543622'
* commit '73ff983e8dd22ccee166403d0bbbc9c1cd543622':
  fft: x86: cosmetics: Drop silly comments, add comment, whitespace

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-12 15:42:21 +01:00
Derek Buitenhuis
6e2ca81485 Merge commit 'ce9d7da7650473f580dcce8c9f8550ea532aa6bd'
* commit 'ce9d7da7650473f580dcce8c9f8550ea532aa6bd':
  qsv: Move down the implementation query

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-12 15:41:46 +01:00
Derek Buitenhuis
9a98ddcf1b Merge commit 'dbb43b8b83b097585ec255ec638b61e359ebea77'
* commit 'dbb43b8b83b097585ec255ec638b61e359ebea77':
  avpacket: properly reset data/size in av_packet_move_ref()

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-12 15:39:10 +01:00
Derek Buitenhuis
9080dc7f07 Merge commit 'ba357e98691ee4fe1a503b8830c0050be4127475'
* commit 'ba357e98691ee4fe1a503b8830c0050be4127475':
  avprobe: switch to codecpar

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-12 15:38:03 +01:00
Martin Storsjö
9d4d9be538 libavcodec: Document that encoders may use the framerate field in AVCodecContext
Signed-off-by: Martin Storsjö <martin@martin.st>
2016-04-12 14:20:25 +03:00
Martin Storsjö
1bb56abb9b omx: Add support for zerocopy input of frames
This can only be used if the input data happens to be laid out
exactly correctly.

This might not be supported on all encoders, so only enable it
with an option, but enable it automatically on raspberry pi,
where it is known to be supported.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-04-12 13:51:01 +03:00
Martin Storsjö
f1cd9b03f3 omx: Add support for broadcom OMX on raspberry pi
The raspberry pi uses the alternative API/ABI for OMX; this makes
such builds incompatible with all the normal OpenMAX implementations.
Since this can't easily be detected at configure time (one can
build for raspberry pi's OMX just fine using the generic, pristine
Khronos OpenMAX IL headers, no need for their own extensions),
require a separate configure switch for it instead.

The broadcom host library can't be unloaded once loaded and started;
the deinit function that it provides is a no-op, and after started,
it has got background threads running, so dlclosing it makes it
crash.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-04-12 13:50:59 +03:00
Martin Storsjö
e8919ec486 libavcodec: Add H264/MPEG4 encoders based on OpenMAX IL
Signed-off-by: Martin Storsjö <martin@martin.st>
2016-04-12 13:50:57 +03:00
Martin Storsjö
b8e899f4bf mmaldec: Use imgutils.h for copying frames
Signed-off-by: Martin Storsjö <martin@martin.st>
2016-04-12 13:50:54 +03:00
Paul B Mahol
9149e9c0ba avcodec/apedec: fix decoding of stereo files with one channel full of silence
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-04-12 11:03:48 +02:00
Michael Niedermayer
196cfc278d avformat/utils: use av_codec_g/set_lowres()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-12 04:21:12 +02:00
Timo Rothenpieler
901b0f1a21 avformat/concatdec: Use correct stream count on close 2016-04-11 21:06:10 +02:00
Lou Logan
03d8fee912 doc/filters: document testsrc2 source filter
Signed-off-by: Lou Logan <lou@lrcd.com>
2016-04-11 10:26:25 -08:00
Matthieu Bouron
4c22441276 swscale/arm: add yuv2planeX_8_neon 2016-04-11 18:13:36 +02:00
Michael Niedermayer
0c79c96cf2 doc/examples/muxing: Add support to pass flags to muxer as since codecpar the codec flags are not available to the muxer anymore
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-11 17:57:06 +02:00
Derek Buitenhuis
48fb5294d0 Merge commit '567d6d5f9d1400f00445183b3477391f58979aa3'
* commit '567d6d5f9d1400f00445183b3477391f58979aa3':
  avprobe: add local per-stream state

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-11 16:46:30 +01:00
Derek Buitenhuis
9d48aa6d7d Merge commit 'c9478410c68c04261f9cfcd80474607e50bd1852'
* commit 'c9478410c68c04261f9cfcd80474607e50bd1852':
  avprobe: add local per-file state

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-11 16:33:13 +01:00
Derek Buitenhuis
95348174ef Merge commit 'c80344d0101558098a6cd2ed5082ff5fda7ca18b'
* commit 'c80344d0101558098a6cd2ed5082ff5fda7ca18b':
  mpegvideo_enc: use avcodec_free_context() instead of av_free()

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-11 16:02:16 +01:00
Derek Buitenhuis
6614214ece Merge commit '168a443d43b10ef6a3545d64b2f8bc90144ce4b7'
* commit '168a443d43b10ef6a3545d64b2f8bc90144ce4b7':
  avprobe: print information from the codec descriptor

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-11 16:01:22 +01:00
Derek Buitenhuis
80195236c8 Merge commit 'e7188a1a84817b8d4337340c21c552ad0b6cb2fd'
* commit 'e7188a1a84817b8d4337340c21c552ad0b6cb2fd':
  avprobe: remove a pointless condition and a dead branch

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-11 15:30:55 +01:00
Clément Bœsch
c921f4f687 sws/aarch64: add ff_yuv2planeX_8_neon 2016-04-11 16:27:19 +02:00
Derek Buitenhuis
0dfbca73bb Merge commit 'dc4983d78af2a666461654067d2e5d45b835358a'
This commit is a no-op.

* commit 'dc4983d78af2a666461654067d2e5d45b835358a':
  APIchanges: add missing hashes and dates

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-11 15:10:02 +01:00
Derek Buitenhuis
6586f62d1a Merge commit '3e8fd93b6ab219221e17fa2b6243cc72cf2d69dc'
* commit '3e8fd93b6ab219221e17fa2b6243cc72cf2d69dc':
  lavf: add a missing bump and APIchanges for the codecpar switch

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-11 15:09:00 +01:00
Derek Buitenhuis
3dec7ed3cf Merge commit 'e66fa35392cd45d0a80774cd057fb765d60def43'
* commit 'e66fa35392cd45d0a80774cd057fb765d60def43':
  vc1dec: Check group allocations separatedly

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-11 15:06:18 +01:00
Derek Buitenhuis
8cd1323103 Merge commit '01f0e6a0c9270f1d5bef08459a6f167cf55e0596'
This commit is a no-op. We already did this.

* commit '01f0e6a0c9270f1d5bef08459a6f167cf55e0596':
  vc1dec: Fix leak on error for array allocations

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-11 15:03:14 +01:00
Derek Buitenhuis
015ca20030 Merge commit 'f91d94bdfc3f5f83ff0be4d19d10d0a35697386f'
* commit 'f91d94bdfc3f5f83ff0be4d19d10d0a35697386f':
  vc1dec: Properly call deinit function on error

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-11 15:01:43 +01:00
Derek Buitenhuis
e06f5c6f94 Merge commit '35b1cd343cd703c1b0fc926dc43a92141a357380'
* commit '35b1cd343cd703c1b0fc926dc43a92141a357380':
  vc1dec: Drop commented out cruft

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-11 15:00:53 +01:00
Derek Buitenhuis
8a1c79024d Merge commit 'fa55addd23c2f168163175aee17adb125c2c0710'
* commit 'fa55addd23c2f168163175aee17adb125c2c0710':
  img2: Drop av_ prefix for a static function

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-11 14:59:58 +01:00
Derek Buitenhuis
8a6cc30b04 Merge commit 'd6e49096c0c3c10ffb176761b0da150c93bedbf6'
This commit is a no-op.

* commit 'd6e49096c0c3c10ffb176761b0da150c93bedbf6':
  idct: Only build prores IDCT if ProRes decoder is enabled

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-11 14:58:39 +01:00
Derek Buitenhuis
d30cf57a7b Merge commit '3c53627ac17fc6bdea5029be57da1e03b32d265d'
* commit '3c53627ac17fc6bdea5029be57da1e03b32d265d':
  qsvdec: store the sync point in heap memory

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-11 14:56:27 +01:00
Derek Buitenhuis
acc155ac55 Merge commit 'a1335149fd610b16459d9281b611282cac51c950'
* commit 'a1335149fd610b16459d9281b611282cac51c950':
  qsvenc: store the sync point in heap memory

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-11 14:45:57 +01:00
Derek Buitenhuis
8cae006c56 Merge commit '1138eb5509d3db7f6d565cb45f137a786d22beb9'
* commit '1138eb5509d3db7f6d565cb45f137a786d22beb9':
  vsrc_movie: convert to codecpar

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-11 14:42:30 +01:00
Derek Buitenhuis
6bc5ef37cb Merge commit 'ac6d53589f3631ae08467c784fb371a15c957f01'
* commit 'ac6d53589f3631ae08467c784fb371a15c957f01':
  examples/transcode_aac: convert to codecpar

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-11 14:15:28 +01:00
Derek Buitenhuis
030e69b4dc Merge commit 'a9e1f2cc61cbd5606a087a60565e87923c39de5a'
* commit 'a9e1f2cc61cbd5606a087a60565e87923c39de5a':
  examples/qsvdec: convert to codecpar

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-11 14:07:41 +01:00
Derek Buitenhuis
d76972b581 Merge commit '9897d9f4e074cdc6c7f2409885ddefe300f18dc7'
* commit '9897d9f4e074cdc6c7f2409885ddefe300f18dc7':
  examples/output: convert to codecpar

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-11 14:06:43 +01:00
Martin Storsjö
798845ce7e testprogs: Add missing libm.h includes
This fixes building on MSVC 2010 and 2012 after d12b5b2f135.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-04-11 14:48:24 +03:00
Paul B Mahol
b62ed56e25 avcodec/shorten: properly handle bitshift > 31
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-04-11 13:14:55 +02:00
Michael Niedermayer
15fa01786c avformat/hdsenc: Pass flags to child context
This is needed as the bitexact flag is not in the codecpar context, and thus not copied

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-11 04:34:00 +02:00
Michael Niedermayer
0c9ad94e97 avformat/dashenc: Pass flags to child context
This is needed as the bitexact flag is not in the codecpar context, and thus not copied

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-11 04:34:00 +02:00
Michael Niedermayer
4104f18358 avformat/segment: Pass flags to child context
This is needed as the bitexact flag is not in the codecpar context, and thus not copied

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-11 04:34:00 +02:00
Michael Niedermayer
02d08da81f avdevice/caca: switch to codecpar
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-11 01:34:02 +02:00
James Almer
5501f58e52 fate: fix sample dependencies for fate-{a,v}filter tests 2016-04-10 18:31:05 -03:00
Derek Buitenhuis
972df59f4f Merge commit 'c23152a90371bfe971b063781ef4e7d9d5ef9d70'
This commit is a no-op. We want to do this ourselves since avplay and
ffplay differ quite a bit.

* commit 'c23152a90371bfe971b063781ef4e7d9d5ef9d70':
  avplay: convert do codecpar

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-10 21:49:56 +01:00
Derek Buitenhuis
bc91bc1d8b Merge commit '0705f5960c9d272cef1309c090000865b991c9c7'
This commit is a no-op. We did this already in 9e0d1c00b5832e80dc11368e3d39f9e2ec9346f1.

* commit '0705f5960c9d272cef1309c090000865b991c9c7':
  avplay: do not use AVStream.codec for decoding

Merged-by: Derek Buitenhuis <derek.butienhuis@gmail.com>
2016-04-10 21:49:00 +01:00
Derek Buitenhuis
bbf5ef9dac Merge commit '15e84ed3f141c586e8cb78ed58365cf5a511108a'
This commit is a no-op. We want to do this ourselves, since avconv and ffmpeg
differ quite a bit.

* commit '15e84ed3f141c586e8cb78ed58365cf5a511108a':
  avconv: convert to codecpar

Merged-by: Derek Buitenhuis <derek.butienhuis@gmail.com>
2016-04-10 21:47:26 +01:00
Derek Buitenhuis
6372c9dc99 Merge commit '5b9cdf8cba114c41239bf0f9f5e0ccb6977d1c8d'
This commit is a no-op. We already moved it here.

* commit '5b9cdf8cba114c41239bf0f9f5e0ccb6977d1c8d':
  avconv: switch opening decoders and encoders

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-10 21:29:30 +01:00
Derek Buitenhuis
6f69f7a8bf Merge commit '9200514ad8717c63f82101dc394f4378854325bf'
* commit '9200514ad8717c63f82101dc394f4378854325bf':
  lavf: replace AVStream.codec with AVStream.codecpar

This has been a HUGE effort from:
    - Derek Buitenhuis <derek.buitenhuis@gmail.com>
    - Hendrik Leppkes <h.leppkes@gmail.com>
    - wm4 <nfxjfg@googlemail.com>
    - Clément Bœsch <clement@stupeflix.com>
    - James Almer <jamrial@gmail.com>
    - Michael Niedermayer <michael@niedermayer.cc>
    - Rostislav Pehlivanov <atomnuker@gmail.com>

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-10 20:59:55 +01:00
Jakub Stachowski
60b75186b2 avcodec/wmalosslessdec: do not discard last frame
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-04-10 21:33:56 +02:00
Paul B Mahol
571aa7d25e avcodec/shorten: mark as AV_CODEC_CAP_SUBFRAMES
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-04-10 19:54:43 +02:00
Martin Vignali
b45d542ea6 fate/exr : add test for PXR24 Float and tile uncompress 2016-04-10 19:47:51 +02:00
Martin Vignali
2dd7b46132 avcodec/exr: fix channel detection 2016-04-10 19:24:15 +02:00
Carl Eugen Hoyos
7e1e25c2dc lavf/avio: Remove linebreak from https warning. 2016-04-10 15:39:13 +02:00
Michael Niedermayer
38a6242b27 avformat/mpegts: Remove unused argument from analyze()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-10 13:32:26 +02:00
Michael Niedermayer
ee7a642b0e avformat/mpegts: Check adaption field control in analyze() more instead of transport_error_indicator
transport_error_indicator is not required to be 0

Fixes probing
Fixes Ticket 4862

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-10 13:32:25 +02:00
Paul B Mahol
0c90b2e013 avcodec/shorten: add support for AIFF packing, not bitexact
Also report unsupported packing.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-04-09 21:07:10 +02:00
Paul B Mahol
82ee37f1f3 avcodec/shorten: fix decoding of very large (>2048) block sizes
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-04-09 19:51:16 +02:00
Carl Eugen Hoyos
b0c026a27f lavf/rawenc: Add a raw gsm muxer. 2016-04-09 11:44:50 +02:00
Carl Eugen Hoyos
56cb465b38 lavf/gsmdec: Add raw gsm autodetection.
Fixes bug 555.
2016-04-09 11:38:46 +02:00
Michael Niedermayer
d433623fba avcodec/pngdec: Fix alpha detection with skip_frame
Fixes Ticket4816

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-09 01:10:58 +02:00
Matthieu Bouron
7abc8e7ae3 swscale/arm: add ff_hscale_8_to_15_neon 2016-04-09 00:16:56 +02:00
Paul B Mahol
dee138624f avcodec/shorten: fix decoding of files with number of samples lower than max_frame_size
Note that support of very big block sizes is not currently supported at all due
too flawed logic in decoder.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-04-08 23:45:09 +02:00
Paul B Mahol
c18fdc8692 avcodec/shorten: remove useless if condition and comment, reindent
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-04-08 23:21:47 +02:00
Paul B Mahol
a4790e1890 avformat/nistshperedec: add support for mu-law as sample-byte-format
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-04-08 22:34:38 +02:00
Paul B Mahol
966d43d778 avcodec/shorten: fix decoding of last frame
Previously it would be always discarded.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-04-08 22:32:32 +02:00
Michael Niedermayer
6936c11533 fate: Add test for Ticket 2397 (dvdsub)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-08 21:42:57 +02:00
Clément Bœsch
cab9661dba sws/aarch64/yuv2rgb: honor iOS calling convention
y_offset and y_coeff being successive 32-bit integers, they are packed
into 8 bytes instead of 2x8 bytes.

See https://developer.apple.com/library/ios/documentation/Xcode/Conceptual/iPhoneOSABIReference/Articles/ARM64FunctionCallingConventions.html

> iOS diverges from Procedure Call Standard for the ARM 64-bit
> Architecture in several ways
[...]
> In the generic procedure call standard, all function arguments passed
> on the stack consume slots in multiples of 8 bytes. In iOS, this
> requirement is dropped, and values consume only the space required.
[...]
> Padding is still inserted on the stack to satisfy arguments’ alignment
> requirements.
2016-04-08 17:58:43 +02:00
Paul B Mahol
259879d32d avformat/nistspheredec: fix silly bug
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-04-08 13:19:00 +02:00
Paul B Mahol
1490682bcb avcodec/pngenc: check return value of av_frame_copy()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-04-08 12:45:40 +02:00
Dmitriy
c3320a51df avcodec/pngenc: restore image size before copying frame
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-04-08 12:37:20 +02:00
Paul B Mahol
ae8a13c560 avcodec/shorten: if allocation fails reset max_frame_size
Otherwise crash happens.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-04-08 09:59:05 +02:00
Paul B Mahol
3e99b377fc avcodec: remove "get_buffer() failed" message
It is already provided by ff_get_buffer().

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-04-08 09:40:32 +02:00
Paul B Mahol
0c9490609d avformat: support shorten in nistshpere demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-04-07 22:15:41 +02:00
Mulvya
b7a776aa7b doc/filters: add drawtext example
Show example which draws text at a random position, and switches positions every 30 seconds

Signed-off-by: Mulvya <mulvya@gmail.com>
Signed-off-by: Lou Logan <lou@lrcd.com>
2016-04-07 09:40:36 -08:00
Diego Biurrun
d12b5b2f13 build: Split test programs off into separate files
This avoids spurious library rebuilds when only the test program
code is changed and simplifies the build system.
2016-04-07 16:14:42 +02:00
Diego Biurrun
330177b508 build: Group declarations for hw-accelerated de-/encoding separately 2016-04-07 15:26:08 +02:00
Diego Biurrun
01621202aa build: miscellaneous cosmetics
Restore alphabetical order in lists, break overly long lines, do some
prettyprinting, add some explanatory section comments, group parts
together that belong together logically.
2016-04-07 15:26:08 +02:00
Diego Biurrun
e656a6ccd9 configure: cosmetics: Drop pointless end-of-line semicolons 2016-04-07 15:23:21 +02:00
F.Sluiter
3a9611d623 avfilter: add remap filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-04-07 14:02:46 +02:00
Michael Niedermayer
c169062073 swscale/utils: Remove unused variable
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-07 13:41:23 +02:00
Paul B Mahol
2d720069a9 avformat: add aix demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-04-07 09:08:53 +02:00
Vittorio Giovara
00658253e2 fate: Update DDS tests 2016-04-06 12:13:50 -04:00
Vittorio Giovara
22e49e6ede dds: Simplify postprocessing check 2016-04-06 12:13:50 -04:00
Vittorio Giovara
0253863626 dds: Add support for alpha-only files
Due to how pixel format conversion is done, they behave the same way
as gray files.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-04-06 12:13:49 -04:00
Vittorio Giovara
9a9fb710bc dds: Add support for rgb555 files
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-04-06 12:13:47 -04:00
Martin Vignali
6d7f5667a0 avcodec/exr: enable mipmap, ripmap decoding 2016-04-06 13:12:22 +02:00
James Almer
374974886a fate: add missing filter-meta-4560-rotate0 dependencies
Signed-off-by: James Almer <jamrial@gmail.com>
2016-04-05 21:17:13 -03:00
Claudio Freire
8005b6de4f AAC encoder: fix valgrind errors
Move wi.clipping computation outside of psy_lame_window, LFE
channels don't even call that, and make the LFE path also
initialize window_type[1] which is needed by analyze_channel
2016-04-05 23:13:44 -03:00
Michael Niedermayer
2c697c650c fate: force fixed point aac decoder in filter-meta-4560-rotate0
This should fix a off by 1 difference between AARCH64 and X86

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-06 03:16:33 +02:00
Derek Buitenhuis
fdd7a594c3 libxvid: Create extradata in init using a dummy frame
Modifying global header extradata in encode_frame is an API violation
and only happens to work currently because mov writes its header
at the end of the file.

Heavily based off of a patch from 2012.

Original-by: Nicolas George <george@nsup.org>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-05 11:16:24 -04:00
Clément Bœsch
040598218f sws/aarch64: restore ff_hscale_8_to_15_neon()
Fix final scaling and required filter alignment. Pass FATE.
2016-04-05 12:00:36 +02:00
Paul B Mahol
56a3a3f01c avformat: add musx demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-04-05 10:49:34 +02:00
Paul B Mahol
8a4c3f5258 avcodec: add adpcm dat4 decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-04-05 10:48:59 +02:00
Claudio Freire
7d49abdf47 AAC encoder: fix filling of wi.clipping array
Fill all windows in all window groups instead of only the first
window of each group.

Also avoid uninitialized access of window_type.
2016-04-05 04:03:05 -03:00
Marton Balint
a07934d51b ffplay: fix silence insertion on error or pause
Insertion of silence was a bit broken since
df34b700981de606ca4847e1ed0bfdf9ac3e9104 because the info whether or not the
source buffer supposed to be silence must be kept between callbacks. Failing to
do so causes rogue samples from the last buffer to be presented, I guess even a
crash can occur under some circumstances.

This patch uses a NULL audio_buf to keep the silence state across audio
callbacks.

Reviewed-by: Lukasz Marek <lukasz.m.luki2 at gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-04-04 23:24:58 +02:00
Martin Vignali
832861535a libavcodec/exr : add support for compression in tile 2016-04-04 22:30:50 +02:00
Martin Vignali
062ad63064 libavcodec/exr : cosmetic change 2016-04-04 22:30:33 +02:00
Vittorio Giovara
8dde92b95a fate: Update Screenpresso tests 2016-04-04 15:41:57 +02:00
Vittorio Giovara
ec8a69fab6 screenpresso: Correctly handle keyframes
The first byte contains compression level together with keyframe status.
When a frame is not interpreted correctly, its data is summed to the
reference, and would degrade over time, producing an incorrect result.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-04-04 15:40:14 +02:00
Vittorio Giovara
95db8c757c screenpresso: Add extended pixel format support
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-04-04 15:40:06 +02:00
Vittorio Giovara
b5f47d95c6 fate: Update RSCC tests
The current sample comes from an older version of the codec, which
supports a single output mode, so rename it accordingly.
Add tests for the new pixel formats.
2016-04-04 15:39:58 +02:00
Vittorio Giovara
51dc4de121 rscc: Add extended pixel format support
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-04-04 15:39:51 +02:00
Diego Biurrun
4c6836db0f nvenc_h264: Fix name of private AVClass 2016-04-04 15:05:27 +02:00
Michael Niedermayer
54c914651f fate: Add wav-ac3 test
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-04 03:12:24 +02:00
Michael Niedermayer
ec7fda2db5 fate: add fate-flv-demux
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-04 03:12:24 +02:00
Michael Niedermayer
419cb35e6f fate: Add fate-ts-opus-demux
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-04 03:12:24 +02:00
James Almer
64b1ec804f fate: add demux test for OggOpus
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-04-03 16:33:24 -03:00
Claudio Freire
52562503d5 AAC encoder: new regression test
Test to catch the recently fixed minsf bug

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-03 15:28:17 -03:00
Claudio Freire
bad41d3724 AAC encoder: fix initialization of minsf
In some situations (exactly zeroed DC coeffs) minsf would
be initialized with garbage
2016-04-03 15:03:53 -03:00
Luca Barbato
e3453fd444 matroska: Write the field order information
And bump the document version to 4.
2016-04-03 19:36:57 +02:00
Paul B Mahol
76466ab214 avformat/brstm: lower magic number, fixes decoding of some files
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-04-03 19:20:44 +02:00
Hendrik Leppkes
6518cbc52a lavc/utils: Introduce ff_bprint_to_codecpar_extradata for avformat
It will be used by text subtitle demuxers to construct format instructions
straight into extradata. They all currently a similar function that accepts
an AVCodecContext instead.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-03 13:04:17 -04:00
Michael Niedermayer
06c4ed0c0e avformat/wavdec: fix typo with len
Found-by: carl
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-03 17:56:02 +02:00
Martin Vignali
25a01c52b8 libavcodec/exr: add tile support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-04-03 17:09:34 +02:00
Martin Vignali
d2ed3391fb libavcodec/exr: fix PRX24 Float decompression
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-04-03 17:09:29 +02:00
Martin Vignali
4f682318fb fate/exr : add test for b44/b44a compression
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-03 04:18:20 +02:00
Michael Niedermayer
cf4d050b72 avformat/wavdec: Remove direct s->pb->buffer access
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-03 03:25:28 +02:00
Derek Buitenhuis
fcbdc44f4e wavdec: Only set the codec ID in read_header
WAV is not a NOHEADER format, and thus should not be changing
stream codec IDs and probing in read_packet.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-03 01:55:57 +02:00
Michael Niedermayer
de0bcea664 avcodec/mjpegdec: Do not permute quantization tables
This fixes issues if the permutation changes, as quantizations tables would need to be reread

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-03 01:50:08 +02:00
Marios Titas
c1f9734f97 avfilter/src_movie: fix how we check for overflows with seek_point
Currently, if the movie source filter is used and a seek_point is
specified on a file that has a negative start time, ffmpeg will fail.

An easy way to reproduce this is as follows:
$ ffmpeg -vsync passthrough -filter_complex 'color=d=10,setpts=PTS-1/TB' test.mp4
$ ffmpeg -filter_complex 'movie=filename=test.mp4:seek_point=2' -f null -

The problem is caused by checking for int64_t overflow the wrong way.
In general, to check whether a + b overflows, it is not enough to do:
    a > INT64_MAX - b
because b might be negative; the correct way is:
    b > 0 && > a > INT64_MAX - b

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-03 01:50:08 +02:00
Hendrik Leppkes
ce87711df5 exif: take a generic log context
The AVCodecContext is only used for logging, so instead take any valid log context.
This allows reusing the exif functions more easily in avformat.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-02 22:48:15 +01:00
Hendrik Leppkes
994412fb9b avcodec: properly initialize AVCodecParameters profile/level
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-02 22:48:03 +01:00
Rodger Combs
4b150fbe1f lavf/segment: add option to write empty filler segments as needed 2016-04-02 13:31:26 -05:00
Rodger Combs
5b4f44f66a lavf/segment: slight refactor to seg_write_packet
This reduces some code duplication, and ensures that cur_entry.last_duration is
always set.
2016-04-02 13:31:26 -05:00
Rodger Combs
44a9395b5a lavf/segment: style nit 2016-04-02 13:31:26 -05:00
Rick Kern
c9ad357aeb lavc/videotoolboxenc: Workaround encoder error
CMVideoFormatDescriptionGetH264ParameterSetAtIndex() fails on some
hardware/OS versions when retrieving the parameter set count alone.

Signed-off-by: Rick Kern <kernrj@gmail.com>
Signed-off-by: wm4 <nfxjfg@googlemail.com>
2016-04-02 19:16:20 +02:00
Rick Kern
7801669470 lavc/videotoolboxenc: Fix crash when closing codec after error
Fixes crash in #5352. VTCompressionSessionInvalidate() crashes if the
internal encoder hasn't completed, but hasn't experienced an error.
The function call isn't needed since the encoder is invalidated when
the reference count reaches 0 anyway.

Signed-off-by: Rick Kern <kernrj@gmail.com>
Signed-off-by: wm4 <nfxjfg@googlemail.com>
2016-04-02 19:16:15 +02:00
Clément Bœsch
ffd1c3eeb7 lavc/utils: use pkt_timebase for legacy subtitles timing code
This is consistent with other AVSubtitle timing adjustments.
2016-04-02 19:03:06 +02:00
Clément Bœsch
d8620158c7 lavc/ccaption_dec: remove usage of avctx->time_base
lavc/utils already rescales avpkt->pts to sub->pts in AV_TIME_BASE_Q
before calling the decode callback. This prevents from rescaling again
into the decoder, and avoid the use of avctx->time_base which will
disappear in the incoming codecpar merge.

This commit also replaces the use of "20 centisecond" (ass time base)
with "200 ms".
2016-04-02 19:03:06 +02:00
Mark Thompson
b3051a460c vaapi_h264: Fix bit offset of slice data.
Commit ca2f19b9cc37be509d85f05c8f902860475905f8 modified the meaning of
H264SliceContext.gb: it is now initialised at the start of the NAL unit
header, rather than at the start of the slice header.  The VAAPI slice
decoder uses the offset after parsing to determine the offset of the
slice data in the bitstream, so with the changed meaning we no longer
need to add the extra byte to account for the NAL unit header because
it is now included directly.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-04-02 17:56:49 +02:00
Tim Walker
33275a0de0 ac3dec: change logging of skipped E-AC-3 substreams.
Change log level from warning to debug: the E-AC-3 "core"
substream can be successfully decoded without the additional
and dependent substreams, and their presence is already
indicated via avpriv_request_sample in ff_eac3_parse_header.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-04-02 14:06:40 +02:00
Tim Walker
fef2147b7a eac3dec: don't call avpriv_request_sample every frame.
These errors neither prevent nor stop successful decoding
of the E-AC-3 stream's "core", causing avpriv_request_sample
to be called for every single frame in the bitstream.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-04-02 14:05:07 +02:00
Stefano Sabatini
e8a9b64410 lavu/base64: add AV_BASE64_DECODE_SIZE() macro
This is consistent with the AV_BASE64_SIZE macro and avoids the literal
use of constants in the code.
2016-04-02 12:48:21 +02:00
Rodger Combs
b4daa2c40f lavc/audiotoolboxdec: add eac3 decoder
This is added in 10.11, so we add a #define when building against older SDKs.

The decoder actually supports 7.1-channel eac3, but since the parser only
reports 6 channels, we end up decoding the 5.1 downmix (same as the internal
decoder) for now.
2016-04-02 03:03:13 -05:00
Rodger Combs
1b9e90ee80 lavc/audiotoolboxdec: fix a number of config and timestamp issues
- ADTS-formatted AAC didn't work
- Channel layouts were never exported
- Channel mappings were incorrect beyond stereo
- Channel counts weren't updated after packets were decoded
- Timestamps were exported incorrectly
2016-04-02 03:03:13 -05:00
Rodger Combs
59a4492371 lavc/audiotoolboxdec: support ADTS AAC input 2016-04-02 03:03:13 -05:00
Rodger Combs
36770d8769 lavc/audiotoolboxenc: allow setting maxrate with pre-10.9 deployment targets
The build failure here is caused by the enum value not being defined, but
as long as we're on a newer SDK that has it, it's safe to use it even
when our deployment target is older. Setting the property will error, but
we're not failing on errors there.
2016-04-02 03:03:13 -05:00
Rodger Combs
0667327f3f lavc/audiotoolboxenc: fix iOS build 2016-04-02 03:03:13 -05:00
Rodger Combs
c820e600ea lavc/audiotoolboxenc: fix a number of config issues
- size variables were used in a confusing way
- incorrect size var use led to channel layouts not being set properly
- channel layouts were incorrectly mapped for >2-channel AAC
- bitrates not accepted by the encoder were discarded instead of being clamped
- some minor style/indentation fixes
2016-04-02 03:03:13 -05:00
Rodger Combs
7524b67817 lavc/audiotoolboxenc: remove unneeded packet metadata
This isn't necessary here, and for some reason broke only multichannel
AAC encoding when a channel layout tag was set.
2016-04-02 03:03:13 -05:00
Rodger Combs
d38fe9f493 lavf/segment: support automatic bitstream filtering
Most useful for MPEG-TS. Works by having the underlying muxer configure the
bitstream filters, then moving them to our own AVStreams.
2016-04-02 03:03:13 -05:00
Ronald S. Bultje
b3eda69490 swscale: add bt2020 yuv2rgb coefficients. 2016-04-01 15:39:48 -04:00
Ronald S. Bultje
98038e2ee0 swscale: fix bt709 yuv2rgb coefficients.
They were derived from incorrect values cr=0.2125 (should be cr=0.2126)
and cb=0.0721 (should be cb=0.0722).
2016-04-01 15:39:47 -04:00
Michael Niedermayer
0de1c1ab86 fate: add demux test for TS with AC3 (Ticket 4864)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-01 19:09:59 +02:00
Michael Niedermayer
7615197b6e fate: Test for Ticket4560
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-01 19:09:50 +02:00
Michael Niedermayer
1d64a9d9f6 fate: Add regression test for Ticket 1239
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-01 19:09:34 +02:00
Michael Niedermayer
9f03b85045 avcodec/parser: assert that the codec id is not NONE in av_parser_parse2()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-01 19:08:29 +02:00
Aaron Boxer
b6b4b0a65e avcodec/j2kenc: Add attribution to OpenJPEG project:
http://ghostscript.com/~tor/gs-browse/gs/openjpeg/libopenjpeg/t1.c

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-01 17:35:15 +02:00
Clément Bœsch
eadaef2a63 sws/aarch64: disable ff_hscale_8_to_15_neon temporarly
Looks broken.
2016-04-01 17:33:01 +02:00
Matthieu Bouron
58994d7bca swscale/arm/yuv2rgb: make the code bitexact with its aarch64 counter part 2016-04-01 17:23:45 +02:00
Matthieu Bouron
5629361cc2 swscale/arm/yuv2rgb: save a few instructions by processing the luma line interleaved 2016-04-01 17:23:45 +02:00
Matthieu Bouron
339668301e swscale/arm/yuv2rgb: re-order compute_rgba macro arguments 2016-04-01 17:23:45 +02:00
Matthieu Bouron
ff4885face swscale/arm/yuv2rgb: rename {process_1l,process_2l,compute}_16px{,_internal} macros 2016-04-01 17:23:45 +02:00
Matthieu Bouron
562653b731 swscale/arm/yuv2rgb: macro-ify 2016-04-01 17:23:45 +02:00
Matthieu Bouron
0286b56f2f swscale/arm/yuv2rgb: factorize lsl in load_args_nvx 2016-04-01 17:23:45 +02:00
Matthieu Bouron
0649fe0fae swscale/arm/yuv2rgb: factorize lsl in load_args_yuv420p 2016-04-01 17:23:45 +02:00
Matthieu Bouron
2aec59c07c swscale/arm/yuv2rgb: remove unused store of dst + linesize in load_args_yuv422p 2016-04-01 17:23:45 +02:00
Matthieu Bouron
b3ea901945 swscale/arm/yuv2rgb: factorize lsl in load_args_yuv422p 2016-04-01 17:23:45 +02:00
Matthieu Bouron
466e209e6e swscale/arm/yuv2rgb: fix comments in load_args_yuv422p 2016-04-01 17:23:45 +02:00
Matthieu Bouron
11b4acab8b swscale/arm/yuv2rgb: remove 32bit code path 2016-04-01 17:23:45 +02:00
wm4
a5f5b8b96a lavc: factor apply_param_change() AV_EF_EXPLODE handling
Remove the duplicated code for handling failure of apply_param_change().
2016-04-01 12:52:56 +02:00
wm4
f099cb2f8a lavu: improve documentation of some AVFrame functions 2016-04-01 12:52:12 +02:00
Luca Barbato
1db8eb1549 avconv: Drop an unused variable 2016-04-01 05:30:22 +02:00
Derek Buitenhuis
54ccaaeb2b psxstr: Remove some commented out code
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-03-31 21:46:14 +01:00
Clément Bœsch
be8d98c1ad lavc/utils: transfer width/height for subs in codecpar
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-03-31 21:20:39 +01:00
Derek Buitenhuis
dd77dad4e6 codecpar: Add video delay field
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-03-31 21:20:39 +01:00
Hendrik Leppkes
5b4f8af2f1 Add frame_size to AVCodecParameters
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-03-31 21:20:39 +01:00
James Almer
3fafde6cbe lavc: Add seek_preroll to AVCodecParameters
Signed-off-by: James Almer <jamrial@gmail.com>
2016-03-31 21:20:39 +01:00
Derek Buitenhuis
e6053b3b19 Merge commit 'a8068346e48e123f8d3bdf4d64464d81e53e5fc7'
* commit 'a8068346e48e123f8d3bdf4d64464d81e53e5fc7':
  lavc: add a variant of av_get_audio_frame_duration working with AVCodecParameters

Fixes from jamrial incorporated.

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-03-31 21:20:02 +01:00
Derek Buitenhuis
f9b1cf15c2 Merge commit '998e1b8f521b73e1ed3a13caaabcf79eb401cf0d'
* commit '998e1b8f521b73e1ed3a13caaabcf79eb401cf0d':
  lavc: add codec parameters API

  Fixes added in:
    - bit_rate has been made int64_t to match.
    - profile and level are properly initialize.

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-03-31 21:19:03 +01:00
Pedro Arthur
6de58b4903 swscale: cleanup unused code
Removed previous swscale code under '#ifndef NEW_FILTER'
and removed unused fields of SwsContext
2016-03-31 16:36:16 -03:00
Michael Niedermayer
3b905b9fe6 swscale: Deprecate vector functions which are unused outside swscale
There are no known users of these functions within debian
It should be thus possible to remove these functions without recommandition of a
replacement

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-31 20:21:14 +02:00
Josh de Kock
6bb99757b7 jack: Support OSX
Previously, with JACK installed, the configure script would enable the
JACK indev; this broke on OS X due to an incomplete pthreads
implementation. Add some simple macros to map libdispatch to pthreads
on OS X.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-03-31 18:03:21 +02:00
Luca Barbato
5f02266681 matroska: Support interlaced content correctly
The matroska specification now has two elements for it.
2016-03-31 18:03:21 +02:00
Alex Smith
a677121cc5 configure: Fix debugging on mingw-w64 with gdb
The relocation hack broke debugging on mingw-w64 when using gdb.  This
makes the reloc hack dependent on --disable-debug so it's still enabled
for release builds.

This is simply an immediate fix for the issue of broken debugging, we
should probably still look at the possibility of reverting it outright
if it proves to be more trouble than it's worth.  For now keeping it
enabled for release builds is a reasonable trade off.

Signed-off-by: Alex Smith <theryuu@warpsharp.info>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-31 14:34:17 +02:00
Paul B Mahol
cf925e0ac1 doc/filters: add stereotools examples
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-31 11:16:01 +02:00
Paul B Mahol
241a3a6ca4 doc/filters: add sofalizer examples
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-31 11:04:42 +02:00
Clément Bœsch
263eb76bdf sws/aarch64: add ff_hscale_8_to_15_neon
./ffmpeg -nostats -f lavfi -i testsrc2=4k:d=2 -vf bench=start,scale=1024x1024,bench=stop -f null -

    before: t:0.489726 avg:0.489883 max:0.491852 min:0.489482
    after:  t:0.256515 avg:0.256458 max:0.256999 min:0.253755
2016-03-31 10:12:55 +02:00
Claudio Freire
be746ae470 AAC encoder: fix undefined behavior
Fix uninitialized access of minsf in short windows
Fix potential invocation of coef2minsf(0)
2016-03-30 22:35:28 -03:00
James Almer
9bf3d01d91 avformat/latmenc: auto-insert aac_adtstoasc bitstream filter when needed
Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-03-30 21:58:48 -03:00
Michael Niedermayer
a35a4a5774 fate: Add filter-metadata-cropdetect
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-30 22:55:51 +02:00
Diego Biurrun
44f05f15d4 build: Do not check the vaapi_encode.h header if VAAPI is not enabled 2016-03-30 17:52:46 +02:00
Diego Biurrun
bd016dbf23 Mark tables used only within their files as static 2016-03-30 17:19:13 +02:00
Diego Biurrun
061dc20351 h264: Add missing ff_ prefix to internally visible h264_init_dequant_tables() 2016-03-30 17:19:13 +02:00
Claudio Freire
c883da6bf4 AAC encoder: fix signed integer overflow
Clamp scalefactors by coef2minsf to avoid undefined behavior
caused by signed integer overflow. It also avoids clipping of
coefficients so it should avoid artifacts as well, on very
rare corner cases.
2016-03-30 10:05:03 -03:00
Timo Rothenpieler
b3557c79dc avcodec/nvenc: Generate AUD NAL units for better compatiblity 2016-03-30 12:03:59 +02:00
Anton Khirnov
69a638019f avconv: fix -frames for video
For video, frame_number tracks the number of frames sent to the encoder.
So it should be incremented when we submit a frame, not when we get a
packet back.
2016-03-30 09:13:09 +02:00
Mark Thompson
83f230c244 lavc: VAAPI MJPEG encoder
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-03-30 09:11:44 +02:00
Mark Thompson
31fe1f2577 lavc: VAAPI H.265 encoder
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-03-30 09:11:25 +02:00
Mark Thompson
2c62fcdf5d lavc: VAAPI H.264 encoder
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-03-30 09:10:26 +02:00
Mark Thompson
104c804bca lavc: VAAPI encode common infrastructure
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-03-30 09:05:28 +02:00
Mark Thompson
5d273d3efa avconv: VAAPI hwcontext initialisation and hwaccel helper
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-03-30 09:04:53 +02:00
Michael Niedermayer
b3ec5b00ce tests/audiomatch: Reduce search window
This avoids unneeded computations

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-30 03:37:56 +02:00
Michael Niedermayer
c7b983249a tests/audiomatch: also print signal vs reference length
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-30 03:37:56 +02:00
Paul B Mahol
974734c98c doc/filters: remove false claim in sofalizer description
Remove false claim that processing in freq domain is
worse quality than processing in time domain.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-30 02:35:51 +01:00
Rostislav Pehlivanov
02172d93f6 Revert "aacenc: use av_clip() instead of av_clip() during quantization"
This reverts commit c0918613a0ecaac6819409c64107583eebc0ccc2, since it
triggered a new assertion with gcc.
This bug definitely needs a true proper fix.
2016-03-30 02:31:22 +01:00
Rostislav Pehlivanov
7cda7683a5 Revert "doc/filters: remove false claim in sofalizer description"
This reverts commit bf1495d9a991dd13e382a4c1871d96708fdec4e7.
2016-03-30 02:30:19 +01:00
Rostislav Pehlivanov
c0918613a0 aacenc: use av_clip() instead of av_clip() during quantization
Seems like clang might be miscompiling it and causing a signed integer overflow,
making a FATE test fail.
Doesn't seem to affect performance, it only runs on the ESC codebook.

Reviewed-by: Claudio Freire <klaussfreire@gmail.com>
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-03-30 01:04:43 +01:00
Paul B Mahol
bf1495d9a9 doc/filters: remove false claim in sofalizer description
Remove false claim that processing in freq domain is
worse quality than processing in time domain.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-29 22:29:31 +02:00
Paul B Mahol
4a80a6ad21 avfilter/vf_waveform: optimize lowpass filter even more
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-29 22:02:48 +02:00
Jovan Zelincevic
b73c27151e avcodec/mips: Optimization synced to the newest code base.
FFT expanded to 2^17.

Signed-off-by: Jovan Zelincevic <jovan.zelincevic@imgtec.com>
Reviewed-by: Nedeljko Babic <Nedeljko.Babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-29 17:06:16 +02:00
Vittorio Giovara
7888ae8266 cfhd: Do not initialize context size
Otherwise probing and stream analisys will report a correct coded size
but an empty visible size.

Approved by: kieran
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-29 17:06:15 +02:00
Vittorio Giovara
ca8c759173 intrax8: Remove mpegvideo dependency 2016-03-29 13:41:09 +02:00
Diego Biurrun
6ebd06a9b2 intrax8: Drop lots of pointless parentheses
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-03-29 13:41:09 +02:00
Vittorio Giovara
9b57995cdd intrax8: Drop MB emulation code
This is already performed in init_context_frame().
2016-03-29 13:41:09 +02:00
Vittorio Giovara
9fa888c028 intrax8: Keep a reference to the decoder blocks 2016-03-29 13:41:09 +02:00
Vittorio Giovara
c2084ffcbf intrax8: Use the generic horizband function
This is assuming that intrax8 has no support for interlacing
Carry over lowdelay value in ff_intrax8_decode_picture.
2016-03-29 13:41:09 +02:00
Vittorio Giovara
b1268e0f03 intrax8: Pass macroblock coordinates to ff_intrax8_decode_picture
These values need to be updated with the last macroblock position,
so keep them as pointers.
2016-03-29 13:41:09 +02:00
Vittorio Giovara
d0540fd021 intrax8: Pass macroblock size to ff_intrax8_common_init
Helps in decoupling this code from mpegvideo.
2016-03-29 13:41:09 +02:00
Vittorio Giovara
9f4d99138d fate: Add test for WMV2 with jframes 2016-03-29 13:41:09 +02:00
James Almer
d5a3578350 avformat/svag: fix division by zero
Fixes ticket #5386

Signed-off-by: James Almer <jamrial@gmail.com>
2016-03-28 21:34:08 -03:00
Lou Logan
06eef96b69 fix some a/an typos
Signed-off-by: Lou Logan <lou@lrcd.com>
2016-03-28 14:13:17 -08:00
Marton Balint
99f2a59c2f avcodec/utils: fix packet duration of frames with discarded paddings
Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-03-28 23:40:12 +02:00
Lou Logan
cd76eb8f4a lavd/dshow_crossbar: remove trailing whitespace
Signed-off-by: Lou Logan <lou@lrcd.com>
2016-03-28 13:31:38 -08:00
Paul B Mahol
a55c953ef0 avfilter/af_sofalizer: allow user to setup custom virtual speakers positions
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-28 21:27:59 +02:00
Kirill Gavrilov
f3ec8ac0f4 lavc/mediacodec: fix zero stride for OMX.allwinner.video.decoder.avc 2016-03-28 21:23:15 +02:00
Paul B Mahol
c2bbcf1607 avfilter/vf_waveform: optimize 16bit lowpass filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-28 12:28:03 +02:00
Paul B Mahol
ff982e02b5 avcodec: add dca core extraction bsf
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-28 10:50:41 +02:00
Anton Khirnov
ca2f19b9cc h264: switch to h2645_parse for NAL parsing 2016-03-28 10:16:28 +02:00
Matthieu Bouron
308d3ed5aa lavc/mediacodec: use ternary operator to set slice-height value 2016-03-28 10:10:21 +02:00
Anton Khirnov
a7829a2a3f h264: reimplement 3aa661ec5 in a more explicit way
Instead of handling the problem inside NAL decoding code, add a higher
level wrapper function. This should be more robust against future
changes (and easier to read).
2016-03-28 10:10:18 +02:00
Anton Khirnov
add1467e5e svq3: drop the build dependency on the h264 decoder 2016-03-28 09:58:26 +02:00
Anton Khirnov
a4d126dc59 svq3: eliminate remaining H264Context usage. 2016-03-28 09:58:14 +02:00
Anton Khirnov
7bbdae81e8 svq3: move block_offset to SVQ3Context 2016-03-28 09:58:07 +02:00
Anton Khirnov
1848a154a4 svq3: stop using H264Context.gb 2016-03-28 09:57:58 +02:00
Anton Khirnov
ea6ab02a17 svq3: move the frame num variables to the SVQ3Context 2016-03-28 09:57:45 +02:00
Anton Khirnov
21b7469322 svq3: eliminate H264Context.cur_pic usage
Use the SVQ3Context variable instead
2016-03-28 09:57:24 +02:00
Anton Khirnov
939b388383 svq3: eliminate remaining H264SliceContext usage 2016-03-28 09:56:57 +02:00
Anton Khirnov
5a5db90edf svq3: move pict_type to the SVQ3Context 2016-03-28 09:56:45 +02:00
Anton Khirnov
12f13ecb2d svq3: move mb strides/sizes to the SVQ3Context 2016-03-28 09:56:36 +02:00
Anton Khirnov
ad9d3384de svq3: move the dequant buffer to SVQ3Context
Remove now unnecesary call to ff_h264_alloc_tables()
2016-03-28 09:56:09 +02:00
Anton Khirnov
549fc77273 svq3: move mb2br_xy to the SVQ3Context 2016-03-28 09:55:55 +02:00
Anton Khirnov
99dde60391 svq3: move {ref,mv}_cache to the SVQ3Context 2016-03-28 09:55:47 +02:00
Anton Khirnov
89a13998a1 svq3: rip out the svq3-relevant parts of pred_motion() out of h264 2016-03-28 09:55:24 +02:00
Anton Khirnov
8eecae77ff svq3: move edge_emu_buffer to the SVQ3Context 2016-03-28 09:55:16 +02:00
Anton Khirnov
527bf5f7c6 svq3: move the pred mode variables to SVQ3Context
This will allow removing the H264Context dependency in the future.
2016-03-28 09:54:37 +02:00
Anton Khirnov
ecc31f6b08 h264: move ff_h264_check_intra[4x4]_pred_mode() to h264_parse
It is shared with svq3.
2016-03-28 09:53:56 +02:00
Anton Khirnov
1877712c58 svq3: move mb_{x,y,xy} to SVQ3Context
This will allow removing the H264Context dependency in the future.
2016-03-28 09:53:45 +02:00
Anton Khirnov
c2a4ca944d svq3: eliminate write_back_intra_pred_mode() usage
This function depends on the h264 internals and is so tiny that just
copying the code out is the simplest replacement.
2016-03-28 09:51:10 +02:00
Anton Khirnov
c73fb9efb2 svq3: add all the required dsp contexts into SVQ3Context
Stop using the H264Context ones, to allow removing the H264Context
dependency.
2016-03-28 09:50:51 +02:00
Anton Khirnov
15b0517da9 svq3: make the dsp functions static
There is no need for them to be extern anymore.
2016-03-28 09:50:41 +02:00
Anton Khirnov
9b30f8dd8f h264: remove the svq3-specific code 2016-03-28 09:50:25 +02:00
Anton Khirnov
e42ca48a8b svq3: rip out the mb decoding code shared with h264
The ~100 lines of shared code is not worth the pain of svq3 messing with
h264 internals.
2016-03-28 09:49:53 +02:00
Anton Khirnov
e481458bc3 h264: factor out pred weight table parsing into a separate file
This will allow decoupling the parser from the decoder.
2016-03-28 09:48:31 +02:00
Anton Khirnov
90ed6c5cf7 h2645_parse: compute the actual data length, without trailing paddding
This is required by h264.
2016-03-28 09:47:25 +02:00
Anton Khirnov
b667252a41 h2645_parse: add support for parsing h264 2016-03-28 09:45:04 +02:00
Anton Khirnov
52ec149fbe h2645_parse: change the AVCodecContext* parameter to void*
This should make it more clear that it is not supposed to be used for
anything except logging.
2016-03-28 09:43:31 +02:00
Anton Khirnov
8229eff4b7 h2645_parse: add a function for uninitializing the packet 2016-03-28 09:43:18 +02:00
Anton Khirnov
fa936a307f hevc_parse: rename into h2645_parse
This code will be shared with h264.
2016-03-28 09:42:44 +02:00
Michael Niedermayer
8f2a1990c0 avcodec/diracdec: check bitstream size related fields for overflows
Fixes segfault
Fixes Ticket5333

Regression since bfc8a4dabe5a0154b31128b59dca575010176441
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-28 04:39:57 +02:00
Timo Rothenpieler
665c05f7cb configure: Fail if CUDA enabled but not found
Without this patch, configure still passes and enables CUDA, no matter
if it was actually found, breaking the build in case it was not.
2016-03-28 01:14:36 +02:00
Paul B Mahol
48be92e5b6 avfilter/vf_waveform: optimize lowpass 8bit filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-27 23:29:38 +02:00
Paul B Mahol
0b9957c301 avfilter/vf_waveform: move mirror variable into function argument
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-27 22:50:04 +02:00
Kieran Kunhya
e259dc86a8 avcodec: Remove libdcadec, we already have it merged internally 2016-03-27 04:21:38 +01:00
Michael Niedermayer
c50be7a52b avcodec/h264_slice: Check PPS more extensively when its not copied
Fixes Ticket5371
Fixes null pointer dereference

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-27 05:03:44 +02:00
Marton Balint
8ff0f6ae82 avformat/segment: set format options for all segments
Fixes ticket #5318.

Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-03-26 23:26:27 +01:00
Martin Storsjö
cdb1665f70 aarch64: Make transpose_4x4H do a regular transpose
Previously, ff_h264_idct_add_neon (originally in the arm version) used
a non-regular transpose in order to be able to use more instructions
that deal with registers as 128 bit register pairs. The aarch64
translation doesn't do it to the same extent, but brought along the
same structure since it was a straight translation.

This reshuffles ff_h264_idct_add_neon, bringing it closer to
the C implementation, making the transpose_4x4H macro do a regular
transpose, usable for other algorithms as well.

Previously, the third and fourth output from transpose_4x4H were
swapped, and prior to cc29d96d5a, the same inputs as well. In
addition to just swapping the outputs, also renumber the intermediate
registers for better readability (making the register order match
transpose_4x8B).

This runs with the same number of cycles as before.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-03-26 21:25:56 +02:00
Michael Niedermayer
5a19506088 fate: Remove vsync drop from some h264 tests
Note some tests need vsync drop to produce exact timestamps, these seem not to
need it. quite likely many more dont need it either, ive not checked beyond finding
one that needs it and the ones which have it removed

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-26 16:39:20 +01:00
Michael Niedermayer
d4424d7de2 fate: Modify a random h264 test to also test the -framerate option
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-26 16:39:19 +01:00
Dan Dennedy
28688d7c2b avcodec/audiotoolboxenc: Fix compile error on OS X 10.8.
Fixes error "libavcodec/audiotoolboxenc.c:294:50: error: use of undeclared
identifier 'kAudioCodecPropertyPacketSizeLimitForVBR'."

That was added to 10.9:
https://developer.apple.com/library/mac/releasenotes/General/APIDiffsMacOSX10_9/AudioUnit.html

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-26 16:35:44 +01:00
Carl Eugen Hoyos
de1a0d4359 lavc/flicvideo: Implement padding in COPY chunks.
Reviewed-by: Reimar
2016-03-26 14:56:55 +01:00
Michael Niedermayer
c06bdc60c9 avformat/rtpdec: Remove stray debug av_log()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-26 11:02:58 +01:00
Martin Vignali
495f08edb4 avcodec/exr: add support for B44 and B44A compression 2016-03-26 09:27:26 +01:00
Ico Doornekamp
edf54887e2 rtpdec_jpeg: fix low contrast image on low quality setting
The problem is that the argument 'q' is of the type uint8_t.
According to the JPEG standard, if 1 <= q <= 50, the scale factor
'S' should be 5000 / Q. Because the create_default_qtables() reuses
the variable 'q' to store the result of this calculation, for small
values of q < 19, q wil subsequently overflow and give wrong results
in the calculated quantization tables.

Instead, use a new variable 'S' (same name as in RFC2435) with the
proper range to store the result of the division.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-03-26 00:15:24 +02:00
Paul B Mahol
585cfabb79 avcodec/jpeg2000dec: add slice threading support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-25 22:00:52 +01:00
Paul B Mahol
e2298b3fcc avcodec/jpeg2000dec: account two last bytes from end of bytestream as EOC marker
This silences missing EOC marker when decoding j2k files with Psot set to 0.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-25 22:00:52 +01:00
Vittorio Giovara
159323897f intrax8: Add a local BlockDSPContext and initialize it
Helps in decoupling this code from mpegvideo.
2016-03-25 15:55:49 -04:00
Vittorio Giovara
1eaae7abb8 intrax8: Reference the current AVCodecContext
It will be needed to initialize BlockDSP in the next commit.
2016-03-25 15:55:02 -04:00
Vittorio Giovara
8072345e9f intrax8: Keep a reference to the GetBitContext reader
Helps in decoupling this code from mpegvideo.
2016-03-25 15:54:29 -04:00
Vittorio Giovara
65f14128c4 intrax8: Use a constant buffer instead of a ScratchpadContext
The size of the block is fixed (8x8 plus padding).
2016-03-25 15:54:06 -04:00
Vittorio Giovara
eaeba6f241 intrax8: Pass the output frame to the decoding function
Helps in decoupling this code from mpegvideo.
2016-03-25 15:53:02 -04:00
Vittorio Giovara
577393321c intrax8: Carry over the loopfilter value in ff_intrax8_decode_picture
Helps in decoupling this code from mpegvideo.
2016-03-25 15:52:44 -04:00
Vittorio Giovara
68127e1bf8 intrax8: Keep a reference to the context idctdsp
Use it instead of the embedded mpegvideo one. Update init function
signature to load it directly from the callers.
2016-03-25 15:52:24 -04:00
Vittorio Giovara
65127450ad intrax8: Make x8_init_block_index not use mpegvideo fields 2016-03-25 15:52:10 -04:00
Vittorio Giovara
922b7e6d86 intrax8: Use local destination buffers
These buffers are just a way to store frame pointers and be able to
modify them without touching the original ones.

The two dependent decoders (WMV2 and VC1) do not need special care for
these fields: the former does not seem to use the dest buffers, while
the latter reinits them every time to the current frame data buffers.

So only keep a local copy rather than the one from mpegvideo.
2016-03-25 15:51:50 -04:00
Thilo Borgmann
4d251723c0 lavfi: Add coreimage filter for GPU based image filtering on OSX. 2016-03-25 17:18:49 +01:00
Thilo Borgmann
4ebf0b109c lavu/dict: Add new flag to allow multiple equal keys. 2016-03-25 17:08:11 +01:00
Clément Bœsch
277408b7f1 sws/aarch64/yuv2rgb: save a few mul and add
27ms to 26ms with UHD 2160 input.
2016-03-25 16:14:13 +01:00
Diego Biurrun
a7da517f6a h264data: Move all data tables from a header to a .c file 2016-03-25 15:56:14 +01:00
Diego Biurrun
f4d581cda3 lavc: Deduplicate zigzag_scan table 2016-03-25 15:23:56 +01:00
Diego Biurrun
02cd8bb9cb h264: Clean up #includes 2016-03-25 15:23:55 +01:00
Anton Khirnov
704a397697 rtmpdh: add an stdio.h include
The test uses printf.
2016-03-25 14:53:37 +01:00
Anton Khirnov
e3dfef8e3c qsvdec_h2645: switch to the new BSF API 2016-03-25 14:53:37 +01:00
Anton Khirnov
a638e9184d vf_fade: make sure the slice end is always in the frame
CC: libav-stable@libav.org
2016-03-25 14:53:31 +01:00
James Almer
99388eb091 avcodec/libopenjpegenc: fix mixed declarations and code
Signed-off-by: James Almer <jamrial@gmail.com>
2016-03-25 00:05:05 -03:00
James Almer
21cd0228be avcodec/libopenjpegdec: fix mixed declarations and code
Signed-off-by: James Almer <jamrial@gmail.com>
2016-03-25 00:04:57 -03:00
Michael Niedermayer
0cd9ff4e3a avcodec/libutvideodec: copy frame so it has reference counters when refcounted_frames is set
Reviewed-by: maintainer
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-24 22:52:01 +01:00
Diego Biurrun
3b08d9d932 testprogs: K&R formatting cosmetics 2016-03-24 21:45:07 +01:00
Michael Niedermayer
54f43984e1 avutil/parseutils: mark args as static const
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-24 19:31:02 +01:00
Petru Rares Sincraian
f707042c93 Added more tests to libavutil/parseutils.c
- Added tests for av_find_info_tag().
    - Added test for av_get_known_color_name()

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-24 19:29:43 +01:00
Diego Biurrun
439929859a testprogs: Clean up #includes 2016-03-24 19:17:23 +01:00
Diego Biurrun
3dfbf32b95 build: Drop redundant removal of compiled object files
This is already taken care of by CLEANSUFFIXES.
2016-03-24 19:17:23 +01:00
Diego Biurrun
b298b36fc0 fate: Only run SRTP test if SRTP code is enabled 2016-03-24 19:17:23 +01:00
Ico Doornekamp
e3e6a2cff4 avformat/rtpdec_jpeg: fix low contrast image on low quality setting
Original mail and my own followup on ffmpeg-user earlier today:

I have a device sending out a MJPEG/RTP stream on a low quality setting.
Decoding and displaying the video with libavformat results in a washed
out, low contrast, greyish image. Playing the same stream with VLC results
in proper color representation.

Screenshots for comparison:

  http://zevv.nl/div/libav/shot-ffplay.jpg
  http://zevv.nl/div/libav/shot-vlc.jpg

A pcap capture of a few seconds of video and SDP file for playing the
stream are available at

  http://zevv.nl/div/libav/mjpeg.pcap
  http://zevv.nl/div/libav/mjpeg.sdp

I believe the problem might be in the calculation of the quantization
tables in the function create_default_qtables(), the attached patch
solves the issue for me.

The problem is that the argument 'q' is of the type uint8_t. According to the
JPEG standard, if 1 <= q <= 50, the scale factor 'S' should be 5000 / Q.
Because the create_default_qtables() reuses the variable 'q' to store the
result of this calculation, for small values of q < 19, q wil subsequently
overflow and give wrong results in the calculated quantization tables. The
patch below uses a new variable 'S' (same name as in RFC2435) with the proper
range to store the result of the division.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-24 15:40:10 +01:00
Rostislav Pehlivanov
72e1360007 vc2enc: optimize and simplify quantization
Everything except ORing the sign is now done in the LUT.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-03-24 13:04:59 +00:00
Michael Niedermayer
26811fd946 avformat/mpegtsenc: Fix used service
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-24 12:35:19 +01:00
Michael Niedermayer
50d017a281 avformat/mpegtsenc: Keep track of the program for each service
Simplifies code

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-24 12:27:23 +01:00
Martin Storsjö
3ee2ec5ec1 unix: Use rw_timeout for setting the connect timeout
Signed-off-by: Martin Storsjö <martin@martin.st>
2016-03-24 10:34:29 +02:00
Martin Storsjö
136c3438bb tcp: Use rw_timeout for setting the connect/listen timeouts
Apply the default value for timeout in code instead of via the
avoption, to allow distinguishing the default value from the user
not setting anything at all.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-03-24 10:34:24 +02:00
Martin Storsjö
fab8156b2f avio: Copy URLContext generic options into child URLContexts
Since all URLContexts have the same AVOptions, such AVOptions
will be applied on the outermost context only and removed from the
dict, while they probably make sense on all contexts.

This makes sure that rw_timeout gets propagated to the innermost
URLContext (to make sure it gets passed to the tcp protocol, when
opening a http connection for instance).

Alternatively, such matching options would be kept in the dict
and only removed after the ffurl_connect call.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-03-24 10:34:19 +02:00
Michael Niedermayer
564b4591bb opt: Add av_opt_copy()
This includes documentation and other modifications by
Lukasz Marek and Martin Storsjö.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-03-24 10:34:15 +02:00
Lukasz Marek
8833f1508b opt: Add const to av_opt_next
Also add const to pointers in static functions within opt.c where
possible/necessary.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-03-24 10:34:09 +02:00
Martin Storsjö
933dec0e29 file: Add an option for following a file that is being written
Using this requires setting the rw_timeout option to make it
terminate, alternatively using the interrupt callback (if used via
the API).

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-03-24 10:33:59 +02:00
Andrey Utkin
ccea588f83 avio: Add an option 'rw_timeout'
If set non-zero, this limits duration of the retry_transfer_wrapper()
loop, thus affecting ffurl_read*(), ffurl_write(). As soon as
one single byte is successfully received/transmitted, the timer
restarts.

This has further changes by Michael Niedermayer and Martin Storsjö.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-03-24 10:33:50 +02:00
Martin Storsjö
d44f3e4059 avio: Apply avoptions on the URLContext itself as well
Currently the list of avoptions for URLContext is empty though,
but such options will be added.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-03-24 10:33:37 +02:00
Petru Rares Sincraian
68e5976543 Refactor libavutil/parseutils.c
All tests were in the main method which produces a long main. Now, each test
is in his own method.

I think this produces a more clear code and follows more with the main
priority of FFmpeg "simplicity and small code size"

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-24 03:38:12 +01:00
Michael Niedermayer
fe3de6bc62 fate: Add test that also decodes packed_bframes.avi
No new reference samples are needed for this as the file already exists
for testing the bitstream filter

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-23 20:28:28 +01:00
Anton Khirnov
8a02a8031e lavfi: add an NVIDIA NPP-based scaling filter 2016-03-23 19:55:34 +01:00
Mark Thompson
98114d70e4 lavf: VAAPI scale filter
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-03-23 19:40:15 +01:00
wm4
8bc4accc37 lavf: use new decode API
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-03-23 19:31:36 +01:00
wm4
35846d93e0 avconv: use new encode API
The flushing case is a bit strange; not simplifying it so the change is
less noisy.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-03-23 19:31:35 +01:00
wm4
84aea95e31 avconv: use new decode API
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-03-23 19:31:35 +01:00
wm4
05f66706d1 lavc: introduce a new decoding/encoding API with decoupled input/output
Until now, the decoding API was restricted to outputting 0 or 1 frames
per input packet. It also enforces a somewhat rigid dataflow in general.

This new API seeks to relax these restrictions by decoupling input and
output. Instead of doing a single call on each decode step, which may
consume the packet and may produce output, the new API requires the user
to send input first, and then ask for output.

For now, there are no codecs supporting this API. The API can work with
codecs using the old API, and most code added here is to make them
interoperate. The reverse is not possible, although for audio it might.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-03-23 19:31:23 +01:00
Rostislav Pehlivanov
a14d4c076d vc2enc: simplify calc_slice_sizes()
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-03-23 18:04:05 +00:00
Rostislav Pehlivanov
a010e36f23 vc2enc: correctly zero out the slice size cache
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-03-23 17:52:53 +00:00
Rostislav Pehlivanov
14b41e061d vc2enc: macro out slice size rounding
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-03-23 17:52:53 +00:00
Ganesh Ajjanagadde
8dbffda0f9 lavc/psymodel: check for av_malloc failure
No idea why in commit 01ecb7172b684f1c4b3e748f95c5a9a494ca36ec the
checks were removed; this can lead to NULL pointer dereferences. This
effectively reverts that portion of the commit.

Reviewed-by: Benoit Fouet <benoit.fouet@free.fr>
Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanag@gmail.com>
2016-03-23 08:22:22 -07:00
Diego Biurrun
0d2fcdb1c5 opt-test: Merge struct declaration and initialization 2016-03-23 10:14:43 +01:00
Diego Biurrun
d3044cf37f opt-test: Move some variable declarations to avoid block braces 2016-03-23 10:14:31 +01:00
Diego Biurrun
a84713e70d parseutils-test: Move some variable declarations to avoid block braces 2016-03-23 09:35:41 +01:00
Diego Biurrun
52385410b7 des-test: Move a variable declaration to avoid an ifdef 2016-03-23 09:35:41 +01:00
Diego Biurrun
65a802401c build: Add component for the SRTP common code
This allows expressing the SRTP test code dependencies more clearly.
2016-03-23 09:35:41 +01:00
Diego Biurrun
30e9ef21ce timefilter-test: Only compile timefilter-test if JACK is enabled 2016-03-23 09:35:41 +01:00
Diego Biurrun
48362ceade doc: Update paths to match new examples location 2016-03-23 09:35:40 +01:00
Paul B Mahol
b098e1a469 avcodec/dvaudiodec: now that we got samples, fix 12bit case
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-23 09:32:34 +01:00
Diego Biurrun
8dead2aaca Move const qualifier before type name 2016-03-23 09:25:30 +01:00
Vittorio Giovara
d909f43b5c vc1dec: wmv2dec: Validate ff_intrax8_common_init return value 2016-03-22 17:33:32 -04:00
Vittorio Giovara
0372e73f91 intrax8: Check and propagate errors from ff_intrax8_common_init
This allows dropping an afterwards redundant assert.
2016-03-22 17:33:32 -04:00
Vittorio Giovara
ad8aa8e6c6 intrax8: Move documentation from implementation to header file 2016-03-22 17:33:28 -04:00
Vittorio Giovara
2ade1cdafb intrax8: K&R formatting cosmetics 2016-03-22 17:12:20 -04:00
Diego Biurrun
6f5ff559db intrax8: Adjust printf conversion specifier for sizeof expression 2016-03-22 17:12:20 -04:00
Vittorio Giovara
42244ce07a intrax8: Move a comment to the place it corresponds 2016-03-22 16:51:09 -04:00
Vittorio Giovara
750562549c intrax8: Wrap multiline macros in do{}while(0) clauses
These macros are treated like functions, the wrapping simplifies error
checking and avoids deeply nested ifs in the following commit.
2016-03-22 16:51:09 -04:00
Vittorio Giovara
0c6a70873f intrax8: Move error resilience out of intrax8
The intrax8 decoding process does not imply any kind of error
resilience, and the only call present is more related to how mpegvideo
works rather than anything else.

Therefore have the parent decoders carry out er when actually needed.
2016-03-22 16:51:09 -04:00
Vittorio Giovara
709c0f79d8 nuv: Use the correct context for av_image_check_size 2016-03-22 16:51:09 -04:00
Vittorio Giovara
64250d94b7 indeo4: Consistently initialize variables
Avoid using multiple variables for the same purpose.
2016-03-22 16:04:01 -04:00
Vittorio Giovara
6202e2fede indeo4: Rework stream analysis report
* Change log level from error to debug
* Print report after the first decoded frame, not at the end of decoding
* Drop macro guard and use a context variable instead

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-03-22 16:03:52 -04:00
Rodger Combs
65cff81453 lavc: add AudioToolbox encoders
Fixes trac #4828
2016-03-22 12:43:14 -05:00
Rodger Combs
d5d328059e lavc: add AudioToolbox decoders
Part of trac #4828
2016-03-22 12:43:14 -05:00
Ganesh Ajjanagadde
db1a642cd2 all: move ff_exp10, ff_exp10f, ff_fast_powf to lavu/ffmath.h
The idea is to use ffmath.h for internal implementations of math functions.
Currently, it is used for variants of libm functions, but is by no means
limited to such things.

Note that this is not exported; use lavu/mathematics for such purposes.

Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanag@gmail.com>
2016-03-22 10:15:31 -07:00
Petru Rares Sincraian
124526ba1a Added a selftest to libavutil/display.c
- Check if av_display_rotation_get() gets the correct degrees
    - Check if av_display_rotation_set() sets the correct matrix
    - Check if av_display_matrix_flip() changes correct the matrix

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-22 17:24:55 +01:00
Rostislav Pehlivanov
2aebdfb451 vc2enc: add non-experimental support for all video formats from spec
Until now, for formats which were in the spec but not in the encoder's
list of supported formats required the -strict -1 flag. This enables
support for all video formats which are specified, all the way from
QSIF525 to 8K.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-03-22 14:07:56 +00:00
Michael Niedermayer
914ad90edd swresample/swresample: Remove "less than" comparissions of enums
Found-by: wm4
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-22 14:20:12 +01:00
Carl Eugen Hoyos
ef888de1c1 lavf/img2dec: Skip COM when auto-detecting jpeg.
It could theoretically contain invalid data that gets ignored by decoders.
2016-03-22 11:13:24 +01:00
Michael Niedermayer
14478b6c38 fate: add audiomatch
Testset provided by Justin Greer <justin@zencoder.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-22 09:42:05 +01:00
Carl Eugen Hoyos
30d1213ecd configure: Remove (b)zlib and iconv dependencies for videoltoolbox encoder. 2016-03-22 01:30:33 +01:00
Thomas Volkert
b4f32c42ab rtpdec: support for VC-2 HQ RTP payload format (draft v1) 2016-03-22 00:17:12 +01:00
Lukasz Marek
df34b70098 ffplay: remove redundant silence buffer
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2016-03-22 00:04:21 +01:00
Michael Niedermayer
6e65b9bb1f avformat/utils: scan a bit farther for a keyframe in mpeg/mpegts (7 sec instead of 5, we already scan 90sec in some cases by default)
Fixes Ticket5305

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-21 20:46:29 +01:00
Rostislav Pehlivanov
d4773c94a6 vc2enc: simplify count_hq_slice() and caching
The count_hq_slice() function is always used with a SliceArgs struct

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-03-21 11:04:49 +00:00
Rostislav Pehlivanov
500dc20dee vc2enc: fix segfault
Fixes trac bug #5353

Uninitialized memory for the initial quantization index

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-03-21 11:01:01 +00:00
Neil Birkbeck
e7e5c5e6c4 lavf/matroskaenc.c: add early support for colour elements
Adding early support for a subset of the proposed colour elements
according to the latest version of spec:
https://mailarchive.ietf.org/arch/search/?email_list=cellar&gbt=1&index=hIKLhMdgTMTEwUTeA4ct38h0tmE

Like matroskadec, I've left out elements for pix_fmt related things
 as there still seems to be some discussion around these.

The new elements are exposed under strict experimental mode.

Signed-off-by: Neil Birkbeck <neil.birkbeck@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-21 00:10:18 +01:00
Paul B Mahol
8f66a2da38 avfilter/vf_vectorscope: always flip output vertically
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-20 21:10:45 +01:00
Marton Balint
65efcaeb84 avformat/mov: read start_pad from edit list start time if codec is aac
Related to ticket #2324, #2325.

Stream duration still need to be fixed...

Signed-off-by: Marton Balint <cus@passwd.hu>
2016-03-20 19:51:28 +01:00
Marton Balint
25f707694c avformat/utils: increase detected start_time with skip_samples
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-03-20 19:51:05 +01:00
Marton Balint
48a96383fa tests/gapless: add gapless aac tests
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-03-20 19:50:15 +01:00
Clément Bœsch
8284a4ba11 lavf/dv: use c->sys->frame_size in dv_frame_offset()
dv_frame_offset() is static and called only from dv_read_seek(), where
c->sys->frame_size is already used.

This simplifies the incoming codecpar merge where
avctx->{coded_width,coded_height,time_base} are not accessible anymore.
2016-03-20 19:28:15 +01:00
Clément Bœsch
6c0cf11f38 lavf/dv: reindent after previous commit 2016-03-20 19:28:15 +01:00
Clément Bœsch
35ba5c424b lavf/dv: do not check for c->sys
dv_extract_video_info() is a static function called only from
avpriv_dv_produce_packet(), where c->sys is made sure to be set.
2016-03-20 14:25:16 +01:00
Michael Niedermayer
7916f04b89 ffplay: Remove "&& 0" from already disabled debug code
Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-20 11:22:53 +01:00
Paul B Mahol
50f4b64c54 avfilter/vf_waveform: set color range for output frames
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-20 10:00:53 +01:00
Anton Khirnov
4426540f0c avconv: switch to the new BSF API 2016-03-20 08:15:01 +01:00
Anton Khirnov
33d18982fa lavc: add a new bitstream filtering API
Deprecate the current bitstream filtering API.
2016-03-20 08:15:01 +01:00
Andreas Cadhalpun
a2d1922bde 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>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-03-20 01:04:12 +01:00
Luca Barbato
9765549f55 mpegts: Forward the errors on mpeg4 objects parsing
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-03-20 01:04:12 +01:00
Michael Niedermayer
0ffa9e6eba avformat/utils: Do not wait for more than 1 frame on attachments
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-19 22:58:34 +01:00
Michael Niedermayer
92dfeb5c31 avformat/wtvdec: Set AVFMTCTX_NOHEADER
Needed for noStreams.wtv unless something else forces continued parsing (like looking for more than 1
frame in attachments)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-19 22:58:34 +01:00
Paul B Mahol
959c7dad88 avfilter/vf_waveform: add graticule to aflat filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-19 21:47:15 +01:00
Paul B Mahol
c91b20c464 avfilter/vf_waveform: add subsampling input support for remaining filters
Remove achroma filter, as same output can be done with lowpass filter
and multiple components with overlay display.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-19 21:18:35 +01:00
Michael Niedermayer
efa98cdc2f avformat/file: Add crypto to default whitelist
Fixes Ticket5287

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-19 18:56:59 +01:00
Michael Niedermayer
068026b0f7 avcodec/mjpegenc_common: Store approximate aspect if exact cannot be stored
Fixes Ticket5244

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-19 16:00:11 +01:00
Mark Thompson
07a844f32e lavfi: generic hardware surface upload and download filters
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-03-19 15:41:04 +01:00
Mark Thompson
551c6775ab lavu: VAAPI hwcontext implementation
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-03-19 15:40:22 +01:00
Mark Thompson
d264c720f7 lavu: deprecate AV_PIX_FMT_VAAPI_*, replace with AV_PIX_FMT_VAAPI
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-03-19 15:40:22 +01:00
Mark Thompson
b1f01e85a9 lavu: add a way to query hwcontext frame constraints
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-03-19 15:38:00 +01:00
Michael Niedermayer
48bda6c5f7 avfilter/vf_detelecine: Remove redundant declaration
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-19 12:26:14 +01:00
Mark Thompson
fbec157ea0 lavc/hevc: Allow arbitrary garbage in bytestream as long as at least one NAL unit is found.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-19 12:25:24 +01:00
Benjamin Steffes
c411e90bc3 Fix start_frame handling in detelecine filter
Signed-off-by: Benjamin Steffes <benjaminst123@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-19 03:58:47 +01:00
Benjamin Steffes
be482e5165 Fix detelecine filter for patterns containing 1
Signed-off-by: Benjamin Steffes <benjaminst123@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-19 03:58:47 +01:00
Clément Bœsch
7af3f27008 lavf/srtdec: do not be strict wrt timing digit lengths
Fixes a sample with 3-length digits for the seconds reported by wm4.
2016-03-18 16:42:07 +01:00
Ganesh Ajjanagadde
bccc81dfa0 lavc/aacenc_utils: replace powf(x,y) by expf(logf(x), y)
This is ~2x faster for y not an integer on Haswell+GCC, and should
generally be faster due to the fact that anyway powf essentially does
this under the hood. Made an inline function in lavu/internal.h for this
purpose.

Note that there are some accuracy differences, that should generally be
negligible. In particular, FATE still passes on this platform.

Results in ~ 7% speedup in aac encoding with -march=native, Haswell+GCC.
before:
ffmpeg -i sin.flac -acodec aac -y sin_new.aac  6.05s user 0.06s system 104% cpu 5.821 total

after:
ffmpeg -i sin.flac -acodec aac -y sin_new.aac  5.67s user 0.03s system 105% cpu 5.416 total

This is also faster than an alternative approach that pulls in powf, gets rid of
the crufty NaN checks and other special cases, exploits knowledge about the intervals, etc.
This of course does not exclude smarter approaches; just suggests that
there would need to be significant work on this front of lower utility than
searches for hotspots elsewhere.

Reviewed-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanag@gmail.com>
2016-03-18 07:47:25 -07:00
Rostislav Pehlivanov
d6e76dd132 vc2enc_dwt: remove outdated comment
Support for Haar was added a month or so ago.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-03-18 14:42:33 +00:00
Mats Peterson
d8a1633ee4 lavf/avidec: Add blurb regarding the skipping of xxpc entries in the index
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-18 13:47:43 +01:00
Rostislav Pehlivanov
f4b30beac0 vc2enc: increase the starting value of the size scaler
In some cases this caused the slice size rounding to generate invalid
slice sizes and overwrite some slices.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-03-18 11:55:48 +00:00
Paul B Mahol
93c6c52ad7 avfilter/vf_waveform: add subsampled input support for (a)color filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-18 11:08:32 +01:00
Michael Niedermayer
a7b8a6e704 avcodec/error_resilience: remove unneeded and disabled code
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-18 03:11:16 +01:00
Michael Niedermayer
5694b28211 avcodec/error_resilience: wait for previous frame to be available
This is possibly redundant but its more correct

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-18 03:10:16 +01:00
James Almer
488e6409df libwebpenc_animencoder: add missing braces to struct initialization
The first member of the WebPAnimEncoderOptions struct is non scalar

Signed-off-by: James Almer <jamrial@gmail.com>
2016-03-17 21:46:06 -03:00
Michael Niedermayer
83df0a84a9 avcodec/motion_est_template: Fix map cache use in qpel_motion_search()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-17 16:59:37 +01:00
Michael Niedermayer
7660c135a3 avformat/segment: Fix "occured" typo
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-17 16:50:15 +01:00
James Almer
f875ba4873 libwebpenc_animencoder: print library messages in verbose log levels
Reviewed-by: James Zern <jzern@google.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-03-17 11:15:09 -03:00
James Almer
626b6b769c libwebpenc_animencoder: zero initialize the WebPAnimEncoderOptions struct
This zeroes the WebPAnimEncoderOptions.verbose field, silencing library info messages
printed to stderr.

Reviewed-by: James Zern <jzern@google.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-03-17 11:13:59 -03:00
Michael Niedermayer
6b7ce0ea0d avformat/avio: Fix unknown protocol handling
Fixes regression since bb8cc89b2986df6f60831b67cd250da312cce1d0

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-17 02:09:39 +01:00
Benjamin Steffes
06267afe1c Fix detelecine filter for patterns like 3444 or 33333334.
Signed-off-by: Benjamin Steffes <benjaminst123@gmail.com>
Signed-off-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
2016-03-16 19:58:14 +01:00
Michael Niedermayer
50ef7361cb avcodec/resample: Remove disabled and faulty code
Fixes Ticket5345

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-16 19:52:01 +01:00
Hendrik Leppkes
7d9e064cc1 configure: check for SEC_I_CONTEXT_EXPIRED before enabling SChannel
Fixes build on mingw32, which lacks this constant.
2016-03-16 15:31:21 +01:00
Hendrik Leppkes
c198295ded dxva2_h264: fix size alignment asserts
Convert them to av_assert0 in the process
2016-03-16 13:14:24 +01:00
Luca Barbato
1098f5c049 svq3: Use a separate buffer for decoding the slices
The AVPacket.data should be considered read-only.
2016-03-16 13:09:23 +01:00
Hendrik Leppkes
c43d485811 matroskaenc: set the actual PCM bitdepth in the header
The actual bitdepth can be different to the storage format (ie. sample format).
Fixes the stored bitdepth for 24-bit formats like FLAC.
2016-03-16 12:52:35 +01:00
Matt Oliver
109dfed7fc lavc/dxva2_h264: Fix incorrect assert statement.
Signed-off-by: Matt Oliver <protogonoi@gmail.com>
2016-03-16 22:30:56 +11:00
Luca Barbato
73f3c8f73e indeo2: Fix banding artefacts
Rename luma table to delta table and change how it is used.

CC: libav-stable@libav.org
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
(cherry picked from commit f8c34f4b8d62afad3f63cf3d9617d73735bef8c1)
2016-03-16 11:32:51 +01:00
Luca Barbato
522ab0b9a9 indeo2data: K&R formatting cosmetics
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
(cherry picked from commit d4066a702407352a0648af882c34ea81a404fa2b)
2016-03-16 11:32:49 +01:00
Hendrik Leppkes
eae2d89bf7 hls: handle crypto in the protocol checks
Fixes issue 5248
2016-03-16 10:31:41 +01:00
Hendrik Leppkes
0d4b8a2c16 hls: read protocol options through the AVIOContext
This reverts commit 9f9ed79d4cb40e5d9093899f8a79086ff23da844.

The hlsopts member was never set anywhere and always NULL, furthermore
the HLS demuxer needs to retrieve the proper options from the underlying
http protocol (cookies, user-agent, etc), so a dummy context won't help.

Instead, use the AVIOContext directly to access the options.
2016-03-16 10:31:36 +01:00
İsmail Dönmez
fa3eecf9ab configure: Use lowercase includes/library names for schannel check.
Fixes cross-build on Linux with mingw-w64.

Reviewed-by: Reimar Döffinger
Reviewed-by: Hendrik Leppkes
2016-03-16 09:20:39 +01:00
Thomas Mundt
d0a9114f99 avfilter/vf_bwdif: Add yadif base information to copyright header
Signed-off-by: Thomas Mundt <loudmax@yahoo.de>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-03-16 00:05:45 -03:00
Sean McGovern
2f4a1bb9bf cmdutils: update copyright year to 2016
CC: libav-stable@libav.org

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-03-15 20:32:27 +01:00
Stefano Sabatini
7725210e71 lavf/segment: change type of increment_tc to BOOL 2016-03-15 17:50:00 +01:00
Martin Vignali
69638517d1 lavf/segment: add increment_tc option
For example you can split a file, keeping a continuous timecode between
each segment:
ffmpeg -i src.mov -timecode 10:00:00:00 -vcodec copy -f segment \
-segment_time 2 -reset_timestamps 1 -increment_tc 1 target_%03d.mov

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2016-03-15 17:44:13 +01:00
Luca Barbato
8b4b1c1eea matroska: Support V_QUICKTIME as written in the specification
Check if the size is written the first 4 bytes and read the next 4
as fourcc candidate, fallback checking the initial for 4 bytes.

"The CodecPrivate contains all additional data that is stored in the
'stsd' (sample description) atom in the QuickTime file after the
mandatory video descriptor structure (starting with the size and FourCC
fields)"

CC: libav-stable@libav.org
2016-03-15 16:06:35 +01:00
Luca Barbato
92c1a83ee9 qsv: Fix loading multiple plugins
av_get_token does not strip the trailing separator.
2016-03-15 16:05:19 +01:00
Michael Niedermayer
7eedad946c avcodec/mediacodec_sw_buffer: remove redundant article
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-15 15:11:57 +01:00
Matthieu Bouron
03a6ed83b0 lavc/mediacodec: remove stray empty lines 2016-03-15 10:33:16 +01:00
Matthieu Bouron
31fe3c4d23 lavc/mediacodec: fix codec_name leak 2016-03-15 10:30:51 +01:00
Paul B Mahol
a68d4bf235 avfilter/vf_waveform: add forgotten color and acolor filter to switch case
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-15 09:16:18 +01:00
Marton Balint
c3c7a879ba avutil/dict: add warning to docs about invalidating existing entries when adding a new entry
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-03-15 00:55:16 +01:00
Marton Balint
a740263d7e avutil/dict: do not realloc entries when deleting a non-existing item
Deleting a non-existing item should not invalidate existing entries returned
with av_dict_get.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-03-15 00:55:16 +01:00
Michael Niedermayer
652173f63f avcodec/pthread_frame: Remove unused variable
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-15 00:51:58 +01:00
Marton Balint
67bef4cffa avcodec/aactab: do not use floats for constants
This may improve the precision of the fixed point encoder/decoder for some
compilers and architectures.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-03-15 00:47:38 +01:00
Paul B Mahol
af5559ab67 avfilter/vf_waveform: add graticule for chroma and flat filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-14 23:12:43 +01:00
Michael Niedermayer
c34250178b avfilter/af_sofalizer: Fix "warning: ISO C90 forbids mixed declarations and code"
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-14 22:40:38 +01:00
Carl Eugen Hoyos
f1a3677c0f lavf/mxfdec: Fix Canopus essence element size. 2016-03-14 16:37:48 +01:00
Carl Eugen Hoyos
58fa694978 lavf/http: Add httpproxy to the default protocol whitelist. 2016-03-14 16:33:57 +01:00
Hendrik Leppkes
a38627be6d avcodec/cbrt_data: include avutil/libm.h to unbreak compilation on systems without cbrt 2016-03-14 15:49:34 +01:00
Paul B Mahol
29d106e751 avfilter/vf_waveform: remove mirroring from chroma filter
It is not really useful.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-14 13:25:10 +01:00
Paul B Mahol
9f6e63f6f2 avfilter/vf_waveform: add >8 bit support for other filters
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-14 13:25:10 +01:00
Matthieu Bouron
33d69a9008 lavc/ffjni: remove use of private JniInvocation API to retreive the Java VM
Android N will prevent users from loading non-public APIs.

Users should only rely on the av_jni_set_java_vm function to set the
Java VM.
2016-03-14 10:05:33 +01:00
Paul B Mahol
370cecc1e8 avfilter/vf_vectorscope: less aggressive memory allocation
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-13 20:07:18 +01:00
Paul B Mahol
55c872146d avfilter/vf_vectorscope: process alpha at end
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-13 19:54:25 +01:00
Paul B Mahol
8097455929 avfilter/vf_vectorscope: copy frame props, mainly for bench filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-13 19:23:44 +01:00
Reimar Döffinger
7c93f2c0b9 Move cbrt tables to separate cbrt_data(_fixed).c files.
Allows sharing and reusing the data between different files.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2016-03-13 18:15:57 +01:00
Ganesh Ajjanagadde
0c33ceda91 lavu/lfg-test: add simple sample mean, stddev checks
Also added a TODO to change to a proper normality test in the future.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanag@gmail.com>
2016-03-13 12:41:36 -04:00
Mats Peterson
bdc798cc8d lavf/avienc: Clear whole tag in avi_add_ientry()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-13 16:26:39 +01:00
Mats Peterson
77bc3e1944 lavf/avienc: Add xxpc entries to index
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-13 16:06:09 +01:00
Mats Peterson
9ee5b40964 avformat/avienc: factor out avi_add_ientry()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-13 16:06:09 +01:00
Carl Eugen Hoyos
4405ff2cae lavc/hevc_ps: Fix default display window offsets for yuv422 and yuv444. 2016-03-13 13:15:17 +01:00
Mats Peterson
ed5d295a69 lavf/riffenc: Improve spec compliance; Fix WMP playback of AVI with xxpc chunks
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-13 13:12:13 +01:00
Mats Peterson
f680c8e41a tests/ref/vsynth: Remove unused file
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-13 13:12:12 +01:00
Paul B Mahol
912fec3e54 avfilter/vf_waveform: add acolor filter
Useful in combination with color filter.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-13 11:24:39 +01:00
Thomas Mundt
5024a82e95 avfilter/vf_bwdif: add x86 SIMD
Signed-off-by: Thomas Mundt <loudmax@yahoo.de>
2016-03-13 10:06:21 +01:00
Carl Eugen Hoyos
d11d78facb lavc/libx265: Support GBR encoding. 2016-03-13 09:40:09 +01:00
Carl Eugen Hoyos
db4786f1cf lavc/hevc_ps: Support GBR decoding. 2016-03-13 09:33:38 +01:00
Michael Niedermayer
58cb1fb1fe avfilter/vf_decimate: Use the correct frame in difference calculation
Fixes Ticket4964

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-13 00:38:54 +01:00
Michael Niedermayer
52e7f6b17e Revert "avfilter/vf_decimate: Check that input parameters match"
ill commit a better solution

This reverts commit 30fe3fd52721c8c6566001192cd16be423ffc92b.
2016-03-13 00:38:54 +01:00
Paul B Mahol
4a7c705fde avfilter/vf_vectorscope: make it possible to override colorspace
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-13 00:17:29 +01:00
Paul B Mahol
a61cd42c8d avfilter/smptebars: fix some 75% color values
They where slightly off.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-12 23:52:14 +01:00
James Almer
6224dddaa7 fate: add missing dependencies for fate-h264-dts_5frames
Signed-off-by: James Almer <jamrial@gmail.com>
2016-03-12 19:14:35 -03:00
James Almer
e71096bb3a fate: add missing h264-dts_5frames ref file
Signed-off-by: James Almer <jamrial@gmail.com>
2016-03-12 19:06:30 -03:00
Adam Kent
77e355ffb1 avformat/hlsenc: Add support for HLS PLAYLIST types EVENT and VOD
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-12 22:22:08 +01:00
Michael Niedermayer
4aea2c7d89 fate: Add ffprobe dependancy to fate-h264-dts_5frames
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-12 15:37:25 +01:00
Sasi Inguva
6fa5c8235b fate: add test for "Fix DTS for short H264 streams"
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-12 15:26:26 +01:00
Sasi Inguva
895dd09671 lavf/utils: Fix DTS for short H264 streams.
Fill DTS if all packets have been read in avformat_find_stream_info, and still
has_decode_delay_been_guessed returns false.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-12 14:48:07 +01:00
Sasi Inguva
e939dde48d avformat/utils: factor update_dts_from_pts() out
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-12 14:47:43 +01:00
Michael Niedermayer
9d4ab1380a Use avpriv_tempfile()
Should fix xvid/cache on windows with --enable-shared

May be related to Ticket 4780

Tested-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-12 02:08:45 +01:00
Michael Niedermayer
b4f59beeb4 avutil/file: Move av_tempfile() to avutil/file_open ff_tempfile()
document the issue with av_tempfile()

Tested-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-12 02:08:34 +01:00
Umair Khan
5d64ba9d18 avcodec/alsdec: fix max bits in ltp prefix code
The maximum number of bits int the prefix code for
p(0) is 4. By setting it as 3, we were missing the
last 0 bit.
This fixes bug #4715 present on the trac.

Signed-off-by: Umair Khan <omerjerk@gmail.com>
Reviewed-by: Thilo Borgmann <thilo.borgmann@mail.de>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-12 01:56:58 +01:00
Shivraj Patil
15ef98afd1 configure: build fix for P5600 along option --disable-msa
Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-11 23:57:06 +01:00
Paul B Mahol
817d0c6da2 avfilter/vf_waveform: add parade display mode
Rename old parade display mode to stacked.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-11 23:08:38 +01:00
Ronald S. Bultje
b86339a9f8 vp9: fix a few signed integer left-shifts.
Fixes trac tickets 5127, 5129, 5130.
2016-03-11 16:06:29 -05:00
Ronald S. Bultje
abedde65d1 vp9_superframe: fix endianness of size markers. 2016-03-11 14:23:46 -05:00
Ronald S. Bultje
2e6636aa87 vp9: add superframe merging bitstream filter.
Fixes ticket 4313.
2016-03-11 11:19:14 -05:00
Ronald S. Bultje
6d8ab358a3 lavf: allow BSFs to drop packets.
If pkt->size == 0 && pkt->side_data_elems == 0 after bsf->filter()
returns, the packet is considered dropped.
2016-03-11 11:19:10 -05:00
Luca Barbato
7e01d48cfd mov: Check the entries value when parsing dref boxes
And properly reset the entries count when resetting the entries.

CC: libav-stable@libav.org

Bug-Id: 929
Bug-Id: CVE-2016-3062
2016-03-11 14:29:13 +01:00
Paul B Mahol
867637caea avfilter/vf_waveform: fix and extend millivolts grat lines
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-11 10:24:51 +01:00
Paul B Mahol
119c108b31 avfilter/vf_waveform: fix ire8 for 25%
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-11 09:51:12 +01:00
Ganesh Ajjanagadde
66edd8656b lavc/lpc: exploit even symmetry of window function
Yields 2x improvement in function performance, and boosts aac encoding
speed by ~ 4% overall. Sample benchmark (Haswell+GCC under -march=native):
after:
ffmpeg -i sin.flac -acodec aac -y sin_new.aac  5.22s user 0.03s system 105% cpu 4.970 total

before:
ffmpeg -i sin.flac -acodec aac -y sin_new.aac  5.40s user 0.05s system 105% cpu 5.162 total

Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanag@gmail.com>
2016-03-10 21:29:56 -05:00
Michael Niedermayer
b2ab3398f5 avformat/hlsenc: Fix passing options, regression since bc9a5965c815cf7fd998d8ce14a18b8e861dd9ce
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-11 00:45:28 +01:00
Paul B Mahol
1a5895757d avfilter/vf_waveform: fix indentation
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-11 00:15:53 +01:00
Paul B Mahol
681f833610 avfilter/vf_waveform add support for other scalers for graticule
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-11 00:09:57 +01:00
Michael Niedermayer
2540d884f3 avutil/random_seed: Add the runtime in cycles of the main loop to the entropy pool
This should theoretically improve the randomness slightly

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-10 22:56:37 +01:00
Martin Cracauer
73d1398f0c avutil/channel_layout: AV_CH_LAYOUT_6POINT1_BACK not reachable in parsing
Trying to make heads and tails out of DTS 6.1 I can across this typo.

I also noticed that this wiki page is incorrect or misleading, the
channel order for 6.1 given does not match the source code.  At the
least it should be clarified that the layout given does not apply to
DTS.  https://trac.ffmpeg.org/wiki/AudioChannelManipulation

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-10 21:24:25 +01:00
Carl Eugen Hoyos
bd2cc3c42c lavf/movenc: Fix help output.
Fixes ticket #5323.
2016-03-10 18:42:27 +01:00
Matthieu Bouron
8d0a218058 lavc/ffjni: fix uninitialized variable 2016-03-10 18:17:28 +01:00
Carl Eugen Hoyos
ac1974652b lavf/mxfdec: Support Canopus codecs.
Fixes ticket #5316.
2016-03-10 09:59:35 +01:00
Carl Eugen Hoyos
cb3f99e4d3 version.sh: Fix spurious rebuilds.
Regression since 104f8ea8.
2016-03-10 09:53:10 +01:00
Michael Niedermayer
689211d572 avformat/concatdec: set safe mode to enabled instead of auto
This is safer, as a selected demuxer could still mean that it was auto-detected
by a user application

Reviewed-previously-by: Nicolas George <george@nsup.org>
Reviewed-previously-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-10 02:54:59 +01:00
Mats Peterson
caeed0479f lavf/avidec: Skip xxpc entries in index; fixes trac #5311
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-10 00:30:39 +01:00
NagaChaitanya Vellanki
285fda0937 Add tests for functions in hash.c
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-09 20:05:29 +01:00
Vicente Olivert Riera
ad16eff64b mips: add support for R6
Understanding the mips32r6 and mips64r6 ISAs in the configure script is
not enough. In order to have full support for MIPS R6 in FFmpeg we need
to be able to build it, and for that we need to make sure we don't use
incompatible assembler code which makes the build fail. Ifdefing the
offending code is sufficient to fix the problem.

Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-09 20:05:04 +01:00
Carl Eugen Hoyos
a62d768894 configure: Check for msghdr struct.
Some (Solaris) systems apparently have an incompatible msghdr struct
breaking sctp protocol compilation.

Reported-by: mvelanka
2016-03-09 14:17:46 +01:00
Carl Eugen Hoyos
fb9036b314 lavf/mpeg: Identify sub-stream ID 0xa1 as mlp.
Fixes ticket #4786.
Auto-detection seems difficult, patch mostly confirmed by
http://dvd-audio.sourceforge.net/spec/aob.shtml
2016-03-09 14:12:18 +01:00
Carl Eugen Hoyos
260c12cdd1 lavc/mjpegdec: Set sar for multiscope videos.
Fixes decoding of the files from ticket #4535 visually.
2016-03-09 14:06:40 +01:00
Carl Eugen Hoyos
a6a52ef29a lavc/hevc_ps: Fix offset for yuv422 and yuv444.
Fixes ticket #4980.
Analyzed-by: kurosu and Hendrik
Reviewed-by: Ronald
2016-03-09 14:00:57 +01:00
Carl Eugen Hoyos
144ef773c7 Use correct msvc type specifiers for ptrdiff_t and size_t. 2016-03-09 14:00:22 +01:00
Paul B Mahol
953b8c5a43 avfilter/vf_waveform: use intensity for other components too
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-09 11:51:20 +01:00
Michael Niedermayer
a008a7cc95 avcodec/ffjni: Fix occured typo
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-09 04:28:37 +01:00
Michael Niedermayer
89862cd734 avcodec/ffjni: Fix ;;
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-09 04:28:37 +01:00
Reimar Döffinger
b60dfae7af aacenc_utils: Use temporary variable.
This ensures gcc does not create unnecessary
loads or stores and possibly even does not vectorize
the negation.
Speeds up mp3 to aac transcoding with default settings
by 10% when using "gcc (Debian 5.3.1-10) 5.3.1 20160224".

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2016-03-08 23:56:51 +01:00
Reimar Döffinger
b91e376390 aacenc: use generational cache instead of resetting.
Approximately 11% faster transcoding from mp3 with
default settings.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2016-03-08 23:56:51 +01:00
Paul B Mahol
b3e0371818 avfilter/vf_waveform: make it possible to draw dots instead of lines
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-08 23:14:57 +01:00
Paul B Mahol
209cff2d9c avfilter/vf_waveform: make sure that x/y for text position is positive
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-08 22:04:57 +01:00
Shivraj Patil
8ca2c872b6 configure: build fix for P5600 with mips code restructuring
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-08 17:36:46 +01:00
Shivraj Patil
b59d06d5f4 configure: add check_inline_asm_flags()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-08 17:36:46 +01:00
Moritz Barsnick
8a90e0fd21 lavf/mp3dec: avoid printing useless message in default log level
"Skipping 0 bytes of junk" is useless to the user, and essentially
indicates a NOP. At 0 bytes, this message is now pushed back to
the verbose log level.

Signed-off-by: Moritz Barsnick <barsnick@gmx.net>
2016-03-08 17:02:32 +01:00
Moritz Barsnick
72babb8566 lavc/mjpegdec: avoid printing useless message in default log level
The change of bps from 0 doesn't contain any info useful to the
user. This message is now at info log level only if the original
value is !=0, otherwise pushed back to debug log level. The
original value is displayed additionally.

Signed-off-by: Moritz Barsnick <barsnick@gmx.net>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-08 16:42:34 +01:00
Mats Peterson
e1aa88dc09 lavf/avienc: Palette changing code only concerns AV_PIX_FMT_PAL8
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-08 15:33:17 +01:00
Muhammad Faiz
fd0c9789cf avfilter/avf_showcqt: add performance debugging log
for easier development

Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
2016-03-08 20:50:26 +07:00
Paul B Mahol
f78ef2d885 avfilter/vf_vectorscope: short for Magenta is Mg
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-08 12:12:29 +01:00
Lior Mualem
baec6d8aff ffserver: Fixed ffserver to support large ffm files
ffm_read_write_index returns a 64bit value,

Github: Closes #185
2016-03-08 11:39:29 +01:00
Timo Rothenpieler
f2bdf9d26a avcodec/nvenc: Fix typo and preset error message 2016-03-08 11:18:16 +01:00
Lucas Cooper
fd55470c65 avcodec/nvenc: Add encoder stats
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-03-08 10:41:07 +01:00
Michael Niedermayer
50615791ca fate: Add test similar to ticket 1242
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-08 03:32:21 +01:00
Michael Niedermayer
de1de49324 avformat/utils: fix dts from pts code in compute_pkt_fields() during ascending delay
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-08 02:56:33 +01:00
Carl Eugen Hoyos
51bcc0bf38 lavf/riff: Add fourcc GTM4 from Telefactor digital audio for ASP. 2016-03-07 23:57:14 +01:00
Michael Niedermayer
da904faaa5 avcodec: try to document timebase a bit more
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-07 23:00:50 +01:00
Paul B Mahol
f20cdcbc05 avfilter/vf_vectorscope: draw color points names
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-07 22:38:13 +01:00
Clément Bœsch
2b7a61cbd8 lavc/utils: fix extra ASS sanity check in convert_sub_to_old_ass_form() 2016-03-07 21:48:55 +01:00
Luca Barbato
59b9d2f684 configure: Add support for clang llvm-cov 2016-03-07 16:59:00 +01:00
Luca Barbato
c11a858626 configure: Support msan as toolchain 2016-03-07 16:59:00 +01:00
Matthieu Bouron
8c24523cc5 lavc/mediacodec: fix chroma width for yuv420p 2016-03-07 14:41:55 +01:00
Anton Khirnov
328e9a15c5 buffer: drop a reference to a non-existing function from the docs
This function only ever existed in the draft versions of the API.
2016-03-07 13:57:10 +01:00
Anton Khirnov
7480d00131 pixfmt: fix the AV_PIX_FMT_VAAPI_VLD doxy 2016-03-07 13:57:02 +01:00
Paul B Mahol
f659b70eb0 avfilter/vf_waveform: draw graticule for color filter too
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-07 13:27:41 +01:00
Clément Bœsch
920f592b81 lavf/vplayerdec: support time durations with no ms specified
Example found in the wild:

0:00:03:25.000
0:01:47:A legend is sung
0:01:50:Of when England was young
0:01:53:And knights|were brave and bold
0:01:59:The good king had died

Reported-by: wm4
2016-03-07 12:52:11 +01:00
Matthieu Bouron
81f14884b5 lavc/mjpegdec: avoid unneeded allocation if the frame is to be skipped 2016-03-07 12:36:23 +01:00
Carl Eugen Hoyos
bba9bed3f3 lavfi/extractplanes: Add RGB0 and friends as supported pix_fmts. 2016-03-07 12:05:42 +01:00
Carl Eugen Hoyos
0ba844a053 lavfi/extractplanes: Fix in_pixfmts.
If the original pix_fmt was >8 bit and not supported by the filter,
the filter system could choose a pix_fmt with different endianness
as input for extractplanes which broke the output because the output
always used the endianness of the original pix_fmt.
2016-03-07 11:59:36 +01:00
Carl Eugen Hoyos
b872b98bb4 lavfi/extractplanes: Move endianness calculation up.
Needed for next commit.
2016-03-07 11:54:37 +01:00
Matthieu Bouron
4737fe6907 lavc: add h264 mediacodec decoder 2016-03-07 11:28:29 +01:00
Matthieu Bouron
3ab178516e lavc: add JNI support 2016-03-07 11:17:31 +01:00
Zhao Zhili
6f5048f4a0 rtp: Fix play multiple multicast streams with the same port
We cannot play multiple multicast streams with the same port at the
same time. This is because both rtp and rtcp port are opened in
read-write mode, so they will not bind to the multicast address. Try
to make rtp port as read-only by default to solve this bug.

Signed-off-by: Zhao Zhili <wantlamy@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-07 02:29:41 +01:00
Raymond Hilseth
86db71b402 avformat/ftp: Support response code 125 for STOR and RETR commands
This fixes a problem where ffmpeg would hang if there is already an open
data connection, and the server sends a 125 response code in reply to a
STOR or RETR command.

Signed-off-by: Raymond Hilseth <rhi@vizrt.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-07 02:13:13 +01:00
Carl Eugen Hoyos
e356487fda lavf/img2dec: Use jpeg constants in jpeg_probe(). 2016-03-06 22:28:22 +01:00
Carl Eugen Hoyos
aebfbe5c13 lavf/riffdec: Remove \n from avpriv_report_missing_feature().
Found-by: Clément Bœsch
2016-03-06 21:39:57 +01:00
Carl Eugen Hoyos
59793785f4 lavc/cfhd: Remove one more \n from avpriv_report_missing_feature(). 2016-03-06 21:38:41 +01:00
Carl Eugen Hoyos
719276b860 lavc/cfhd: Sanitize avpriv_report_missing_feature() usage. 2016-03-06 21:22:47 +01:00
Boris Nagels
1109ed7973 avformat/rtpenc: Fix integer overflow in NTP_TO_RTP_FORMAT
RTCP synchronization packet was broken since commit in ffmpeg version > 2.8.3
(commit: e04b039b1528f4c7df5c2b93865651bfea168a19) Since this commit (2e814d0329aded98c811d0502839618f08642685)
"rtpenc: Simplify code by introducing a macro for rescaling NTP timestamps", NTP_TO_RTP_FORMAT
uses av_rescale_rnd() function to add the data to the packet.

This causes an overflow in the av_rescale_rnd() function and it will return INT64_MIN.
Causing the NTP stamp in the RTCP packet to have an invalid value.

Github: Closes #182

Reverting commit '2e814d0329aded98c811d0502839618f08642685' solves the problem.
2016-03-06 21:19:18 +01:00
Paul B Mahol
6e19120ea2 avfilter/vf_vectorscope: add 12bit depth support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-06 20:29:23 +01:00
Paul B Mahol
02f8421546 avfilter/vf_histogram: add 12bit depth support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-06 19:55:02 +01:00
foo86
db44b59980 avcodec/dca: clear X96 channels if nothing was decoded
The first X96 channel set can have more channels than core, causing X96
decoding to be skipped. Clear the number of decoded X96 channels to zero
in this rudimentary case.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-06 18:24:20 +01:00
erankor
dd34e89f31 mov - support seek in encrypted mp4
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-06 17:29:32 +01:00
Paul B Mahol
23d8b79a18 avfilter/vf_waveform: add text to graticule
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-06 16:48:05 +01:00
Paul B Mahol
5451be50a8 avfilter/vf_waveform: use nonsubsampled yuv output format for lowpass filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-06 16:48:05 +01:00
Kieran Kunhya
247fe3e494 avcodec/cfhd: Fixes cfhd_odd.mov which has a resolution of 496x241
In this case container width/height is better however.
Thanks to koda for the sample
2016-03-06 12:38:07 +00:00
Umair Khan
7d6c264e02 avcodec/alsdec: treat quant_cof as a signed value
Signed-off-by: Umair Khan <omerjerk@gmail.com>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-06 13:11:29 +01:00
Reimar Döffinger
5f5e6033cd bitstream.c: improve init_vlc error messages.
Makes it far easier to spot the issue if e.g.
caused by a typo in the code table.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2016-03-06 12:31:40 +01:00
Michael Niedermayer
40aeff5f02 avformat/avienc: Remove unneeded seekable tests
Reviewed-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-06 12:21:02 +01:00
Reimar Döffinger
0a04c2885f aacenc: avoid double in quantize_bands.
I cannot see any point whatsoever to use
double here instead of float, the results
are likely identical in all cases..
Using float allows for much more
efficient use of SIMD.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2016-03-06 11:49:19 +01:00
Muhammad Faiz
7dd60a0b54 avfilter/avf_showcqt: remove CoeffsType
seems not useful

Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
2016-03-06 16:36:37 +07:00
Mark Harris
238ddd6482 avformat/dump: Fix context/level for payload dump
Use the context and level specified to av_pkt_dump_log2(),
instead of panic level (0), for dumping packet payload.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-06 03:32:04 +01:00
Michael Niedermayer
c78a726717 fate/aac: Increase fuzz from of fate-aac-pns-encode from 72 to 74 for Loongson
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-05 22:38:14 +01:00
Paul B Mahol
361e48f0ed avfilter/vf_waveform: add graticule support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-05 22:33:01 +01:00
Paul B Mahol
f3c00be2a3 avfilter/vf_waveform: only use available components
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-05 20:22:35 +01:00
Michael Niedermayer
e0f5f9267a avformat/avienc: assert that bits_per_coded_sample is within the supported range (out of array access otherwise)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-05 18:18:07 +01:00
Michael Niedermayer
76019f5fed fate: Add pal8 copy test for avi
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-05 18:05:47 +01:00
Mats Peterson
2df0bbaca5 lavf/avienc: Add support for palette side data
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-05 18:05:47 +01:00
Mats Peterson
698fdc8547 lavf/riffenc: Handle palette for non-raw codecs
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-05 18:05:47 +01:00
Luca Barbato
39a2d3288e mpegvideo: Refactor emulated_edge_mc calls 2016-03-05 08:26:36 -05:00
Luca Barbato
0242351390 mpegvideo: Fix undefined negative shifts in mpeg_motion_internal
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-03-05 08:26:36 -05:00
Luca Barbato
7d4a1ff344 mpegvideo: Fix undefined negative shifts in ff_init_block_index
Found-by: gcc5-ubsan.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-03-05 08:26:36 -05:00
Katerina Barone-Adesi
1389b4c18d idct8x8: Fix undefined negative shifts
The original code left-shifts negative values, which is undefined
in the C99 specification (the one used during normal Libav compilation).
This change multiplies by (1 << shift), which is functionally equivalent,
but has defined behavior.

With this change, fate-idct8x8 compiled with --fsanitize=undefined works.

Bug-Id: 686
2016-03-05 08:26:36 -05:00
Vittorio Giovara
e10b7ef2fe vdpau: Add missing deprecation guards 2016-03-05 08:23:18 -05:00
Vittorio Giovara
d40cb726d2 mov: Trim dref absolute path
Samples produced by Omneon (Harmonic) store external references with
paths ending with 0s. Such movs cannot be loaded properly since every
0 is converted to '/', to keep the same parsing code for dref type 2
and type 18: this makes the external reference point to a non-existing
direactory, rather than to the actual referenced file.

Add a brief trimming loop that drops all ending 0s before trying to
parse the external reference path.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-03-05 08:23:18 -05:00
Clément Bœsch
0443b2cf79 lavc: restore ABI compatibility with 3.x (sub_text_format)
Regression introduced in 2941282.

Reported-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-05 10:15:35 +01:00
wm4
0b6e5d6b32 avconv: remove sub-frame warning
It's not practical to keep this with the new decode API.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-03-05 09:10:10 +01:00
wm4
2e2f8534eb lavc: factor apply_param_change() AV_EF_EXPLODE handling
Remove the duplicated code for handling failure of apply_param_change().

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-03-05 09:04:03 +01:00
wm4
7a6cf27714 lavu: improve documentation of some AVFrame functions
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-03-05 09:03:28 +01:00
Anton Khirnov
84b5dcf275 asfenc: remove an unused variable 2016-03-05 08:45:01 +01:00
Anton Khirnov
ff3db937ef asfenc: fix some possible integer overflows
Store the file duration in the same timebase it arrives (i.e.
milliseconds) and only convert it to the file duration units (100ns)
when it's actually written, thus simplifying some calculations. Also,
store the duration as unsigned, since it cannot be negative.

CC: libav-stable@libav.org
Bug-ID: CVE-2016-2326
2016-03-05 08:43:04 +01:00
James Almer
a3659ca014 avcodec/cos_tablegen: extend table generation to 17bits
Fixes compilation of fft with hardcoded tables

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-03-05 00:39:53 -03:00
Michael Niedermayer
b3dc51dd57 avfilter/f_bench: Fix comparission condition
Fixes: CID1355115

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-05 02:04:57 +01:00
Michael Niedermayer
dec816f92c avcodec/utils: Fix memleak on error in convert_sub_to_old_ass_form()
Fixes CID1355116

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-05 01:50:32 +01:00
Rostislav Pehlivanov
c45b1aa824 vc2enc: minor cosmetic changes
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-03-04 22:41:20 +00:00
Rostislav Pehlivanov
f21cf2b383 vc2enc: remove useless alignment on slice encoding
This was a leftover from before the slices were encoded in parallel.
Since the put_bits context is initialized per slice aligning it
aferwards is pointless.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-03-04 22:41:15 +00:00
Rostislav Pehlivanov
b88be742fa vc2enc: do not allocate packet until exact frame size is known
This commit solves most of the crashes and issues with the encoder and
the bitrate setting. Now the encoder will always allocate the absolute
lowest amount of memory regardless of what the bitrate has been set to.
Therefore if a user inputs a very low bitrate the encoder will use the
maximum possible quantization (basically zero out all coefficients),
allocate a packet and encode it. There is no coupling between the
bitrate and the allocation size and so no crashes because the buffer
isn't large enough.

The maximum quantizer was raised to the size of the table now to both
keep the overshoot at ridiculous bitrates low and to improve quality
with higher bit depths (since the coefficients grow larger per transform
quantizing them to the same relative level requires larger quantization
indices).

Since the quantization index start follows the previous quantization
index for that slice, the quantization step was reduced to a static 1
to improve performance. Previously with quant/5 the step was usually
set to 0 upon start (and was later clipped to 1), that isn't a big change.
As the step size increases so does the amount of bits leftover and so
the redistribution algorithm has to iterate more and thus waste more
time.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-03-04 22:40:58 +00:00
Neil Birkbeck
3c658e2655 lavf/dump.c: Print mastering display metadata
Signed-off-by: Neil Birkbeck <neil.birkbeck@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-04 23:11:51 +01:00
Neil Birkbeck
bbda13a771 lavf/matroskadec: Add early support for some of the new colour elements.
Adding early support for a subset of the proposed colour elements
according to the latest version of spec:
https://mailarchive.ietf.org/arch/search/?email_list=cellar&gbt=1&index=hIKLhMdgTMTEwUTeA4ct38h0tmE

I've left out elements for pix_fmt related things as there still
seems to be some discussion around these, and the max_cll/max_fall
are currently not propagated as there is not yet side data for them.

The new elements are exposed under strict experimental mode.

Signed-off-by: Neil Birkbeck <neil.birkbeck@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-04 23:11:51 +01:00
Paul B Mahol
ac15d7a666 avfilter/vf_histogram: explicitly set 10bit output formats
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-04 23:09:41 +01:00
Timo Rothenpieler
95a5fd4581 configure: NVENC API version 6 is now required 2016-03-04 23:03:14 +01:00
Paul B Mahol
f81c81cc3a avfilter/af_afftfilt: add option for 17 fft case
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-04 22:20:12 +01:00
Paul B Mahol
781195fa62 avfilter/af_sofalizer: check if filename was set.
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-04 22:14:43 +01:00
Derek Buitenhuis
fb2f164598 avformat: Fix member name 10L
The wrong member was remove/moved after review of the blacklist API.

10L cola.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-03-04 16:33:10 +00:00
Derek Buitenhuis
61c554bd5f Merge commit '257b30af8ec520c1635092e429606c62d3bcca63'
This commit is a no-op. We already have these, plus our asm differs.

* commit '257b30af8ec520c1635092e429606c62d3bcca63':
  x86: hevc: Fix linking with both yasm and optimizations disabled

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-03-04 16:22:43 +00:00
Derek Buitenhuis
89790ba2bf Merge commit 'cd846b47977485bd4063e77a3324e6b7840567a2'
* commit 'cd846b47977485bd4063e77a3324e6b7840567a2':
  fate: Ignore errors from concatenating report files

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-03-04 16:19:57 +00:00
Derek Buitenhuis
18d8398caf Merge commit '9328adcc8012a1b0e00c465c85b5453589a4f5f7'
* commit '9328adcc8012a1b0e00c465c85b5453589a4f5f7':
  fate: Be silent when fetching Git updates

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-03-04 16:18:32 +00:00
Derek Buitenhuis
a38eadd7e9 Merge commit '5e555f93009f0605db120eec78262d0fe337e645'
AVClass is now a const, the rest are no-op.

* commit '5e555f93009f0605db120eec78262d0fe337e645':
  mpeg12enc: always write closed gops for intra only outputs
  h264: Add an AVClass pointer to H264Context
  libx264: Fix noise_reduction option assignment

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-03-04 16:17:05 +00:00
Derek Buitenhuis
063b26d358 Merge commit 'ec4c48397641dbaf4ae8df36c32aaa5a311a11bf'
This is a no-op. API is already implemented by us.

* commit 'ec4c48397641dbaf4ae8df36c32aaa5a311a11bf':
  lavf: add a protocol whitelist/blacklist for file opened internally

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-03-04 16:14:53 +00:00
Derek Buitenhuis
93629735d7 avformat: Add a protocol blacklisting API
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-03-04 16:13:42 +00:00
Michael Niedermayer
500cb98471 avfilter/af_afftfilt: Extend to 17bit fft
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-04 16:05:47 +01:00
Michael Niedermayer
305344d89e avcodec/fft: Add revtab32 for FFTs with more than 65536 samples
x86 optimizations are used only for the cases they support (<=65536 samples)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-04 16:05:47 +01:00
Michael Niedermayer
ae76b84221 avcodec: Extend fft to size 2^17
Asked-for-by: durandal_1707

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-04 13:51:42 +01:00
Agatha Hu
362e05f1ea avcodec/nvenc: Fix H264 and HEVC vui info update
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-03-04 10:49:33 +01:00
Paul B Mahol
79a54f30c8 avfilter/af_sofalizer: fix crash when ir size is not aligned, usually when n_samples are not power of 2
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-04 10:38:40 +01:00
Anton Khirnov
1ceb07eb31 avformat_find_stream_info: move duration guessing after updating codec parameters
This bitrate might not be known otherwise.

Bug-Id: 926
2016-03-04 08:26:34 +01:00
Michael Niedermayer
2761e250cc fate: add qtrle/mace6 stream copy test
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-04 04:36:27 +01:00
Mats Peterson
5111c1bef3 lavf/movenc: Add support for palette side data
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-04 04:02:27 +01:00
Mats Peterson
ba40b3520d lavf/utils: Normalize AVPacket.data to native endian in ff_get_packet_palette()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-04 04:02:19 +01:00
Paul B Mahol
21234c835d avfilter/af_sofalizer: fix crash with odd IR size
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-03 23:59:58 +01:00
Paul B Mahol
3e491a1fb6 avfilter/af_sofalizer: print size of FFT that failed to init
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-03 23:59:58 +01:00
Michael Niedermayer
966eadeab3 avfilter/vf_ciescope: Fix 'ISO C90 forbids mixed declarations and code'
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-03 21:20:08 +01:00
Michael Niedermayer
fbfd2601f6 avcodec/utils: Fix 'ISO C90 forbids mixed declarations and code'
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-03 21:19:54 +01:00
Michael Niedermayer
9b0eabdcdf avutil/color_utils: Mark test_data as static const
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-03 21:17:45 +01:00
Paul B Mahol
5e9f85925c avfilter/vf_vectorscope: improve green graticule visibility
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-03 21:05:39 +01:00
Paul B Mahol
768734a0ff avfilter/vf_vectorscope: add threshold option
Useful to only display lows/mids/highs.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-03 21:05:39 +01:00
NagaChaitanya Vellanki
df4b5f076e Add test for avpriv_get_trc_function_from_trc function
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-03 21:03:04 +01:00
Derek Buitenhuis
510046c228 Merge commit '8c0ceafb0f25da077ff23e394667119f031574fd'
This commit is a no-p. We already have a mechanism to do this.

* commit '8c0ceafb0f25da077ff23e394667119f031574fd':
  urlprotocol: receive a list of protocols from the caller

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-03-03 16:12:35 +00:00
Michael Niedermayer
ba687ae0bd ffmpeg_vdpau: Free ctx on error path
Fixes CID1355118

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-03 16:41:11 +01:00
Michael Niedermayer
50208a0424 avfilter/vf_ciescope: Fix "incompatible pointer type" warnings
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-03 16:41:11 +01:00
James Almer
0786b28425 fate: fix filter-hls tests dependencies
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-03-03 12:31:28 -03:00
Paul B Mahol
f5f34ee0de avfilter/vf_zscale: unbreak RGB support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-03 13:28:25 +01:00
foo86
00e3717b4a avcodec/dca: simplify condition
Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-03 12:35:21 +01:00
foo86
8981348749 avcodec/dca: fix av_cold placement in declarations
Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-03 12:35:21 +01:00
Paul B Mahol
256fa2ab1b avfilter: add ciescope filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-03 12:26:44 +01:00
Carl Eugen Hoyos
8653d6e1a6 lavfi/drawutils: Add some missing GBRP pix_fmts.
Fixes for example extractplanes with GBRAP16.
2016-03-03 11:15:30 +01:00
Paul B Mahol
dd2ea5cbfb avformat/yuv4mpegdec: fix seeking for partial files
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-03 09:28:15 +01:00
Rodger Combs
ecba35bbe3 lavc/videotoolboxenc: remove *_NULLABLE annotations; fixes pre-10.11 build
These macros were added in OS X 10.11, and the file compiles without warnings
on both 10.10 and 10.11 with them removed.

Thanks to mark4o on IRC for pointing out the failure and testing the patch.
2016-03-02 21:44:28 -06:00
Michael Niedermayer
38cd60c921 fate: add filter-hls 2016-03-03 04:02:32 +01:00
Marton Balint
0418b0253a ffmpeg: remove hardcoded 'now' creation_time support
Every date parsing routine now uses av_parse_time which handles 'now' and
provides greater precision as well. This change also enables the segmenter
muxer to set the proper 'now' creation time at the beginning of each segment.

Signed-off-by: Marton Balint <cus@passwd.hu>
2016-03-03 01:37:22 +01:00
Marton Balint
28fbdece79 avformat: use ff_standardize_creation_time for formats writing all format string metadata
Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-03-03 01:37:18 +01:00
Marton Balint
e7dd97b5d8 avformat/utils: add a function to standardize creation time
This can be used for formats which write all format metadata as string to
files, therefore non-standard creation times such as 'now' will be parsed.

The standardized creation time is UTC ISO 8601 with microsecond precision.

Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-03-03 01:37:12 +01:00
Rick Kern
3af71ac3f9 lavc: add VideoToolbox H.264 Encoder
Autodetected by default. Encode using -codec:v h264_videotoolbox.

Signed-off-by: Rick Kern <kernrj@gmail.com>
Signed-off-by: wm4 <nfxjfg@googlemail.com>
2016-03-02 21:19:35 +01:00
Mats Peterson
2be0366a7f lavf/utils: Add ff_get_packet_palette()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-02 18:11:18 +01:00
Michael Niedermayer
554f6e930c avformat/cache: Fix memleak of tree entries
Found-by: jamrial

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-02 14:27:57 +01:00
Clément Bœsch
24a189e016 fate/api: add missing FLV dependency to fate-api-seek 2016-03-02 13:52:02 +01:00
Paul B Mahol
5afe918336 avfilter/vf_vectorscope: add 9 & 10 bit depth input & output support with alpha
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-02 12:30:30 +01:00
Paul B Mahol
bdf474bcff doc/utils: fix typo for min() description
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-02 11:20:07 +01:00
Paul B Mahol
29c6fd41fc avfilter/vf_vectorscope: make background opacity customizable
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-02 09:40:41 +01:00
Paul B Mahol
a7897bd3a6 avfilter/vf_vectorscope: add graticule
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-02 09:40:41 +01:00
Paul B Mahol
85dd497baa avfilter/vf_vectorscope: avoid crash by explicitly checking for 8-bit depth
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-03-02 09:40:41 +01:00
Ganesh Ajjanagadde
bd9c58756a lavc/aacenc_utils: replace sqrtf(Q*sqrtf(Q)) by precomputed value
It makes no sense whatsoever to do this at each function call; we
already have a table for this.

Yields a 2x improvement in find_min_book (x86-64, Haswell+GCC):
ffmpeg -i sin.flac -acodec aac -y sin.aac
find_min_book
old
    605 decicycles in find_min_book, 8388453 runs,    155 skips.9x
    606 decicycles in find_min_book,16776912 runs,    304 skips.9x
    607 decicycles in find_min_book,33553819 runs,    613 skips.2x
    607 decicycles in find_min_book,67107668 runs,   1196 skips.3x
    607 decicycles in find_min_book,134215360 runs,   2368 skips3x

new
    359 decicycles in find_min_book, 8388552 runs,     56 skips.3x
    360 decicycles in find_min_book,16777112 runs,    104 skips.1x
    361 decicycles in find_min_book,33554218 runs,    214 skips.4x
    361 decicycles in find_min_book,67108381 runs,    483 skips.5x
    361 decicycles in find_min_book,134216725 runs,   1003 skips5x

and more importantly a non-negligible speedup (~ 8%) to overall AAC encoding:
old:
ffmpeg -i sin.flac -acodec aac -strict -2 -y sin_new.aac  6.82s user 0.03s system 104% cpu 6.565 total
new:
ffmpeg -i sin.flac -acodec aac -strict -2 -y sin_old.aac  6.24s user 0.03s system 104% cpu 5.993 total

This also improves accuracy of the expression by ~ 2 ulp in some cases.

Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanag@gmail.com>
2016-03-01 22:57:44 -05:00
Michael Niedermayer
5324882529 fate: add pipe and cache test
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-02 02:12:56 +01:00
Michael Niedermayer
a870aa89bf avformat/seek-test: Support passing options to demuxers and protocols
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-02 02:12:56 +01:00
Carl Eugen Hoyos
2355b7458e lavf/mov: Set display aspect ratio for avid dv.
Fixes ticket #5271.
2016-03-02 02:03:46 +01:00
Diego Biurrun
11843ededa fate: Add separate target for all indeo3 tests 2016-03-01 21:54:10 +01:00
Vittorio Giovara
b39ab8549a fate: Add test for indeo2 with delta frames
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2016-03-01 21:54:08 +01:00
Mark Harris
c3bb6166dd sdp: fix opus sprop-stereo fmtp syntax
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-01 20:52:33 +01:00
Wan-Teh Chang
4845f0720e Move the |die| member of FrameThreadContext to PerThreadContext.
This fixes a data race warning by ThreadSanitizer.
FrameThreadContext.die is read by all the worker threads but is not
protected by any mutex. Move it to PerThreadContext so that each worker
thread reads its own copy of |die|, which can then be protected with
PerThreadContext.mutex.

Signed-off-by: Wan-Teh Chang <wtc@google.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2016-03-01 13:53:47 -05:00
Clément Bœsch
f1148390d7 sws/aarch64: add {nv12,nv21,yuv420p,yuv422p}_to_{argb,rgba,abgr,rgba}_neon 2016-03-01 17:53:33 +01:00
Rostislav Pehlivanov
7bcc57ad99 vc2enc: fix packet underallocation and minimum bitrate with interlacing
This was a regression introduced by commit e7345abe052 which
enabled full use of the allocated packet but due to the overhead of
using field coding the buffer was too small and triggered warnings and
crashes.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-03-01 13:44:18 +00:00
Rostislav Pehlivanov
41985d40c6 vc2enc: simplify slice cost caching
The fact that now all quantization indices costs are cached justifies
storing 20 more integers in a structure already allocated on heap.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-03-01 13:04:40 +00:00
Luca Barbato
f8c34f4b8d indeo2: Fix banding artefacts
Rename luma table to delta table and change how it is used.

CC: libav-stable@libav.org
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2016-03-01 13:50:24 +01:00
Luca Barbato
d4066a7024 indeo2data: K&R formatting cosmetics
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2016-03-01 13:46:00 +01:00
Rostislav Pehlivanov
6061b78e83 vc2enc: remove redundant put_padding() and use skip_put_bytes() instead
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-03-01 11:39:30 +00:00
Clément Bœsch
090621d7ce lavfi: add bench and abench filters 2016-03-01 10:36:15 +01:00
Diego Biurrun
1a094af638 fft: Split MDCT bits off from FFT 2016-03-01 10:18:28 +01:00
Mark Harris
4d13bcceb9 sdp: fix opus sprop-stereo fmtp syntax
Signed-off-by: Martin Storsjö <martin@martin.st>
2016-03-01 08:56:36 +02:00
Andrew Shulgin
1c7e2cf9d3 avformat/rtpdec_h264: Ignore invalid sprop-parameter-sets missing PPS
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-01 02:19:23 +01:00
Ganesh Ajjanagadde
7dabc78ce1 lavu/rational: add more info regarding floor(x+0.5) usage
Add some more verbose info regarding why the imprecise and slow floor(x+0.5) hack
is used; helpful for future maintenance.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanag@gmail.com>
2016-02-29 19:26:55 -05:00
Michael Niedermayer
380fd32a8c fate: add libavcodec utils test
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-29 21:44:07 +01:00
Michael Niedermayer
0be09f54fb avcodec: Add utils test
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-29 21:44:06 +01:00
Derek Buitenhuis
9f9ed79d4c hls: Add and use a memebr of AVIOInternal rather than abuse opaque
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-29 20:10:11 +00:00
James Almer
3acbb91d13 fate: fix fate-libavformat target
Signed-off-by: James Almer <jamrial@gmail.com>
2016-02-29 16:26:37 -03:00
Derek Buitenhuis
b9aa4ccff5 Merge commit 'cae448cfbf31d492cba782bc64fc4eed556ed83d'
* commit 'cae448cfbf31d492cba782bc64fc4eed556ed83d':
  aviobuf: add a private data struct for avio_open()ed contexts

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-29 18:43:16 +00:00
Michael Niedermayer
4899c02c38 avformat/protocols: Fix ff_urlcontext_child_class_next()
This fixes -read_ahead_limit

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-29 19:34:52 +01:00
Michael Niedermayer
a6cd817a54 avformat/msf: Also check the codec tag in probing
Fixes probing failure

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-29 19:25:01 +01:00
Derek Buitenhuis
bb8cc89b29 Merge commit '832a202c47a246ed15e3edc6b05dfcfa7d82c4b2'
* commit '832a202c47a246ed15e3edc6b05dfcfa7d82c4b2':
  protocols: make the list of protocols static

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-29 18:08:15 +00:00
Derek Buitenhuis
95cdc0a5c6 avformat: Remove async from TESTPROGS
It is current disabled.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-29 17:14:56 +00:00
Derek Buitenhuis
53025fe187 Merge commit '7d61dc95d741ca134d59b1f34c4e10c4c4e36f56'
* commit '7d61dc95d741ca134d59b1f34c4e10c4c4e36f56':
  lavf: move urlcontext_child_class_next() to protocols.c

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-29 17:00:44 +00:00
Derek Buitenhuis
8fd5342463 Merge commit '0fa00d05911aa8043ecad8dead4a73cab7faadf6'
* commit '0fa00d05911aa8043ecad8dead4a73cab7faadf6':
  lavf: move avio_enum_protocols() to protocols.c

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-29 16:56:47 +00:00
Derek Buitenhuis
9c75148e6e Merge commit '2758cdedfb7ac61f8b5e4861f99218b6fd43491d'
This commit also disables the async fate test, because it
used internal APIs in a non-kosher way, which no longer
exists.

* commit '2758cdedfb7ac61f8b5e4861f99218b6fd43491d':
  lavf: reorganize URLProtocols

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-29 16:51:10 +00:00
Timothy Gu
e3461197b1 x86/vc1dsp: Split the file into MC and loopfilter 2016-02-29 08:46:53 -08:00
Derek Buitenhuis
f1e7c42f08 Merge commit '225e84e74544062706c0159ec0737b0e1d40915f'
* commit '225e84e74544062706c0159ec0737b0e1d40915f':
  hls: disallow opening nested files in child demuxers

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-29 15:50:32 +00:00
Derek Buitenhuis
6a8d05cb4d Merge commit 'e192cd9ce2b51c2e6919f2a78b1ce53e0024e728'
* commit 'e192cd9ce2b51c2e6919f2a78b1ce53e0024e728':
  smoothstreamingenc: do not open the files as read+write

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-29 15:43:00 +00:00
Derek Buitenhuis
48847ee357 Merge commit 'd082078a88da3b3e926197d0d2aa9fa322123b76'
* commit 'd082078a88da3b3e926197d0d2aa9fa322123b76':
  dashenc: eliminate ffurl_* usage

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-29 15:41:03 +00:00
Derek Buitenhuis
04747c5a73 Merge commit '7fbb3b5b9857276b4cd17b2a530c7e0880d2bc0a'
* commit '7fbb3b5b9857276b4cd17b2a530c7e0880d2bc0a':
  lavf: use the io_open callbacks for files opened from open_input() as well

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-29 15:39:19 +00:00
Derek Buitenhuis
39fdffa736 Merge commit '5efd91284e56d444139ed811671c59a129bbb92f'
This commit is no-op. The affected piece of code does not
exist in FFmpeg.

* commit '5efd91284e56d444139ed811671c59a129bbb92f':
  avprobe: do not call avio_close() on a custom context

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-29 15:36:38 +00:00
Derek Buitenhuis
14a69ae60c Merge commit 'dc6527ed908e4d330738f139074455ffbe56a2de'
FATE tests have been updated to patch. They do not differ in
any meaningful way.

* commit 'dc6527ed908e4d330738f139074455ffbe56a2de':
  nutenc: do not use AVCodecContext.frame_size

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-29 15:29:43 +00:00
Carl Eugen Hoyos
8c5092912b lavf: Add pcx auto-detection. 2016-02-29 15:49:52 +01:00
Carl Eugen Hoyos
4e05a12a41 lavc/pcxenc: Update format description link. 2016-02-29 12:42:29 +01:00
Carl Eugen Hoyos
c0ecc597fa lavf/img2dec: Skip SOS when auto-detecting jpeg.
Improves jpeg auto-detection.
2016-02-29 11:58:16 +01:00
Clément Bœsch
98084adccf build: add --install-name-dir=DIR Darwin option
This option is typically useful when cross-compiling dynamic libraries
for iOS, with something such as --install-name-dir=@rpath
2016-02-29 11:01:24 +01:00
Muhammad Faiz
d1401cb1d0 avfilter/avf_showcqt: optimize draw routines
optimize draw_bar_yuv (slightly faster)
optimize draw_axis (about 2x faster)

Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
2016-02-29 16:06:39 +07:00
Michael Niedermayer
080be982e9 fate/mpeg4: add mpeg4-es with codec timestamps (vlc ticket 7571)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-29 04:24:52 +01:00
Michael Niedermayer
4d338f9b64 fate/vp8: add test for Ticket2451
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-29 03:01:15 +01:00
Michael Niedermayer
77524ee2dc avformat/utils: Be slightly more tolerant with fps vs. stream timebase
Fixes regression with ticket2451

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-29 02:59:15 +01:00
Michael Niedermayer
1b65910185 fate/gif: add Test for Ticket3052
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-29 01:41:11 +01:00
Michael Niedermayer
993d622d00 fate/filter-video: add test for Ticket1578
reference test sample is tiny

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-29 00:52:26 +01:00
Michael Niedermayer
a11258b732 tests/fate/lossless-video: Add test for ticket4119
The reference file is very small, and there was no previous test for the -vsync values

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-29 00:21:17 +01:00
Michael Niedermayer
3e42c1128f avcodec/libzvbi-teletextdec: Remove unused variable
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-28 23:39:32 +01:00
Paul B Mahol
65cc3915db avfilter/avf_showvolume: support unknown channel layouts too
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-02-28 23:18:31 +01:00
Michael Niedermayer
1492507208 ffmpeg_vdpau: Remove unused variable
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-28 23:16:33 +01:00
Marton Balint
e22bd239c0 avformat/mov: do not leak memory on ffio_read_size failure
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-02-28 23:00:45 +01:00
Marton Balint
4840effe42 avformat/mov: merge mov_read_custom functions
This also fixes reading gapless metadata when the entries do not start with the
mean atom. Such samples can be found here:
https://hydrogenaud.io/index.php/topic,93310.0.html

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-02-28 23:00:45 +01:00
Raymond Hilseth
c66a6369e4 avformat/dashenc: Enable dash output to work when the output isn't a local file
Use avpriv_io_move instead of ff_rename to support more than only
the file protocol.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-28 22:32:28 +01:00
Raymond Hilseth
20e4863ab1 avformat/file: enable file_move() without unistd.h
it only requires the rename function from os_support.h.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-28 22:26:39 +01:00
Rodger Combs
22dbc1caaf lavf/mov: downgrade sidx errors to non-fatal warnings; fixes trac #5216 2016-02-28 15:00:34 -06:00
Rodger Combs
3617e69d50 lavf/mov: fix sidx with edit lists 2016-02-28 15:00:34 -06:00
Rostislav Pehlivanov
e7345abe05 vc2enc: redistribute leftover bytes
This commit redistributes the leftover bytes amongst the top 150 slices
in terms of size (in the hopes that they'll be the ones pretty bitrate
starved).

A more perceptual method would probably need to cut bits off from slices
which don't need much, but that'll be implemented later.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-02-28 19:06:29 +00:00
Rostislav Pehlivanov
bbcd5e99c3 vc2enc: allocate the DWT context with the current plane size
Previously used the luma size only.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-02-28 19:06:29 +00:00
Rostislav Pehlivanov
2f19583911 2enc: clip and warn when user bitrate set too low
The encoder crashed on verly low bitrates since there wasn't enough
space allocated.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-02-28 19:06:29 +00:00
Rostislav Pehlivanov
6e5c6d61bd vc2enc: clip and warn when user bitrate set too low
The encoder crashed on verly low bitrates since there wasn't enough
space allocated.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-02-28 19:06:29 +00:00
Rostislav Pehlivanov
0a2adf0f47 vc2enc: carry over quantization index across frames as a starting point
Previously a global average was used. Using the previous quantizer
resulted in a fairly significant speedup as slice size selection settled
down quicker.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-02-28 19:06:29 +00:00
Rostislav Pehlivanov
fc1d3cbfdc vc2enc: use 32 bits for quantized coefficients LUT
16 bits were definitely not enough and caused artifacts to appear on
images at barely compressed images.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-02-28 19:06:29 +00:00
Rostislav Pehlivanov
5cc53c2e53 vc2enc: cache bits per quantizer, calculate wasted bits
Needed for following commits, also a speed increase.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-02-28 19:06:29 +00:00
Paul B Mahol
2ad1c87bb2 avfilter/vf_vectorscope: add color5 mode, mode like color but with higher saturation
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-02-28 20:03:04 +01:00
Michael Niedermayer
c6f4720b86 avcodec/mjpegdec: Fix decoding slightly odd progressive jpeg
Fixes: ebd58db6-dc86-11e5-91c2-59daeddf50c7.jpg

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-28 18:46:35 +01:00
Timothy Gu
bbf7500df9 LICENSE: Thorough editing
The changes in "Incompatible libraries" section are strictly based on
what our configure script says.
2016-02-28 08:19:44 -08:00
Timothy Gu
222e6da605 x86/vf_blend: Add SSE2 optimization for divide
4.5x faster than C float version with autovectorization
10  x faster than C int version
25  x faster than C float version without autovectorization
2016-02-28 08:19:09 -08:00
Derek Buitenhuis
1c9215e580 lavf/mp3: Properly check return values of seeks and reads while reading the header
Fixes large amounts of seeking past EOF, which could be extremely
slow over a network.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-28 13:57:35 +00:00
Roman Ryltsov
af2568a675 avformat/Makefile: Fixed missing rawutils.o reference (required by movenc.c)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-28 14:43:52 +01:00
Reimar Döffinger
4dd4d53531 Document and validate AVFrame plane pointers.
Check that the required plane pointers and only
those are set up.
Currently does not enforce anything for the palette
pointer of pseudopal formats as I am unsure about the
requirements.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2016-02-28 13:33:14 +01:00
Reimar Döffinger
45fa03b1f9 mjpegdec: Do not assume unused plane pointer are NULL.
We do neither document nor check such a requirement
and for application-provided get_buffer2 they could
contain the result of a malloc(0) or whatever value
they had previously.
This fixes a use-after-free in e.g. MPlayer:
https://trac.mplayerhq.hu/ticket/2262
We might want to consider changing the (documented)
API in addition though.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2016-02-28 13:32:01 +01:00
Reimar Döffinger
0f199f0ad0 mss2: Fix buffer overflow.
Reported as https://trac.mplayerhq.hu/ticket/2264 but have
not been able to reproduce with FFmpeg-only.
I have no idea what coded_height is used for here exactly,
so this might not be the best fix.
Fixes the following chain of events:
ff_mss12_decode_init sets coded_height while not setting height.
ff_mpv_decode_init then copies coded_height into MpegEncContext height.
This is then used by init_context_frame to allocate the data structures.
However the wmv9rects are validated/initialized based on avctx->height, not
avctx->coded_height.
Thus the decode_wmv9 function will try to decode a larger video that we
allocated data structures for, causing out-of-bounds writes.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2016-02-28 13:32:01 +01:00
Michael Niedermayer
5d18dc3795 tests/lavf-regression: Add mp4 timecode test
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-28 03:54:50 +01:00
Syed Andaleeb Roomy
b4dcd351ec movenc: Timecode in MP4 Although MP4 does not have a concrete specification to store timecode information, the following technical note from Apple describes a way to achieve this via timecode track, similar to how it is done for MOV files.
https://developer.apple.com/library/mac/technotes/tn2174/_index.html

- Enabled creation of timecode tracks for MP4 in the same way as MOV.
- Used nmhd as media information header of timecode track of MP4 instead
  of gmhd used in MOV, thus avoiding tcmi also, as recommended above.
- Bypassed adding source reference field for MP4, as suggested above.

Issue: https://trac.ffmpeg.org/ticket/4704

Signed-off-by: Syed Andaleeb Roomy <andaleebcse@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-28 03:47:23 +01:00
Andreas Cadhalpun
15708f1347 configure: add direct detection of libopencv
The pkg-config file contains all opencv libraries, not only the
neccessary ones.

This change makes it possible to use the libopencv-imgproc-dev Debian
package instead of libopencv-dev, saving about 200 MB of useless
build-dependencies.

In particular one doesn't need to install the parts of opencv that
depend on ffmpeg libraries.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-28 02:47:12 +01:00
Michael Niedermayer
b70e9b4906 avutil/imgutils: Assert that the 2nd av_image_fill_linesizes() call in av_image_fill_linesizes() still succeeds
Fixes CID1271742

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-28 02:02:50 +01:00
Rodger Combs
f0ea536c47 lavc/aac_ac3_parser: reindent 2016-02-27 16:31:46 -06:00
Rodger Combs
9f5baf9085 lavc/aac_ac3_parser: avoid zeroing codec parameters if we haven't read a frame
This caused issues when seeking in some unusual MPEGTS files
2016-02-27 16:31:46 -06:00
Rodger Combs
a21a3c25dc probe TrueHD in MPEGTS 2016-02-27 16:27:27 -06:00
Rodger Combs
b426d66370 lavc/Makefile: dnxhd demuxer depends on dnxhddata.o 2016-02-27 16:26:18 -06:00
wm4
5d2c5e8bff vf_copy: exclude hwaccel formats
This does obviously not work.

(Additions based on vf_crop.c.)
2016-02-27 21:35:20 +01:00
Paul B Mahol
e266d29978 avfilter/avf_showwolume: add orientation and step option
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-02-27 17:45:20 +01:00
Clément Bœsch
653af9f188 lavfi/ass: fix version check for sub_text_format option 2016-02-27 16:26:10 +01:00
Kieran Kunhya
8adbe26b90 avcodec/cfhd: Add support for 12-bit RGBA.
Plays all known samples
2016-02-27 13:17:20 +00:00
Kieran Kunhya
0096453f70 cfhd: reallocate internal buffers on format change.
Fixes some, but not all, of the threading fuzz crashes
2016-02-27 12:18:06 +00:00
Michael Niedermayer
d39b770aa2 avcodec/utils: Check that the video data[] arrays are NULL on the input to get_buffer_internal()
This should return an error to the decoder if the struct it tried to getbuffer is dirty

Reviewed-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-27 13:11:52 +01:00
Michael Niedermayer
bdf7093bd0 avcodec/utils: Check all data[] pointers in video_get_buffer() not just the first
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-27 13:11:52 +01:00
Clément Bœsch
1e7a37f0a0 sws/yuv2rgb: clarify precision of coeff and offset for mmx code
It makes easier looking at the difference with the generic code just
below.
2016-02-27 11:13:26 +01:00
Clément Bœsch
f9987464cf sws/yuv2rgb: avoid a few ub on signed left shifts 2016-02-27 11:13:26 +01:00
Vicente Olivert Riera
5156578d1f mips: do not disable any feature for generic cores
We don't know which features are available when the user selects a
generic core, so don't disable anything by default and let the user
decide.

Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-27 04:22:56 +01:00
Vicente Olivert Riera
8514fb6b98 mips: improve detection of ISAs, FPU and ASEs (DSP, MSA)
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-27 04:22:55 +01:00
Mats Peterson
6aac43f180 lavf/matroskadec: Process QuickTime palette per track
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-27 02:03:02 +01:00
Mats Peterson
9a27780821 lavf/movenc: Add palette to video sample description
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-27 01:28:48 +01:00
Diego Biurrun
f6ccee9bed fate: fft: Split DCT/FFT/MDCT/RDFT tests into separate targets 2016-02-26 22:44:30 +01:00
Paul B Mahol
42c5e1cc2a avfilter: add datascope filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-02-26 22:22:05 +01:00
Clément Bœsch
b5451d88cf lavc: reindent a few decoders after previous commits 2016-02-26 22:15:20 +01:00
Clément Bœsch
22ebbda637 lavc: deprecate decoded ass subtitles with timings 2016-02-26 21:53:34 +01:00
Clément Bœsch
fa2df3a401 lavfi/ass: use ass_process_chunk() instead of ass_process_data() 2016-02-26 21:53:34 +01:00
Clément Bœsch
6433618dc0 ffmpeg: set sub_text_format to ass (without timing) by default
Fixes Ticket #4783
2016-02-26 21:53:34 +01:00
Clément Bœsch
30e7685360 lavc/options: add ass_ro_flush_noop to flags2 2016-02-26 21:53:32 +01:00
Clément Bœsch
2941282124 lavc: allow subtitle text format to be ASS without timing 2016-02-26 21:49:34 +01:00
Clément Bœsch
805685fffd Kill timed SSA 2016-02-26 21:34:33 +01:00
Michael Niedermayer
7a8ab57cf1 fate: Add test for packed mp3 in mp4 demuxing
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-26 20:12:53 +01:00
Michael Niedermayer
410f717ff6 avcodec/utils: Merge identical if conditions
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-26 20:12:30 +01:00
Rostislav Pehlivanov
bc7beb6574 vc2enc: calculate the minimum slice size only once
This commit moves the minimum bits per slice calculations outside of the
rate control function as it is identical for every slice.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-02-26 15:38:26 +00:00
Rostislav Pehlivanov
2b811e4605 vc2enc: halve allocated table size, refactor and optimize quantization
Since coefficients differ only in the last bit when writing to the
bitstream it was possible to remove the sign from the tables, thus
halving them. Also now all quantization is done in the unsigned domain
as the sign is completely separate, which gets rid of the need to do
quantization on 32 bit signed integers.

Overall, this slightly speeds up the encoder depending on the machine.
The commit still generates bit-identical files as before the commit.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-02-26 14:47:06 +00:00
Diego Biurrun
4c297249ac rdft: arm: Split RDFT initialization into a separate file 2016-02-26 14:34:58 +01:00
Diego Biurrun
97aec6e75e fft: arm: Drop unnecessary #include, add missing ones 2016-02-26 14:34:58 +01:00
Diego Biurrun
73ff983e8d fft: x86: cosmetics: Drop silly comments, add comment, whitespace 2016-02-26 14:34:58 +01:00
Rostislav Pehlivanov
7db2e757c5 vc2enc: use FFABS() instead of abs()
Provides a minor speedup.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-02-26 12:55:34 +00:00
Rostislav Pehlivanov
3ef10406e1 vc2enc: correctly zero out coefficient array padding
Credit for figuring this out goes to James Darnley.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-02-26 12:21:36 +00:00
Rostislav Pehlivanov
35346c7b0f vc2enc: mark as FF_CODEC_CAP_INIT_THREADSAFE and align AVCodec entries
The encoder does not modify any global variables.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-02-26 12:17:42 +00:00
Paul B Mahol
2a7f056d88 avfilter/af_astats: do not clear previous sample value
Should help when using reset=1 and metadata=1

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-02-26 11:12:45 +01:00
Luca Barbato
ce9d7da765 qsv: Move down the implementation query
The plugin loaded may not match the general implementation capability
wise.
2016-02-26 10:28:42 +01:00
Stefano Sabatini
dedcb3c5a5 lavf/mux: do not fail in case of non strictly monotonically increasing DTS values for data packets
Consistent with what we already do with subtitles since ac08c5c0adcb7f2f9b5ea3eb473d1c2b9659aab2.
2016-02-26 10:18:09 +01:00
Carl Eugen Hoyos
07eec5e721 lavf/img2dec: Skip SOF size when probing jpeg.
Fixes auto-detection for some resolutions.
Reported-by: Clément Bœsch
2016-02-26 09:53:29 +01:00
Matthieu Bouron
885a6d8324 configure: only check dispatch header on darwin
Fixes build of lavd/jack on linux if dispatch happens to be available on
this platform. dispatch, as well as its dependencies kqueue and pwq are
generally not installed / distribued on linux systems. If it happens to
be the case, you want to explicitely link against the libraries (using
-ldispatch) as opposed to darwin where it is part of the standard
library and -ldispatch doesn't work.
2016-02-26 09:23:17 +01:00
Anton Khirnov
dbb43b8b83 avpacket: properly reset data/size in av_packet_move_ref()
It currently just calls av_init_packet(), which does not touch those
fields.
2016-02-26 09:15:36 +01:00
Anton Khirnov
ba357e9869 avprobe: switch to codecpar 2016-02-26 09:15:29 +01:00
Anton Khirnov
567d6d5f9d avprobe: add local per-stream state
This will be useful in the following commits.
2016-02-26 09:15:20 +01:00
Anton Khirnov
c9478410c6 avprobe: add local per-file state
Do not pass just a bare AVFormatContext pointer around, wrap it in
struct. This will be useful in the following commits.
2016-02-26 09:15:06 +01:00
Anton Khirnov
c80344d010 mpegvideo_enc: use avcodec_free_context() instead of av_free() 2016-02-26 09:14:59 +01:00
Anton Khirnov
168a443d43 avprobe: print information from the codec descriptor
avprobe is not doing any decoding, so this is more correct than printing
information from a random codec implementation.
2016-02-26 09:14:49 +01:00
Anton Khirnov
e7188a1a84 avprobe: remove a pointless condition and a dead branch
AVStream.codec is always non-NULL
2016-02-26 09:14:38 +01:00
Anton Khirnov
dc4983d78a APIchanges: add missing hashes and dates
Also, remove a stray line (apparently fallout from conflict resolution).
2016-02-26 09:14:13 +01:00
Anton Khirnov
3e8fd93b6a lavf: add a missing bump and APIchanges for the codecpar switch 2016-02-26 09:14:13 +01:00
Lou Logan
0eb0f29a40 MAINTAINERS: remove myself as a server maintainer
Signed-off-by: Lou Logan <lou@lrcd.com>
2016-02-25 18:10:48 -09:00
Vittorio Giovara
e66fa35392 vc1dec: Check group allocations separatedly
This avoids accessing NULL pointers in case of error.
2016-02-25 15:21:42 -05:00
Matthieu Bouron
666e2edc41 configure: add missing --strip option to show_help() 2016-02-25 21:21:39 +01:00
Vittorio Giovara
01f0e6a0c9 vc1dec: Fix leak on error for array allocations
The deinit function in the 'error' section will correctly free
everything.
2016-02-25 15:20:53 -05:00
Vittorio Giovara
f91d94bdfc vc1dec: Properly call deinit function on error 2016-02-25 15:20:24 -05:00
Vittorio Giovara
35b1cd343c vc1dec: Drop commented out cruft 2016-02-25 15:19:36 -05:00
Carl Eugen Hoyos
0f31d401c3 lavc/mjpegdec: Fix decoding images with Adobe_CM tag.
Fixes ticket #5267.
2016-02-25 13:26:13 +01:00
Carl Eugen Hoyos
03af008e21 doc/filters: Fix idet option name "rep_thres".
Reported by forum user vovcheck.
2016-02-25 13:23:52 +01:00
Matt Oliver
7ecef5ed51 avfilter/hwupload_cuda: Add missing semicolon.
Signed-off-by: Matt Oliver <protogonoi@gmail.com>
2016-02-25 15:52:01 +11:00
Neil Birkbeck
ad17b9d2d4 libavcodec:add packet level support for mastering metadata
Some containers, like webm/mkv, will contain this mastering metadata.
This is analogous to the way 3D fpa data is handled (in frame and
packet side data).

Signed-off-by: Neil Birkbeck <neil.birkbeck@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-25 00:18:12 +01:00
Michael Niedermayer
954f865c8e avfilter/drawutils: fix gray and gbr formats on big endian
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-25 00:07:51 +01:00
Michael Niedermayer
6bc20e84d8 avfilter/drawutils: Fix ff_fill_rectangle() on big endian
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-25 00:07:51 +01:00
Paul B Mahol
0d65a7d033 avfilter/af_astats: clear all stats
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-02-25 00:00:25 +01:00
Paul B Mahol
c09248aecd avfilter/af_astats: reset stats prior not after filtering
This way stats printed at uninit are also useful.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-02-24 22:32:26 +01:00
Michael Niedermayer
5870f2a1dc Revert "Merge commit '3ef98937f512184f80d3bd30015f5ec83dc11eb0'"
This broke packed_maindata.mp3.mp4
Its unknown to me what this commit would have fixed

Reviewed-by: James Almer <jamrial@gmail.com>

This reverts commit 79127dbbeffa87243c92af2befc09ad63bcbd1a1, reversing
changes made to 9fad1ce7c95adeec440f51af77f730340a6d27b8.
2016-02-24 21:24:38 +01:00
Vittorio Giovara
fa55addd23 img2: Drop av_ prefix for a static function
This prefix is reserved for public functions only.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-02-24 13:56:46 -05:00
James Almer
fc404460bd configure: add missing vc1dsp dependency to vc1_decoder
Fixes compilation of vc1_decoder when vc1_parser is not enabled

Signed-off-by: James Almer <jamrial@gmail.com>
2016-02-24 15:49:51 -03:00
Paul B Mahol
b6a0aa1c0a avfilter/vf_blend: add freeze and heat modes
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-02-24 19:30:13 +01:00
Derek Buitenhuis
2ef37691a0 Merge commit 'bf7be043fcfda29c81ef2268885b4ccc643e7c49'
This commit is a no-op. We already do this.

* commit 'bf7be043fcfda29c81ef2268885b4ccc643e7c49':
  matroska: Always consider S_TEXT/UTF8 as SRT when demuxing

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-24 18:27:32 +00:00
Derek Buitenhuis
8ae21fd959 Merge commit '8caadfc53ddc55a269722ada65294f0ea8b609ac'
* commit '8caadfc53ddc55a269722ada65294f0ea8b609ac':
  fate: Be silent when switching to Git branch

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-24 18:25:27 +00:00
Derek Buitenhuis
79b1a24b7d Merge commit '8d918a98aa24134a043d578ef45bae363dbed9db'
* commit '8d918a98aa24134a043d578ef45bae363dbed9db':
  rtpdec: Use the right logging context

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-24 18:24:34 +00:00
Derek Buitenhuis
ef7ce480c8 Merge commit 'd24bd96bdd5b4bae9a9e0055fa8d1104db1283a9'
* commit 'd24bd96bdd5b4bae9a9e0055fa8d1104db1283a9':
  build: Disentangle VC-1 decoder and parser

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-24 18:23:36 +00:00
Derek Buitenhuis
b056482ef3 Merge commit '15a24614aef5836af3cd2c7cc3b2b737eee6bf3c'
* commit '15a24614aef5836af3cd2c7cc3b2b737eee6bf3c':
  build: Add vc1dsp component for more fine-grained dependencies

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-24 18:21:38 +00:00
Derek Buitenhuis
2814f06abf Merge commit 'f9fbd474676e903e12efe83203697d60a9d28cf9'
* commit 'f9fbd474676e903e12efe83203697d60a9d28cf9':
  msmpeg4data: Move WMV2 data tables to their own file

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-24 18:15:14 +00:00
Derek Buitenhuis
133aa68601 Merge commit '79866803ffc4c1a1b02663de9bab216b8cfdb8b4'
* commit '79866803ffc4c1a1b02663de9bab216b8cfdb8b4':
  msmpeg4data: K&R formatting cosmetics

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-24 18:13:25 +00:00
Derek Buitenhuis
d61849f0b7 Merge commit 'b10c33c5ea9a41c41726fb5488ea1633e3f898ac'
* commit 'b10c33c5ea9a41c41726fb5488ea1633e3f898ac':
  build: Add missing mpegvideo dependency for the MSS2 and VC-1 decoders

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-24 18:12:26 +00:00
Derek Buitenhuis
0ffaae60e8 Merge commit '7d16d8533daf73b66d318c5e27de3b17208aa0ba'
* commit '7d16d8533daf73b66d318c5e27de3b17208aa0ba':
  build: More precise dependencies for h264dsp

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-24 18:11:03 +00:00
Derek Buitenhuis
dc61014319 Merge commit 'f273f7fb25b68792be481c9241b0ec2876e41f35'
This commit is a no-op. We already set this.

* commit 'f273f7fb25b68792be481c9241b0ec2876e41f35':
  mkv: Force the full parsing of mp3

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-24 18:08:45 +00:00
Derek Buitenhuis
79127dbbef Merge commit '3ef98937f512184f80d3bd30015f5ec83dc11eb0'
* commit '3ef98937f512184f80d3bd30015f5ec83dc11eb0':
  mov: Force the full parsing of mp3

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-24 18:06:40 +00:00
Derek Buitenhuis
9fad1ce7c9 Merge commit 'b4a0f172c7f116d8d329ff02f29c138a9291fd3c'
This commit is a no-op.

We have already reverted the configure changes, and we do not have a typo
in configure.

* commit 'b4a0f172c7f116d8d329ff02f29c138a9291fd3c':
  Revert all recent configure changes related to dependency resolution
  build: Fix typo in HEVC VDPAU hwaccel dependencies

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-24 18:05:29 +00:00
Derek Buitenhuis
f99195d56f Merge commit '0d1229f1d2b8f26dd50c6be7917bb8ed8cb95364'
* commit '0d1229f1d2b8f26dd50c6be7917bb8ed8cb95364':
  voc: Split ff_voc_get_packet into a separate file

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-24 18:04:34 +00:00
Derek Buitenhuis
745d0c0300 Merge commit '624e235502c5aa2d17e22dd6c0ccdf080a177310'
* commit '624e235502c5aa2d17e22dd6c0ccdf080a177310':
  build: Introduce iso_media component

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-24 17:53:30 +00:00
Derek Buitenhuis
34e4c588c8 Merge commit '82454c3a826bc8aa42474097784b70befd5be532'
* commit '82454c3a826bc8aa42474097784b70befd5be532':
  build: Let the WTV demuxer select the MPEG-TS demuxer
  build: Adjust mpeg4video parser dependencies
  build: Fix mpegvideo component dependencies
  build: Fix dependencies for components relying on H.263 data tables

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-24 17:46:10 +00:00
Derek Buitenhuis
3c5a040ad9 Merge commit 'e453129321778886813dcecf73c8b42f8352ca0e'
* commit 'e453129321778886813dcecf73c8b42f8352ca0e':
  build: Add missing dependencies for eatqi decoder

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-24 17:39:04 +00:00
Derek Buitenhuis
7e12a3d57c Merge commit '71eaefa64a54bece571299ca600d06f48ac7c6c3'
* commit '71eaefa64a54bece571299ca600d06f48ac7c6c3':
  build: Add missing celp_math dependency for G723_1 encoder and decoder

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-24 17:38:33 +00:00
Derek Buitenhuis
ca408cf557 Merge commit '7c82d31cbe9fc5d5a321ad49c14a472bd629b50f'
* commit '7c82d31cbe9fc5d5a321ad49c14a472bd629b50f':
  checkasm: Use standard multiple inclusion guards

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-24 17:36:52 +00:00
Derek Buitenhuis
aaa3d62272 Merge commit '3d8025d602045cbd2894e5182d9243c2e864c8c8'
* commit '3d8025d602045cbd2894e5182d9243c2e864c8c8':
  profiles: Add missing #endif comment

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-24 17:36:30 +00:00
Derek Buitenhuis
5eb4073781 Merge commit '6b96d2dcdaa60d7919d710432c6ca204b7fab0ab'
* commit '6b96d2dcdaa60d7919d710432c6ca204b7fab0ab':
  cosmetics: Drop particularly redundant silly comments

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-24 17:35:47 +00:00
Derek Buitenhuis
1a12eb4a73 Merge commit '29c2d06d67724e994980045afa055c6c34611b30'
* commit '29c2d06d67724e994980045afa055c6c34611b30':
  cosmetics: Drop empty comment lines

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-24 17:31:44 +00:00
Derek Buitenhuis
cb0355537d Merge commit 'd847a40888c064cc8c35b546fc5a0ccb69136a7c'
* commit 'd847a40888c064cc8c35b546fc5a0ccb69136a7c':
  hwcontext_cuda/vdpau: add to skipheaders

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-24 17:24:04 +00:00
Derek Buitenhuis
0d4c0240af Merge commit '9c0bc1e980a99106d6749ec632f166b87275871e'
* commit '9c0bc1e980a99106d6749ec632f166b87275871e':
  qsv: add a missing #include

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-24 17:22:43 +00:00
Derek Buitenhuis
f6d633d726 Merge commit 'b92962436bdcfae478c8598dca397a397762eef8'
* commit 'b92962436bdcfae478c8598dca397a397762eef8':
  mov: Fix the format specifier type for size

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-24 17:21:17 +00:00
Derek Buitenhuis
33215d3c48 Merge commit '2edc718723b60530aead26c20cbc891102f7d529'
This is a no-op. This was a part of the already-reverted
broken configure saga.

* commit '2edc718723b60530aead26c20cbc891102f7d529':
  configure: Relax the implication of --enable for components

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-24 17:18:54 +00:00
Derek Buitenhuis
2cfb34a4e8 Merge commit '47570dbde8b33001d5ccac44e7ebaaeecbcb807c'
* commit '47570dbde8b33001d5ccac44e7ebaaeecbcb807c':
  fft: ppc: Place ff_fft_calc_interleave_altivec() under correct ifdefs

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-24 17:18:27 +00:00
Derek Buitenhuis
259fef86bb Merge commit 'c15f6098b1b25689dd5e86aeb5ce69bc12efe1e1'
* commit 'c15f6098b1b25689dd5e86aeb5ce69bc12efe1e1':
  avconv: pass the hw context from filters to the encoder

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-24 17:08:13 +00:00
Derek Buitenhuis
e05704bd46 Merge commit '871d0930d4c8666df5514093beff874acbe5cce0'
Timo is going to implement this for us.

* commit '871d0930d4c8666df5514093beff874acbe5cce0':
  nvenc: support CUDA frames as input

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-24 17:05:58 +00:00
Derek Buitenhuis
7e49cdd129 Merge commit '7b3214d0050613bd347a2e41c9f78ffb766da25e'
* commit '7b3214d0050613bd347a2e41c9f78ffb766da25e':
  lavc: add a field for passing AVHWFramesContext to encoders

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-24 17:05:11 +00:00
Derek Buitenhuis
ef9915a0e2 Merge commit '21f7cd4acd8dc4b4796b55966dd015cb037164d8'
* commit '21f7cd4acd8dc4b4796b55966dd015cb037164d8':
  lavfi: add a filter for uploading normal frames to CUDA

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-24 17:02:48 +00:00
Derek Buitenhuis
14f942b359 Merge commit '1bf34134612e509fa68c70dfff418c6022459259'
This commit is a no-op.

* commit '1bf34134612e509fa68c70dfff418c6022459259':
  avconv: use the new buffersrc parameters API

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-24 16:39:20 +00:00
Derek Buitenhuis
10424024a1 Merge commit 'b3dd30db0b2d857147fc0e1461a00bd6172a26a3'
* commit 'b3dd30db0b2d857147fc0e1461a00bd6172a26a3':
  lavfi: pass the hw frames context through the filter chain

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-24 16:03:57 +00:00
Derek Buitenhuis
6992276aca Merge commit 'ad884d100259e55cb51a4239cd8a4fd5154c2073'
* commit 'ad884d100259e55cb51a4239cd8a4fd5154c2073':
  hwcontext: add a CUDA implementation

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-24 15:23:16 +00:00
Derek Buitenhuis
63c3e35332 Merge commit '7bc780cd4413f688d3b834037b0f9ddfd6948140'
* commit '7bc780cd4413f688d3b834037b0f9ddfd6948140':
  pixfmt: add a CUDA hwaccelled format

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-24 15:11:06 +00:00
Anton Khirnov
9f2c1c77d2 configure: Allow linking to CUDA dynamically instead of dlopen()ing it at runtime
This currently doesn't do anything, but will be used later for hwaccel
filters and libavutil.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-24 15:05:13 +00:00
Justin Ruggles
e1c15a9475 img2dec: Support Progressive JPEG in jpeg_probe
There can be multiple SOS markers, so do not return 0 in that case.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-24 14:51:12 +00:00
Derek Buitenhuis
1f32d01de2 Merge commit 'c51b2c79a7ba084253e892c56dd49ee97115c7de'
This commit is a no-op. We already have such functionality.

* commit 'c51b2c79a7ba084253e892c56dd49ee97115c7de':
  Allow linking to CUDA dynamically instead of dlopen()ing it at runtime

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-24 14:28:20 +00:00
Diego Biurrun
d6e49096c0 idct: Only build prores IDCT if ProRes decoder is enabled 2016-02-24 11:41:01 +01:00
Anton Khirnov
3c53627ac1 qsvdec: store the sync point in heap memory
The reasoning is the same as for the corresponding qsvenc patch.
2016-02-24 10:41:45 +01:00
Maxym Dmytrychenko
a1335149fd qsvenc: store the sync point in heap memory
The QSV runtime expects the sync point address passed to
MFXVideoENCODE_EncodeFrameAsync() to be valid until
MFXVideoCORE_SyncOperation().

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-02-24 10:14:40 +01:00
Anton Khirnov
1138eb5509 vsrc_movie: convert to codecpar 2016-02-24 10:08:37 +01:00
Anton Khirnov
ac6d53589f examples/transcode_aac: convert to codecpar 2016-02-24 10:08:34 +01:00
Anton Khirnov
a9e1f2cc61 examples/qsvdec: convert to codecpar 2016-02-24 10:08:30 +01:00
Anton Khirnov
9897d9f4e0 examples/output: convert to codecpar 2016-02-24 10:08:24 +01:00
Anton Khirnov
c23152a903 avplay: convert do codecpar 2016-02-24 10:05:43 +01:00
Anton Khirnov
0705f5960c avplay: do not use AVStream.codec for decoding
AVStream.codec is now deprecated. Allocate a separate codec context
instead.
2016-02-24 10:05:31 +01:00
Michael Niedermayer
10fa50c156 avcodec/mpeg12dec: Fix missing slice handling without padding
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-24 03:22:31 +01:00
Kieran Kunhya
4170a44bbc Add GBRAP12 pixel format
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-24 03:22:31 +01:00
Ganesh Ajjanagadde
e86444b19d lavc/utvideodec: prevent possible signed overflow
Doing slice_end - slice_start is unsafe and can lead to undefined behavior
until slice_end has been properly sanitized.

Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanag@gmail.com>
2016-02-23 20:37:11 -05:00
Michael Niedermayer
67e5bd0c50 swscale/utils: Fix chrSrcHSubSample for GBRAP16
Fixes part of Ticket5264

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-24 00:02:44 +01:00
Michael Niedermayer
df36257a53 swscale/input: Fix GBRAP16 input
Fixes part of Ticket5264

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-24 00:02:44 +01:00
Stefano Sabatini
14f7a3d55a lavc/lavf: transmit stream_id information for mpegts KLV data packets
This allows to copy information related to the stream ID from the demuxer
to the muxer, thus allowing for example to retain information related to
synchronous and asynchronous KLV data packets. This information is used
in the muxer when remuxing to distinguish the two kind of packets (if the
information is lacking, data packets are considered synchronous).

The fate reference changes are due to the use of
av_packet_merge_side_data(), which increases the size of the output
packet size, since side data is merged into the packet data.
2016-02-23 18:44:12 +01:00
Mats Peterson
3ba57bfe8d lavf/riffenc: Handle AV_PIX_FMT_MONOBLACK
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-23 17:58:52 +01:00
Anton Khirnov
15e84ed3f1 avconv: convert to codecpar
The switch is not yet complete because the parsers and the bistream
filters do not have a new AVCodecParam-based API yet.
2016-02-23 17:01:58 +01:00
Anton Khirnov
5b9cdf8cba avconv: switch opening decoders and encoders
Open decoders first, next encoders. This makes sure that that
subtitle_header is always set properly, without relying on
avformat_find_stream_info() setting it.
2016-02-23 17:01:58 +01:00
Anton Khirnov
9200514ad8 lavf: replace AVStream.codec with AVStream.codecpar
Currently, AVStream contains an embedded AVCodecContext instance, which
is used by demuxers to export stream parameters to the caller and by
muxers to receive stream parameters from the caller. It is also used
internally as the codec context that is passed to parsers.

In addition, it is also widely used by the callers as the decoding (when
demuxer) or encoding (when muxing) context, though this has been
officially discouraged since Libav 11.

There are multiple important problems with this approach:
    - the fields in AVCodecContext are in general one of
        * stream parameters
        * codec options
        * codec state
      However, it's not clear which ones are which. It is consequently
      unclear which fields are a demuxer allowed to set or a muxer allowed to
      read. This leads to erratic behaviour depending on whether decoding or
      encoding is being performed or not (and whether it uses the AVStream
      embedded codec context).
    - various synchronization issues arising from the fact that the same
      context is used by several different APIs (muxers/demuxers,
      parsers, bitstream filters and encoders/decoders) simultaneously, with
      there being no clear rules for who can modify what and the different
      processes being typically delayed with respect to each other.
    - avformat_find_stream_info() making it necessary to support opening
      and closing a single codec context multiple times, thus
      complicating the semantics of freeing various allocated objects in the
      codec context.

Those problems are resolved by replacing the AVStream embedded codec
context with a newly added AVCodecParameters instance, which stores only
the stream parameters exported by the demuxers or read by the muxers.
2016-02-23 17:01:58 +01:00
Anton Khirnov
a8068346e4 lavc: add a variant of av_get_audio_frame_duration working with AVCodecParameters 2016-02-23 17:01:58 +01:00
Anton Khirnov
998e1b8f52 lavc: add codec parameters API
This API is intended to allow passing around codec parameters without
using full AVCodecContext (which also contains codec options and
encoder/decoder state).
2016-02-23 17:01:58 +01:00
Muhammad Faiz
6eb4021d47 avfilter/avf_showcqt: use lrint
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
2016-02-23 22:14:08 +07:00
Carl Eugen Hoyos
2aa21eec1a postproc: fix unaligned access
Based on 59074310 by Andreas Cadhalpun.
Fixes ticket #5259.
2016-02-23 15:50:28 +01:00
Diego Biurrun
257b30af8e x86: hevc: Fix linking with both yasm and optimizations disabled
Some optimized functions reference optimized symbols, so the functions
must be explicitly disabled when those symbols are unavailable.
2016-02-23 11:47:54 +01:00
Diego Biurrun
cd846b4797 fate: Ignore errors from concatenating report files
Some files may be missing for valid reasons, e.g. on compile failure.
2016-02-23 11:45:37 +01:00
Diego Biurrun
9328adcc80 fate: Be silent when fetching Git updates 2016-02-23 11:45:37 +01:00
James Zern
7586b3adf2 libvpxenc: quiet unused-variable warning
with older versions of libvpx
since:
432be63 lavc/libvpx: Fix support for RGB colorspace.

Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: James Zern <jzern@google.com>
2016-02-22 20:23:31 -08:00
James Almer
45d3af9059 x86/dcadec: add ff_lfe_fir1_float_{sse3,avx}
Reviewed-by: Christophe Gisquet <christophe.gisquet@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-02-22 21:21:34 -03:00
Marton Balint
5e555f9300 mpeg12enc: always write closed gops for intra only outputs
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-02-22 19:08:56 -05:00
Michael Niedermayer
f435d081b0 h264: Add an AVClass pointer to H264Context
Sample-Id: asan_heap-uaf_3660f67_757_cov_1257014655_Hi422FR1_SONY_A.jsv
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-02-22 19:08:56 -05:00
Vittorio Giovara
0837d1dfe2 libx264: Fix noise_reduction option assignment
First check the context, then check internal option. Drop the ! typo.
Introduced in 60f0fde3092d18d4d36555962c192af8691a099c.
2016-02-22 19:06:48 -05:00
Carl Eugen Hoyos
37afeabd1b lavfi/nnedi: Fix a compilation warning.
Silences the following warning:
libavfilter/vf_nnedi.c:611:15: warning: assignment discards ‘const’ qualifier from pointer target type
2016-02-23 00:21:49 +01:00
Carl Eugen Hoyos
44cf5b41d3 lavfi/nnedi: Fix a memleak. 2016-02-23 00:19:11 +01:00
Muhammad Faiz
76377d66b7 avfilter/avf_showcqt: remove unneeded headers 2016-02-23 01:05:08 +07:00
Muhammad Faiz
bfc61b0fcc avfilter: add firequalizer filter
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
2016-02-23 00:44:07 +07:00
Rostislav Pehlivanov
1387f3a051 vc2enc: set quantization ceiling to 50
The reference encoder limits it to 64, but testing revealed that there
is absolutely no difference for indices above 50 in amount of zeroed
coefficients.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-02-22 17:25:13 +00:00
Paul B Mahol
5d93437e46 avfilter/vf_waveform: add 12bit depth support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-02-22 18:04:04 +01:00
James Almer
26034929d5 checkasm: bench each vf_blend mode once
Also bench a smaller buffer. This drastically reduces --bench runtime
and reports smaller, more readable numbers.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-02-22 13:54:07 -03:00
Xiaolei Yu
5a91589476 swscale/arm: re-enable neon rgbx to nv12 routines
Commit '842b8f4ba2e79b9c004a67f6fdb3d5c5d05805d3' fixed clang/iphone
build but failed on some versions of cygwin. It has now been verified
to work on both platforms.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-22 17:29:58 +01:00
Anton Khirnov
ec4c483976 lavf: add a protocol whitelist/blacklist for file opened internally
Should make the default behaviour safer for careless callers that open
random untrusted files.

Bug-Id: CVE-2016-1897
Bug-Id: CVE-2016-1898
2016-02-22 11:48:30 +01:00
Anton Khirnov
8c0ceafb0f urlprotocol: receive a list of protocols from the caller
This way, the decisions about which protocols are available for use in
any given situations can be delegated to the caller.
2016-02-22 11:45:31 +01:00
Anton Khirnov
cae448cfbf aviobuf: add a private data struct for avio_open()ed contexts
It will be useful in the following commits.
2016-02-22 11:36:47 +01:00
Anton Khirnov
832a202c47 protocols: make the list of protocols static
Disallow other code to touch it directly, now it's only accessible
through a blacklisting/whitelisting function.
2016-02-22 11:35:57 +01:00
Anton Khirnov
7d61dc95d7 lavf: move urlcontext_child_class_next() to protocols.c
It needs to access the list of protocols directly, so it more properly
belongs there.
2016-02-22 11:35:52 +01:00
Anton Khirnov
0fa00d0591 lavf: move avio_enum_protocols() to protocols.c
It's a more appropriate place for it.
2016-02-22 11:35:46 +01:00
Anton Khirnov
2758cdedfb lavf: reorganize URLProtocols
Instead of a linked list constructed at av_register_all(), store them
in a constant array of pointers.

Since no registration is necessary now, this removes some global state
from lavf. This will also allow the urlprotocol layer caller to limit
the available protocols in a simple and flexible way in the following
commits.
2016-02-22 11:30:58 +01:00
Anton Khirnov
225e84e745 hls: disallow opening nested files in child demuxers 2016-02-22 11:30:33 +01:00
Anton Khirnov
e192cd9ce2 smoothstreamingenc: do not open the files as read+write
They are only written to, never read.
2016-02-22 11:30:24 +01:00
Anton Khirnov
d082078a88 dashenc: eliminate ffurl_* usage
Now all IO should go through the IO callbacks and be interceptable by
the caller.
2016-02-22 11:29:00 +01:00
Anton Khirnov
7fbb3b5b98 lavf: use the io_open callbacks for files opened from open_input() as well
There is no real reason to treat them differently.
2016-02-22 11:28:35 +01:00
Anton Khirnov
5efd91284e avprobe: do not call avio_close() on a custom context
avio_close() can only be called on AVIOContexts created by avio_open(2).
2016-02-22 11:28:26 +01:00
Anton Khirnov
dc6527ed90 nutenc: do not use AVCodecContext.frame_size
It will in general not be available. Use block_align if known or fall
back to av_get_audio_frame_duration().
2016-02-22 11:28:00 +01:00
Luca Barbato
bf7be043fc matroska: Always consider S_TEXT/UTF8 as SRT when demuxing
Reported-By: Maxim Koitsov <maksbotan@gentoo.org>
2016-02-22 09:40:16 +01:00
Michael Niedermayer
1ec7a70380 avutil/pixdesc: Make get_color_type() aware of CIE XYZ formats
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-22 03:49:43 +01:00
Josh de Kock
67f8a0be54 configure&avdevice/jack: Fixed issue #43 JACK indev support on OSX
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-22 00:46:49 +01:00
Mats Peterson
cf85a20d92 lavc/rawdec: Align AV_PIX_FMT_RGB24 correctly
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-22 00:44:42 +01:00
Marton Balint
3a4232a1a0 avformat/asfenc: write group_mutual_exclusion_objects for audio on multiple languages
Improves streaming compatibility with Windows Media Services. Also tested for
compatilbility in Windows Media Player, Windows Media ASF Viewer and VLC.

This version of the patch only writes exclusion among audio streams, therefore
choosing a subtitle language should be possible independently of audio language.

Signed-off-by: Marton Balint <cus@passwd.hu>
2016-02-21 23:24:09 +01:00
Zalewa
2ac5a1a28e ffserver: NoVideo and NoAudio flags weren't cleared between streams.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-21 22:29:15 +01:00
Paul B Mahol
2b5b001182 doc/filters: fix nnedi typos
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-02-21 21:34:32 +01:00
Michael Niedermayer
0028da36cd avformat/mpjpegdec: add AVFMT_NOTIMESTAMPS
there are no timestamps being set, thus do not attempt to collect any

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-21 20:07:50 +01:00
Alex Agranovsky
6dc1d5f87c lavf/mpjpeg: probe should not depend on Content-Length MIME header being present
Signed-off-by: Alex Agranovsky <alex@sighthound.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-21 20:07:50 +01:00
James Almer
778439b69a avcodec/webp: move exif_metadata outside of WebPContext
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-02-21 14:31:19 -03:00
Rostislav Pehlivanov
dc0481f2fb vc2enc: use LAVC_INDENT instead of FFMPEG_VERSION for encoder comment
Prevents from having to recompile vc2enc on every single commit.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-02-21 16:39:54 +00:00
Michael Niedermayer
0910488a16 avformat/riffenc: Also check codec tag before setting raw_pal_avi
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-21 13:08:21 +01:00
Oliver Collyer
a2f8beef2d ffserver&ffm: Fixed issues preventing ffserver write_index and files_size from being set correctly which was breaking ffserver streaming.
I discovered that ffserver streaming was broken (it seems like it has been since 20th November) and I opened a ticket for this (https://trac.ffmpeg.org/ticket/5250 <https://trac.ffmpeg.org/ticket/5250>).

I spent yesterday learning git bisect (with the kind help of cehoyos) to painstakingly track down the cause. This was made more difficult due to the presence of a segfault in ffserver during the period where the bug was introduced so I first had to identify when and how that was fixed and then retrospectively apply that fix again for each step of the second git bisect to find the actual bug.

Anyway, the fruits of my labour are the innocent looking patch below to correct a couple of typos and define a valid range for two variables.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-21 12:59:07 +01:00
Mats Peterson
100167451a lavc/rawdec: Remove monowhite switching code for 1 bpp AVI without a palette
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-21 03:53:38 +01:00
Michael Niedermayer
bb629792a2 avformat/avienc: Fix assertion failure with 256 palette entries
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-21 03:30:50 +01:00
Mats Peterson
a51d82b85c lavf/avienc: Add palette after BITMAPINFOHEADER
lavf/riffenc: Write space for palette
tests/ref/vsynth: Update 1 bpp files for pal8

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-21 03:30:50 +01:00
Reto Kromer
f8d685270e avienc: Remove unused variable 'ret'
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2016-02-20 15:45:28 -08:00
Diego Biurrun
8caadfc53d fate: Be silent when switching to Git branch 2016-02-20 17:03:40 +01:00
Rostislav Pehlivanov
029c069c6d vc2enc: add support for Haar wavelet transforms
This commit adds support for the (simple, allowed in the spec, but
inferior in quality) Haar wavelet transforms.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-02-20 13:49:44 +00:00
Mark Harris
56e2cd9c04 avformat/icodec: Fix crash probing fuzzed file
Avoid invalid memory read/crash when frame offset >= 0xfffffff8.
Base64-encoded example: AAABADAwMDAwMAAAMAAwMDAw/P///w==
(The previous commit verifies that p->buf_size >= 22.)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-20 02:56:25 +01:00
Mark Harris
1b4fbf8080 avformat/icodec: ico probe with unknown data
Fix cases where unknown data (data beyond p->buf_size) could produce a
higher ico probe score than if the unknown data was known and valid.
For example:
    Header:  OK, 2 frames
    Frame 0: Unknown (offset points beyond end of probe buffer)
    Frame 1: Invalid
Previously this example had a score of 25, even though the score would
be 1 if the unknown frame was known to be valid or 0 if it was known
to be invalid.  For this example the score is now 1.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-20 02:56:25 +01:00
Carl Eugen Hoyos
e6cbe3ffef configure: Fix webm_dash_manifest demuxer standalone compilation. 2016-02-20 00:29:55 +01:00
Marton Balint
308ac2f7e2 ffmpeg: init input streams before opening encoders
Codec options of streams detected during avformat_find_stream_info are not set
therefore without this patch we initialize the encoders with decoder info
based on decoders without options.

This cause problems for probed DVB teletext streams where
avctx->subtitle_header depend on the txt_format setting.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-02-19 21:55:25 +01:00
Marton Balint
6c905dd3c2 avcodec/libzvbi-teletextdec: use common functions for matching data_unit_id and data_identifier
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-02-19 21:50:19 +01:00
Marton Balint
51afd9f4e1 avformat/dvbtxt: add raw demuxer for dvb teletext probing
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-02-19 21:50:16 +01:00
Carl Eugen Hoyos
73781741b7 lavc/libvpx: Reindent after last commit. 2016-02-19 21:11:56 +01:00
Carl Eugen Hoyos
432be6362c lavc/libvpx: Fix support for RGB colorspace.
Reported and tested by Nicolas George.
Fixes ticket #5249.
2016-02-19 21:06:26 +01:00
Carl Eugen Hoyos
84d7933e3b lavc/libvpx: Fix high-bitdepth pix_fmts on big endian. 2016-02-19 21:02:42 +01:00
Diego Biurrun
8d918a98aa rtpdec: Use the right logging context 2016-02-19 20:38:18 +01:00
Diego Biurrun
d24bd96bdd build: Disentangle VC-1 decoder and parser 2016-02-19 20:38:18 +01:00
Diego Biurrun
15a24614ae build: Add vc1dsp component for more fine-grained dependencies 2016-02-19 20:38:18 +01:00
Diego Biurrun
f9fbd47467 msmpeg4data: Move WMV2 data tables to their own file 2016-02-19 20:38:18 +01:00
Diego Biurrun
79866803ff msmpeg4data: K&R formatting cosmetics 2016-02-19 20:38:17 +01:00
Diego Biurrun
b10c33c5ea build: Add missing mpegvideo dependency for the MSS2 and VC-1 decoders 2016-02-19 20:38:17 +01:00
Diego Biurrun
7d16d8533d build: More precise dependencies for h264dsp 2016-02-19 20:38:17 +01:00
James Almer
76af0c7877 checkasm: fix dependencies for vf_blend tests
They will now compile if avcodec is disabled

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-02-19 16:31:55 -03:00
Luca Barbato
f273f7fb25 mkv: Force the full parsing of mp3
Some muxer might or might not fit incomplete mp3 frames in
their packets.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-02-19 17:35:33 +01:00
Luca Barbato
3ef98937f5 mov: Force the full parsing of mp3
Some muxer might or might not fit incomplete mp3 frames in
their packets.

Bug-Id: 899

CC: libav-stable@libav.org

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-02-19 17:35:26 +01:00
Michael Niedermayer
7ac962af38 avformat/avienc: Store pal8 palette
This can be made more efficient, but first and the main goal of this change is to
store it at all

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-19 15:47:33 +01:00
Diego Biurrun
b4a0f172c7 Revert all recent configure changes related to dependency resolution
This reverts commits 2edc718723b6, a2bb771a3cde, 21c750f240b9, 8e7bea6dc6ac.
2016-02-19 13:43:52 +01:00
Paul B Mahol
4956dc88d1 avcodec/cdxl: add support for raw videos with chunky format
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-02-19 10:45:54 +01:00
Michael Niedermayer
98a0053d0f avcodec/h264: Execute error concealment before marking the frame as done.
Fixes race condition causing artifacts
Fixes Ticket4122

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-19 01:31:16 +01:00
Michael Niedermayer
9dd4dcde9c avformat/avienc: Use avi_write_packet_internal() to store raw rgb in a more spec compliant way
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-18 21:26:50 +01:00
Michael Niedermayer
8fdee3ee8f Revert 4 commits to configure which broke dependency handling
Revert "configure: Don't enable examples when --disable-everything is used"
reverted as the problematic commit will be reverted too
This reverts commit 02dfa64c088c87367c298a3f648454204656734f.

Revert "Merge commit 'a2bb771a3cded8a05137c0effb34f61a2bc78e22'"
This reverts commit e8ebcb0034c5d4e5df8ff407a5c28d8c53823236, reversing
changes made to 3bff005be8ea213c23160ee0ac286634a80a10e1.

Revert "Merge commit '21c750f240b9d0c41a258d1adee2d9f75ff378b6'"
This reverts commit 470bfab470893d45328f4e6e25d60b89c9af1abe, reversing
changes made to f97ee815cf25580cbb9d6bed304d9c22895f7074.

Revert "Revert "configure: Revert recent changes to disable-everything""
This reverts commit f97ee815cf25580cbb9d6bed304d9c22895f7074.

Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Immediate commit suggested by BBB
2016-02-18 16:28:30 +01:00
Diego Biurrun
0d1229f1d2 voc: Split ff_voc_get_packet into a separate file 2016-02-18 15:35:46 +01:00
Diego Biurrun
624e235502 build: Introduce iso_media component 2016-02-18 15:35:46 +01:00
Diego Biurrun
ab9068cc9c build: Fix typo in HEVC VDPAU hwaccel dependencies 2016-02-18 15:35:46 +01:00
Diego Biurrun
82454c3a82 build: Let the WTV demuxer select the MPEG-TS demuxer
The WTV demuxer depends on large parts of the MPEG-TS demuxer internals
anyway and fails to build without it.
2016-02-18 15:35:45 +01:00
Diego Biurrun
de3b134be3 build: Adjust mpeg4video parser dependencies 2016-02-18 15:35:45 +01:00
Diego Biurrun
2870972e9d build: Fix mpegvideo component dependencies 2016-02-18 15:35:45 +01:00
Diego Biurrun
7403be9b1b build: Fix dependencies for components relying on H.263 data tables 2016-02-18 15:35:45 +01:00
Diego Biurrun
e453129321 build: Add missing dependencies for eatqi decoder 2016-02-18 15:35:44 +01:00
Vittorio Giovara
71eaefa64a build: Add missing celp_math dependency for G723_1 encoder and decoder
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2016-02-18 15:35:44 +01:00
Diego Biurrun
7c82d31cbe checkasm: Use standard multiple inclusion guards 2016-02-18 15:35:44 +01:00
Diego Biurrun
3d8025d602 profiles: Add missing #endif comment 2016-02-18 15:35:44 +01:00
Diego Biurrun
6b96d2dcda cosmetics: Drop particularly redundant silly comments 2016-02-18 15:35:43 +01:00
Diego Biurrun
29c2d06d67 cosmetics: Drop empty comment lines 2016-02-18 15:35:30 +01:00
Moritz Barsnick
6eaad752c1 lavf/options_table: mark use_wallclock_as_timestamps as boolean
It is only used in a boolean context. Also clarify its documentation.

Signed-off-by: Moritz Barsnick <barsnick@gmx.net>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-18 15:24:31 +01:00
Michael Niedermayer
07c7e71d20 avformat/avienc: Split avi_write_packet_internal() out
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-18 14:40:06 +01:00
Michael Niedermayer
090b673aba avformat: add ff_reshuffle_raw_rgb()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-18 14:40:06 +01:00
Thomas Mundt
da94d619f6 avfilter: add BobWeaver deinterlacing filter 2016-02-18 13:12:48 +01:00
Paul B Mahol
08acab85d3 avfilter: add loop filters
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-02-18 11:55:00 +01:00
Anton Khirnov
d847a40888 hwcontext_cuda/vdpau: add to skipheaders 2016-02-18 08:47:39 +01:00
Anton Khirnov
9c0bc1e980 qsv: add a missing #include
Needed for enum AVCodecID
2016-02-18 08:47:33 +01:00
Michael Niedermayer
5590ab45e0 ffmpeg: Check best_effort_timestamp after rescale
Fixes integer overflow
Fixes: Ticket5126

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-18 01:46:59 +01:00
Aman Gupta
5f5467e749 lavc/ccaption_dec: implement special and extended character sets
character sets implemented as defined in https://en.wikipedia.org/wiki/EIA-608#Characters
2016-02-17 21:32:18 +01:00
Aman Gupta
2f26b67d55 lavc/ccaption_dec: do not ignore repeated character commands
control codes in a cc stream can be repeated, and must be ignored.
however, repeated characters must not be ignored. the code attempted to
wipe prev_cmd in handle_char to allow repeated characters to be
processed, but prev_cmd would previously get reset _after_ handle_char()

i also moved the prev_cmd reset out from handle_char() so it can be
re-used for special character sets, which _must_ be ignored when
repeated.
2016-02-17 21:32:18 +01:00
Mark Reid
f09449daa4 tests/fate: added dnxhr parser regression test
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-17 21:16:14 +01:00
Michael Niedermayer
c4ac30909e avutil/hwcontext: Remove duplicate ;
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-17 21:16:14 +01:00
Derek Buitenhuis
02dfa64c08 configure: Don't enable examples when --disable-everything is used
This resotres old behavior.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-17 19:20:49 +00:00
Paul B Mahol
38ed528fa5 avfilter/drawutils: >8 bit support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-02-17 18:59:56 +01:00
Derek Buitenhuis
6b706ce85f Merge commit 'bd49be885e9ad6bae599c54473ba2fa2957eb140'
* commit 'bd49be885e9ad6bae599c54473ba2fa2957eb140':
  avconv_vdpau: use the hwcontext API to simplify code

Tested-by: wm4
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-17 16:47:05 +00:00
Derek Buitenhuis
d779d8d771 Merge commit 'a001ce31bc2bcf875a39b5fb22dae49120293b42'
* commit 'a001ce31bc2bcf875a39b5fb22dae49120293b42':
  hwcontext: add a VDPAU implementation

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-17 16:16:34 +00:00
Derek Buitenhuis
1a708780f3 Merge commit '89923e418b494e337683442ab896d754bc07341a'
* commit '89923e418b494e337683442ab896d754bc07341a':
  lavu: add a framework for handling hwaccel frames

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-17 16:12:25 +00:00
Derek Buitenhuis
26abd5149e Merge commit '721a4efc0545548a241080b53ab480e34f366240'
* commit '721a4efc0545548a241080b53ab480e34f366240':
  buffer: add support for pools using caller data in allocation

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-17 16:07:16 +00:00
Derek Buitenhuis
ae3c0a9c1f Merge commit 'c084d6d2cfb570b10d8784eb20cc696dfb7c5605'
* commit 'c084d6d2cfb570b10d8784eb20cc696dfb7c5605':
  buffersrc: default SAR to 0 (unknown) rather than 1

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-17 15:42:12 +00:00
Derek Buitenhuis
e8ebcb0034 Merge commit 'a2bb771a3cded8a05137c0effb34f61a2bc78e22'
* commit 'a2bb771a3cded8a05137c0effb34f61a2bc78e22':
  configure: Restore the --enable-everything behaviour

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-17 15:39:35 +00:00
Derek Buitenhuis
3bff005be8 Merge commit '5e1beec944dacd6b4ed7d710125dd508c41ca969'
* commit '5e1beec944dacd6b4ed7d710125dd508c41ca969':
  configure: Print which libraries will be built

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-17 15:39:16 +00:00
Derek Buitenhuis
470bfab470 Merge commit '21c750f240b9d0c41a258d1adee2d9f75ff378b6'
* commit '21c750f240b9d0c41a258d1adee2d9f75ff378b6':
  configure: Use `require` for the non-component options

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-17 15:36:51 +00:00
Derek Buitenhuis
f97ee815cf Revert "configure: Revert recent changes to disable-everything"
Following merges make it work as before.

This reverts commit cefad29df93ab88ebab584e6ee151d5339d9329f.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-17 15:36:50 +00:00
Johan Ström
6c31c99289 hlsenc: add use_localtime_mkdir option to automatically create time-based directory
Use with -use_localtime, and set -hls_segment_filename to a path which
contains a subdirectory i.e. /some/path/%Y%m%d/%Y%m%dT%H%M%S-%s.ts
This will mkdir the %Y%m%d-part of the path if it does not already
exist.
In addition, each filename in the playlist output will be prefixed with
this subdirectory (if playlist and segment shares the same base path).

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-17 16:17:58 +01:00
Muhammad Faiz
7c11e727f6 avfilter/avf_showcqt: improve pts handling
correct output pts based on input pts
make seeking possible
output frame one by one on eof
tested with showinfo filter

Suggested-by: Paul B Mahol <onemda@gmail.com>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-17 16:13:09 +01:00
Michael Niedermayer
c351126ee9 avcodec/eatqi: print error on mb decode failure
Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-17 16:13:09 +01:00
Paul B Mahol
4dc5880381 avfilter/vf_drawbox: reindent
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-02-17 09:42:46 +01:00
Paul B Mahol
5589698e0b avfilter/vf_drawbox: add alpha pixel formats support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-02-17 09:39:05 +01:00
Michael Niedermayer
f6492a2ea8 swscale/x86/output: Fix yuv2planeX_16* with unaligned destination
Reviewed-by: BBB
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-17 04:47:51 +01:00
Michael Niedermayer
d07f6e5f1c swscale/x86/output: Move code into yuv2planeX_mainloop
Reviewed-by: BBB
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-17 04:47:34 +01:00
Michael Niedermayer
2e8ad2d65a avcodec/mpeg12: Remove duplicate block_last_index setting code
Based on 7c25ffe070c286874a8c3513f7504b90e1626b0c and 58dd885f9ae7feee002773253e345e11e7142739

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-16 21:47:56 +01:00
Michael Niedermayer
5c02c95f2c avcodec/mpeg12: Fix error return
Also remove a tab

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-16 21:46:00 +01:00
Michael Niedermayer
58f21b6c93 avformat/hls: fix potential integer overflow
This is not a regression

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-16 21:46:00 +01:00
Derek Buitenhuis
00bd237499 mov: Fix leftover merge conflict cruft
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-16 20:09:56 +00:00
Derek Buitenhuis
4e3185d208 Merge commit '5eb562831b3a9bea8026c413ef1338e06450d005'
This commit is a no-op.

* commit '5eb562831b3a9bea8026c413ef1338e06450d005':
  mov: Use the correct type for size

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-16 20:07:08 +00:00
Derek Buitenhuis
cbe3f28d0a Merge commit '8d34a2f803c9ca9433b5a51bacbbe352e8d327e2'
* commit '8d34a2f803c9ca9433b5a51bacbbe352e8d327e2':
  vdpau: Support for VDPAU accelerated HEVC decoding

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-16 20:05:28 +00:00
Derek Buitenhuis
1466379059 Merge commit '8958c5c64d05453204642b55a7b8b44c93023b17'
This commit is a no-op.

* commit '8958c5c64d05453204642b55a7b8b44c93023b17':
  hevc: Track long and short term RPS size for VDPAU

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-16 19:53:50 +00:00
Derek Buitenhuis
df61e4c241 Merge commit '8c399bd5cefd572eceb448981fcb6d4dbca35d27'
This commit is a no-op.

* commit '8c399bd5cefd572eceb448981fcb6d4dbca35d27':
  dxva2_hevc: properly signal the num_delta_pocs from the SPS RPS

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-16 19:52:36 +00:00
Derek Buitenhuis
0479cf8530 Merge commit 'e579d8b29cdb9b42c50a0fde277dfb047c1466ad'
* commit 'e579d8b29cdb9b42c50a0fde277dfb047c1466ad':
  lavf: Dump the cpb side data information

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-16 19:51:02 +00:00
Derek Buitenhuis
fab8d9717c Merge commit 'd005ccc630e42daab8ec2afecf972d1551a9401a'
This commit is a no-op. Ours should be superior.

* commit 'd005ccc630e42daab8ec2afecf972d1551a9401a':
  nvenc: rename a misnamed function
  nvenc: merge input and output surface structs
  nvenc: factor out the pixel format list

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-16 19:50:01 +00:00
Derek Buitenhuis
9a9f3f151f Merge commit 'fb25d99b0a5e21fb8cc184c7a9d3736387778266'
This commit is a no-op.

* commit 'fb25d99b0a5e21fb8cc184c7a9d3736387778266':
  buffersrc: do not discard the error from ff_filter_frame()

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-16 19:48:39 +00:00
Derek Buitenhuis
c82d31808b Merge commit 'f7d77b9a5dd42bf0f5dffecf590466b4c4239437'
* commit 'f7d77b9a5dd42bf0f5dffecf590466b4c4239437':
  eatqi: Remove MpegEncContext dependency

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-16 19:41:55 +00:00
Derek Buitenhuis
58dd885f9a Merge commit '7c25ffe070c286874a8c3513f7504b90e1626b0c'
* commit '7c25ffe070c286874a8c3513f7504b90e1626b0c':
  mpeg1: Make intra-block decoding independent of MpegEncContext

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-16 19:25:17 +00:00
Derek Buitenhuis
8e2105297d Merge commit '249827f736db4c94dfcb24a3883aa4c04f9b119b'
* commit '249827f736db4c94dfcb24a3883aa4c04f9b119b':
  mpeg12dec: Refactor mpeg1_decode_block_intra()

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-16 19:05:26 +00:00
Derek Buitenhuis
2ec66ff83d Merge commit 'cdbaa436042ba59c3b2bd7e9652e9a14136fd604'
* commit 'cdbaa436042ba59c3b2bd7e9652e9a14136fd604':
  mpeg12dec: Always close reader on error

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-16 19:01:05 +00:00
Paul B Mahol
c4ed213675 avfilter/f_streamselect: check if map is available
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-02-16 19:18:31 +01:00
Derek Buitenhuis
ea1f47757b Merge commit '7a00653be6b13131ce1b2cdeca696429f57caaf8'
* commit '7a00653be6b13131ce1b2cdeca696429f57caaf8':
  tiny_psnr: Support large files

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-16 18:11:05 +00:00
Lou Logan
ddc9a587f9 doc/filters: remove redundant example
Newer example in blend from f80b475 is faster and simpler.

Signed-off-by: Lou Logan <lou@lrcd.com>
2016-02-16 08:54:19 -09:00
Derek Buitenhuis
55cada3010 Merge commit '99214d42a902c8392d7887c08fdc5dc1fc2475ae'
This commit is a no-op. FFmpeg already has this.

* commit '99214d42a902c8392d7887c08fdc5dc1fc2475ae':
  dnxhd: Make the encoder message friendlier

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-16 17:48:30 +00:00
Derek Buitenhuis
1c417bad61 Merge commit '34c9eba982c75196392a3b0b245dd34297c4511d'
* commit '34c9eba982c75196392a3b0b245dd34297c4511d':
  configure: Refactor toolchain flag setting

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-16 17:44:33 +00:00
Derek Buitenhuis
a236e4e8b8 Merge commit 'dd53af4b37c7790ce26065b36d5655c1af38b295'
This commit is a no-op. I don't want to enrange Certain People
who like to --disable-*.

* commit 'dd53af4b37c7790ce26065b36d5655c1af38b295':
  avplay: drop support for building without lavfi

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-16 17:40:08 +00:00
Derek Buitenhuis
8bbca8de39 Merge commit '5781bfae0cf4271278a8bea176d615cb5c222335'
This commit is a no-op.

* commit '5781bfae0cf4271278a8bea176d615cb5c222335':
  flacenc: Load default prediction_order parameters if none is selected
  asfdec: make sure packet_size is non-zero before seeking
  asfdec: check for too small size in asf_read_unknown
  asfdec: check avio_skip in asf_read_simple_index
  asfdec: break if EOF is reached after asf_read_packet_header

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-16 17:37:47 +00:00
Derek Buitenhuis
e7b8ec8b6f Merge commit '389b79842c67b1f5730215a752a5f89cb1b8d9a3'
This commit is a no-op.

* commit '389b79842c67b1f5730215a752a5f89cb1b8d9a3':
  msvc: Fix libx264 linking
  doc: Improve the channelsplit example
  configure: Support MSYS2 mingw-w64 64bit

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-16 17:34:24 +00:00
Vittorio Giovara
b92962436b mov: Fix the format specifier type for size
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-02-16 18:25:47 +01:00
Derek Buitenhuis
04e4166536 Merge commit 'e280fe13291e9c712a5f4aa13b5263f3e8afed45'
* commit 'e280fe13291e9c712a5f4aa13b5263f3e8afed45':
  v210: Use separate sample_factors

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-16 17:23:32 +00:00
Derek Buitenhuis
6bff2b5f6a Merge commit '15ec7aa4170ed05ad1b17000ef1e3940d0a0c5e7'
This commit is a no-op.

* commit '15ec7aa4170ed05ad1b17000ef1e3940d0a0c5e7':
  v210: Add avx2 version of the 10-bit line encoder
  v210: Add avx2 version of the 8-bit line encoder

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-16 17:21:29 +00:00
Derek Buitenhuis
dc22269b23 Merge commit '1ba1fede9dfe03dc48862e5e0530cca7192f5038'
This commit is a no-op.

* commit '1ba1fede9dfe03dc48862e5e0530cca7192f5038':
  flacenc: Restore defaults and range for {min, max}_prediction_order

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-16 17:12:00 +00:00
Derek Buitenhuis
113c256533 Merge commit '60f0fde3092d18d4d36555962c192af8691a099c'
This commit is a no-op.

* commit '60f0fde3092d18d4d36555962c192af8691a099c':
  libx264: Make sure to preserve default option values

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-16 17:06:54 +00:00
Derek Buitenhuis
2f78be0019 Merge commit '77a44f577b644a328dcf90cde11d2ecae69eda05'
This commit is a no-op.

* commit '77a44f577b644a328dcf90cde11d2ecae69eda05':
  configure: add missing avx2 support check
  x86: Add ymm_reg struct

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-16 17:03:30 +00:00
Derek Buitenhuis
8f8381bf03 Merge commit 'eafb05fcf37cd19a910ca3b17824384f9006bc0a'
* commit 'eafb05fcf37cd19a910ca3b17824384f9006bc0a':
  v210: x86: Add the correct guards around the asm code

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-16 17:02:56 +00:00
Derek Buitenhuis
4401f07f4d Merge commit '4709f72115e4028a1cb43e916925678bfceef870'
This commit is a no-op.

* commit '4709f72115e4028a1cb43e916925678bfceef870':
  lavfi: Use AV_CEIL_RSHIFT where needed

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-16 17:00:52 +00:00
Derek Buitenhuis
56475e885b Merge commit 'e80307140f736f593ee643affa015333d7c5e27f'
* commit 'e80307140f736f593ee643affa015333d7c5e27f':
  yuv4mpegenc: Use AV_CEIL_RSHIFT where needed

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-16 16:57:32 +00:00
Derek Buitenhuis
73bd20c4d2 Merge commit '6695f178a5929eab91d3da7e9023999f1774bd0e'
* commit '6695f178a5929eab91d3da7e9023999f1774bd0e':
  pixdesc: Use AV_CEIL_RSHIFT in documentation

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-16 16:55:28 +00:00
Derek Buitenhuis
3f462fcf76 Merge commit '1546a41adae818b340acdd9b5dacd6d0a92b6507'
* commit '1546a41adae818b340acdd9b5dacd6d0a92b6507':
  pixdesc: Drop unneeded deprecation warning guards

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-16 16:54:12 +00:00
Derek Buitenhuis
c63da6e916 Merge commit '9cac1b4b4f1532fb2aeef54799285360656be5eb'
* commit '9cac1b4b4f1532fb2aeef54799285360656be5eb':
  qsvenc: Add private option to replace coder_type

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-16 16:51:45 +00:00
Derek Buitenhuis
32766877b4 Merge commit 'eef9f06508354d1c7d5624c1c18997e7974288f1'
This commit is a no-nop.

* commit 'eef9f06508354d1c7d5624c1c18997e7974288f1':
  avplay: Allow to override the codec
  avplay: Statically allocate the player state
  avplay: Rename cur_stream to player
  avplay: Rename VideoState to PlayerState
  avplay: Allocate the refresh thread next to the decode thread
  avplay: Move the stream setup in the main thread

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-16 16:49:19 +00:00
Derek Buitenhuis
d0fc5de3a6 Merge commit '81306fd4bdeb5c17d4db771e4fec684773b5790f'
* commit '81306fd4bdeb5c17d4db771e4fec684773b5790f':
  hls: eliminate ffurl_* usage

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-16 16:27:14 +00:00
Paul B Mahol
a588c7ac13 avfilter: add fieldhint filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-02-16 16:12:44 +01:00
Derek Buitenhuis
15d9645fb4 swscale/slice: Actually use the buffers' strides
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-16 14:25:25 +00:00
Mats Peterson
b86ba37096 lavc/rawdec: Retrieve nut palette from packets
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-16 14:49:12 +01:00
Carl Eugen Hoyos
d0962160e0 lavfi/elbg: Make the pal8 output opaque. 2016-02-16 09:16:32 +01:00
Rostislav Pehlivanov
3b1d1437a0 vc2enc: print the average quantization index at the end
Similar to how the AAC encoder does it.
0 means the video's been compressed losslessly/almost losslessly
thoughout. Generally, the higher, the worse.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-02-15 23:54:52 +00:00
Timothy Gu
5d82370930 RELEASE: Update to 3.0.git 2016-02-15 10:20:33 -08:00
Luca Barbato
2edc718723 configure: Relax the implication of --enable for components
Do not error out if some subcomponents cannot be enabled.

Reported-By: RT|AO
2016-02-15 17:57:43 +01:00
KO Myung-Hun
346ec91764 MAINTAINERS: add myself as an OS/2 maintainer
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-15 13:22:07 +01:00
Rostislav Pehlivanov
7cdea450c6 vc2enc: fix use of uninitialized variables in the rate control system
Fixes: CID1352550
Fixes: CID1352549

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-02-15 12:12:16 +00:00
Hendrik Leppkes
a655bc8344 ffmpeg_dxva2: add a profile check for hevc 2016-02-15 12:34:19 +01:00
Hendrik Leppkes
1ec14612a5 ffmpeg_dxva2: support hevc main10 decoding 2016-02-15 12:34:16 +01:00
Hendrik Leppkes
ccb94789e2 hevc: support Main10 decoding through dxva2 2016-02-15 12:33:50 +01:00
Diego Biurrun
47570dbde8 fft: ppc: Place ff_fft_calc_interleave_altivec() under correct ifdefs
Also fix #endif comments in the FFT init code.
2016-02-15 11:58:04 +01:00
Michael Niedermayer
295de3efc5 fate/source-check.sh: Use "git show" instead of git --version to test for git
This fixes fate with non git source trees

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-15 03:40:32 +01:00
Metaksakis Georgios
00c73c475e lavd/gdigrab: mouse dpi awareness
correct mouse location on hidpi screens.
fixes ticket #5008

Signed-off-by: Matt Oliver <protogonoi@gmail.com>
2016-02-15 10:11:11 +11:00
James Almer
70d685a77f x86: use the new helper macros where useful
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-02-14 20:00:21 -03:00
James Almer
73a4589d4b x86: add some more helper macros to check for slow cpuflags
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-02-14 20:00:17 -03:00
Rostislav Pehlivanov
fbc96c50d7 Changelog: add entries for the SMPTE VC-2 decoder and encoder
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-02-14 21:59:50 +00:00
Anton Khirnov
c15f6098b1 avconv: pass the hw context from filters to the encoder 2016-02-14 22:33:26 +01:00
Anton Khirnov
871d0930d4 nvenc: support CUDA frames as input 2016-02-14 22:31:47 +01:00
Anton Khirnov
7b3214d005 lavc: add a field for passing AVHWFramesContext to encoders 2016-02-14 22:29:52 +01:00
Michael Niedermayer
bb9f7bf1a2 Changelog/APIChanges Put 3.0 release marker
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-14 22:27:28 +01:00
Anton Khirnov
21f7cd4acd lavfi: add a filter for uploading normal frames to CUDA 2016-02-14 22:25:38 +01:00
Anton Khirnov
1bf3413461 avconv: use the new buffersrc parameters API
The timebase change in the zmbv-8bit test is due to the fact that
previously the timebase string was evaluated as floating point, then
converted to a rational. After this commit, the timebase is passed
directly as is.
2016-02-14 22:22:41 +01:00
Anton Khirnov
b3dd30db0b lavfi: pass the hw frames context through the filter chain 2016-02-14 22:21:00 +01:00
Anton Khirnov
ad884d1002 hwcontext: add a CUDA implementation 2016-02-14 22:08:33 +01:00
Anton Khirnov
7bc780cd44 pixfmt: add a CUDA hwaccelled format 2016-02-14 22:08:22 +01:00
Anton Khirnov
c51b2c79a7 Allow linking to CUDA dynamically instead of dlopen()ing it at runtime 2016-02-14 22:08:13 +01:00
Anton Khirnov
bd49be885e avconv_vdpau: use the hwcontext API to simplify code 2016-02-14 22:07:44 +01:00
Anton Khirnov
a001ce31bc hwcontext: add a VDPAU implementation 2016-02-14 22:06:04 +01:00
Anton Khirnov
89923e418b lavu: add a framework for handling hwaccel frames 2016-02-14 21:36:59 +01:00
Michael Niedermayer
b4018544fb avformat/img2enc: remove unused variable
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-14 21:30:53 +01:00
Michael Niedermayer
0eb4092c1b avutil/imgutils: remove special case for aligning the palette
This was suggested by wm4 and stefano.
After this patch using align=1 the size used by various functions would not
contain padding, while the palette would be aligned at align>1

This patch makes it required to use align>=4 if the palette is to be accessed
as uint32

As a side-effect It fixes storing pal8 in nut with odd with&height

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-14 21:30:32 +01:00
Anton Khirnov
721a4efc05 buffer: add support for pools using caller data in allocation
This should allow using more complex allocators than simple malloc
wrappers.
2016-02-14 21:24:39 +01:00
Anton Khirnov
c084d6d2cf buffersrc: default SAR to 0 (unknown) rather than 1
It makes more sense to not claim anything about the SAR if we don't know
anything. No changes in the FATE tests, since this is what avconv ends
up doing anyway.
2016-02-14 21:24:24 +01:00
Michael Niedermayer
8352f5c807 doc/protocols: document protocol_whitelist
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-14 21:15:58 +01:00
Michael Niedermayer
e5655a32bc avcodec/h264_cabac: Check decode_cabac_mb_mvd() for failure
Fixes harmless integer overflow
Fixes Ticket5150

No speedloss measured, actually its slightly faster, but please benchmark & double check this

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-14 21:09:07 +01:00
Michael Niedermayer
dcb6d5b831 avformat/genh: Mark coef_splitted as av_unused
This avoid "libavformat/genh.c:43:14: warning: variable coef_splitted set but not used"
Fewer warnings makes it easier to see new and important warnings

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-14 21:05:50 +01:00
Marton Balint
ae51f9bd6c avutil/parseutils: remove 2112 date from fate test
It is not supported on 32bit.

Signed-off-by: Marton Balint <cus@passwd.hu>
2016-02-14 20:13:15 +01:00
Timothy Gu
bcc223523e x86/vc1dsp: Port vc1_*_hor_16b_shift2 to NASM format
Reviewed-by: Christophe Gisquet <christophe.gisquet@gmail.com>
2016-02-14 11:11:02 -08:00
Timothy Gu
ebf648d490 checkasm/vf_blend: Decrease iteration count
The test is already slow.
2016-02-14 10:48:24 -08:00
Timothy Gu
a953a2991e checkasm: Add vf_blend tests 2016-02-14 10:46:56 -08:00
Timothy Gu
8c56a4a1ed vf_blend: Move C dsp function mapping to separate function 2016-02-14 10:46:56 -08:00
Mark Reid
8395b6eeaa libavcodec/dnxhd_parser: add parser and probe support raw 444 and dnxhr formats
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-14 19:17:36 +01:00
KO Myung-Hun
b8bc6b14a5 compat/os2threads: split long lines
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-14 19:17:36 +01:00
KO Myung-Hun
6bf5e7d3e7 compat/os2threads: support the return value of joined thread
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-14 19:17:36 +01:00
KO Myung-Hun
22a4046d66 compat/os2threads: Improve pthread_cond_xxx() functions
1. Manipulate waiting count in pthread_cond_wait()
2. Use builtin atomic functions to manipulate waiting count

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-14 19:17:36 +01:00
Michael Niedermayer
b65ea6ab44 avfilter/vf_tinterlace: fix image alignment
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-14 19:17:36 +01:00
Timothy Gu
a678d66781 vf_blend: Use integers for divide mode
2.5x faster for 8-bit mode without autovectorization in GCC, 2x
slower with it on x86. However, since the platforms we enable GCC
autovectorization on most probably has support for SSE2
optimization (added in the subsequent commit), this commit should
in general do good.
2016-02-14 09:12:37 -08:00
David Monro
4b750104ea lavf/spdifenc: Support MLP encapsulation.
Fixes bug 821.

Signed-off-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
2016-02-14 18:02:22 +01:00
Timothy Gu
4574323973 vf_blend: Reduce number of arguments for kernel function 2016-02-14 08:58:41 -08:00
Timothy Gu
ee281b884e vf_blend: Use memcpy when opacity is 0
For xor mode, 1.8x faster on Haswell.
2016-02-14 08:57:07 -08:00
Timothy Gu
ba25936df5 vf_blend: Templatize identity function and use a better name 2016-02-14 08:57:05 -08:00
Carl Eugen Hoyos
4c44972f99 avcodec: Fix a typo. 2016-02-14 16:14:08 +01:00
Carl Eugen Hoyos
593bb50e06 MAINTAINERS: Add myself as libutvideo maintainer. 2016-02-14 15:51:38 +01:00
Paul B Mahol
e167d4ebac avfilter/f_metadata: remove unused headers
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-02-14 15:21:36 +01:00
Alex Agranovsky
ddda2cc43c lavf/mpjpeg: do not include CRLF preceding boundary as part of the returned frame
Signed-off-by: Alex Agranovsky <alex@sighthound.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-14 13:48:33 +01:00
Andreas Cadhalpun
5edd1f62ca avcodec: only warn about hwaccel with frame threads
VLC uses hwaccel with frame threads and it works fine, but returning
an error here made it fail.

This regression was introduced in commit 31741ae.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>

Warning message text by nevcairiel

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-14 12:53:55 +01:00
Alex Agranovsky
09b8e97ab6 lavf/mpjpeg: Trim quotes on MIME boundary, if present.
Fixes 5023

Signed-off-by: Alex Agranovsky <alex@sighthound.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-14 12:31:08 +01:00
Luca Barbato
a2bb771a3c configure: Restore the --enable-everything behaviour
Make sure that the minimum set of dependencies needed by the tools
and the examples are enabled.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-02-14 11:44:57 +01:00
Luca Barbato
5e1beec944 configure: Print which libraries will be built
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-02-14 11:44:57 +01:00
Luca Barbato
21c750f240 configure: Use require for the non-component options
And make sure to enable all the components needed

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-02-14 11:44:57 +01:00
Luca Barbato
5eb562831b mov: Use the correct type for size
An AVIO offset is int64_t.

Bug-Id: 921
2016-02-14 11:44:38 +01:00
Marton Balint
a573e6c103 avformat/utils: remove ff_iso8601_to_unix_time
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-02-14 01:51:14 +01:00
Marton Balint
66e85a180a avformat/matroskaenc: use ff_parse_creation_time_metadata
Also increase precision to microsecs, and avoid writing creation_time as a
simple tag metadata item.

Signed-off-by: Marton Balint <cus@passwd.hu>
2016-02-14 01:51:14 +01:00
Marton Balint
ad17cc9744 avformat/mxfenc: use ff_parse_creation_time_metadata
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-02-14 01:51:14 +01:00
Marton Balint
5f64f3d8cf avformat/movenc: use ff_parse_creation_time_metadata
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-02-14 01:51:14 +01:00
Marton Balint
5c20bc8f47 avformat/gxfenc: use ff_parse_creation_time_metadata
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-02-14 01:51:14 +01:00
Marton Balint
83b01ed212 avformat/ffmenc: use ff_parse_creation_time_metadata
FYI this muxer bails out on parse error and not just warn the user.

Signed-off-by: Marton Balint <cus@passwd.hu>
2016-02-14 01:51:14 +01:00
Marton Balint
bf0607b6db avformat/dvenc: use ff_parse_creation_time_metadata
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-02-14 01:51:14 +01:00
Marton Balint
ea1bf08a4c avformat/asfenc: use ff_parse_creation_time_metadata
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-02-14 01:51:14 +01:00
Marton Balint
e942454daf avformat/utils: add ff_parse_creation_time_metadata
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-02-14 01:51:14 +01:00
Marton Balint
f834f0cab6 avutil/parseutils: accept everything in av_parse_time that ff_iso8601_to_unix_time accepts
Also parse timezone information previously ignored in ff_iso8601_to_unix_time.

Signed-off-by: Marton Balint <cus@passwd.hu>
2016-02-14 01:46:35 +01:00
Marton Balint
3235241061 avutil/parseutils: use microsecond precision when parsing "now" in av_parse_time()
Use av_gettime() instead of time(0) for querying current time.

Signed-off-by: Marton Balint <cus@passwd.hu>
2016-02-14 01:46:35 +01:00
Marton Balint
35890aaa65 avformat/img2enc: disable atomic file creation by default
Currently it is broken when explicitly using the file protocol, it uses an
insecure temporary file name, and in commit b4431c80 disabling the option by
default was already considered. Also it is not very consistent to have such an
option for one particular muxer.

Signed-off-by: Marton Balint <cus@passwd.hu>
2016-02-14 01:34:16 +01:00
Marton Balint
0250fc2146 avformat/img2enc: return error if image rename fails
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-02-14 01:34:16 +01:00
Timothy Gu
123ff81a45 avutil: Remove x86_cpu.h
It is private (uninstalled) and unused.
2016-02-13 16:30:26 -08:00
Neil Birkbeck
3b0974d3ef lavc/hevc Parse SEI_TYPE_MASTERING_DISPLAY_INFO and propagate content into the AVMasteringDisplayMetadata side data.
Add support for parsing SEI_TYPE_MASTERING_DISPLAY_INFO and propagate contents into
the AVMasteringDisplayMetadata side data. Primaries are ordered in RGB order and
the values are converted to rationals ([0,1] for CEI 1931 Chroma coords,
and cd/m^2 for luma).

Signed-off-by: Neil Birkbeck <neil.birkbeck@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-14 00:36:05 +01:00
FearThe1337
c33ffc7b21 libavdevice/dshow.c: Correct CoGetMalloc check
Current if statement would always be false due to assigning the value of
S_OK which equals 0.

Signed-off-by: FearThe1337 <git@fearthe1337.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-13 22:57:26 +01:00
Michael Niedermayer
4099e4a77d avutil/frame: Free destination qp_table_buf in frame_copy_props()
Fixes memleak
Fixes: Ticket4899

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-13 20:57:26 +01:00
Michael Niedermayer
4c920ce777 avutil/imgutils: only align the palette in av_image_copy_to_buffer() if there is enough space
This allows disabling the alignment by using a compact buffer

Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-13 19:49:34 +01:00
Ronald S. Bultje
5307adadeb vp9: only call ff_get_format on stream format changes.
In practice, this means we don't call it N times for N-threaded decoding.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-13 19:49:34 +01:00
Timothy Gu
94a1c7491b fate/source: Do not use GNU extensions in sed 2016-02-13 07:59:00 -08:00
Michael Niedermayer
a9b81bfd1c avutil/avstring: add a "ALL" entry and the possibility to negate matches to av_match_name()
This will extend the whitelist features to allow blacklisting individual protocols and to
explicitly force everything to be enabled.

Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-13 16:40:11 +01:00
Michael Niedermayer
d18df8beb0 avutil/imgutils: do not ignore align parameter for pseudo-pal in av_image_get_buffer_size()
Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-13 16:22:45 +01:00
Michael Niedermayer
dab493c89e doc/APIchanges: fill in more missing things
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-13 16:20:59 +01:00
Michael Niedermayer
50a960673d doc/APIchanges: Fill in some missing values
also fix some inconsistencies

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-13 16:16:29 +01:00
Philip Langdale
8d34a2f803 vdpau: Support for VDPAU accelerated HEVC decoding
Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-02-13 14:42:38 +01:00
Philip Langdale
8958c5c64d hevc: Track long and short term RPS size for VDPAU
Today, we track the short term RPS size for DXVA, but only if the
SliceHeader RPS is being used. Otherwise it's left uninitialized.

NVIDIA's VDPAU implementation requires that the size be accurately
tracked even if an SPS RPS is being used. In this case, it's really
counting the size of the RPS idx information, but you end up with
mangled output if the value is not accurate.

VDPAU also needs the size of the long term RPS.

Signed-off-by: Philip Langdale <philipl@overt.org>
Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-02-13 14:24:37 +01:00
Hendrik Leppkes
8c399bd5ce dxva2_hevc: properly signal the num_delta_pocs from the SPS RPS
ucNumDeltaPocsOfRefRpsIdx needs to contain the flat value from the SPS RPS,
and not the final computed value from the slice header RPS, as this calculation
is done internally by the driver again.

Sample-Id: http://trailers.divx.com/hevc/Sintel_4k_27qp_24fps_1aud_9subs.mkvi
Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
2016-02-13 14:19:54 +01:00
Luca Barbato
e579d8b29c lavf: Dump the cpb side data information 2016-02-13 14:03:52 +01:00
Rostislav Pehlivanov
0fe0e213c0 aacenc: temporarily disable Mid/Side coding with multichannel files
Results in dropping out in channels, usually on EIGHT_SHORT windows.
Will be reenabled once the cause has been investigated and a fix has
been made.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-02-13 12:23:22 +00:00
Michael Niedermayer
588e2e3387 avcodec/h264: Fix memleak of a53_caption
Fixes Ticket5111

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-13 02:06:22 +01:00
Mats Peterson
4e5db87174 avcodec/rawdec: Print stride and packet size at debug level
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-13 01:22:38 +01:00
Mats Peterson
efcea77996 avcodec/rawdec: Fix nut pal8 test
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-13 01:21:12 +01:00
Mats Peterson
bbb45773b0 avcodec/rawdec: Initialize default mono palette only for bits_per_coded_sample == 1
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-13 00:58:29 +01:00
Paul B Mahol
f80b4750b9 doc/filters: add one more blend example
This is faster than geq example below.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-02-12 22:21:07 +01:00
Lou Logan
0b0121d7f2 doc/filters: add geq diagonal split screen example
Also remove similar but confusing and less useful example.

Based on geq expression by Patrick Race <raceink at gmail>.

Signed-off-by: Lou Logan <lou@lrcd.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-12 09:58:11 -09:00
Rostislav Pehlivanov
f0a8212436 aacenc: make a better estimate for the audio bitrate if not provided
Takes into account whether there's pairing and if there's an LFE channel.
An SCE has more bits than CPE/2 since IS and M/S save quite a lot of bits
when channels are paired. And most of the SCEs we have are in surround
layouts which map it to the center channel, which usually carries all of
the dialogue and compression artifacts there are easily audiable.

Also refactors the init function a little bit and labels some parts of it.

Fixes bug #5233

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-02-12 18:42:24 +00:00
Rostislav Pehlivanov
d119268ed2 doc/encoders: fix typos in the vc2 encoder documentation
Thanks to RiCON for pointing these out.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-02-12 18:42:24 +00:00
Derek Buitenhuis
5da6bed1e0 MAINTAINERS: Remove myself as libutvideo maintainer
I don't want to touch it, ever again.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-12 17:57:34 +00:00
Rostislav Pehlivanov
0384e3d5df doc/encoders: add documentation for the VC-2 encoder
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-02-12 16:50:07 +00:00
Paul B Mahol
13ea7c9780 avfilter/avf_showspectrum: improve pts handling
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-02-12 17:14:30 +01:00
Michael Niedermayer
817bf8483e avfilter/af_anequalizer: Avoid loss of precision when calculating nyquist frequency
Fixes: CID1351398
Fixes: CID1351400

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-12 15:59:35 +01:00
Michael Niedermayer
f9f684c0fb avfilter/vf_zoompan: Initialize ret
Silences: CID1351394

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-12 15:59:35 +01:00
Michael Niedermayer
03b26a2514 avfilter/vf_zoompan: Fix use of uninitialized variables
Fixes: CID1351392
Fixes: CID1351393
Fixes: CID1351395

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-12 15:59:35 +01:00
Anton Khirnov
d005ccc630 nvenc: rename a misnamed function
This function copies the encoded bistream into the caller's packet,
calling it 'get_frame' is misleading.
2016-02-12 10:20:11 +01:00
Anton Khirnov
118beda355 nvenc: merge input and output surface structs
An input frame always corresponds to exactly one output packet, so there
is no point in complicating the situation by managing them separately.
2016-02-12 10:19:40 +01:00
Anton Khirnov
28259c13db nvenc: factor out the pixel format list 2016-02-12 10:19:26 +01:00
Anton Khirnov
fb25d99b0a buffersrc: do not discard the error from ff_filter_frame() 2016-02-12 10:18:13 +01:00
James Almer
0abdf7030e avcodec/vc2enc_dwt: add missing header
Fixes make checkheaders

Signed-off-by: James Almer <jamrial@gmail.com>
2016-02-12 02:06:05 -03:00
Michael Niedermayer
6973846618 avcodec/h264_slice: Fix dequant table init with field pictures
Fixes regression of Ticket4389

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-12 04:37:35 +01:00
Michael Niedermayer
873158fd76 avcodec/h264_slice: assert relation between current_slice ans slice_ctx
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-12 04:37:35 +01:00
Michael Niedermayer
6c6f2e49e4 avcodec/h264_slice: remove duplicate unconditional picture_structure setting code
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-12 04:37:35 +01:00
Kieran Kunhya
1e2fd57fc0 avcodec/cfhd: Fix errors with valid files. 2016-02-12 01:00:20 +00:00
Michael Niedermayer
bbc4d069d0 avcodec/cfhd: Check the number of tag/value pairs
Fixes potentially long loop
Fixes: CID1351382/11

Reviewed-by: Kieran Kunhya <kieran@kunhya.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-12 01:52:44 +01:00
Michael Niedermayer
156013111a avfilter/avf_ahistogram: assert that variables are initialized by switch()
Silences: CID1351397

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-12 00:38:45 +01:00
Michael Niedermayer
43bf15d1a4 avfilter/avf_showfreqs: assert that variables are initialized by switch()
Silences: CID1351396

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-12 00:37:11 +01:00
Michael Niedermayer
9313fb6a3e avfilter/vf_zoompan: Remove dead store
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-12 00:07:29 +01:00
Michael Niedermayer
62eb935bf9 avfilter/avf_avectorscope: assert that variables are initialized by switch()
Silences: CID1351390
Silences: CID1351391

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-11 23:09:39 +01:00
Michael Niedermayer
03c1129b20 avfilter/vaf_spectrumsynth: assert that variables are initialized by switch()
Silences: CID1351387
Silences: CID1351388
Silences: CID1351389

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-11 23:06:24 +01:00
Paul B Mahol
855d9d29eb doc/filters: fix metadata example
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-02-11 16:30:04 +01:00
Tobias Rapp
80026a8ac3 avfilter/f_metadata: rename "string" into "same_str"
Rename function option value "string" into "same_str". Remove obsolete
"length" option.

Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com>
2016-02-11 16:13:07 +01:00
Tobias Rapp
730da5c207 avfilter/f_metadata: whitespace clean-up
Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com>
2016-02-11 13:50:47 +01:00
Tobias Rapp
6889deba68 avfilter/f_metadata: add starts_with string function
Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com>
2016-02-11 13:50:46 +01:00
Tobias Rapp
202f978728 avfilter/f_metadata: add support for file output
Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com>
2016-02-11 13:50:46 +01:00
Tobias Rapp
8b99c5e8da avfilter/f_metadata: avoid float rounding problems
Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com>
2016-02-11 13:47:25 +01:00
Michael Niedermayer
ac3a275d1e avfilter/vf_nnedi: Simplify away some trivial mem*()
Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-11 02:20:29 +01:00
Michael Niedermayer
8836b8c2a4 fate: Update fate-sub2video for 5486d7fa91f7233e6d9aa9ba8de7fe9287402637
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-11 01:48:35 +01:00
Rostislav Pehlivanov
ac5a4deb3d MAINTAINERS: add my name to the parts I'm maintaining
Not updated since the AAC Encoder.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-02-11 00:01:36 +00:00
Timothy Gu
74f8d9aaef x86/vf_blend: Add SSE2 optimization for screen
10x faster than C.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
2016-02-10 11:26:04 -08:00
Timothy Gu
c8b1612af0 x86/vf_blend: Move multiplying to a macro
Reviewed-by: Paul B Mahol <onemda@gmail.com>
2016-02-10 11:25:11 -08:00
Paul B Mahol
5486d7fa91 avfilter/dualinput: use pts provided by framesync
This fixes stalled output pts when main stream ends.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-02-10 19:57:23 +01:00
Michael Niedermayer
a73b23e3df avformat/hlsenc: Fix filename and options
Regression since bc9a5965c815cf7fd998d8ce14a18b8e861dd9ce

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-10 19:14:53 +01:00
Rostislav Pehlivanov
5669aa2a8a vc2enc: use project-standard inclusion guards
This was first reported on the mailing list in an earlier revision of this
encoder but was forgotten from the final commit.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-02-10 18:02:35 +00:00
Rostislav Pehlivanov
135460383e avformat: add vc2 as an allowed rawenc Dirac extension
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-02-10 17:15:59 +00:00
Rostislav Pehlivanov
ec9e87c922 avcodec: add a native SMPTE VC-2 HQ encoder
This commit adds a new encoder capable of creating BBC/SMPTE Dirac/VC-2 HQ
profile files.

Dirac is a wavelet based codec created by the BBC a little more than 10
years ago. Since then, wavelets have mostly gone out of style as they
did not provide adequate encoding gains at lower bitrates. Dirac was a
fully featured video codec equipped with perceptual masking, support for
most popular pixel formats, interlacing, overlapped-block motion
compensation, and other features. It found new life after being stripped
of various features and standardized as the VC-2 codec by the SMPTE with
an extra profile, the HQ profile that this encoder supports, added.

The HQ profile was based off of the Low-Delay profile previously
existing in Dirac. The profile forbids DC prediction and arithmetic
coding to focus on high performance and low delay at higher bitrates.
The standard bitrates for this profile vary but generally 1:4
compression is expected (~525 Mbps vs the 2200 Mbps for uncompressed
1080p50). The codec only supports I-frames, hence the high bitrates.

The structure of this encoder is simple: do a DWT transform on the
entire image, split it into multiple slices (specified by the user) and
encode them in parallel. All of the slices are of the same size, making
rate control and threading very trivial. Although only in C, this encoder
is capable of 30 frames per second on an 4 core 8 threads Ivy Bridge.
A lookup table is used to encode most of the coefficients.

No code was used from the GSoC encoder from 2007 except for the 2
transform functions in diracenc_transforms.c. All other code was written
from scratch.

This encoder outperforms any other encoders in quality, usability and in
features. Other existing implementations do not support 4 level
transforms or 64x64 blocks (slices), which greatly increase compression.

As previously said, the codec is meant for broadcasting, hence support
for non-broadcasting image widths, heights, bit depths, aspect ratios,
etc. are limited by the "level". Although this codec supports a few
chroma subsamplings (420, 422, 444), signalling those is generally
outside the specifications of the level used (3) and the reference
decoder will outright refuse to read any image with such a flag
signalled (it only supports 1920x1080 yuv422p10). However, most
implementations will happily read files with alternate dimensions,
framerates and formats signalled.

Therefore, in order to encode files other than 1080p50 yuv422p10le, you
need to provide an "-strict -2" argument to the command line. The FFmpeg
decoder will happily read any files made with non-standard parameters,
dimensions and subsamplings, and so will other implementations. IMO this
should be "-strict -1", but I'll leave that up for discussion.

There are still plenty of stuff to implement, for instance 5 more
wavelet transforms are still in the specs and supported by the decoder.

The encoder can be lossless, given a high enough bitrate.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-02-10 17:15:59 +00:00
Rostislav Pehlivanov
4701be7198 options_table: update maximum bitrate limit
The type of the option has been changed but the limit was apparently forgotten.
Some video codes can handle bitrates of over ~2.2 Gbps (like VC-2).

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-02-10 17:15:59 +00:00
Michael Niedermayer
21b459e4bb avformat/segment: Fix header_filename handling
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-10 17:59:58 +01:00
Michael Niedermayer
23261e6001 sws/output: fix ordered dither threshold for mono output
This makes sure that white stays white and black black

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-10 17:22:26 +01:00
Derek Buitenhuis
bc9a5965c8 Merge commit '9f61abc8111c7c43f49ca012e957a108b9cc7610'
This also deprecates our old duplicated callbacks.

* commit '9f61abc8111c7c43f49ca012e957a108b9cc7610':
  lavf: allow custom IO for all files

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-10 14:42:41 +00:00
Michael Niedermayer
d94b11a721 ffmpeg_filter: Factor get_compliance_unofficial_pix_fmts() out
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-10 13:28:23 +01:00
Michael Niedermayer
82d2aa2b32 ffmpeg_filter: Add missing pixel formats to strict_std_compliance case for ljpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-10 13:28:23 +01:00
Michael Niedermayer
a82ff49bb8 ffmpeg_filter: Add YUV 444 to strict_std_compliance case for mjpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-10 13:28:23 +01:00
Paul B Mahol
408ea50ca6 avfilter/f_metadata: fix few logic errors
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-02-10 11:47:52 +01:00
Timothy Gu
5f1aad68c4 tests: Add test for proper header guard
Reviewed-by: Clément Bœsch <u@pkh.me>
2016-02-10 01:21:39 -08:00
Paul B Mahol
4ca8879d19 avfilter: add metadata filters
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-02-10 09:55:39 +01:00
Michael Niedermayer
674cc26f25 avfilter/vf_nnedi: Fix memleak
Fixes CID1351359

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-10 01:00:08 +01:00
Vittorio Giovara
f7d77b9a5d eatqi: Remove MpegEncContext dependency
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2016-02-09 20:04:59 +01:00
Vittorio Giovara
7c25ffe070 mpeg1: Make intra-block decoding independent of MpegEncContext
This allows untangling the eatqi decoder from the MPEG-1 decoder.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2016-02-09 20:04:59 +01:00
Diego Biurrun
249827f736 mpeg12dec: Refactor mpeg1_decode_block_intra()
Reduce variable scope, improve variable name, drop pointless ff_dlog(),
merge variable declaration and initialization, whitespace cosmetics.
2016-02-09 20:04:58 +01:00
Vittorio Giovara
cdbaa43604 mpeg12dec: Always close reader on error
A reader left open may lead to hangs.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2016-02-09 20:04:58 +01:00
Thomas Lee
7a00653be6 tiny_psnr: Support large files
If an input file is bigger than 2GB (assume sizeof(int) == 4)),
size0/size1 will overflow, making stddev and PSNR invalid.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-02-09 20:03:34 +01:00
Luca Barbato
99214d42a9 dnxhd: Make the encoder message friendlier 2016-02-09 20:02:31 +01:00
Diego Biurrun
34c9eba982 configure: Refactor toolchain flag setting
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-02-09 20:02:31 +01:00
Michael Niedermayer
331a33d74a nut: Add PAL8 support
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-09 19:19:43 +01:00
Michael Niedermayer
43a6965569 avcodec/dirac: Fix memleak of dsh on error
Fixes CID1351360

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-09 14:59:36 +01:00
Anton Khirnov
dd53af4b37 avplay: drop support for building without lavfi
lavfi has been considered to be stable for a while now, so it is enabled
in most configurations. Supporting avplay without lavfi requires a lot
of nontrivial ifdef mess for no good reason.
2016-02-09 11:31:24 +01:00
Thierry Foucu
020b75806f lavf/mov: Extend extracting XMP in mov files using UUID Box
The UUID is based on http://www.adobe.com/devnet/xmp.html

The patch is made according to XMP SPECIFICATION PART 3 - STORAGE IN
FILES See Table 8

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-09 01:31:15 +01:00
Timothy Gu
cb8646af24 configure: Enable GCC vectorization on ≥4.9 on x86
4.9 was released precisely nine years after the first GCC version with
autovectorizer (4.0) and six years after the first GCC version with
`-ftree-vectorize` default to enabled on `-O3` (4.3). We've given GCC
enough time to fix those bugs.

FATE passes here on a x86-64 machine with both GCC 4.9.2 and 5.3.1.

Some optimization hotspots benefit greatly from this change, especially
those without handwritten assembly. For instance, the main function in
vf_phase is now 1.6x faster (1.2x overall) on my machine.
2016-02-08 16:25:44 -08:00
Michael Niedermayer
8e46c7c1e7 avfilter/af_agate: fix memleak of out frame
Fixes CID1351358

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-08 22:51:32 +01:00
Timothy Gu
253209ac44 vf_blend: Add SSE2 optimization for multiply
5 times faster than C, 3 times overall.
2016-02-08 13:35:24 -08:00
Michael Niedermayer
5781bfae0c flacenc: Load default prediction_order parameters if none is selected
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-02-08 15:00:29 -05:00
Michael Niedermayer
a25c5dbb5e ffmpeg_opt: Fix memleaks in "manually set programs" loop
Fixes CID1351356, CID1351357

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-08 15:57:24 +01:00
Paul B Mahol
35d9441f7b avfilter/vf_swaprect: add timeline support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-02-08 15:43:09 +01:00
Michael Niedermayer
05924e1440 avfilter/af_anequalizer: Fix memleak of args
Fixes CID1351355

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-08 00:39:15 +01:00
Michael Niedermayer
e7786959cc avfilter/vaf_spectrumsynth: Move "break" up
Fixes CID1351347

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-07 23:03:33 +01:00
Paul B Mahol
6bdeac24e0 avfilter/af_aformat: remove deprecated syntax from options description
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-02-07 22:47:39 +01:00
James Almer
be22bd32fe x86/cpu: set avxslow cpuflag on btver2 CPUs
They are also slow when using 256 bit wide registers

Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-02-07 16:39:21 -03:00
Paul B Mahol
ba618bde7f avfilter/vf_blend: add multiply128 mode
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-02-07 19:50:11 +01:00
Timothy Gu
0bcffc7924 diractab: Fix header guard name 2016-02-07 09:26:15 -08:00
Timothy Gu
59ebf32bca huffyuvencdsp: Undefine "i" macro after each use 2016-02-07 09:19:17 -08:00
Timothy Gu
32fed702b8 libvpxenc: Allow setting tune parameter 2016-02-07 09:12:46 -08:00
Timothy Gu
671761d713 diracdec: Pass DWTPlane to dwt init 2016-02-07 09:09:13 -08:00
Timothy Gu
e04912c0b6 diracdec: Split DWTPlane struct from Plane 2016-02-07 09:09:13 -08:00
Timothy Gu
58ded09bd1 dirac_dwt: Rename init2 to init
The functions are all private.
2016-02-07 09:09:13 -08:00
Timothy Gu
6cdde20beb dirac_dwt: Don't pass information in context as arguments 2016-02-07 09:09:13 -08:00
Clément Bœsch
6c0318c4ba lavfi/fieldmatch: fix fields copy when plane height is odd
Fixes Ticket 5187
2016-02-07 15:49:20 +01:00
Paul B Mahol
f5c3f85eb2 avfilter: add swaprect filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-02-07 12:51:43 +01:00
Andreas Cadhalpun
2e6ba1993e asfdec: make sure packet_size is non-zero before seeking
This fixes infinite loops due to seeking back.

Signed-off-by: Alexandra Hájková <alexandra@khirnov.net>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-02-07 03:12:33 +01:00
Andreas Cadhalpun
bf50607ab7 asfdec: check for too small size in asf_read_unknown
This fixes infinite loops due to seeking back.

Signed-off-by: Alexandra Hájková <alexandra@khirnov.net>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-02-07 03:12:33 +01:00
Andreas Cadhalpun
e4d1621c6e asfdec: check avio_skip in asf_read_simple_index
The loop can be very long, even though the file is very short.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Alexandra Hájková <alexandra@khirnov.net>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-02-07 03:12:33 +01:00
Andreas Cadhalpun
a32dbf2aed asfdec: break if EOF is reached after asf_read_packet_header
asf_read_payload can unset eof_reached, so check it also before calling
that function.

This fixes infinite loops.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Alexandra Hájková <alexandra@khirnov.net>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-02-07 03:12:33 +01:00
Michael Niedermayer
9ee4c89348 avcodec/utils: Add AV_PIX_FMT_GBRAP16?E to avcodec_align_dimensions2()
Found-by: kierank
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-07 01:13:36 +01:00
Michael Niedermayer
2272ab0e84 avformat/mp3enc: Assert that the header we assembled is valid
Silences: CID1351343

The header is calculated by the code above the changed hunk, it is
thus asserted that the header is always correct.

Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-07 01:12:48 +01:00
Paul B Mahol
d12d48d0a8 avfilter: add streamselect and astreamselect filter
Signed-off-by: Clément Bœsch <u@pkh.me>
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-02-06 23:52:09 +01:00
Andreas Cadhalpun
14bf59c1d5 build: use intermediate lcov coverage file
Otherwise the 'lcov -q --remove' run fails with the following error:
lcov: ERROR: cannot write to coverage.info!

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-02-06 15:42:09 +01:00
Andreas Cadhalpun
bb7522ce67 build: fix lcov with src link
When out-of-tree builds now use a relative path, the '-b' option of lcov
is not needed, so just pass the current directory to it in this case.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-02-06 15:30:25 +01:00
Andreas Cadhalpun
e740c3fb90 configure: fall back to using full path if src is a directory
Or when building in-tree.
Also don't try to remove src on distclean in these cases.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-02-06 15:30:25 +01:00
Henrik Gramner
389b79842c msvc: Fix libx264 linking
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-02-06 13:56:39 +01:00
Vicente Jimenez Aguilar
f428893c17 doc: Improve the channelsplit example
Expand LFE acronym (lfe.wav -> low_frecuency_effects.wav) as with others filenames

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-02-06 13:19:25 +01:00
Paul B Mahol
956fed377b cmdutils: realign for some additional filters with very long name
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-02-06 12:48:51 +01:00
Luca Barbato
a38a4f44b5 configure: Support MSYS2 mingw-w64 64bit 2016-02-06 12:07:47 +01:00
James Almer
8ae7447941 x86/dcadec: add ff_lfe_fir0_float_{sse,sse2,avx,fma3}
Up to ~4 times faster on x86_64, ~8 times on x86_32 if compiling using x87 fp math.

Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-02-06 01:36:55 -03:00
James Almer
3e9b8ffc9b avcodec/dcadsp: rename lfe_fir_float functions
Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-02-06 01:29:10 -03:00
Timothy Gu
9fd6ea933f dirac_dwt: Make x86 files/functions names consistent 2016-02-05 19:30:23 -08:00
Timothy Gu
17ab8f7e68 diracdsp: Make x86 files/functions names consistent 2016-02-05 19:29:43 -08:00
Michael Bradshaw
1c40bccc09 lavc/dirac_dwt: fix building without asm
clang needs HAVE_MMX to be first in order to avoid an undefined
reference error.
2016-02-06 01:14:19 +01:00
Henrik Gramner
aa751573fe avcodec/h264: Fix segfault in 4:2:2 chroma deblock with 32-bit msvc
Using rNm and x86inc's stack allocation with a negative value at the same
time isn't supported, and caused the original stack pointer to be clobbered
when using a compiler that doesn't support stack alignment.
2016-02-05 22:01:38 +01:00
Marton Balint
6d14e32555 lavf/asfenc: add support for setting packet size
This can provide a manual workaround for ticket #4230.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-02-05 21:32:14 +01:00
Marton Balint
22bbd6e8b7 lavf/asfenc: add support for storing creation time
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-02-05 21:32:14 +01:00
Marton Balint
79e4293613 lavf/asfenc: add support for storing languages
Checked compatiblity with VLC, Windows Media Player 12 and Windows Media ASF
Viewer 9 series.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-02-05 21:32:14 +01:00
Marton Balint
0464767301 lavf/asfenc: check the number of streams in header
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-02-05 21:32:14 +01:00
Marton Balint
7e6b788f7c lavf/asfenc: add AVClass to context
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-02-05 21:32:14 +01:00
Paul B Mahol
b1fe794033 avfilter/split: support any channel count for asplit filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-02-05 21:05:47 +01:00
James Darnley
7042a55c55 avcodec/h264: mmxext 4:2:2 chroma deblock/loop filter
2.6 times faster (366 vs. 142 cycles)
2016-02-05 17:26:04 +01:00
Mats Peterson
9556446623 lavc/rawdec: Use 16-byte line alignment for B1W0 and B0W1 video in nut
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-05 15:40:49 +01:00
James Almer
16af350ac5 avcodec/dcadsp: replace intptr_t with ptrdiff_t
Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-02-05 11:17:04 -03:00
Trevor \\\\ Higgins
6632802aa0 x11grab: fixed next frame capture time calculation
The next frame time could slip, causing the frame rate to drop until
 frames were dropped. Now will capture at the next correct moment instead.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-05 01:11:17 +01:00
Eran Kornblau
1bbfaba196 avformat/mov: dont print frma warning when format is the same
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-05 01:11:04 +01:00
Michael Niedermayer
1693336aed avfilter/af_apulsator: assert that pathes leaving uninitialized variables do not occur
Fixes: CID1341581, CID1341582

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-04 23:14:02 +01:00
James Almer
4c573f8ce9 fate: fix fate-aac-pns-encode failures on non-sse x86_32 targets
Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-02-04 14:53:31 -03:00
Paul B Mahol
f862ff750b avfilter/vf_stack: free input pads name on uninit
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-02-04 18:02:29 +01:00
Carl Eugen Hoyos
a36c737490 lavf/isom: Add more code points for H264.
Defined by the MP4 registration authority.
Fixes ticket #5217.
2016-02-04 17:40:06 +01:00
Michael Niedermayer
f89bc661b4 avfilter/af_afftfilt: Set last_expr to the default
This fixes a null pointer dereferece
Fixes: CID1351346

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-04 15:13:39 +01:00
Hendrik Leppkes
a969a914f5 dca_parser: ensure frame duration matches the actual sample rate
The parser only parses the core, and thus has a duration relative
to the core sample rate only, not the actual stream sample rate.

FATE references changed due to now correct timestamps.
2016-02-04 12:16:19 +01:00
James Almer
b3b0ecee15 x86/emms: empty the mmx state unconditionally on supported targets
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-02-04 01:49:01 -03:00
Michael Niedermayer
37db3e8931 avcodec/libutvideoenc: Add NULL termintor to options
Fixes segfaults

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-04 02:17:57 +01:00
Michael Niedermayer
61ea7f1509 swscale/swscale-test: Check av_image_fill_linesizes() for failure
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-04 01:49:38 +01:00
James Almer
0711c5bfb8 avutil/aes_crt: free AVAESCTR struct properly
Reviewed-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-02-03 19:33:23 -03:00
Derek Buitenhuis
c4ef6c883b mjpegenc: Remove duplicate initializer
This was causing c99conv to crash.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-03 22:14:27 +00:00
Derek Buitenhuis
0ea716f70b libutvideo: Unbreak
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-03 19:27:24 +00:00
Rostislav Pehlivanov
f021030365 diradec: split tables away to a separate diractab file
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-02-03 17:19:33 +00:00
Rostislav Pehlivanov
3bbe7862ec diracdec: move the MAX_DWT_LEVELS macro to dirac.h
Used by the VC-2 encoder.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-02-03 17:19:30 +00:00
Derek Buitenhuis
0627826523 Merge commit '68395f8c99393c281a08139d20a7a04398b2fd04'
* commit '68395f8c99393c281a08139d20a7a04398b2fd04':
  qsvenc: fix a typo

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-03 17:13:56 +00:00
Derek Buitenhuis
4736f8115b Merge commit 'cc602061ee860b041013397e27a036b85cd87b09'
* commit 'cc602061ee860b041013397e27a036b85cd87b09':
  x86inc: Add debug symbols indicating sizes of compiled functions

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-03 17:12:32 +00:00
Derek Buitenhuis
9de85c544a Merge commit '002c47798da0c43a053822c8041144798d49ed84'
This is a NOOP.

* commit '002c47798da0c43a053822c8041144798d49ed84':
  x86inc: Avoid creating unnecessary local labels
  x86inc: Simplify AUTO_REP_RET
  x86inc: Use more consistent indentation
  x86inc: Preserve arguments when allocating stack space
  x86inc: Improve FMA instruction handling
  x86inc: Be more verbose in assertion failures
  x86inc: Make cpuflag() and notcpuflag() return 0 or 1

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-03 17:07:47 +00:00
Derek Buitenhuis
74f5cb0189 Merge commit 'd336bfcf69fee159e9dba5e5e486ddb1aba61aab'
* commit 'd336bfcf69fee159e9dba5e5e486ddb1aba61aab':
  pixdesc: fix and extend doxy for av_pix_fmt_get_chroma_sub_sample()

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-03 16:59:06 +00:00
Derek Buitenhuis
27acb64a53 Merge commit 'c0c4d7a0a556ec66e3068d36a883e84d1efb0690'
* commit 'c0c4d7a0a556ec66e3068d36a883e84d1efb0690':
  configure: Correctly add openssl cflags and libs

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-03 16:57:46 +00:00
Derek Buitenhuis
2880e6810c Merge commit '87a814fdce522d45aa31aa258cb5514d7e754bff'
* commit '87a814fdce522d45aa31aa258cb5514d7e754bff':
  libavcodec: Add missing AVClass pointers

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-03 16:57:07 +00:00
Derek Buitenhuis
730d2aabac Merge commit '0e9c4fe254073b209970df3e3cb84531bc388e99'
* commit '0e9c4fe254073b209970df3e3cb84531bc388e99':
  lavc: Move pre_me to codec private options

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-03 16:54:20 +00:00
Derek Buitenhuis
43c0298208 Merge commit '5b6f42da98c26a8aee8d2c2edfcbd0633ad1c607'
* commit '5b6f42da98c26a8aee8d2c2edfcbd0633ad1c607':
  lavc: Move me_penalty_compensation to codec private options

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-03 16:53:13 +00:00
Derek Buitenhuis
f3af379b5c Merge commit '2862b63783b5556f7f3fb2d097629bc6879f833a'
* commit '2862b63783b5556f7f3fb2d097629bc6879f833a':
  lavc: Move prediction_method to codec private options

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-03 16:49:19 +00:00
Michael Niedermayer
908d010b12 avfilter/af_sidechaincompress: Free out frame on error
Fix memleak
Fixes CID1197065 part 2

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-03 17:09:24 +01:00
Michael Niedermayer
edc34c937b avcodec/utils: Check the return code of av_image_fill_linesizes()
Fixes CID1271741

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-03 15:58:32 +01:00
Schenk, Michael
93f4b41208 avformat/http: add crypto to default whitlist to get encrypted HLS working again
I think we missed the crypto in the default_whitelist in case of http. Otherwise encrypted HLS will fail with

[hls,applehttp @ 0x2af39c00] playlist[0] open_input [http://playertest.longtailvideo.com/adaptive/oceans_aes/oceans_aes-audio=65000-video=236000-14.ts], start_seq_no [1], cur_seq_no [14]

[hls,applehttp @ 0x2af39c00]    open_input curseqno [14] startseqno [1]

[hls,applehttp @ 0x2af39c00] HLS request for url 'http://playertest.longtailvideo.com/adaptive/oceans_aes/oceans_aes-audio=65000-video=236000-14.ts', offset 0, playlist 0

[NULL @ 0x2af3a200] KEY_AES_128 seg->key [http://playertest.longtailvideo.com/adaptive/oceans_aes/oceans.key] pls->key_url [http://playertest.longtailvideo.com/adaptive/oceans_aes/oceans.key]

[hls,applehttp @ 0x2af39c00]     open_input [KEY_AES_128]

[hls,applehttp @ 0x2af39c00]      : c->persistence [0]

[hls,applehttp @ 0x2af39c00]      : c->probing     [1]

[hls,applehttp @ 0x2af39c00]      : pls->input     [NULL]

[hls,applehttp @ 0x2af39c00]        using normal http path for URL [crypto+http://playertest.longtailvideo.com/adaptive/oceans_aes/oceans_aes-audio=65000-video=236000-14.ts]

[crypto @ 0x2aff7cc0] Protocol not on whitelist 'http,https,tls,rtp,tcp,udp!

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-03 15:57:43 +01:00
Tobias Rapp
ca71e6052e doc/demuxers: add some concat demuxer script examples
Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com>
2016-02-03 13:30:48 +01:00
Paul B Mahol
c1b23e158c avfilter/vf_nnedi: fix ISO C90 warnings
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-02-03 09:38:11 +01:00
Timothy Gu
0ab25dac2f cinepakenc: Stop using AVPicture 2016-02-02 18:06:13 -08:00
Timothy Gu
13b8ba8c9d xv: Remove AVPicture usage 2016-02-02 18:06:13 -08:00
Timothy Gu
228eb6708b sdl: Remove AVPicture usage 2016-02-02 18:06:13 -08:00
Andreas Cadhalpun
916da13d6d cfhd: fix off-by-one error in level check
This fixes out-of-bounds writes causing segmentation faults.

Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Reviewed-by: Kieran Kunhya <kierank@obe.tv>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-02-03 01:19:45 +01:00
Matthias Hunstock
e9025573fa decklink: support all valid numbers of audio channels
As it is already written in the documentation, BMD DeckLink cards
are capable of capturing 2, 8 or 16 audio channels (for SDI Inputs).
Currently the value is hardcoded to 2. Introduces new option.

Reviewed-by: Deti Fliegl <deti@fliegl.de>
Signed-off-by: Matthias Hunstock <atze@fem.tu-ilmenau.de>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-02-03 00:34:26 +01:00
Hendrik Leppkes
5fc310f7ca dca: add emms_c after usage of AV_COPY128
Similar to AV_ZERO128, AV_COPY128 can use MMX instructions in x86
2016-02-02 23:27:30 +01:00
Hendrik Leppkes
0b1972d409 dca: add emms_c after AV_ZERO128 macros
AV_ZERO64/128 can use MMX on x86.

Reviewed-By: James Almer <jamrial@gmail.com>
2016-02-02 20:06:13 +01:00
Hendrik Leppkes
084ab31049 dca: add new fate tests based on the dcadec-samples test suite 2016-02-02 17:43:42 +01:00
Hendrik Leppkes
da6ee11ecf dca: split decoder fate tests into dca.mak 2016-02-02 17:43:39 +01:00
Kevin Mitchell
5120b03d69 avformat: add windows.h to SChannel SSP TLS code
This fixes building on cygwin
Fixes ticket #5036
2016-02-02 16:19:25 +01:00
Michael Niedermayer
d117b09021 avformat/tls_securetransport: Add missing include
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-02 16:14:37 +01:00
Timothy Gu
dd57b316c1 diracdsp_mmx: Fix some more indentations 2016-02-01 20:47:56 -08:00
Timothy Gu
f5e2b8de55 diracdsp_mmx: Fix indentation 2016-02-01 20:41:33 -08:00
Michael Niedermayer
fe3fed0b14 Update demuxers and protocols for protocol whitelist support
Reviewed-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-02 04:16:50 +01:00
Michael Niedermayer
1dba8371d9 avformat: add protocol_whitelist
Note to maintainers: update tools

Note to maintainers: set a default whitelist for your protocol
If that makes no sense then consider to set "none" and thus require the user to specify a white-list
for sub-protocols to be opened

Note, testing and checking for missing changes is needed

Reviewed-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-02 03:39:34 +01:00
Timothy Gu
838abfc1d7 x86: vc1dsp: Convert vc1_inv_trans_*_dc to NASM format 2016-02-01 17:01:11 -08:00
Derek Buitenhuis
b62825a480 ffprobe: Deprecate stream timecode field and add frame side data timecode field
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-01 18:19:30 +00:00
Derek Buitenhuis
792a5cefbe mpeg12dec: Export GOP timecodes as side data
The codec context field was rightly deprecated, and the data
may change per-frame.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-01 18:19:24 +00:00
Derek Buitenhuis
66e9d2f44e avutil: Add GOP timecode frame side data
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-01 18:18:17 +00:00
Sebastian Dröge
e3a125c970 Revert "do not write f2 if not interlaced"
This reverts commit 8ed82d8174a666f80ab8834e3617cbe91ae740a9.

SMPTE S377-1-2009c defines in F.4.1 that the Video Line Map should
always be an array with two 32 bit integers as elements. This is
repeated in G.2.12 with actual examples for progressive content,
where the second value would always be 0.

Additionally, the IRT MXF analyser also lists this as the only
error in the MXF output from ffmpeg: https://mxf-analyser-cloud.irt.de

Reviewed-by: Tomas Härdin <tomas.hardin@codemill.se>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-01 18:32:15 +01:00
James Almer
f781bf3e10 fate: re-enable dca-xll test
And check for bitexact output instead

Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-02-01 12:12:15 -03:00
James Almer
77b5b95247 avcodec/dca_core: rename get_vlc function
Fixes compilation with TRACE enabled

Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-02-01 12:11:37 -03:00
Michael Niedermayer
af24b1c0cd Revert "avformat/hls: Require the file extension to be m3u / m3u8 for probing to succeed"
This can cause problems with urls that have arguments after the filename

This reverts commit b0c57206d583517a5ea35dd7f365f8260d9106f2.

Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-01 15:06:34 +01:00
Kieran Kunhya
bdd8e02b72 avcodec/cfhd: Make sure we have an end of header tag before allocating a frame.
Fixes tickets #5208 and #5209
2016-02-01 14:20:20 +01:00
Umair Khan
9effa01255 doc/ffmpeg: explain properly how -fs works
Fix trac ticket #5160.

Signed-off-by: Umair Khan <omerjerk@gmail.com>
2016-02-01 14:00:14 +01:00
Luca Barbato
e280fe1329 v210: Use separate sample_factors
The 10bit and the 8bit functions can now be implemented to process
a different amount of samples.

And while at it simplify a little the code.
2016-02-01 13:40:07 +01:00
James Darnley
15ec7aa417 v210: Add avx2 version of the 10-bit line encoder
Around 25% faster than the ssse3 version.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-02-01 13:40:07 +01:00
James Darnley
d29237e557 v210: Add avx2 version of the 8-bit line encoder
Around 35% faster than the avx version.

Signed-off-by: Henrik Gramner <henrik@gramner.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-02-01 13:40:07 +01:00
Paul B Mahol
79991b2288 avfilter: add nnedi filter
Port of nnedi3 vapoursynth filter.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-02-01 13:16:15 +01:00
Paul B Mahol
75f3e5e082 avdevice/lavfi: replace deprecated avpicture_layout
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-02-01 13:12:27 +01:00
Paul B Mahol
0a7379d9cf avfilter/vf_yadif: make use of ctx pointer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-02-01 11:59:17 +01:00
Carl Eugen Hoyos
9ca5b27240 lavf/adxdec: Add Autodetection. 2016-02-01 10:51:46 +01:00
Bruce Dawson
09b3a42495 riffdec: Explicitly null-terminate array to work around VC++ bug
Due to this bug in VC++ 2015 Update 1:
https://connect.microsoft.com/VisualStudio/feedback/details/2291638

the 'key' array in ff_read_riff_info() ends up being not null
terminated which led to failures in a Chromium unit tests. Update 2
should have a fix, but until then it is important to avoid problems.
2016-02-01 10:41:56 +01:00
Hendrik Leppkes
f85cc3bf12 hevc: set profile based on the profile compatibility flags if needed
This fixes retrieving a valid profile for many of the FATE conformance samples,
allowing them to be properly decoded by the HWAccel after adding a profile check.
2016-02-01 10:34:23 +01:00
Stephen Hutchinson
70742e599b libx265: Enable 12-bit encoding
The configure detection is bumped to X265_BUILD >= 68,
since API version 68 corresponds with the x265 1.8
release tarball. The warnings inside x265 about
12-bit being experimental were removed prior to API
version 72 a short time later.  At this time of
writing, X265_BUILD is at version 80.

12-bit support in the HEVC standard was approved in
October 2014 as part of HEVC Version 2 and published
in January 2015:

http://www.itu.int/ITU-T/recommendations/rec.aspx?rec=12296
http://www.itu.int/rec/T-REC-H.265-201410-S
https://hevc.hhi.fraunhofer.de/rext

Reveiwed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-01 01:36:44 +01:00
Derek Buitenhuis
1ba1fede9d flacenc: Restore defaults and range for {min, max}_prediction_order
This was broken in 243df1351d2d928caa084a5704ed783f0b83f072.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-01 00:57:43 +01:00
Timothy Gu
80075b0149 Changelog: add entry on wtvdec performance improvement 2016-01-31 15:52:34 -08:00
Timothy Gu
e5a6dcac47 wtvdec: Removed unused variable 2016-01-31 15:52:23 -08:00
Timothy Gu
180f9a0958 all: Make header guard names consistent 2016-01-31 15:44:11 -08:00
popcornmix
def56677e5 wtv: Speed up wtv index creation
The index creation is O(N^2) with number of entries (typically thousands).
On a Pi this can take more than 60 seconds to execute for a recording of a few hours.

By replacing with an O(N) loop, this takes virtually zero time

Liked-by: Paul B Mahol <onemda@gmail.com>
Reviewed-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-01 00:40:47 +01:00
Vittorio Giovara
60f0fde309 libx264: Make sure to preserve default option values
The private options chromaoffset, sc_threshold, and noise_reduction
were set to 0 rather than -1, and were always initializing values
in libx264 rather than letting the library use its default.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-02-01 00:35:37 +01:00
Timothy Gu
014e4e4499 vf_phase: Reduce the scope of several variables
Reviewed-by: Paul B Mahol <onemda@gmail.com>
2016-01-31 15:34:09 -08:00
Paul B Mahol
4ab4793c15 avfilter/avf_showfreqs: properly handle pts
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-31 22:18:12 +01:00
Henrik Gramner
58313f2dda msvc: Fix libx264 linking 2016-01-31 22:13:17 +01:00
Michael Niedermayer
3c8e95ab5d avcodec/flacenc: Fix prediction_order parameter
Fixes regression

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-31 20:05:41 +01:00
Derek Buitenhuis
e9eb8b3ba2 flacenc: Restore defaults and range for {min,max}_prediction_order
This was broken in 243df1351d2d928caa084a5704ed783f0b83f072.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-31 18:25:29 +00:00
foo86
ae5b2c5250 avcodec/dca: add new decoder based on libdcadec 2016-01-31 17:09:38 +01:00
foo86
0930b2dd1f avcodec/dca: add generic defines 2016-01-31 17:09:38 +01:00
foo86
5b1b536e2b avcodec/synth_filter: add more filters 2016-01-31 17:09:38 +01:00
foo86
8984806a51 avcodec/synth_filter: fix whitespace 2016-01-31 17:09:38 +01:00
foo86
4a53b83691 avcodec/dca: add math helpers and fixed point DCT 2016-01-31 17:09:38 +01:00
foo86
9a0a3bbeaa avcodec/dca: add more tables 2016-01-31 17:09:38 +01:00
foo86
64f6d17b40 avcodec/dca: add REV1AUX sync word 2016-01-31 17:09:38 +01:00
foo86
4608996772 avcodec/dca: remove old decoder
Remove all files and functions which are not going to be reused,
and disable all functions and FATE tests temporarily which will be.
2016-01-31 17:09:38 +01:00
Derek Buitenhuis
b552f3afa2 fate/ffm: Update test ref
Since timecode_frame)start is a private option now, it stays at the default,
and is no longer written to the file.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-31 16:06:40 +00:00
Derek Buitenhuis
c86ecdf3f7 Merge commit '243df1351d2d928caa084a5704ed783f0b83f072'
* commit '243df1351d2d928caa084a5704ed783f0b83f072':
  lavc: Move {min,max}_prediction_order to codec private options

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-31 13:29:04 +00:00
Derek Buitenhuis
899e19f177 Merge commit '936f0d98f864f9f6bb4f9e5458b78537e146bacd'
* commit '936f0d98f864f9f6bb4f9e5458b78537e146bacd':
  lavc: Move rtp_payload_size to codec private options

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-31 13:19:50 +00:00
Derek Buitenhuis
9938697c1c Merge commit 'd749615333084e62c9fcc480d1ae466369fdf14f'
* commit 'd749615333084e62c9fcc480d1ae466369fdf14f':
  lavc: Move timecode_frame_start to codec private options

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-31 12:28:04 +00:00
Paul B Mahol
b4af7d68fe avcodec/fraps: remove superfluous "Fraps:" from av_log
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-31 12:59:28 +01:00
Paul B Mahol
0c28aa6ddc doc/filters.texi: fix typo in spectrumsynth example
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-31 11:21:58 +01:00
Michael Niedermayer
6ffac5d33d avcodec/rawdec: Switch to monowhite if there is no palette & bpp=1
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-31 04:36:53 +01:00
Michael Niedermayer
77864be44a avformat/format: Weight the filename extension higher if there is nearly no data after an ID3 available
Fixes Ticket5205

Based-on-patch-by: Carl Eugen Hoyos
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-30 22:25:31 +01:00
Michael Niedermayer
8619582bdf avformat/format: Replace nodat by enum
This makes the code much more readable

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-30 22:25:31 +01:00
Kieran Kunhya
32bf4a72e3 avcodec: Add forgotten minor bump, add Changelog and add Cineform to general.texi 2016-01-30 18:09:36 +00:00
Kieran Kunhya
3485332bf9 avcodec: Cineform HD Decoder
Decodes YUV 4:2:2 10-bit and RGB 12-bit files.
Older files with more subbands, skips, Bayer, alpha not supported.
Alpha requires addition of GBRAP12 pixel format.
2016-01-30 17:44:13 +00:00
Carl Eugen Hoyos
31f5fa21b0 lavc/exr: Move setting SAR down.
Fixes a theoretical issue if the resolution attribute is written
behind the aspect attribute.
2016-01-30 13:38:16 +01:00
Carl Eugen Hoyos
d391feff54 lavc/v210dec: Allow odd width.
The rightmost column is not decoded correctly.

Fixes a part of ticket #5195.
2016-01-30 13:31:44 +01:00
Carl Eugen Hoyos
0275b2d917 Changelog: Sanitize Common Encryption entries. 2016-01-30 13:30:29 +01:00
Clément Bœsch
54ab90c05b lavc/utils: fix instanciate/instantiate typo 2016-01-30 13:10:11 +01:00
Clément Bœsch
d3d03fd55e lavf/vqf: fix suported/supported typo 2016-01-30 13:08:37 +01:00
Stephen Hutchinson
0dd201d947 libx265: Remove experimental flag when encoding 4:2:2 and 4:4:4
4:2:2 and 4:4:4 support in the HEVC standard was approved in
October 2014 as part of HEVC Version 2 and published in
January 2015:

http://www.itu.int/ITU-T/recommendations/rec.aspx?rec=12296
http://www.itu.int/rec/T-REC-H.265-201410-S
https://hevc.hhi.fraunhofer.de/rext

Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-30 12:29:29 +01:00
Kieran Kunhya
e07e88cd82 avcodec: Remove libvo-aacenc support.
The internal encoder is superior to libvo-aacenc.

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2016-01-29 17:26:42 -08:00
Timothy Gu
9ba54c1b82 avcodec: Remove libaacplus
TODO: bump minor

It's inferior in quality to fdk-aac and has an arguably more problematic
license.

As early as 2012, a HydrogenAudio user reported:

> It has however one huge advantage: much better quality at low bitrates than
> faac and libaacplus.

(https://hydrogenaud.io/index.php?PHPSESSID=ckiq394pdglka0kj2fin6ij8t7&topic=95989.msg804633#msg804633)

I myself have made a few spectrograms for a comparison of the two
encoders as well. The FDK output is consistently better than the
libaacplus one, in all bitrates I tested.

libaacplus license is 3GPP + LGPLv2. 3GPP copyright notice is completely
proprietory, as follows:

> No part may be reproduced except as authorized by written permission.
>
> The copyright and the foregoing restriction extend to reproduction in
> all media.
>
> © 2008, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC).
>
> All rights reserved.

(The latest 26410-d00 zip from 3GPP has the same notice, but the copyright
year is changed to 2015)

The copyright part of the FDK AAC license (section 2) is a copyleft
license that permits redistribution under certain conditions (and
therefore the LGPL + libfdk-aac combination is not prohibited by
configure):

> Redistribution and use in source and binary forms, with or without
> modification, are permitted without payment of copyright license fees
> provided that you satisfy the following conditions:
>
> You must retain the complete text of this software license in
> redistributions of the FDK AAC Codec or your modifications thereto in
> source code form.
>
> You must retain the complete text of this software license in the
> documentation and/or other materials provided with redistributions of
> the FDK AAC Codec or your modifications thereto in binary form.
>
> You must make available free of charge copies of the complete source
> code of the FDK AAC Codec and your modifications thereto to recipients
> of copies in binary form.
>
> The name of Fraunhofer may not be used to endorse or promote products
> derived from this library without prior written permission.
>
> You may not charge copyright license fees for anyone to use, copy or
> distribute the FDK AAC Codec software or your modifications thereto.
>
> Your modified versions of the FDK AAC Codec must carry prominent
> notices stating that you changed the software and the date of any
> change. For modified versions of the FDK AAC Codec, the term
> "Fraunhofer FDK AAC Codec Library for Android" must be replaced by the
> term "Third-Party Modified Version of the Fraunhofer FDK AAC Codec
> Library for Android."
2016-01-29 17:14:37 -08:00
James Almer
5893e87537 avcodec/proresdec_lgpl: use av_mod_uintp2
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-01-29 19:58:44 -03:00
James Almer
1bb3b90db8 avcodec/pngdec: use av_mod_uintp2
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-01-29 19:58:41 -03:00
James Almer
8514f6dcfd avcodec/amrwbdec: use av_mod_uintp2
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-01-29 19:58:34 -03:00
Thierry Foucu
9a09952695 lavf/flvdec: Allow files where the PreviousTagSize is not set according to the spec.
Some muxer use the FLV field PreviousTagSize to be the sum of tag
length. Without this change, the flv demuxer think the file is broken
and the re-sync will fail.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-29 22:30:12 +01:00
Hagen Schmidt
583a643146 mpegtsenc: Do not fail ADTS AAC muxing if the first frame is not ADTS
Fixes ticket 279.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-29 21:40:33 +01:00
Zhao Zhili
1e2c262212 libavformat/network: use defined constant in poll
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-29 21:31:47 +01:00
Michael Niedermayer
8fac0d6403 avformat/avio: free url/avio options
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-29 19:23:02 +01:00
Neil Birkbeck
c323c98ee3 libavutil/mastering_display_metadata.h: change fields to be rationals as this is how they are typically coded.
(this structure is not referenced anywhere yet)

Signed-off-by: Neil Birkbeck <neil.birkbeck@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-29 19:08:52 +01:00
James Almer
6cc156793d avcodec/dvaudio: add missing header include
Should fix make checkheaders

Signed-off-by: James Almer <jamrial@gmail.com>
2016-01-29 13:57:15 -03:00
Mats Peterson
b34c9d1b9d lavc/rawdec: Use AV_PIX_FMT_PAL8 for raw 1 bpp video in AVI
From
https://msdn.microsoft.com/en-us/library/windows/desktop/dd318229%28v=vs.85%29.aspx:

"If biCompression equals BI_RGB and the bitmap uses 8 bpp or less, the
bitmap has a color table immediatelly following the BITMAPINFOHEADER
structure. The color table consists of an array of RGBQUAD values. The
size of the array is given by the biClrUsed member. If biClrUsed is
zero, the array contains the maximum number of colors for the given
bitdepth; that is, 2^biBitCount colors."

Nothing about "monochrome" here. Unfortunately, pal8 to monow conversion
seems a bit flaky, but that's another story.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-29 14:52:30 +01:00
Michael Ira Krufky
44a50feebe libavdevice/decklink_common.h: fix broken build due to missing /
Signed-off-by: Michael Ira Krufky <mkrufky@linuxtv.org>
2016-01-29 13:29:47 +01:00
Michael Niedermayer
2d163cbdab avcodec/huffyuvenc: Remove duplicate include
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-29 12:33:22 +01:00
Stefano Sabatini
b91093a411 ffmpeg: replace "flush Media" with "flush_media" in benchmark_all output
Simplify parsing and consistency.
2016-01-29 10:58:18 +01:00
Timothy Gu
e74378aa8c amrwbdec_mips: Add missing ff_ prefix 2016-01-28 19:49:51 -08:00
Timothy Gu
44304ae322 all: Add missing header guards 2016-01-28 19:49:48 -08:00
Marton Balint
6bc610b39e configure: remove libzvbi GPL dependency
The COPYING.LIB file in the zvbi source tree as well as libzvbi.h references
the GNU Library General Public License version 2 since version 0.2.28.

Signed-off-by: Marton Balint <cus@passwd.hu>
2016-01-29 01:42:17 +01:00
Marton Balint
995c7a6f5a lavd/decklink_dec: add support for teletext
It uses the libzvbi slicer, therefore teletext capture requires libzvbi.

Reviewed-by: Deti Fliegl <deti@fliegl.de>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-01-29 01:42:15 +01:00
Marton Balint
98e94dff7a configure: use -ldl for decklink
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-01-29 01:41:54 +01:00
Marton Balint
cfc040a49f lavf: bump micro version after the new segment muxer options
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-01-29 01:41:09 +01:00
Marton Balint
369a6a6ed4 lavf/segment: add new option segment_clocktime_wrap_duration
This option can force the segmenter to only start a new segment if a packet
reaches the muxer within the specified duration after the segmenting clock
time, which makes it more resilient to backward local time jumps, such as leap
seconds or transition to standard time from daylight savings time.

Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-01-28 21:35:44 +01:00
Marton Balint
1036a1b8a3 lavf/segment: add support for specifying clock time offset
Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-01-28 21:35:37 +01:00
Vittorio Giovara
b340bd8a58 libx264: Make sure to preserve default option values
The private options chromaoffset, sc_threshold, and noise_reduction
were set to 0 rather than -1, and were always initializing values
in libx264 rather than letting the library use its default.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-28 18:45:40 +01:00
Michael Niedermayer
cb06be6136 avcodec/libx264: Fix sc_threshold after 30c1bdb87ce336f2b9957769e30a10d72f93d372
After the merge the default threshold was unconditionally overwritten

A similar fix was written by Vittorio Giovara, but i didnt see that before
i wrote this and it also doesnt apply cleanly

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-28 18:25:56 +01:00
Derek Buitenhuis
1a2d6055be avcodec/frame_thread_encoder: Check the private option for huffy's context modelling
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-28 17:19:06 +00:00
Derek Buitenhuis
5b0d4c247a Merge commit '96c373c7704aeb1cc1d2c275fbb5d71777665589'
* commit '96c373c7704aeb1cc1d2c275fbb5d71777665589':
  lavc: Move context_model to codec private options

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-28 16:57:04 +00:00
Derek Buitenhuis
0e3e3656d3 Merge commit '12b49769223234673db1003d9c43e7483ceb0282'
* commit '12b49769223234673db1003d9c43e7483ceb0282':
  lavc: Move mpeg_quant to codec private options

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-28 16:44:59 +00:00
Derek Buitenhuis
b986a4625d Merge commit '1482aff2048511b821ff9feac19426113cc641a2'
* commit '1482aff2048511b821ff9feac19426113cc641a2':
  lavc: Move noise_reduction to codec private options

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-28 16:42:32 +00:00
James Almer
c792528970 x86/imdct36: use extractps inside the STORE macro
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Reviewed-by: Henrik Gramner <henrik@gramner.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-01-28 13:35:15 -03:00
wm4
14a90c9ef0 mmaldec: limit internal buffering
This uses a new MMAL feature, which limits the number of extra frames
that can be buffered within the decoder. VIDEO_MAX_NUM_CALLBACKS can
be defined as positive or negative number. Positive numbers are
absolute, and can lead to deadlocks if the user underestimates the
number of required buffers. Negative numbers specify the number of extra
buffers, e.g. -1 means no extra buffer, (-1-N) means N extra buffers.

Set a gratuitous default of -11 (N=10). This is much lower than the
firmware default, which appears to be 96.

This is backwards compatible, but needs a symbol only present in newer
firmware headers. (It's an enum item, so it requires a check in
configure.)
2016-01-28 17:24:53 +01:00
wm4
7b1b53f3a4 mmaldec: support MPEG-4
I guess this means part 2 in both cases. Not sure which profiles exactly
are actually supported properly.
2016-01-28 17:24:40 +01:00
wm4
d27a12cb09 mmaldec: print the MMAL format FourCC automatically
Slight simplification. The result is the same. Also, change the
wording of the message as requested in patch review.
2016-01-28 17:23:46 +01:00
wm4
0badf4564a configure: fix mmal build dependencies
The mmal decoders do not depend on the software decoders.
2016-01-28 17:23:23 +01:00
Derek Buitenhuis
e8c5d5f429 snow: Move scenechange_threshold to a private option
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-28 15:36:06 +00:00
Derek Buitenhuis
30c1bdb87c Merge commit '7c79587d7407dab4b9445d66b5f111fe657c8c4d'
* commit '7c79587d7407dab4b9445d66b5f111fe657c8c4d':
  lavc: Move scenechange_threshold to codec private options

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-28 15:24:00 +00:00
Derek Buitenhuis
7c6e86c0ce Merge commit '5764d38173661c29d954711dd5abfddf709e9ba4'
* commit '5764d38173661c29d954711dd5abfddf709e9ba4':
  lavc: Move chromaoffset to codec private options

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-28 15:22:19 +00:00
Derek Buitenhuis
13be46c08e Merge commit '0ac9f33a9e69c64eee592791be3c5441a6a3d6b7'
* commit '0ac9f33a9e69c64eee592791be3c5441a6a3d6b7':
  lavc: Move frame_skip_* to codec private options

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-28 15:08:10 +00:00
Derek Buitenhuis
4f32ccb618 Merge commit '84c4714f397c9c50eb9d49008cc1c08385f68f31'
* commit '84c4714f397c9c50eb9d49008cc1c08385f68f31':
  lavc: Move brd_scale to codec private options

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-28 14:21:33 +00:00
Paul B Mahol
2edd47582b avcodec: add dvaudio parser
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-28 10:31:41 +01:00
Matthieu Bouron
27f1ea5097 lavc/mjpegdec: use ptrdiff_t instead of ssize_t
Fixes build on msvc.
2016-01-28 09:25:59 +01:00
Michael Niedermayer
e0b187e7da avcodec/h264: Fix memleak in case of ff_h264_decode_extradata() failure
Fixes Ticket5139

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-28 04:15:18 +01:00
Derek Buitenhuis
02bd02da5f qsvenc: Fix b_strategy typo
This was introduced in 0e6c8532215790bbe560a9eea4f3cc82bb55cf92.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-28 00:08:40 +00:00
Rostislav Pehlivanov
925f145ace FATE: update AAC encoder PNS test target
Test target hasn't been updated with the latest changes.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-01-27 23:55:24 +00:00
James Almer
77a44f577b configure: add missing avx2 support check
AVX2 support was introduced in Yasm 1.2.0 and NASM 2.10, and the
oldest versions currently supported are Yasm 0.8.0 and NASM 2.03

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-01-28 00:43:23 +01:00
James Almer
b624f0660b x86: Add ymm_reg struct
Needed to declare 32-byte long constants

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-01-28 00:41:19 +01:00
Derek Buitenhuis
265ed6732f libavcodec/util: Fix timebase overflow check
It could accidentally divide by zero if num was zero.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-27 21:12:04 +00:00
James Almer
09d5c28c3d configure: fix openssl pkg-config check
Signed-off-by: James Almer <jamrial@gmail.com>
2016-01-27 17:56:35 -03:00
Derek Buitenhuis
cefad29df9 configure: Revert recent changes to disable-everything
These will be re-merged once it's been fixed properly.

This reverts:
 * Commit '8e7bea6dc6ac5b21484774a026847bec0771ab62'
   configure: Improve requesting specific features
 * Commit 'e93aa2c9e7b3599aee6a5820760fc1a2c629dea0'
   configure: Force-enable select_any dependencies only on --enable

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-27 20:32:12 +00:00
Derek Buitenhuis
5889bc16a4 avcodec/version: Add missing #endif
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-27 20:27:25 +00:00
Derek Buitenhuis
2e9b995e4f Merge commit '0e6c8532215790bbe560a9eea4f3cc82bb55cf92'
* commit '0e6c8532215790bbe560a9eea4f3cc82bb55cf92'
  lavc: Move b_frame_strategy and b_sensitivity to codec private options

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-27 20:18:04 +00:00
Derek Buitenhuis
11e6f13a13 Merge commit '55c7e5bf7c8d368c9bc60a219b04849ec9f4c84c'
This is a NOOP.

* commit '55c7e5bf7c8d368c9bc60a219b04849ec9f4c84c':
  riff: add C210 FourCC (Canopus C210)
  riff: add YUYV FourCC (Drastic YUYV)

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-27 20:09:11 +00:00
Derek Buitenhuis
e15e108885 Merge commit 'd43a165bda0eae95f4c7a168c7d13d94966c1a09'
* commit 'd43a165bda0eae95f4c7a168c7d13d94966c1a09':
  imgconvert: Add the proper API guards to a deprecated function

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-27 20:06:01 +00:00
Derek Buitenhuis
fa6c7ccc20 Merge commit 'f7168d7016f7d1034ec90223fa91a90711704e11'
* commit 'f7168d7016f7d1034ec90223fa91a90711704e11':
  imgconvert: Move AVPicture-related static function to the deprecated section

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-27 20:02:01 +00:00
Derek Buitenhuis
fa48cd8814 Merge commit '892f037c55d86ce36f8705fbeab052189312a13e'
* commit '892f037c55d86ce36f8705fbeab052189312a13e':
  imgconvert: Move the shrink functions only where needed

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-27 19:58:35 +00:00
Derek Buitenhuis
54f49bd378 Merge commit '9d3ea5cbf57e30bf2717a9ce64e858dad8a02aa6'
* commit '9d3ea5cbf57e30bf2717a9ce64e858dad8a02aa6':
  imgconvert: Drop outdated comment block

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-27 19:56:44 +00:00
Derek Buitenhuis
3662e55943 Merge commit 'e93aa2c9e7b3599aee6a5820760fc1a2c629dea0'
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-27 19:52:48 +00:00
Derek Buitenhuis
97d5742434 Merge commit '65d29dd274a302131e2e4bc6d2b1eca4a093900c'
This is a NOOP.

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-27 19:52:28 +00:00
Derek Buitenhuis
b3702b6b66 Merge commit '883ad2c59ceea1ced5495b5ccc83695ed4bbb94b'
This is a NOOP.

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-27 19:49:16 +00:00
Derek Buitenhuis
3de3937ecd Merge commit '8e7bea6dc6ac5b21484774a026847bec0771ab62'
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-27 19:48:09 +00:00
Derek Buitenhuis
fafb18d146 Merge commit 'e9175634ec96e36873929637491189150cfce9ec'
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-27 19:41:36 +00:00
Derek Buitenhuis
7daad5c441 Merge commit '472d488ebcc53bea4cdb124edb94558e72d8f23f'
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-27 19:40:50 +00:00
Derek Buitenhuis
e87ace6246 Merge commit '7486418683bd2477772e03aab573cf846c12fb0d'
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-27 19:39:52 +00:00
Derek Buitenhuis
f97d2d2105 Merge commit 'e59708bb9d94f67381f19344b5e021591eb711bf'
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-27 19:33:32 +00:00
Derek Buitenhuis
ba7d16a303 Merge commit 'c4de754d4dac5ddae4d5a6f02798c0f560771921'
This is a NOOP.

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-27 19:32:39 +00:00
Derek Buitenhuis
bd7da0ae7b Merge commit '8fd361f53b3c17c1ae13a39e030c8fa3ab4d8f1f'
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-27 19:30:08 +00:00
Matthieu Bouron
0d733ec379 lavc/mjpegdec: speed up scan data copy 2016-01-27 20:08:52 +01:00
Derek Buitenhuis
e5b5676c00 Merge commit 'e4eb13ca77624401ea7cef1ed6ad8e2d13fd2063'
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-27 18:32:28 +00:00
Derek Buitenhuis
949d6dd51c Merge commit '09f4822e4eaf61513b9092414450f3ae920ccd9d'
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-27 18:29:21 +00:00
Derek Buitenhuis
d97a6193c3 Merge commit '03ef89faf23c4851848208c9fe004cd9ef690cec'
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-27 18:27:19 +00:00
Derek Buitenhuis
ea2df33052 Merge commit '4f22b138886e29f7fffa8c715673951e51be9f32'
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-27 18:23:31 +00:00
Derek Buitenhuis
66eb8ce473 Merge commit 'b06cb15b9d7928bf54b639c9f9f7658c2c38bfb9'
One big NOOP.

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-27 18:21:20 +00:00
Derek Buitenhuis
42f0ed67a3 Merge commit 'c59fec783d6540dd96540b079d753ee4a6ad2e58'
This is a NOOP.

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-27 17:45:50 +00:00
Derek Buitenhuis
a54422fff2 Merge commit '39571e86cb0d55536f649210a025c54e440c632b'
This is a NOOP.

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-27 17:20:21 +00:00
Derek Buitenhuis
257766a838 Merge commit '9cce011b1d2f66366f5d75a024c2a2f93dc2b589'
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-27 16:57:24 +00:00
Derek Buitenhuis
895b888f16 Merge commit '521dc78366c6ea54b7b69426dab302a57231f81e'
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-27 16:56:22 +00:00
Derek Buitenhuis
e5fe75ae2b Merge commit 'fa66237b69c27befa788b100e73783e0f47fe1b7'
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-27 16:54:57 +00:00
Derek Buitenhuis
71b79b587b Merge commit '62825236dba31a2240e25974a3ba41c1303e4edc'
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-27 16:53:23 +00:00
Derek Buitenhuis
9f18be42f0 Merge commit '81737f42c28858dad76a40284a35f7a64faa2fc7'
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-27 16:51:06 +00:00
Derek Buitenhuis
711dae575d Merge commit '46350db737a15910f468d30cf7beda16a4cc8332'
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-27 16:47:46 +00:00
Derek Buitenhuis
dbbfbde085 Merge commit 'e8bc642202c10beda1ea4e93ec8492b1e39805e5'
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-27 16:46:58 +00:00
Derek Buitenhuis
21f9468402 avutil: Rename FF_CEIL_COMPAT to AV_CEIL_COMPAT
Libav, for some reason, merged this as a public API function. This will
aid in future merges.

A define is left for backwards compat, just in case some person
used it, since it is in a public header.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-27 16:36:46 +00:00
Michael Niedermayer
0aada30510 avcodec/jpeg2000dec: More completely check cdef
Fixes out of array read
Fixes: j2k-poc.bin

Found-by: Lucas Leong <wmliang.tw@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-27 17:18:00 +01:00
Paul B Mahol
75a7565bcb avcodec/dvaudiodec: support cases when codec_tag is not set but block_align is
Support packets larger than block size, return single block size.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-27 13:58:25 +01:00
Paul B Mahol
74e8f4f674 avcodec/dvaudiodec: set channel layout
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-27 11:19:58 +01:00
Paul B Mahol
ce404b4d7c avfilter/af_afade: do not duplicate curve option
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-27 11:11:51 +01:00
Carl Eugen Hoyos
7a90edc188 lavc/mjpegdec: Set SAR even if no resolution is available.
Fixes ticket #4479.
2016-01-27 10:23:37 +01:00
Carl Eugen Hoyos
69dbecf920 lavc/h264: Show "Increasing reorder buffer" message with loglevel info.
See ticket #5138 for a sample.
2016-01-27 10:11:46 +01:00
Matt Oliver
b66ac803fa avformat/mux: Fix error when writing uncoded frames.
commit "avpacket: Deprecate av_dup_packet" broke the use
av_interleaved_write_uncoded_frame as any input uncoded frame has an
invalid packet size that will crash when av_packet_ref tries to allocate
'size' new memory. Since the packet is a temporary created within mux.c
itself it can be used directly without needing a new ref.

Signed-off-by: Matt Oliver <protogonoi@gmail.com>
2016-01-27 17:16:43 +11:00
Andreas Cadhalpun
9079e99d2c svq1enc: fix out of bounds reads
level can be 5, but there are only four codebooks.

Fixes ubsan runtime error: index 5 out of bounds for type 'int8_t
[4][96]'

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-01-27 00:08:23 +01:00
Paul B Mahol
11bc4fd653 avcodec/dvaudiodec: only stereo makes sense
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-26 23:33:55 +01:00
Luca Barbato
eafb05fcf3 v210: x86: Add the correct guards around the asm code
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-01-26 23:31:57 +01:00
Paul B Mahol
e9e623369d avcodec: add Ulead DV audio decoder
Fixes #1564.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-26 23:14:40 +01:00
Paul B Mahol
df7b165e87 avfilter/vf_zscale: make it possible to override input frame parameters
Mostly useful when there is no such parameters present at all.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-26 23:13:16 +01:00
Ivan
a0174f6729 avformat/flvenc: copyts in FLV muxer
The purpose of this patch is to preserve timestamps when using ffmpeg for publishing RTMP streams, e.g. ffmpeg -i rtmp://source/stream -f flv rtmp://target/stream.
There is a setting "copyts" for that purpose. Unfortunately it doesn't work with FLV muxer because it has its own timestamp correction which makes global setting "copyts" ineffective.

This patch removes timestamp correction in FLV muxer. This means FLV will rely on ffmpeg timestamp correction which makes it possible to use copyts.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-26 20:56:55 +01:00
Vittorio Gambaletta (VittGam)
74658a8b4d ffmpeg_opt: Allow -metadata option to set metadata on programs.
Signed-off-by: Vittorio Gambaletta <ffmpeg-dev@vittgam.net>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-26 17:36:08 +01:00
Vittorio Gambaletta (VittGam)
6e448fb97e ffmpeg_opt: Move the 'process manually set programs' block above 'process manually set metadata' in open_output_file().
Signed-off-by: Vittorio Gambaletta <ffmpeg-dev@vittgam.net>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-26 17:36:08 +01:00
Michael Niedermayer
f3ace85d88 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>
2016-01-26 17:36:08 +01:00
Hendrik Leppkes
2e31434d84 swscale: add P010 input support 2016-01-26 12:10:45 +01:00
Hendrik Leppkes
c2869b4640 avutil: add P010 pixel format
P010 is the 10-bit variant of NV12 (planar luma, packed chroma), using two
bytes per component to store 10-bit data plus 6-bit zeroes in the LSBs.
2016-01-26 11:54:01 +01:00
Andreas Cadhalpun
38622007c4 vf_libopencv: add support for opencv 3
It dropped the old headers, but the replacements are already available
with opencv 2.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-01-25 23:49:22 +01:00
Marton Balint
73e4565dff lavc/libzvbi-teletextdec: add support for setting background opacity
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-01-25 22:15:27 +01:00
Marton Balint
92f2a9dbc5 lavc/libzvbi-teletextdec: remove cmax variable
Use VBI_NB_COLORS instead.

Signed-off-by: Marton Balint <cus@passwd.hu>
2016-01-25 22:06:57 +01:00
Marton Balint
fe4a2cbd4d lavc/libzvbi-teletextdec: use the built-in transparent color for transparent background
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-01-25 22:06:57 +01:00
Andreas Cadhalpun
b46aae0936 build: use a link instead of changing current directory when compiling
If links don't work, fall back to using the full source path as was
previously done.

This should fix build failures with MSVC.

Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-01-25 20:43:34 +01:00
Vittorio Gambaletta (VittGam)
8b02af1e6f avformat/mpegtsenc: Fix multi program so that it supports adding the same stream to multiple programs.
Signed-off-by: Vittorio Gambaletta <ffmpeg-dev@vittgam.net>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-25 19:47:16 +01:00
Mats Peterson
191ec55c9f lavc/rawdec: Use 16-byte line alignment for AV_PIX_FMT_MONOWHITE
The line alignment for 1 bpp raw AV_PIX_FMT_MONOWHITE video (currently
used for AVI) was previously 4 bytes, which generated alignment warning
messages, not only for odd-width files. The alignment is now 16 bytes.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-25 19:47:16 +01:00
James Almer
209f50e16b avcodec/synth_filter: split off remaining code from dcadec files
Signed-off-by: James Almer <jamrial@gmail.com>
2016-01-25 14:57:38 -03:00
Vittorio Giovara
4709f72115 lavfi: Use AV_CEIL_RSHIFT where needed 2016-01-25 12:09:48 -05:00
Vittorio Giovara
e80307140f yuv4mpegenc: Use AV_CEIL_RSHIFT where needed 2016-01-25 12:02:44 -05:00
Vittorio Giovara
6695f178a5 pixdesc: Use AV_CEIL_RSHIFT in documentation 2016-01-25 12:02:20 -05:00
Vittorio Giovara
1546a41ada pixdesc: Drop unneeded deprecation warning guards 2016-01-25 12:01:12 -05:00
Vittorio Giovara
9cac1b4b4f qsvenc: Add private option to replace coder_type
Missing from be00ec832c519427cd92218abac77dafdc1d5487.
2016-01-25 12:00:16 -05:00
Paul B Mahol
5dc37a5d8a avcodec/dcaenc: do not change user requested bitrate
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-25 17:10:49 +01:00
Paul B Mahol
06f65fd026 avcodec/dcaenc: return correct number of bytes in output packet
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-25 17:10:49 +01:00
Michael Niedermayer
ed0c550564 avcodec/utils: run ff_frame_thread_encoder_init() only for encoders
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-25 16:47:15 +01:00
Michael Niedermayer
46f67f4a34 avcodec/rawdec: Check height and packet size
Avoids potential division by 0

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-25 11:07:42 +01:00
Mats Peterson
82325dbec1 lavc/rawdec: Use 16-byte line alignment for 1, 2, 4 and 8 bpp
This patch aligns the lines of 1 bpp depth for QuickTime, and 2, 4 and 8
bpp depths for AVI and QuickTime, on 16-byte boundaries. At the same
time, the packet row stride is properly catered for.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-25 11:07:42 +01:00
Mats Peterson
fe7639b1c8 avcodec/rawdec: initialize palette for mono
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-25 11:07:42 +01:00
Luca Barbato
eef9f06508 avplay: Allow to override the codec
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-01-25 09:12:02 +01:00
Luca Barbato
6fa464f8d2 avplay: Statically allocate the player state
And move the resource deallocation in stream_open failure path.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-01-25 09:12:02 +01:00
Luca Barbato
611ba89b89 avplay: Rename cur_stream to player
The name was misleading.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-01-25 09:12:02 +01:00
Luca Barbato
21bbc345cc avplay: Rename VideoState to PlayerState
The structure is not video-specific.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-01-25 09:12:02 +01:00
Luca Barbato
fdd464cb70 avplay: Allocate the refresh thread next to the decode thread
It does not belong to the stream setup.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-01-25 09:12:02 +01:00
Luca Barbato
f22f900594 avplay: Move the stream setup in the main thread
And refactor the code in preparation of the following
patches.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-01-25 09:10:34 +01:00
James Almer
1d8f9b7d1a avcodec/webp: fix decoder dependencies
Signed-off-by: James Almer <jamrial@gmail.com>
2016-01-24 20:30:33 -03:00
Michael Niedermayer
cde57eee98 avformat/hls: Check that filename is not "" in probe before checking its extension
Possibly the check as a whole causes more problems than it helps, if so dont
hesitate to remove it

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-25 00:18:57 +01:00
Paul B Mahol
3e7d684912 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>
2016-01-24 21:54:13 +01:00
Timothy Gu
ce36cb08ed Revert "decklink: Header cleanup"
This reverts commit 61fb70c3866b19dccf473ad4e5ede79d117e8e1c.

Reported in #5183 to break the build. Further investigation needed.
2016-01-24 12:42:39 -08:00
Paul B Mahol
f42eae96b2 avfilter/vf_zoompan: fix pts handling
Now output pts have some sense.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-24 20:29:19 +01:00
Paul B Mahol
8a34344379 avfilter/vf_zoompan: unbreak filtering with video input
Inserting fifo appears to be working solution to not get
filter_frame request we do not want.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-24 19:17:39 +01:00
Timothy Gu
794b015035 Changelog: Add entry on libquvi being removed 2016-01-24 09:45:11 -08:00
Timothy Gu
fe71fde246 configure: Maintain alphabetical order of components
This is not "pure" alphabetical order since some components are
intentionally kept together.
2016-01-24 09:43:48 -08:00
Paul B Mahol
3b9f41a9c6 avfilter/vf_zoompan: rewrite so it doesn't cache all output frames
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-24 17:49:23 +01:00
Ronald S. Bultje
9cf81e573c lavfi: recognize GBR9-14P as RGB in ff_fill_rgba_map(). 2016-01-24 11:45:53 -05:00
Kieran Kunhya
2d40a09b6e avformat: Remove support for libquvi
libquvi has not been updated since 2013.
It also has a number of security issues.
2016-01-24 16:01:04 +00:00
Michael Niedermayer
a7305c780b Print the whitelists if entities are not found on them
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-24 16:52:10 +01:00
Michael Niedermayer
3130556c0e avformat: Document urls a bit
Spell-checked-by: Moritz Barsnick <barsnick@gmx.net>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-24 16:52:10 +01:00
Anton Khirnov
81306fd4bd hls: eliminate ffurl_* usage
Now all IO should go through the IO callbacks and be interceptable by
the caller.
2016-01-24 16:50:13 +01:00
Anton Khirnov
9f61abc811 lavf: allow custom IO for all files
Some (de)muxers open additional files beyond the main IO context.
Currently, they call avio_open() directly, which prevents the caller
from using custom IO for such streams.

This commit adds callbacks to AVFormatContext that default to
avio_open2()/avio_close(), but can be overridden by the caller. All
muxers and demuxers using AVIO are switched to using those callbacks
instead of calling avio_open()/avio_close() directly.

(de)muxers that use the URLProtocol layer directly instead of AVIO
remain unconverted for now. This should be fixed in later commits.
2016-01-24 16:45:32 +01:00
Timothy Gu
61fb70c386 decklink: Header cleanup
This commit cleans up the decklink files' header usage so that they pass
checkheaders.
2016-01-24 07:31:16 -08:00
Timothy Gu
bd4d192081 common.mak: Use CCFLAGS for assembly generation as well
CCFLAGS is equivalent to CPPFLAGS + CFLAGS, and it is already being used
by other make rules like %.i and %.o. Simplifies common.mak.
2016-01-24 07:29:18 -08:00
Timothy Gu
af54a36fc4 avdevice: Mark decklink_common.h as unconditional SKIPHEADER
It is a C++ file, incompatible with the checkheaders infrastructure.
2016-01-24 07:28:18 -08:00
Clément Bœsch
17d41220d8 lavfi/pthread: fix perameters/parameters typo 2016-01-24 14:41:11 +01:00
Paul B Mahol
547d412078 avfilter: update some comments
start_frame is no more, samplesref argument is now frame argument.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-24 14:32:14 +01:00
Charlie Arnold
22ee0a576f build: fix msvc build
Fix configure to set DST_PATH to the Windows style path when building with MSVC

Fixes ticket #5180.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-01-23 22:22:04 +01:00
Andreas Cadhalpun
f503022ce5 build: fix make checkheaders in out-of-tree builds
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-01-23 21:47:40 +01:00
Anton Khirnov
68395f8c99 qsvenc: fix a typo
Introduced in 0e6c8532215790bbe560a9eea4f3cc82bb55cf92.
2016-01-23 21:03:31 +01:00
Michael Niedermayer
0be4377333 fate/cabac: replace uninitialized bytes by random bytes
Fixes valgrind warning

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-23 20:53:29 +01:00
Geza Lore
cc602061ee x86inc: Add debug symbols indicating sizes of compiled functions
Some debuggers/profilers use this metadata to determine which function a
given instruction is in; without it they get can confused by local labels
(if you haven't stripped those). On the other hand, some tools are still
confused even with this metadata. e.g. this fixes `gdb`, but not `perf`.

Currently only implemented for ELF.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-01-23 20:46:28 +01:00
Henrik Gramner
002c47798d x86inc: Avoid creating unnecessary local labels
The REP_RET workaround is only needed on old AMD cpus, and the labels clutter
up the symbol table and confuse debugging/profiling tools, so use EQU to
create SHN_ABS symbols instead of creating local labels. Furthermore, skip
the workaround completely in functions that definitely won't run on such cpus.

Note that EQU is just creating a local label when using nasm instead of yasm.
This is probably a bug, but at least it doesn't break anything.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-01-23 20:44:25 +01:00
Henrik Gramner
fd6ecac38e x86inc: Simplify AUTO_REP_RET
cpuflags is never undefined any more, it's set to 0 instead.

Also fix an incorrect comment.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-01-23 20:43:39 +01:00
Henrik Gramner
5ca8e195e5 x86inc: Use more consistent indentation
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-01-23 20:42:59 +01:00
Henrik Gramner
91ed050f42 x86inc: Preserve arguments when allocating stack space
When allocating stack space with a larger alignment than the known stack
alignment a temporary register is used for storing the stack pointer.
Ensure that this isn't one of the registers used for passing arguments.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-01-23 20:41:59 +01:00
Henrik Gramner
715eb7ca24 x86inc: Improve FMA instruction handling
* Correctly handle FMA instructions with memory operands.
 * Print a warning if FMA instructions are used without the correct cpuflag.
 * Simplify the instantiation code.
 * Clarify documentation.

Only the last operand in FMA3 instructions can be a memory operand. When
converting FMA4 instructions to FMA3 instructions we can utilize the fact
that multiply is a commutative operation and reorder operands if necessary
to ensure that a memory operand is used only as the last operand.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-01-23 20:30:30 +01:00
Henrik Gramner
f60f06d989 x86inc: Be more verbose in assertion failures
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-01-23 20:30:07 +01:00
Henrik Gramner
7adcd4e841 x86inc: Make cpuflag() and notcpuflag() return 0 or 1
Makes it possible to use them in arithmetic expressions.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-01-23 20:19:19 +01:00
Anton Khirnov
d336bfcf69 pixdesc: fix and extend doxy for av_pix_fmt_get_chroma_sub_sample()
The parameters in the docs are currently swapped.
2016-01-23 20:16:42 +01:00
Michael Niedermayer
d863785379 avfilter/vf_convolution: Use av_clip_uint8()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-23 18:29:48 +01:00
Michael Niedermayer
7fc944df15 fate/ffmpeg: Fix colorkey test failure without samples
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-23 18:28:47 +01:00
Luca Barbato
c0c4d7a0a5 configure: Correctly add openssl cflags and libs 2016-01-23 14:34:06 +01:00
Hendrik Leppkes
406f30072e dxva2_h264: fix reference field marking in long slice struct
Fixes artifacts in interlaced decoding on old Intel GPUs.
2016-01-23 13:29:46 +01:00
Michael Niedermayer
f502583663 avcodec/mpeg4videoenc: Use 64bit for time variables
Fixes assertion failure and integer overflow
Fixes: fc677bbea2c6f901763eb637b61fa5e2/signal_sigabrt_7ffff6ae7cb7_9556_dfd95f040a69f725d1b2f861bd491725.ivf

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-23 02:17:53 +01:00
Michael Niedermayer
15cc98a0f3 avformat/libquvi: Set default demuxer and protocol limitations
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-23 00:12:54 +01:00
Michael Niedermayer
8e32d01432 avformat/concat: Check protocol prefix
Reviewed-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-23 00:12:54 +01:00
Michael Niedermayer
9a8034b8bc 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>
2016-01-23 00:12:54 +01:00
Paul B Mahol
805563c814 avfilter/af_ladspa: accepts ' ' as command separator too
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-22 21:41:11 +01:00
Rostislav Pehlivanov
ce855bf43b diracdec: fix full range videos
Full range video had been broken by the introduction of the < 2U check
at the following line. The bitstream format kind of implies that the full
and limited ranges use different pix_fmts but that's incorrect since we
have the avctx->color_range flag. So adjust the pixel range index to
be mapped to the same pix_fmts as limited range index.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-01-22 17:15:00 +00:00
Paul B Mahol
8a5d4a51ff avfilter/vf_convolution: add timeline support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-22 17:54:44 +01:00
Martin Storsjö
87a814fdce libavcodec: Add missing AVClass pointers
This fixes crashes since 243df1351.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-01-22 17:08:08 +02:00
Michael Niedermayer
ee3eac59df fate: Add a small number of rawvideo in mov tests
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-22 15:59:31 +01:00
Perette Barella
84110f4f77 libavformat/tcp.c : add send_buffer_size and recv_buffer_size options
adds two new options that may be set via the dictionary:

- send_buffer_size
- recv_buffer_size

When present, setsockopt() is used with SO_SNDBUF and SO_RCVBUF to set
socket buffer sizes.  I chose to make send and receive independent
because buffering requirements are often asymmetric.

Errors in setting the buffer size mean the socket will use its
default, so they are ignored.

There is no sanity checking on values, as the kernel/socket layers
already impose reasonable limits if asked for something crazy.

Rationale for enlarging receive buffers is to reduce susceptibility
to intermittent network delays/congestion.  I added setting the send
buffer for symmetry.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-22 15:36:30 +01:00
Ganesh Ajjanagadde
1fb5ae44c4 lavc/wmadec: replace pow by faster functions
Further speedups possible by getting rid of exp2f...

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2016-01-22 19:27:12 +05:30
Ganesh Ajjanagadde
cea529dd7f lavc/opus_celt: replace pow(2,x) by exp2f(x)
Faster methods possible; since exponent is always a multiple of 1/8.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2016-01-22 19:26:58 +05:30
Ganesh Ajjanagadde
9254e6176c lavc/atrac3plusdsp: change pow(2,x) to exp2f(x)
Much faster generation possible; but array is small so don't want to bloat
the binary.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2016-01-22 19:26:41 +05:30
Ganesh Ajjanagadde
89189b1010 lavc/wma: add av_warn_unused_result to ff_wma_init
May help to prevent incidents like 19e456d48c90a1e3ceeb9e6241383384cc73dfdf.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2016-01-22 19:26:24 +05:30
Michael Niedermayer
70ece6ccd0 fate: add 1 and 15BPP rawvideo in avi tests
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-22 13:19:08 +01:00
Paul B Mahol
1c02af307a avfilter: add convolution filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-22 12:06:54 +01:00
Paul B Mahol
b18467a943 avfilter/avf_showwaves: add logarithmic amplitude scaler
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-22 11:11:06 +01:00
John Cox
74105fc9a3 cabac_functions: Allow more functions to be overridden
Allow more of the cabac functions to be overridden and avoid generating any
code for unwanted refill functions.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-22 02:38:56 +01:00
John Cox
5115d8326e cabac_functions: Count zeros with ctz if it is fast
When refilling the low bit buffer after get_cabac count the bits with ctz
if the processor has a fast version.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-22 02:38:41 +01:00
John Cox
48f80831ba cabac: Ensure 2-byte cabac loads are on 2-byte boundry
Ensure that cabac init sets the bitstream pointer to an even value.
It is often faster to load from an aligned boundry

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-22 02:31:32 +01:00
Neil Birkbeck
17399f6a9f Add missing conversions from side data enum to name
Add names for recently added enums to av_frame_side_data_name.

Signed-off-by: Neil Birkbeck <neil.birkbeck@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-22 01:58:59 +01:00
Andreas Cadhalpun
064963bd27 build: make out-of-tree builds bit-identical to in-tree builds
Previously the full source path was embedded inconsistently in the debug
information between in-tree/out-of-tree builds.

The 'vpath %.inc' becomes necessary for finding
libavfilter/all_channel_layouts.inc in out-of-tree builds.

The full source path is still embedded in the debug information, but
it's now independent of whether building in-tree or out-of-tree.

The biggest improvement of this patch is that gdb now always searches
for the path relative to the source directory. It still also searches
for the full path.
Previously it searched only for the full path in out-of-tree builds,
making the debug information generated by Debian's buildds rather hard
to use.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-01-22 00:30:59 +01:00
Michael Niedermayer
509c9e74e5 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>
2016-01-21 23:47:29 +01:00
Geza Lore
d39c229e54 x86inc: Add debug symbols indicating sizes of compiled functions
Some debuggers/profilers use this metadata to determine which function a
given instruction is in; without it they get can confused by local labels
(if you haven't stripped those). On the other hand, some tools are still
confused even with this metadata. e.g. this fixes `gdb`, but not `perf`.

Currently only implemented for ELF.
2016-01-21 23:19:46 +01:00
Henrik Gramner
d3662777e0 x86inc: Avoid creating unnecessary local labels
The REP_RET workaround is only needed on old AMD cpus, and the labels clutter
up the symbol table and confuse debugging/profiling tools, so use EQU to
create SHN_ABS symbols instead of creating local labels. Furthermore, skip
the workaround completely in functions that definitely won't run on such cpus.

Note that EQU is just creating a local label when using nasm instead of yasm.
This is probably a bug, but at least it doesn't break anything.
2016-01-21 23:19:46 +01:00
Henrik Gramner
87b587d4fe x86inc: Simplify AUTO_REP_RET
cpuflags is never undefined any more, it's set to 0 instead.

Also fix an incorrect comment.
2016-01-21 23:19:46 +01:00
Henrik Gramner
2d60b18cf0 x86inc: Use more consistent indentation 2016-01-21 23:19:46 +01:00
Henrik Gramner
dfe771dc5a x86inc: Preserve arguments when allocating stack space
When allocating stack space with a larger alignment than the known stack
alignment a temporary register is used for storing the stack pointer.
Ensure that this isn't one of the registers used for passing arguments.
2016-01-21 23:19:46 +01:00
Henrik Gramner
b1496008ee x86inc: Improve FMA instruction handling
* Correctly handle FMA instructions with memory operands.
 * Print a warning if FMA instructions are used without the correct cpuflag.
 * Simplify the instantiation code.
 * Clarify documentation.

Only the last operand in FMA3 instructions can be a memory operand. When
converting FMA4 instructions to FMA3 instructions we can utilize the fact
that multiply is a commutative operation and reorder operands if necessary
to ensure that a memory operand is used only as the last operand.
2016-01-21 23:19:46 +01:00
Henrik Gramner
6cbd0fdf28 x86inc: Be more verbose in assertion failures 2016-01-21 23:19:46 +01:00
Vittorio Giovara
0e9c4fe254 lavc: Move pre_me to codec private options
This option is only used by mpegvideoenc.
It is a very codec-specific option, so deprecate the global variant.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-01-21 15:40:28 -05:00
Vittorio Giovara
5b6f42da98 lavc: Move me_penalty_compensation to codec private options
This option is only used by mpegvideoenc.
It is a very codec-specific options, so deprecate the global variant.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-01-21 15:33:19 -05:00
Vittorio Giovara
2862b63783 lavc: Move prediction_method to codec private options
This options is only used by huffyuv, ffvhuv, jpegls, mjpeg,
mpegvideoenc, png, utvideo.
It is a very codec-specific options, so deprecate the global variant.
Set proper limits to the maximum allowed values, and update utvideoenc
tests to use the new option name.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-01-21 15:33:19 -05:00
Vittorio Giovara
243df1351d lavc: Move {min,max}_prediction_order to codec private options
These options are only used by alac and flac.
They are very codec-specific options, so deprecate the global variants.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-01-21 15:33:19 -05:00
Vittorio Giovara
936f0d98f8 lavc: Move rtp_payload_size to codec private options
This option is only used by mpegvideoenc and openh264.
It is a very codec-specific option, so deprecate the global variant.

The openh264 option is dropped altogether since it is just a fallback
for -max_nal_size anyway.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-01-21 15:33:19 -05:00
Vittorio Giovara
d749615333 lavc: Move timecode_frame_start to codec private options
This option is only used by mpeg2.
It is a very codec-specific option, so deprecate the global variant.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-01-21 15:33:19 -05:00
Vittorio Giovara
96c373c770 lavc: Move context_model to codec private options
This option is only used by ffv1 and ffvhuff.
It is a very codec-specific option, so deprecate the global variant.
Improve documentation a little.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-01-21 15:33:19 -05:00
Vittorio Giovara
12b4976922 lavc: Move mpeg_quant to codec private options
This option is only used by mpegvideoenc, and xvid.
It is a very codec-specific option, so deprecate the global variant.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-01-21 15:33:19 -05:00
Vittorio Giovara
1482aff204 lavc: Move noise_reduction to codec private options
This option is only used by mpegvideoenc, x264, xavs, and vpx.
It is a very codec-specific option, so deprecate the global variant.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-01-21 15:33:19 -05:00
Vittorio Giovara
7c79587d74 lavc: Move scenechange_threshold to codec private options
This option is only used by mpegvideoenc, x264, and xavs.
It is a very codec-specific option, so deprecate the global variant.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-01-21 15:33:19 -05:00
Vittorio Giovara
5764d38173 lavc: Move chromaoffset to codec private options
This option is only used by x264 and xavs.
It is a very codec-specific option, so deprecate the global variant.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-01-21 15:33:19 -05:00
Vittorio Giovara
0ac9f33a9e lavc: Move frame_skip_* to codec private options
These options are only used by mpegvideoenc and vpx.
They are very codec-specific options, so deprecate the global variants.

Add an allowed value to the private options for frame_skip_cmp which
seems to have been forgotten, but perfectly working.

The libvpx frame dropping feature uses one of such option
(frame_skip_threshold) without the other three. For this reason rename
the option to something more consistent with the other libvpx variables.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-01-21 15:33:19 -05:00
Vittorio Giovara
84c4714f39 lavc: Move brd_scale to codec private options
This option is only used by mpegvideoenc,
It is a very codec-specific option, so deprecate the global variant.
Set proper limits to the maximum allowed values.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-01-21 15:33:19 -05:00
Vittorio Giovara
0e6c853221 lavc: Move b_frame_strategy and b_sensitivity to codec private options
The b_frame_strategy option is only used by mpegvideoenc, qsv, x264, and
xavs, while b_sensitivity is only used by mpegvideoenc.

These are very codec-specific options, so deprecate the global variants.
Set proper limits to the maximum allowed values.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-01-21 15:33:19 -05:00
Piotr Bandurski
55c7e5bf7c riff: add C210 FourCC (Canopus C210) 2016-01-21 15:33:19 -05:00
Vittorio Giovara
d43a165bda imgconvert: Add the proper API guards to a deprecated function 2016-01-21 15:33:19 -05:00
Vittorio Giovara
f7168d7016 imgconvert: Move AVPicture-related static function to the deprecated section 2016-01-21 15:33:19 -05:00
Vittorio Giovara
892f037c55 imgconvert: Move the shrink functions only where needed 2016-01-21 15:33:19 -05:00
Vittorio Giovara
9d3ea5cbf5 imgconvert: Drop outdated comment block 2016-01-21 15:33:19 -05:00
Piotr Bandurski
7c4059ae1e riff: add YUYV FourCC (Drastic YUYV) 2016-01-21 15:33:19 -05:00
Luca Barbato
e93aa2c9e7 configure: Force-enable select_any dependencies only on --enable
Unbreak --enable-gnutls enabling tls_openssl_protocol

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-01-21 21:24:33 +01:00
James Almer
a2e1b66460 x86/intmath: disable sse av_clip functions when using ICC
It seems to miscompile them

Should fix fate-ra-288 and fate-twinvq

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-01-21 16:50:51 -03:00
Paul B Mahol
6ed3a10f64 avfilter/avf_showwaves: color support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-21 20:48:28 +01:00
Michael Niedermayer
1dd11160ea fate: Add test for colorkey
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-21 19:26:03 +01:00
Rostislav Pehlivanov
5776344a7b diracdec: fix original Dirac Low Delay profile
The version structure in the main decoder context was not (and
apparently has never been) populated since it was added.
Still, having VC-2 break the existing Dirac Low Delay mode was odd and
easily avoidable had the specifications authors noticed/cared.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-01-21 16:49:45 +00:00
Rostislav Pehlivanov
053900ca4c dirac: add more parse codes from the specifications
The specs define some more overlapping and some rarely used parse codes
which were missing.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-01-21 16:49:45 +00:00
James Almer
033e7dbd31 avcodec/diracdsp: use av_clip_uintp2
Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-01-21 13:13:54 -03:00
Rostislav Pehlivanov
7d8891593c dirac_parser: add exceptions for Dirac inter parse codes
Forgotten from previous commit.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-01-21 15:31:02 +00:00
Ronald S. Bultje
8c9103c4af checkasm: add videodsp emulated_edge_mc test. 2016-01-21 10:25:27 -05:00
Rostislav Pehlivanov
a849ebb54e dirac_parser: Improve parsing and silence pointless warnings
The parser scans for "BBCD" to appear in the bitstream which indicate a
parse info header and once that happens, checks if the parse offsets are
sane. Since random BBCD strings might appear in the bitstream the parser
will emit a pointless warning if that happens.

This commit improves parsing by checking for a valid parse code as well
as keeping the original checks for valid parse offsets. The warnings
were removed as they serve no real purpose.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-01-21 15:18:25 +00:00
Michael Niedermayer
b65efbc0f4 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>
2016-01-21 15:56:11 +01:00
Rostislav Pehlivanov
8248b51e0b diracdec: add support for 12 bit videos
The DSP lacked a function needed to convert signed to unsigned. This was
ignored when originally adding support and templating for bit depths
greater than 8. The 10 bit function was used for 12 bit pictures and
resulted in an improper conversion.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-01-21 14:48:32 +00:00
Paul B Mahol
73c938dd9f doc/filters: fix afftfilt example
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-21 14:42:09 +01:00
Derek Buitenhuis
65d29dd274 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: Luca Barbato <lu_zero@gentoo.org>
2016-01-21 14:32:39 +01:00
Paul B Mahol
fa04ec728d avfilter: add afftfilter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-21 14:31:38 +01:00
Michael Niedermayer
56c182c4d7 avformat/nutenc: implement deinit()
Should prevent some leaks if header writing fails

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-21 13:16:24 +01:00
James Darnley
883ad2c59c fate: add 10-bit v210 encoder tests
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-01-21 11:18:42 +01:00
Claudio Freire
adc7d2a4ce AAC encoder: check for NaNs/inf in TNS gain
Can happen in cases where's there's zero autocorrelation (pulses),
and it also implies NaN/inf coeffs
2016-01-21 03:47:28 -03:00
James Almer
8bbb972350 configure: add missing library deps for showcqt_filter
Signed-off-by: James Almer <jamrial@gmail.com>
2016-01-21 00:49:02 -03:00
Carl Eugen Hoyos
4f9314ed58 lavf/riff: Support reading vlc's rawvideo fourccs.
Reported by Bob, no6b no6b com
2016-01-21 03:38:33 +01:00
Carl Eugen Hoyos
7158ce778f lavf/nut: Add forgotten fourccs for YUV4xxP9. 2016-01-21 03:35:49 +01:00
Michael Niedermayer
41e07390e0 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>
2016-01-21 02:57:10 +01:00
Michael Niedermayer
19e456d48c 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>
2016-01-21 02:39:09 +01:00
Luca Barbato
8e7bea6dc6 configure: Improve requesting specific features
Before this patch trying to enable only https by issuing

    --disable-protocols --enable-protocol=https --enable-gnutls

does not enable https, and

    --disable-all --enable-protocols

does not enable libavformat and the protocols component.

Now the default-enabled options are set after the explicitly
disabled/enabled options are evaluated.

If an explicitly enabled option cannot be enabled configure
will fail printing an error message.
2016-01-21 01:04:24 +01:00
Michael Niedermayer
a53fbda9dc avcodec/mpeg12enc: Move high resolution thread check to before initializing threads
Cleaner solution is welcome!

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-21 00:56:11 +01:00
Clément Bœsch
a362015641 lavc,lavfi: use avutil/thread.h instead of redundant conditional includes
This was somehow forgotten in a8bb81a05c519dd3f36cc341e5fb448f6d17fa73.
2016-01-20 21:36:54 +01:00
Vittorio Gambaletta (VittGam)
4590811fc2 ffplay: update docs after previous changes in ffplay mouse behaviour
Signed-off-by: Vittorio Gambaletta <ffmpeg-dev@vittgam.net>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-01-20 21:23:03 +01:00
Michael Niedermayer
b750b67d13 avformat/img2dec: Use AVOpenCallback
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-20 21:21:31 +01:00
Michael Niedermayer
2cb8edea7c avcodec/aacenc: Check all coefficients for finiteness
This is needed as near infinite values on the input side result in only some
output to be non finite.
Also it may still be insufficient if subsequent computations overflow

Fixes null pointer dereference
Fixes: ae66c0f6c12ac1cd5c2c237031240f57/signal_sigsegv_2618c99_9516_6007026f2185a26d7afea895fbed6e38.ogg

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Reviewed-by: Claudio Freire <klaussfreire@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-20 21:21:31 +01:00
Michael Niedermayer
984d58a344 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>
2016-01-20 21:21:31 +01:00
Clément Bœsch
d96f0fbe59 lavu: add pthread asserts if ASSERT_LEVEL>1 2016-01-20 21:08:50 +01:00
James Almer
4c4ebeb587 avcodec/wavpackenc: use put_sbits
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-01-20 16:41:19 -03:00
Rostislav Pehlivanov
4a3cf186b2 tests/fate/aac: remove unneeded strict arguments from the encoder tests
Leftover from the experimental flag removal.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-01-20 17:02:51 +00:00
Rostislav Pehlivanov
6a505e955b aacenc: remove FAAC-like coder
Has been marked for removal for over a month and has not been improved
or touched at all since it was implemented.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-01-20 16:56:53 +00:00
Rostislav Pehlivanov
a72b1ea826 aacenc: mark LTP mode as experimental
Too many crashes observed. Can't be helped until the autocorrelation
function is massively checked for sanity.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-01-20 16:49:55 +00:00
Bela Bodecs
dec23859b0 vf_scale: eval, param0 and param1 documentation
Documentation of eval, param0 and param1 parameters

Signed-off-by: Bela Bodecs <bodecsb@vivanet.hu>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-20 17:31:01 +01:00
Michael Niedermayer
7ccedc1c78 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>
2016-01-20 17:31:01 +01:00
Vittorio Giovara
e9175634ec yuv2rgb: Document the color space coefficients
Based on the original documentation found in mpeg2dec (1995).

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-01-20 11:18:31 -05:00
Arttu Ylä-Outinen
7d1e985528 libkvazaar: Set frame rate as a rational number
Updates libkvazaar to pass the exact frame rate to Kvazaar by setting
the numerator and denominator separately instead of a single floating
point number. The exact frame rate is needed for writing timing info to
the bitstream.

Requires Kvazaar version 0.8.1.

Signed-off-by: Arttu Ylä-Outinen <arttu.yla-outinen@tut.fi>
2016-01-20 17:29:13 +02:00
Michael Niedermayer
158f0545d8 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>
2016-01-20 16:21:41 +01:00
Derek Buitenhuis
712d962a6a 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>
2016-01-20 15:41:58 +01:00
Bela Bodecs
868a2ed568 vf_scale: Detecting changes of incoming frame properties and dinamically evaluate width and height expressions
Currently scale filter accepts expressions in its width and height
parameters but evaluates them only once at init and replaces them with
their actual values. Later on, if any parameter of incoming frames
changes - ie those were used in the original size expressions -  then
they new values will not have any affect for width and heigth values.
They remain the same. This patch makes possible that width and height
expressions be evaluated frame-by-frame basis if width/height/sar/format
properties of incoming frame would change. To retain the current
behaviour and not to break any earlier app, a new config parameter has
been introduced. Its name is "eval" and it has two distinct values:
"init" and "frame". The default value is "init".
This feature is very usefull in case of DVBT mpeg-ts streams where SAR
may change time-by-time from 4/3 to 16/9 and vica-versa and the size
remains the same and you want to create a variable sized output with 1/1
SAR.

Signed-off-by: Bela Bodecs <bodecsb@vivanet.hu>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-20 13:32:00 +01:00
Bela Bodecs
cc83177db4 vf_overlay: handles expression evaluation of frame size change in frame-by-frame evalutaion mode
vf_overlay video filter accepts expressions in its parameters. In
'frame-by-frame' evaluation mode it recalculates them regularly, but
incoming video frame size changes did not reflect in their values. So if
you used width or height of any source videos in expressions as
parameters, they stayed on their initial values. This patch corrects
this bug.

Signed-off-by: Bela Bodecs <bodecsb@vivanet.hu>
Reviewed-by: Paul B Mahol <onemda@gmail.com
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-19 23:30:36 +01:00
Vittorio Giovara
ff8c2c4103 yuv2rgb: Document the color space coefficients
Based on the original documentation found in mpeg2dec (1995).

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-01-19 23:30:36 +01:00
Vittorio Gambaletta (VittGam)
acd37069ae ffplay: toggle full screen when double-clicking the video window with the left mouse button
Now that the seek only happens with the right mouse button, it makes
sense to toggle full screen when double-clicking with the left mouse
button, like other video players do.

Signed-off-by: Vittorio Gambaletta <ffmpeg-dev@vittgam.net>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-01-19 23:15:30 +01:00
Vittorio Gambaletta (VittGam)
cde4b99f47 ffplay: seek only when pressing the right mouse button on the video window
Seeking by clicking on the video window can be annoying, because
the user might click on it accidentally while eg. trying to get
focus on it, and ffplay seeks instead.

This commit changes that behaviour to seek only when the right
mouse button is used to click and drag on the window.

Signed-off-by: Vittorio Gambaletta <ffmpeg-dev@vittgam.net>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-01-19 23:15:23 +01:00
Arttu Ylä-Outinen
472d488ebc libkvazaar: Set frame rate as a rational number
Updates libkvazaar to pass the exact frame rate to Kvazaar by setting
the numerator and denominator separately instead of a single floating
point number. The exact frame rate is needed for writing timing info to
the bitstream.

Requires Kvazaar version 0.8.1.

Signed-off-by: Arttu Ylä-Outinen <arttu.yla-outinen@tut.fi>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-01-19 20:47:49 +01:00
Arttu Ylä-Outinen
7486418683 lavc: Make sure that the effective timebase would not overflow
In the unlikely situation the user decides to set ticks_per_frame
and timebase to a value large enough to overflow.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-01-19 20:47:49 +01:00
Luca Barbato
e59708bb9d configure: mips: Support both-endian compilers
Use mips{,64}eb to force big endian and mips{,64}el to force little
endian.
2016-01-19 20:47:49 +01:00
Luca Barbato
c4de754d4d mathops: mips: Correctly enable loongson-specific assembly
The code wrongly assumed that the instructions used are supported
on mips64, while it is supported only on loongson cpus.
2016-01-19 20:47:49 +01:00
Luca Barbato
8fd361f53b configure: Use pkg-config to check for openssl 2016-01-19 20:47:49 +01:00
Paul B Mahol
307b848218 avfilter/af_dynaudnorm: call uninit() from config_input()
Should help dynamic filtergraph reconfiguration.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-19 20:14:14 +01:00
Michael Niedermayer
b0c57206d5 avformat/hls: Require the file extension to be m3u / m3u8 for probing to succeed
If the filename isnt set by the user application then the code behaves like before

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-19 16:46:30 +01:00
Neil Birkbeck
d91718107c libavutil: add mastering display metadata sidedata
Adding mastering display metadata struct to avutil. The mastering display metadata contains information
about the mastering display color volume (SMPTE 2086:2014).

This info comes from HEVC in the SEI_TYPE_MASTERING_DISPLAY_INFO and is soon to be included in MKV:
https://mailarchive.ietf.org/arch/search/?email_list=cellar&gbt=1&index=sZyfPTM-QY69P-0omfOIiTN622o
so it is similar to SEI FPA / stereo_mode in MKV and as such this patch follows how AVStereo3D is implemented.

I'll add support to HEVC in a follow-up (and MKV when spec is approved).

Signed-off-by: Neil Birkbeck <neil.birkbeck@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-19 16:43:31 +01:00
Michael Niedermayer
22f64c2324 avcodec/ccaption_dec: Fix mixed declarations and code
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-19 13:48:21 +01:00
Martin Storsjö
e4eb13ca77 flvdec: Add sanity checking of the last packet size
For http, this avoids spurious warnings about failed requests (e.g.
HTTP error 416 Requested Range Not Satisfiable), if the last packet
is truncated and the size read is bogus.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-01-19 14:24:35 +02:00
Michael Niedermayer
09f4822e4e flvdec: perform duration search just once
When loading a truncated flv file, it would previously try to do a seek to
the end of every packet read. For some input protocols (such as http), such
repeated seek attempts are cripple the reading performance.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-01-19 14:24:34 +02:00
Mats Peterson
d6b3062b5a lavf/qtpalette: Fix incorrect palettes
This patch corrects the colors of the 2 and 4 bpp palettes.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-19 11:18:32 +01:00
Carl Eugen Hoyos
9cf8c3e62c ape: Show more information for loglevel verbose.
Requested by Andy E, fixes bug 687.
2016-01-19 11:02:14 +01:00
Hendrik Leppkes
e816fe7401 Merge commit '7570c9e04f010c9b3bfdeb4338d330f2cdd25278'
* commit '7570c9e04f010c9b3bfdeb4338d330f2cdd25278':
  swfdec: support compressed swf

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-19 08:58:55 +01:00
Hendrik Leppkes
25955c927f Merge commit '34d45b36164eee044cfe55d22488b2b65e387872'
* commit '34d45b36164eee044cfe55d22488b2b65e387872':
  asfdec: Fix typo in comment

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-19 08:53:58 +01:00
Hendrik Leppkes
fea9243d53 Merge commit '40d43d25e76ca078e7665752e815fc8d96252f06'
* commit '40d43d25e76ca078e7665752e815fc8d96252f06':
  APIchanges: Add missing av_pix_fmt_get_chroma_sub_sample entry

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-19 08:53:43 +01:00
Hendrik Leppkes
a04a9434b5 Merge commit '73c8c0341cce9e1a6c4169721f5123f97fc4be2f'
* commit '73c8c0341cce9e1a6c4169721f5123f97fc4be2f':
  arm: Fix vfp dead code elimination with have_vfp_vm

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-19 08:51:12 +01:00
Hendrik Leppkes
7e29903526 Merge commit 'fec76cd430f3c865183a6e5b4caec0743e055605'
* commit 'fec76cd430f3c865183a6e5b4caec0743e055605':
  checkasm: Check register clobbering on aarch64

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-19 08:50:44 +01:00
Hendrik Leppkes
0b40e290e3 Merge commit '26ec75aec3576daea691dee53a78ec67c0dc4040'
* commit '26ec75aec3576daea691dee53a78ec67c0dc4040':
  checkasm: Check register clobbering on arm

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-19 08:49:27 +01:00
Hendrik Leppkes
774c5357db Merge commit 'fa463aa83a4920b0eed47ad1f79775dfc53d21ec'
* commit 'fa463aa83a4920b0eed47ad1f79775dfc53d21ec':
  avpacket: fix size check in packet_alloc

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-19 08:48:03 +01:00
Hendrik Leppkes
be3963c8af Merge commit '066281372d90d63ca021b659abcb8faefd6bc4a6'
* commit '066281372d90d63ca021b659abcb8faefd6bc4a6':
  asfdec: Remove unused function parameters

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-19 08:47:48 +01:00
Hendrik Leppkes
202ed3e5e6 Merge commit '2aec600ae7af7d46a4877b5ccc263b39f05a91cb'
* commit '2aec600ae7af7d46a4877b5ccc263b39f05a91cb':
  asfdec: reject size > INT64_MAX in asf_read_unknown

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-19 08:45:48 +01:00
Hendrik Leppkes
1ac8a1821a Merge commit 'c69461d73797e02e7a3ab4316050c241fa91f53f'
* commit 'c69461d73797e02e7a3ab4316050c241fa91f53f':
  asfdec: only set asf_pkt->data_size after sanity checks

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-19 08:45:38 +01:00
Hendrik Leppkes
ed9cff9edf Merge commit 'd1cd20e4e33f8139e150034b3c457302312d81bd'
* commit 'd1cd20e4e33f8139e150034b3c457302312d81bd':
  qsvenc: split encoding frames and reading from the async FIFO

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-19 08:44:50 +01:00
Hendrik Leppkes
b5513441e4 Merge commit 'a6259a6ecbad18d58085e4ab23f56151e98d7b53'
* commit 'a6259a6ecbad18d58085e4ab23f56151e98d7b53':
  qsvenc: properly handle the warning from MFXVideoCORE_SyncOperation

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-19 08:43:03 +01:00
Hendrik Leppkes
7dae3461c0 Merge commit '63f7f8d1dbf6ce27440fdd56ef38c822fb11b9c2'
* commit '63f7f8d1dbf6ce27440fdd56ef38c822fb11b9c2':
  avconv: Drop an impossible check

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-19 08:41:32 +01:00
Hendrik Leppkes
4440c8e9c9 Merge commit '7ebf1b4adad40e2b0d88ebd5cfde821a7a0ceab2'
* commit '7ebf1b4adad40e2b0d88ebd5cfde821a7a0ceab2':
  avconv: Simplify poll_filters() return value check

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-19 08:40:32 +01:00
James Almer
c1a3683f26 configure: disable -Wunused-const-variable
The option became too aggressive with GCC 6, generating nearly 500
warnings from static const variables defined in assorted headers

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-01-18 20:16:55 -03:00
Michael Niedermayer
03d83ba34b 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>
2016-01-18 19:56:37 +01:00
Michael Niedermayer
3ef5de0f19 avcodec/put_bits: Assert buf_ptr in flush_put_bits()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-18 19:56:37 +01:00
Paul B Mahol
4e17efd852 avfilter/avf_showfreqs/showspectrum: rename skip_samples to hop_size
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-18 19:38:14 +01:00
Ronald S. Bultje
0f88b3f82f videodsp: fix 1-byte overread in top/bottom READ_NUM_BYTES iterations.
This can overread (either before start or beyond end) of the buffer in
Nx1 (i.e. height=1) images.

Fixes mozilla bug 1240080.
2016-01-18 11:12:47 -05:00
Mats Peterson
5da1477fa0 lavc/rawdec: Use AV_PIX_FMT_PAL8 for 1-bit raw QuickTime video
Match the use of AV_PIX_FMT_PAL8 for 1-bit QuickTime Animation in
lavc/qtrle. To reiterate, 1-bit video is not necessary black & white in
QuickTime, merely bi-level. The two colors can be any color. The palette,
either included in the sample description, or the default Macintosh
palette (black & white for 1-bit video) will be set in lavf/qtpalette.
See the QuickTime File Format Specification for details.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-18 15:15:28 +01:00
Diego Biurrun
03ef89faf2 x86: build: Group all encoder objects together 2016-01-18 14:47:58 +01:00
Diego Biurrun
4f22b13888 x86: ac3dsp: Drop forward declaration for nonexisting function 2016-01-18 11:55:38 +01:00
Paul B Mahol
bb2f8bdeca doc/filters: add yet another fftfilt example
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-18 10:30:44 +01:00
Michael Niedermayer
89f464e9c2 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>
2016-01-18 03:51:00 +01:00
Carl Eugen Hoyos
9bc281beae lavf/icodec: Improve autodetection.
Avoids misdetection of MPEG (B-)frames.

Reviewed-by: Michael Bradshaw
2016-01-18 00:36:44 +01:00
James Darnley
f59b727e2f avcodec/v210: guard new avx2 functions from old assemblers 2016-01-17 21:23:58 +01:00
Michael Niedermayer
321e85e176 swscale/swscale: Add some sanity checks for srcSlice* parameters
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-17 20:35:36 +01:00
Michael Niedermayer
033b49e02d avcodec/libaacplus: Cleanup in case of init failure
Fixes: memleak
Fixes: 6b343214a0c12d94c1ea0ae9c3102dba/signal_sigsegv_262857d_8792_71ba605ad9ca9068b8218a6ce3628c25.mov

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-17 20:35:36 +01:00
Carl Eugen Hoyos
1f12a889da configure: The XMA decoders depend on wmapro.
Fixes compilation with --disable-fft.
2016-01-17 18:37:01 +01:00
Michael Niedermayer
5fbd97fc75 avcodec/diracdec: Fix qfactor/offset tables
It seems the previous tables where calculated with 32bit integers ignoring
overflows.
Also check for the max qindex, the value is choosen so that the qfactor/offset
fit in int32.

Fixes: 070b7914fd5dfe8f93248bea71363410/asan_static-oob_c8d034_2764_258e20f4a3c79158aecddb61a833d756.drc
Fixes out of array reads

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-17 17:28:20 +01:00
Claudio Freire
69697be922 libavcodec/aacenc_tnc.c: remove unused variable w2
No longer needed since previous commit
2016-01-17 13:14:24 -03:00
Claudio Freire
3d0849cc90 AAC encoder: TNS fixes on short windows
TNS was computing filter coefficients incorrectly for short windows
due to a few coefficient addressing bugs. Fixing them fixes lots of
instability with transients (short windows).
2016-01-17 12:52:54 -03:00
Claudio Freire
df3fa48288 AAC encoder: use signed coeffs when measuring IS energy
I/S energy, especially when it comes to phase cancellations,
needs to use signed coefficients as input, yet it was using
abs'd coefficients. That was a slight bug.
2016-01-17 12:52:54 -03:00
Claudio Freire
60a76f8be8 AAC encoder: enforce SF delta in PNS and IS SFs
Make sure to properly enforce maximum scalefactor delta in PNS
and I/S, not as an absolute range but relative to the previous
and first scalefactor, the latter important since PNS uses an
implicit inicial scalefactor derived from the global gain, and
encoded in a different way, which makes a big difference in the
allowed range.
2016-01-17 12:52:54 -03:00
James Darnley
4c430738d9 avcodec/v210: document the requirement for sample_factor
The sample factor must be the same for both 8- and 10-bit functions chosen
otherwise the output will be incorrect.
2016-01-17 16:03:43 +01:00
James Darnley
2cba1825f7 avcodec/v210: add avx2 version of the 10-bit line encoder
Around 25% faster than the ssse3 version.
2016-01-17 16:03:43 +01:00
James Darnley
3836f404a8 avcodec/v210: add avx2 version of the 8-bit line encoder
Around 35% faster than the avx version.

Signed-off-by: Henrik Gramner <henrik@gramner.com>
2016-01-17 16:03:43 +01:00
James Darnley
61625dcc39 fate: add 10-bit v210 encoder tests 2016-01-17 16:03:43 +01:00
Michael Niedermayer
c8a9aaab26 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>
2016-01-17 12:34:34 +01:00
Eddie Hao
a6dc1eb837 remove all uses of the deprecated avpicture_get_size() function
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-17 12:01:35 +01:00
Michael Niedermayer
757248ea3c 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>
2016-01-17 01:19:43 +01:00
Michael Niedermayer
ad3b6fa7d8 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>
2016-01-17 01:19:43 +01:00
Michael Niedermayer
7a0361b06f ffmpeg: fix sws_dict leak on error exit
Fixes: 1b79b985cdf860ffa228c00ee5497051/signal_sigsegv_1f99d24_3549_86d92054a79f6ff900fbaf03f8012b32.aif

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-17 01:19:43 +01:00
James Almer
dee579ffcd x86/fixed_dsp: add ff_butterflies_fixed_sse2
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-01-16 21:09:38 -03:00
Michael Niedermayer
aa6aa2ef09 avcodec/wmaenc: Check input for finiteness
Fixes out of array read
Fixes: 1b79b985cdf860ffa228c00ee5497051/signal_sigsegv_1f99d24_315_f0f1fdb451264b1138e9c24eb7d49181.wv

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-16 21:42:12 +01:00
Michael Niedermayer
057549a9cc 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>
2016-01-16 18:33:12 +01:00
Mats Peterson
535d09a510 lavf/matroskadec: Get sample size from private data
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-16 11:44:46 +01:00
Mats Peterson
a51c8a68ad lavf/mov: Don't limit fourcc 0 -> raw/twos to version 0 sample descriptions
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-16 11:42:46 +01:00
Michael Niedermayer
d7c75a5db0 avcodec/motion_est: Attempt to fix "short data segment overflowed" on IA64
This decreases the MV related encoding table sizes
This should have little effect on real world video encoding performance

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-16 00:56:05 +01:00
Andreas Cadhalpun
564dd3f0f4 mpeg4videodec: silence ubsan warning
s->ac_val[0][0] is of type 'int16_t [16]', but points into a larger buffer.
Here it is used as base pointer to find the correct position in the
larger buffer by adding 's->block_index[n] * 16' and thus as 'int16_t *'.

This fixes clang's ubsan runtime error: index out of bounds for type
'int16_t [16]'

Fixes: test_case.mp4

Found-by: Tyson Smith <twsmith@mozilla.com>
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-01-15 23:48:33 +01:00
Ganesh Ajjanagadde
5989add4ab lavu/x86/lls: add fma3 optimizations for update_lls
This improves accuracy (very slightly) and speed for processors having
fma3.

Sample benchmark (fate flac-16-lpc-cholesky, Haswell):
old:
5993610 decicycles in ff_lpc_calc_coefs,      64 runs,      0 skips
5951528 decicycles in ff_lpc_calc_coefs,     128 runs,      0 skips

new:
5252410 decicycles in ff_lpc_calc_coefs,      64 runs,      0 skips
5232869 decicycles in ff_lpc_calc_coefs,     128 runs,      0 skips

Tested with FATE and --disable-fma3, also examined contents of
lavu/lls-test.

Reviewed-by: James Almer <jamrial@gmail.com>
Reviewed-by: Henrik Gramner <henrik@gramner.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2016-01-15 16:46:13 -05:00
Paul B Mahol
d4ce63a1bf avfilter/af_sidechaincompress & af_agate: use audio fifo from lavu
Fixes regression causing segfault.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-15 21:49:42 +01:00
Piotr Bandurski
eded2e4fac avformat/riff: add C210 FourCC (Canopus C210) 2016-01-15 19:22:51 +01:00
Piotr Bandurski
23ac355487 avformat/riff: add YUYV FourCC (Drastic YUYV) 2016-01-15 19:14:51 +01:00
Paul B Mahol
7d76294ce0 avfilter: add ahistogram multimedia filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-15 19:10:46 +01:00
James Almer
36778627e2 x86/intmath: add missing early clobber to output operands
Signed-off-by: James Almer <jamrial@gmail.com>
2016-01-15 13:32:58 -03:00
Michael Niedermayer
da6f34516b avcodec/x86/fmtconvert: Add emms to int32_to_float_fmul_array8_sse()
this should fix checkasm on x86_64-archlinux-gcc-valgrind

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-15 17:08:37 +01:00
Michael Niedermayer
48f5244df7 avfilter/vaf_spectrumsynth: Fix mixed declaration and statment
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-15 16:51:54 +01:00
Michael Niedermayer
cfda1bea4c avformat/hls: Even stricter URL checks
This fixes a null pointer dereference at least

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-15 15:29:22 +01:00
Michael Niedermayer
6ba42b6482 avformat/hls: More strict url checks
No case is known where these are needed

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-15 14:11:21 +01:00
Andreas Cadhalpun
b06cb15b9d dca: fix misaligned access in ff_dca_convert_bitstream
The function is used on unaligned buffers (such as those provided
by AVPacket), 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

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-01-15 13:47:11 +01:00
James Almer
e3c188e72c avcodec/rmdec: add missing av_log argument
Also change the format specifier to expect an unsigned int

Signed-off-by: James Almer <jamrial@gmail.com>
2016-01-15 02:26:36 -03:00
Mats Peterson
b58cfa616c lavf/mov: Confine 0x00000000 to raw/twos fourcc mapping to version 0 sample descriptions
Confine the 0x00000000 to 'raw '/'twos' fourcc mapping to old version 0
sound sample descriptions, since they are the only valid sample
descriptions for this type of mapping.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-15 03:38:43 +01:00
Michael Niedermayer
8f4c3e4b92 avcodec/pngenc: Fix mixed up linesizes
Fixes out of array accesses
Fixes: 0cf176e6d3ab9fe924f39738e513f547/asan_generic_4a54aa_3431_aaa28be1cb32e307a9890cad06f84fba.avi

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-15 03:38:43 +01:00
Michael Niedermayer
7ec9c5ce8a avcodec/pngenc: Replace memcpy by av_image_copy()
Fixes out of array access
Fixes: 0cf176e6d3ab9fe924f39738e513f547/asan_generic_4a54aa_3431_aaa28be1cb32e307a9890cad06f84fba.avi

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-15 03:38:43 +01:00
Andreas Cadhalpun
c29e87ad55 asfdec_o: check for too small size in asf_read_unknown
This fixes infinite loops due to seeking back.

Reviewed-by: Alexandra Hájková <alexandra.khirnova@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-01-15 00:40:21 +01:00
Andreas Cadhalpun
0e32153e9c asfdec_o: break if EOF is reached after asf_read_packet_header
asf_read_payload can unset eof_reached, so check it also before calling
that function.

This fixes infinite loops.

Reviewed-by: Alexandra Hájková <alexandra.khirnova@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-01-15 00:39:46 +01:00
Andreas Cadhalpun
3776a72962 asfdec_o: make sure packet_size is non-zero before seeking
This fixes infinite loops due to seeking back.

Reviewed-by: Alexandra Hájková <alexandra.khirnova@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-01-15 00:39:30 +01:00
Andreas Cadhalpun
74474750f1 asfdec_o: prevent overflow causing seekback
This fixes infinite loops.

Reviewed-by: Alexandra Hájková <alexandra.khirnova@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-01-15 00:38:50 +01:00
Andreas Cadhalpun
0002d845e8 asfdec_o: check avio_skip in asf_read_simple_index
The loop can be very long, even though the file is very short.

Reviewed-by: Alexandra Hájková <alexandra.khirnova@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-01-15 00:37:30 +01:00
Andreas Cadhalpun
aa18016996 asfdec_o: reject size > INT64_MAX in asf_read_unknown
Both avio_skip and detect_unknown_subobject use int64_t for the size
parameter.

This fixes a segmentation fault due to infinite recursion.

Reviewed-by: Alexandra Hájková <alexandra.khirnova@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-01-15 00:37:13 +01:00
Andreas Cadhalpun
763c572801 asfdec_o: only set asf_pkt->data_size after sanity checks
Otherwise invalid values are used unchecked in the next run.
This can cause NULL pointer dereferencing.

Reviewed-by: Alexandra Hájková <alexandra.khirnova@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-01-15 00:36:41 +01:00
Andreas Cadhalpun
f8bc0137bd lavu: prevent overflow in av_clip_intp2_c
This fixes ubsan runtime error: signed integer overflow: 8388608 +
2140274688 cannot be represented in type 'int'

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-01-15 00:32:54 +01:00
Ganesh Ajjanagadde
2e4fd16f5b lavc/aacenc: use isfinite to simplify isnan/isinf logic
Reviewed-by: Claudio Freire <klaussfreire@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2016-01-14 18:28:38 -05:00
Michael Niedermayer
c3a24006d5 avformat/rmdec: Fix Packet memleak at close()
Fixes: asan_heap-oob_445b39_1741_d00eb645ab48eb2203b4a04a5b997103.ivr

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-14 23:49:52 +01:00
Michael Niedermayer
80fd348bb7 avformat/rmdec: Check size in ivr_read_packet() before use
Fixes out of array access
Fixes: asan_heap-oob_445b39_1741_d00eb645ab48eb2203b4a04a5b997103.ivr

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-14 23:49:52 +01:00
Michael Niedermayer
fc2588a1d6 swscale/vscale: Use matching sliceY/chrSliceY for luma/chroma
No case known where that makes a difference

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-14 23:49:52 +01:00
Aman Gupta
3a0e5cfcee lavc/ccaption_dec: clear all unused rows during rollup
Sometimes rollup captions can move around the screen. This fixes "ghost"
captions from below the current rollup area from continuing to be
captured when a rollup moves higher up on the screen.
2016-01-14 23:13:15 +01:00
Aman Gupta
9027806e3c lavc/ccaption_dec: clean up whitespace 2016-01-14 23:13:09 +01:00
Aman Gupta
fdbe5cd5c5 fate: add test for realtime ccaption decoder 2016-01-14 22:41:41 +01:00
Aman Gupta
5c041e2ccc lavc/ccaption_dec: implement real_time option
This new mode is useful for realtime decoding of closed captions so they
can be display along with mpeg2 frames.

Closed caption streams contain two major types of captions:

- POPON captions, which are buffered off-screen and displayed
  only after EOC (end of caption, aka display buffer)

- PAINTON/ROLLUP captions, which are written to the display as soon as
  they arrive.

In a typical real-time eia608 decoder, commands like EOC (end of
caption; display buffer), EDM (erase display memory) and EBM (erase
buffered memory) perform their expected functions as soon as the
commands are processed. This is implemented in the real_time branches
added in this commit.

Before this commit, and in the !real_time branches after this commit,
the decoder cleverly implements its own version of the decoder which is
specifically geared towards buffered decoding. It does so by actively
ignoring commands like EBM (erase buffered memory), and then re-using
the non-display buffer to hold the previous caption while the new one is
received. This is the opposite of the real-time decoder, which uses the
non-display buffer to hold the new caption while the display buffer is
still showing the current caption.

In addition to ignoring EBM, the buffered decoder also has custom
implementations for EDM and EOC. An EDM (erase display memory) command
flushes the existing contents before clearing the screen, and EOC
similarly always flushes the active buffer (the previous subtitle)
before flipping buffers.
2016-01-14 22:41:41 +01:00
Paul B Mahol
d6f1abe9ce avfilter/vf_fftfilt: this is video filter so use pixels instead of samples
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-14 22:20:25 +01:00
Paul B Mahol
2bbc7e9625 avfilter/vf_fftfilt: use the name 's' for the pointer to the private context
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-14 22:19:52 +01:00
Aman Gupta
260e368717 lavc/ccaption_dec: flush context on seek 2016-01-14 22:08:59 +01:00
Michael Niedermayer
eb7802afef swscale/vscale: Check that 2 tap filters are bilinear before using bilinear code
Fixes: out of array reads
Fixes: 07e8b9c5d348ccdf7add0f37de20cf6c/asan_heap-oob_27e8df7_6849_e56653f768070ec8cb52f587048444c2.mov

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-14 21:59:12 +01:00
Michael Niedermayer
b99f498716 swscale/output: Assert that yalpha and uvalpha are within their expected range
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-14 21:58:02 +01:00
Michael Niedermayer
fe6372bb61 swscale/vscale: Add fixme comment to "ugly" code
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-14 21:58:02 +01:00
Michael Niedermayer
705a2f70ee swscale/slice: Fix indention
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-14 21:58:02 +01:00
Michael Niedermayer
8feeffc1d7 swscale/slice: Fix doc typo
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-14 21:58:02 +01:00
Michael Niedermayer
e06403331c swscale: Move Contexts used only in hscale.c into it
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-14 21:58:02 +01:00
Michael Niedermayer
7b6e6895f2 swscale: Move VScalerContext into vscale.c
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-14 21:58:02 +01:00
Paul B Mahol
653f9d84ae avfilter: add spectrumsynth filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-14 20:51:20 +01:00
Michael Niedermayer
cc538e9dbd swscale/utils: Detect and skip unneeded sws_setColorspaceDetails() calls
This avoids running various table inits unnecessarily

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-14 15:46:55 +01:00
Michael Niedermayer
8f3a9a8c27 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>
2016-01-14 15:46:55 +01:00
Michael Niedermayer
5e5f82a287 swscale/yuv2rgb: Factor YUVRGB_TABLE_LUMA_HEADROOM out
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-14 15:46:55 +01:00
Paul B Mahol
70df51112c avfilter/af_dynaudnorm: fix possible null pointer dereference
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-14 14:30:36 +01:00
Claudio Freire
62dfe1d40d avcodec/aacenc_is: replace pow(x, 0.75) by x/sqrtf(sqrtf(x))
This is quite an accurate approximation; testing shows ~ 2ulp error in
the floating point result. Tested with FATE.

Alternatively, if one wants "full accuracy", one can use powf, or sqrt
instead of sqrtf. With powf, one gets 1 ulp error (theoretically should be 0, as
0.75 is exactly representable) on GNU libm, with sqrt, 0 ulp error.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>

Abstracted into pos_pow34 utility function

Signed-off-by: Claudio Freire <klaussfreire@gmail.com>
2016-01-14 00:38:22 -03:00
Ganesh Ajjanagadde
a0a47a09b0 lavu/libm: add isfinite fallback
Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2016-01-13 20:00:19 -05:00
Andreas Cadhalpun
44ac13eed4 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>
2016-01-14 01:23:54 +01:00
Maxim Andreev
7145e80b4f avformat/hls: forbid all protocols except http(s) & file
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-14 00:18:00 +01:00
Michael Niedermayer
92465a2347 avcodec/aacenc: Check for +-Inf too
Fixes out of array read
Fixes: 04442da73d935b776d2236282588d4f9/signal_sigsegv_2625a69_8790_ae85ffc889070663319b3417ede777b0.mov

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-13 23:49:27 +01:00
James Almer
17e7fdf61a avcodec/wavpackenc: print channel count in av_log call
Fixes a warning with -Wformat-extra-args
2016-01-13 19:26:40 -03:00
Michael Niedermayer
39fb3f18c5 avcodec/diracdec: Handle the 0 vlc case at the top of coeff_unpack_golomb()
decoding changes from 17 to 20 fps

Reviewed-by; Rostislav Pehlivanov <atomnuker@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-13 18:56:49 +01:00
Michael Niedermayer
bbd9771625 avcodec/diracdec: Factor +2 out of the inner loop
Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-13 18:55:46 +01:00
Michael Niedermayer
da144c2ddd avcodec/diracdec: Inline svq3_get_ue_golomb() and merge the sign bit decoding into it
This avoids closing and opening the bit reader

Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-13 18:54:50 +01:00
Michael Niedermayer
9006567bae avcodec/aacenc: mark output as const as its not written to
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-13 17:09:15 +01:00
Michael Niedermayer
0634c54253 avcodec/aacenc: Fix NAN check
All MDCT outputs must be checked in case of 128point MDCTs
Fixes: out of array read
Fixes: 04442da73d935b776d2236282588d4f9/signal_sigsegv_2625a69_351_52ca6226eb83547a2d26e322ce84ed84.mov

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-13 17:09:15 +01:00
Kieran Kunhya
bfc8a4dabe diracdec: Add slice threading to HQ profile 2016-01-13 16:08:56 +00:00
Andreas Cadhalpun
9cdddb93bb nutdec: only copy the header if it exists
Fixes runtime error: null pointer passed as argument 2, which is
declared to never be null

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-01-13 09:44:44 +01:00
Andreas Cadhalpun
8431629dd1 xwddec: prevent overflow of lsize * avctx->height
This is used to check if the input buffer is larger enough, so if this
overflows it can cause a false negative leading to a segmentation fault
in bytestream2_get_bufferu.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-01-13 09:39:13 +01:00
Andreas Cadhalpun
5b83b24ccb nuv: sanitize negative fps rate
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-01-13 09:37:11 +01:00
Andreas Cadhalpun
2884cf205a 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.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-01-13 09:33:09 +01:00
Claudio Freire
699c2ee560 AAC encoder: encode out-of-phase I/S efficiently
Use the ability to invert phase with ms_mask instead of changing
the codebook when possible, to avoid having to switch codebooks
if some bands are INTENSTY_BT and others are INTENSITY_BT2, since
usually a set ms_mask uses less bits that a codebook change. While
it may not always be a win (ie: if it causes an ms_mask bitmap
to be sent when it wouldn't have been otherwise), it's unlikely
since the ms_mask bitmap will almost always be there already for
M/S itself.
2016-01-13 05:28:34 -03:00
Claudio Freire
aa64a48357 AAC encoder: fix I/S relative error evaluation
The relative error between two encoding strategies is the simple
difference of rate-distortion values, and not the absolute
difference. An absolute measure would allow worsening of the
quantization error as well as improving.
2016-01-13 05:28:34 -03:00
Claudio Freire
6711aa21e2 AAC encoder: various fixes in M/S coding
1. Fix sf_idx and band_type addressing to address only the first
subwindow in the group (others could hold garbage values)

2. Don't step on ms_mask when is_mask is set. I/S selection
already sets the ms_mask properly and shouldn't be overridden.

3. Use mid/sid cb/sf when computing coding error, as should be
since those are the cb/sfs that will eventually be set.

4. Fix distortion computation on multi-subwindow groups (was
subtracting the bits terms multiple times)

5. Clear ms_mask when one side uses PNS and the other doesn't.
When using PNS, ms_mask signals correlated noise, which can be
detected just like regular M/S detection, so we don't skip
noise bands, but when only one side uses PNS setting the flag
can confuse some encoders, so avoid that.
2016-01-13 05:28:34 -03:00
Claudio Freire
4dcb69cc12 AAC encoder: in IS, fix index of sf_idx, band_type
Correct addressing of sf_idx and band_type arrays in I/S code.

Both arrays don't guarantee valid values for subwindows at all
times, depending on which coder is being used, which could result
in reading of garbage values. Instead, only the first subwindow
in the window group has to be used, ie: use w*16+g instead of
(w+w2)*16+g
2016-01-13 05:28:34 -03:00
Claudio Freire
509f168017 AAC encoder: don't apply MS on special bands
Change the condition for application of the M/S transform to match
that of the decoder. Namely, that no special coding books must be
in use in either channel. While the condition ought to be
equivalent to the current one when the invariant of is_mask is
kept, matching the decoder's condition is safer and easier to
maintain.
2016-01-13 05:28:34 -03:00
Claudio Freire
00d481b2c3 AAC encoder: avoid assertion failure on PNS
In rare corner cases it could still fail an assert on sf_diff due
to failure to update prev_sf in some code paths. Fix that case.
2016-01-13 05:28:34 -03:00
Claudio Freire
2a31b076b4 AAC encoder: fix assertion error with prediction
Fixes an assertion error reported in #2686 that happens when
using prediction (either explicitly or implicitly by setting
the AAC main profile), since prediction code would allow
creating new zeroes or removing existing ones, without
properly checking for SF delta violations.

This patch forbids creating/removing zeroes, perhaps an
overly conservative approach, but a safe one. More permissive
and sophisticated approaches may be attempted in the future.
2016-01-13 05:28:34 -03:00
Carl Eugen Hoyos
d3fe2e0dc9 lavc/mjpeg2jpeg: Accept more mjpeg streams as input.
Fixes ticket #5151.
2016-01-13 09:01:29 +01:00
Michael Niedermayer
9ca64c31d2 avutil/common: Protect GET_BYTE in GET_UTF8() by ()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-13 03:09:08 +01:00
Michael Niedermayer
115fb6d03e 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>
2016-01-13 03:09:08 +01:00
James Zern
1a876cc581 libvpxdec: fix 'ISO C90 forbids mixed declarations and code' warning
since:
cbcc88c libvpx: Support setting color range for vp9.

Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: James Zern <jzern@google.com>
2016-01-12 14:30:33 -08:00
Paul B Mahol
57e4571679 configure: showspectrum now uses fft, add showspectrumpic
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-12 22:36:34 +01:00
Paul B Mahol
57df71eaf7 avfilter/avf_showspectrum: reduce number of operations
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-12 21:21:50 +01:00
Paul B Mahol
2009d922db avfilter/avf_showspectrum: add posibility to display phase
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-12 21:21:50 +01:00
Carl Eugen Hoyos
405abdbaee lavf/mpjpegdec: Do not call av_log() while probing. 2016-01-12 20:35:03 +01:00
Michael Niedermayer
7c0b84d899 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>
2016-01-12 19:57:14 +01:00
Michael Niedermayer
d73f0c586e avformat/asfenc: Flush packet before duration becomes unrepresentable
Fixes: 0063df8be3aaa30dd6d76f59c8f818c8/signal_sigsegv_7b7b59_3634_bf418b6822bbfa68734411d96b667be3.mov
Fixes assertion failure

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-12 19:30:22 +01:00
Michael Niedermayer
782c4ab4ed avcodec/truemotion2: Cleanup in case of tm2_read_stream() failure
Fixes memleaks
Fixes: 245dae71bc28fe8f3f454300277e575a/signal_sigabrt_7ffff6ae7cb7_5062_f7d9dfa385454806586076f9db48c0bf.avi

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-12 17:23:13 +01:00
Carl Eugen Hoyos
27fa70fdfe lavc/mjpeg2jpeg: Check for jpeg file header. 2016-01-12 16:13:27 +01:00
Mats Peterson
adef8ee794 lavf/matroskadec: Use av_realloc() in get_qt_codec()
Use av_realloc() rather than av_malloc() when normalizing noncompliant
private data in get_qt_codec().

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-12 14:53:25 +01:00
Anton Khirnov
c59fec783d nvenc: generate dts properly
When there is a non-zero decoding delay due to reordering, the first dts
should be lower than the first pts (since the first packet fed to the
decoder does not produce any output).

Use the same scheme used in mpegvideo_enc (which comes from x264
originally) -- wait for first two timestamps and extrapolate linearly to
the past to produce the first dts value.
2016-01-12 09:23:38 +01:00
Anton Khirnov
9d36cab4c0 nvenc: fix encoding with B-frames
When B-frames are enabled and the encoder returns success, all currently
pending buffers immediately become valid and can be returned to the
caller. We can only return one packet at a time, so all the other
pending buffers should be transferred to a new 'ready' fifo, from where
they can be returned in subsequent calls (in which the encoder does not
produce any new output). This bug was hidden by the incorrect testing of
the encoder return value (the return value was overwritten before it was
tested).
2016-01-12 09:23:38 +01:00
Anton Khirnov
aac7d6b284 nvenc: flush the encoder before closing it, as required by the docs
Otherwise, closing the encoder can crash.
2016-01-12 09:23:38 +01:00
Anton Khirnov
ee359c72ef nvenc: rename encoders
Change 'nvenc_<codec>' to '<codec>_nvenc', which is consistent with
other similar decoders and encoders (QSV, MMAL).
2016-01-12 09:23:34 +01:00
Anton Khirnov
39571e86cb nvenc: better error handling
Return proper error codes and print more descriptive error messages.
2016-01-12 09:12:40 +01:00
Anton Khirnov
9cce011b1d movenc-test: stop setting the GLOBAL_HEADER codec flag
This test does no encoding, setting the flag was done just to silence
the warning removed in the previous commit.
2016-01-12 09:12:24 +01:00
Anton Khirnov
521dc78366 mux: drop the warning about global headers
The AVStream codec context is often not (and should not be) the actual
encoding context, so this warning will be spurious in many cases.
2016-01-12 09:12:24 +01:00
Timothy Gu
d64d6edfc7 Correct two build/built typos
Found-by: Leo Izen <leo.izen@gmail.com> as thebombzen on IRC
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2016-01-11 20:53:11 -08:00
Michael Niedermayer
7c97946d61 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>
2016-01-12 03:35:29 +01:00
Ricardo Constantino
d50b5d547f rtmpdh: Initialize gcrypt before using it
Either disabling or init'ing secure memory is required after the use
of gcry_check_version. From a look at the functions rtmpdh uses, I
noticed none require the use of secure memory, so we disable it [1][2].

This resolves some errors returned by rtmpdh code with uninitialized
gcrypt, especifically:
Fatal: failed to create the RNG lock: Invalid argument
FATAL: failed to acquire the FSM lock in libgrypt: Invalid argument

Version "1.5.4" was arbitrarily chosen. An older version probably works
as well, but I couldn't compile older versions to test on my machine.

[1]
https://gnupg.org/documentation/manuals/gcrypt/Initializing-the-library.html
[2]
https://www.gnupg.org/documentation/manuals/gcrypt/Controlling-the-library.html

Signed-off-by: Ricardo Constantino <wiiaboo@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-12 00:56:02 +01:00
Andreas Cadhalpun
d637a58750 diracdec: fix idwt_stride calculation in bytes
The transformation to bytes must happen after alignment to get the same
resulting pointers as before.

This fixes segmentation faults in the assembler code.

The regression was introduced in commit 9553689.

Reviewed-by: Kieran Kunhya <kierank@obe.tv>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-01-12 00:12:36 +01:00
Ganesh Ajjanagadde
07a11ebcab lavc/cbrt_tablegen: speed up tablegen
This exploits an approach based on the sieve of Eratosthenes, a popular
method for generating prime numbers.

Tables are identical to previous ones.

Tested with FATE with/without --enable-hardcoded-tables.

Sample benchmark (Haswell, GNU/Linux+gcc):
prev:
7860100 decicycles in cbrt_tableinit,       1 runs,      0 skips
7777490 decicycles in cbrt_tableinit,       2 runs,      0 skips
[...]
7582339 decicycles in cbrt_tableinit,     256 runs,      0 skips
7563556 decicycles in cbrt_tableinit,     512 runs,      0 skips

new:
2099480 decicycles in cbrt_tableinit,       1 runs,      0 skips
2044470 decicycles in cbrt_tableinit,       2 runs,      0 skips
[...]
1796544 decicycles in cbrt_tableinit,     256 runs,      0 skips
1791631 decicycles in cbrt_tableinit,     512 runs,      0 skips

Both small and large run count given as this is called once so small run
count may give a better picture, small numbers are fairly consistent,
and there is a consistent downward trend from small to large runs,
at which point it stabilizes to a new value.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2016-01-11 17:20:38 -05:00
Andreas Cadhalpun
f6e1c96730 ffmdec: change type of len to ptrdiff_t
It is used to store the difference between pointers, so ptrdiff_t is the
correct type.

This prevents potential overflows.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-01-11 23:14:52 +01:00
Andreas Cadhalpun
63c9b30f98 qtpalette: make the color_* variables unsigned again
This fixes segmentation faults due to out of bounds writes, when
color_start is interpreted as negative number.

This regression was introduced in commit 57631f.

Reviewed-by: Mats Peterson <matsp888@yahoo.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-01-11 23:14:52 +01:00
Andreas Cadhalpun
fa66237b69 lavc: Use get_bitsz where needed
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-01-11 21:51:11 +01:00
Andreas Cadhalpun
62825236db lavc: Add get_bitsz()
get_bit variant supporting 0-bits reads.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-01-11 21:51:11 +01:00
Vittorio Giovara
81737f42c2 sunrastenc: Properly load codec private options
Initialize the private class field and give the class a more
appropriate name. Add a class member to the codec context.
2016-01-11 15:32:57 -05:00
Kieran Kunhya
46350db737 get_bits: Support max_depth > 2 in GET_RL_VLC_INTERNAL 2016-01-11 15:32:57 -05:00
Clément Bœsch
e8bc642202 lavu: add AV_CEIL_RSHIFT and use it in various places
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-01-11 15:32:56 -05:00
Clément Bœsch
7570c9e04f swfdec: support compressed swf
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-01-11 15:32:56 -05:00
Alexandra Hájková
34d45b3616 asfdec: Fix typo in comment
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-01-11 21:00:49 +01:00
Luca Barbato
40d43d25e7 APIchanges: Add missing av_pix_fmt_get_chroma_sub_sample entry 2016-01-11 20:53:12 +01:00
Michael Niedermayer
59c915a403 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>
2016-01-11 18:58:08 +01:00
Michael Niedermayer
26757b0279 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>
2016-01-11 18:47:33 +01:00
Michael Niedermayer
c71999ef97 avformat/dfa: Fix packet leak on error
Fixes: 07fa81f300736485e585b63e7b1cd155/signal_sigabrt_7ffff6ae7cb7_16_94ee815791a1357826524072db5bc2dc.dfa

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-11 17:16:18 +01:00
Mats Peterson
71f73ee325 lavf/matroskadec: Normalize noncompliant A_QUICKTIME/V_QUICKTIME private data
This patch adds a new static function get_qt_codec() that takes care of
the initial retrieval of the fourcc and codec ID for A_QUICKTIME and
V_QUICKTIME. It also normalizes noncompliant private data found in some
older files that incorrectly starts with the fourcc by expanding/shifting
the data by 4 bytes, and storing the data size at the start. This is
necessary in order for the rest of the code in the A_QUICKTIME and
V_QUICKTIME blocks (and most likely other code as well) to correctly
parse the private data.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-11 01:35:34 +01:00
Michael Niedermayer
56ec8f85e2 avcodec/ac3enc: Remove duplicate #include
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-11 01:35:34 +01:00
Michael Niedermayer
590863876d 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>
2016-01-10 19:31:39 +01:00
Michael Niedermayer
93ac72a98d 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>
2016-01-10 17:44:33 +01:00
Michael Niedermayer
030c7f0309 avcodec/g2meet: Check for ff_els_decode_bit() failure in epic_decode_run_length()
Fixes invalid shift
Fixes: g2m_left_shift_2.wmv

Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-10 17:23:51 +01:00
Clément Bœsch
79061bcec1 fate: fix sub-cc font 2016-01-10 16:31:30 +01:00
Clément Bœsch
6d32628bf3 lavc/ccaption_dec: improve default style
Use monospaced font, and a black box outline.
2016-01-10 16:28:14 +01:00
Michael Niedermayer
d86d7b2486 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>
2016-01-10 15:59:27 +01:00
Carl Eugen Hoyos
f587ed0cbb lavc/x264: Add compatibility values for coder options.
Fixes ticket #5142.
2016-01-10 14:25:56 +01:00
Marton Balint
fdb2d4b108 lavf/concatdec: do not access packet if av_read_frame returned error
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-01-10 14:13:16 +01:00
Clément Bœsch
a43deea861 lavc/ccaption_dec: fix ASS tags 2016-01-10 14:07:45 +01:00
Michael Niedermayer
e273dade78 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>
2016-01-10 12:49:35 +01:00
Michael Niedermayer
42c54d4cc3 avcodec/codec_desc: Add ff_aac_profiles to aac_latm
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-10 04:50:46 +01:00
Timothy Gu
53d6bf6627 avf_showspectrum: Silence "deprecated pixel format" warning 2016-01-09 15:32:31 -08:00
Paul B Mahol
cbad37e5bf avfilter/avf_showspectrum: set color range to frame
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-09 20:09:52 +01:00
Sasi Inguva
cbcc88c039 libvpx: Support setting color range for vp9.
Pass through color range to vp9 encoder. Parse color range in libvpxdec.c.

Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: Sasi Inguva <isasi@google.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-01-09 12:51:34 -03:00
Michael Niedermayer
2039b3e751 avformat: Add integer fps from 31 to 60 to get_std_framerate()
Fixes Ticket 5106

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-09 15:21:34 +01:00
Rostislav Pehlivanov
ba4c2917eb doc/encoders: fix typo in AAC encoder documentation
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-01-09 13:20:42 +00:00
Clément Bœsch
0948e0f553 lavc/ccaption_dec: simplify rollup cases 2016-01-09 12:44:10 +01:00
Clément Bœsch
22765140fa lavc/ccaption_dec: check for bprint completeness outside the loop 2016-01-09 12:40:50 +01:00
Clément Bœsch
31bff21d2c lavc/ccaption_dec: mark row and font as const in capture_screen() 2016-01-09 12:38:36 +01:00
Clément Bœsch
d587fbb676 lavc/ccaption_dec: fix mixed declarations and code warning 2016-01-09 12:37:30 +01:00
Clément Bœsch
5ae07914d0 lavc/ccaption_dec: check for bprint completeness only at the end 2016-01-09 12:37:11 +01:00
Aman Gupta
b7e64be8fb lavc/ccaption_dec: implement font styles 2016-01-09 12:32:27 +01:00
Aman Gupta
086093c77c lavc/ccaption_dec: simplify by incrementing cursor_column inside write_char() 2016-01-09 12:30:15 +01:00
Aman Gupta
811ce8f9c5 lavc/ccaption_dec: simplify by passing screen into write_char() 2016-01-09 12:29:19 +01:00
Aman Gupta
080de371d8 lavc/ccaption_dec: extract capture_screen() for future use
unlike reap_screen(), capture_screen() can be used to populate buffer
without touching the timestamps. this is useful for upcoming commits
which implement a real time caption stream.
2016-01-09 12:24:49 +01:00
Aman Gupta
e521a32af2 lavc/ccaption_dec: clear buffer before populating with screen contents 2016-01-09 12:23:54 +01:00
Aman Gupta
7def844be8 lavc/ccaption_dec: centralize buffer_changed=1 into reap_screen 2016-01-09 11:54:05 +01:00
Aman Gupta
c75b869516 lavc/ccaption_dec: rename screen_changed to buffer_changed 2016-01-09 11:54:00 +01:00
Aman Gupta
8fd7f03c56 lavc/ccaption_dec: extract ass time base into constant 2016-01-09 11:53:56 +01:00
Aman Gupta
6049b15c0a lavc/ccaption_dec: combine ROLLUP modes as they are identical 2016-01-09 11:53:52 +01:00
Aman Gupta
2693275c02 Revert "lavc/ccaption_dec: reap_screen() is responsible for clearing output buffer and signaling screen_changed"
This reverts commit 53ee84f811c3a3e55c688116d41310e76d285d9e.
2016-01-09 11:53:47 +01:00
Aman Gupta
578b911b5e Revert "lavc/ccaption_dec: implement "erase non displayed memory""
This reverts commit 26abdd61a39735c7907297e9b5c8bfe5255be555.
2016-01-09 11:53:40 +01:00
Aman Gupta
23a50c8ab9 Revert "lavc/ccaption_dec: reap_screen is not necessary when clearing screen or buffer"
This reverts commit fe225b113b0553cdcf1a1d2fbdbe37c467d7951b.
2016-01-09 11:53:37 +01:00
Carl Eugen Hoyos
836c793514 lavc/libvpxenc: Improve documentation for option cpu-used.
Fixes ticket #5140.
Reviewed-by: James Zern
2016-01-09 10:53:22 +01:00
Michael Niedermayer
6e249466cc avformat/movenc: Check that pkt duration is within 32bit range
Durations outside are not supported

Fixes Ticket5114
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-09 03:38:03 +01:00
Ricardo Constantino
be0f005da6 configure: Use libgcrypt-config's cflags
Signed-off-by: James Almer <jamrial@gmail.com>
2016-01-08 21:00:18 -03:00
Michael Niedermayer
5c8467a07c avformat/ivfenc: fix division by zero
Fixes Ticket 5115

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-08 23:27:10 +01:00
Martin Storsjö
73c8c0341c arm: Fix vfp dead code elimination with have_vfp_vm
This fixes builds with --disable-vfp.

Checking for the armv6 cpu flag is incorrect, since vfpv2 isn't
armv6 specific.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-01-08 23:52:59 +02:00
Aman Gupta
fe225b113b lavc/ccaption_dec: reap_screen is not necessary when clearing screen or buffer 2016-01-08 20:39:55 +01:00
Ricardo Constantino
e990d746d0 configure: Use libgcrypt-config if available
Signed-off-by: Ricardo Constantino <wiiaboo@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-08 20:36:48 +01:00
Aman Gupta
26abdd61a3 lavc/ccaption_dec: implement "erase non displayed memory" 2016-01-08 20:24:49 +01:00
Aman Gupta
53ee84f811 lavc/ccaption_dec: reap_screen() is responsible for clearing output buffer and signaling screen_changed
moves the screen_changed bit and the bprint_clear into reap_screen() so
the logic is centralized and callers do not need to touch the bit or the
buffer before calling reap_screen()
2016-01-08 20:23:47 +01:00
James Almer
dc79824deb 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>
2016-01-08 16:14:32 -03:00
James Almer
4ee38ed7f9 x86/float_dsp: zero extend len from ff_butterflies_float_sse implicitly
Reviewed-by: Christophe Gisquet <christophe.gisquet@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-01-08 16:14:27 -03:00
James Almer
7f520524f6 x86/float_dsp: remove len check from ff_butterflies_float_sse
The function documentation explicitly mentions it needs to be a multiple of 4.

Reviewed-by: Christophe Gisquet <christophe.gisquet@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-01-08 16:14:24 -03:00
Aman Gupta
5695c85332 lavc/ccaption_dec: remove unused return value from internal functions 2016-01-08 20:07:00 +01:00
Aman Gupta
b261749f70 lavc/ccaption_dec: clean up whitespace 2016-01-08 20:06:31 +01:00
Paul B Mahol
a69cf50dca avfilter/avf_showspectrum: add cool color map
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-08 18:01:11 +01:00
Paul B Mahol
b7b4d99a18 avfilter/avf_showfreqs: fix possible null pointer dereference
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-08 14:58:43 +01:00
Michael Niedermayer
47cd85e1e5 avformat/mov: Simplify format checking code
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-08 14:52:53 +01:00
Mats Peterson
6f1466dc52 lavf/matroskadec: A_QUICKTIME and fourcc 0x00000000
In many older QuickTime files, the audio format, or "fourcc", is
0x00000000. The QuickTime File Format Specification states the following
regarding this situation:

"This format descriptor should not be used, but may be found in some
files. Samples are assumed to be stored in either 'raw ' or 'twos'
format, depending on the sample size field in the sound description."

MPlayer handles this logic by itself, but FFmpeg/FFplay currently does
not.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-08 14:52:53 +01:00
Mats Peterson
13d02d3dc8 lavf/mov: Audio and fourcc 0x00000000
In many older QuickTime files, the audio format, or "fourcc", is
0x00000000. The QuickTime File Format Specification states the following
regarding this situation:

"This format descriptor should not be used, but may be found in some
files. Samples are assumed to be stored in either 'raw ' or 'twos'
format, depending on the sample size field in the sound description."

MPlayer handles this logic by itself, but FFmpeg/FFplay currently does
not.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-08 14:52:53 +01:00
Hendrik Leppkes
53ada3af62 x86/vf_w3fdif: 32-bit compatibility for w3fdif_simple_high 2016-01-08 11:56:43 +01:00
Paul B Mahol
08aec7c1bd avfilter/avf_showspectrum: add option to draw legend
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-08 11:51:46 +01:00
Ganesh Ajjanagadde
7ab37cae34 ffmpeg: check fclose return values
In the spirit of commit a956840cbc. Simple method to reproduce:
pass -vstats_file /dev/full to ffmpeg.

All raw fclose usages in ffmpeg.c taken care of here.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2016-01-07 16:57:37 -08:00
Ganesh Ajjanagadde
2fbdc4faf1 lavfi/avf_showspectrum: replace pow(x, 0.25) by sqrt(sqrt(x))
This is faster; precision assured as result is a float.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2016-01-07 16:57:20 -08:00
James Almer
08339cdb6c configure: remove unused bulitin check
Signed-off-by: James Almer <jamrial@gmail.com>
2016-01-07 20:11:00 -03:00
James Almer
28d5a3a74a lavu: rename and move ff_parity to av_parity
av_popcount is not defined in intmath.h.

Reviewed-by: ubitux
Signed-off-by: James Almer <jamrial@gmail.com>
2016-01-07 20:04:24 -03:00
Clément Bœsch
a1136ca973 lavc/g729dec: use ff_parity() 2016-01-07 22:51:36 +01:00
Clément Bœsch
00e96613f3 lavc/ccaption_dec: use ff_parity() 2016-01-07 22:51:36 +01:00
Clément Bœsch
2ce29d1765 lavu: add ff_parity() 2016-01-07 22:51:31 +01:00
Clément Bœsch
d64fe951c2 lavc/ccaption_dec: fix always true condition
No idea why this wasn't ever detected by a static analyzer.
2016-01-07 22:42:39 +01:00
Clément Bœsch
04826b7ff0 lavu/common: add an explanation to FF_CEIL_RSHIFT() 2016-01-07 22:34:04 +01:00
Clément Bœsch
5fbe57c027 lavf/uncodedframecrcenc: use FF_CEIL_RSHIFT() 2016-01-07 22:28:08 +01:00
Clément Bœsch
90cd02059b lavfi/deshake: use FF_CEIL_RSHIFT() 2016-01-07 22:27:54 +01:00
Clément Bœsch
84a967df03 lavu/common: fix FF_CEIL_RSHIFT() range comment 2016-01-07 22:20:22 +01:00
James Almer
f4c1a48483 x86/intmath: add sse optimized av_clipf and av_clipd
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-01-07 14:24:01 -03:00
Paul B Mahol
9f17d4ae7e avfilter/formats: fix leak of formats on error
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-07 09:58:55 +01:00
Martin Storsjö
fec76cd430 checkasm: Check register clobbering on aarch64
This is disabled on iOS, since iOS uses a slightly different ABI
for vararg parameters.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-01-07 09:33:24 +02:00
Martin Storsjö
26ec75aec3 checkasm: Check register clobbering on arm
Use two separate functions, depending on whether VFP/NEON is available.

This is set to require armv5te - it uses blx, which is only available
since armv5t, but we don't have a separate configure item for that.
(It also uses ldrd, which requires armv5te, but this could be avoided
if necessary.)

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-01-07 09:33:24 +02:00
Andreas Cadhalpun
fa463aa83a avpacket: fix size check in packet_alloc
The previous check only caught sizes from -AV_INPUT_BUFFER_PADDING_SIZE
to -1.

This fixes ubsan runtime error: signed integer overflow: 2147483647 + 32
cannot be represented in type 'int'

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-01-07 08:20:21 +01:00
Alexandra Hájková
066281372d asfdec: Remove unused function parameters
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-01-07 08:20:21 +01:00
Andreas Cadhalpun
2aec600ae7 asfdec: reject size > INT64_MAX in asf_read_unknown
Both avio_skip and detect_unknown_subobject use int64_t for the size
parameter.

This fixes a segmentation fault due to infinite recursion.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Alexandra Hájková <alexandra.khirnova@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-01-07 08:20:21 +01:00
Andreas Cadhalpun
c69461d737 asfdec: only set asf_pkt->data_size after sanity checks
Otherwise invalid values are used unchecked in the next run.
This can cause NULL pointer dereferencing.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Alexandra Hájková <alexandra.khirnova@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-01-07 08:20:21 +01:00
Anton Khirnov
d1cd20e4e3 qsvenc: split encoding frames and reading from the async FIFO
This makes sure all the frames are returned at the end.

Found-By: Maxym Dmytrychenko <maxym.dmytrychenko@intel.com>
2016-01-07 08:20:21 +01:00
Maxym Dmytrychenko
a6259a6ecb qsvenc: properly handle the warning from MFXVideoCORE_SyncOperation
Same as what is done in 3b6473b43eb69fc3faaf69f7fd0b83b51db7607f.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-01-07 08:20:21 +01:00
Ganesh Ajjanagadde
369b161d8e ffmpeg: replace log2 by av_log2
Slight change in output deemed irrelevant here.

Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2016-01-06 20:36:24 -08:00
Michael Niedermayer
0869ff7e9d avcodec/utils: Check bits_per_raw_sample on video encoder open
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-07 02:00:34 +01:00
Michael Niedermayer
13f266b50c 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>
2016-01-07 00:41:21 +01:00
Aman Gupta
3ec5d8fe0f libavcodec/ccaption_dec: rewrite packet handler as case statement; remove COR3 macro
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-06 22:33:42 +01:00
Aman Gupta
55ca79f526 libavcodec/ccaption_dec: clean up and standardize white space
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-06 22:33:14 +01:00
Michael Niedermayer
23679d82f6 configure: use warn() for mips unknown cpu warning
Found-by: ubitux
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-06 22:15:14 +01:00
Vicente Olivert Riera
6282bdc2bf mips: display a warning message when using an unknown CPU
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-06 19:41:38 +01:00
Derek Buitenhuis
72673ad7ea avcodec: Remove libstagefright
It serves absolutely no purpose other than to confuse potentional
Android developers about how to use hardware acceleration properly
on the the platform. The stagefright "API" is not public, and the
MediaCodec API is the proper way to do this.

Furthermore, stagefright support in avcodec needs a series of
magic incantations and version-specific stuff, such that
using it actually provides downsides compared just using the actual
Android frameworks properly, in that it is a lot more work and confusion
to get it even running. It also leads to a lot of misinformation, like
these sorts of comments (in [1]) that are absolutely incorrect.

[1] http://stackoverflow.com/a/29362353/3115956

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-06 16:43:06 +00:00
Andrey Turkin
149b1f7cca avfilter/vf_pad: fix direct padding
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-06 16:41:50 +01:00
Mats Peterson
6a975cb07f lavf/matroskadec: correct codec_tag for "SMI" SVQ3 files
This corrects the codec_tag for some SVQ3 files

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-06 14:45:52 +01:00
Ganesh Ajjanagadde
fc703f53cf lavfi/af_compensationdelay: replace pow(x,0.5) by sqrt(x)
sqrt is faster, and is sometimes more accurate depending on the libm.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2016-01-05 19:07:19 -08:00
Ganesh Ajjanagadde
a956840cbc ffmpeg: check return value of avio_closep for progress report
avio_closep is not guaranteed to succeed, and its return value can
contain information regarding failure of preceding writes and silent
loss of data (man 2 close, man fclose). Users should know when the
progress was not successfully logged, and so a diagnostic is printed
here.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2016-01-05 19:06:21 -08:00
Andreas Cadhalpun
da3c3c446c avpacket: fix size check in packet_alloc
The previous check only caught sizes from -AV_INPUT_BUFFER_PADDING_SIZE
to -1.

This fixes ubsan runtime error: signed integer overflow: 2147483647 + 32
cannot be represented in type 'int'

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-01-05 22:30:50 +01:00
Andreas Cadhalpun
fa74cdc60d parser: add av_assert1 to make sure the codec matches
Otherwise this can have some surprising effects (crashes), so let's
better not allow it.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-01-05 22:30:32 +01:00
Carl Eugen Hoyos
c3c22bee63 lavf/matroskaenc: Assume 48kHz sample rate for Opus initial padding.
Analyzed by Timothy B. Terriberry in Mozilla bug 1227153.
Fixes ticket #5121.
2016-01-05 21:34:35 +01:00
Michael Niedermayer
5b4da8a38a 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>
2016-01-05 18:10:34 +01:00
Aman Gupta
e7271e6d07 libavcodec/ccaption_dec: remove unnecessary include
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-05 18:10:34 +01:00
Paul B Mahol
206f65b06d avfilter/avf_avectorscope: add line drawing support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-05 15:01:55 +01:00
Paul B Mahol
c13216ac08 avfilter/window_func: add tukey window function
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-05 11:37:11 +01:00
Paul B Mahol
c31fa1d7b4 avfilter/avf_showspectrum: use av_clip/lrintf
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-05 10:07:59 +01:00
Paul B Mahol
0d3b31ae89 avfilter/avf_showspectrum: add yet another color map
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-05 10:07:58 +01:00
Michael Niedermayer
68eb20801d avcodec/dxv: Check idx in dxv_decompress_dxt5()
Fixes potential out of array read

No testcase available

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-05 03:08:09 +01:00
Michael Niedermayer
eb8a67de75 avcodec/dxv: Check idx in CHECKPOINT()
Fixes out of array read

Fixes Ticket5098
Fixes Ticket5099

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-05 02:55:49 +01:00
Ganesh Ajjanagadde
43624a669b lavc/pcm_tablegen: slight speedup of table generation
This gets rid of some branches to speed up table generation slightly
(impact higher on mulaw than alaw). Tables are identical to before,
tested with FATE.

Sample benchmark (Haswell, GNU/Linux+gcc):
old:
 313494 decicycles in build_alaw_table,    4094 runs,      2 skips
 315959 decicycles in build_alaw_table,    8190 runs,      2 skips

 323599 decicycles in build_ulaw_table,    4095 runs,      1 skips
 318849 decicycles in build_ulaw_table,    8188 runs,      4 skips

new:
 261902 decicycles in build_alaw_table,    4096 runs,      0 skips
 266519 decicycles in build_alaw_table,    8192 runs,      0 skips

 209657 decicycles in build_ulaw_table,    4096 runs,      0 skips
 232656 decicycles in build_ulaw_table,    8192 runs,      0 skips

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2016-01-04 17:23:24 -08:00
Michael Niedermayer
7cc01c2572 avcodec/h264_slice: Fix integer overflow in implicit weight computation
Fixes mozilla bug 1230423

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-05 01:12:42 +01:00
Michael Niedermayer
1edf129cbc 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>
2016-01-04 23:54:11 +01:00
Michael Niedermayer
9434ec5f76 avcodec/h264_refs: Fix and add back trace code removed in e1c5170c638e39a8017827339ac687c5f6ff9b35 2016-01-04 21:33:13 +01:00
Matthieu Bouron
e4e9b9454e swscale/arm/yuv2rgb: add ff_yuv422p_to_{argb,rgba,abgr,bgra}_neon_{16,32} 2016-01-04 18:56:52 +01:00
Matthieu Bouron
44913d1945 swscale/arm/yuv2rgb: fix typo 2016-01-04 18:56:52 +01:00
Luca Barbato
63f7f8d1db avconv: Drop an impossible check
EAGAIN is already managed in poll_filters().

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-01-04 16:58:32 +01:00
Luca Barbato
7ebf1b4ada avconv: Simplify poll_filters() return value check
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-01-04 16:58:32 +01:00
Paul B Mahol
6defda1cdb avfilter/avf_showspectrum: add option to set gain for calculating color intensity
Inspired by Sonic Visualizer.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-04 14:06:51 +01:00
Andreas Cadhalpun
1cb2331eca brstm: fix missing closing brace
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-01-04 13:44:16 +01:00
Andreas Cadhalpun
bcf4ee26a0 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>
2016-01-04 13:20:09 +01:00
Andreas Cadhalpun
d7d37c479f 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>
2016-01-04 13:19:59 +01:00
Andreas Cadhalpun
e7a7b3135a 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>
2016-01-04 13:07:28 +01:00
Hendrik Leppkes
e1c5170c63 Merge commit '2080bea4a74b6b1598caa806a11ea807ba546f94'
* commit '2080bea4a74b6b1598caa806a11ea807ba546f94':
  h264_refs: Remove broken trace debug code

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-04 11:40:34 +01:00
Hendrik Leppkes
3e337f0e40 Merge commit '58170b027144f4840018c7a60fb8d07924cc6242'
* commit '58170b027144f4840018c7a60fb8d07924cc6242':
  lavc: Add missing #includes for ff_dlog()

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-04 11:32:11 +01:00
Hendrik Leppkes
9507f68deb Merge commit '3b6473b43eb69fc3faaf69f7fd0b83b51db7607f'
* commit '3b6473b43eb69fc3faaf69f7fd0b83b51db7607f':
  qsvdec: properly handle the warning from MFXVideoCORE_SyncOperation

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-04 11:31:43 +01:00
Hendrik Leppkes
ad53c94d8f Merge commit 'a43905f4ae261bdde87c300901d867b31961f57b'
* commit 'a43905f4ae261bdde87c300901d867b31961f57b':
  qsvenc_hevc: improve the default settings

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-04 11:31:33 +01:00
Hendrik Leppkes
1fec347ef5 Merge commit '9d74012761bc3ee676fe43321d5699e4877fde5b'
* commit '9d74012761bc3ee676fe43321d5699e4877fde5b':
  h264: improve behaviour with invalid reference lists

Not merged, as we have a different solution.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-04 11:30:58 +01:00
Mats Peterson
b6c61b7d43 lavf/qtpalette: Ignore greyscale bit in certain cases
The QuickTime File Format Specification states the following:

"Depth: A 16-bit integer that indicates the pixel depth of the
compressed image. Values of 1, 2, 4, 8 ,16, 24, and 32 indicate the
depth of color images. The value 32 should be used only if the image
contains an alpha channel. Values of 34, 36, and 40 indicate 2-, 4-, and
8-bit grayscale, respectively, for grayscale images."

There is no mention of value 33, i.e. 1-bit video (0x01) with the
greyscale bit (0x20) set. I therefore suggest that we ignore the
greyscale bit when processing 1-bit video. Another reason to do this is
that the first 1-bit sample file below will be displayed properly with
blue colors in QuickTime in Windows or Mac *in spite of* the greyscale
bit being set.

Also, QuickTime in Windows or Mac ignores the greyscale bit if the
video sample description contains a palette, regardless of bit depth.
This is undocumented behaviour, but I think we should do the same, and
it seems pretty logical after all, since one wouldn't really bother
putting a customized palette into a grayscale file anyway. See the
second 8-bit sample file below, which has the greyscale bit set, and
which contains a palette in the video sample description. In Windows or
Mac, it will be displayed with the palette in the sample description, in
spite of the greyscale bit being set.

Sample file 1 (1-bit QuickTime Animation):
https://drive.google.com/open?id=0B3_pEBoLs0faTThSek1EeXQ0ZHM
Earth Spin 1-bit qtrle orig.mov

Sample file 2 (8-bit QuickTime Animation):
https://drive.google.com/open?id=0B3_pEBoLs0fad2s0V1YzUWo5aDA
quiz-palette+gs.mov

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-04 03:31:49 +01:00
Mats Peterson
bf42a7ef6d lavc/qtrle: Use AV_PIX_FMT_PAL8 for 1-bit video
This commit fixes the lack of palettized display of 1-bit video
in the qtrle decoder. It is related to my commit of
lavf/qtpalette, which added 1-bit video to the "palettized video"
category. As far as I can see, everything works fine, but comments are
of course welcome.

Below are links to sample files, which should now be displayed properly
with bluish colors, but which were previously displayed in black &
white.

Matroska:
https://drive.google.com/open?id=0B3_pEBoLs0faNjI0cHBMWDhYY2c
Earth Spin 1-bit qtrle.mkv

QuickTime (mov):
https://drive.google.com/open?id=0B3_pEBoLs0faUlItWm9KaGJSTEE
Earth Spin 1-bit qtrle.mov

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-04 03:31:35 +01:00
Michael Niedermayer
4da2ac5c7a avcodec/h264: Fix regression caused by removial of default_ref_list
This fixes a regression of the sample from Ticket 2371

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-04 02:30:48 +01:00
Andreas Cadhalpun
b4b13848de 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>
2016-01-03 23:44:47 +01:00
Paul B Mahol
0a451082c7 avfilter/avf_showspectrum: finally fix log scaler
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-03 23:09:43 +01:00
Paul B Mahol
14caf9667e avfilter/avf_showspectrum: switch to FFT
Rationale: supports >16 bit audio, more than 96dB SNR.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-03 23:09:43 +01:00
Carl Eugen Hoyos
ae9f2e6f28 lavfi/drawtext: Fix microsecond display.
Fixes ticket #4792.
2016-01-03 22:55:31 +01:00
Diego Biurrun
2080bea4a7 h264_refs: Remove broken trace debug code 2016-01-03 22:49:56 +01:00
Diego Biurrun
58170b0271 lavc: Add missing #includes for ff_dlog() 2016-01-03 22:49:55 +01:00
Andreas Cadhalpun
40eb2531b2 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>
2016-01-03 21:13:01 +01:00
Andreas Cadhalpun
43ff4aed26 lavc: use get_bitsz to simplify the code
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-01-03 21:12:53 +01:00
Andreas Cadhalpun
713654d9d3 get_bits: add get_bitsz for reading 0-25 bits
This can be used to simplify code in a couple of places.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-01-03 21:12:43 +01:00
Michael Niedermayer
97c162add7 avformat/ffmdec: Add {} to nested if/else
This preempts potential bugs if this is changed and the indention
ends up different from C interpretation

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-03 16:08:32 +01:00
Nicolas George
962727acb4 lavfi/vf_decimate: do not compare the first frame to itself.
This is a waste of computing power and will result to 0,
making it always dropped.
Use maximum difference values instead.
2016-01-03 15:50:51 +01:00
James Almer
35b0c7efda x86/vf_stereo3d: remove a few unnecessary movas
Signed-off-by: James Almer <jamrial@gmail.com>
2016-01-03 02:09:02 -03:00
James Almer
78129978f0 configure: bump copyright year to 2016
Signed-off-by: James Almer <jamrial@gmail.com>
2016-01-02 16:28:31 -03:00
Andreas Cadhalpun
2e752c7de9 ffmdec: change type of state and id to unsigned
This fixes ubsan runtime error: left shift by 8 places cannot be
represented in type 'int'

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-01-02 20:03:57 +01:00
Michael Niedermayer
cccb0ffccc 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>
2016-01-02 19:23:10 +01:00
Michael Niedermayer
a30238621d doc/encoders: Fix application name
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-02 19:23:00 +01:00
Hendrik Leppkes
957667d198 avutil/cpu: add missing entry for vfp_vm to av_parse_cpu_caps 2016-01-02 19:07:08 +01:00
Hendrik Leppkes
b95cba7b3c avcodec/dca: remove unused float quant table 2016-01-02 19:06:40 +01:00
Hendrik Leppkes
51da00e24c dca: adjust decoding of the XBR extension for integer core decoding 2016-01-02 19:01:42 +01:00
Paul B Mahol
af018d802d avfilter/avf_showspectrum: add 4th and 5th root scaler
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-02 18:53:09 +01:00
Paul B Mahol
2b172cb625 avfilter/avf_showspectrum: make some helper functions
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-02 18:53:09 +01:00
Paul B Mahol
d35c029cbf avfilter/avf_showspectrum: fix null pointer dereference if allocation fails
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-02 18:53:09 +01:00
Paul B Mahol
9b06e7befa avfilter/avf_showspectrum: add fiery color map
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-02 18:53:09 +01:00
Paul B Mahol
72280d1c6c avfilter: add showspectrumpic filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-02 18:53:09 +01:00
Paul B Mahol
7f7a9dd782 avfilter/avf_showspectrum: store win_size in private context and calculate it only once
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-02 18:53:09 +01:00
Paul B Mahol
8bcd1997ea avfilter/vf_zoompan: do not free frame we pushed to lavfi
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-02 18:51:11 +01:00
Hendrik Leppkes
7fe77aa62e Merge commit '40d949677335a564f769823f4afdb7e7a3da8d6b'
* commit '40d949677335a564f769823f4afdb7e7a3da8d6b':
  dca: use defines for subband related constants

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-02 17:52:34 +01:00
Hendrik Leppkes
2214207d04 Merge commit '8563f9887194b07c972c3475d6b51592d77f73f7'
* commit '8563f9887194b07c972c3475d6b51592d77f73f7':
  x86: use emms after ff_int32_to_float_fmul_scalar_sse

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-02 13:27:11 +01:00
Hendrik Leppkes
0eefc758e2 Merge commit 'f0f54117c8f206e8045d301c2eb975b26e9f263d'
* commit 'f0f54117c8f206e8045d301c2eb975b26e9f263d':
  checkasm: x86: post commit review fixes

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-02 13:26:28 +01:00
Hendrik Leppkes
a9cd11b212 Merge commit 'f4f27e4cf1013c55b2c7df359ce8d58ee922662c'
* commit 'f4f27e4cf1013c55b2c7df359ce8d58ee922662c':
  x86: zero extend the 32-bit length in int32_to_float_fmul_scalar implicitly

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-02 13:23:25 +01:00
Hendrik Leppkes
95a2b883e3 Merge commit '69a68593ce5684409c3c4dd9a901bfd8b16925b1'
* commit '69a68593ce5684409c3c4dd9a901bfd8b16925b1':
  Remove stray line breaks from avpriv_{report_missing_feature|request_samples}

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-02 13:20:13 +01:00
Hendrik Leppkes
8a04ddeb47 Merge commit '5049f6b772891cdf4030a9d572362efc8f7ae97f'
* commit '5049f6b772891cdf4030a9d572362efc8f7ae97f':
  rtpdec_jpeg: Coalesce redundant error checks

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-02 13:19:23 +01:00
Hendrik Leppkes
d03da3e240 Merge commit '2008f76054906e9ff6bf744800af0e5a5bfe61be'
* commit '2008f76054906e9ff6bf744800af0e5a5bfe61be':
  dca: remove unused decode_hf function and quant_d tables

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-02 13:17:48 +01:00
Hendrik Leppkes
af1238f863 Merge commit 'aebf07075f4244caf591a3af71e5872fe314e87b'
* commit 'aebf07075f4244caf591a3af71e5872fe314e87b':
  dca: change the core to work with integer coefficients.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-02 13:08:29 +01:00
Hendrik Leppkes
a51c2fcdc1 Merge commit '85990140e7302d1e7fcc9fc0eea316178c19fe03'
* commit '85990140e7302d1e7fcc9fc0eea316178c19fe03':
  dca: Add math helpers.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-02 12:53:14 +01:00
Hendrik Leppkes
f299d8d9f2 Merge commit '489e6add4478b0f5717dbf644234c6f3a3baf02c'
* commit '489e6add4478b0f5717dbf644234c6f3a3baf02c':
  checkasm: add fmtconvert tests

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-02 12:50:13 +01:00
Hendrik Leppkes
eb50a3d440 Merge commit '568a4323fbde03665b2b23a98068d02b39121812'
* commit '568a4323fbde03665b2b23a98068d02b39121812':
  checkasm: add synth_filter test

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-02 12:45:34 +01:00
Hendrik Leppkes
d882c0b9f9 Merge commit 'e71b747e9dc56cb84f8a06ec8214d5f3bd98bb6d'
* commit 'e71b747e9dc56cb84f8a06ec8214d5f3bd98bb6d':
  checkasm: add tests for dcadsp

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-02 12:38:46 +01:00
Hendrik Leppkes
0c7ade547a Merge commit '9d218d573f8088c606d873e80df572582e6773ef'
* commit '9d218d573f8088c606d873e80df572582e6773ef':
  checkasm: add float comparison util functions

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-02 12:35:52 +01:00
Andreas Cadhalpun
753930bc73 doc: make apidoc output independent of SRC_PATH
Previously it included the SRC_PATH in every title.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-01-02 12:11:36 +01:00
Andreas Cadhalpun
c112be25f7 oggparsedaala: reject too large gpshift
Also use a unsigned constant for the shift calculation, as 1 << 31 is
undefined for int32_t. This is also fixed oggparsetheora.

This fixes ubsan runtime error: shift exponent is too large for
32-bit type 'int'

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-01-02 12:00:39 +01:00
Hendrik Leppkes
69ead86027 Merge commit '711781d7a1714ea4eb0217eb1ba04811978c43d1'
* commit '711781d7a1714ea4eb0217eb1ba04811978c43d1':
  x86: checkasm: check for or handle missing cleanup after MMX instructions

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-02 11:55:44 +01:00
Hendrik Leppkes
f00e12e630 Merge commit 'cc29d96d5a379dbcf2649947d884c202c2a52767'
* commit 'cc29d96d5a379dbcf2649947d884c202c2a52767':
  arm64: fix inverted register order in transpose_4x4H

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-02 11:22:33 +01:00
Hendrik Leppkes
e40b33a9d7 Merge commit '5ea59b1f424f0efc7805d837e6fdb80561fb0f3a'
* commit '5ea59b1f424f0efc7805d837e6fdb80561fb0f3a':
  exr: fix out of bounds read in get_code

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-02 11:22:17 +01:00
Hendrik Leppkes
92ebe35d57 Merge commit '17776638c392d104975aba169e17b186490e1d5e'
* commit '17776638c392d104975aba169e17b186490e1d5e':
  opus: Fix typo causing overflow in silk_stabilize_lsf

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-02 11:22:05 +01:00
Hendrik Leppkes
e23c3a13e3 Merge commit '90b1b9350c0a97c4065ae9054b83e57f48a0de1f'
* commit '90b1b9350c0a97c4065ae9054b83e57f48a0de1f':
  arm: add ff_int32_to_float_fmul_array8_neon

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-02 11:21:36 +01:00
Hendrik Leppkes
e97e2588ca Merge commit 'a0fc780a2093784e8664f88205ee1b215e109cee'
* commit 'a0fc780a2093784e8664f88205ee1b215e109cee':
  arm64: int32_to_float_fmul neon asm

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-02 11:21:16 +01:00
Hendrik Leppkes
10e075c138 Merge commit '705f5e5e155f6f280a360af220fc5b30cfcee702'
* commit '705f5e5e155f6f280a360af220fc5b30cfcee702':
  arm64: port synth_filter_float_neon from arm

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-02 11:14:28 +01:00
Hendrik Leppkes
de3a33784c Merge commit 'c33c1fa8af2b2e82418a06901b6ad17b3d61b73e'
* commit 'c33c1fa8af2b2e82418a06901b6ad17b3d61b73e':
  arm64: convert dcadsp neon asm from arm

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-02 11:10:24 +01:00
Hendrik Leppkes
e754c8e8ca Merge commit 'e2710e790c09e49e86baa58c6063af0097cc8cb0'
* commit 'e2710e790c09e49e86baa58c6063af0097cc8cb0':
  arm: add a cpu flag for the VFPv2 vector mode

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-02 11:01:29 +01:00
Hendrik Leppkes
00e91d0676 Merge commit '5dfe4edad63971d669ae456b0bc40ef9364cca80'
* commit '5dfe4edad63971d669ae456b0bc40ef9364cca80':
  x86_64: int32_to_float_fmul_scalar sign extend integer length

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-02 10:46:18 +01:00
Hendrik Leppkes
af2e6f3215 Merge commit '64034849dad8410bedbe1def4c533490fb85cc4a'
* commit '64034849dad8410bedbe1def4c533490fb85cc4a':
  arm64: add cycle counter support

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-02 10:26:42 +01:00
Hendrik Leppkes
4cf66a8193 Merge commit '50078c1c8070dd8d1c329e8117ff30ec72489039'
* commit '50078c1c8070dd8d1c329e8117ff30ec72489039':
  libavutil: move FFALIGN macro from common.h to macros.h

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-02 10:25:12 +01:00
Hendrik Leppkes
40231a58a0 Merge commit 'dbce017913ce04966021a2f72e4f8fae5b4b7190'
* commit 'dbce017913ce04966021a2f72e4f8fae5b4b7190':
  mpegtsenc: add flag to embed an AC-3 ES the DVB way

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-02 10:20:46 +01:00
Hendrik Leppkes
d1262262de Merge commit 'cc4c24208159200b7aff5b5c313903c7f23fa345'
* commit 'cc4c24208159200b7aff5b5c313903c7f23fa345':
  avresample: Mark avresample_buffer() as pointer to const

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-02 10:13:58 +01:00
Hendrik Leppkes
b966a403dd avcodec/utils: fix AVPacket lifetime in seek_frame_generic
Fixes ticket #5117
2016-01-02 09:27:51 +01:00
Michael Niedermayer
dbfb2c1abf avformat/mp3dec: Remove unused variable
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-01 21:21:10 +01:00
Ganesh Ajjanagadde
9dba3f8f09 lavfi/af_sofalizer: remove exp2 and replace clz by ff_clz
ff_clz is faster, and uses an intrinsic (at the moment on GCC). exp2 is
a wasteful function for a simple integer exponentiation.

Untested.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2016-01-01 12:12:10 -08:00
Clément Bœsch
77eeaa2c3d lavf/srtdec: rewrite parsing logic
Fixes Ticket #5032

The samples in Ticket #5032 is using \r\r\n as line breaks.  Since we
already are handling \r, or \n, or \r\n as line breaks, \r\n\n will be
considered as a double line breaks. This is an issue because
ff_subtitles_read_text_chunk() will as a result stop extracting a chunk
after just one line.

So instead of parsing the SRT by "chunks" (which means splitting every
double LB), this new parser is detecting timing lines, and split the
events on this basis. While this sounds safe and simple, it needs to
take into account the event number preceding the timing line while
handling situations such as:

 - event number starting at 0 or actually any number instead of 1
 - event numbers not being ordered at all
 - event number being followed by text garbage (this really happened,
   see Ticket #4898)
 - event payload containing one or multiple number (a protagonist saying
   a count-down, a date or whatever) which could be confused with a
   chapter number
 - event number being empty (see Ticket #2167)
 - all kind of weird line breaks can appear randomly like wild pokémons
 - untrustable line breaks (Ticket #5032)

The sample madness.srt tries to sum up most of this into one sample,
ticket5032-rrn.srt is the file containing \r\r\n line breaks. and
empty-events-2167.srt contains empty events.
2016-01-01 18:31:49 +01:00
Hendrik Leppkes
5236cf8718 Merge commit '5bc223b15d064e328ff90b0241fa1191f1d2786d'
* commit '5bc223b15d064e328ff90b0241fa1191f1d2786d':
  r3d: fix an invalid read introduced in 6bf4c1d

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-01 17:22:25 +01:00
Hendrik Leppkes
99f2a56388 Merge commit '64f8c439fd663fec4d57ac21af572d498fe21f7a'
* commit '64f8c439fd663fec4d57ac21af572d498fe21f7a':
  rtmpproto: Include the full path as app when "slist=" is found

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-01 17:21:32 +01:00
Hendrik Leppkes
a240aefc7a Merge commit '9f0b6e6827e21e3477abe1199dc2728e30b8c061'
* commit '9f0b6e6827e21e3477abe1199dc2728e30b8c061':
  vocdec: do not create the stream in read_header()

Not merged as it breaks FATE.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-01 17:21:04 +01:00
Hendrik Leppkes
5c06fc4bd8 Merge commit '2d0432d918a71468419b7ac1e543ab3b399d3d37'
* commit '2d0432d918a71468419b7ac1e543ab3b399d3d37':
  vocdec: put the code not shared with other demuxers under appropriate ifdef

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-01 17:14:46 +01:00
Hendrik Leppkes
95daa9e09a Merge commit '09ae7b81ea2051eec2be9964296bd6ef492c6622'
* commit '09ae7b81ea2051eec2be9964296bd6ef492c6622':
  flvdec: do not create any streams in read_header()

Not merged. The demuxer issues warnings when a new stream is encountered
and reading the metadata requires that streams already exist.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-01 17:13:28 +01:00
Michael Niedermayer
0b1e94c50a Revert "Merge commit '9f1eccb97bf8894cb18b14f642500686505ef186'"
This unbreaks muxing-encoding
Example:
ffmpeg -i matrixbench_mpeg2.mpg new.avi

-rw-r----- 1 michael michael 226035354 Jan  1 16:27 new.avi
-rw-r----- 1 michael michael  10016802 Jan  1 16:28 ref.avi

Also av_get_audio_frame_duration() itself uses frame_size

This reverts commit 29e6606e9b42aa811be995e2fcdea4806911bc9f, reversing
changes made to 53448461a7720afab0d1f1234af79573fd2e020d.
2016-01-01 17:05:46 +01:00
Hendrik Leppkes
92fe2adc1b Merge commit 'de9e199a039473ebe4b1b87382e3064d0ea2cf02'
* commit 'de9e199a039473ebe4b1b87382e3064d0ea2cf02':
  lavc: make avpriv_mpa_decode_header private on next bump

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-01 17:05:37 +01:00
Hendrik Leppkes
a78d9abee0 Merge commit '72d658766e6ccf198317dffd6499c5e288847a1c'
* commit '72d658766e6ccf198317dffd6499c5e288847a1c':
  mp3dec: replace avpriv_mpa_decode_header with avpriv_mpegaudio_decode_header

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-01 16:57:40 +01:00
Hendrik Leppkes
42ff56e362 lavc: fix profile declarations for vdpau decoders 2016-01-01 16:48:47 +01:00
Hendrik Leppkes
1e96b151fa Merge commit '955aec3c7c7be39b659197e1ec379a09f2b7c41c'
* commit '955aec3c7c7be39b659197e1ec379a09f2b7c41c':
  mpegaudiodecheader: check the header in avpriv_mpegaudio_decode_header

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-01 16:47:27 +01:00
Hendrik Leppkes
15c60c8af2 Merge commit 'cea1eef25c3310a68dd327eb74aae14ad3c2ddef'
* commit 'cea1eef25c3310a68dd327eb74aae14ad3c2ddef':
  lavc: get the profile name through the codec descriptor in avcodec_string()

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-01 16:29:28 +01:00
Hendrik Leppkes
e760641720 lavc: add vp9 profiles to AVCodecDescriptor 2016-01-01 16:25:50 +01:00
Hendrik Leppkes
5e8b053452 Merge commit '2c6811397bdf13d43ca206e48d6d6da9c2cd47c6'
* commit '2c6811397bdf13d43ca206e48d6d6da9c2cd47c6':
  lavc: add profiles to AVCodecDescriptor

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-01 16:20:39 +01:00
Maxym Dmytrychenko
3b6473b43e qsvdec: properly handle the warning from MFXVideoCORE_SyncOperation
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-01-01 16:09:14 +01:00
Maxym Dmytrychenko
a43905f4ae qsvenc_hevc: improve the default settings
Use 8 B-frames and modify the GOP size to be a multiple of the B-frame
count.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-01-01 16:09:14 +01:00
Anton Khirnov
9d74012761 h264: improve behaviour with invalid reference lists
Before 741b494fa8cd28a7d096349bac183893c236e3f9, when the reference list
modification description was invalid, the code would substitute the
corresponding reference from the initial ("default") reference list.
After that commit, it will just return an error.

Since there are apparently invalid samples in the wild that used to play
fine with the old code, it is a good idea to re-add some sort of error
resilience here. So, when the reference list modification results in a
missing frame, substitute a previous reference frame for it. The
relevant sample again decodes fine with the same output as previously.
2016-01-01 16:09:14 +01:00
Hendrik Leppkes
5f2d12b824 Merge commit 'cdc9ce098e8d101b43b8f68dd35ba7226f4a728c'
* commit 'cdc9ce098e8d101b43b8f68dd35ba7226f4a728c':
  lavc: print the name of the codec, not its implementation, in avcodec_string

FFmpeg has already done this.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-01 16:02:42 +01:00
Hendrik Leppkes
f6728a3ea2 Merge commit '6bf4c1d71199b92894f24db6386ed5070e590a16'
* commit '6bf4c1d71199b92894f24db6386ed5070e590a16':
  r3d: do not create the audio stream until we know the sample rate

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-01 15:59:30 +01:00
Hendrik Leppkes
29e6606e9b Merge commit '9f1eccb97bf8894cb18b14f642500686505ef186'
* commit '9f1eccb97bf8894cb18b14f642500686505ef186':
  ff_parse_specific_params: do not use AVCodecContext.frame_size

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-01 15:52:18 +01:00
Hendrik Leppkes
53448461a7 Merge commit '1f008f34d5b2b5f6217521747e7acfe3efc0e666'
* commit '1f008f34d5b2b5f6217521747e7acfe3efc0e666':
  rmenc: do not use AVCodecContext.frame_size

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-01 15:51:58 +01:00
Lou Logan
b47111b657 doc/filters: add showwavespic colorize example
Signed-off-by: Lou Logan <lou@lrcd.com>
2015-12-31 16:40:20 -09:00
Michael Niedermayer
3843e52cb4 avcodec/ffv1enc: Support AV_PIX_FMT_YA8
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-01 01:32:07 +01:00
Michael Niedermayer
48985576b1 avcodec/ffv1dec: Support AV_PIX_FMT_YA8
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-01 01:32:06 +01:00
Andreas Cadhalpun
7ea2db6eaf 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>
2015-12-31 17:30:25 +01:00
erankor
3f8564fe3c avformat/mov: support cenc (common encryption)
support reading encrypted mp4 using aes-ctr, conforming to ISO/IEC
23001-7.

a new parameter was added:
- decryption_key - 128 bit decryption key (hex)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-31 16:46:36 +01:00
Paul B Mahol
15e1fd9883 avfilter/avf_showspectrum: add window overlap support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-31 12:29:58 +01:00
Paul B Mahol
b98c58573b avfilter/avf_showspectrum: add fire color map
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-31 11:44:18 +01:00
Alexandra Hájková
40d9496773 dca: use defines for subband related constants
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2015-12-31 11:40:32 +01:00
Paul B Mahol
4160900899 avfilter/trim: support all channel numbers in atrim filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-31 09:14:17 +01:00
Ganesh Ajjanagadde
b492fbcc6e lavc/dsd_tablegen: always generate tables at runtime
Commit b272c3a5aa has sped up dsd_tablegen, and now table generation takes
~ 40k cycles. Thus, these tables can always be generated at runtime.

Tested with/without --enable-hardcoded-tables.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-30 20:37:13 -08:00
Thomas Mundt
73ce8162f3 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>
2015-12-31 02:08:20 +01:00
Rostislav Pehlivanov
8de5b0d966 dirac_dwt: remove unnecessary undefs
They're all undefined within the template file.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-12-31 00:35:06 +00:00
yukari yakumo
f87e29a615 configure: support --cpu=host and Clang
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-30 23:14:31 +01:00
Paul B Mahol
0f387f2b62 avfilter/avf_showspectrum: add nebulae color map
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-30 21:28:52 +01:00
Vicente Olivert Riera
dde994751b mips: put "disable mipsfpu" in a better place for loongson
Let's disable the ISAs first, and then the core capabilities, as we do
for the rest of the cores. This way the code is better organized.

Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-30 20:21:57 +01:00
Vicente Olivert Riera
6a7e94cb14 mips: add mips32r6 architecture variant
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-30 20:21:45 +01:00
Michael Niedermayer
389ce22b5f avformat/movenc: Use strict_std_compliance from the muxer layer instead of the encoder layer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-12-30 20:06:04 +01:00
Paul B Mahol
2893dbfe2c avfilter/avf_showspectrum: add moreland color map
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-30 18:53:24 +01:00
Ganesh Ajjanagadde
05434b0eea lavc/cook: get rid of wasteful pow in init_pow2table
The table is highly structured, so pow (or exp2 for that matter) can entirely
be avoided, yielding a ~ 40x speedup with no loss of accuracy.

sample benchmark (Haswell, GNU/Linux):
new:
4449 decicycles in init_pow2table(loop 1000),     254 runs,      2 skips
4411 decicycles in init_pow2table(loop 1000),     510 runs,      2 skips
4391 decicycles in init_pow2table(loop 1000),    1022 runs,      2 skips

old:
183673 decicycles in init_pow2table(loop 1000),     256 runs,      0 skips
182142 decicycles in init_pow2table(loop 1000),     512 runs,      0 skips
182104 decicycles in init_pow2table(loop 1000),    1024 runs,      0 skips

Reviewed-by: Clément Bœsch <u@pkh.me>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-30 08:52:19 -08:00
Ganesh Ajjanagadde
b272c3a5aa lavc/dsd_tablegen: speed up table generation
Tables are bit identical.
Sample benchmark (Haswell, GNU/Linux+gcc):
old:
 814485 decicycles in dsd_ctables_tableinit,     512 runs,      0 skips

new:
 356808 decicycles in dsd_ctable_tableinit,     512 runs,      0 skips

Binary size should essentially be identical, and is in fact identical on
the configuration I tested on.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-30 08:45:19 -08:00
Ganesh Ajjanagadde
29bc293297 configure: make gcc 2 detection more robust
Solves an issue that will get triggered when gcc 20 rolls in.

Found-by: Hendrik Leppkes <h.leppkes@gmail.com>
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-30 08:45:02 -08:00
Janne Grunau
8563f98871 x86: use emms after ff_int32_to_float_fmul_scalar_sse
Intel's Instruction Set Reference (as of September 2015) clearly states
that cvtpi2ps switches to MMX state. Actual CPUs do not switch if the
source is a memory location. The Instruction Set Reference from 1999
(Order Number 243191) describes this behaviour but all later versions
I've seen have make no distinction whether MMX registers or memory is
used as source.
The documentation for the matching SSE2 instruction to convert to double
(cvtpi2pd) was fixed (see the valgrind bug
https://bugs.kde.org/show_bug.cgi?id=210264).

It will take time to get a clarification and fixes in place. In the
meantime it makes sense to change ff_int32_to_float_fmul_scalar_sse to
be correct according to the documentation. The vast majority of users
will have SSE2 so a change to the SSE version has little effect.

Fixes fate-checkasm on x86 valgrind targets.

Valgrind 'bug' reported as https://bugs.kde.org/show_bug.cgi?id=357059
2015-12-30 13:37:57 +01:00
Paul B Mahol
b0e23f2a37 avfilter/avf_showspectrum: add rainbow colormap
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-29 19:53:38 +01:00
Andreas Cadhalpun
b4466c9c1a oggparsedaala: check number of planes in pixel format map
This fixes crashes caused by out-of-bounds writes.

Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-12-29 18:42:14 +01:00
Ganesh Ajjanagadde
4a44bc5588 ffprobe: avoid unnecessary pow and exp2 calls
These are just for prefixes and may be hardcoded easily; see lavu/eval
for this approach.

Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-29 08:59:16 -08:00
Carl Eugen Hoyos
e5c16e38fe ffserver: Cast time_t value when using it in a format string.
Fixes ticket #5103.
2015-12-29 16:00:34 +01:00
Mats Peterson
bd03ee1184 lavf/qtpalette: Treat 1-bit video as palettized
This commit for qtpalette.c and qtpalette.h adds 1-bit video to the
"palettized video" category, since if the video sample description
contains a palette, the two colors in the palette can be any color, not
necessarily black & white.

Unfortunately, I've noticed that the qtrle (QuickTime Animation) decoder
blindly assumes that 1-bit video is black & white. I don't have enough
knowledge about the decoder to fix this, though.

Below is a link to a sample 1-bit QuickTime Animation clip of a rotating
earth that uses blueish colors, and they will be correctly rendered in
QuickTime, but not in FFmpeg (which will use black & white).

https://drive.google.com/open?id=0B3_pEBoLs0faUlItWm9KaGJSTEE

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-29 13:12:18 +01:00
Mark Harris
c51c08e0e7 avcodec: Use get_ue_golomb_long() when needed
get_ue_golomb() cannot decode values larger than 8190 (the maximum
value that can be golomb encoded in 25 bits) and produces the error
"Invalid UE golomb code" if a larger value is encountered.  Use
get_ue_golomb_long() instead (which supports 63 bits, up to 4294967294)
when valid h264/hevc values can exceed 8190.

This updates decoding of the following values:   (maximum)
  first_mb_in_slice                                36863* for level 5.2
  abs_diff_pic_num_minus1                         131071
  difference_of_pic_nums_minus1                   131071
  idr_pic_id                                       65535
  recovery_frame_cnt                               65535
  frame_packing_arrangement_id                4294967294
  frame_packing_arrangement_repetition_period      16384
  display_orientation_repetition_period            16384

An alternative would be to modify get_ue_golomb() to handle encoded
values of up to 49 bits as was done for get_se_golomb() in a92816c.
In that case get_ue_golomb() could continue to be used for all of
these except frame_packing_arrangement_id.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-29 13:11:51 +01:00
Janne Grunau
f0f54117c8 checkasm: x86: post commit review fixes
Check the full FPU tag word instead of only the lower half and simplify
the comparison.
Use upper-case function base name as macro name to instantiate both
checked_call variants.
2015-12-29 12:50:38 +01:00
Paul B Mahol
efa666e0da avfilter/avf_showspectrum: properly calculate w factor
It is used in calculating loudness of each frequency bin.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-29 12:11:33 +01:00
Paul B Mahol
e30e5c83ae avfilter/avf_showspectrum: add horizontal orientation support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-29 12:11:33 +01:00
Janne Grunau
f4f27e4cf1 x86: zero extend the 32-bit length in int32_to_float_fmul_scalar implicitly
This reverts commit 5dfe4edad63971d669ae456b0bc40ef9364cca80.
2015-12-29 11:42:51 +01:00
Ganesh Ajjanagadde
9f4c7b4df7 lavfi/af_anequalizer: replace pow(x,-2) by 1/(x*x)
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-28 16:48:41 -08:00
Ganesh Ajjanagadde
59ac7ce4da lavfi/af_anequalizer: replace pow(10,x) by ff_exp10(x)
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-28 16:48:27 -08:00
Ganesh Ajjanagadde
63702014fa lavfi/af_anequalizer: remove cabs, cexp dependencies
Replaces by real arithmetic. Tested the validity of these transformations separately.
Numerical differences are ~1e-15, and should not matter: it is not even
clear which is more precise mathematically.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-28 16:47:23 -08:00
Paul B Mahol
a7bf5f4117 avfilter/avf_showspectrum: use FF_ARRAY_ELEMS()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-28 23:04:40 +01:00
James Almer
1817643d4f x86/vf_stereo3d: make ff_anaglyph_sse4 work on x86_32
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-12-28 17:20:24 -03:00
James Almer
6e243d17e9 x86/vf_stereo3d: optimize register usage
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-12-28 17:20:12 -03:00
Paul B Mahol
4020787b5b avfilter/avf_showspectrum: make colors for log scale more user friendly
Previosly output was almost useless because background noise, due to
windowing function picked and which is not actually present in audio,
had too much brightness.
Now output of sine wave matches more with SoX.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-28 20:38:06 +01:00
Paul B Mahol
f88546b426 avfilter/avf_showspectrum: use ff_generate_window_func
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-28 18:58:46 +01:00
Paul B Mahol
45b3e6e04e avfilter: move window function generation into separate file
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-28 18:54:55 +01:00
Paul B Mahol
67771ac4b8 avfilter/avf_showspectrum: add rscroll sliding mode
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-28 18:16:10 +01:00
Joel Holdsworth
b9c46b5242 avformat/http: Documented http_proxy option
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-28 16:17:28 +01:00
Rodger Combs
1b5bd4051d lavf/mpegtsenc: add automatic bitstream filtering 2015-12-28 08:40:37 -06:00
Rodger Combs
b287d7ea17 lavf/matroskaenc: add automatic bitstream filtering 2015-12-28 08:40:37 -06:00
Rodger Combs
822e80fde3 lavf: add internal API to append a bsf to a stream's list 2015-12-28 08:40:37 -06:00
Rodger Combs
1f9139b07b lavf: add automatic bitstream filtering; bump version
This solves the problem discussed in https://ffmpeg.org/pipermail/ffmpeg-devel/2015-September/179238.html
by allowing AVCodec::write_header to be delayed until after packets have been
run through required bitstream filters in order to generate global extradata.

It also provides a mechanism by which a muxer can add a bitstream filter to a
stream automatically, rather than prompting the user to do so.
2015-12-28 08:40:35 -06:00
Rodger Combs
7a161b74ad lavf/tee: use lavf API for applying bitstream filters 2015-12-28 08:37:39 -06:00
Rodger Combs
a5fd3a1a2b ffmpeg: use lavf API for applying bitstream filters 2015-12-28 08:34:30 -06:00
Rodger Combs
4caa3e1c6c lavf: add API to apply a list of bsfs to a packet 2015-12-28 08:34:30 -06:00
Paul B Mahol
3977746036 doc/filters: add one more silenceremove example
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-28 12:23:59 +01:00
Paul B Mahol
47aaebd63e avfilter/af_silenceremove: make size of window user configurable
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-28 12:23:59 +01:00
Paul B Mahol
b841fe002a avfilter/af_silenceremove: lower number of operations in for loop
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-28 12:23:59 +01:00
Hendrik Leppkes
50401f5fb7 avcodec: properly check pkt_timebase for validity
Unset/invalid timebases have a zero numerator.
This makes the checks consistent with other timebase checks and fixes an
integer division by 0.
2015-12-28 10:24:15 +01:00
Michael Niedermayer
3c6781b48a Revert "ffplay: Fix auto insertion point of rotation filter"
Revert requested by Balint Marton <cus@passwd.hu>

See: [FFmpeg-devel] ffplay: insertion point of the auto rotation filter - Github ticket #141

This reverts commit 9cc1e644f39ed6a32e3a9bf5d0d6d663ca5791ab.
2015-12-28 03:44:31 +01:00
Michael Niedermayer
ca9e3cb3ce avformat/qtpalette: Move ff_get_qtpalette() doxy to header
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-28 03:18:20 +01:00
Mats Peterson
7973603843 avformat/matroskadec: palettized QuickTime video in Matroska
Palettized QuickTime video in Matroska has hitherto not been recognized
whatsoever, and the "palette" used has been completely random.

The patch for matroskadec.c fixes this issue by adding a palette side
data packet in matroska_deliver_packet(), much in the same way as it's
done in mov.c.

Video samples for testing are available at
https://drive.google.com/open?id=0B3_pEBoLs0faWElmM2FnLTZYNlk.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-28 02:47:58 +01:00
Mats Peterson
57631f1851 avformat: factor ff_get_qtpalette() out of mov.c
This consists mainly of moving the palette handling from
the mov_parse_stsd_video() function to a new ff_get_qtpalette() function
in the new file qtpalette.c, which will be shared by both matroskadec.c and
mov.c.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-28 02:47:26 +01:00
Joel Holdsworth
c48122d731 avformat/hls: Added http_proxy support
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-27 21:44:15 +01:00
Joel Holdsworth
9cdccd404b avformat/hls: Remember to free HLSContext::headers
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-27 21:44:15 +01:00
Joel Holdsworth
b4eb1f29eb avformat/http: Added http_proxy option
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-27 21:44:14 +01:00
Paul B Mahol
1809894b2a avfilter/af_silenceremove: add peak detector
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-27 20:49:29 +01:00
Michael Niedermayer
3215342121 avcodec/on2avc: Fix stability issues with scale_tab generation
This also simplifies the code
the resulting values are binary identical to what pow(10, i/10.0) produces
2015-12-27 16:44:48 +01:00
Reynaldo H. Verdejo Pinochet
baf4c489e5 avio: add detail to avio_printf() size warning
Previous "currently size is limited" didn't give away
much in terms of useful info.

Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-12-27 00:09:16 -08:00
Reynaldo H. Verdejo Pinochet
b25ac3c999 ffserver: add a doctype heading to our HTML pages
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-12-27 00:09:16 -08:00
Reynaldo H. Verdejo Pinochet
daaa535867 ffserver: HTML encode msgs instead of blindly stripping chars out
Fixes weirdness like our "??filename? not found" 404.

None of the chars being used from the previously blacklisted
list needs to be scaped on an UTF-8 document context

Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-12-27 00:09:16 -08:00
Reynaldo H. Verdejo Pinochet
0e5c1dc9a3 ffserver: make our 404 explicitly HTML5/UTF-8
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-12-27 00:09:16 -08:00
Ganesh Ajjanagadde
c5b3c4c741 lavc/snowenc: replace rint by lrint
avoids float to int cast.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-26 20:29:22 -08:00
Ganesh Ajjanagadde
5979c740f5 lavc/dds: replace rint by lrint
avoids float to int cast.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-26 20:29:22 -08:00
Ganesh Ajjanagadde
e09edc62cd lavc/texturedsp: replace rint by lrint
avoids float to int cast.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-26 20:29:22 -08:00
Ganesh Ajjanagadde
3e2e303e4b lavfi/avf_showspectrum: replace rint by lrint
avoids float to int cast.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-26 20:29:22 -08:00
Ganesh Ajjanagadde
4e7cfefa16 lavfi/vf_hue: replace rint by lrint
avoids float to int cast.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-26 20:29:22 -08:00
Lou Logan
0779d54a21 doc/filters: note NetCDF dependency for sofalizer
Also add @url for link.

Signed-off-by: Lou Logan <lou@lrcd.com>
2015-12-26 17:14:15 -09:00
Ganesh Ajjanagadde
71af38954b avcodec/on2avc: fix regression on icc since 5495c7f
Should fix the regression, and also speeds up table generation.
Tables tested on GNU/Linux+clang: they are identical to the ones prior
to 5495c7f. ff_exp10 caused one slight change in one entry, 50000 became
50001 due to somewhat incorrect rounding.

Untested on ICC; passes FATE on GNU/Linux+gcc.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-26 17:20:55 -08:00
Michael Niedermayer
e70d56b8ad avformat/img2dec: Reuse main IO context instead of reopening a single file
Fixes part of Ticket4849

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-26 20:21:52 +01:00
Michael Niedermayer
e9e8782202 avformat/img2dec: Skip checking the input files existence if it has already been opened
Avoids a unneeded open
Fixes part of Ticket4849

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-26 20:21:52 +01:00
Diego Biurrun
69a68593ce Remove stray line breaks from avpriv_{report_missing_feature|request_samples} 2015-12-26 10:28:03 +01:00
Diego Biurrun
5049f6b772 rtpdec_jpeg: Coalesce redundant error checks 2015-12-26 10:26:29 +01:00
Ganesh Ajjanagadde
f16e4a0857 ffplay: replace rint by lrint
avoids the float to integer cast, and is slightly superior in terms of
rounding ("Dutch/Gauss rounding").

Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-25 13:11:09 -08:00
Ganesh Ajjanagadde
0abdcae5a9 lavc/acelp_pitch_delay: replace exp2f(M_LOG2_10 *x) by ff_exp10f(x)
Suggested-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-25 10:48:18 -08:00
Ganesh Ajjanagadde
25ae086db2 lavc/wmaprodec: replace pow(10,x) by ff_exp10(x)
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-25 10:48:18 -08:00
Ganesh Ajjanagadde
3343e4e607 lavc/wmaenc: replace pow(10,x) by ff_exp10(x)
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-25 10:48:18 -08:00
Ganesh Ajjanagadde
62765c0014 lavc/wmadec: replace pow(10,x) by ff_exp10(x)
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-25 10:48:18 -08:00
Ganesh Ajjanagadde
a0ea801dc3 lavc/opus: replace pow(10,x) by ff_exp10(x)
Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-25 10:48:18 -08:00
Ganesh Ajjanagadde
5495c7f2a3 lavc/on2avc: replace pow(10,x) by ff_exp10(x)
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-25 10:48:18 -08:00
Ganesh Ajjanagadde
26ac80d235 lavc/imc: replace pow(10,x) by ff_exp10(x)
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-25 10:48:18 -08:00
Ganesh Ajjanagadde
717eeb77e1 lavc/dcaenc: replace pow(10,x) by ff_exp10(x)
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-25 10:48:18 -08:00
Ganesh Ajjanagadde
b0e28da37c lavc/cngdec: replace pow(10,x) by ff_exp10(x)
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-25 10:48:18 -08:00
Ganesh Ajjanagadde
cb3a994bb1 lavc/aacpsy: replace pow(10,x) by ff_exp10(x)
Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-25 10:48:18 -08:00
Ganesh Ajjanagadde
421679dbf7 lavfi/af_compand: replace pow(10,x) by ff_exp10(x)
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-25 10:48:18 -08:00
Ganesh Ajjanagadde
6c360ca8a1 lavfi/af_volume: replace pow(10,x) by ff_exp10(x)
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-25 10:48:18 -08:00
Ganesh Ajjanagadde
e0024b9e5f lavfi/f_ebur128: replace pow(10,x) by ff_exp10(x)
Reviewed-by: Clément Bœsch <u@pkh.me>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-25 10:48:18 -08:00
Ganesh Ajjanagadde
86aa2e9f76 lavfi/vsrc_testsrc: replace pow(10,x) by ff_exp10(x)
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-25 10:48:18 -08:00
Ganesh Ajjanagadde
0e9fe3e3c9 lavu/eval: replace pow(10,x) by ff_exp10(x)
Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-25 10:48:13 -08:00
Ganesh Ajjanagadde
48cd3d233b lavc/libopusdec: replace pow(10,x) by ff_exp10(x)
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-25 10:18:43 -08:00
Ganesh Ajjanagadde
11388b5a8f lavu/internal: add ff_exp10
Fast, reasonably accurate 10^x. Alternative of detection of libm exp10 at configure
time is not worth the trouble, since it is anyway not POSIX or ISO C,
and currently only the GNU libm has it. Furthermore, GNU libm's variant
is ~ 2x slower, and is ironically not correctly rounded (2 ulp off) to justify all
that slowdown.

Reviewed-by: James Almer <jamrial@gmail.com>
Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-25 10:12:49 -08:00
Ganesh Ajjanagadde
73616b1f21 lavu/libm,configure: remove exp10, exp10f detection
Subsequent commit introduces ff_exp10 instead.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-25 10:12:49 -08:00
Ganesh Ajjanagadde
5630ed5be6 lavu/libm: misc, minor changes
Addition of comments marking the end of ifdef blocks, correction of an
incorrect (at double precision) M_LN2, removal of an unnecessary undef.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-25 09:25:20 -08:00
Reto Kromer
b218ad4628 tools/bookmarklets: HTML code fixes
Minor HTML5 code changes.

Closes #167
2015-12-25 17:54:58 +01:00
Paul B Mahol
c9b99494be avfilter/af_anequalizer: make cliping filter type actually useful
Previously result was ignored.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-25 15:03:46 +01:00
Paul B Mahol
c6e3b6a819 avfilter/af_anequalizer: use pow instead of exp10
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-25 15:00:06 +01:00
Paul B Mahol
56c7d2b4da avfilter: add high-order parametric multiband equalizer filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-25 14:22:28 +01:00
Stefan Pöschel
80508178e1 doc/muxers/mpegts: update doc after adding flag to embed an AC-3/E-AC-3 ES the DVB way
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-25 12:31:25 +01:00
Michael Bradshaw
99eabcdd5f avcodec: add OpenJPEG 2.x compatibility
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-25 10:55:34 +01:00
wanzhang
9cc1e644f3 ffplay: Fix auto insertion point of rotation filter
Fixes watermark rotation for videos using auto rotation

Closes #141
2015-12-25 02:10:48 +01:00
Michael Niedermayer
b83d8be6bf swscale/utils: Fix intermediate format for cascaded alpha downscaling
Fixes Ticket4926

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-24 21:46:15 +01:00
Michael Niedermayer
4bec36f98c avformat/mpegts: consider stream_type 4 just a hint toward mp3 and not definite
Fixes Ticket 4864

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-24 20:47:25 +01:00
Michael Niedermayer
052e692e85 avcodec/ac3dec: Print the value of out of range exponents
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-24 20:47:25 +01:00
Ganesh Ajjanagadde
26937fb416 swr/resample: use av_clip_int16 instead of av_clip
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-24 11:29:52 -08:00
Paul B Mahol
8cbb055760 avfilter/af_sofalizer: make virtual speaker positioning supports all channel layouts
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-24 19:00:05 +01:00
James Almer
8dba3fb8fd x86/vf_blend: add sse2 versions of blend_difference and blend_negation
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-12-24 13:05:27 -03:00
James Almer
02f428051a x86/vf_blend: make all functions work on x86_32
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-12-24 13:05:24 -03:00
James Almer
0988c68cf9 x86/vf_blend: simplify using macros
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-12-24 13:05:21 -03:00
James Almer
ce4c85de6a x86/vf_maskedmerge: make ff_maskedmerge8_sse2 work on x86_32
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-12-24 13:05:18 -03:00
Alexandra Hájková
2008f76054 dca: remove unused decode_hf function and quant_d tables
They were superseded with their integer equivalents. Rename integer
decode_hf to decode_hf.
2015-12-24 13:58:18 +01:00
Stefan Pöschel
470749703e avformat/mpegtsenc: add flag to embed an AC-3/E-AC-3 ES the DVB way
So far an AC-3 elementary stream is refered to in the PMT according to
System A (ATSC). An E-AC-3 ES in contrast is embedded the System B (DVB) way.
To fix this inconsistency, this commit changes the default E-AC-3 behaviour to
use the ATSC way, too. Furthermore a new flag is added to optionally select the
DVB way (regarding both codecs and possible further differences in the future).

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-24 02:30:33 +01:00
Michael Niedermayer
e42e0b11f1 avfilter/x86/vf_maskedmerge: Clear upper part of width
Fixes crash
Fixes: Ticket5055

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-23 22:38:15 +01:00
Paul B Mahol
3689b58a5a avfilter/af_biquads: display clipping warnings once per filtered frame
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-23 19:15:25 +01:00
Ganesh Ajjanagadde
e29db08cf7 lavu/libm: add exp10 support
exp10 is a function available in GNU libm. Looks like no other common
libm has it. This adds support for it to FFmpeg.

There are essentially 2 ways of handling the fallback:
1. Using pow(10, x)
2. Using exp2(M_LOG2_10 * x).

First one represents a Pareto improvement, with no speed or accuracy
regression anywhere, but speed improvement limited to GNU libm.

Second one represents a slight accuracy loss (relative error ~ 1e-13)
for non GNU libm. Speedup of > 2x is obtained on non GNU libm platforms,
~30% on GNU libm. These are "average case numbers", another benefit is
the lack of triggering of the well-known terrible worst case paths
through pow.

Based on reviews, second one chosen. Comment added accordingly.

Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-23 09:22:59 -08:00
Ganesh Ajjanagadde
520a5d33f0 lavfi/af_aemphasis: remove unnecessary complex number usage
complex is not available on all platforms. Furthermore, it is trivial to
rewrite complex number expressions to real arithmetic, and in fact
sometimes advantageous for performance reasons: by wrapping as a complex,
one forces a particular Cartesian representation that is not necessarily optimal for the purpose.

Configure dependencies also removed, and aemphasis is now available across
all platforms.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-23 09:22:59 -08:00
wm4
a0ec4aebab avformat/subtitles: treat negative duration like unknown duration
Fixes a specific srt sample, which has an event with negative duration.
libavcodec will convert an event with negative duration to an ASS event
which will be displayed forever, which is not wanted here.

Treat negative duration always as unknown duration instead, and show it
until the next subtitle event.
2015-12-23 15:08:58 +01:00
Paul B Mahol
57787f5ef8 avcodec/s302menc: comment out allowed channel layouts
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-23 12:46:23 +01:00
Alexandra Hájková
aebf07075f dca: change the core to work with integer coefficients.
The DCA core decoder converts integer coefficients read from the
bitstream to floats just after reading them (along with dequantization).
All the other steps of the audio reconstruction are done with floats
which makes the output for the DTS lossless extension (XLL)
actually lossy.
This patch changes the DCA core to work with integer coefficients
until QMF. At this point the integer coefficients are converted to floats.
The coefficients for the LFE channel (lfe_data) are not touched.
This is the first step for the really lossless XLL decoding.
2015-12-23 11:50:18 +01:00
Alexandra Hájková
85990140e7 dca: Add math helpers.
They will be used by the integer core decoder.
2015-12-23 11:50:08 +01:00
Hendrik Leppkes
b942845bee avcodec/libschroedingerenc: add missing AVClass to private context
Fixes ticket #5104.
2015-12-23 10:22:00 +01:00
Andreas Cadhalpun
b648b246f0 diracdec: add missing check for pixel_range_index
This fixes an out-of-bounds read introduced in commit 0379603.

Reviewed-by: Kieran Kunhya <kierank@obe.tv>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-12-22 20:23:36 +01:00
Andreas Cadhalpun
7172175da6 mlvdec: validate bits_per_coded_sample
A negative bits_per_coded_sample doesn't make sense.
If it is too large, the size calculation for av_get_packet overflows,
resulting in allocation of a too small buffer.

Also make sure width and height are sane.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-12-22 19:39:43 +01:00
Michael Niedermayer
5dbd114b83 avformat/movenc-test: Make format static
Makes greping for non static consts easier

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-22 17:17:56 +01:00
Michael Niedermayer
d3b6a9abac avformat/mov: Update handbrake_version threshold for full mp3 parsing
Fixes: Endangered\ Species\ 1x01\ Collecting\ Merl.mp4

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-22 16:21:47 +01:00
Nicolas George
1655788712 lavfi: make request_frame() non-recursive.
Instead of calling the input filter request_frame() method,
ff_request_frame() now marks the link and returns immediately.
buffersink is changed to activate the marked filters until
a frame is obtained.
2015-12-22 16:04:30 +01:00
Nicolas George
108b4de552 lavfi: replace link.closed by link.status.
The status field can carry any error code instead of just EOF.
Also only update it through a wrapper function and provide a timestamp.
Update the few filters that used it directly.
2015-12-22 16:04:30 +01:00
Nicolas George
39a09e995d lavfi: deprecate avfilter_link_set_closed().
Applications are not supposed to mess with links,
they should close the sinks.
Furthermore, this function does not distinguish what end
of the link caused the close and does not have a timestamp.
2015-12-22 16:04:22 +01:00
Nicolas George
b8b7d5ac6c lavfi: add link.current_pts field. 2015-12-22 15:55:00 +01:00
Nicolas George
d03eab34dd lavfi: rename link.current_pts to current_pts_us.
This field is used for fast comparison between link ages,
it is in AV_TIME_BASE units, in other words microseconds,
µs =~ us.
Renaming it allows a second field in link time base units.
2015-12-22 15:55:00 +01:00
Nicolas George
63f7bee752 lavfi/vf_mpdecimate: remove request_frame().
It is no longer needed since looping is not necessary.
2015-12-22 15:55:00 +01:00
Michael Niedermayer
05af8608c2 avcodec/ass: check for av_mallocz() failure
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-22 14:41:27 +01:00
erankor
18cd7891cb MAINTAINERS: add Eran Kornblau for aes_ctr and movenccenc
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-22 13:57:55 +01:00
Timo Rothenpieler
d7c2b75681 vaapi: Add VP9 hwaccell support
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2015-12-22 12:54:23 +01:00
Carl Eugen Hoyos
b18230ee8c lavf/rmdec: Use correct format specifier for int64_t.
Fixes ticket #5100.
2015-12-22 09:29:08 +01:00
Claudio Freire
4720a562c8 AAC encoder: fix possible assertion failure in PNS
Fix possible SF delta violation that would cause an
eventual assertion failure in some corner cases (esp
on very low bitrates) when marking bands for PNS due
to misuse of the sf_delta utilities
2015-12-22 05:26:12 -03:00
Janne Grunau
489e6add44 checkasm: add fmtconvert tests 2015-12-21 18:58:46 +01:00
Rostislav Pehlivanov
c0f67e1123 aacenc_is: rename variable
'erf' is far from the best name for a variable and is not very
descriptive since the actual variable points to the comparitively best
IS phase. Therefore rename it to 'best'.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-12-21 17:23:38 +00:00
Ganesh Ajjanagadde
dd68cde28a lavu/libm: add erf hack and make dynaudnorm available everywhere
Source code is from Boost:
http://www.boost.org/doc/libs/1_46_1/boost/math/special_functions/erf.hpp
with appropriate modifications for FFmpeg.

Tested on interval -6 to 6 (beyond which it saturates), +/-NAN, +/-INFINITY
under -fsanitize=undefined on clang to test for possible undefined behavior.

This function turns out to actually be essentially as accurate and faster than the
libm (GNU/BSD's/Mac OS X), and I can think of 3 reasons why upstream
does not use this:
1. They are not aware of it.
2. They are concerned about licensing - this applies especially to GNU
libm.
3. They do not know and/or appreciate the benefits of rational
approximations over polynomial approximations. Boost uses them to great
effect, see e.g swr/resample for bessel derived from them, which is also
similarly superior to libm variants.

First, performance.
sample benchmark (clang -O3, Haswell, GNU/Linux):

3e8 values evenly spaced from 0 to 6
time (libm):
./test  13.39s user 0.00s system 100% cpu 13.376 total
time (boost based):
./test  9.20s user 0.00s system 100% cpu 9.190 total

Second, accuracy.
1e8 eval pts from 0 to 6
maxdiff (absolute): 2.2204460492503131e-16
occuring at point where libm erf is correctly rounded, this is not.

Illustration of superior rounding of this function:
arg   : 0.83999999999999997
erf   : 0.76514271145499457
boost : 0.76514271145499446
real  : 0.76514271145499446

i.e libm is actually incorrectly rounded. Note that this is clear from:
https://github.com/JuliaLang/openlibm/blob/master/src/s_erf.c (the Sun
implementation used by both BSD and GNU libm's), where only 1 ulp is
guaranteed.

Reasons it is not easy/worthwhile to create a "correctly rounded"
variant of this function (i.e 0.5ulp):
1. Upstream libm's don't do it anyway, so we can't guarantee this unless
we force this implementation on all platforms. This is not easy, as the
linker would complain unless measures are taken.
2. Nothing in FFmpeg cares or can care about such things, due to the
above and FFmpeg's nature.
3. Creating a correctly rounded function will in practice need some use of long
double/fma. long double, although C89/C90, unfortunately has problems on
ppc. This needs fixing of toolchain flags/configure. In any case this
will be slower for miniscule gain.

Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-21 09:03:11 -08:00
Janne Grunau
568a4323fb checkasm: add synth_filter test 2015-12-21 17:40:18 +01:00
Janne Grunau
e71b747e9d checkasm: add tests for dcadsp 2015-12-21 17:40:18 +01:00
Janne Grunau
9d218d573f checkasm: add float comparison util functions 2015-12-21 17:40:18 +01:00
Janne Grunau
711781d7a1 x86: checkasm: check for or handle missing cleanup after MMX instructions
Not every asm routine is expected clear the MMX state after returning.
It is however a requisite for testing floating point code in checkasm.
Annotate functions requiring cleanup with declare_func_emms() and issue
emms after the call. The remaining functions are checked for having  a
cleared MMX state after return.
2015-12-21 17:40:18 +01:00
Ganesh Ajjanagadde
fc5e39544b lavf/avformat: add av_warn_unused_result to avformat_write_header
May be useful as a defense, see e.g c62d1780fff8a1997dd1707bbc557efc8fe41e3c.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-21 08:39:57 -08:00
Ganesh Ajjanagadde
879b4a9d3e lavd/pulse_audio_enc: replace lround by lrint
Here it is mostly a cosmetic change, but there might be benefits in that
there are no compat hacks for lround, while there are for lrint.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-21 08:25:30 -08:00
Ganesh Ajjanagadde
ea2f04bffe lavfi/vf_histogram: replace round by lrint
lrint is at least as fast, uses a superior rounding mode, and avoids an
implicit cast.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-21 08:23:21 -08:00
Ganesh Ajjanagadde
ad795f6394 lavfi/af_dynaudnorm: replace round by lrint
lrint is at least as fast, uses a superior rounding mode, and avoids an
implicit cast.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-21 08:22:23 -08:00
Ganesh Ajjanagadde
2a486869d9 lavfi/vf_crop: replace round by lrint
lrint is at least as fast, avoids an implicit cast, and uses a superior
rounding mode.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-21 08:21:20 -08:00
Ganesh Ajjanagadde
b9c2ebeee4 lavc/libvpxenc: replace round by lrint
Mostly cosmetic here.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-21 08:20:26 -08:00
Ganesh Ajjanagadde
ff1442a51d lavfi/vf_drawtext: replace round by llrint
llrint is at least as fast, and avoids an implicit cast.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-21 08:18:12 -08:00
Ganesh Ajjanagadde
7af14b3726 lavfi/vf_colorlevels: replace round by lrint
lrint avoids an implicit cast, and is not slower on non-broken libm's. Thus this
represents a Pareto improvement.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-21 08:17:13 -08:00
Ganesh Ajjanagadde
cc37b31ad3 lavfi/vf_colorchannelmixer: replace round by lrint
lrint is faster here on -ftree-vectorize with GCC. This is likely simply
an artifact of GCC's rather terrible auto-vectorizer, since as per the
instruction set manuals cvtsd2si and cvttsd2si (or their vector equivalents)
have identical cycle timings.

Anyway, regardless of above, lrint is superior to round accuracy wise.

Safety guaranteed as long int has at least 32 bits.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-21 08:15:31 -08:00
Clément Bœsch
d3dbae1c71 lavfi/drawtext: fix shadow[xy] descriptions 2015-12-21 16:42:14 +01:00
Clément Bœsch
1d6308dbc6 lavfi/drawtext: hide first font load warning when fontconfig is present 2015-12-21 16:07:22 +01:00
Clément Bœsch
4cb26c3c35 lavfi/drawtext: fix crash when no text, file or timecode provided 2015-12-21 15:54:20 +01:00
Janne Grunau
cc29d96d5a arm64: fix inverted register order in transpose_4x4H
Fix related register order issue in ff_h264_idct_add_neon.

Found-by: zjh8890 <243186085@qq.com>
2015-12-21 13:44:20 +01:00
Paul B Mahol
a142308dcd avfilter/af_ladspa: fix av_assert0()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-21 13:27:56 +01:00
Clément Bœsch
b4431c80ef lavf/img2enc: add atomic_writing option
This behaviour change caused a regression on our side recently, we might
want to disable the option by default.
2015-12-21 11:19:51 +01:00
Clément Bœsch
f122ba36cb lavc: add text encoder 2015-12-21 11:14:02 +01:00
Clément Bœsch
244766e407 lavfi/scale: add nb_slices debug option 2015-12-21 10:30:52 +01:00
Paul B Mahol
484cc66f57 avcodec/indeo2: use init_get_bits8
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-20 21:31:55 +01:00
James Almer
d4c47333e1 x86/hevc_sao: add ff_hevc_sao_edge_filter_{8,16}_{10,12}
Reviewed-by: Christophe Gisquet <christophe.gisquet@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-12-20 17:01:15 -03:00
James Almer
3ff2beff65 x86/hevc_sao: simplify sao_edge_filter 10/12bit
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Reviewed-by: Christophe Gisquet <christophe.gisquet@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-12-20 16:45:37 -03:00
James Almer
34b2bd03cf x86/hevc_sao: simplify sao_band_filter 10/12bit
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Reviewed-by: Christophe Gisquet <christophe.gisquet@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-12-20 16:42:36 -03:00
Paul B Mahol
9e569abe99 avfilter/avf_showfreqs: make it possible to split channels
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-20 19:52:51 +01:00
Paul B Mahol
367ffa0c15 avcodec/flacenc: use designated initializers for AVClass
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-20 17:47:21 +01:00
Paul B Mahol
db6e337b41 avcodec/s302menc: check if buf_size can actually be put into 16bit size
This disallows creating unplayable audio.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-20 16:05:37 +01:00
Paul B Mahol
577f057355 avcodec/s302menc: set supported channel layouts by codec
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-20 16:05:37 +01:00
Andreas Cadhalpun
f6830cf5ba nuv: sanitize negative fps rate
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-12-20 12:22:45 +01:00
Andreas Cadhalpun
699e68371e 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>
2015-12-20 12:15:56 +01:00
Andreas Cadhalpun
9fcfe4a3cd 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>
2015-12-20 11:57:54 +01:00
Michael Niedermayer
70f13abb4f 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>
2015-12-19 23:54:10 +01:00
Ganesh Ajjanagadde
062e3e2382 lavu/libm: add copysign hack
For systems with broken libms.
Tested with NAN, -NAN, INFINITY, -INFINITY, +/-x for regular double x and
combinations of these.

Old versions of MSVC need some UINT64_C hackery.

Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-19 14:05:49 -08:00
James Almer
0f520e489a avcodec/Makefile: add missing dep for g723_1 encoder
Signed-off-by: James Almer <jamrial@gmail.com>
2015-12-19 18:50:47 -03:00
Paul B Mahol
7caf381a95 avfilter/af_dynaudnorm: use av_malloc_array()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-19 22:46:10 +01:00
Michael Niedermayer
b92b4775a0 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>
2015-12-19 22:17:54 +01:00
Matthieu Bouron
b32a42295a swscale/arm/yuv2rgb: add ff_yuv420p_to_{argb,rgba,abgr,bgra}_neon_{16,32} 2015-12-19 22:09:28 +01:00
Matthieu Bouron
e0dc22b99e swscale/arm/yuv2rgb: disable neon if accurate_rnd is enabled
This disables the 32bit precision neon code path in favor of the
default C one and avoids breaking fate.
2015-12-19 22:09:28 +01:00
Michael Niedermayer
2d2b41d169 avcodec/ffv1enc: Fix 2 pass mode with the default rc table
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-19 20:42:54 +01:00
Paul B Mahol
ebe1ca01d1 avfilter/vf_stereo3d: add interleave columns input support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-19 19:23:47 +01:00
Ganesh Ajjanagadde
0dd8a3d71e lavu/intmath: add faster clz support
This should be useful for the sofalizer filter.

Reviewed-by: Kieran Kunhya <kierank@ob-encoder.com>
Reviewed-by: Clément Bœsch <u@pkh.me>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-19 09:35:34 -08:00
Ganesh Ajjanagadde
5484cbe9f7 lavfi/vsrc_mandelbrot: replace round by lrint
lrint is at least as fast, and is more accurate.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-19 09:34:26 -08:00
Ganesh Ajjanagadde
425c0685f2 lavfi/vf_cropdetect: replace round by lrint
lrint is at least as fast, and more accurate.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-19 09:34:08 -08:00
Ganesh Ajjanagadde
18bc3dc768 lavf/hlsenc: replace round by lrint
Mainly cosmetic here.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-19 09:33:49 -08:00
Ganesh Ajjanagadde
641cb77f50 lavfi/vf_idet: replace round and cast by lrint
lrint is faster and conveys the intent better here. It is safe as long int has
at least 32 bits.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-19 09:33:32 -08:00
Ganesh Ajjanagadde
def3c83e1b lavc/aacsbr: sbr_dequant optimization
This uses ff_exp2fi to get a speedup (~ 6x).

sample benchmark (Haswell, GNU/Linux):
old:
  19102 decicycles in sbr_dequant,    1023 runs,      1 skips
  19002 decicycles in sbr_dequant,    2045 runs,      3 skips
  17638 decicycles in sbr_dequant,    4093 runs,      3 skips
  15825 decicycles in sbr_dequant,    8189 runs,      3 skips
  16404 decicycles in sbr_dequant,   16379 runs,      5 skips

new:
   3063 decicycles in sbr_dequant,    1024 runs,      0 skips
   3049 decicycles in sbr_dequant,    2048 runs,      0 skips
   2968 decicycles in sbr_dequant,    4096 runs,      0 skips
   2818 decicycles in sbr_dequant,    8191 runs,      1 skips
   2853 decicycles in sbr_dequant,   16383 runs,      1 skips

Reviewed-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-19 09:32:53 -08:00
Andreas Cadhalpun
ce10f572c1 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>
2015-12-19 17:57:56 +01:00
Andreas Cadhalpun
9d38f06d05 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>
2015-12-19 14:28:51 +01:00
Marton Balint
c413d9e635 ffplay: remove existing AVPicture usage
It is deprecated.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-12-19 14:09:26 +01:00
Andreas Cadhalpun
9f82506c79 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>
2015-12-19 12:30:59 +01:00
Reynaldo H. Verdejo Pinochet
ae2ed20b59 ffserver: refactor build_feed_streams()
* Avoid excesive nesting that made it really hard to follow
* Drop unneeded vars
* Factor out codec compatibility check routine
* Ensure inputs are closed and contexts are freed as needed
  before returning

Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-12-19 01:52:20 -08:00
Reynaldo H. Verdejo Pinochet
4ba148a6ea ffserver: refactor build_file_streams()
Avoid unneeded nesting, drop redundant var

Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-12-19 01:52:20 -08:00
Reynaldo H. Verdejo Pinochet
532a283383 ffserver: unify exit path from build_feed_streams()
Exit from main on build_feed_streams() failures & use
standard EXIT_ codes on error out/normal exit.

Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-12-19 01:52:20 -08:00
Matthieu Bouron
c2ad248321 swscale/arm/yuv2rgb: simplify process_16px_* macro call 2015-12-19 10:42:33 +01:00
Janne Grunau
2dba0407fd avcodec/arm64: fix inverted register order in transpose_4x4H
Fix related register order issue in ff_h264_idct_add_neon.

Found-by: zjh8890 <243186085@qq.com>

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-19 03:58:46 +01:00
Jean Delvare
47b2ba9878 avfilter/vf_delogo: change the definition of logo_x2 and logo_y2
In the code we keep using logo_x2-1 and logo_y2-1 rather than logo_x2
and logo_y2 themselves. Define them to be what we need instead, to avoid
the repeated subtractions.

Signed-off-by: Jean Delvare <jdelvare@suse.de>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-19 03:12:31 +01:00
Rostislav Pehlivanov
591b240ed4 oggparsedaala: sync with current bitstream syntax
Since the parser was merged back almost 2 months ago this is the first
time the bitstream of the container has been updated.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-12-18 22:54:38 +00:00
Paul B Mahol
8d6b1ffba0 avfilter/vf_stereo3d: fix interleaved columns output
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-18 22:04:19 +01:00
Paul B Mahol
aefcc77b90 avfilter/vf_stereo3d: multiply linesize only once for interleaved row to mono
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-18 19:44:01 +01:00
Michael Niedermayer
1c878474fb avcodec/ffv1enc: unbreak -coder option
This fixes a segfault caused by moving the coder option and changing its semantics

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-18 18:08:00 +01:00
Clément Bœsch
91b4afd58d swscale/arm/yuv2rgb: fix slicing 2015-12-18 16:21:49 +01:00
Andreas Cadhalpun
90b99a8107 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>
2015-12-18 15:30:04 +01:00
Andreas Cadhalpun
4d5c3b02e9 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>
2015-12-18 15:29:57 +01:00
Rostislav Pehlivanov
4386f17bbd acenc: remove deprecated avctx->frame_bits use
The type of last_frame_pb_count was chosen to be an int since overflow
is impossible (the spec says the maximum bits per frame is 6144 per
channel and the encoder checks for that).

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
2015-12-18 14:28:40 +00:00
Paul B Mahol
f6d1c15b64 doc/filters: copy all input modes to output modes.
For people who cant read.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-18 15:15:45 +01:00
Paul B Mahol
620b47576d avfilter/vf_stereo3d: add fast path for interleave rows to mono
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-18 15:15:45 +01:00
Hendrik Leppkes
06d69a2d22 Merge commit '458e53f51fc75d08df884f8e9eb3d7ded23e97b3'
* commit '458e53f51fc75d08df884f8e9eb3d7ded23e97b3':
  mpegvideo_enc: actually add the side data with vbv_delay to the packet

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-18 14:53:19 +01:00
Hendrik Leppkes
3564dfd535 Merge commit 'b0b133b8c02984ba0a50448f632a5dd8a50c9045'
* commit 'b0b133b8c02984ba0a50448f632a5dd8a50c9045':
  hevcdsp: use a macro for .rodata section

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-18 14:53:00 +01:00
Hendrik Leppkes
4a80f0bdb0 Merge commit '81c95eb8eee856d98d4ac37367dbc761f2faf875'
* commit '81c95eb8eee856d98d4ac37367dbc761f2faf875':
  openh264: Directly include the deprecation guards header

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-18 14:52:18 +01:00
Hendrik Leppkes
a38b50c3ff Merge commit '34138ece23c8ddae543269212a051c00d49e67d7'
* commit '34138ece23c8ddae543269212a051c00d49e67d7':
  log: Use a do {} while (0) for tlog

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-18 14:50:54 +01:00
Hendrik Leppkes
5242cc878a Merge commit 'febfb49a70e82f5ac46dc7ea34dabd4d56b19b31'
* commit 'febfb49a70e82f5ac46dc7ea34dabd4d56b19b31':
  matroskadec: Fix sample_aspect_ratio for stereo matroska content

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-18 14:49:56 +01:00
Hendrik Leppkes
67ebc88fb5 lavc/sunrastenc: fix private codec options
The options were not actually hooked up.
2015-12-18 14:47:19 +01:00
Hendrik Leppkes
ef9ae0e748 Merge commit 'c34df422628e6b7b657faee241fe7bb2629e0f57'
* commit 'c34df422628e6b7b657faee241fe7bb2629e0f57':
  sgienc: Make sure to initialize skipped header portions

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-18 14:39:59 +01:00
Hendrik Leppkes
362028cac9 Merge commit '16216b713f9a21865cc07993961cf5d0ece24916'
* commit '16216b713f9a21865cc07993961cf5d0ece24916':
  lavc: Drop exporting 2-pass encoding stats

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-18 14:39:15 +01:00
Hendrik Leppkes
2630f7f709 Merge commit 'be00ec832c519427cd92218abac77dafdc1d5487'
* commit 'be00ec832c519427cd92218abac77dafdc1d5487':
  lavc: Deprecate coder_type and its symbols

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-18 14:27:41 +01:00
Paul B Mahol
ec1b95dda4 avfilter/vf_stereo3d: fix interleave rows output
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-18 10:56:33 +01:00
Paul B Mahol
a2a217b351 avfilter/vf_stereo3d: add fast path for interleave rows to alternating
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-18 10:56:16 +01:00
Marton Balint
752ab408b4 lavu/error: add missing error messages for errors supported on all platforms
We need these if we have no strerror_r.

Descriptions are taken from doc/errno.txt except for ENOMEM.

Signed-off-by: Marton Balint <cus@passwd.hu>
2015-12-18 04:04:14 +01:00
Marton Balint
b25adbaaf6 doc/errno: fix description typo for ENAMETOOLONG
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-12-18 04:04:14 +01:00
Michael Niedermayer
c8ea57664f 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>
2015-12-18 00:54:37 +01:00
Michael Niedermayer
ef8f6464a5 avcodec/h264_slice: Simplify ref2frm indexing
This also suppresses a ubsan warning
Fixes Mozilla bug 1230247

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-18 00:54:28 +01:00
Ganesh Ajjanagadde
97d2c2d678 lavc/opus_celt: replace pow by exp2
exp2 is faster.

It may be possible to optimize further; e.g the exponents seem to be
multiples of 0.25. This requires study though.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-17 14:06:46 -08:00
Michael Niedermayer
95b59bfb9d Revert "avcodec/aarch64/neon.S: Update neon.s for transpose_4x4H"
The change was not correct and broke H264

This reverts commit cd83f899c94f691b045697d12efa21f83eb2329f.
2015-12-17 21:26:37 +01:00
Andreas Cadhalpun
9637c2531f 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>
2015-12-17 19:55:09 +01:00
Michael Niedermayer
c67cf84d7c avfilter/af_sofalizer: Fix occured typo
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-17 19:00:33 +01:00
Michael Niedermayer
73840bbe4e avcodec/diracdec: Check ff_set_dimensions() for failure
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-17 19:00:33 +01:00
Michael Niedermayer
e839db2288 avformat/oggparsedirac: Export sample aspect ratio
Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-17 19:00:26 +01:00
Michael Niedermayer
ffad6f6b89 avcodec/diracdec: fix aspect ratio (it was lost after efcc8fddd6b7d1f931ff349e195d78c3c943d7fd)
Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-17 19:00:18 +01:00
rsn8887
02e9ba42eb avformat/xmv: Add *.xmv to the recognized extensions for the XMV format. 2015-12-17 17:50:42 +01:00
Ganesh Ajjanagadde
07a8fbaa55 lavc/nellymoserenc: avoid wasteful pow
exp2 suffices here. Some trivial speedup is done in addition here by
reusing results.

This retains accuracy, and in particular results in identical values
with GNU libm + gcc/clang.

sample benchmark (Haswell, GNU/Linux):
proposed : 424160 decicycles in pow_table,     512 runs,      0 skips
exp2 only: 1262093 decicycles in pow_table,     512 runs,      0 skips
old      : 2849085 decicycles in pow_table,     512 runs,      0 skips

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-17 08:12:41 -08:00
Ganesh Ajjanagadde
39f8c7961d lavu/random_seed: use arc4random() when available
arc4random() was designed as a superior interface for system random
number generation, designed for OpenBSD and subsequently incorporated by
other BSD's, Mac OS X, and some non-standard libc's. It is thus an improvement to
use it whenever available.

As a side note, this may or may not get included in glibc, and there is
a proposal to create a posix_random family based on these ideas:
http://austingroupbugs.net/view.php?id=859.

Tested on Mac OS X.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-17 08:12:41 -08:00
Hendrik Leppkes
7b880464cb Merge commit 'f1ccd076801444ab7f524cb13e0886faaf10fd50'
* commit 'f1ccd076801444ab7f524cb13e0886faaf10fd50':
  h264: do not call frame_start() for missing frames

Not merged, FFmpeg does a lot more in frame_start to setup missing frames
as well (like coloring them), and the overhead of the other setup is
minimal.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-17 15:03:50 +01:00
Hendrik Leppkes
49507f1d17 Merge commit 'd6dc5d15af0d8617611281a34a2c3f9ced149ccf'
* commit 'd6dc5d15af0d8617611281a34a2c3f9ced149ccf':
  aacdec: fix aac_static_table_init() prototype

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-17 14:53:37 +01:00
Hendrik Leppkes
74b8fa103d Merge commit '68e547ae8b455e5e2b60839f35c359d77a6d94bc'
* commit '68e547ae8b455e5e2b60839f35c359d77a6d94bc':
  avpacket: use ERANGE instead of EOVERFLOW

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-17 14:52:28 +01:00
Hendrik Leppkes
ea1000b9fe Merge commit 'd5f5c90be9ec120f1320dcdd808b7bd917dee47c'
* commit 'd5f5c90be9ec120f1320dcdd808b7bd917dee47c':
  rtsp: free opts dictionary on failure of getnameinfo

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-17 14:52:15 +01:00
Hendrik Leppkes
fd6c5285f9 Merge commit '8df8f0c70c9c2085d9ca186b7cbf43656c4412eb'
* commit '8df8f0c70c9c2085d9ca186b7cbf43656c4412eb':
  movenc-test: add a missing va_end call

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-17 14:52:05 +01:00
Hendrik Leppkes
bd88914b15 Merge commit 'b8b21dee0f0b4bcc1888067c497d6e838859d2cd'
* commit 'b8b21dee0f0b4bcc1888067c497d6e838859d2cd':
  mxfenc: always assume long gop

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-17 14:49:24 +01:00
Hendrik Leppkes
efcc8fddd6 Merge commit 'e02de9df4b218bd6e1e927b67fd4075741545688'
* commit 'e02de9df4b218bd6e1e927b67fd4075741545688':
  lavc: export Dirac parsing API used by the ogg demuxer as public

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-17 14:48:46 +01:00
Hendrik Leppkes
079b5d4ef8 Merge commit '8bcadaacc2b8dc3c5d6569835a5ca20e62d3efca'
* commit '8bcadaacc2b8dc3c5d6569835a5ca20e62d3efca':
  mpegenc: use the CPB props side data

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-17 13:55:39 +01:00
Hendrik Leppkes
f95385dd58 Merge commit '5845a8273e4694e0254ad728970b82bb64fd8bc0'
* commit '5845a8273e4694e0254ad728970b82bb64fd8bc0':
  movenc: use the CPB props side data

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-17 13:50:36 +01:00
Hendrik Leppkes
b2d8b91cf0 Merge commit '825900248b4053515803152d3165efdb034b660b'
* commit '825900248b4053515803152d3165efdb034b660b':
  qsvenc: export CPB props side data

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-17 13:42:53 +01:00
Hendrik Leppkes
5fc17edc7d Merge commit '1520c6ff05d835da4b793318fc88bbbc129c86a1'
* commit '1520c6ff05d835da4b793318fc88bbbc129c86a1':
  nvenc: export CPB props side data

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-17 13:41:29 +01:00
Hendrik Leppkes
31ae2308b3 Merge commit '2507b5dd674834be7261772996f47ae3b95cca69'
* commit '2507b5dd674834be7261772996f47ae3b95cca69':
  mpegvideo_enc: export vbv_delay in side data

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-17 13:36:09 +01:00
Hendrik Leppkes
b799619f48 Merge commit '3f5c99fcbb2c366d7bdef8500c19f43a33bdb6b9'
* commit '3f5c99fcbb2c366d7bdef8500c19f43a33bdb6b9':
  mpegvideo_enc: export CPB props side data

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-17 13:35:34 +01:00
Hendrik Leppkes
b77061b5ca Merge commit '732a37d1466d45b3812509d68c82e783530e291a'
* commit '732a37d1466d45b3812509d68c82e783530e291a':
  libx264: export CPB props side data

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-17 13:34:51 +01:00
Hendrik Leppkes
d6322710c5 Merge commit '03afb62e83516141ba999536fc97575faefb98af'
* commit '03afb62e83516141ba999536fc97575faefb98af':
  libvpxenc: export CPB props side data

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-17 13:33:20 +01:00
Hendrik Leppkes
f49264a1c5 Merge commit '11c9bd633f635f07a762be1ecd672de55daf4edc'
* commit '11c9bd633f635f07a762be1ecd672de55daf4edc':
  libopenh264enc: export CPB props side data

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-17 13:31:21 +01:00
Hendrik Leppkes
dd6ee019ea Merge commit 'f0b769c16daafa64720dcba7fa81a9f5255e1d29'
* commit 'f0b769c16daafa64720dcba7fa81a9f5255e1d29':
  lavc: add a packet side data type for VBV-like parameters

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-17 13:25:52 +01:00
Hendrik Leppkes
be52b95d31 Merge commit 'e63e3797a1ed9346f529848e6ba3d27fd2d2cc8d'
* commit 'e63e3797a1ed9346f529848e6ba3d27fd2d2cc8d':
  avconv: pass the global codec side data to the muxer

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-17 13:20:37 +01:00
Hendrik Leppkes
a7d5b9f1c3 Merge commit '84adab333cddeefc3cfd843089dee23f58bd372c'
* commit '84adab333cddeefc3cfd843089dee23f58bd372c':
  lavc: add stream-global packet side data

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-17 13:18:18 +01:00
Hendrik Leppkes
30833d121e Merge commit '31c51f7441de07b88cfea2550245bf1f5140cb8f'
* commit '31c51f7441de07b88cfea2550245bf1f5140cb8f':
  avpacket: add a function for wrapping existing data as side data

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-17 13:12:07 +01:00
Hendrik Leppkes
10e55bd658 Merge commit 'b09ad37c83841c399abb7f2503a2ab214d0c2d48'
* commit 'b09ad37c83841c399abb7f2503a2ab214d0c2d48':
  h264: derive the delay from the level when it's not present

Merged without changing the strict_std_compliance check, as it breaks FATE
and changes decoding behavior.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-17 13:07:08 +01:00
Hendrik Leppkes
c6f1f334cb Merge commit '792b9c9dfcf44b657d7854368d975b5ca3bc22ca'
* commit '792b9c9dfcf44b657d7854368d975b5ca3bc22ca':
  h264: set frame_num in start_frame(), not decode_slice_header()

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-17 12:59:25 +01:00
Hendrik Leppkes
bc66451e5e Merge commit '741b494fa8cd28a7d096349bac183893c236e3f9'
* commit '741b494fa8cd28a7d096349bac183893c236e3f9':
  h264: eliminate default_ref_list

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-17 12:45:28 +01:00
Moritz Barsnick
9d1fb9ef31 ffmpeg: add progress speed to status line and report
This adds a computation of the progress speed versus realtime ("Nx")
to the status line and to the report log. It uses the progress time
as already calculated for total output time as a base.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-17 02:17:02 +01:00
Michael Niedermayer
6ea7dd25c7 avformat/swfenc: Check frama rate before writing it
Fixes assertion failure with ffserver

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-17 02:07:41 +01:00
Kieran Kunhya
25f6ccccd6 diracdec: Fix codeblock parameters reading 2015-12-16 23:26:03 +00:00
Kieran Kunhya
a349a10edf diracdec: Add support for HQ profile 2015-12-16 21:35:12 +00:00
Kieran Kunhya
0379603632 diracdec: Add 10-bits to pix_fmt table 2015-12-16 21:35:12 +00:00
Andreas Cadhalpun
5ea59b1f42 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>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-12-16 22:22:06 +01:00
Andreas Cadhalpun
17776638c3 opus: 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.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-12-16 22:19:58 +01:00
Andreas Cadhalpun
f61d44b74a 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>
2015-12-16 19:29:17 +01:00
Stefano Sabatini
91c2a33d01 ffprobe: use print_val to print the frame pkt_size value
This allows to honour formatting options.
2015-12-16 18:59:23 +01:00
Paul B Mahol
fa2c1eab95 avfilter/af_sofalizer: use SIMD in compensate_volume()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-16 15:00:14 +01:00
Vicente Olivert Riera
a2f2abc889 mips: add mips64r2 architecture variant
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-16 14:03:57 +01:00
Vicente Olivert Riera
e8bc43fe47 mips: i6400 core is not mips32r2, so disable mips32r2
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-16 14:03:57 +01:00
Michael Niedermayer
30d770ca44 ffmpeg: Allow specifying the program number for created programs
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-16 14:03:57 +01:00
Ganesh Ajjanagadde
83a04f103d lavc: move exp2fi to ff_exp2fi in internal.h
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-16 07:57:26 -05:00
Ganesh Ajjanagadde
4fa6f09c2c lavu/eval: remove pow and exp2 for postfixes
These postfixes can be computed statically, and there is no need to
waste runtime resources.

Tested with FATE.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-16 07:56:54 -05:00
Paul B Mahol
10b16aee1b avfilter/vf_stereo3d: get rid of ts_unit hack
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-16 13:00:46 +01:00
Stefano Sabatini
6e891d51f4 lavc/libopenh264: apply minor options text consistency fixes 2015-12-16 10:48:28 +01:00
Stefano Sabatini
5defa3a0b0 doc/encoders/libopenh264: update documentation after recent changes 2015-12-16 10:48:28 +01:00
Ganesh Ajjanagadde
65877ab935 lavc: typo fix uncliped -> unclipped
Untested due to lack of ppc.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-15 22:45:15 -05:00
Andreas Cadhalpun
ecf63b7cc2 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>
2015-12-15 22:43:25 +01:00
Paul B Mahol
09d84e00bd avfilter/af_ladspa: unbreak Mch -> Nch plugins, where M < N
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-15 20:53:13 +01:00
Reynaldo H. Verdejo Pinochet
0bdf84b6b0 ffserver: explicitly use time_t for uptime calc
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-12-15 10:04:59 -08:00
Reynaldo H. Verdejo Pinochet
dadb95142b ffserver: free pathname before bailing out
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-12-15 10:04:59 -08:00
Reynaldo H. Verdejo Pinochet
1fa81430ca ffserver: use EXIT_FAILURE on failed child fork()
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-12-15 10:04:59 -08:00
Reynaldo H. Verdejo Pinochet
eb68c35670 ffserver: be explicit on failed fork() msg
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-12-15 10:04:59 -08:00
Reynaldo H. Verdejo Pinochet
5a31f2318b ffserver: allocate AVStream's internal too
Avoids segfault at init_muxer() (mux.c) due to a
null pointer dereference on the recently
introduced AVStream->internal

Fixes: #5059 (https://trac.ffmpeg.org/ticket/5059)

Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-12-15 10:04:49 -08:00
erankor
4469e8ebb2 movenc: support cenc (common encryption)
support writing encrypted mp4 using aes-ctr, conforming to ISO/IEC
23001-7.

3 new parameters were added:
- encryption_scheme - allowed values are none (default) and cenc-aes-ctr
- encryption_key - 128 bit encryption key (hex)
- encryption_kid - 128 bit encryption key identifier (hex)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-15 14:16:28 +01:00
erankor
23ac99dc17 libavutil: add aes-ctr support
for supporting mp4 cenc encoding/decoding

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-15 14:16:28 +01:00
Paul B Mahol
c54632d381 avfilter/vf_stereo3d: add direct (faster) path:
for above below and side by side to alternating format
for above below and side by side to mono format

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-15 11:53:25 +01:00
Hendrik Leppkes
577e0132a2 Merge commit 'e7078e842d93436edba1f30af1f9869d3913f7fe'
* commit 'e7078e842d93436edba1f30af1f9869d3913f7fe':
  hevcdsp: add x86 SIMD for MC

Not merged, FFmpeg HEVC DSP has diverged substantially from Libav.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-15 10:46:21 +01:00
Hendrik Leppkes
32105588fb Merge commit '0cef06df073934ca08d0357fcbbbcf2bc9b2a0cd'
* commit '0cef06df073934ca08d0357fcbbbcf2bc9b2a0cd':
  checkasm: add HEVC MC tests

Not merged, FFmpeg HEVC DSP has diverged substantially from Libav.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-15 10:45:06 +01:00
Hendrik Leppkes
d665d191a2 Merge commit 'a853388d2fc5be848cca839a9fdf39a97c2d7b0e'
* commit 'a853388d2fc5be848cca839a9fdf39a97c2d7b0e':
  hevc: change the stride of the MC buffer to be in bytes instead of elements

Not merged, FFmpeg HEVC DSP has diverged substantially from Libav.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-15 10:43:54 +01:00
Hendrik Leppkes
6f0eb62292 Merge commit '688417399c69aadd4c287bdb0dec82ef8799011c'
* commit '688417399c69aadd4c287bdb0dec82ef8799011c':
  hevcdsp: split the pred functions by width

Not merged, FFmpeg HEVC DSP has diverged substantially from Libav.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-15 10:43:06 +01:00
Hendrik Leppkes
14a28298cb Merge commit '818bfe7f0a3ff243deb63c4b146de2563f38ffd4'
* commit '818bfe7f0a3ff243deb63c4b146de2563f38ffd4':
  hevcdsp: split the epel functions by width

Not merged, FFmpeg HEVC DSP has diverged substantially from Libav.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-15 10:42:13 +01:00
Hendrik Leppkes
9db8c2d747 Merge commit '1f821750f0b8d0c87cbf88a28ad699b92db5ec88'
* commit '1f821750f0b8d0c87cbf88a28ad699b92db5ec88':
  hevcdsp: split the qpel functions by width instead of by the subpixel fraction

Not merged, FFmpeg HEVC DSP has diverged substantially from Libav.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-15 10:41:26 +01:00
Matthieu Bouron
ae1c750cb4 lavc/utils: use AVPixFmtDescriptor to probe palette formats
Also use the input frame format instead of the AVCodecContext one according
to the documentation of AVCodecContext.get_buffer2().
2015-12-15 10:35:47 +01:00
Matthieu Bouron
0c59d40ae0 lavfi: use a video frame pool for each link of the filtergraph 2015-12-15 10:35:41 +01:00
Paul B Mahol
04cc4d0550 avfilter/af_sofalizer: check av_fft_init return code
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-15 10:04:01 +01:00
Michael Niedermayer
a066ff89bc 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>
2015-12-15 03:06:33 +01:00
Michael Niedermayer
80bfce35cc swscale/x86/rgb2rgb_template: Do not crash on misaligend stride
Fixes Ticket5013

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-15 02:32:23 +01:00
Michael Niedermayer
06987dab97 avfilter/vf_decimate: fix typo in fraction
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 23:38:36 +01:00
Paul B Mahol
e8586ecb86 configure: add conditional library dependency for sofalizer and showfreqs
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-14 22:41:52 +01:00
Paul B Mahol
2f12172d67 avfilter/af_sofalizer: add frequency domain processing and use it by default
Code ported from SOFAlizer patch for VLC.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-14 21:58:08 +01:00
Michael Niedermayer
30fe3fd527 avfilter/vf_decimate: Check that input parameters match
Fixes Ticket4964

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 21:46:05 +01:00
Andreas Cadhalpun
22e960ad47 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>
2015-12-14 20:51:39 +01:00
Michael Niedermayer
1925eaeaa6 avfilter/vf_decimate: change ts_unit to AVRational
This might help with rounding differences between platforms

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 20:37:26 +01:00
Michael Niedermayer
997de2e810 avfilter/vf_mpdecimate: Add missing emms_c()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 20:21:50 +01:00
Rostislav Pehlivanov
ade31b9424 aacenc: switch to using the RNG from libavutil
PSNR doesn't change as expected. The AAC spec doesn't really say
anything about how exactly to generate noise.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-12-14 18:53:09 +00:00
Janne Grunau
90b1b9350c arm: add ff_int32_to_float_fmul_array8_neon
Quite a bit faster than int32_to_float_fmul_array8_c calling
ff_int32_to_float_fmul_scalar_neon through FmtConvertContext.
Number of cycles per int32_to_float_fmul_array8 call while decoding
padded.dts on exynos5422:

               before  after   change
cortex-a7:     1270     951    -25%
cortex-a15:     434     285    -34%

checkasm --bench cycle counts:     cortex-a15   cortex-a7
int32_to_float_fmul_array8_c:      1730.4       4384.5
int32_to_float_fmul_array8_neon_c:  571.5       1694.3
int32_to_float_fmul_array8_neon:    374.0       1448.8

Interesting are the differences between
int32_to_float_fmul_array8_neon_c and int32_to_float_fmul_array8_neon.
The former is current behaviour of calling
ff_int32_to_float_fmul_scalar_neon repeatedly from the c function,
The raw numbers differ since checkasm uses different lengths than the
dca decoder.
2015-12-14 16:45:02 +01:00
Janne Grunau
a0fc780a20 arm64: int32_to_float_fmul neon asm
3% faster dts decoding on a cortex-a57.

                                 cortex-a57   cortex-a53
int32_to_float_fmul_array8_c:    1270.9       4475.6
int32_to_float_fmul_array8_neon:  328.6        569.2
int32_to_float_fmul_scalar_c:     928.5       4119.6
int32_to_float_fmul_scalar_neon:  309.1        524.1
2015-12-14 16:45:02 +01:00
Janne Grunau
705f5e5e15 arm64: port synth_filter_float_neon from arm
~25% faster dts decoding overall. The checkasm CPU cycles numbers are
not that useful since synth_filter_float() calls FFTContext.imdct_half().

                         cortex-a57   cortex-a53
synth_filter_float_c:    1866.2       3490.9
synth_filter_float_neon:  915.0       1531.5

With fftc.imdct_half forced to imdct_half_neon:
                         cortex-a57   cortex-a53
synth_filter_float_c:    1718.4       3025.3
synth_filter_float_neon:  926.2       1530.1
2015-12-14 16:45:01 +01:00
Janne Grunau
c33c1fa8af arm64: convert dcadsp neon asm from arm
~2% faster dts decoding overall.

                    cortex-a57   cortex-a53
dca_decode_hf_c:    474.8        1659.9
dca_decode_hf_neon: 225.2         301.1
dca_lfe_fir0_c:     913.2        1537.7
dca_lfe_fir0_neon:  286.8         451.9
dca_lfe_fir1_c:     848.7        1711.5
dca_lfe_fir1_neon:  387.1         506.4
2015-12-14 16:45:01 +01:00
Janne Grunau
e2710e790c arm: add a cpu flag for the VFPv2 vector mode
The vector mode was deprecated in ARMv7-A/VFPv3 and various cpu
implementations do not support it in hardware. Vector mode code will
depending the OS either be emulated in software or result in an illegal
instruction on cpus which does not support it. This was not really
problem in practice since NEON implementations of the same functions are
preferred. It will however become a problem for checkasm which tests
every cpu flag separately.

Since this is a cpu feature newer cpu do not support anymore the
behaviour of this flag differs from the other flags. It can be only
activated by runtime cpu feature selection.
2015-12-14 16:42:35 +01:00
Janne Grunau
5dfe4edad6 x86_64: int32_to_float_fmul_scalar sign extend integer length 2015-12-14 16:42:35 +01:00
Janne Grunau
64034849da arm64: add cycle counter support
The ISB (instruction synchronization barrier) might be too heavy for
START/STOPTIMER use but should be more accurate in checkasm where the
timing overhead is subtracted.
2015-12-14 16:42:35 +01:00
Janne Grunau
50078c1c80 libavutil: move FFALIGN macro from common.h to macros.h
Include macros.h explicitly in common.h so that external code using
FFALIGN does not break. It was already implicitly included through
version.h. Include macros.h in lls.h and internal.h for FFALIGN.
lls.h was including common.h only for FFALIGN and internal.h was
missing the include for FFALIGN. `make checkheaders` did not catch it
because it's an internal header.
2015-12-14 16:16:55 +01:00
Stefan Pöschel
dbce017913 mpegtsenc: add flag to embed an AC-3 ES the DVB way
So far an AC-3 elementary stream is refered to in the PMT according to
System A (ATSC). However System B (DVB) has a different way to signal an AC-3
ES within the PMT. This different way can be enabled by a new flag. The flag is
more generally named 'system_b' as there are further differences between ATSC
and DVB (e.g. the signalling of E-AC-3) which should then also be covered by it
in the future.

Bug-Id: 73

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-12-14 15:16:33 +01:00
Kip Warner
cc4c242081 avresample: Mark avresample_buffer() as pointer to const
That buffer is read only and marking it accordingly let
the user passing a constant buffer to it without having
a const-correctness warning.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-12-14 15:16:33 +01:00
Jean Delvare
932cbc846f avfilter/vf_delogo: fix show option when clipping
The show option did not take clipping into account, so the borders on
the clipped side wouldn't show up. Fix it.

Signed-off-by: Jean Delvare <jdelvare@suse.de>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 12:50:46 +01:00
Anton Khirnov
5bc223b15d r3d: fix an invalid read introduced in 6bf4c1d 2015-12-14 12:12:42 +01:00
Agatha Hu
758be45756 avcodec/nvenc: clamp initial qp value to [1, 51]
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2015-12-14 10:34:59 +01:00
Agatha Hu
f1a8897375 avcodec/nvenc: set slice number to 1 to improve encoding quality
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2015-12-14 10:27:36 +01:00
Kieran Kunhya
906c0b7716 get_bits: Support max_depth > 2 in GET_RL_VLC_INTERNAL 2015-12-13 22:56:49 +00:00
Andreas Cadhalpun
28e9b7e8ae fate: increase FUZZ by 1 for aac-tns-encode
This should fix this test failing on kfreebsd, a regression since
6e5dbe7, which decreased the CMP_TARGET by 1.

Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-12-13 23:28:53 +01:00
Martin Storsjö
64f8c439fd rtmpproto: Include the full path as app when "slist=" is found
This matches what librtmp does. This fixes automatic url parsing of
crunchyroll urls.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-12-13 23:23:06 +02:00
Paul B Mahol
ac25d1d35e avfilter/af_sofalizer: switch comments positions to correct order
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-13 18:49:29 +01:00
Clément Bœsch
5083900b73 lavfi/ebur128: apply I dual mono correction only if I available
Spotted-by: jamrial & gcc 6
2015-12-13 18:21:02 +01:00
Paul B Mahol
f69f050a31 avfilter/af_sofalizer: fix calculation of split point
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-13 17:57:07 +01:00
Michael Niedermayer
b51e7554e7 avformat/mxfenc: Do not crash if there is no packet in the first stream
Fixes: Ticket4914

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-13 16:42:48 +01:00
Paul B Mahol
780c4223a5 avfilter/af_sofalizer: remove reorder hack
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-13 12:57:33 +01:00
Paul B Mahol
49d97d9bca avfilter/af_sofalizer: move modulo operation out of loop
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-13 12:57:33 +01:00
Nicolas George
1acc90eaa5 lavf/tee: fix side data double free.
Similar to 33fefdb44.
Fix trac ticket #4921.

Signed-off-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-13 09:41:41 +01:00
Michael Niedermayer
c62d1780ff avformat/hlsenc: Check the return code of avformat_write_header()
Fixes: segfault
Fixes: Ticket5067

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-13 02:28:13 +01:00
Michael Niedermayer
861f47ddf4 avformat/mov: Enable parser for mp3s by old HandBrake
Fixes Ticket5047

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-13 02:11:56 +01:00
Michael Niedermayer
537e901fe6 avformat/mxfenc: Fix integer overflow in length computation
Fixes: CID1341577

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-13 02:11:56 +01:00
Paul B Mahol
e6258677ee avfilter/af_sofalizer: make it possible to configure speaker elevation
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-13 01:13:58 +01:00
Lvqier
93d336fb07 avformat/segment: Fix memory leak of cur_entry.filename
Solution suggested-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-12 23:19:22 +01:00
Paul B Mahol
7dc469f342 doc/general: add missing @tab for ADPCM VIMA
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-12 21:56:57 +01:00
Paul B Mahol
d62e979b8c avfilter/af_sofalizer: display some info when loading sofa file
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-12 21:31:18 +01:00
Anton Khirnov
9f0b6e6827 vocdec: do not create the stream in read_header()
The stream parameters are not known until we read a packet, so postpone
creating it until then.
2015-12-12 21:27:11 +01:00
Anton Khirnov
2d0432d918 vocdec: put the code not shared with other demuxers under appropriate ifdef 2015-12-12 21:26:55 +01:00
Anton Khirnov
09ae7b81ea flvdec: do not create any streams in read_header()
The current muxer behaviour is to create streams in read_header() based
on the audio/video presence flags, but fill in the stream parameters
later when we actually get some packets for them. This is rather shady,
since other demuxers set the stream parameters immediately when the
stream is created and do not touch the stream codec context after that.

Change the flv demuxer to behave in the same way as other similar
demuxers -- create the streams only when we get a packet for them.
2015-12-12 21:26:48 +01:00
Anton Khirnov
de9e199a03 lavc: make avpriv_mpa_decode_header private on next bump
It's not used by anything outside of lavc anymore.
2015-12-12 21:26:29 +01:00
Anton Khirnov
72d658766e mp3dec: replace avpriv_mpa_decode_header with avpriv_mpegaudio_decode_header
The latter does not require a full AVCodecContext and still provides all
the functionality needed here.
2015-12-12 21:26:00 +01:00
Anton Khirnov
955aec3c7c mpegaudiodecheader: check the header in avpriv_mpegaudio_decode_header
Almost all the places from which this function is called already check
the header manually and in the two that don't (the mp3 muxer) the check
should not cause any problems.
2015-12-12 21:25:42 +01:00
Anton Khirnov
cea1eef25c lavc: get the profile name through the codec descriptor in avcodec_string() 2015-12-12 21:24:29 +01:00
Anton Khirnov
2c6811397b lavc: add profiles to AVCodecDescriptor
The profiles are a property of the codec, so it makes sense to export
them through AVCodecDescriptors, not just the codec implementations.
2015-12-12 21:22:49 +01:00
Anton Khirnov
cdc9ce098e lavc: print the name of the codec, not its implementation, in avcodec_string 2015-12-12 21:21:54 +01:00
Anton Khirnov
6bf4c1d711 r3d: do not create the audio stream until we know the sample rate 2015-12-12 21:20:33 +01:00
Anton Khirnov
9f1eccb97b ff_parse_specific_params: do not use AVCodecContext.frame_size
It will not be set unless the muxing codec context is also the encoding
context, which is discouraged. When the frame size is not known from
av_get_audio_frame_duration(), the fallback should still be good enough.
2015-12-12 21:19:50 +01:00
Anton Khirnov
1f008f34d5 rmenc: do not use AVCodecContext.frame_size
It will not be set if the stream codec context is not the encoding
context. Use av_get_audio_frame_duration() instead, it should work for
all audio codecs supported by the muxer.
2015-12-12 21:19:08 +01:00
Anton Khirnov
458e53f51f mpegvideo_enc: actually add the side data with vbv_delay to the packet
Fixes 2507b5dd674834be7261772996f47ae3b95cca69
2015-12-12 21:16:41 +01:00
Paul B Mahol
0a19538bcf avfilter: add SOFAlizer audio filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-12 20:56:36 +01:00
Vicente Olivert Riera
69e80d6ce4 mips: i6400 core does have an FPU, so not disable it
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-12 19:47:17 +01:00
Vicente Olivert Riera
88d66f691a mips: add i6400 core optimizations
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-12 19:47:11 +01:00
Vicente Olivert Riera
1dcd96f72f mips: remove --mips64r6 configure option
Having a configure option with the same name as a MIPS ISA is confusing,
so better to remove it. This option was being used to add some
optimizations to a specific core (i6400). We will add the optimizations
just when the i6400 core has been detected, in a later patch.

Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-12 19:47:06 +01:00
Michael Niedermayer
625b582d5a avcodec/aacsbr_template: Add Check to read_sbr_envelope()
The limit is a conservative guess, the spec does not seem to specify a limit

Reviewed-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-12 19:05:07 +01:00
Carl Eugen Hoyos
7c1c453ce9 lavf/matroskadec: Set codec_tag also for audio codecs.
This was already done for "A_MS/ACM" mkv files and it is done
for mov files but was not done for A_QUICKTIME" mkv files.
2015-12-12 18:21:45 +01:00
Jean Delvare
ec11cfdf75 avfilter/vf_delogo: Use AVPixFmtDescriptor.nb_components
Relying on AVPixFmtDescriptor.nb_components is cleaner and faster than
checking data and linesize for every possible plane.

Signed-off-by: Jean Delvare <jdelvare@suse.de>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-12 15:11:31 +01:00
zjh8890
c18176bd55 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.
2015-12-12 14:20:01 +01:00
Clément Bœsch
09a8b6691c doc: fix selectivecolor filter position 2015-12-12 14:00:15 +01:00
Michael Niedermayer
b78885a3c5 avcodec/aacsbr: Split the env_facs table
This also removes a #ifdef and special case for the fixed point case

Reviewed-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-12 12:19:07 +01:00
Ganesh Ajjanagadde
b4f1636a4d lavc: typo fix cliping -> clipping, saftey -> safety
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-11 19:10:00 -05:00
Michael Niedermayer
edfc835a56 avformat/mpegtsenc: Add basic multi program support
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-11 22:27:25 +01:00
Michael Niedermayer
8f948b6244 ffmpeg: Add basic support to mux multiple programs
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-11 22:27:25 +01:00
Michael Niedermayer
676a93f2d8 avformat: Add av_program_add_stream_index()
This will be used by the subsequent commit(s)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-11 22:27:25 +01:00
Lou Logan
5f55be7005 doc/issue_tracker.txt: various updates
Added missing components.
Fixed some nits.

Signed-off-by: Lou Logan <lou@lrcd.com>
2015-12-11 11:33:29 -09:00
Ganesh Ajjanagadde
b8e5b1d786 lavc/mdct_template: use lrint instead of floor hack
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-11 10:35:15 -05:00
Ganesh Ajjanagadde
df679f1264 lavc/dcaenc: avoid wasteful cos calls
cos has symmetry; use this.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-11 10:22:09 -05:00
Ganesh Ajjanagadde
a0ddebfedf lavc/nellymoserdec: replace pow by exp2
exp2 suffices here.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-11 10:21:47 -05:00
Ganesh Ajjanagadde
93afb338a4 lavfi/formats: fix segfault when allocation fails
This is a somewhat subtle failure that can occur when the realloc_array
fails in FORMATS_REF.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-11 10:21:47 -05:00
Dave Yeo
b0b133b8c0 hevcdsp: use a macro for .rodata section
fixes assembling on OS/2

Signed-off-by: Dave Yeo <dave.r.yeo@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-12-11 16:19:30 +01:00
Tom Marecek
46cbb4c231 ffmpeg: change command line option -dump to work without -loglevel debug
-hex and -dump command line options do nothing unless -loglevel debug is set.

-dump by itself is useful for monitoring live streams (to get the current PTS for example)  however when it is used with -loglevel debug for an RTMP stream, librtmp also dumps the packet data which makes the output too noisy.

do_pkt_dump is only set in check_keyboard_interaction or by the -dump command line option so this change should have no effect on any other parts of the code..

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-11 13:39:21 +01:00
Michael Niedermayer
5e8b9e746f avutil/softfloat: Assert that the exponent did not overflow the legal range in av_normalize1_sf()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-11 13:39:21 +01:00
Paul B Mahol
df2ce130a6 avfilter/af_aemphasis: more declarations above
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-11 00:13:45 +01:00
Andreas Cadhalpun
fdc94db37e sbr_qmf_analysis: sanitize input for 32-bit imdct
If the input contains too many too large values, the imdct can overflow.
Even if it didn't, the output would be larger than the valid range of 29
bits.

Note that this is a very delicate limit: Allowing values up to 1<<25
does not prevent input larger than 1<<29 from arriving at
sbr_sum_square, while limiting values to 1<<23 breaks the
fate-aac-fixed-al_sbr_hq_cm_48_5.1 test.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-12-11 00:04:04 +01:00
Andreas Cadhalpun
a9c20e922c sbrdsp_fixed: assert that input values are in the valid range
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-12-11 00:04:04 +01:00
Andreas Cadhalpun
ff8816f717 aacsbr: ensure strictly monotone time borders
This fixes a division by zero in the aac_fixed decoder.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-12-11 00:04:04 +01:00
Rostislav Pehlivanov
d8f13e783a diracdec: remove duplicate codeblock decoding
Broken by commit 7424a6d0a589d31100d6067ebcb47236c00f4b36

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-12-10 22:50:58 +00:00
Kieran Kunhya
3652dd5d0c diracdec: Fix FPE on invalid low_delay data 2015-12-10 22:14:03 +00:00
Kieran Kunhya
cdf8c9038d diracdec: Replace dirac parse codes with better ones 2015-12-10 21:47:01 +00:00
Kieran Kunhya
7424a6d0a5 diracdec: Read picture types by using parse_code 2015-12-10 21:42:13 +00:00
Kieran Kunhya
8880ca2307 diracdec: Store version major/minor flags 2015-12-10 21:39:06 +00:00
Kieran Kunhya
8eb6acef92 diracdec: Support new extended quantiser range 2015-12-10 21:37:24 +00:00
Kieran Kunhya
8dcc99dc68 diracdec: Extract version parameters 2015-12-10 21:26:35 +00:00
Kieran Kunhya
9f374c5906 diracdec: Make slice parameters common between lowdelay and future hq profile 2015-12-10 21:04:04 +00:00
Kieran Kunhya
3bb6ce1af9 diracdec: Rename lowdelay_subband to decode_subband because it is shared with HQ profile 2015-12-10 19:11:21 +00:00
Kieran Kunhya
3f07f12f65 diracdec: Template DSP functions adding 10-bit versions 2015-12-10 18:25:02 +00:00
Kieran Kunhya
9553689854 diracdec: Move strides to bytes, and pointer types to uint8_t.
Start templating functions for move to support 10-bit
Parts of this patch were written by Rostislav Pehlivanov
2015-12-10 16:52:48 +00:00
Ganesh Ajjanagadde
bd3409f52a lavfi/vf_alphamerge: fix unitialized pointers
Missed in commit 31f0d555e07797df1a0a141fa5e022648d480a49.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-10 08:01:40 -05:00
Ganesh Ajjanagadde
08a96708a5 lavfi/vf_overlay: fix unitialized pointers
Missed in commit 301c2784b35036945cd9a7049808deecce149916.

Found-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-10 07:53:47 -05:00
Paul B Mahol
45938f0301 avfilter/x86/vf_maskedmerge: move %define out of .nextrow
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-10 09:52:04 +01:00
Ganesh Ajjanagadde
82f3d47b4f doc/developer: misc minor fixes
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-09 20:09:33 -05:00
Ganesh Ajjanagadde
e5d771c84d avfilter/avf_showfreqs: avoid wasteful pow
pow is a ridiculous function for computing a simple Gaussian.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-09 20:07:49 -05:00
Claudio Freire
124c375938 AAC encoder: fix OOB access in search_for_pns
Fix OOB access in search_for_pns which was using
w2 outside the window group loop, and fix a typo
in which it was checking sf_idx instead of band_type

Reviewed-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-12-09 22:29:18 +01:00
Alex Agranovsky
7fd1c85e51 lavf/mpjpegdec: Fixed dereference after null check
Fixes Coverity CID 1341576

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-09 19:55:25 +01:00
Michael Niedermayer
80ceb4696a avformat/rmdec: Fix use of uninitialized variable
Fixes: CID1341580

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-09 18:17:47 +01:00
Michael Niedermayer
bc8b1e694c avutil/mathematics: Fix division by 0
Fixes: CID1341571

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-09 17:39:38 +01:00
Michael Niedermayer
8cfa912e25 avformat/flacdec: remove unused return code assignment
Fixes CID1271811

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-09 16:47:55 +01:00
Michael Niedermayer
e6971db12b avformat/matroskaenc: Check codecdelay before use
Fixes CID1238790

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-09 16:18:14 +01:00
Ganesh Ajjanagadde
89bbf01978 lavfi/af_amix: fix memory leak
Recent commits 6aaac24d72a7da631173209841a3944fcb4a3309 and
3835554bf8ed78539a3492c239f979c0ab03a15f made progress towards cleaning
up usage of the formats API, and in particular fixed possible NULL pointer
dereferences.

This commit addresses the issue of possible resource leaks when some intermediate
call fails.

Tested with valgrind --leak-check=full --show-leak-kinds=all, and manual simulation
of malloc/realloc failures.

Fixes: CID 1250334.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-09 07:58:19 -05:00
Ganesh Ajjanagadde
924fcac521 lavfi/af_channelmap: fix memory leak
Recent commits 6aaac24d72a7da631173209841a3944fcb4a3309 and
3835554bf8ed78539a3492c239f979c0ab03a15f made progress towards cleaning
up usage of the formats API, and in particular fixed possible NULL pointer
dereferences.

This commit addresses the issue of possible resource leaks when some intermediate
call fails.

Tested with valgrind --leak-check=full --show-leak-kinds=all, and manual simulation
of malloc/realloc failures.

Fixes: CID 1338330.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-09 07:58:13 -05:00
Ganesh Ajjanagadde
31f0d555e0 lavfi/vf_alphamerge: fix memory leaks
Recent commits 6aaac24d72a7da631173209841a3944fcb4a3309 and
3835554bf8ed78539a3492c239f979c0ab03a15f made progress towards cleaning
up usage of the formats API, and in particular fixed possible NULL pointer
dereferences.

This commit addresses the issue of possible resource leaks when some intermediate
call fails.

Tested with valgrind --leak-check=full --show-leak-kinds=all, and manual simulation
of malloc/realloc failures.

Fixes: CID 1338326, 1338329.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-09 07:58:03 -05:00
Ganesh Ajjanagadde
301c2784b3 lavfi/vf_overlay: fix memory leaks
Recent commits 6aaac24d72a7da631173209841a3944fcb4a3309 and
3835554bf8ed78539a3492c239f979c0ab03a15f made progress towards cleaning
up usage of the formats API, and in particular fixed possible NULL pointer
dereferences.

This commit addresses the issue of possible resource leaks when some intermediate
call fails.

Tested with valgrind --leak-check=full --show-leak-kinds=all, and manual simulation
of malloc/realloc failures.

Fixes: CID 1338327.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-09 07:57:57 -05:00
Ganesh Ajjanagadde
00c3220149 lavfi/show_palette: fix memory leak
Recent commits 6aaac24d72a7da631173209841a3944fcb4a3309 and
3835554bf8ed78539a3492c239f979c0ab03a15f made progress towards cleaning
up usage of the formats API, and in particular fixed possible NULL pointer
dereferences.

This commit addresses the issue of possible resource leaks when some intermediate
call fails. Unfortunately, even leaving aside this subtle intermediate
failure aspect, commit 8087632027d755cd32ccc9e91ea025e276197055 was only
partially successful in addressing memleaks. Hopefully, this commit
fixes the issue completely.

Tested with valgrind --leak-check=full --show-leak-kinds=all, and manual simulation
of malloc/realloc failures.

Fixes: CID 1270818.

Reviewed-by: Clément Bœsch <u@pkh.me>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-09 07:57:37 -05:00
Ganesh Ajjanagadde
cb93df0dcb avcodec/aacsbr_tablegen: always initialize tables at runtime
This gets rid of virtually useless hardcoded tables hackery. The reason
it is useless is that a 320 element lut is anyway placed regardless of
--enable-hardcoded-tables, from which all necessary tables are trivially
derived at runtime at very low cost:

sample benchmark (x86-64, Haswell, GNU/Linux, single run is really
what is relevant here since looping drastically changes the bench). Fluctuations
are on the order of 10% for the single run test:
39400 decicycles in aacsbr_tableinit,       1 runs,      0 skips
25325 decicycles in aacsbr_tableinit,       2 runs,      0 skips
18475 decicycles in aacsbr_tableinit,       4 runs,      0 skips
15008 decicycles in aacsbr_tableinit,       8 runs,      0 skips
13016 decicycles in aacsbr_tableinit,      16 runs,      0 skips
12005 decicycles in aacsbr_tableinit,      32 runs,      0 skips
11546 decicycles in aacsbr_tableinit,      64 runs,      0 skips
11506 decicycles in aacsbr_tableinit,     128 runs,      0 skips
11500 decicycles in aacsbr_tableinit,     256 runs,      0 skips
11183 decicycles in aacsbr_tableinit,     509 runs,      3 skips

Tested with FATE with/without --enable-hardcoded-tables.

Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-09 07:36:58 -05:00
Jean Delvare
e74f1a121e avfilter/vf_delogo: round to the closest value
When the interpolated value is divided by the sum of weights, no
rounding is done, which means the value is truncated. This results in
a slight bias towards dark green in the interpolated area. Rounding
properly removes the bias.

I measured this change to reduce the interpolation error by 1 to 2 %
on average on a number of sample input and logo area combinations.

Signed-off-by: Jean Delvare <jdelvare@suse.de>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-09 12:23:00 +01:00
Ganesh Ajjanagadde
c8905e0d67 swscale/utils: replace pow by exp2
exp2 is a faster function.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-08 22:00:05 -05:00
Ganesh Ajjanagadde
42868ca569 avcodec/jpeg2000: replace naive pow call with smarter exp2fi
pow is a very wasteful function for this purpose. A low hanging fruit
would be simply to replace with exp2f, and that does yield some speedup.
However, there are 2 drawbacks of this:
1. It does not exploit the integer nature of the argument.
2. (minor) Some platforms lack a proper exp2f routine, making benefits available
only to non broken libm.
3. exp2f does not solve the same issue that plagues pow, namely terrible
worst case performance. This is a fundamental issue known as the
"table-maker's dilemma" recognized by Prof. Kahan himself and
subsequently elaborated and researched by many others. All this is clear from benchmarks below.

This exploits the IEEE-754 format to get very good performance even in
the worst case for integer powers of 2. This solves all the issues noted
above. Function tested with clang usan over [-1000, 1000] (beyond range of
relevance for this, which is [-255, 255]), patch itself with FATE.

Benchmarks obtained on x86-64, Haswell, GNU-Linux via 10^5 iterations of
the pow call, START/STOP, and command ffplay ~/samples/jpeg2000/chiens_dcinema2K.mxf.
Low number of runs also given to prove the point about worst case:

pow:
 216270 decicycles in pow,       1 runs,      0 skips
 110175 decicycles in pow,       2 runs,      0 skips
  56085 decicycles in pow,       4 runs,      0 skips
  29013 decicycles in pow,       8 runs,      0 skips
  15472 decicycles in pow,      16 runs,      0 skips
   8689 decicycles in pow,      32 runs,      0 skips
   5295 decicycles in pow,      64 runs,      0 skips
   3599 decicycles in pow,     128 runs,      0 skips
   2748 decicycles in pow,     256 runs,      0 skips
   2304 decicycles in pow,     511 runs,      1 skips
   2072 decicycles in pow,    1022 runs,      2 skips
   1963 decicycles in pow,    2044 runs,      4 skips
   1894 decicycles in pow,    4091 runs,      5 skips
   1860 decicycles in pow,    8184 runs,      8 skips

exp2f:
 134140 decicycles in pow,       1 runs,      0 skips
  68110 decicycles in pow,       2 runs,      0 skips
  34530 decicycles in pow,       4 runs,      0 skips
  17677 decicycles in pow,       8 runs,      0 skips
   9175 decicycles in pow,      16 runs,      0 skips
   4931 decicycles in pow,      32 runs,      0 skips
   2808 decicycles in pow,      64 runs,      0 skips
   1747 decicycles in pow,     128 runs,      0 skips
   1208 decicycles in pow,     256 runs,      0 skips
    952 decicycles in pow,     512 runs,      0 skips
    822 decicycles in pow,    1024 runs,      0 skips
    765 decicycles in pow,    2047 runs,      1 skips
    722 decicycles in pow,    4094 runs,      2 skips
    693 decicycles in pow,    8190 runs,      2 skips

exp2fi:
   2740 decicycles in pow,       1 runs,      0 skips
   1530 decicycles in pow,       2 runs,      0 skips
    955 decicycles in pow,       4 runs,      0 skips
    622 decicycles in pow,       8 runs,      0 skips
    477 decicycles in pow,      16 runs,      0 skips
    368 decicycles in pow,      32 runs,      0 skips
    317 decicycles in pow,      64 runs,      0 skips
    291 decicycles in pow,     128 runs,      0 skips
    277 decicycles in pow,     256 runs,      0 skips
    268 decicycles in pow,     512 runs,      0 skips
    265 decicycles in pow,    1024 runs,      0 skips
    263 decicycles in pow,    2048 runs,      0 skips
    263 decicycles in pow,    4095 runs,      1 skips
    260 decicycles in pow,    8191 runs,      1 skips

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-08 22:00:05 -05:00
Andreas Cadhalpun
5b0da6999f aacenc: update max_sfb when num_swb changes
This fixes out-of-bounds reads in avoid_clipping.

Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-12-08 22:53:09 +01:00
Matthieu Bouron
3d09065316 fate/api-jpeg-codec-param: rename to api-mjpeg-codec-param 2015-12-08 20:43:20 +01:00
Luca Barbato
81c95eb8ee openh264: Directly include the deprecation guards header
Make easier to avoid compile failure when reworking the internal
headers.
2015-12-08 18:12:33 +01:00
Sebastian Dröge
9aebea0a4d avcodec/h264: Set CORRUPT flag on output frames that are not fully recovered
In the merge commit 78265fcfeee153e5e26ad4dbc7831a84ade447d6 this behaviour
was broken and the CORRUPT flag would never ever be set on a frame. However
the flag on the AVCodecContext was taken into account properly, including
AV_CODEC_FLAG2_SHOW_ALL.

The reason for this was that the recovered field of the next output picture
was always set to TRUE whenever one of the two AVCodecContext flags was set,
which made it impossible to detect later, before outputting, if the frame was
really recovered or not. Now don't set it to TRUE unless the frame is really
recovered and check the AVCodecContext flags right before outputting.

Signed-off-by: Sebastian Dröge <sebastian@centricular.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-08 18:09:27 +01:00
Clément Bœsch
503d8bf74a lavu/frame: use AVPALETTE_SIZE instead of 1024 2015-12-08 17:50:40 +01:00
Rostislav Pehlivanov
4c5136a48b aacenc_ltp: disable LTP with high lambda values
Makes no sense to enable for high bitrates, the coder does well enough.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-12-08 13:31:55 +00:00
Rostislav Pehlivanov
6e5dbe7267 aacenc_tns: use 4 bits for short windows
With only 7 coefficients per short window at most the extra precision
makes a difference and seems to reduce crackling and stddev even
further.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-12-08 13:31:50 +00:00
Luca Barbato
34138ece23 log: Use a do {} while (0) for tlog
Avoid the warning `-Wempty-body`.
2015-12-08 11:26:21 +01:00
Hendrik Leppkes
8142daca44 Merge commit '6788baebb3680d447eabdadf3f5743c8470a4611'
* commit '6788baebb3680d447eabdadf3f5743c8470a4611':
  log: Use a do {} while (0) for dlog

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-08 10:06:23 +01:00
Hendrik Leppkes
c9dbff60c6 Merge commit '7d36474d1908d6267d4e11d4d9909f9604bd0c81'
* commit '7d36474d1908d6267d4e11d4d9909f9604bd0c81':
  imgconvert: Re-enable the deprecation warnings

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-08 10:03:51 +01:00
Hendrik Leppkes
68cb0dc8a3 Merge commit 'f7edcac040f73635fc1127489c9bb29ca8b43532'
* commit 'f7edcac040f73635fc1127489c9bb29ca8b43532':
  avpicture: Suppress warning from deprecated code

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-08 10:03:08 +01:00
Hendrik Leppkes
92186f2d10 Merge commit 'b805482b1fba1d82fbe47023a24c9261f18979b6'
* commit 'b805482b1fba1d82fbe47023a24c9261f18979b6':
  aac: Provide more information on the failure message

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-08 09:59:45 +01:00
Hendrik Leppkes
3f9c64831c Merge commit 'c5eb279e240af6b7228a624cd7193732f2d5adaa'
* commit 'c5eb279e240af6b7228a624cd7193732f2d5adaa':
  g723: Add missing header

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-08 09:50:59 +01:00
Hendrik Leppkes
8076711d4c Merge commit '1077d8c8455b27688de37cd04f8cc253fb37944d'
* commit '1077d8c8455b27688de37cd04f8cc253fb37944d':
  configure: Add -framework CoreVideo when building the avfoundation indev

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-08 09:50:45 +01:00
Hendrik Leppkes
d1b7cafae1 Merge commit 'bf12a81cc67d62dd45c58e29fa0e9177331cc151'
* commit 'bf12a81cc67d62dd45c58e29fa0e9177331cc151':
  configure: Replace `pr` since it is not provided by busybox

Not merged as requested by Timothy Gu.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-08 09:45:24 +01:00
Hendrik Leppkes
6a6cfeb2e7 Merge commit '5f3a081b42b84404a40a52c80ef7a354cf048c56'
* commit '5f3a081b42b84404a40a52c80ef7a354cf048c56':
  avi: Spin out the logic to position to the next non-interleaved stream

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-08 09:41:43 +01:00
Matthieu Bouron
5aca33c2cf swscale/arm: add ff_nv{12,21}_to_{argb,rgba,abgr,bgra}_neon_16 2015-12-08 08:12:42 +01:00
Matthieu Bouron
102842d5fb fate/api-{jpeg,png}-codec-param: add missing codec dependencies 2015-12-08 08:12:35 +01:00
Matthieu Bouron
bd0a9f603d fate/api-codec-param: fix codec context leak 2015-12-08 08:12:35 +01:00
foo86
ff6dd5851b avcodec/libdcadec: honor -err_detect option
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-08 03:37:04 +01:00
foo86
de12aa51b6 avcodec/libdcadec: add some useful options
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-08 03:37:04 +01:00
foo86
704b278361 avcodec/libdcadec: implement logging callback
Don't print a warning when dcadec_context_filter() returns positive
warning code. Most relevant warnings are now output through the callback
function.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-08 03:37:04 +01:00
foo86
704654ea17 avcodec/libdcadec: fix request_channel_layout
Take request_channel_layout as a hint and don't force 2.0 downmix by
using both the 2CH and 6CH flags together.

Remove warnings about missing coefficients because they are no longer
relevant.

Honor AV_CH_LAYOUT_NATIVE and make it possible for native DTS channel
layout to be output.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-08 03:37:04 +01:00
Marton Balint
97795ba6c3 lavf/mxfdec: fix seeking before the first keyframe
Regression since 53f2ef2c4afb1d49a679dea9163cb0e4671f3117.
Fixes ticket #5017.

Signed-off-by: Marton Balint <cus@passwd.hu>
2015-12-08 02:14:44 +01:00
Clément Bœsch
dd1d9b80c9 lavu/opencl: restore #if HAVE_THREADS
Fix regression since a8bb81a.

Spotted-by: RiCON
2015-12-07 20:28:30 +01:00
Timothy Gu
006d3e97fc cosmetics: Fix weird indentations 2015-12-07 10:43:43 -08:00
Aaron Colwell
febfb49a70 matroskadec: Fix sample_aspect_ratio for stereo matroska content
matroskaenc applies divisors to the display width/height when generating
stereo content. This patch adds the corresponding multipliers to matroskadec
so that the original sample aspect ratio can be recovered.

Signed-off-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-12-07 11:27:42 -05:00
Vittorio Giovara
c34df42262 sgienc: Make sure to initialize skipped header portions
Fix fate tests with asan. Introduced during bytestream2 porting
(in revision 62cc8f4d79dad119e8efeaae080a58a8dcb1e89d).

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-12-07 11:27:42 -05:00
Vittorio Giovara
16216b713f lavc: Drop exporting 2-pass encoding stats
These variables are coming from mpegvideoenc where are supposedly used
as bit counters on various frame properties. However their use is
unclear as they lack documentation, are available only from a very small
subset of encoders, and they are hardly used in the wild. Also frame_bits
in aacenc is employed in a similar way.

Remove this functionality from AVCodecContex, these variable are mostly
frame properties, and too few encoders support setting them with anything
useful.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-12-07 11:27:42 -05:00
Clément Bœsch
a8bb81a05c lavc, lavu: use avutil/thread.h instead of redundant conditional includes 2015-12-07 17:25:51 +01:00
James Almer
a0050d9bf9 configure: fix vp9_d3d11va_hwaccel deps
Signed-off-by: James Almer <jamrial@gmail.com>
2015-12-07 13:12:21 -03:00
Vittorio Giovara
be00ec832c lavc: Deprecate coder_type and its symbols
Most option values are simply unused or ignored and in practice the
majory of codecs only need to check whether to enable rle or not.

Add appropriate codec private options which better expose the allowed
features.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-12-07 11:01:22 -05:00
Clément Bœsch
5e0c47d41c avutil/threadmessage: fix build without HAVE_THREADS, new attempt 2015-12-07 16:39:57 +01:00
Hendrik Leppkes
312c83e057 avcodec/g723_1: fix license header 2015-12-07 16:10:51 +01:00
Hendrik Leppkes
357c62657a Merge commit 'cb49bb10ca7fcff2e382d9d989232b1a7f28e7da'
* commit 'cb49bb10ca7fcff2e382d9d989232b1a7f28e7da':
  build: Move -Wcast-qual to the extra_warnings

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-07 16:01:41 +01:00
Hendrik Leppkes
8cfa7beffc Merge commit '0fc61c6ab6912a2f0c40fdd3f3c591bc2a33efd4'
* commit '0fc61c6ab6912a2f0c40fdd3f3c591bc2a33efd4':
  avi: Validate the stream-id for DV as well

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-07 16:00:47 +01:00
Hendrik Leppkes
e92aa34d7b Merge commit 'd017ed878a45171f2f6c69fb9d76401c3c494110'
* commit 'd017ed878a45171f2f6c69fb9d76401c3c494110':
  avi: Use the correct data type

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-07 15:57:02 +01:00
Hendrik Leppkes
ee367fadf5 Merge commit '7f57ea143c55ce5732ef7e31e4b75ae6c307af13'
* commit '7f57ea143c55ce5732ef7e31e4b75ae6c307af13':
  vsrc_color: Drop unneeded variable

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-07 15:55:51 +01:00
Hendrik Leppkes
d1256272b1 Merge commit 'ca5f386e75c592ce25b8184516fd0d580ccb31bb'
* commit 'ca5f386e75c592ce25b8184516fd0d580ccb31bb':
  lavf: G.723.1 muxer

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-07 15:55:13 +01:00
Hendrik Leppkes
90c93fb129 Merge commit 'f023d57d355ff3b917f1aad9b03db5c293ec4244'
* commit 'f023d57d355ff3b917f1aad9b03db5c293ec4244':
  lavc: G.723.1 encoder

Split existing FFmpeg G.723.1 encoder into a new file.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-07 15:50:45 +01:00
Hendrik Leppkes
6c9cc21bcc Merge commit '165cc6fb9defcd79fd71c08167f3e8df26b058ff'
* commit '165cc6fb9defcd79fd71c08167f3e8df26b058ff':
  g723_1: Move sharable functions to a separate file

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-07 15:26:41 +01:00
Hendrik Leppkes
9cf74191ed Merge commit 'aac996cc01042194bf621d845bbe684549b5882e'
* commit 'aac996cc01042194bf621d845bbe684549b5882e':
  g723_1: Rename files to better reflect their purpose

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-07 15:04:13 +01:00
Clément Bœsch
dc97ff8380 fate/api: add w32+os2 support for fate-api-threadmessage 2015-12-07 14:57:33 +01:00
Hendrik Leppkes
2730a2013d Merge commit 'b74b88f30da2389f333a31815d8326d5576d3331'
* commit 'b74b88f30da2389f333a31815d8326d5576d3331':
  g723_1: Handle values at the ends of the table in lsp2lpc()

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-07 14:58:38 +01:00
Hendrik Leppkes
0ecec7449c Merge commit 'a0fa6d06b848f26b16ba12f0a9a4a85b93ab8022'
* commit 'a0fa6d06b848f26b16ba12f0a9a4a85b93ab8022':
  matroska: Warn when metadata references a non-existent element

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-07 14:51:23 +01:00
Hendrik Leppkes
255f8966b2 Merge commit 'f7986239f4dbec91c743c4c5eb0a2339bd325bf6'
* commit 'f7986239f4dbec91c743c4c5eb0a2339bd325bf6':
  dvenc: Validate the frame size before copying it

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-07 14:45:47 +01:00
Clément Bœsch
b98305f0ab fate/api: fix fate-api-threadmessage dependency 2015-12-07 14:40:10 +01:00
Clément Bœsch
d4b1b33e69 avutil/threadmessage: fix build without HAVE_THREADS 2015-12-07 14:28:34 +01:00
Hendrik Leppkes
4a2058bf4e Merge commit '7139489c452ef8af6a745ec4e62056ee4ea4d6a8'
* commit '7139489c452ef8af6a745ec4e62056ee4ea4d6a8':
  pgssubdec: fix API compability layer

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-07 14:20:03 +01:00
Hendrik Leppkes
4e01566941 Merge commit 'b0e8651a2a84553d08fbb2f7cb9697bd64fb1b55'
* commit 'b0e8651a2a84553d08fbb2f7cb9697bd64fb1b55':
  doc: Amend the MSYS2 Documentation

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-07 14:18:41 +01:00
Hendrik Leppkes
14b5834756 Merge commit '4f979418c723652ad4e43115118c57a44bd46b52'
* commit '4f979418c723652ad4e43115118c57a44bd46b52':
  avfoundation: Simple capture

Not merged on request by Thilo Borgmann, original author of the
AVFoundation capture in FFmpeg.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-07 14:16:36 +01:00
Paul B Mahol
b6d029c2ef doc/filters: add more compand examples
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-07 12:22:42 +01:00
Paul B Mahol
e6690ce02f avfilter/af_biquads: pass filter ctx to av_log calls
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-07 11:47:43 +01:00
Anton Khirnov
f1ccd07680 h264: do not call frame_start() for missing frames
We do not need to do a full setup like for a real frame, just allocate a
buffer and set cur_pic(_ptr).
2015-12-07 11:42:26 +01:00
Anton Khirnov
d6dc5d15af aacdec: fix aac_static_table_init() prototype 2015-12-07 11:42:26 +01:00
Anton Khirnov
68e547ae8b avpacket: use ERANGE instead of EOVERFLOW
EOVERFLOW seems to be unavailable on certain platforms.
2015-12-07 11:42:26 +01:00
Clément Bœsch
bd5c860fdb avutil/threadmessage: split the pthread condition in two
Fix a dead lock under certain conditions. Let's assume we have a queue of 1
message max, 2 senders, and 1 receiver.

Scenario (real record obtained with debug added):
    [...]
    SENDER #0: acquired lock
    SENDER #0: queue is full, wait
    SENDER #1: acquired lock
    SENDER #1: queue is full, wait
    RECEIVER: acquired lock
    RECEIVER: reading a msg from the queue
    RECEIVER: signal the cond
    RECEIVER: acquired lock
    RECEIVER: queue is empty, wait
    SENDER #0: writing a msg the queue
    SENDER #0: signal the cond
    SENDER #0: acquired lock
    SENDER #0: queue is full, wait
    SENDER #1: queue is full, wait

Translated:
 - initially the queue contains 1/1 message with 2 senders blocking on
   it, waiting to push another message.
 - Meanwhile the receiver is obtaining the lock, read the message,
   signal & release the lock. For some reason it is able to acquire the
   lock again before the signal wakes up one of the sender. Since it
   just emptied the queue, the reader waits for the queue to fill up
   again.
 - The signal finally reaches one of the sender, which writes a message
   and then signal the condition. Unfortunately, instead of waking up
   the reader, it actually wakes up the other worker (signal = notify
   the condition just for 1 waiter), who can't push another message in
   the queue because it's full.
 - Meanwhile, the receiver is still waiting. Deadlock.

This scenario can be triggered with for example:
    tests/api/api-threadmessage-test 1 2 100 100 1 1000 1000

One working solution is to make av_thread_message_queue_{send,recv}()
call pthread_cond_broadcast() instead of pthread_cond_signal() so both
senders and receivers are unlocked when work is done (be it reading or
writing).

This second solution replaces the condition with two: one to notify the
senders, and one to notify the receivers. This prevents senders from
notifying other senders instead of a reader, and the other way around.
It also avoid broadcasting to everyone like the first solution, and is,
as a result in theory more optimized.
2015-12-07 11:39:28 +01:00
Clément Bœsch
a26e4215b9 fate/api: test threadmessage 2015-12-07 11:39:28 +01:00
Clément Bœsch
f98abe0ee7 avutil/threadmessage: add av_thread_message_flush() 2015-12-07 11:39:28 +01:00
Simon Thelen
6596c6fca7 fate: add limited_input_seek tests
Signed-off-by: Simon Thelen <ffmpeg-dev@c-14.de>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-07 10:39:17 +01:00
Ganesh Ajjanagadde
d5f5c90be9 rtsp: free opts dictionary on failure of getnameinfo
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-12-07 11:11:31 +02:00
Ganesh Ajjanagadde
8df8f0c70c movenc-test: add a missing va_end call
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-12-07 11:11:30 +02:00
Hendrik Leppkes
5068fb1e24 ffmpeg_dxva2: support vp9 hwaccel 2015-12-07 09:47:51 +01:00
Hendrik Leppkes
1e6cf7272f avcodec: implement vp9 dxva2 hwaccel 2015-12-07 09:38:59 +01:00
Hendrik Leppkes
585083dd1f vp9: add hwaccel hooks 2015-12-07 09:25:02 +01:00
Hendrik Leppkes
cd1b7e2bd7 vp9: fix pixel format changes with threading 2015-12-07 09:23:18 +01:00
Reynaldo H. Verdejo Pinochet
21fbc41214 cmdutils: use version accessor macros
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-12-06 20:27:40 -08:00
Muhammad Faiz
54ed3ebbe4 avfilter/showcqt: BASEFREQ and ENDFREQ cast to double
fix default basefreq/endfreq comparison
on platform that does not do comparison
in double type

found on zeranoe 32-bit build, where
default freq range is detected as non-default

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-07 01:28:48 +01:00
Anshul Maheshwari
162754c1e0 Remove Redundant Entry of MPEG2 Video Desc
Signed-off-by: Anshul Maheshwari <er.anshul.maheshwari@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-07 01:28:48 +01:00
Andreas Cadhalpun
5adb5d9d89 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>
2015-12-06 22:40:41 +01:00
Rostislav Pehlivanov
a0a39acd01 fate: change the CMP_TARGETs for the recent AAC encoder changes
The case of PNS was outdated and resulted in failures on some
kdfreebds systems.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-12-06 20:16:48 +00:00
Rostislav Pehlivanov
d55f83de4d aacenc_tns: tune and reduce artifacts
There are a couple of major changes here:

1. Start using TNS coefficient compression.
2. Start using 3 bits per coefficient maximum for short windows.
The bits we save from these 2 changes seem to make a nice impact on the
rest of the file/windows.

3. Remove special case gain checking for short windows.
4. Modify the coefficient loop to support up to 3 windows.
The additional restrictions on TNS were something that was no in the
specifications and furthermore restricting TNS to only low energy short
windows was done to compensate for bugs elsewhere in the code.

Overall, the improvements here reduce crackling artifacts heard in very
noisy tracks.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-12-06 20:16:48 +00:00
Rostislav Pehlivanov
b32e989e6c aacenc: move the TNS search and filtering before PNS
The original plan was to have TNS use data from the PNS search to better
tune itself to noise but this was never used nor necessary. This should
slightly boost the PNS accuracy if TNS was used.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-12-06 20:16:48 +00:00
Paul B Mahol
45b451c892 avfilter/af_alimiter: add 3 more options
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-06 19:10:39 +01:00
Timothy Gu
b0669e7ccf fate/concatdec: Use -bitexact
Fixes FATE failures on --enable-small builds.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-06 14:37:40 +01:00
Timothy Gu
9670165cc2 ffprobe: Do not print profile names in -bitexact
Instead, print "unknown" if it's unknown, or their numerical values if
they are known.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-06 14:37:40 +01:00
Ganesh Ajjanagadde
65440916c1 ffplay: use hypot()
Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-06 08:11:47 -05:00
Ganesh Ajjanagadde
14886bebfe avcodec/dvdsubdec: fix typo in dlog message
Likely accidental in 764900d6458a2f79166ff91df4f20ad39cd6acec.

Fixes: CID 1341578.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-06 08:11:47 -05:00
Ganesh Ajjanagadde
f1f323b6de avformat/movenc-test: correct varargs usage
It is required to call va_end for each invocation of va_start within the
same function.

Fixes: CID 1341583.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-06 08:11:47 -05:00
Ganesh Ajjanagadde
90409b6da8 avformat/rtsp: free opts dictionary on failure of getnameinfo
Fixes: CID 1341579.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-06 08:11:47 -05:00
Anton Khirnov
b8b21dee0f mxfenc: always assume long gop
Checking the codec context parameters to find out this information is
far too unreliable to be useful, so it is safer to assume B-frames are
always present.
2015-12-06 10:28:36 +01:00
Anton Khirnov
e02de9df4b lavc: export Dirac parsing API used by the ogg demuxer as public
Also, stop using AVCodecContext for storing the stream parameters.
2015-12-06 10:28:04 +01:00
Anton Khirnov
8bcadaacc2 mpegenc: use the CPB props side data
Do not access the encoder options, since it makes no sense when the
AVStream codec context is not the encoding context.
2015-12-06 10:26:13 +01:00
Anton Khirnov
5845a8273e movenc: use the CPB props side data
Do not access the encoder options, since it makes no sense when the
AVStream codec context is not the encoding context.
2015-12-06 10:26:01 +01:00
Anton Khirnov
825900248b qsvenc: export CPB props side data 2015-12-06 10:25:49 +01:00
Anton Khirnov
1520c6ff05 nvenc: export CPB props side data 2015-12-06 10:25:43 +01:00
Anton Khirnov
2507b5dd67 mpegvideo_enc: export vbv_delay in side data
Deprecate AVCodecContext.vbv_delay
2015-12-06 10:25:23 +01:00
Anton Khirnov
3f5c99fcbb mpegvideo_enc: export CPB props side data 2015-12-06 10:25:08 +01:00
Anton Khirnov
732a37d146 libx264: export CPB props side data 2015-12-06 10:25:00 +01:00
Anton Khirnov
03afb62e83 libvpxenc: export CPB props side data 2015-12-06 10:24:47 +01:00
Anton Khirnov
11c9bd633f libopenh264enc: export CPB props side data 2015-12-06 10:24:21 +01:00
Anton Khirnov
f0b769c16d lavc: add a packet side data type for VBV-like parameters 2015-12-06 10:23:45 +01:00
Anton Khirnov
e63e3797a1 avconv: pass the global codec side data to the muxer 2015-12-06 10:23:21 +01:00
Anton Khirnov
84adab333c lavc: add stream-global packet side data
This is similar to what is done for AVStream.
2015-12-06 10:22:43 +01:00
Anton Khirnov
31c51f7441 avpacket: add a function for wrapping existing data as side data 2015-12-06 10:22:18 +01:00
Paul B Mahol
3e1724baf8 avfilter/af_stereotools: fix logic fail
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-06 10:09:09 +01:00
Reynaldo H. Verdejo Pinochet
21c34cb261 libavutil: add version component accessor macros
Pretty standard macros, these should help libav*
users avoid repeating ver.si.on parsing code,
which aids in compatibility-checking tasks like
identifying FFmpeg from Libav (_MICRO >= 100 check).
Something many are doing since we are not
intercompatible anymore.

Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-12-06 01:01:51 -08:00
Anton Khirnov
b09ad37c83 h264: derive the delay from the level when it's not present
Fall back to maximum DPB size if the level is unknown.

This should be more spec-compliant and does not depend on the caller
setting has_b_frames before opening the decoder.

The old behaviour, when the delay is supplied by the caller setting
has_b_frames, can still be obtained by setting strict_std_compliance
below normal.
2015-12-06 09:43:52 +01:00
Anton Khirnov
792b9c9dfc h264: set frame_num in start_frame(), not decode_slice_header()
That is a more appropriate place for it, since it is not allowed to
change between slices.
2015-12-06 09:43:45 +01:00
Anton Khirnov
741b494fa8 h264: eliminate default_ref_list
According to the spec, the reference list for a slice should be
constructed by first generating an initial (what we now call "default")
reference list and then optionally applying modifications to it.

Our code has an optimization where the initial reference list is
constructed for the first inter slice and then rebuilt for other slices
if needed. This, however, adds complexity to the code, requires an extra
2.5kB array in the codec context and there is no reason to think that it
has any positive effect on performance. Therefore, simplify the code by
generating the reference list from scratch for each slice.
2015-12-06 09:42:39 +01:00
Rostislav Pehlivanov
fcd9c6334a doc/encoders.texi: fix typo and clarify mpeg2_aac_low
Thanks to Brad Smith for finding the typo.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-12-05 23:44:04 +00:00
Michael Niedermayer
2140858524 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>
2015-12-05 22:34:30 +01:00
Anton Khirnov
e7078e842d hevcdsp: add x86 SIMD for MC 2015-12-05 21:11:52 +01:00
Anton Khirnov
0cef06df07 checkasm: add HEVC MC tests 2015-12-05 21:11:21 +01:00
Anton Khirnov
a853388d2f hevc: change the stride of the MC buffer to be in bytes instead of elements
Currently, the frame stride is passed in bytes, while the MC buffer size
is in int16_t elements, This can be confusing, so pass both strides in
bytes.
2015-12-05 21:11:12 +01:00
Anton Khirnov
688417399c hevcdsp: split the pred functions by width
This should allow for more efficient SIMD.
2015-12-05 21:10:41 +01:00
Anton Khirnov
818bfe7f0a hevcdsp: split the epel functions by width
This should allow for more efficient SIMD.
2015-12-05 21:09:57 +01:00
Anton Khirnov
1f821750f0 hevcdsp: split the qpel functions by width instead of by the subpixel fraction
This should allow for more efficient SIMD.

Keep the C versions as they are now, to allow the compiler to inline the
interpolation coefficients.
2015-12-05 21:08:04 +01:00
Rostislav Pehlivanov
dcbe8d8abc aacenc_ltp: use an AR filter for LTP encoding as well
Seems to work better. Information on why the decoder does this is
lacking.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-12-05 19:06:39 +00:00
Rostislav Pehlivanov
3112501daf aacenc: fix aac_pred option triggering an error
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-12-05 18:43:17 +00:00
Rostislav Pehlivanov
cc68ca0cab doc/encoders.texi: use words intead of numbers to describe option states
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-12-05 18:37:04 +00:00
Rostislav Pehlivanov
713e67e5d8 Changelog: append experimental flag removal to the AAC encoder entry
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-12-05 18:37:04 +00:00
Michael Niedermayer
a08681f1e6 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>
2015-12-05 17:42:45 +01:00
Michael Niedermayer
c7d6ec947c avcodec/dirac_parser: Add basic validity checks for next_pu_offset and prev_pu_offset
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-05 17:42:45 +01:00
Michael Niedermayer
79798f7c57 avcodec/dirac_parser: Fix potential overflows in pointer checks
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-05 17:42:45 +01:00
Rostislav Pehlivanov
49b82bc956 doc/encoders.texi: remove forgotten mention of "experimental" from libvo-aacenc
Previous documentation commit overlooked that particular mention.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-12-05 16:38:18 +00:00
Rostislav Pehlivanov
d9791a8656 aacenc: remove the experimental flag
Thiss commit removes the experimental flag from the native AAC Encoder
and thus makes it the default.

After a lot of work, done by myself and Claudio Freire, the quality of
this encoder rivals and surpasses libfdk_aac in some situations. The
encoder had instability issues earlier which prevented it from having
its experimental flag removed, however the last commits done by Claudio
removed the last known source of instability and solved a lot of
problems which were previously observed. The issues were caused by the
various coding tools interfering with the scalefactor indices. Thus,
with these problems solved, it should now be possible to declare this
encoder as the default and recommend that the users should use it
instead of others provided by external libraries, as it is both faster
and has a subjectively higher quality with selected tracks.
The encoder has still yet to be fine tuned for every possible audio file
type like music or voice, so it is hoped that with the experimental flag
removed the users should be able to provide feedback and make the
encoder better than the alternatives for every type of audio and at
every bitrate.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-12-05 15:41:25 +00:00
Rostislav Pehlivanov
e34e3619a2 doc/encoders.texi: update documentation for the native AAC encoder
Since the next commit removes the experimental flag from the encoder
it's better to update the documentation which has been around in its
current form for as long as the encoder itself.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-12-05 15:41:25 +00:00
Rostislav Pehlivanov
b270ec9a10 aacenc: mark coders other than twoloop as experimental
ANMR has some interesting things coming up but is currently not in a
shape fit for non-experimental usage. Same with "FAST".

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-12-05 15:41:25 +00:00
Rostislav Pehlivanov
3a6e020861 aacenc: mark the "faac"-like coder for removal
This coder produces a much lower quality audio than the rest, is much
slower and is unstable. Hasn't been updated for a very long time as
well, hence it is more appropriate to remove it since it also depends on
a big burden of a code (the encode_window_bands_info function which is
just as old, just as unstable and bad and in no way modifiable or
fixable).

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-12-05 15:41:25 +00:00
Paul B Mahol
a525b844d9 avfilter/af_stereotools: check s->length size
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-05 16:15:32 +01:00
Michael Niedermayer
66e05f6ff5 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>
2015-12-05 14:35:37 +01:00
Luca Barbato
6788baebb3 log: Use a do {} while (0) for dlog
Avoid the warning `-Wempty-body`.
2015-12-05 13:47:09 +01:00
Luca Barbato
7d36474d19 imgconvert: Re-enable the deprecation warnings
The end-marked was typoed in

f7edcac040f73635fc1127489c9bb29ca8b43532
2015-12-05 13:31:38 +01:00
Michael Niedermayer
15d14ce47c avcodec/utils: Fix overflow in get_bit_rates computations
Fixes: 129ca3e28d73af7b1e24a9d4118e7a2d/signal_sigabrt_7ffff6ae7cc9_836_762b310fc3ef6087bd7771e5d8e90b9b.asf

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-05 13:20:03 +01:00
Michael Niedermayer
2de8bfd2ef avcodec/pcm: Fix overflow in bitrate computation
Fixes: 129ca3e28d73af7b1e24a9d4118e7a2d/signal_sigabrt_7ffff6ae7cc9_836_762b310fc3ef6087bd7771e5d8e90b9b.asf

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-05 13:20:03 +01:00
Michael Niedermayer
0c56f8303e 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>
2015-12-05 13:20:03 +01:00
Michael Niedermayer
7ed47e9729 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>
2015-12-05 13:20:03 +01:00
Luca Barbato
f7edcac040 avpicture: Suppress warning from deprecated code 2015-12-05 13:12:27 +01:00
Luca Barbato
b805482b1f aac: Provide more information on the failure message
Bug-Id: 761
2015-12-05 13:11:36 +01:00
Clément Bœsch
3f46e7bad5 avfilter/codecview: reindent after previous commit 2015-12-05 12:25:14 +01:00
Clément Bœsch
560d1e7b49 avfilter/codecview: add QP support 2015-12-05 12:24:15 +01:00
Hendrik Leppkes
3b0f63e110 Merge commit '9f57f134c19773d54269b6cb9ee455ff87c2e9e1'
* commit '9f57f134c19773d54269b6cb9ee455ff87c2e9e1':
  configure: ObjC support

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-05 12:21:33 +01:00
Luca Barbato
c5eb279e24 g723: Add missing header
Unbreak make check.
2015-12-05 12:12:26 +01:00
Neil Birkbeck
a16243a4aa libavformat/mov.c: allow QuickTime metadata to come after traks
QuickTime metadata can come after trak data. Add indicator for which trak is being parsed (-1 if none) so that global metadata after the trak can be parsed.

Signed-off-by: Neil Birkbeck <neil.birkbeck@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-05 04:34:24 +01:00
Simon Thelen
5b6c0fdb43 ffmpeg: When streamcopying, only add the input seek position when copying timestamps.
Using -ss as an input option shifts timestamps down by the seek, so it
doesn't have to be added to the recording time when checking whether to
stop.

Fixes #977

Signed-off-by: Simon Thelen <ffmpeg-dev@c-14.de>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-05 04:24:22 +01:00
Claudio Freire
293c170f59 AAC encoder: ANMR, avoid empty search ranges
Avoid generating broken paths when some bands have an
empty search space.
2015-12-04 22:56:34 -03:00
Andreas Cadhalpun
7a4652dd5d 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>
2015-12-05 01:50:08 +01:00
Michael Niedermayer
325b59368d 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>
2015-12-04 21:44:53 +01:00
Michael Niedermayer
4f2419888b 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>
2015-12-04 21:39:14 +01:00
Vicente Olivert Riera
1a538a1490 mips: add p5600 core optimizations
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-04 20:51:01 +01:00
Vicente Olivert Riera
c8419035f4 mips: remove --mips32r5 configure option
Having a configure option with the same name as a MIPS ISA is confusing,
so better to remove it. This option was being used to add some
optimizations to a specific core (p5600). We will add the optimizations
just when the p5600 core has been detected, in a later patch.

Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-04 20:50:57 +01:00
Michael Niedermayer
ab7ff38052 avformat/flvdec: Fix left shift of 137 by 24 places cannot be represented in type int
Fixes: 3c857d4d90365731524716e6d051e43a/signal_sigsegv_7f4f59bcc29e_1386_20abd2c8e655cb9c75b24368e65fe3b1.flv

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-04 18:54:39 +01:00
Michael Niedermayer
689a867413 avformat/msf: Check channels when reading the header
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>
2015-12-04 18:54:39 +01:00
Michael Niedermayer
a85b02dcf7 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>
2015-12-04 18:54:39 +01:00
Paul B Mahol
5d2cc00dd0 avfilter: add audio emphasis filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-04 17:52:57 +01:00
Clément Bœsch
7234e04e35 ffmpeg: enable echoing with command and debug modes
Allow seeing text when pressing 'c' or 'd'.
2015-12-04 15:47:06 +01:00
Clément Bœsch
60532348d2 avcodec/mpegvideo: use constants for rc_strategy 2015-12-04 15:44:45 +01:00
Clément Bœsch
010caed261 swscale: use AV_OPT_TYPE_BOOL for {src,dst}_range options 2015-12-04 15:43:34 +01:00
Clément Bœsch
c1f114a8c4 swresample: use AV_OPT_TYPE_BOOL for linear_interp and cheby options 2015-12-04 15:43:33 +01:00
Clément Bœsch
43ecec0f03 avformat: use AV_OPT_TYPE_BOOL in a bunch of places 2015-12-04 15:43:33 +01:00
Clément Bœsch
0e62b5d1ef avfilter: use AV_OPT_TYPE_BOOL in a bunch of places 2015-12-04 15:37:06 +01:00
Clément Bœsch
fb99ef0bd3 avcodec: use AV_OPT_TYPE_BOOL in a bunch of places 2015-12-04 15:37:05 +01:00
Andreas Cadhalpun
a611375db5 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>
2015-12-04 15:20:04 +01:00
Andreas Cadhalpun
488e9a06f0 ffmdec: only seek back at EOF if a server is attached
Otherwise the ffm demuxer can return the same packets endlessly, if
there is no server attached.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-12-04 15:20:04 +01:00
Hendrik Leppkes
3c4e49187f libavcodec/aacsbr_tablegen: fix tablegen on windows
Including these headers is not needed and breaks building on Windows as it
tries to activate the full compat tools, which are not needed for host
tools.
2015-12-04 14:49:40 +01:00
Hendrik Leppkes
42a9aead85 avcodec: include tablegen compat header before the tablegen functionality 2015-12-04 14:49:38 +01:00
Hendrik Leppkes
d6b988b505 libavutil/tablegen: add missing math.h include 2015-12-04 14:49:35 +01:00
Michael Niedermayer
0c1d62ab9d avformat/oggparsetheora: Check duration to be not AV_NOPTS_VALUE (and positive) before use
Fixes: 1536b9b096a8f95b742bae9d3d761cc6/signal_sigsegv_294aaed_7322_4fad88a38dc8952dc20dcb60c1895758.ogg

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-04 13:47:58 +01:00
Michael Niedermayer
2ff61c3c1a avcodec/dnxhddec: Fix runtime error: left shift of negative value
Fixes: 2abd25478c62a675f335fac00b467023/asan_static-oob_10aff98_1227_8811480c6ef1e970a7977ceb7e5a9958.mxf

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-04 13:44:22 +01:00
Michael Niedermayer
9d44e23618 ffmpeg: Check pkt_dts for AV_NOPTS_VALUE
Fixes integer overflow
Fixes: 1536b9b096a8f95b742bae9d3d761cc6/signal_sigsegv_294aaed_2039_8d1797aeb823ea43858d0fa45c9eb899.ogv

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-04 13:37:04 +01:00
Michael Niedermayer
18268f761b 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>
2015-12-04 13:37:00 +01:00
Yann Coupin
d89c4846e0 avformat/movenc: HE-AAC correct FourCC in ISML
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-04 03:52:25 +01:00
Michael Niedermayer
9696a01f12 avformat/mpjpegdec: Fix "libavformat/mpjpegdec.c:269:9: warning: passing argument 3 of av_stristart from incompatible pointer type"
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-04 03:09:00 +01:00
Vicente Olivert Riera
a27401a05b mips: rename mipsdspr1 to mipsdsp
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-04 02:35:42 +01:00
Sebastian Dröge
eb3628d87f mpegtsenc: Fix off-by-one in indexing into Opus channel mapping arrays
Fixes, CID1338323, CID1338324

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-04 02:35:20 +01:00
Michael Niedermayer
77a644e6fa avcodec/h264_direct: Check CO-POCs before use
Fixes harmless integer overflow
Fixes mozilla bug 1230286

Found-by: Tyson Smith
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-04 01:55:11 +01:00
Michael Niedermayer
cafb195604 avformat/utils: Fix "libavformat/utils.c:927:35: runtime error: signed integer overflow: -2450238577049583619 - 9223090561878065151 cannot be represented in type long long"
Fixes Mozilla bug 1229205

Found-by: Tyson Smith
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-04 00:44:06 +01:00
Rostislav Pehlivanov
ed08cbd7b1 aacenc_ltp: fix out of bounds memory access
Discovered by Coverity.
2015-12-03 23:12:37 +00:00
Michael Niedermayer
4e31176e14 avformat/riffdec: remove special case for bitrate > 32bit
AVCodecContext.bitrate is 64bit

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-03 20:20:09 +01:00
Michael Niedermayer
32bf6550cb avformat/riffdec: Initialize bitrate
Fixes CID1338334

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-03 20:20:09 +01:00
Nicolas George
085ab74972 lavf/mpegts: use AVERROR_INVALIDDATA instead of AVERROR(EINTR). 2015-12-03 19:16:12 +01:00
Nicolas George
eb2e4fb674 lavf/lxfdec: use FFERROR_REDO instead of AVERROR(EAGAIN). 2015-12-03 19:16:12 +01:00
Nicolas George
cb14d30240 lavf/mpeg: use FFERROR_REDO instead of AVERROR(EAGAIN). 2015-12-03 19:16:12 +01:00
Nicolas George
0bac7a436b lavf/flvdec: use FFERROR_REDO instead of AVERROR(EAGAIN).
Fix trac ticket #5041.
2015-12-03 19:16:12 +01:00
Nicolas George
3ab1e5a48c lavf: add FFERROR_REDO to let demuxers return no packet. 2015-12-03 19:16:12 +01:00
Timo Teräs
64f7db554e 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>
2015-12-03 17:43:30 +01:00
Martin Storsjö
1077d8c845 configure: Add -framework CoreVideo when building the avfoundation indev
This fixes builds with --disable-vda, which previously failed with
undefined references to CVImageBuffer* and CVPixelBuffer* functions.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-12-03 14:28:12 +02:00
Paul B Mahol
fff7f2df31 avfilter/af_agate: change default for detection to rms
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-03 11:07:52 +01:00
Paul B Mahol
4a43e559e1 avfilter/af_sidechaincompress: kill init function
Should make addition of process_command easier.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-03 11:07:52 +01:00
Paul B Mahol
1b22bdf4e3 avfilter/af_agate: compile agate only when requested.
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-03 11:07:52 +01:00
Paul B Mahol
6907046130 avfilter/af_agate: add level_sc option for sidechaingate filter
Also correct usage of input gain for both filters.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-03 11:07:52 +01:00
Paul B Mahol
bd5afecdcb avfilter: add sidechaingate filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-03 11:07:51 +01:00
Paul B Mahol
acc2347cf4 avfilter/af_agate: prepare for adding sidechain version
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-03 11:07:51 +01:00
Hendrik Leppkes
46db068c59 tests/api: Fix API test build on windows with --enable-shared 2015-12-03 10:21:28 +01:00
James Almer
9ac5beaa86 avformat/mpjpegdec: fix mixed declarations and code 2015-12-03 01:39:47 -03:00
Michael Niedermayer
b46dcd5209 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>
2015-12-03 04:09:48 +01:00
Michael Niedermayer
0afdfbe116 avcodec/jpeg2000: fix type of arguments of tag_tree_size
Fixes: out of array read
Fixes: 36b8096fefab16c4c9326a508053e95c/signal_sigsegv_1d9ce18_3233_1a55196b018106dfabeace071a432d9e.r3d

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-03 02:28:00 +01:00
Ganesh Ajjanagadde
d64b6c3819 avfilter/af_flanger: use rint instead of floor hack
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-02 18:31:56 -05:00
Ganesh Ajjanagadde
c6bea81acf avfilter/vf_perspective: use lrint instead of floor hack
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-02 18:31:56 -05:00
Ganesh Ajjanagadde
fa5d299496 avfilter/vsrc_mptestsrc: use lrint instead of floor hack
lrint is faster, and is more consistent across the codebase.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-02 18:31:56 -05:00
Ganesh Ajjanagadde
1bb7db217d avutil/crc: avoid needless space wastage of hardcoded crc table
There was no reason AFAIK for making AV_CRC_24_IEEE 12. This simply
resulted in wasted space under --enable-hardcoded-tables:
dynamic: 1318672 libavutil/libavutil.so.55
old    : 1330680 libavutil/libavutil.so.55
new    : 1326488 libavutil/libavutil.so.55

Minor version number is bumped, with ifdefry due to API breakage.

Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-02 18:31:56 -05:00
Michael Niedermayer
26379d4fdd 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>
2015-12-03 00:13:27 +01:00
Michael Niedermayer
ec7a3be11e avformat/utils: Move end_time1 AV_NOPTS_VALUE Check after rescale
Fixes integer overflow
Fixes: 266ee543812e934f7b4a72923a2701d4/signal_sigabrt_7ffff6ae7cc9_7322_85218d61759d461bdf7387180e8000c9.ogg

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-03 00:13:27 +01:00
Michael Niedermayer
d872643cfe avformat/utils: Check AVFormatContext->duration in compute_chapters_end() before use
Fixes integer overflow
Fixes: 266ee543812e934f7b4a72923a2701d4/signal_sigabrt_7ffff6ae7cc9_7322_85218d61759d461bdf7387180e8000c9.ogg

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-03 00:13:27 +01:00
Kylie McClain
bf12a81cc6 configure: Replace pr since it is not provided by busybox
While pr is a valid POSIX.1 command, its usage in configure
is a little borderline and is possible to replace it with
printf.

Bug-Id: 913

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-12-02 23:49:10 +01:00
Luca Barbato
5f3a081b42 avi: Spin out the logic to position to the next non-interleaved stream
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-12-02 23:49:10 +01:00
Luca Barbato
cb49bb10ca build: Move -Wcast-qual to the extra_warnings
It amounts to about 1/2 of the warnings generated and does not help
spotting anything useful.
2015-12-02 23:49:10 +01:00
Michael Niedermayer
0fc61c6ab6 avi: Validate the stream-id for DV as well
Avoid false positives while syncing.

Bug-Id: ffmpeg/4086
Bug-Id: 879

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-12-02 23:49:10 +01:00
Luca Barbato
d017ed878a avi: Use the correct data type
avio_tell returns an int64_t.
2015-12-02 23:49:10 +01:00
Paul B Mahol
b2517b02d9 avfilter/af_compand: do not clip; allow >0dB curve points
Do not clip output samples, so that clipping can be handled by other filters.
Alow setting curve points above 0dB. This is useful when operating with floats.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-02 23:41:26 +01:00
Alex Agranovsky
259c71c199 avformat/mpjpeg: utilize MIME boundary value to detect start of new frame
This code is disabled by default so not to regress endpoints sending invalid MIME, but can be enabled via AVOption 'strict_mime_boundary'

Signed-off-by: Alex Agranovsky <alex@sighthound.com>
2015-12-02 22:39:27 +01:00
Alex Agranovsky
79103f2199 avformat/mpjpeg: allow processing of MIME parts without Content-Length header
Fixes ticket 5023

Signed-off-by: Alex Agranovsky <alex@sighthound.com>
2015-12-02 22:37:32 +01:00
Michael Niedermayer
97b8db334a avutil/rational: Test av_rescale_rnd() with combinations of "special" values
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-02 21:38:11 +01:00
Michael Niedermayer
f03c2ceec1 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>
2015-12-02 21:38:11 +01:00
Michael Niedermayer
cd7524fdd1 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>
2015-12-02 21:38:11 +01:00
Ronald S. Bultje
1ac89869db vp9: always keep s->bytesperpixel and ctx->pix_fmt in sync.
Fixes mozilla bug 1229128.
2015-12-02 14:53:46 -05:00
Andreas Cadhalpun
fb1bf4454e git-howto: mention how to clone ffmpeg-web
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-12-02 20:39:18 +01:00
Tobias Rapp
bc517be6b0 Makefile: add cleanup of pkg-config files created by configure to distclean
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-12-02 18:45:49 +01:00
Carl Eugen Hoyos
d208acf2c8 lavf/rtpenc_jpeg: Less strict check for standard Huffman tables.
There can be one or more Huffman table segments DHT.

Reported-by: Andrey Utkin
2015-12-02 15:03:56 +01:00
Paul B Mahol
6670527d33 avfilter/af_stereotools: remove floor usage
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-02 12:09:06 +01:00
Paul B Mahol
c4f7b8f0db avfilter: add audio pulsator filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-02 12:09:06 +01:00
Claudio Freire
ca203e9985 AAC encoder: improve SF range utilization
This patch does 4 things, all of which interact and thus it
woudln't be possible to commit them separately without causing
either quality regressions or assertion failures.

Fate comparison targets don't all reflect improvements in
quality, yet listening tests show substantially improved quality
and stability.

1. Increase SF range utilization.

The spec requires SF delta values to be constrained within the
range -60..60. The previous code was applying that range to
the whole SF array and not only the deltas of consecutive values,
because doing so requires smarter code: zeroing or otherwise
skipping a band may invalidate lots of SF choices.

This patch implements that logic to allow the coders to utilize
the full dynamic range of scalefactors, increasing quality quite
considerably, and fixing delta-SF-related assertion failures,
since now the limitation is enforced rather than asserted.

2. PNS tweaks

The previous modification makes big improvements in twoloop's
efficiency, and every time that happens PNS logic needs to be
tweaked accordingly to avoid it from stepping all over twoloop's
decisions. This patch includes modifications of the sort.

3. Account for lowpass cutoff during PSY analysis

The closer PSY's allocation is to final allocation the better
the quality is, and given these modifications, twoloop is now
very efficient at avoiding holes. Thus, to compute accurate
thresholds, PSY needs to account for the lowpass applied
implicitly during twoloop (by zeroing high bands).

This patch makes twoloop set the cutoff in psymodel's context
the first time it runs, and makes PSY account for it during
threshold computation, making PE and threshold computations
closer to the final allocation and thus achieving better
subjective quality.

4. Tweaks to RC lambda tracking loop in relation to PNS

Without this tweak some corner cases cause quality regressions.
Basically, lambda needs to react faster to overall bitrate
efficiency changes since now PNS can be quite successful in
enforcing maximum bitrates, when PSY allocates too many bits
to the lower bands, suppressing the signals RC logic uses to
lower lambda in those cases and causing aggressive PNS.

This tweak makes PNS much less aggressive, though it can still
use some further tweaks.

Also update MIPS specializations and adjust fuzz

Also in lavc/mips/aacpsy_mips.h: remove trailing whitespace
2015-12-02 07:47:37 -03:00
Aaron Colwell
ec83efd4d3 avformat/matroskadec: Fix sample_aspect_ratio for stereo matroska content
matroskaenc.c applies divisors to the display width/height when generating
stereo content. This patch adds the corresponding multipliers to matroskadec.c
so that the original sample aspect ratio can be recovered.

Signed-off-by: wm4 <nfxjfg@googlemail.com>
2015-12-02 11:09:07 +01:00
Chris Cunningham
5e6ce28dab avformat/mp3dec: prefer "fast_seek" to TOC seek for CBR files.
"Fast seek" uses linear interpolation to find the position of the
requested seek time. For CBR this is more direct than using the
mp3 TOC and bypassing the TOC avoids problems with TOC precision.
(see https://crbug.com/545914#c13)

For VBR, fast seek is not precise, so continue to prefer the TOC
when available (the lesser of two evils).

Also, some re-ordering of the logic in mp3_seek to simplify and
give usetoc=1 precedence over fastseek flag.

Signed-off-by: wm4 <nfxjfg@googlemail.com>
2015-12-02 11:02:27 +01:00
Michael Niedermayer
e1057babdf avcodec/mpegaudio_tablegen: Add (), fix fate
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-02 03:42:44 +01:00
Ganesh Ajjanagadde
8c24380537 avfilter/af_volumedetect: use log10 instead of hardcoded constant
This is likely more precise and conveys the intent better.

Reviewed-by: Mark Harris <mark.hsj@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-01 19:31:58 -05:00
Andrey Utkin
648b26acc5 doc/filters/drawtext: fix centering example
Signed-off-by: Andrey Utkin <andrey.od.utkin@gmail.com>
Signed-off-by: Lou Logan <lou@lrcd.com>
2015-12-01 15:25:17 -09:00
Ganesh Ajjanagadde
2f5075f551 avcodec/cbrt_tablegen: speed up dynamic table creation
On systems having cbrt, there is no reason to use the slow pow function.

Sample benchmark (x86-64, Haswell, GNU/Linux):
new:
5124920 decicycles in cbrt_tableinit,       1 runs,      0 skips

old:
12321680 decicycles in cbrt_tableinit,       1 runs,      0 skips

Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-01 19:05:19 -05:00
Ganesh Ajjanagadde
1d0c94ddae avcodec/mpegaudio_tablegen: more dynamic table creation speedups
This further speeds up runtime initialization, with identical generated tables.

Sample benchmark (x86-64, Haswell, GNU/Linux):

old:
34441423 decicycles in mpegaudio_tableinit,    8192 runs,      0 skips

new:
10776291 decicycles in mpegaudio_tableinit,    8192 runs,      0 skips

Most low hanging fruit is taken care of here. For some idea, note that
83,064 array elements totalling 233,722 bytes need to be initialized.
Thus, with this patch, we average ~ 12.9 cycles per element or ~ 4.6
cycles per byte.

Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-01 19:05:19 -05:00
Ganesh Ajjanagadde
16d4c28cbb avcodec/mpegaudio_tablegen: speed up dynamic table creation
This does some miscellaneous stuff mainly avoiding the usage of pow to
achieve significant speedups. This is not speed critical, but is
unnecessary latency and cycles wasted for a user.

All tables tested and are identical to the old ones
(bit-exact even in floating point case).

Sample benchmark (x86-64, Haswell, GNU/Linux):
old:
102329530 decicycles in mpegaudio_tableinit,       1 runs,      0 skips

new:
34111900 decicycles in mpegaudio_tableinit,       1 runs,      0 skips

Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-01 19:05:19 -05:00
Ganesh Ajjanagadde
538e8ab512 avutil/tablegen: add tablegen libm compatibility shims
This is useful for build-time table generation (--enable-hardcoded-tables),
by providing compat shims for hosts that have broken libms.

This file is deliberately kept minimal; functions can always be added on
an as-needed basis.

Reviewed-by: Clément Bœsch <u@pkh.me>
Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-01 19:05:19 -05:00
Ganesh Ajjanagadde
789ef087c6 avcodec/ppc/fdctdsp: use more accurate constants
Whoever wrote this stuff had a pretty bad libm - digits differ pretty
quickly.

Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-01 19:05:19 -05:00
Michael Niedermayer
736e2e2c30 avfilter/vf_shuffleframes: Assert that the case of an uninitialized ret does not occur
Fixes CID1258479

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-01 22:00:25 +01:00
Paul B Mahol
cde75e3150 avfilter/vf_histogram: remove deprecated stuff
Remove all modes except levels mode.
Users should already switch to other filters with
extended funcionality: vectorscope and waveform.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-01 21:55:13 +01:00
Michael Niedermayer
25e37f5ea9 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>
2015-12-01 13:26:12 +01:00
Michael Niedermayer
3a9cb18855 avutil/integer: Fix av_mod_i() with negative dividend
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-01 13:26:12 +01:00
Michael Niedermayer
8e7f452022 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>
2015-12-01 13:26:03 +01:00
Ganesh Ajjanagadde
7b11eead1b avcodec/ac3: always use hardcoded tables
The table in question is a 253 byte one. In fact, it turns out that
dynamic generation of the table results in an increased binary size.

Code compiled with GCC 5.2.0, x86-64 (size in bytes), before and after
patch:
old: 62321064 libavcodec/libavcodec.so.57
new: 62320536 libavcodec/libavcodec.so.57

Thus, it always make sense to statically allocate this.

Tested with FATE with/without --enable-hardcoded-tables.

Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-30 18:29:57 -05:00
Ganesh Ajjanagadde
5a41a5a4f5 avfilter/af_compand: use hypot()
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-30 18:29:29 -05:00
Will Kelleher
0eac93da0f qsvenc: write a53 caption data to SEI
Signed-off-by: Will Kelleher <wkelleher@gogoair.com>
Previous version reviewed-by: Ivan Uskov <ivan.uskov@nablet.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-30 23:31:12 +01:00
Michael Niedermayer
a00cc2e40d ffserver: Clear avio context after closing it in rtp_new_av_stream()
Suggested-by: "Reynaldo H. Verdejo Pinochet" <reynaldo@osg.samsung.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-30 23:31:12 +01:00
Michael Niedermayer
40063a900b ffserver: Clear avio context after closing it
Fixes: ==13287== Invalid read of size 4
==13287==    at 0x45161A: flush_buffer (aviobuf.c:143)
==13287==    by 0x451971: avio_flush (aviobuf.c:200)
==13287==    by 0x512CCF: av_write_trailer (mux.c:1016)
==13287==    by 0x41A5E0: close_connection (ffserver.c:853)
==13287==    by 0x421EDC: rtsp_cmd_interrupt (ffserver.c:3245)
==13287==    by 0x420B9C: rtsp_parse_request (ffserver.c:2854)
==13287==    by 0x41A9C2: handle_connection (ffserver.c:930)
==13287==    by 0x41A04B: http_server (ffserver.c:700)
==13287==    by 0x423A60: main (ffserver.c:3897)
==13287==  Address 0xb6cd258 is 88 bytes inside a block of size 192 free'd
==13287==    at 0x4C2B5D9: free (vg_replace_malloc.c:446)
==13287==    by 0x1004DAC: av_free (mem.c:239)
==13287==    by 0x454835: avio_close_dyn_buf (aviobuf.c:1170)
==13287==    by 0x41F385: http_prepare_data (ffserver.c:2368)
==13287==    by 0x41F59B: http_send_data (ffserver.c:2416)
==13287==    by 0x41ABE2: handle_connection (ffserver.c:986)
==13287==    by 0x41A04B: http_server (ffserver.c:700)
==13287==    by 0x423A60: main (ffserver.c:3897)

Reviewed-by: "Reynaldo H. Verdejo Pinochet" <reynaldo@osg.samsung.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-30 23:31:12 +01:00
Vittorio Giovara
7f57ea143c vsrc_color: Drop unneeded variable
Bug-Id: CID 1339818
2015-11-30 10:58:46 -05:00
Mohamed Naufal
ca5f386e75 lavf: G.723.1 muxer
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-11-30 10:58:46 -05:00
Mohamed Naufal
f023d57d35 lavc: G.723.1 encoder
Additional improvements by Michael Niedermayer <michaelni@gmx.at>.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-11-30 10:58:46 -05:00
Vittorio Giovara
165cc6fb9d g723_1: Move sharable functions to a separate file
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-11-30 10:58:45 -05:00
Vittorio Giovara
aac996cc01 g723_1: Rename files to better reflect their purpose
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-11-30 10:58:45 -05:00
Michael Niedermayer
b74b88f30d g723_1: Handle values at the ends of the table in lsp2lpc()
Fixes out of array reads.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-11-30 10:58:45 -05:00
Paul B Mahol
6b978dadc6 avfilter/af_sidechaincompress: do not require writable input frames for acompressor filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-11-30 12:25:32 +01:00
Paul B Mahol
376a3bdb7b avfilter/af_sidechaincompress: add level_in and level_sc options
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-11-30 12:16:57 +01:00
Michael Niedermayer
a814f1d364 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>
2015-11-30 04:25:00 +01:00
Michael Niedermayer
891dc8f875 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>
2015-11-29 23:45:31 +01:00
Michael Niedermayer
55711e6fd0 avcodec/dnxhddec: Disable 12bit by default
The DC VLC table used is too small, fixing this requires a sample,
thus request a sample.
Some samples are said to work even though the table has the wrong size, thus
this is left enabled if the user enables experimental features.

Fixes: 2abd25478c62a675f335fac00b467023/asan_static-oob_10aff98_1227_8811480c6ef1e970a7977ceb7e5a9958.mxf

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Approved-by: kurosu
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-29 21:30:37 +01:00
Carl Eugen Hoyos
ec494e6c83 lavf/mxfdec: Set width to actual coded_width for AVCI50.
Fixes ticket #5029.
Reported and analyzed by videolan trac user HenkDemper in vlc ticket #15762.
2015-11-29 21:08:38 +01:00
Paul B Mahol
337b6d3b36 avfilter/af_sidechaincompress: fix output gain for rms(default) detection
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-11-29 19:17:05 +01:00
Claudio Freire
88e498a87e AAC encoder: make pe.min a local minimum
As noted in a comment, pe.min in the reference encoder
is centered around current pe. The bit reservoir algo
needs pe.min to be a local minimum, because it can only
account for local PE variations. If it's set to a global
minimum as was being done, bit reservoir logic doesn't
work as efficiently.

This patch tries to forget old minimums and converge to
a local minimum without losing the stability of the
previous solution. Listening tests until now suggest this
solves numerous RC issues.
2015-11-29 15:03:45 -03:00
Nicolas George
15206ffdbe ffserver: add NULL context to ff_rtsp_parse_line().
Needed after f62fe53/2c17fb6.
2015-11-29 17:02:04 +01:00
James Almer
27ce53b52d avcodec/libdcadec: require first public release
Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-11-29 12:53:14 -03:00
Matt Oliver
26a84e2dae configure: Add user options to enable gcrypt/gmp for rtmp(t)e support.
Signed-off-by: Matt Oliver <protogonoi@gmail.com>
2015-11-30 02:25:37 +11:00
Hendrik Leppkes
2ee89553aa Merge commit '0e2395293bff089536b97131b32fea8b58bca0ba'
* commit '0e2395293bff089536b97131b32fea8b58bca0ba':
  nut: Mark non-fatal errors as warnings

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-29 16:17:36 +01:00
Hendrik Leppkes
2e4d10ae55 Merge commit '62f72b40c0b0d2cd6a2b81977287fa01d9f4ca6d'
* commit '62f72b40c0b0d2cd6a2b81977287fa01d9f4ca6d':
  nut: Provide more information on failure

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-29 16:16:15 +01:00
Hendrik Leppkes
f62fe535d5 Merge commit '2c17fb61ced2059034856a6c6cd303014aed01fe'
* commit '2c17fb61ced2059034856a6c6cd303014aed01fe':
  rtsp: Log getaddrinfo failures

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-29 16:13:24 +01:00
Hendrik Leppkes
a6dac0b410 Merge commit '12b14382861fbf19378afcddaa19cd9a949a86a3'
* commit '12b14382861fbf19378afcddaa19cd9a949a86a3':
  udp: Provide additional information on getaddrinfo failure

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-29 16:12:38 +01:00
Hendrik Leppkes
bf54377001 Merge commit '34af7813f77e2b5b9dcb34f20bcf53bfcc0ba9c9'
* commit '34af7813f77e2b5b9dcb34f20bcf53bfcc0ba9c9':
  udp: Use the logging context

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-29 16:11:16 +01:00
Hendrik Leppkes
aaa4abfdb8 Merge commit '98063bcf15eb1e9bf9c8758c83c88d51cbb7ace7'
* commit '98063bcf15eb1e9bf9c8758c83c88d51cbb7ace7':
  rtsp: Do not assume getnameinfo cannot fail

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-29 16:09:58 +01:00
Hendrik Leppkes
3b55484c30 Merge commit '5b70fb8fee4af3b13f29a2dc7222fd3c9782f79b'
* commit '5b70fb8fee4af3b13f29a2dc7222fd3c9782f79b':
  movenc-test: Fix integer overflows

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-29 16:09:15 +01:00
Hendrik Leppkes
503153a967 Merge commit 'fdd5c48ebdec489ec9e84eee547fefa50c3ad53c'
* commit 'fdd5c48ebdec489ec9e84eee547fefa50c3ad53c':
  texturedsp: Explicitly cast RGBA parameters to unsigned

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-29 16:07:59 +01:00
Hendrik Leppkes
c754591677 Merge commit 'eef38316cab68aff080cf2b83c2427a734194e8d'
* commit 'eef38316cab68aff080cf2b83c2427a734194e8d':
  texturedspenc: Avoid using separate variables

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-29 16:05:50 +01:00
Hendrik Leppkes
f01a276b50 Merge commit '7831fb90503142e32cc3c9be43bc3f9d342ded6b'
* commit '7831fb90503142e32cc3c9be43bc3f9d342ded6b':
  textureencdsp: cosmetics: Use normal static const for tables

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-29 16:05:19 +01:00
Hendrik Leppkes
2876569395 Merge commit '99cb833fc2d9874c62fffbcd3347fae660de0fe5'
* commit '99cb833fc2d9874c62fffbcd3347fae660de0fe5':
  sgi: Correctly propagate meaningful error values

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-29 16:04:46 +01:00
Hendrik Leppkes
5c0dbc20fc Merge commit '823fa7004571cb8404ca5785f9fa6e85f0f9f3d3'
* commit '823fa7004571cb8404ca5785f9fa6e85f0f9f3d3':
  fate: Rework sgi tests into a suite and add the missing ones

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-29 16:00:54 +01:00
Rick Kern
2f92322bff developer.texi: Call out K&R coding style.
K&R coding style is implied but not listed in 'Coding Rules'.

Signed-off-by: Rick Kern <kernrj@gmail.com>
2015-11-29 06:54:32 -08:00
Hendrik Leppkes
7c56b8792c Merge commit '4a0918cae6394e503b17c71f8f171b4a795eb849'
* commit '4a0918cae6394e503b17c71f8f171b4a795eb849':
  sgienc: Support encoding high bit depth images with RLE

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-29 15:49:31 +01:00
Michael Niedermayer
98626a1a4c avfilter/avf_showvolume: Fix "warning: comparison of unsigned expression < 0 is always false"
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-29 15:47:42 +01:00
Hendrik Leppkes
81b73f1f97 Merge commit '59e3f4e598ae381600ef54e1f6e6a8a5270ac245'
* commit '59e3f4e598ae381600ef54e1f6e6a8a5270ac245':
  sgienc: Use a local RLE encoding function

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-29 15:45:47 +01:00
Hendrik Leppkes
e9675ed13a Merge commit '62cc8f4d79dad119e8efeaae080a58a8dcb1e89d'
* commit '62cc8f4d79dad119e8efeaae080a58a8dcb1e89d':
  sgienc: Port to bytestream2

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-29 15:44:44 +01:00
Hendrik Leppkes
ba32a22c86 Merge commit '99f40fd02f1870c2dee70977b672da9cb198f0be'
* commit '99f40fd02f1870c2dee70977b672da9cb198f0be':
  sgienc: Do not end RLE lines with 0s

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-29 15:42:33 +01:00
Hendrik Leppkes
6dce615ee2 Merge commit '4d05e9392f84702e3c833efa86e84c7f1cf5f612'
* commit '4d05e9392f84702e3c833efa86e84c7f1cf5f612':
  libvpxenc: remove some unused ctrl id mappings

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-29 15:35:11 +01:00
Hendrik Leppkes
7c4d405d40 Merge commit '6b7df14251c49331ae7efd4811ec21f4415ccdb5'
* commit '6b7df14251c49331ae7efd4811ec21f4415ccdb5':
  doc: Document better how to use MSYS2

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-29 15:33:52 +01:00
Hendrik Leppkes
bf67ae3cfa Merge commit '8375dc1dd101d51baa430f34c0bcadfa37873896'
* commit '8375dc1dd101d51baa430f34c0bcadfa37873896':
  asfdec: handle the case when the stream index has an invalid value better

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-29 15:32:39 +01:00
Hendrik Leppkes
b7855daffe Merge commit 'c12c085be7e86880924249e5cb3f898e45dee134'
* commit 'c12c085be7e86880924249e5cb3f898e45dee134':
  dcadec: Do not check for overreads in auxiliary data

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-29 15:32:27 +01:00
Hendrik Leppkes
4aa900acbd Merge commit 'c8fa647811371885be421a84a2388529857fed23'
* commit 'c8fa647811371885be421a84a2388529857fed23':
  oggparsespeex: Fix unchecked malloc

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-29 15:29:41 +01:00
Hendrik Leppkes
bbfdeec020 Merge commit 'afdff8008149515afebf9992eae84be7d76e6b1e'
* commit 'afdff8008149515afebf9992eae84be7d76e6b1e':
  configure: Clearly state that MSYS native builds are discouraged

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-29 15:28:53 +01:00
Hendrik Leppkes
93fb4a4629 Merge commit '462a54e2291e1fa18e1f1254d09739dfbb795617'
* commit '462a54e2291e1fa18e1f1254d09739dfbb795617':
  lavc: Deprecate avctx.rtp_callback field

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-29 15:26:51 +01:00
Hendrik Leppkes
da7cfef7f0 Merge commit '8a9de5c52401aa1e87bdb147524831c640d1ec53'
* commit '8a9de5c52401aa1e87bdb147524831c640d1ec53':
  doc/encoders: document the QSV option mappings

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-29 15:24:29 +01:00
Hendrik Leppkes
5bc9c7a6db Merge commit 'fc4c27c4edfc6a5f9bc7c696e823652474a65ce8'
* commit 'fc4c27c4edfc6a5f9bc7c696e823652474a65ce8':
  qsvenc: expose additional encoding options

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-29 15:22:53 +01:00
Hendrik Leppkes
24563c20f1 Merge commit 'e7d7cf86dcaba8eaaed62c80172ff0aff2588c2a'
* commit 'e7d7cf86dcaba8eaaed62c80172ff0aff2588c2a':
  qsvenc: support more RC methods

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-29 15:18:08 +01:00
Paul B Mahol
7a9b4427b5 avfilter/avf_showvolume: fix several issues
Fix color fading: previously color could fade to red when
volume level for red color was actually never reached.
Display volume value on right side.
Use red color only if clipping is needed.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-11-29 13:02:40 +01:00
Hendrik Leppkes
2ea38a946d avformat/mlpdec: consider all valid mlp access units when probing
Fixes probing of truehd/mlp files with a lot of frames in between the
major sync frames. The spec allows a distance of up to 128 frames in
between major sync frames, which leads to the probing code not reaching
the desired score.
2015-11-29 10:41:51 +01:00
Michael Niedermayer
aa427537b5 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>
2015-11-29 03:27:28 +01:00
Michael Niedermayer
abee0a1c60 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>
2015-11-28 20:10:51 +01:00
Michael Niedermayer
4f03bebc79 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>
2015-11-28 20:10:51 +01:00
Paul B Mahol
13696c3789 doc/filters: extend agate documentation
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-11-28 18:19:18 +01:00
Paul B Mahol
1685a781cd avfilter: add audio compressor filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-11-28 17:56:40 +01:00
Paul B Mahol
3f895dcb0d avfilter: add compensation delay line filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-11-28 17:56:40 +01:00
Luca Barbato
a0fa6d06b8 matroska: Warn when metadata references a non-existent element
Avoid some confusion when the information is not present.

Bug-Id: 902
2015-11-28 17:02:15 +01:00
Luca Barbato
f7986239f4 dvenc: Validate the frame size before copying it 2015-11-28 17:02:15 +01:00
Michael Niedermayer
dad354f38d 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>
2015-11-28 15:48:55 +01:00
Ganesh Ajjanagadde
79abf2d0de avcodec/aac_tablegen: get rid of hardcoded tables entirely
Commit 96786a12f6df26990bbe7c0ca4592b3731724469 makes runtime
initialization cheap.

Tested with FATE, with/without --enable-hardcoded-tables.

Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-28 09:41:15 -05:00
Michael Niedermayer
861f2b2a53 avcodec/vp3: Fix several memleaks
Fixes: 1536b9b096a8f95b742bae9d3d761cc6/signal_sigsegv_294aaed_4460_b209bd1e7cebe458b53072a44191316d.ogg

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-28 01:01:41 +01:00
Michael Niedermayer
6105b7219a 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>
2015-11-28 00:25:08 +01:00
Michael Niedermayer
d85aa76115 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>
2015-11-27 23:37:42 +01:00
Michael Niedermayer
36205501ba avcodec/pthread_slice: Allow calling ff_alloc_entries() multiple times to readjust the entry count
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-27 23:37:42 +01:00
Michael Niedermayer
d5028f61e4 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>
2015-11-27 23:37:42 +01:00
Rostislav Pehlivanov
6b40755158 aacenc: fix broken build with hardcoded tables
ff_aac_tableinit is a macro in the case of hardcoded tables, so wrap
that up in a function (similar to how the decoder template does it) and
use that as the argument for ff_thread_once().

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-11-27 21:24:42 +00:00
Michael Niedermayer
feb3f39614 avcodec/jpeg2000dwt: Check ndeclevels before calling dwt_encode*()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-27 21:02:13 +01:00
Michael Niedermayer
75422280fb 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>
2015-11-27 20:59:26 +01:00
Ganesh Ajjanagadde
8453095f3e avcodec/aac_tablegen: make exp2_lut static
Suggested-by: Clément Bœsch <u@pkh.me>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-27 13:23:35 -05:00
Michael Niedermayer
ef9f7bbfa4 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>
2015-11-27 18:53:21 +01:00
Rostislav Pehlivanov
ec0719264c aac: temporarily un-share aac_table_init AVOnce variable
AAC-Fixed decoder segfaulted. This commit makes the aac encoder
and decoder init the table twice in case of transcoding again.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-11-27 17:51:42 +00:00
Rostislav Pehlivanov
591fbd629e aactab.h: fix comment
Previous commit broke it.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-11-27 15:36:57 +00:00
Rostislav Pehlivanov
222545cc7e aactab.h: update and correct comment
Tables in that file have been used by both for a long time now.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-11-27 15:00:13 +00:00
Rostislav Pehlivanov
3d62e7a30f aacenc: make threadsafe
Since the ff_aac_tableinit() can be called by both the encoder and
the decoder (in case of transcoding) this commit shares the AVOnce
variable to prevent this.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-11-27 14:52:35 +00:00
Michael Niedermayer
8000d484b8 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>
2015-11-27 13:52:47 +01:00
Michael Niedermayer
a1f6b05f52 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>
2015-11-27 13:52:47 +01:00
Ganesh Ajjanagadde
96786a12f6 avcodec/aac_tablegen: speed up table initialization
This speeds up aac_tablegen to a ludicruous degree (~97%), i.e to the point
where it can be argued that runtime initialization can always be done instead of
hard-coded tables. The only cost is essentially a trivial increase in
the stack size.

Even if one does not care about this, the patch also improves accuracy
as detailed below.

Performance:
Benchmark obtained by looping 10^4 times over ff_aac_tableinit.

Sample benchmark (x86-64, Haswell, GNU/Linux):
old:
1295292 decicycles in ff_aac_tableinit,     512 runs,      0 skips
1275981 decicycles in ff_aac_tableinit,    1024 runs,      0 skips
1272932 decicycles in ff_aac_tableinit,    2048 runs,      0 skips
1262164 decicycles in ff_aac_tableinit,    4096 runs,      0 skips
1256720 decicycles in ff_aac_tableinit,    8192 runs,      0 skips

new:
21112 decicycles in ff_aac_tableinit,     511 runs,      1 skips
21269 decicycles in ff_aac_tableinit,    1023 runs,      1 skips
21352 decicycles in ff_aac_tableinit,    2043 runs,      5 skips
21386 decicycles in ff_aac_tableinit,    4080 runs,     16 skips
21299 decicycles in ff_aac_tableinit,    8173 runs,     19 skips

Accuracy:
The previous code was resulting in needless loss of
accuracy due to the pow being called in succession. As an illustration
of this:
ff_aac_pow34sf_tab[3]
old : 0.000000000007598092294225
new : 0.000000000007598091426864
real: 0.000000000007598091778545

truncated to float
old : 0.000000000007598092294225
new : 0.000000000007598091426864
real: 0.000000000007598091426864

showing that the old value was not correctly rounded. This affects a
large number of elements of the array.

Patch tested with FATE.

Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-27 06:38:06 -05:00
Matthieu Bouron
72eaf72623 lavf/utils: avoid decoding a frame to get the codec parameters
Avoid decoding a frame to get the codec parameters while the codec
supports FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM. This is particulary useful
to avoid decoding twice images (once in avformat_find_stream_info and
once when the actual decode is made).
2015-11-26 21:50:55 +01:00
Rostislav Pehlivanov
f5b7a29ae8 aac_ltp: actually signal LTP as off during EIGHT_SHORT windows
This hugely reduces the echo which was introduced with the previous
commit (though likely because previously everything was broken).
Makes LTP actually worthwhile now.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-11-26 18:20:42 +00:00
Rostislav Pehlivanov
1e5dbb3409 aac_ltp: split, reorder and improve prediction algorithm
This commit attempts to mirror what the decoder does more closely
in addition to fixing some shortcomings.
2015-11-26 17:40:04 +00:00
Ganesh Ajjanagadde
a239ce7074 avcodec/faandct: remove L suffixes for floating point literal
Should fix issues with ppc, tested by bug reporter.

Reported-by: John Warburton <john@johnwarburton.net>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-26 11:19:03 -05:00
Matthieu Bouron
39290f2715 fate: add FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM tests 2015-11-26 17:05:54 +01:00
Ganesh Ajjanagadde
74b79dcf51 avfilter/vsrc_mptestsrc: use hypot()
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-26 09:20:46 -05:00
Ganesh Ajjanagadde
352bd18dff avfilter/af_dynaudnorm: remove wasteful pow
This removes wasteful pow(x, 2.0) that although not terribly important
for speed, is still useless.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-26 09:20:46 -05:00
Ganesh Ajjanagadde
9ee1feaa7c avfilter/af_afade: improve accuracy and speed of gain computation
Gain computation for various curves was being done in a needlessly
inaccurate fashion. Of course these are all subjective curves, but when
a curve is advertised to the user, it should be matched as closely as
possible within the limitations of libm. In particular, the constants
kept here were pretty inaccurate for double precision.

Speed improvements are mainly due to the avoidance of pow, the most
notorious of the libm functions in terms of performance. To be fair, it
is the GNU libm that is among the worst, but it is not really GNU libm's fault
since others simply yield a higher error as measured in ULP.

"Magic" constants are also accordingly documented, since they take at
least a minute of thought for a casual reader.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-26 09:20:46 -05:00
Ganesh Ajjanagadde
68e79b27a5 avutil/lls: speed up performance of solve_lls
This is a trivial rewrite of the loops that results in better
prefetching and associated cache efficiency. Essentially, the problem is
that modern prefetching logic is based on finite state Markov memory, a reasonable
assumption that is used elsewhere in CPU's in for instance branch
predictors.

Surrounding loops all iterate forward through the array, making the
predictor think of prefetching in the forward direction, but the
intermediate loop is unnecessarily in the backward direction.

Speedup is nontrivial. Benchmarks obtained by 10^6 iterations within
solve_lls, with START/STOP_TIMER. File is tests/data/fate/flac-16-lpc-cholesky.err.
Hardware: x86-64, Haswell, GNU/Linux.

new:
  17291 decicycles in solve_lls, 2096706 runs,    446 skips
  17255 decicycles in solve_lls, 4193657 runs,    647 skips
  17231 decicycles in solve_lls, 8384997 runs,   3611 skips
  17189 decicycles in solve_lls,16771010 runs,   6206 skips
  17132 decicycles in solve_lls,33544757 runs,   9675 skips
  17092 decicycles in solve_lls,67092404 runs,  16460 skips
  17058 decicycles in solve_lls,134188213 runs,  29515 skips

old:
  18009 decicycles in solve_lls, 2096665 runs,    487 skips
  17805 decicycles in solve_lls, 4193320 runs,    984 skips
  17779 decicycles in solve_lls, 8386855 runs,   1753 skips
  18289 decicycles in solve_lls,16774280 runs,   2936 skips
  18158 decicycles in solve_lls,33548104 runs,   6328 skips
  18420 decicycles in solve_lls,67091793 runs,  17071 skips
  18310 decicycles in solve_lls,134187219 runs,  30509 skips

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-26 09:20:46 -05:00
Petri Hintukainen
7139489c45 pgssubdec: fix API compability layer
Copy pointers to AVPicture after memory has been allocated.
Fixes NULL pointers in AVPicture after a17a7661906ba295d67afd80ac0770422e1b02b3.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-11-26 10:55:36 +01:00
Luca Barbato
b0e8651a2a doc: Amend the MSYS2 Documentation
Explain better which environment is discouraged and mention the
shortcuts names.
2015-11-26 10:55:35 +01:00
Alexandre Lision
4f979418c7 avfoundation: Simple capture
Originally based on the capture written by
Thilo Borgmann <thilo.borgmann@mail.de>.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-11-26 10:55:28 +01:00
Luca Barbato
9f57f134c1 configure: ObjC support
Assume that the default C compiler and the default ObjC compiler match
(default for OSX).

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-11-26 10:39:15 +01:00
Paul B Mahol
a330430238 avfilter/vf_stack: make it possible to stop with shortest stream
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-11-26 10:02:00 +01:00
Timothy Gu
9078a694f3 aaccoder_twoloop: Mark sfdiff as av_unused
Silences warning when building without assertions

Signed-off-by: Claudio Freire <klaussfreire@gmail.com>
2015-11-26 03:46:09 -03:00
Claudio Freire
3b1cab9351 AAC encoder: fix wrong gain sacalefactor being set
In some conditions, where the first band was being zeroed
mainly, the wrong global gain scalefactor would be written
to the stream since it's always taken from the first band
regardless of whether it's been marked as zero or not.

So, always make sure it contians something useful.
2015-11-26 03:37:29 -03:00
Claudio Freire
fc36d852ee AAC encoder: Fix application of M/S with PNS
When both M/S coding and PNS are enabled, scalefactors
and coding books would be mistakenly clobbered when setting
the M/S flag on PNS'd bands. The flag needs to be set to
signal the generation of correlated noise, but the scalefactors,
coefficients and the coding books need to be kept intact.
2015-11-26 03:27:06 -03:00
Timothy Gu
04deaef293 fate-run: Fix indentation 2015-11-25 21:03:14 -08:00
Rodger Combs
362c17e656 lavf/http: fix incorrect warning in range requests 2015-11-25 19:34:01 -06:00
Michael Niedermayer
b3494e3c3e avcodec/pthread_slice: Remove rets_count
It appears rets_count is redundant

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-26 00:56:12 +01:00
James Almer
3885ef0c6c avcodec/mjpegdec: fix typo on a warning 2015-11-25 19:24:24 -03:00
Paul B Mahol
56ff563f3b avfilter: add '.' at and of long filter description where it is missing
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-11-25 22:22:17 +01:00
Paul B Mahol
142894d720 avfilter: do not leak frame if ff_get_audio_buffer() fails
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-11-25 21:59:33 +01:00
Paul B Mahol
fd3df296c1 avfilter/af_alimiter: make description a bit longer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-11-25 21:52:36 +01:00
Stefano Sabatini
5f2c233a85 doc/indevs: fix x11grab options consistency 2015-11-25 18:08:40 +01:00
Paul B Mahol
5b106215ba avfilter/af_sidechaincompress: add forgotten option
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-11-25 12:57:13 +01:00
Luca Barbato
0e2395293b nut: Mark non-fatal errors as warnings
And make one more informative.
2015-11-25 09:01:25 +01:00
Luca Barbato
62f72b40c0 nut: Provide more information on failure 2015-11-25 09:01:25 +01:00
Luca Barbato
2c17fb61ce rtsp: Log getaddrinfo failures
And forward the logging contexts when needed.
2015-11-25 09:01:25 +01:00
Luca Barbato
12b1438286 udp: Provide additional information on getaddrinfo failure 2015-11-25 09:01:25 +01:00
Luca Barbato
34af7813f7 udp: Use the logging context 2015-11-25 09:01:25 +01:00
Luca Barbato
98063bcf15 rtsp: Do not assume getnameinfo cannot fail
And properly report the error when it happens.
2015-11-25 09:01:25 +01:00
Ganesh Ajjanagadde
29af74e4e3 avutil/libm: fix isnan compatibility hack
Commit 14ea4151d7c3c26500193f11ac661ed20c7c2b9c had a bug in that the
conversion of the uint64_t result to an int (the return signature) would
lead to implementation defined behavior, and in this case simply
returned 0 for NAN. A fix via AND'ing the result with 1 does the trick,
simply by ensuring a 0 or 1 return value.

Patch tested with FATE on x86-64, GNU/Linux by forcing the compatibility
code via an ifdef hack suggested by Michael.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-24 21:33:13 -05:00
Timothy Gu
4f99308ed3 doc/indevs: Fix German 2015-11-24 18:18:12 -08:00
Timothy Gu
798920033e configure: Fix pseudo-German 2015-11-24 18:18:12 -08:00
Ganesh Ajjanagadde
990619968a avfilter/vsrc_mandelbrot: change sin to sinf for color computation
lrintf is anyway used, suggesting we only care up to floating precision.
Rurthermore, there is a compat hack in avutil/libm for this function,
and it is used in avcodec/aacps_tablegen.h.

This yields a non-negligible speedup. Sample benchmark:
x86-64, Haswell, GNU/Linux:

old (draw_mandelbrot):
274635709 decicycles in draw_mandelbrot,     256 runs,      0 skips
300287046 decicycles in draw_mandelbrot,     512 runs,      0 skips
371819935 decicycles in draw_mandelbrot,    1024 runs,      0 skips
336663765 decicycles in draw_mandelbrot,    2048 runs,      0 skips
581851016 decicycles in draw_mandelbrot,    4096 runs,      0 skips

new (draw_mandelbrot):
269882717 decicycles in draw_mandelbrot,     256 runs,      0 skips
296359285 decicycles in draw_mandelbrot,     512 runs,      0 skips
370076599 decicycles in draw_mandelbrot,    1024 runs,      0 skips
331478354 decicycles in draw_mandelbrot,    2048 runs,      0 skips
571904318 decicycles in draw_mandelbrot,    4096 runs,      0 skips

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-24 20:36:40 -05:00
Ganesh Ajjanagadde
e9c7493f19 avfilter/vsrc_mandelbrot: avoid sqrt for epsilon calculation
This rewrites into a similar expression avoiding sqrt. Similarity is
assured since sqrt(x^2 + y^2)/(x+y) lies in [1/sqrt(2), 1] for x, y > 0.

Tested on x86-64, Haswell, GNU/Linux.
Command:
ffmpeg -f lavfi -i mandelbrot -f null -

old (draw_mandelbrot):
277625266 decicycles in draw_mandelbrot,     256 runs,      0 skips
304527322 decicycles in draw_mandelbrot,     512 runs,      0 skips
377593582 decicycles in draw_mandelbrot,    1024 runs,      0 skips
338539499 decicycles in draw_mandelbrot,    2048 runs,      0 skips
583630357 decicycles in draw_mandelbrot,    4096 runs,      0 skips

new (draw_mandelbrot):
274635709 decicycles in draw_mandelbrot,     256 runs,      0 skips
300287046 decicycles in draw_mandelbrot,     512 runs,      0 skips
371819935 decicycles in draw_mandelbrot,    1024 runs,      0 skips
336663765 decicycles in draw_mandelbrot,    2048 runs,      0 skips
581851016 decicycles in draw_mandelbrot,    4096 runs,      0 skips

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-24 20:36:40 -05:00
Ganesh Ajjanagadde
81a0aec29e avcodec/aacps_tablegen: use hypot()
Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-24 20:36:40 -05:00
Ganesh Ajjanagadde
aececd11ab avcodec/aacps_tablegen_template: replace #define by typedef
See e.g https://stackoverflow.com/questions/1666353/are-typedef-and-define-the-same-in-c
for rationale.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-24 20:36:40 -05:00
Ganesh Ajjanagadde
5472de5ca8 avcodec/aac_defines: replace #define by typedef
See e.g https://stackoverflow.com/questions/1666353/are-typedef-and-define-the-same-in-c
for rationale.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-24 20:36:40 -05:00
Timothy Gu
15dcc506d7 vsrc_mandelbrot: Don't use German in comments 2015-11-24 17:33:07 -08:00
Marton Balint
839eb1c77d lavfi/select: add support for concatdec_select option
This option can be used to select useful frames from an ffconcat file which is
using inpoints and outpoints but where the source files are not intra frame
only.

Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-11-25 00:34:29 +01:00
Marton Balint
65406b0bed concatdec: add option for adding segment start time and duration metadata
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-11-25 00:34:29 +01:00
Marton Balint
ba9191ab3a concatdec: simplify duration calculation in open_next_file
If duration is still AV_NOPTS_VALUE when opening the next file, we can assume
that outpoint is not set.

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-11-25 00:34:29 +01:00
Marton Balint
8f60663c8b concatdec: calculate duration early if outpoint is known
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-11-25 00:34:29 +01:00
Michael Niedermayer
4ea4d2f438 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>
2015-11-24 22:17:36 +01:00
Michael Niedermayer
5b70fb8fee movenc-test: Fix integer overflows
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-11-24 20:57:11 +02:00
Vittorio Giovara
fdd5c48ebd texturedsp: Explicitly cast RGBA parameters to unsigned
Silences warnings when using -Wshift-overflow (GCC 6+).
Found-by: James Almer <jamrial@gmail.com>
2015-11-24 09:24:48 -05:00
Vittorio Giovara
eef38316ca texturedspenc: Avoid using separate variables
Use the result directly, removing an unneeded cast.
2015-11-24 09:24:39 -05:00
Vittorio Giovara
7831fb9050 textureencdsp: cosmetics: Use normal static const for tables 2015-11-24 09:24:30 -05:00
Vittorio Giovara
99cb833fc2 sgi: Correctly propagate meaningful error values 2015-11-24 09:05:01 -05:00
Vittorio Giovara
823fa70045 fate: Rework sgi tests into a suite and add the missing ones
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-11-24 09:05:01 -05:00
Vittorio Giovara
4a0918cae6 sgienc: Support encoding high bit depth images with RLE
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-11-24 09:05:01 -05:00
Vittorio Giovara
59e3f4e598 sgienc: Use a local RLE encoding function
SGI RLE encoding is slighlty different than the one provided by rle
module (especially at high bit depth). The pixel count function however
does not change, so it is simply made library-public.
2015-11-24 09:05:01 -05:00
Vittorio Giovara
62cc8f4d79 sgienc: Port to bytestream2 2015-11-24 09:05:01 -05:00
Vittorio Giovara
99f40fd02f sgienc: Do not end RLE lines with 0s
This is never mentioned in the specifications, and decoders work
just as fine without it. Update the fate references since the compressed
file is smaller.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-11-24 09:05:01 -05:00
Derek Buitenhuis
9c35b8e219 Merge commit 'fb8753ada23189076bdf903c1c001c0ca8287fae'
* commit 'fb8753ada23189076bdf903c1c001c0ca8287fae':
  qsvenc: factor out common options

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-11-24 13:48:28 +00:00
Timothy Gu
12a419dacb avformat/v210: Check width and height
Fixes a floating point exception when width and height are not supplied
(and therefore are zero).
2015-11-23 18:34:52 -08:00
Timothy Gu
e1a214cadf avformat/rawvideodec: Rework packet size calculation
Calculate packet size only once, and propagate errors earlier in the chain.

Also remove use of the deprecated av_image_get_buffer_size().
2015-11-23 18:33:48 -08:00
Timothy Gu
7c91b3021c imgutils: Use designated initializers for AVClass
More readable and less breakable.
2015-11-23 18:30:25 -08:00
Michael Niedermayer
e4bfc726cd avfilter/vsrc_mandelbrot: Fix speed regression
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-24 03:17:32 +01:00
Carl Eugen Hoyos
66378f70ab lavf/rawenc: Recognize more extensions to encode raw hevc.
Requested-by: Mike Brown, brown at mrvideo vidiot com
2015-11-24 02:17:54 +01:00
Michael Niedermayer
13834c1016 avcodec/mpegvideo_enc: Remove slice structured mode from H.263 as well as the code automatically enabing it
There is no such thing as a slice structured mode in the original version 1  H.263,
that mode was added in H.263+ in 1998. Also the headers for slice structured mode
are not part of the older version 1 and this would result in unplayable files

An alternative to this patch would be to merge the H263 and H263P AVCodecs and use
other means to distinguish the older and newer versions.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-23 22:47:41 +01:00
James Zern
4d05e9392f libvpxenc: remove some unused ctrl id mappings
VP8E_UPD_ENTROPY, VP8E_UPD_REFERENCE, VP8E_USE_REFERENCE were removed
from libvpx and the remaining values were never used here

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Zern <jzern@google.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-11-23 18:38:04 +01:00
Michael Niedermayer
188a1a17a6 avformat/movenc-test: Fix integer overflows
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-23 15:45:44 +01:00
Matthieu Bouron
46feb66972 swscale/arm: add ff_nv{12,21}_to_{argb,rgba,abgr,bgra}_neon
Signed-off-by: Matthieu Bouron <matthieu.bouron@stupeflix.com>
Signed-off-by: Clément Bœsch <clement@stupeflix.com>
2015-11-23 14:47:12 +01:00
Luca Barbato
6b7df14251 doc: Document better how to use MSYS2 2015-11-23 13:05:09 +01:00
Matt Oliver
e9ec28c95e avutil/x86/bswap: Remove warning about bswap intrinsics with msvc.
Signed-off-by: Matt Oliver <protogonoi@gmail.com>
2015-11-23 23:03:32 +11:00
Alexandra Hájková
8375dc1dd1 asfdec: handle the case when the stream index has an invalid value better
The demuxer returned INVALIDDATA and failed to demux the remaining data
when an invalid stream index was read, now it just skips the asf packet
for the stream with an invalid stream index and continues demuxing.

Reported-By: Hendrik Leppkes

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-11-23 11:42:55 +01:00
Tim Walker
c12c085be7 dcadec: Do not check for overreads in auxiliary data
The auxiliary data length field is not reliable,
and incorrect overread errors could be returned
for valid, real-world bitstreams.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-11-23 11:32:32 +01:00
Clément Bœsch
56bdf61baa avutil/motion_vector: export subpel motion information
FATE test changes because of the switch from shift to division.
2015-11-23 10:55:15 +01:00
Derek Buitenhuis
c8fa647811 oggparsespeex: Fix unchecked malloc
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-11-23 10:44:07 +01:00
Paul B Mahol
c7b9338853 doc/filters: mention afifo
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-11-23 10:42:23 +01:00
Paul B Mahol
04a7ce1a8c avfilter/af_afade: add missing fifo write for second stream
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-11-23 10:37:51 +01:00
Hagen Schmidt
59494863ff patcheck: Fix false detection of 'mergeable calls' when line is removed
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-23 00:34:14 +01:00
Ganesh Ajjanagadde
90ccfdb65b Revert "avcodec/dct32_template: fix typo"
This reverts commit 82c5f3178930285f84c42ab4b026ee48d53305ec.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-22 17:01:42 -05:00
Ganesh Ajjanagadde
82c5f31789 avcodec/dct32_template: fix typo
Found-by: Clément Bœsch <u@pkh.me>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-22 16:56:49 -05:00
Ganesh Ajjanagadde
61a1ca13ea avcodec/ppc/fdctdsp: use M_SQRT2 instead of ad-hoc SQRT2
This actually fixes an incorrect float literal. It is believed by
examining the precision that the literals were all pre-computed as
floats, resulting in this needless loss of precision. There is no
benefit to keeping such reduced precision:
1. These constants are used for static array computation, hence
compile-time.
2. They will be treated as doubles anyway, since f specifier was not
present.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-22 16:16:16 -05:00
Ganesh Ajjanagadde
ccf3c69403 avcodec/dct32_template: use M_SQRT1_2 instead of actual literal
Fixed point value remains unchanged.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-22 16:16:16 -05:00
Ganesh Ajjanagadde
824ba897bd avcodec/cos_tablegen: use M_PI instead of actual literal
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-22 16:16:16 -05:00
Ganesh Ajjanagadde
94565f3791 avcodec/ac3: use M_SQRT1_2, M_SQRT2
This uses M_SQRT1_2, M_SQRT2 instead of the actual literals. This yields
greater precision in some places in avcodec/ac3, while fixed point
values remain unchanged.

Reviewed-by: Clément Bœsch <u@pkh.me>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-22 16:16:16 -05:00
Ganesh Ajjanagadde
18b4016431 avfilter/vf_fspp: use M_SQRT1_2, M_SQRT2
This uses M_SQRT1_2, M_SQRT2 instead of the actual literals. Fixed point
values remain unchanged.
Patch tested with FATE on x86.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-22 16:16:16 -05:00
Ganesh Ajjanagadde
7324af651f avformat/mov: use hypot()
This simplifies the code.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-22 16:14:47 -05:00
Michael Niedermayer
764900d645 avcodec/dvdsubdec: Fix types for offset1/2 in ff_dlog()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-22 19:26:05 +01:00
Derek Buitenhuis
4613b4df31 Merge commit '3edac01f79a08635d8d2c08e9410651d9a330d61'
* commit '3edac01f79a08635d8d2c08e9410651d9a330d61':
  qsvenc: fix setting maxrate for VBR

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-11-22 17:47:21 +00:00
Derek Buitenhuis
98540a2c7d Merge commit '4d8f536b535487063a08609636e712ad86d2ad54'
* commit '4d8f536b535487063a08609636e712ad86d2ad54':
  qsvenc: print the actual video parameters used by MSDK

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-11-22 17:46:57 +00:00
Derek Buitenhuis
09f9ef8536 Merge commit 'f6c94457b44f41d900cd0991857f54e1f0ccedd6'
* commit 'f6c94457b44f41d900cd0991857f54e1f0ccedd6':
  mpegvideo_enc: enable rtp_mode when multiple slices are used

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-11-22 17:46:26 +00:00
Derek Buitenhuis
819a99ef21 Merge commit 'd80f0a4ad634b3949b91b85f21fd608c0cddeef7'
* commit 'd80f0a4ad634b3949b91b85f21fd608c0cddeef7':
  mpevideo_enc: disallow multiple slices for h261 and flv

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-11-22 17:43:26 +00:00
Derek Buitenhuis
64db3639af Merge commit 'ca489564ae150bc41764f175b88151d883e69ae0'
* commit 'ca489564ae150bc41764f175b88151d883e69ae0':
  movenc: add fallback audio track tref support

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-11-22 17:41:51 +00:00
Derek Buitenhuis
fe20e34b13 Merge commit '79ae1e630b476889c251fc905687a3831b43ab5e'
* commit '79ae1e630b476889c251fc905687a3831b43ab5e':
  avcodec: Define side data type for fallback track

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-11-22 17:41:27 +00:00
Derek Buitenhuis
ad317c94c5 Merge commit '7f4ec4364bc4a73036660c1c6a3c4801db524e9e'
* commit '7f4ec4364bc4a73036660c1c6a3c4801db524e9e':
  avformat: expose av_stream_new_side_data helper

  Conflicts:
      libavformat/internal.h

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-11-22 17:19:10 +00:00
Derek Buitenhuis
2bf93dfd96 Merge commit '21ab6fd01b9107d7171fc1a77c2bfacff845a97a'
* commit '21ab6fd01b9107d7171fc1a77c2bfacff845a97a':
  lavf: document that passing valid timestamps to muxers is now mandatory

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-11-22 17:16:13 +00:00
Derek Buitenhuis
cde68661bf Merge commit '5c30ae1a09b66179e16694f6137658023ed1fef3'
* commit '5c30ae1a09b66179e16694f6137658023ed1fef3':
  dvdsubdec: Validate the RLE offsets

  Conflicts:
      libavcodec/dvdsubdec.c

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-11-22 17:15:21 +00:00
Derek Buitenhuis
df8e24be5d Merge commit 'eda183287489b2c705843aa373a19c4e46fb2fec'
* commit 'eda183287489b2c705843aa373a19c4e46fb2fec':
  travis: Enable OSX integration

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-11-22 17:12:24 +00:00
Derek Buitenhuis
5ebaf1e1cb Merge commit '79d89cf2f4b62eeb653fd8139041c87e75f7ca65'
* commit '79d89cf2f4b62eeb653fd8139041c87e75f7ca65':
  flacenc: Clamp user-supplied min/max prediction orders

  Conflicts:
      libavcodec/flacenc.c

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-11-22 17:10:42 +00:00
Derek Buitenhuis
bba2488f07 Merge commit '4bb1070c154e49d35805fbcdac9c9e92f702ef96'
* commit '4bb1070c154e49d35805fbcdac9c9e92f702ef96':
  ffv1: Explicitly name the coder type

  Conflicts:
      libavcodec/ffv1.h
      libavcodec/ffv1dec.c
      libavcodec/ffv1enc.c

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-11-22 16:57:43 +00:00
Derek Buitenhuis
3c110b009b Merge commit '9fd2bf09dbc630484d9e88a1d27f7e8508b70a2c'
These are all no-ops.

* commit '9fd2bf09dbc630484d9e88a1d27f7e8508b70a2c':
  hqx: correct type and size check of info_offset
  dds: disable palette flag for compressed images
  segafilm: Fix current_sample after seeking and avio_seek return type

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-11-22 14:38:57 +00:00
Derek Buitenhuis
5b4be0c039 Merge commit '62b4a6f1b9aa83d56701af226adda98faa5ede09'
* commit '62b4a6f1b9aa83d56701af226adda98faa5ede09':
  rtmpcrypt: Provide the xtea keys in little endian format for consistency

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-11-22 14:38:11 +00:00
Derek Buitenhuis
e12f403678 Merge commit '588b6215b4c74945994eb9636b0699028c069ed2'
* commit '588b6215b4c74945994eb9636b0699028c069ed2':
  rtmpcrypt: Do the xtea decryption in little endian mode
  xtea: Add functions for little endian mode

  Conflicts:
      libavutil/xtea.c

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-11-22 14:29:09 +00:00
Carl Eugen Hoyos
ced39dc5ed lavc/opusdec: Fix a memleak when reading invalid files.
Reviewed-by: James Almer
2015-11-22 01:49:18 +01:00
Carl Eugen Hoyos
f5074dd39c lavc/rscc: Fix colourspace for codec_tag RSCC. 2015-11-22 01:44:18 +01:00
Luca Barbato
afdff80081 configure: Clearly state that MSYS native builds are discouraged
MSYS, as per cygwin, by default uses a custom posix abstraction
in the form of a "msys2.dll". Programs build that way are harder to
distribute and use.

MSYS2 provides alternate launcher scripts that provide a MINGW
environment nearly out of box.
2015-11-21 22:18:57 +01:00
Paul B Mahol
16195aad75 avformat/vpk: check samples_per_block size
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-11-21 21:58:24 +01:00
Paul B Mahol
8b1bc2b075 avformat: add FSB demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-11-21 21:03:51 +01:00
Ganesh Ajjanagadde
401c93ddb7 avutil/eval: change sqrt to hypot
This improves the mathematical behavior of hypotenuse computation.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-21 08:51:49 -05:00
Ganesh Ajjanagadde
275aca8fba configure+libm.h: add hypot emulation
It is known that the naive sqrt(x*x + y*y) approach for computing the
hypotenuse suffers from overflow and accuracy issues, see e.g
http://www.johndcook.com/blog/2010/06/02/whats-so-hard-about-finding-a-hypotenuse/.
This adds hypot support to FFmpeg, a C99 function.

On platforms without hypot, this patch does a reaonable workaround, that
although not as accurate as GNU libm, is readable and does not suffer
from the overflow issue. Improvements can be made separately.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-21 08:51:49 -05:00
Ganesh Ajjanagadde
14ea4151d7 avutil/libm: correct isnan, isinf compat hacks
isnan and isinf are actually macros as per the standard. In particular,
the existing implementation has incorrect signature. Furthermore, this
results in undefined behavior for e.g double values outside float range
as per the standard.

This patch corrects the undefined behavior for all usage within FFmpeg.

Note that long double is not handled as it is not used in FFmpeg.
Furthermore, even if at some point long double gets used, it is likely
not needed to modify the macro in practice for usage in FFmpeg. See
below for analysis.

Getting long double to work strictly per the spec is significantly harder
since a long double may be an IEEE 128 bit quad (very rare), 80 bit
extended precision value (on GCC/Clang), or simply double (on recent Microsoft).
On the other hand, any potential future usage of long double is likely
for precision (when a platform offers extra precision) and not for range, since
the range anyway varies and is not as portable as IEEE 754 single/double
precision. In such cases, the implicit cast to a double is well defined
and isinf and isnan should work as intended.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-21 08:51:49 -05:00
Ganesh Ajjanagadde
8ffb3f08c6 avcodec/amr: replace #define by typedef
See e.g https://stackoverflow.com/questions/1666353/are-typedef-and-define-the-same-in-c
for rationale.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-21 08:51:49 -05:00
Daniil Cherednik
6662ca28d4 avcodec/atrac1: fix decoder: QMF delay compensation should be 39 samples
This also adds a new fate test

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-21 11:38:45 +01:00
Timothy Gu
f2d9ae6e49 avformat/utils: Fix indentation 2015-11-20 21:33:46 -08:00
Andreas Cadhalpun
1c3e43a627 aacsbr: don't call sbr_dequant twice without intermediate read_sbr_data
Doing that doesn't make sense, because the only purpose of sbr_dequant
is to process the data from read_sbr_data.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-11-20 23:25:24 +01:00
Vittorio Giovara
462a54e229 lavc: Deprecate avctx.rtp_callback field
This function returns the encoded data of a frame, one slice at a time
directly when that slice is encoded, instead of waiting for the full
frame to be done. However this field has a debatable usefulness, since
it looks like it is just a convoluted way to get data at lowest
possible latency, or a somewhat hacky way to store h263 in RFC-2190
rtp encapsulation.

Moreover when multi-threading is enabled (which is by default) the order
of returned slices is not deterministic at all, making the use of this
function not reliable at all (or at the very least, more complicated
than it should be).

So, for the reasons stated above, and being used by only a single encoder
family (mpegvideo), this field is deemed unnecessary, overcomplicated,
and not really belonging to libavcodec. Libavformat features a complete
implementation of RFC-2190, for any other case.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-11-20 21:05:20 +01:00
Paul B Mahol
b885d9ced5 avformat/rsd: implement seeking
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-11-20 20:52:37 +01:00
Michael Niedermayer
9b7d39de81 avformat/ffmdec: Only return EAGAIN if a server is attached
This should fix a infinite loop

Reviewed-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-20 20:08:26 +01:00
Michael Niedermayer
e33d372023 ffserver: Use AVOption API to access ffm demuxer instead of direct access depending on ABI
server_attached is newly added so the demuxer knows if there is an attached server
that can update the write index. This is needed to fix a infinite loop

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-20 20:03:12 +01:00
Michael Niedermayer
3444c00aab avformat/ffmdec: Add cleaner API for ffserver to interface without depending on internal ABI
Reviewed-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-20 20:01:05 +01:00
Rodger Combs
bf2590aed3 ffmpeg: fix -copy_prior_start 0 with -copyts and input -ss
Also rearranged the relevant check to reduce code duplication

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-20 19:20:30 +01:00
Maksym Veremeyenko
acb430e4d3 avformat/flvenc: Add aac_seq_header_detect and flvflags
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-20 18:18:56 +01:00
Maksym Veremeyenko
d21b690e55 ffmpeg: preserve profile for audio stream copy
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-20 18:09:47 +01:00
Clément Bœsch
6679fcd419 avformat/assdec: allow ASS files starting with empty lines
See https://github.com/mpv-player/mpv/issues/2506
2015-11-20 14:41:56 +01:00
Ganesh Ajjanagadde
7769e6602d avfilter/af_dynaudnorm: use M_PI
The ad-hoc pi constant has a ludicrous number of digits that offer no
value whatsoever. M_PI is more consistent and readable across the
codebase.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-20 08:29:56 -05:00
Ganesh Ajjanagadde
2db114ec3f tests/tiny_ssim: replace #define by typedef
See e.g https://stackoverflow.com/questions/1666353/are-typedef-and-define-the-same-in-c
for rationale.

Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-20 08:25:23 -05:00
Ganesh Ajjanagadde
8d48c37006 avcodec/faanidct: replace #define by typedef
See e.g https://stackoverflow.com/questions/1666353/are-typedef-and-define-the-same-in-c
for rationale.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-20 08:20:53 -05:00
Ganesh Ajjanagadde
736845b0cd avcodec/resample2: replace #define by typedef
See e.g https://stackoverflow.com/questions/1666353/are-typedef-and-define-the-same-in-c
for rationale.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-20 08:20:30 -05:00
Ganesh Ajjanagadde
fafb10c30c avcodec/lpc: replace #define by typedef
See e.g https://stackoverflow.com/questions/1666353/are-typedef-and-define-the-same-in-c
for rationale.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-20 08:20:13 -05:00
Ganesh Ajjanagadde
47eeb001e6 avcodec/ac3: replace #define by typedef
See e.g https://stackoverflow.com/questions/1666353/are-typedef-and-define-the-same-in-c
for rationale.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-20 08:19:55 -05:00
wm4
9747219958 avcodec/h264, videotoolbox: do not return invalid frames on failure
If videotoolbox_common_end_frame failed, then the AVFrame was returned
to the API user with the dummy buffer (in AVFrame.buf[0]) still set, and
the decode call indicating success.

These "half-set" AVFrames with dummy buffer are a videotoolbox specific
hack, because the decoder requires an allocated AVFrame for its internal
logic. Videotoolbox on the other hand allocates its frame itself
internally, and outputs it only on end_frame. At this point, the dummy
buffer is replaced with the real frame (unless decoding fails).
2015-11-20 11:30:18 +01:00
Anton Khirnov
8a9de5c524 doc/encoders: document the QSV option mappings 2015-11-20 09:30:26 +01:00
Anton Khirnov
fc4c27c4ed qsvenc: expose additional encoding options 2015-11-20 09:29:50 +01:00
Anton Khirnov
e7d7cf86dc qsvenc: support more RC methods 2015-11-20 09:29:13 +01:00
Anton Khirnov
fb8753ada2 qsvenc: factor out common options 2015-11-20 09:26:12 +01:00
Anton Khirnov
3edac01f79 qsvenc: fix setting maxrate for VBR 2015-11-20 09:25:58 +01:00
Anton Khirnov
4d8f536b53 qsvenc: print the actual video parameters used by MSDK 2015-11-20 09:23:22 +01:00
Anton Khirnov
f6c94457b4 mpegvideo_enc: enable rtp_mode when multiple slices are used
Currently, multiple slices with just one thread produce corrupted
output.

Additionally, enable slice structured mode for h263(+)

Bug-Id: 912
CC: libav-stabl@libav.org
2015-11-20 09:22:59 +01:00
Anton Khirnov
d80f0a4ad6 mpevideo_enc: disallow multiple slices for h261 and flv
They do not work and produce corrupted output.

CC: libav-stable@libav.org
2015-11-20 09:22:48 +01:00
Michael Niedermayer
8eadabf941 avcodec/aacsbr_fixed: Replace a noise_facs_q check by an av_assert0
The replaced check should have become redundant

Found-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-20 03:46:43 +01:00
Michael Niedermayer
03a34ef7a9 avcodec/sbr: fix copy and paste error
Found-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-20 03:46:43 +01:00
Andreas Cadhalpun
1ed7fcd42a 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>
2015-11-20 00:50:06 +01:00
Paul B Mahol
9fb8c5d853 avformat: add VPK demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-11-19 20:42:04 +01:00
James Almer
183827e689 avformat/rsd: reindent after the last commit
Signed-off-by: James Almer <jamrial@gmail.com>
2015-11-19 16:06:01 -03:00
James Almer
01c63e69f1 avformat/rsd: GADP files are adpcm_thp_le
Signed-off-by: James Almer <jamrial@gmail.com>
2015-11-19 16:00:16 -03:00
Derek Buitenhuis
3d2363fbf9 Merge commit '1fc94724f1fd52944bb5ae571475c621da4b77a0'
* commit '1fc94724f1fd52944bb5ae571475c621da4b77a0':
  xtea: Clarify that the current API works in big endian mode

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-11-19 14:14:20 +00:00
Derek Buitenhuis
443b3c03e8 Merge commit '7b2211bfc4b0c4568180a8db2478023c42d9ff51'
These are all no-op merges.

* commit '7b2211bfc4b0c4568180a8db2478023c42d9ff51':
  dds: add missing newline to log messages
  dds: validate compressed source buffer size
  dds: validate source buffer size before copying

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-11-19 14:13:29 +00:00
Derek Buitenhuis
f7c3ec3a01 Merge commit 'b5f963bfec1f452c37eee900c7b11f065d10dd60'
* commit 'b5f963bfec1f452c37eee900c7b11f065d10dd60':
  mov: Drop dref when unable to parse

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-11-19 14:11:45 +00:00
Derek Buitenhuis
218f46fc99 Merge commit '303f931938c618668f7f83c646a1850bef84641e'
* commit '303f931938c618668f7f83c646a1850bef84641e':
  mov: Correctly store dref paths

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-11-19 14:10:40 +00:00
Derek Buitenhuis
8f63355f8f Merge commit 'e25cac50e05d29a15d7a52c01c394ba913c97aee'
* commit 'e25cac50e05d29a15d7a52c01c394ba913c97aee':
  lavc: Add missing mem.h header to libxvid and screenpresso

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-11-19 14:08:42 +00:00
Derek Buitenhuis
c638475282 Merge commit '73b03249133d6631520089798087cbd963eed9ca'
* commit '73b03249133d6631520089798087cbd963eed9ca':
  aiff: Support demuxing G.722 streams

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-11-19 14:07:23 +00:00
Michael Niedermayer
58fba4b02f avcodec/aacsbr: Replace a noise_facs_q check by an av_assert0
The replaced check should have become redundant

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-19 13:52:05 +01:00
Michael Niedermayer
d877b88f51 avcodec/aacsbr_template: Check values read in read_sbr_noise()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-19 13:12:43 +01:00
Michael Niedermayer
bfd0e02dd6 avcodec/aacsbr: Split pre dequantization noise factors table
This allows removing a special case for the fixed point decoder and will
make error checks simpler

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-19 13:12:20 +01:00
Michael Niedermayer
50ce510ac4 avcodec/pthread_slice: remove dummy_ret hack
This should avoid some tsan warnings

Found-by: Chris Cunningham <chcunningham@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-19 00:41:25 +01:00
Andreas Cadhalpun
047bf82c18 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>
2015-11-18 23:54:24 +01:00
Michael Niedermayer
6f37226b68 avcodec/h264_slice: Clear top_borders on allocation
In case of bitstream errors the deblock filter and slices can access uninitialized
top_borders from previous slices which did not fill them as they stoped halfway due
to error or where entirely missing.

This also makes code using these tables deterministic in case of missing or damaged
slices

Found-by: Tyson Smith
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-18 22:18:01 +01:00
Michael Niedermayer
fc91eeab0b avutil/mem: Add av_fast_mallocz()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-18 22:05:16 +01:00
Derek Buitenhuis
518742bc21 Merge commit '5f2c8315b3c1b28da0386fddb118ad6a0ed77a0c'
This is a no-op.

* commit '5f2c8315b3c1b28da0386fddb118ad6a0ed77a0c':
  thp: set duration for audio stream too

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-11-18 16:46:57 +00:00
Derek Buitenhuis
bdcf2b6af6 Merge commit '1d62ee38894afb696674db78cee8f8d89204a8fe'
* commit '1d62ee38894afb696674db78cee8f8d89204a8fe':
  movenc: Add a unit test for signaling of the track start times

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-11-18 16:43:32 +00:00
Derek Buitenhuis
3e0daf0716 Merge commit 'bef3b1f59f036aba4a5fe599b2480f6bd9e6b280'
* commit 'bef3b1f59f036aba4a5fe599b2480f6bd9e6b280':
  movenc: Allow setting start_dts/start_cts before writing actual packets

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-11-18 16:40:16 +00:00
Derek Buitenhuis
e73a4d8491 movenc-test: Pad the packet data start with 0s
This way, it never starts with 0xFFF0, and never trips the
ADTS "Detection" code in movenc.c.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-11-18 16:37:58 +00:00
Michael Niedermayer
3a4d8281c6 avformat/genh: Fix tools/probetest failure
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-18 14:45:51 +01:00
Bryan Huh
0be48dd9bb avformat/dashenc: Add framerate to dash manifest
DASH manifest should have framerate specified as an attribute in the
AdaptationSet element and Representation elements. Though ISO/IEC
23009-1:2014 doesn't seem to define frameRate as a required attribute,
it is at least optional, and DASH-IF IOP 3.0 seems to require it. See
section 3.2.4 of http://dashif.org/w/2015/04/DASH-IF-IOP-v3.0.pdf

In the event that avg_frame_rate is not set in the muxer, we ignore the
frameRate tag altogther.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-18 14:46:35 +01:00
Paul B Mahol
35bbc1955a avformat: add IVR demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-11-18 12:54:02 +01:00
John Stebbins
ca489564ae movenc: add fallback audio track tref support
This feature allows making associations between audio tracks
that apple players recognize.  E.g. when an ac3 track has a
tref that points to an aac track, devices that don't support
ac3 will automatically fall back to the aac track.

Apple used to *guess* these associations, but new products
(AppleTV 4) no longer guess and this association can only
be made explicitly now using the "fall" tref.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-11-18 11:38:03 +01:00
John Stebbins
79ae1e630b avcodec: Define side data type for fallback track
This side data type is meant to be added to AVStream side data.
A fallback track indicates an alternate track to use when the
current track can not be decoded for some reason.  e.g. no
decoder available for codec.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-11-18 11:37:27 +01:00
John Stebbins
7f4ec4364b avformat: expose av_stream_new_side_data helper
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-11-18 11:36:27 +01:00
Anton Khirnov
21ab6fd01b lavf: document that passing valid timestamps to muxers is now mandatory
Also, extend the documentation about setting timestamps.
2015-11-18 11:31:40 +01:00
Ganesh Ajjanagadde
e9aea6d7cf avcodec/faandct: use typedef instead of #define
See e.g https://stackoverflow.com/questions/1666353/are-typedef-and-define-the-same-in-c
for rationale.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-17 16:33:54 -05:00
Ganesh Ajjanagadde
3fb32ae2cf avformat/rtpdec_mpa_robust: change assignment to inequality test in conditional
In the spirit of commit 8199908fdf9b3797cceaea9d1e2fc09d02ef7309, likely
typo originally.

Found by enabling -Wparentheses on clang 3.7 and running a manual audit.
To the best of my knowledge, no such instances remain.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-17 16:30:15 -05:00
Michael Niedermayer
a5034b324c 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>
2015-11-17 19:02:28 +01:00
Luca Barbato
5c30ae1a09 dvdsubdec: Validate the RLE offsets
CC: libav-stable@libav.org
2015-11-17 18:56:29 +01:00
Vittorio Giovara
eda1832874 travis: Enable OSX integration 2015-11-17 16:51:00 +01:00
Derek Buitenhuis
f6e5b17abb Merge commit '3eeb7edfc2a1157b7b0e0ce21ac2cd44d55d405b'
* commit '3eeb7edfc2a1157b7b0e0ce21ac2cd44d55d405b':
  movenc: Add a unit test for frag_discont with edit lists

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-11-17 14:57:20 +00:00
Derek Buitenhuis
6c9fb32ae4 Merge commit '09e431b9e3674804172e7b0a0f865b65ec09739a'
* commit '09e431b9e3674804172e7b0a0f865b65ec09739a':
  movenc: Assume streams starting at pts=0 for discontinuous fragments with editlists

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-11-17 14:55:22 +00:00
Michael Niedermayer
bf6d41d8a2 avcodec/internal: Fix skiped typo
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-17 01:23:10 +01:00
James Almer
88e381c807 fate: update fate-source reference file
Signed-off-by: James Almer <jamrial@gmail.com>
2015-11-16 21:12:01 -03:00
James Almer
9e3b39ed69 avformat/movenc-test: fix copyright header
Signed-off-by: James Almer <jamrial@gmail.com>
2015-11-16 20:54:30 -03:00
Michael Niedermayer
a62178be80 avcodec/pngdec: Replace assert by request for sample for unsupported TRNS cases
Fixes assertion failure
Fixes: 7f646252a30ee28b583aac1f82e7985e/signal_sigabrt_7ffff6ae7cc9_7353_62fc077bf2f454d39e188c69807193a6.png

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-16 18:48:02 +01:00
Marton Balint
bcac6416b8 fate: fix concat demuxer extended test portability
Sed \r is not portable, it does not work on freebsd, hopefully tr -d will.

Signed-off-by: Marton Balint <cus@passwd.hu>
2015-11-16 17:55:48 +01:00
Derek Buitenhuis
61344c04ca Merge commit '59e8ec0aa8ab174701d01a3bfe96fedd0b7fcead'
All diferences in unit tests have been acounted for.

* commit '59e8ec0aa8ab174701d01a3bfe96fedd0b7fcead':
  movenc: Add an API unit test for fragmenting options/calls

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-11-16 16:19:27 +00:00
Vittorio Giovara
79d89cf2f4 flacenc: Clamp user-supplied min/max prediction orders
This mimics what the code does internally for default order values.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-11-16 16:56:42 +01:00
Ganesh Ajjanagadde
8adff79b6d avformat/mov: remove redundant assignment
This is possibly undefined behavior based on sequence point rules, but I
have not studied the spec at that level of detail.

Fixes: CID 1338321.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-16 07:42:48 -05:00
Ganesh Ajjanagadde
f0197e1637 avformat/mov: fix memory leak
Fixes: CID 1338328.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-16 07:41:33 -05:00
Vittorio Giovara
4bb1070c15 ffv1: Explicitly name the coder type
FFv1 uses two types of coders, golomb and range with two different
tables. This is exposed this in a rather convoluted way, for example
mentioning to set coder type 1 while initializing the variable 'ac' to 2,
because encoder does not use range coder with default table.

Appropriate internal coder type values have been added and used in any
check rather than using raw numbers.

Initialization of avctx.coder_type in ffv1dec is removed because this
field is encoder only. An unneeded validation check in the encoder
is dropped too.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-11-16 12:56:31 +01:00
Andreas Cadhalpun
9fd2bf09db 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.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-11-16 12:56:03 +01:00
Bryan Huh
a01ba7f579 avformat/aviobuf: Simplify avio_read() and avio_seek()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-16 12:14:03 +01:00
Bryan Huh
a01c24e8c5 avformat/aviobuf: Improve readability of aviobuf (Add comments and docs)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-16 12:14:03 +01:00
Marton Balint
c9944f7596 fate: fix concat demuxer extended tests on windows
Line endings do matter to md5sum...

Signed-off-by: Marton Balint <cus@passwd.hu>
2015-11-16 11:05:21 +01:00
Marton Balint
9bd4f26b55 fate: fix concat demuxer tests on msys/cygwin by using relative paths
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-11-16 11:05:19 +01:00
Bryan Huh
1fe82abac7 ffmpeg: Simplify fps code related to delta0
Small refactor of fps code for improved readability. In particular
the "cor" variable was unnecessary and misleading because it would
always be set to -delta0.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-16 01:53:47 +01:00
Bryan Huh
dfa98c4f83 ffmpeg: Fixing typos and adding comments to fps code
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-16 01:53:47 +01:00
Hagen Schmidt
7bf465abf3 mpegtsenc: add vc-1 support to MPEG-TS muxer (ticket 2141)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-16 00:34:12 +01:00
Michael Niedermayer
1ef336e912 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>
2015-11-15 23:42:24 +01:00
Michael Niedermayer
0eb7de1973 avcodec/jpeg2000: Change coord to 32bit to support larger than 32k width or height
Fixes: 03e0abe721b1174856d41a1eb5d6a896/signal_sigabrt_7ffff6ae7cc9_3813_e71bf3541abed3ccba031cd5ba0269a4.avi

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-15 22:11:05 +01:00
Michael Niedermayer
65d3359fb3 avcodec/jpeg2000dec: Fix potential integer overflow with tile dimensions
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-15 21:36:19 +01:00
Michael Niedermayer
6ef819c40b 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>
2015-11-15 21:36:19 +01:00
Michael Niedermayer
a1a8cbcb35 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>
2015-11-15 20:53:22 +01:00
Michael Niedermayer
016fd413f9 avcodec/jpeg2000: Use av_image_check_size() in ff_jpeg2000_init_component()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-15 20:53:22 +01:00
Marton Balint
a01046c90c fate: add concat demuxer tests
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-11-15 19:22:46 +01:00
Michael Niedermayer
7ad698e24e 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>
2015-11-15 18:32:22 +01:00
Ganesh Ajjanagadde
0bd0af6e68 swresample/resample: remove redundant L for floating literal
It is inherently double precision, and 1.0 is perfectly represented
anyway.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-15 10:26:43 -05:00
Ganesh Ajjanagadde
064ced5dc1 avcodec/faandct: use more accurate constants
This guarantees a "best effort precision".

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-15 10:26:26 -05:00
Rainer Hochecker
2d8c2f1a28 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>
2015-11-15 15:39:23 +01:00
Michael Niedermayer
4a9af07a49 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>
2015-11-15 15:25:51 +01:00
Andreas Cadhalpun
6a69a175e7 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>
2015-11-15 10:26:48 +01:00
Matthieu Bouron
0cdc77f104 lavc/pngdec: set FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM capability 2015-11-15 10:13:24 +01:00
Matthieu Bouron
ad0203d7b0 lavc/mjpegdec: set FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM capability 2015-11-15 10:13:24 +01:00
Matthieu Bouron
e162542e15 lavc/internal: add FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM
The decoder extracts and fills its parameters even if the frame is
skipped due to the skip_frame setting.
2015-11-15 10:13:00 +01:00
Michael Niedermayer
5c3dee7dad avutil: Move av_rint64_clip_* to internal.h
The function is renamed to ff_rint64_clip()

This should avoid build failures on VS2012
Feel free to changes this to a different solution

Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-15 03:47:09 +01:00
Michael Niedermayer
08b520636e 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>
2015-11-15 01:23:25 +01:00
Michael Niedermayer
76b6f4b7d9 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>
2015-11-15 00:32:19 +01:00
Michael Niedermayer
9caa9414cc 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>
2015-11-15 00:26:01 +01:00
Michael Niedermayer
a105f52855 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>
2015-11-14 22:51:30 +01:00
Andreas Cadhalpun
603ebab8d7 dds: disable palette flag for compressed dds
Having both is not valid and can cause a NULL pointer dereference of
frame->data[1] later.

Reviewed-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-11-14 21:52:11 +01:00
Michael Niedermayer
ebf5264cd6 avcodec/pgssubdec: Check dimensions for 0
Fixes division by 0
Fixes: b293a6479bb4b5286cff24d356bfd955/asan_generic_225c3c9_7819_cc526b657450c6cdef1371b526499626.mkv

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-14 18:26:11 +01:00
Michael Niedermayer
ac6ab77741 avcodec/rscc: Check input size for raw mode
Fixes out of array read
Fixes: 7fcd09eadd046e326d8ea0af66f166c8/asan_heap-oob_4a52e5_2273_fa6078a10dd575df266fb1e0b4114cd5.avi

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-14 18:26:11 +01:00
Ganesh Ajjanagadde
618b3ae7d4 avcodec/simple_idct: use predefined M_SQRT2
M_SQRT2 is defined in math.h, or in avutil/mathematics.h for
compatibility hacks. This uses this value instead of a floating literal.

Fixed point values produced by C_FIX(), R_FIX() remain identical.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-14 10:58:39 -05:00
Ganesh Ajjanagadde
11f0acf829 avcodec/mpegaudio: use predefined M_SQRT2
M_SQRT2 is defined in math.h, or in avutil/mathematics.h for
compatibility hacks. This uses this value instead of an ad-hoc define.

Fixed point values produced by FIX() remain identical.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-14 10:58:39 -05:00
Ganesh Ajjanagadde
c5fa42c69a avcodec/mpegvideo: use predefined M_PI
M_PI is defined in math.h, or in avutil/mathematics.h for compatibility
hacks. This uses this value instead of an ad-hoc floating literal.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-14 10:58:39 -05:00
Ganesh Ajjanagadde
f1726ad1b0 avcodec/ratecontrol: use predefined M_E
M_E is defined in math.h, or in avutil/mathematics.h for compatibility
hacks. This uses this value instead of an ad-hoc define.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-14 10:58:39 -05:00
Michael Niedermayer
c8aaae8e0f 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>
2015-11-14 16:12:15 +01:00
Hendrik Leppkes
4c8d86eb18 avformat: implement SChannel SSP TLS protocol
This implementation does not support TLS listen sockets and loading
CA/Certs from files.

The Windows API does not support loading PEM certs, and would either
require a manual loader or instead be limited to loading Windows PFX
certificates

TLS listen sockets would have to be implemented quite separately, as many
of the APIs are different for server-mode (as opposed to client mode).
2015-11-14 14:31:58 +01:00
Michael Niedermayer
17705f5d4f 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>
2015-11-14 13:34:52 +01:00
Michael Niedermayer
e04126072e 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>
2015-11-14 13:23:14 +01:00
Michael Niedermayer
ccba8aaff2 avcodec/avrndec: Use the AVFrame format instead of the context
Fixes out of array read
Fixes: 20dd01398dee0f6d83d7e5410a2ae8eb/signal_sigsegv_39eeb1f_4001_62efbdf1c60748dabf1ec310b59525fd.mov

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-14 13:06:25 +01:00
Ganesh Ajjanagadde
6f520ce1a6 avutil/common: add av_rint64_clip
The rationale for this function is reflected in the documentation for
it, and is copied here:

Clip a double value into the long long amin-amax range.
This function is needed because conversion of floating point to integers when
it does not fit in the integer's representation does not necessarily saturate
correctly (usually converted to a cvttsd2si on x86) which saturates numbers
> INT64_MAX to INT64_MIN. The standard marks such conversions as undefined
behavior, allowing this sort of mathematically bogus conversions. This provides
a safe alternative that is slower obviously but assures safety and better
mathematical behavior.
API:
@param a value to clip
@param amin minimum value of the clip range
@param amax maximum value of the clip range
@return clipped value

Note that a priori if one can guarantee from the calling side that the
double is in range, it is safe to simply do an explicit/implicit cast,
and that will be far faster. However, otherwise this function should be
used.

avutil minor version is bumped.

Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-13 21:48:16 -05:00
Andreas Cadhalpun
0a8bff788b dds: disable palette flag for compressed images
Having both is not valid and can cause a NULL pointer dereference of
frame->data[1] later.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-11-14 03:40:20 +01:00
Michael Niedermayer
2fb6e1e754 segafilm: Fix current_sample after seeking and avio_seek return type
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-14 03:39:44 +01:00
Michael Niedermayer
df91aa034b 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>
2015-11-14 02:37:12 +01:00
Michael Niedermayer
4e16ad2868 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>
2015-11-14 01:38:15 +01:00
Michael Niedermayer
44a7f17d0b 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>
2015-11-14 00:58:54 +01:00
Martin Storsjö
62b4a6f1b9 rtmpcrypt: Provide the xtea keys in little endian format for consistency
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-11-13 21:54:04 +02:00
Martin Storsjö
588b6215b4 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.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-11-13 21:53:57 +02:00
Martin Storsjö
92d107a171 xtea: Add functions for little endian mode
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-11-13 21:53:54 +02:00
Martin Storsjö
1fc94724f1 xtea: Clarify that the current API works in big endian mode
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-11-13 21:53:51 +02:00
Bryan Huh
d07585f04a avformat/async: Fix bug where async could not recover after seek to eof
When async issues its inner seek via ffurl_seek, it treats failures as
EOF being reached. This is not consistent with the behavior of other
protocols (e.g. http, cache) which continue to tolerate reads after
failed seeks, and therefore does not interact correctly with them.

A common pattern where this manifests itself is where avio_seek is
called with pos to be the end-of-file - the http range-request would
fail here, and async would set io_eof_reached to 1. The background
thread would then refuse to read more bytes, and subsequent reads would
only empty the fifo and end in an error.

Presumably the code may have expected subsequent seeks to unset the
io_eof_reached but this is not guaranteed to be true - a subsequent seek
that lands in the AVIOContext's buffer (the fact that the
previously-failed avio_seek leaves the AVIOContext's buffer intact also
suggests that follow-up reads are expected to be tolerated) would not be
issued to the async_seek function, and when that buffer is drained only
async_read calls would follow, leading to the same error just described.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-13 12:43:22 +01:00
Michael Niedermayer
5324109dd7 avformat/segafilm: Fix current_sample after seeking and avio_seek return type
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 23:37:21 +01:00
Michael Niedermayer
0106a20aea avformat/mux: Rename compute_pkt_fields2(), the name is absolutely terrible
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 23:06:32 +01:00
KO Myung-Hun
6248f23859 os2threads: Add pthread_once()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 22:31:46 +01:00
Will Kelleher
b1a32429ef hevc: Fix a53 caption extraction
Just realized my previous patch doesn't work quite right.  I uploaded a better
sample file that actually has visible captions to /incoming/hevc_cc.ts.  I
tested with that file doing hevc->x264 and it works.

This is basically an exact copy of the existing h264 logic.

Signed-off-by: Will Kelleher <wkelleher@gogoair.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-12 13:16:25 +01:00
Matt Oliver
58d32c00be avutil/x86/intmath: Fix intrinsic header include when using newer gcc with older icc.
Signed-off-by: Matt Oliver <protogonoi@gmail.com>
2015-11-12 16:54:08 +11:00
Matt Oliver
9b9c9ef3b4 avutil/x86/bswap: Add msvc bswap instrinsics.
This adds msvc optimisations as well as fixing an error in icl whereby it will generate invalid code otherwise.

Signed-off-by: Matt Oliver <protogonoi@gmail.com>
2015-11-12 16:53:44 +11:00
Andreas Cadhalpun
7b2211bfc4 dds: add missing newline to log messages
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-11-12 04:39:14 +01:00
Vittorio Giovara
b5f963bfec mov: Drop dref when unable to parse
Some entries might be either empty or contain types we do not parse
(eg. 'url '). In both cases, if an 'alis' is not the first entry,
external references are not loaded, so make sure that the array starts
with an 'alis' dref.
2015-11-12 04:39:14 +01:00
Vittorio Giovara
303f931938 mov: Correctly store dref paths
Rather than reading the alternate absolute path version from dref
type 18, make sure that 0s are considered as '/'. These values are
sometimes present in the full path, and are mistakenly interpreted as
line terminators othewise.

With the correct handling of this dref type, parsing type 18 is not
needed any more.
2015-11-12 04:39:14 +01:00
Vittorio Giovara
e25cac50e0 lavc: Add missing mem.h header to libxvid and screenpresso 2015-11-12 04:39:14 +01:00
Carl Eugen Hoyos
73b0324913 aiff: Support demuxing G.722 streams 2015-11-12 04:39:14 +01:00
Paul B Mahol
5f2c8315b3 thp: set duration for audio stream too
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-11-12 04:39:14 +01:00
Andreas Cadhalpun
29b1752861 dds: validate compressed source buffer size
A too small buffer will cause segfaults somewhere below
decompress_texture_thread.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-11-12 04:39:14 +01:00
Andreas Cadhalpun
e6459c655e dds: validate source buffer size before copying
If it is too small av_image_copy_plane segfaults.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-11-12 04:39:14 +01:00
Martin Storsjö
1d62ee3889 movenc: Add a unit test for signaling of the track start times
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-11-11 22:53:42 +02:00
Martin Storsjö
bef3b1f59f movenc: Allow setting start_dts/start_cts before writing actual packets
By writing a zero-sized packet, the caller can communicate the
start_dts/start_cts for the stream without actually writing
the first packet.

This allows doing random-access writing of fragments when the
start dts of the stream isn't zero, so that the edit list in the moov
is written based on timestamps from the nominal start time signaled
via the zero-sized packet, while the first proper packet written
corresponds to a later fragment.

To avoid potential unexpected behaviour, empty packets only set
start_dts if the frag_discont flag is set.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-11-11 22:53:31 +02:00
Martin Storsjö
3eeb7edfc2 movenc: Add a unit test for frag_discont with edit lists
This tests the case where the muxer correctly guesses that a stream
starts at pts=0.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-11-11 22:52:53 +02:00
Martin Storsjö
09e431b9e3 movenc: Assume streams starting at pts=0 for discontinuous fragments with editlists
This allows producing fragments discontinously where the video
stream has b-frames (but starts at pts=0), but doesn't work for the
cases with audio with preroll.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-11-11 22:52:36 +02:00
Andreas Cadhalpun
edd0c1d78a dds: add missing newline to log messages
Reviewed-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-11-11 21:49:51 +01:00
Andreas Cadhalpun
9a37d47644 dds: validate compressed source buffer size
A too small buffer will cause segfaults somewhere below
decompress_texture_thread.

Reviewed-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-11-11 21:49:51 +01:00
Andreas Cadhalpun
1675809d2d dds: validate source buffer size before copying
If it is too small av_image_copy_plane segfaults.

Reviewed-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-11-11 21:49:51 +01:00
Andreas Cadhalpun
0e36a14a42 aacsbr_fixed: check for envelope scalefactors overflowing
This prevents various values from getting an insanely huge exponent.
If someone knows a cleaner solution, thats welcome!

This is similar to commit 8978c74 for aacsbr.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-11-11 21:49:51 +01:00
Michael Niedermayer
2ec18db75c ffserver: Replace one malloc(AVStream) by avformat_new_stream()
This fixes a null pointer dereference from the recently introduced
AVStream->internal

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-11 21:26:50 +01:00
Michael Niedermayer
351e625d60 swresample/resample: increase precision for compensation
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-11 18:17:18 +01:00
Michael Niedermayer
6770a9d689 ffmpeg: Fix integer overflow with cur_dts being AV_NOPTS_VALUE
Since de0e219a8aba72de201e85385c746cd1c04be1a2 cur_dts is sometimes invalid
2015-11-11 17:46:19 +01:00
Michael Niedermayer
64e220beb5 ffserver: Do not add or rescale AV_NOPTS_VALUE from the demuxer
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-11 15:13:37 +01:00
Michael Niedermayer
363673fbe0 ffmpeg: Print a warning if a pkt duration is already set before using the frame rate
I didnt find any case that triggers this but if it gets triggered it needs to be
investigated

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-11 15:04:21 +01:00
Michael Niedermayer
46070cc20a ffmpeg: set muxer packet duration based on framerate only for CFR
a set ost->frame_rate does not imply CFR in ffmpeg

The changed fate tests had all wrong packet durations
(like 1/1000 or 1/90000)

There might be more cases in which is_cfr could be set

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-11 15:04:21 +01:00
Hendrik Leppkes
9ffc61b125 Merge commit '8ad5124b7ecf7f727724e270a7b4bb8c7bcbf6a4'
* commit '8ad5124b7ecf7f727724e270a7b4bb8c7bcbf6a4':
  movenc: Automatically flush after writing the initial moov

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-11 15:03:36 +01:00
Hendrik Leppkes
1f185ed897 Merge commit 'db9b7321d5dfcbaf521d46beec44cf724776c70d'
* commit 'db9b7321d5dfcbaf521d46beec44cf724776c70d':
  vsrc_color: implement frame rate

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-11 15:02:32 +01:00
Hendrik Leppkes
51a3e52593 Merge commit '1339009c4924a20e872aa62897097bf5d071157c'
* commit '1339009c4924a20e872aa62897097bf5d071157c':
  vf_showinfo: show timebase & framerate too

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-11 15:01:15 +01:00
Hendrik Leppkes
1b86a6bb2c Merge commit '11f87ca71e9c7b917f594194f827fd040d1df5ca'
* commit '11f87ca71e9c7b917f594194f827fd040d1df5ca':
  vf_frei0r: also set AVFilterLink.frame_rate

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-11 14:59:23 +01:00
Hendrik Leppkes
1cb78a0dcf Merge commit '7d12cba95ca15198a930c05458dc414ac00c578b'
* commit '7d12cba95ca15198a930c05458dc414ac00c578b':
  vf_framepack: Check and update frame_rate

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-11 14:58:33 +01:00
Hendrik Leppkes
b2a8c8538d Merge commit '65e73bc60f98dc7b26c687e145dfb755d3f2ccfa'
* commit '65e73bc60f98dc7b26c687e145dfb755d3f2ccfa':
  vf_interlace: implement frame rate

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-11 14:57:32 +01:00
Hendrik Leppkes
ef636aacf5 Merge commit '018bdaed37d2f1735dbecfc58309a1a164abadd5'
* commit '018bdaed37d2f1735dbecfc58309a1a164abadd5':
  setpts: add FRAME_RATE constant

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-11 14:56:53 +01:00
Hendrik Leppkes
3ce3973e5c Merge commit '5e91a5c5cf1db88f254b4c358eb1b06ff6ca274f'
* commit '5e91a5c5cf1db88f254b4c358eb1b06ff6ca274f':
  testsrc: set output framerate

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-11 14:52:27 +01:00
Hendrik Leppkes
cb98712866 Merge commit '9df477e03ef74068f3de130adc4dd34349a16ef2'
* commit '9df477e03ef74068f3de130adc4dd34349a16ef2':
  yadif: update frame rate

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-11 14:50:33 +01:00
Hendrik Leppkes
4e8f1c6fb0 Merge commit '1062880d69a4fdc8d8929dd5c22bb447182f1c41'
* commit '1062880d69a4fdc8d8929dd5c22bb447182f1c41':
  vf_fps: set frame_rate.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-11 14:49:30 +01:00
Hendrik Leppkes
6375ba827a Merge commit '61fb67dcb2e71a268c422fc19d366040e59fb337'
* commit '61fb67dcb2e71a268c422fc19d366040e59fb337':
  buffersrc: accept the frame rate as argument.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-11 14:48:34 +01:00
Hendrik Leppkes
0b73d0ff0d Merge commit '48ff6683ba5d40b629428673b1028e8ec542a9fa'
* commit '48ff6683ba5d40b629428673b1028e8ec542a9fa':
  lavfi: add a frame_rate field to AVFilterLink.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-11 14:47:29 +01:00
Hendrik Leppkes
b33d58c31f Merge commit '79f5347a983342e2711ca8ba19ec3d8d151183f0'
* commit '79f5347a983342e2711ca8ba19ec3d8d151183f0':
  avcodec: fix doxy placement

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-11 14:41:49 +01:00
Hendrik Leppkes
611c22140a Merge commit '8de1ee9f725aa3c550f425bd3120bcd95d5b2ea8'
* commit '8de1ee9f725aa3c550f425bd3120bcd95d5b2ea8':
  lavf: deprecate compute_pkt_fields2

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-11 14:37:48 +01:00
Hendrik Leppkes
c03ffe1712 avformat/utils: re-factor freeing AVStreams
This matches the Libav signature and simplifies merging future changes.
2015-11-11 14:36:53 +01:00
Paul B Mahol
2905c51204 avformat/rsd: XMA2 is actually stored, not XMA1
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-11-11 09:31:44 +01:00
Michael Niedermayer
8f3a960353 ffmpeg_filter: remove redundant null ptr check
Fixes: CID1338331

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-11 01:51:52 +01:00
Michael Niedermayer
1b539fbfe3 avfilter/avf_showcqt: Fix uninitialized return code
Fixes CID1322329

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-11 01:07:45 +01:00
Michael Niedermayer
4819446eae avcodec/webvttdec: Fix uninitialized use of variable "again"
Fixes CID1338336
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-11 00:40:37 +01:00
Andreas Cadhalpun
f621749d11 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>
2015-11-11 00:39:47 +01:00
Matt Oliver
9105399060 avutil/x86/intmath: Disable use of tzcnt on older intel compilers.
ICC versions older than atleast 12.1.6 dont have the tzcnt intrinsics.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Matt Oliver <protogonoi@gmail.com>
2015-11-11 10:18:08 +11:00
Bryan Huh
85e3c31fd5 avformat/mov: Add option to ignore chapters during parsing
Chapter-indexing can be expensive since chapters may be interspersed
throughout the entire file and may require many seeks - especially
costly when consuming a video over a remote protocol like http.
Furthermore it is often unnecessary, especially when only trying to get
video info (e.g. via ffprobe).

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-10 23:45:19 +01:00
Michael Niedermayer
d9726893f3 avformat/mxfenc: Only store user comment related tags when needed
Also support disabling them as they seem to cause problems to some
Users. They are also not allowed in IRT D-10 thus the default for
mxf_d10 is not to write them

This also decreases the filesize when no user comment are stored

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-10 23:27:51 +01:00
Ni Hui
3ea60c505f avcodec/gifdec: skip the data lzw consumed
this fixes the return code of avcodec_decode_video2 for gif decoding
and the gif frame data buffer is skipped properly

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-10 23:21:27 +01:00
Ni Hui
c75640e9c9 avcodec/lzw: ff_lzw_decode_tail() now returns the consumed bytes in lzw decompress
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-10 23:21:27 +01:00
Andreas Cadhalpun
7b67fe20f6 brstm: reject negative sample rate
A negative sample rate causes assertion failures in av_rescale_rnd.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-11-10 22:06:26 +01:00
Paul B Mahol
9c66428016 avcodec/wmaprodec: XMA1 actually have packet sequence numbers
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-11-10 21:24:30 +01:00
Martin Storsjö
59e8ec0aa8 movenc: Add an API unit test for fragmenting options/calls
Contrary to the normal fate tests that run via avconv, this tests
nontrivial call sequences that are only doable via the API
(mainly for different corner cases when using the muxer for
segmenting).

The test muxes fake packet data (with extradata that looks
enough like proper data to make the file be viewable with e.g.
boxdumper) and checks the hash of the produced files. The test also
verifies that fragments produced via different call sequences remain
identical (to avoid e.g. updating the output hashes and suddenly
having fragments that used to be identical suddenly diverging), for
fragments written with frag_discont and/or delay_moov.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-11-10 21:50:25 +02:00
Martin Storsjö
8ad5124b7e movenc: Automatically flush after writing the initial moov
In most other cases when writing fragmented mp4 files, the output
IO context is flushed after each fragment. Also flush it after
writing the initial moov, to have it behave in the same way.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-11-10 21:46:03 +02:00
Paul B Mahol
5b349c8d7c aviflter/vf_waveform: speed up non-color filters
Remove loops, output is also more interesting.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-11-10 20:42:13 +01:00
Paul B Mahol
4e583eda5f avformat/wavdec: allow data chunk to be before fmt/xma2 chunk
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-11-10 19:42:21 +01:00
Paul B Mahol
a0f75c46d3 avformat/wavdec: parse XMA2 tag
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-11-10 19:42:21 +01:00
Hendrik Leppkes
3df9ec5ce7 Merge commit 'aeda1121c91395d1f0d434bc7f227423aa2ff97d'
* commit 'aeda1121c91395d1f0d434bc7f227423aa2ff97d':
  lavf: factor out freeing an AVStream

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-10 18:42:08 +01:00
Hendrik Leppkes
d3d4bc4784 Merge commit '3efd71b4d0b4a73ccbbbdc092e6bbd54d92633f4'
* commit '3efd71b4d0b4a73ccbbbdc092e6bbd54d92633f4':
  avconv: set packet duration for CFR video streams

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-10 18:37:25 +01:00
Hendrik Leppkes
de0e219a8a Merge commit 'a0c71a575109f123978e345fa7eb4ac03cd4d3c3'
* commit 'a0c71a575109f123978e345fa7eb4ac03cd4d3c3':
  lavf: initialize cur_dts to AV_NOPTS_VALUE for muxing

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-10 18:23:22 +01:00
Hendrik Leppkes
23277aa24c Merge commit 'cc96018c79cd4dc823e0cef938da2131e4660fe5'
* commit 'cc96018c79cd4dc823e0cef938da2131e4660fe5':
  libopenh264enc: Set AVOption data type

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-10 18:19:15 +01:00
Hendrik Leppkes
947447bfdc Merge commit 'fcc49924db6c5530a3346c45a6999244d92eaf48'
* commit 'fcc49924db6c5530a3346c45a6999244d92eaf48':
  vdpau: Remove a spurious CONFIG_H263_VDPAU_HWACCEL

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-10 18:18:17 +01:00
Hendrik Leppkes
42a088784b Merge commit '563e6d860391bac0511984e5c0842320b5c94d2d'
* commit '563e6d860391bac0511984e5c0842320b5c94d2d':
  segafilm: drop the "song and dance" for cinepak

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-10 18:18:05 +01:00
Hendrik Leppkes
0e29820cd1 Merge commit '1e791ee3aae63122afb10cbabe86a747aea58992'
* commit '1e791ee3aae63122afb10cbabe86a747aea58992':
  segafilm: set video and audio stream duration

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-10 18:17:02 +01:00
Hendrik Leppkes
b3453f44ed Merge commit 'c012c6f1a8b34828a7870dc1854422934f14b79a'
* commit 'c012c6f1a8b34828a7870dc1854422934f14b79a':
  segafilm: implement seeking

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-10 18:16:11 +01:00
Hendrik Leppkes
43266457b4 Merge commit '2ec112f71cd03ccab1b6f9a00d29199a57bcc7a5'
* commit '2ec112f71cd03ccab1b6f9a00d29199a57bcc7a5':
  vf_pad: fix x, y option expression evaluation

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-10 18:13:46 +01:00
Hendrik Leppkes
240ac53a5c Merge commit 'e2854e731f843906d9a9a5b882bed872341999fd'
* commit 'e2854e731f843906d9a9a5b882bed872341999fd':
  avresample: Document avresample_open() a little better

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-10 18:07:41 +01:00
Hendrik Leppkes
df06cb5611 Merge commit 'f128b8e19ac7f702adae899ab91cc1e80f238761'
* commit 'f128b8e19ac7f702adae899ab91cc1e80f238761':
  mov: detect cover art pictures by content

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-10 18:01:36 +01:00
Hendrik Leppkes
3a8b37c590 Merge commit '50d2a3b5f34e6f99e5ffe17f2be5eb1815555960'
* commit '50d2a3b5f34e6f99e5ffe17f2be5eb1815555960':
  flashsv: Initialize the block array

Not merged, blocks are already zeroed when appropriate.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-10 18:00:51 +01:00
Hendrik Leppkes
0c1a6f577b Merge commit 'de41b555cdea2dcacbe98ee9edc83a8c15c73c4c'
* commit 'de41b555cdea2dcacbe98ee9edc83a8c15c73c4c':
  truemotion2: Fix the buffer check

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-10 17:58:14 +01:00
Hendrik Leppkes
446ac80ea5 Merge commit '4a326923381f2bc0fb7d960c8f8366a5456bc4ab'
* commit '4a326923381f2bc0fb7d960c8f8366a5456bc4ab':
  mimic: Always return on failure

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-10 17:56:48 +01:00
Hendrik Leppkes
b40e43c5c4 Merge commit '452d659aa4a742106c70ffe9ef3df47ef5b81ea6'
* commit '452d659aa4a742106c70ffe9ef3df47ef5b81ea6':
  msnwc_tcp: Use the correct return values

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-10 17:56:14 +01:00
Hendrik Leppkes
618817b6a8 Merge commit 'f8d10511fef0bb3265f2d7bdfd38f90f60731d80'
* commit 'f8d10511fef0bb3265f2d7bdfd38f90f60731d80':
  cosmetics: msnwc_tcp: Reformat

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-10 17:55:25 +01:00
Hendrik Leppkes
2e82d51714 Merge commit '4dfbc7a7559ccab666a8fd39de4224eb4b02c768'
* commit '4dfbc7a7559ccab666a8fd39de4224eb4b02c768':
  msnwc_tcp: Correctly report failure

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-10 17:54:06 +01:00
Hendrik Leppkes
8600fef123 Merge commit '60f50374f1955442dc987abc4a6c61c2109620c2'
* commit '60f50374f1955442dc987abc4a6c61c2109620c2':
  rpza: Check the blocks left before processing one

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-10 17:50:51 +01:00
Hendrik Leppkes
2503aa6bd9 Merge commit '0b699920f3c0b2e30969b38ce59226653f9d80ec'
* commit '0b699920f3c0b2e30969b38ce59226653f9d80ec':
  lagarith: Correctly compute hash_shift

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-10 17:43:17 +01:00
Hendrik Leppkes
d786cdff1c Merge commit '1e7ff5ac6923996f7292c82f102c68384fbc9d97'
* commit '1e7ff5ac6923996f7292c82f102c68384fbc9d97':
  nut: Use the correct codec_tag when multiple are available

Not merged since ffnutenc handles the codec_tag differently

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-10 17:38:09 +01:00
James Almer
9f4a41bf99 avutil/softfloat: use abort() instead of av_assert0(0)
Fixes compilation of host tool aacps_fixed_tablegen.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-11-10 13:37:24 -03:00
Michael Niedermayer
6e3244fb09 avcodec/g729postfilter: Avoid function calls in FFMAX() arguments
This avoid double calling functions

Found-by: Muhammad Faiz <mfcc64@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-10 15:44:46 +01:00
wm4
dafe4cd29c mmaldec: send only a single EOS packet on flushing
Fixes apparent mmal_port_disable() freezes in ffmmal_stop_decoder() when
calling ffmmal_decode() with flush semantics a large number of times in
a row.
2015-11-10 13:47:37 +01:00
Michael Niedermayer
8a024f6a43 avcodec/aacsbr_fixed: Try to initialize sum[0..1] differently to fix build with VS2012
Found-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-10 13:34:27 +01:00
Timothy Gu
480bad7c6d avformat: Add v210[x] demuxer
Allows one to do:

    ffmpeg -s 1920x1080          -i blah.v210 ...
    ffmpeg -s 1920x1080 -f v210x -i blah.yuv10 ...

Fixes #1869.

Reviewed-by: James Almer <jamrial@gmail.com>
Reviewed-by: Kieran Kunhya <kierank@obe.tv>
2015-11-09 20:44:25 -08:00
Michael Niedermayer
b83c849e87 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 c7e14a279fa7348db10ec824bb2d67858cb1c1ca

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-10 04:53:47 +01:00
Andreas Cadhalpun
d7f29bfa69 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>
2015-11-10 02:12:38 +00:00
Andreas Cadhalpun
ef7fe9851e aacps: avoid division by zero in stereo_processing
This fixes a SIGFPE crash in the aac_fixed decoder.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-11-10 01:33:24 +00:00
Ganesh Ajjanagadde
6c2dbff7f0 ffserver: fix incorrect strlcpy usage
Somewhat ironic that this "safe" interface is actually being used
unsafely here. This fixes the usage preventing potential null pointer
dereference, where the old code was doubly broken: ctime can return
NULL, and ctime can return an arbitrarily long buffer.

Reviewed-by: Mark Harris <mark.hsj@gmail.com>
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-09 19:30:26 -05:00
Ganesh Ajjanagadde
cf491a925e swresample/resample: speed up Blackman Nuttall filter
This may be a slightly surprising optimization, but is actually based on
an understanding of how math libraries compute trigonometric functions.
Explanation is given here so that future development uses libm more effectively
across the codebase.

All libm's essentially compute transcendental functions via some kind of
polynomial approximation, be it Taylor-Maclaurin or Chebyshev.
Correction terms are added via polynomial correction factors when needed
to squeeze out the last bits of accuracy. Lookup tables are also
inserted strategically.

In the case of trigonometric functions, periodicity is exploited via
first doing a range reduction to an interval around zero, and then using
some polynomial approximation.

This range reduction is the most natural way of doing things - else one
would need polynomials for ranges in different periods which makes no
sense whatsoever.

To avoid the need for the range reduction, it is helpful to feed in
arguments as close to the origin as possible for the trigonometric
functions. In fact, this also makes sense from an accuracy point of view:
IEEE floating point has far more resolution for small numbers than big ones.

This patch does this for the Blackman-Nuttall filter, and yields a
non-negligible speedup.

Sample benchmark (x86-64, Haswell, GNU/Linux)
test: fate-swr-resample-dblp-2626-44100
old:
18893514 decicycles in build_filter (loop 1000),     256 runs,      0 skips
18599863 decicycles in build_filter (loop 1000),     512 runs,      0 skips
18445574 decicycles in build_filter (loop 1000),    1000 runs,     24 skips

new:
16290697 decicycles in build_filter (loop 1000),     256 runs,      0 skips
16267172 decicycles in build_filter (loop 1000),     512 runs,      0 skips
16251105 decicycles in build_filter (loop 1000),    1000 runs,     24 skips

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-09 18:41:32 -05:00
Ganesh Ajjanagadde
b87ca4bf25 swresample/resample: speed up upsampling by precomputing sines
When upsampling, factor is set to 1 and sines need to be evaluated only
once for each phase, and the complexity should not depend on the number
of filter taps. This does the desired precomputation, yielding
significant speedups. Hard guarantees on the gain are not possible, but gains
themselves are obvious and are illustrated below.

Sample benchmark (x86-64, Haswell, GNU/Linux)
test: fate-swr-resample-dblp-2626-44100
old:
29161085 decicycles in build_filter (loop 1000),     256 runs,      0 skips
28821467 decicycles in build_filter (loop 1000),     512 runs,      0 skips
28668201 decicycles in build_filter (loop 1000),    1000 runs,     24 skips

new:
14351936 decicycles in build_filter (loop 1000),     256 runs,      0 skips
14306652 decicycles in build_filter (loop 1000),     512 runs,      0 skips
14299923 decicycles in build_filter (loop 1000),    1000 runs,     24 skips

Note that this does not statically allocate the sin lookup table. This
may be done for the default 1024 phases, yielding a 512*8 = 4kB array
which should be small enough.
This should yield a small improvement. Nevertheless, this is separate from
this patch, is more ambiguous due to the binary increase, and requires a
lut to be generated offline.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-09 18:41:03 -05:00
Simon Thelen
b02201efb5 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>
2015-11-09 23:43:11 +01:00
Simon Thelen
70fb5eadc5 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>
2015-11-09 23:43:11 +01:00
Bryan Huh
72f9a6349c avformat/cache: Avoid int-overflow in cache compare function
cache protocol indexes its cache using AVTreeNodes which require a cmp
function for inserting and searching new cache-entries. This cmp
function expects a 32-bit int return value (negative, zero, or positive)
but the cache cmp function returns an int64_t which can overflow the
int, giving negative numbers for when it should be positive, vice versa.
This manifests itself only for very large files (e.g. 4GB+)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-09 19:25:05 +01:00
Agatha Hu
ddbad15898 avcodec/nvenc: update nvenc default parameters
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2015-11-09 13:05:02 +01:00
Matt Oliver
f984174512 avutil/x86/intmath: Correct intrinsic headers for older compilers.
Signed-off-by: Matt Oliver <protogonoi@gmail.com>
2015-11-09 21:40:33 +11:00
Paul B Mahol
0cfd4a993f avformat/rsd: add XMA support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-11-09 10:41:38 +01:00
John Stebbins
db9b7321d5 vsrc_color: implement frame rate
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-11-09 08:15:26 +01:00
Michael Niedermayer
1339009c49 vf_showinfo: show timebase & framerate too
(cherry picked from ffmpeg commit fdb93996811bacfa7b82995cdc0f93c46f3dc6cc)
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-11-09 08:15:23 +01:00
Michael Niedermayer
11f87ca71e vf_frei0r: also set AVFilterLink.frame_rate
(cherry picked from ffmpeg commit 353cf95f948ef7c6139c8ead79e9eeb9eb8d2e6e)
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-11-09 08:09:42 +01:00
Michael Niedermayer
7d12cba95c vf_framepack: Check and update frame_rate
(cherry picked from ffmpeg commit a46a23d30fea9c8a5570e07ec4d9c9b4eaa6eb4f)
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-11-09 08:09:41 +01:00
Michael Niedermayer
65e73bc60f vf_interlace: implement frame rate
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from ffmpeg commit 227b4458fb434875b127a0c2306fa3b899a770bf)
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-11-09 08:09:41 +01:00
Stefano Sabatini
018bdaed37 setpts: add FRAME_RATE constant
Useful for dealing with constant frame-rate video.

(cherry picked from ffmpeg commit 722762f7e1212b4d02142778fabfdd73375722e0)

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-11-09 08:09:41 +01:00
Stefano Sabatini
5e91a5c5cf testsrc: set output framerate
(cherry picked from ffmpeg commit 7cd5fa35fecc2717223459d04822faed6bbd40fa)

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-11-09 08:09:41 +01:00
Michael Niedermayer
9df477e03e yadif: update frame rate
(cherry picked from ffmpeg commit 31619584556466e4beab98e9b04ed4c5ba0db178)
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-11-09 08:09:41 +01:00
Nicolas George
1062880d69 vf_fps: set frame_rate.
(cherry picked from ffmpeg commit 0d249316043fb69a3972029bff3a2969689ba8b6)

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-11-09 08:09:41 +01:00
Nicolas George
61fb67dcb2 buffersrc: accept the frame rate as argument.
(cherry picked from ffmpeg commit 9ca440679dc535b31edd569393d8d3dda59db90e)

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-11-09 08:09:41 +01:00
Nicolas George
48ff6683ba lavfi: add a frame_rate field to AVFilterLink.
(cherry picked from ffmpeg commit 7b42036b3b23c85f473bf9369e37fa8da22eaf93)

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-11-09 08:09:34 +01:00
Anton Khirnov
79f5347a98 avcodec: fix doxy placement 2015-11-09 07:52:20 +01:00
Anton Khirnov
8de1ee9f72 lavf: deprecate compute_pkt_fields2
All encoders set pts and dts properly now (and have been doing that for
a while), so there is no good reason to do any timestamp guessing in the
muxer.

The newly added AVStreamInternal will be later used for storing all the
private fields currently living in AVStream.
2015-11-09 07:50:55 +01:00
Ganesh Ajjanagadde
a5202bc968 swresample/resample: improve bessel function accuracy and speed
This improves accuracy for the bessel function at large arguments, and this in turn
should improve the quality of the Kaiser window. It also improves the
performance of the bessel function and hence build_filter by ~ 20%.
Details are given below.

Algorithm: taken from the Boost project, who have done a detailed
investigation of the accuracy of their method, as compared with e.g the
GNU Scientific Library (GSL):
http://www.boost.org/doc/libs/1_52_0/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html.
Boost source code (also cited and licensed in the code):
https://searchcode.com/codesearch/view/14918379/.

Accuracy: sample values may be obtained as follows. i0 denotes the old bessel code,
i0_boost the approach here, and i0_real an arbitrary precision result (truncated) from Wolfram Alpha:
type "bessel i0(6.0)" to reproduce. These are evaluation points that occur for
the default kaiser_beta = 9.

Some illustrations:
bessel(8.0)
i0      (8.000000) = 427.564115721804739678191254
i0_boost(8.000000) = 427.564115721804796521610115
i0_real (8.000000) = 427.564115721804785177396791

bessel(6.0)
i0      (6.000000) = 67.234406976477956163762428
i0_boost(6.000000) = 67.234406976477970374617144
i0_real (6.000000) = 67.234406976477975326188025

Reason for accuracy: Main accuracy benefits come at larger bessel arguments, where the
Taylor-Maclaurin method is not that good: 23+ iterations
(at large arguments, since the series is about 0) can cause
significant floating point error accumulation.

Benchmarks: Obtained on x86-64, Haswell, GNU/Linux via a loop calling
build_filter 1000 times:
test: fate-swr-resample-dblp-44100-2626

new:
995894468 decicycles in build_filter(loop 1000),     256 runs,      0 skips
1029719302 decicycles in build_filter(loop 1000),     512 runs,      0 skips
984101131 decicycles in build_filter(loop 1000),    1024 runs,      0 skips

old:
1250020763 decicycles in build_filter(loop 1000),     256 runs,      0 skips
1246353282 decicycles in build_filter(loop 1000),     512 runs,      0 skips
1220017565 decicycles in build_filter(loop 1000),    1024 runs,      0 skips

A further ~ 5% may be squeezed by enabling -ftree-vectorize. However,
this is a separate issue from this patch.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-08 21:18:16 -05:00
Ganesh Ajjanagadde
1bed09a30e swresample: allow double precision beta value for the Kaiser window
Kaiser windows inherently don't require beta to be an integer. This was
an arbitrary restriction. Moreover, soxr does not require it, and in
fact often estimates beta to a non-integral value.

Thus, this patch allows greater flexibility for swresample clients.
Micro version is updated.

Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-08 21:11:07 -05:00
Andreas Cadhalpun
9ac61e73d0 softfloat: handle INT_MIN correctly in av_int2sf
Otherwise v=INT_MIN doesn't get normalized and thus triggers av_assert2
in other functions.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-11-08 21:06:40 +01:00
Andreas Cadhalpun
f3866a14c3 softfloat: assert when the argument of av_sqrt_sf is negative
The correct result can't be expressed in SoftFloat.
Currently it returns a random value from an out of bounds read.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-11-08 21:05:21 +01:00
Kyle Swanson
6a11c7f160 avfilter: add anoisesrc
Signed-off-by: Kyle Swanson <k@ylo.ph>
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-11-08 18:50:26 +01:00
Michael Niedermayer
955cdc43a3 avutil/softfloat: Include negative numbers in cmp/gt tests
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-08 15:04:05 +01:00
Michael Niedermayer
05b05a7a84 avutil/softfloat: Fix av_gt_sf() with large exponents try #2
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-08 15:03:28 +01:00
Michael Niedermayer
791ea23e57 avutil/softfloat: Add test for av_gt_sf()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-08 15:02:05 +01:00
Michael Niedermayer
ecfb076141 avutil/softfloat: Extend the av_cmp_sf() test to cover a wider range of exponents
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-08 14:55:22 +01:00
Michael Niedermayer
cee3c9d29a avutil/softfloat: Fix overflows in shifts in av_cmp_sf() and av_gt_sf()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-08 14:54:51 +01:00
Michael Niedermayer
df2a2117d2 avutil/softfloat: Add test for av_cmp_sf()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-08 14:39:46 +01:00
Michael Niedermayer
596dfe7d6c avutil/softfloat: Add tests for exponent underflows
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-08 14:23:38 +01:00
Michael Niedermayer
046218b212 avutil/softfloat: Fix exponent underflow in av_div_sf()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-08 14:23:38 +01:00
Michael Niedermayer
a1e3303fc0 avutil/softfloat: Fix exponent underflow in av_mul_sf()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-08 14:23:38 +01:00
Michael Niedermayer
4135a2bfd6 avutil/softfloat: Fix typo in av_mul_sf() doxy
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-08 14:23:37 +01:00
Michael Niedermayer
4b6ad23609 Revert "avutil/softfloat: Check for MIN_EXP in av_sqrt_sf()"
This case should not be possible if the input has a exponent within
the valid range

This reverts commit 0269fb11e3de17375f86d9120599af8c87cdfa0a.
2015-11-08 14:23:37 +01:00
Michael Niedermayer
0269fb11e3 avutil/softfloat: Check for MIN_EXP in av_sqrt_sf()
Otherwise the exponent could eventually underflow

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-08 13:39:06 +01:00
Michael Niedermayer
107db5abf3 avutil/softfloat: Correctly set the exponent for 0.0 in av_sqrt_sf()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-08 13:39:06 +01:00
Anton Khirnov
aeda1121c9 lavf: factor out freeing an AVStream
It will be needed in other functions.
2015-11-08 11:49:23 +01:00
Anton Khirnov
3efd71b4d0 avconv: set packet duration for CFR video streams 2015-11-08 11:49:05 +01:00
Anton Khirnov
a0c71a5751 lavf: initialize cur_dts to AV_NOPTS_VALUE for muxing
The reasoning for setting it to zero only applies to demuxing.
2015-11-08 11:48:47 +01:00
Michael Niedermayer
dcf1cf5d24 avcodec/aacsbr: Use FLOAT_0
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-08 11:05:48 +01:00
Michael Niedermayer
a66b243d52 avutil/softfloat: FLOAT_0 should use MIN_EXP
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-08 03:57:02 +01:00
Timothy Gu
3d20f8e7c0 Add pixblockdsp checkasm tests 2015-11-07 18:46:55 -08:00
Timothy Gu
4b80b895a9 pixblockdsp: x86: Condense diff_pixels_* to a shared macro
Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Reviewed-by: James Almer <jamrial@gmail.com>
2015-11-07 14:31:34 -08:00
Michael Niedermayer
7cea3430a5 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>
2015-11-07 21:30:07 +01:00
wm4
a55fbfa4c4 mmaldec: correct package buffering accounting
The assert in ffmmal_stop_decoder() could trigger sometimes. The
packets_buffered counter was indeed not correctly maintained, and
packets were not subtracted from it if they were still in the waiting
queue.

For some reason, this happened especially with VC-1.
2015-11-07 19:24:49 +01:00
wm4
b07cbf6724 mmaldec: add vc1 decoding support 2015-11-07 19:24:49 +01:00
Nicolas George
785ac437be lavfi/af_asyncts: remove looping on request_frame(). 2015-11-07 16:43:36 +01:00
Nicolas George
a08fb3983f lavfi/af_amix: mostly fix scheduling. 2015-11-07 16:43:36 +01:00
Nicolas George
f53c4b6a18 lavfi/vf_framepack: fix scheduling. 2015-11-07 16:43:36 +01:00
Nicolas George
d0b82d798d lavfi/af_join: partially fix scheduling. 2015-11-07 16:43:36 +01:00
Nicolas George
67d3f5296e lavfi/fifo: do not assume request_frame() returns a frame. 2015-11-07 16:43:36 +01:00
Nicolas George
79c1be124e lavfi/avf_concat: return immediately after requesting a frame on input. 2015-11-07 16:43:36 +01:00
Nicolas George
d92e0848d9 lavfi: remove astreamsync.
It was only useful for very specific testing purposes
and appears to be currently partially broken.
2015-11-07 16:43:36 +01:00
Nicolas George
47ea04ff10 lavu/opt: enhance printing durations.
Trim unneeded leading components and trailing zeros.
Move the formating code in a separate function.
Use the function also to format the default value, it was currently
printed as plain integer, inconsistent to the way it is parsed.
2015-11-07 16:04:09 +01:00
Nicolas George
7037f9430b lavfi: add realtime filter.
Similar to the -re option in ffmpeg that only works for input files.
Can be used at any place in the filter graph.
2015-11-07 16:04:07 +01:00
Nicolas George
432e27e6e7 fate: add mpdecimate test. 2015-11-07 16:03:47 +01:00
Nicolas George
b16e569312 lavfi: add testsrc2 test source.
Similar to testsrc, but using drawutils and therefore
supporting a lot of pixel formats instead of just rgb24.
This allows using it as input for other tests without
requiring a format conversion.
It is also slightly faster than testsrc for some reason.
2015-11-07 16:02:48 +01:00
Ganesh Ajjanagadde
91bc4de2a4 doc/resampler: fix some trivial typos
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-07 08:32:22 -05:00
Michael Niedermayer
183720eb6e avformat/segafilm: Only add index entries when the stream exists
Fixes null pointer dereference
Fixes: cb02dfb163ac833c04cace3d7e35b160/signal_sigsegv_e55c49_6326_8f25619fc86a00b303c57b7778baf70a.cpk

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-07 14:09:17 +01:00
Andreas Cadhalpun
3e8e1a660e 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>
2015-11-07 13:15:14 +01:00
Andreas Cadhalpun
db374790c7 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>
2015-11-07 13:13:35 +01:00
Will Kelleher
7f7fa90f7b hevc: extract SEI caption data
Signed-off-by: Will Kelleher <wkelleher@gogoair.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-07 12:10:55 +01:00
Michael Niedermayer
43492ff3ab 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>
2015-11-07 02:17:04 +01:00
Michael Niedermayer
c719cd6cf7 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>
2015-11-07 01:01:19 +01:00
Ronald S. Bultje
20db54906f vp9_parser: allow superframes with a single frame. 2015-11-06 17:12:03 -05:00
Michael Niedermayer
daefd8ab2f 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>
2015-11-06 21:59:42 +01:00
Michael Niedermayer
cc96018c79 libopenh264enc: Set AVOption data type
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-11-06 21:55:15 +01:00
Michael Niedermayer
fcc49924db vdpau: Remove a spurious CONFIG_H263_VDPAU_HWACCEL
Fixes libavcodec/vdpau.c:282:5: warning:
    "CONFIG_H263_VDPAU_HWACCEL" is not defined [-Wundef]

Removed in d35d0c723e3c8fc8cde76bf677f67928f5e179a8.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-06 21:55:15 +01:00
Michael Niedermayer
563e6d8603 segafilm: drop the "song and dance" for cinepak
This seems not to do anything any more since a long time, and removing
it avoids using uninitialized memory. Also change the error value
forwarding as done everywhere else.

Partly fixes: msan_uninit-mem_7fb7d24780d0_2744_R03T.CAK
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-11-06 21:55:15 +01:00
Paul B Mahol
1e791ee3aa segafilm: set video and audio stream duration
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-11-06 21:55:15 +01:00
Paul B Mahol
c012c6f1a8 segafilm: implement seeking
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-11-06 21:55:15 +01:00
Ganesh Ajjanagadde
6f1ddc726f avdevice/dshow_enummediatypes: check return of av_malloc
Untested.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-06 09:36:57 -05:00
John Stebbins
2ec112f71c vf_pad: fix x, y option expression evaluation
Calculation of x an y based on width and height did not work when
width == 0 or height == 0.  "0" substitutes the input width and
height, but did so too late for x, y expression evaluation.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-11-06 15:03:51 +01:00
Paul B Mahol
b456ece557 XMA1 and XMA2 stereo decoders
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-11-06 13:45:50 +01:00
Ganesh Ajjanagadde
c8780822ba swresample/resample: speed up build_filter for Blackman-Nuttall filter
This uses the trigonometric double and triple angle formulae to avoid
repeated (expensive) evaluation of libc's cos().

Sample benchmark (x86-64, Haswell, GNU/Linux)
test: fate-swr-resample-dblp-44100-2626
old:
1104466600 decicycles in build_filter(loop 1000),     256 runs,      0 skips
1096765286 decicycles in build_filter(loop 1000),     512 runs,      0 skips
1070479590 decicycles in build_filter(loop 1000),    1024 runs,      0 skips

new:
588861423 decicycles in build_filter(loop 1000),     256 runs,      0 skips
591262754 decicycles in build_filter(loop 1000),     512 runs,      0 skips
577355145 decicycles in build_filter(loop 1000),    1024 runs,      0 skips

This results in small differences with the old expression:
difference (worst case on [0, 2*M_PI]), argmax 0.008:
max diff (relative): 0.000000000000157289807188
blackman_old(0.008): 0.000363951585488813192382
blackman_new(0.008): 0.000363951585488755946507

These are judged to be insignificant for the performance gain. PSNR to
reference file is unchanged up to second decimal point for instance.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-05 21:52:40 -05:00
Sebastian Dröge
7d6a4797f1 mpegtsenc: Implement writing of Opus trim_start/trim_end control values
Signed-off-by: Sebastian Dröge <sebastian@centricular.com>
Reviewed-by: Kieran Kunhya <kierank@obe.tv>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-06 03:33:17 +01:00
Sebastian Dröge
01509cdf92 mpegtsenc: Add support for muxing Opus in MPEG-TS
Signed-off-by: Sebastian Dröge <sebastian@centricular.com>
Previous version reviewed-by: Kieran Kunhya <kierank@obe.tv>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-06 03:32:40 +01:00
Michael Niedermayer
79c4a338e4 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>
2015-11-06 02:24:01 +01:00
Michael Niedermayer
9b6fac11da avformat/xmv: factor return check out of if/else
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-06 02:11:01 +01:00
Michael Niedermayer
973c3dba27 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>
2015-11-06 00:56:52 +01:00
Michael Niedermayer
cea9eb9520 avcodec/dnxhddec: Make mb_scan_index a fixed length array
Fixes null pointer dereference
Fixes: 5c9d1a6f74a12763fc7c9dd7834022b9/signal_sigsegv_11f78d9_1461_ecee3c5e7205457498e79b3ffaf21d0c.mxf

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-06 00:15:21 +01:00
Michael Niedermayer
d4a731b84a avcodec/faxcompr: Add missing runs check in decode_uncompressed()
Fixes out of array access
Fixes: 54e488b9da4abbceaf405d6492515697/asan_heap-oob_32769b0_160_a8755eb08ee8f9579348501945a33955.TIF

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-05 21:36:14 +01:00
Michael Niedermayer
c9bfd6a8c3 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>
2015-11-05 19:28:19 +01:00
Luca Barbato
e2854e731f avresample: Document avresample_open() a little better
Bug-Id: 911
2015-11-05 17:25:46 +01:00
Michael Niedermayer
3692d859f4 avformat/mpegts: Only start probing data streams within probe_packets
Fixes assertion failure
Fixes: 4321db8ac331f5967ebfbfe80ce5eb78/signal_sigabrt_7ffff6ae7cc9_7213_0d6457b9d6897fa7c78507fa5de53510.ts

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-05 17:06:02 +01:00
Michael Niedermayer
93f30f825c 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>
2015-11-05 15:04:57 +01:00
Michael Niedermayer
a813cdda48 avcodec/truemotion1: Initialize mb_change_byte only when needed
Fixes out of array read
Fixes: d92114d8c2a019b8a6e50cd2a7301b54/asan_heap-oob_26bf563_60_1d3420277533de9dbf8aba3f93af346f.avi

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-05 03:16:15 +01:00
Michael Niedermayer
a8b254e436 avcodec/ffv1dec: Print an error if the quant table count is invalid
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-05 01:31:52 +01:00
Michael Niedermayer
c665532820 avcodec/ffv1dec: Free tables on init failure
Fixes memleak
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>
2015-11-05 01:31:52 +01:00
Michael Niedermayer
5745cf799a 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>
2015-11-05 01:31:52 +01:00
Ganesh Ajjanagadde
9bec6d71a2 swresample/resample: speed up build_filter by 50%
This speeds up build_filter by ~ 50%. This gain should be pretty
consistent across all architectures and platforms.

Essentially, this relies on a observation that the filters have some
even/odd symmetry that may be exploited during the construction of the
polyphase filter bank. In particular, phases (scaled to [0, 1]) in [0.5, 1] are
easily derived from [0, 0.5] and expensive reevaluation of function
points are unnecessary. This requires some rather annoying even/odd
bookkeeping as can be seen from the patch.

I vaguely recall from signal processing theory more general symmetries allowing even greater
optimization of the construction. At a high level, "even functions"
correspond to 2, and one can imagine variations. Nevertheless, for the sake
of some generality and because of existing filters, this is all that is
being exploited.

Currently, this patch relies on phase_count being even or (trivially) 1,
though this is not an inherent limitation to the approach. This
assumption is safe as phase_count is 1 << phase_bits, and is hence a
power of two. There is no way for user API to set it to a nontrivial odd
number. This assumption has been placed as an assert in the code.

To repeat, this assumes even symmetry of the filters, which is the most common
way to get generalized linear phase anyway and is true of all currently
supported filters.

As a side note, accuracy should be identical or perhaps slightly better
due to this "forcing" filter symmetries leading to a better phase
characteristic. As before, I can't test this claim easily, though it may
be of interest.

Patch tested with FATE.

Sample benchmark (x86-64, Haswell, GNU/Linux):

test: swr-resample-dblp-44100-2626

new:
527376779 decicycles in build_filter(loop 1000),     256 runs,      0 skips
524361765 decicycles in build_filter(loop 1000),     512 runs,      0 skips
516552574 decicycles in build_filter(loop 1000),    1024 runs,      0 skips

old:
974178658 decicycles in build_filter(loop 1000),     256 runs,      0 skips
972794408 decicycles in build_filter(loop 1000),     512 runs,      0 skips
954350046 decicycles in build_filter(loop 1000),    1024 runs,      0 skips

Note that lower level optimizations are entirely possible, I focussed on
getting the high level semantics correct. In any case, this should
provide a good foundation.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-04 17:05:57 -05:00
Michael Niedermayer
cc35f6f476 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>
2015-11-04 21:51:21 +01:00
Michael Niedermayer
d24888ef19 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>
2015-11-04 19:33:33 +01:00
Ganesh Ajjanagadde
fd0bf457b7 avcodec/aacsbr_template: replace qsort with AV_QSORT
When sbr->reset is set in encode_frame, a bunch of qsort calls might get made.
Thus, there is the potential of calling qsort whenever the spectral
contents change.

AV_QSORT is substantially faster due to the inlining of the comparison callback.
Thus, the increase in performance should be worth the increase in binary size.

Tested with FATE.

Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-04 08:15:24 -05:00
Michael Niedermayer
bc55cec57e avcodec/rawenc: Cast argument for av_image_copy_to_buffer() to const
Fixes: libavcodec/rawenc.c:64:40: warning: passing argument 3 of av_image_copy_to_buffer from incompatible pointer type [enabled by default]

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-04 04:41:22 +01:00
Michael Niedermayer
432c1f35f7 avcodec/libzvbi-teletextdec: Remove unused variable ret
Fixes: libavcodec/libzvbi-teletextdec.c:232:9: warning: unused variable ret [-Wunused-variable]

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-04 04:40:00 +01:00
Michael Niedermayer
f3867b0a4a avcodec/vdpau: Remove CONFIG_H263_VDPAU_HWACCEL
Fixes: libavcodec/vdpau.c:320:5: warning: "CONFIG_H263_VDPAU_HWACCEL" is not defined [-Wundef]

It was removed in d15adeacf3e61cd8d2169c090bf06f6d8fc62f8b

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-04 04:30:19 +01:00
Bryan Huh
d917f25658 avformat/cache: Use int64_t to avoid int overflow in cache_read
Fixes an issue where an int64_t ffurl_seek return-value was being stored
in an int (32-bit) "r" variable, leading to integer overflow when seeking
into a large file (>2GB), and ultimately a "Failed to perform internal
seek" error mesage.

To test, try running `ffprobe 'cache:http://<something>'` on a file that
is ~3GB large, whose moov atom is at the end of the file

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-04 03:59:17 +01:00
Muhammad Faiz
6df2c94130 avfilter/showcqt: remove yuv offset
this makes draw_bar faster
slightly different result with old version

check result (with ~3 minutes audio file):
old:
    real    0m49.611s
    user    0m49.260s
    sys     0m0.073s
new:
    real    0m47.606s
    user    0m47.378s
    sys     0m0.068s
PSNR between old and new:
yuv444p PSNR
    y:109.519298 u:107.506485 v:104.746878
    average:106.816074 min:99.167305 max:inf
yuv422p PSNR
    y:109.519298 u:108.025801 v:104.489734
    average:107.279817 min:98.007467 max:inf
yuv420p PSNR
    y:109.519298 u:108.363875 v:105.290200
    average:108.261511 min:97.461812 max:inf

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-03 23:47:09 +01:00
Ganesh Ajjanagadde
92e483f8ed all: use FFDIFFSIGN to resolve possible undefined behavior in comparators
FFDIFFSIGN was created explicitly for this purpose, since the common
return a - b idiom is unsafe regarding overflow on signed integers. It
optimizes to branchless code on common compilers.

FFDIFFSIGN also has the subjective benefit of being easier to read due
to lack of ternary operators.

Tested with FATE.

Things not covered by this are unsigned integers, for which overflows
are well defined, and also places where overflow is clearly impossible,
e.g an instance where the a - b was being done on 24 bit values.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Reviewed-by: Clément Bœsch <u@pkh.me>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-03 16:28:30 -05:00
Ganesh Ajjanagadde
265f83fd35 avutil/common: add FFDIFFSIGN macro
This is of use for defining comparator callbacks. Common approaches like
return x-y are not safe due to the risks of overflow.
Furthermore, the (x > y) - (x < y) trick is optimized to branchless
code.
This also documents this macro accordingly.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-03 16:28:12 -05:00
Ganesh Ajjanagadde
03f5bcd921 avfilter/vf_rotate: correct log message
There seems to be some typos in the log messages that are fixed by this.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-03 16:22:33 -05:00
James Almer
a97f1e7bd0 fate: update fate-source ref file
Signed-off-by: James Almer <jamrial@gmail.com>
2015-11-03 15:05:32 -03:00
wm4
f128b8e19a mov: detect cover art pictures by content
I've got some m4a samples that had jpeg cover art marked as png. Since
these files were supposedly written by iTunes, and other software can
read it (e.g. clementine does), this should be worked around.

Since png has a very simple to detect header, while it's apparently a
real pain to detect jpeg in the general case, try to detect png and
assume jpeg otherwise. Not bothering with bmp, as I have no test case.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-11-03 15:03:12 +01:00
Paul B Mahol
cb7a00da21 avformat: add acm demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-11-03 12:26:09 +01:00
Paul B Mahol
c89e075d5a avcodec: add Interplay ACM decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-11-03 12:01:27 +01:00
Tobias Rapp
4746653466 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>
2015-11-02 17:40:49 +01:00
Luca Barbato
50d2a3b5f3 flashsv: Initialize the block array
Otherwise flashsv2_prime could be fed random data.

Bug-Id: 908
CC: libav-stable@libav.org

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-11-02 16:29:46 +01:00
Luca Barbato
de41b555cd truemotion2: Fix the buffer check
The variable skip contains the expected size in bytes.

Bug-Id: 906
CC: libav-stable@libav.org

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-11-02 16:29:14 +01:00
Luca Barbato
4a32692338 mimic: Always return on failure
Bug-Id: 905
CC: libav-stable@libav.org

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-11-02 16:28:31 +01:00
Luca Barbato
452d659aa4 msnwc_tcp: Use the correct return values
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-11-02 16:27:42 +01:00
Luca Barbato
f8d10511fe cosmetics: msnwc_tcp: Reformat
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-11-02 16:27:31 +01:00
Luca Barbato
4dfbc7a755 msnwc_tcp: Correctly report failure
And prevent a memory leak

CC: libav-stable@libav.org

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-11-02 16:26:37 +01:00
Luca Barbato
60f50374f1 rpza: Check the blocks left before processing one
Bug-Id: 903
CC: libav-stable@libav.org
Reported-By: Mateusz "j00ru" Jurczyk and Gynvael Coldwind

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-11-02 16:26:04 +01:00
Luca Barbato
0b699920f3 lagarith: Correctly compute hash_shift
All the values are unsigned.

Bug-Id: 907
CC: libav-stable@libav.org

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-11-02 16:25:17 +01:00
Derek Buitenhuis
9ae73d0644 hlsenc: Only write PAT/PMT once per segment
This saves a lot of muxing overhead, especially on lower bitrate
segments.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-11-02 14:35:28 +00:00
Ganesh Ajjanagadde
430f943e63 avfilter/vf_frei0r: use av_strtod instead of strtod for added flexibility
This converts the usage of strtod to av_strtod in order to unify and
make number parsing more consistent. This also adds support for SI
postfixes.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-02 06:50:18 -05:00
Luca Barbato
1e7ff5ac69 nut: Use the correct codec_tag when multiple are available
Some codecs use the codec_tag to signal specific information and
picking the first one would lead to a broken file.

Bug-Id: 883
CC: libav-stable@libav.org

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-11-02 12:10:38 +01:00
Hendrik Leppkes
23dffc7b54 Merge commit '8161220eee152dad8b2ea9e2755c78c8e127f747'
* commit '8161220eee152dad8b2ea9e2755c78c8e127f747':
  h264_parser: Rename close() to h264_close()

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-02 11:58:38 +01:00
Hendrik Leppkes
c1b712e078 Merge commit '407ac22322e5ce67996ec54ef619cafa4c9ceb78'
* commit '407ac22322e5ce67996ec54ef619cafa4c9ceb78':
  w32pthreads: Map MemoryBarrier to __sync_synchronize on mingw

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-02 11:58:27 +01:00
Hendrik Leppkes
859c4ae402 Merge commit 'a0562e531723923b632684c7b51a9dd584bf534f'
* commit 'a0562e531723923b632684c7b51a9dd584bf534f':
  configure: Add a SONAME entry for the android target

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-02 11:58:16 +01:00
Hendrik Leppkes
d15adeacf3 Merge commit 'd35d0c723e3c8fc8cde76bf677f67928f5e179a8'
* commit 'd35d0c723e3c8fc8cde76bf677f67928f5e179a8':
  vdpau: remove dysfunctional H.263 support

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-02 11:58:01 +01:00
Hendrik Leppkes
b0b752334c Merge commit 'f53583ea6e2e3fda4e4aa363f9a62cff4285affb'
* commit 'f53583ea6e2e3fda4e4aa363f9a62cff4285affb':
  omadec: Fix position of opening parenthesis

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-02 11:55:13 +01:00
Hendrik Leppkes
3ff6d40cbc Merge commit 'b4a82e740743744136e07054525560351e4892ae'
* commit 'b4a82e740743744136e07054525560351e4892ae':
  h264: Print the complete user message

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-02 11:54:34 +01:00
Hendrik Leppkes
ed6d451d93 Merge commit '8487987b87a252963b27b6adfd82887ea5933918'
* commit '8487987b87a252963b27b6adfd82887ea5933918':
  h264: Print user data SEI under normal debug verbosity

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-02 11:53:55 +01:00
Hendrik Leppkes
1fc13a6269 Merge commit '1720791e36f9cc24c05efea5bb275ab52156ce50'
* commit '1720791e36f9cc24c05efea5bb275ab52156ce50':
  png: read and write stereo3d frame side data information

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-02 11:50:35 +01:00
Hendrik Leppkes
6b5d6c93dd Merge commit '00b62968d079e63bf22028f253ac297292436ebe'
* commit '00b62968d079e63bf22028f253ac297292436ebe':
  os_support: Don't try to return the service name as a string in getnameinfo

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-02 11:43:50 +01:00
Hendrik Leppkes
9dc9b7e682 Merge commit '567ca142952c5be57e52c149c815dfe5d6ac6d41'
* commit '567ca142952c5be57e52c149c815dfe5d6ac6d41':
  configure: Add -D_CRT_NONSTDC_NO_WARNINGS when building with msvc

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-02 11:42:26 +01:00
Paul B Mahol
85a5cdb4fa avformat/segafilm: set video stream duration
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-11-02 10:53:06 +01:00
Paul B Mahol
0cb09b0511 avformat/segafilm: set audio stream duration
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-11-02 10:53:05 +01:00
Paul B Mahol
e6cccf9daa avformat/segafilm: implement seeking
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-11-02 10:53:05 +01:00
Hendrik Leppkes
55abb94b7d avformat: unref packet after storing it in internal packet queue
Fixes a memory leak when using genpts
2015-11-02 09:03:56 +01:00
Hendrik Leppkes
b64fe49371 avformat: always unref the packet after parsing
This fixes a memory leak when side-data is present.
2015-11-02 09:03:56 +01:00
Paul B Mahol
83d20a6a7e avformat/ipmovie: add context to av_log()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-11-02 09:00:53 +01:00
Paul B Mahol
c293ef258c 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>
2015-11-02 08:44:05 +01:00
Timothy Gu
dee7440531 vf_boxblur: Templatize blur{8,16}
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-01 18:52:50 -08:00
Ganesh Ajjanagadde
c03044c86a avutil/eval: minor typo
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-01 19:35:01 -05:00
Diego Biurrun
8161220eee h264_parser: Rename close() to h264_close()
At least on AIX it conflicts with the close() libc function from unistd.h.
2015-11-01 14:52:01 +01:00
Timothy Gu
ee20354b29 pixblockdsp: Use AV_COPY128U for get_pixels_16_c
Before:
  15543 decicycles in get_pixels, 4193214 runs,   1090 skips
After:
   5713 decicycles in get_pixels, 8387564 runs,   1044 skips
2015-10-31 17:25:30 -07:00
Michael Niedermayer
507b01f899 avcodec/h264_slice: Disable slice threads if there are multiple access units in a packet
Fixes null pointer dereference
Fixes Ticket4977

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-31 22:56:48 +01:00
Michael Niedermayer
58346f6a29 avformat/icecast: Initialize .str based default for AV_OPT_TYPE_STRING types
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-31 22:37:53 +01:00
Michael Niedermayer
4d76e89c18 avformat/http: Initialize .str based default for AV_OPT_TYPE_STRING types
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-31 22:37:53 +01:00
Clément Bœsch
953d358462 avcodec/libopenh264enc: use AV_OPT_TYPE_BOOL for allow_skip_frames option 2015-10-31 17:33:22 +01:00
Matt Oliver
bff009697d avutil/x86/intmath: Add missing header.
Signed-off-by: Matt Oliver <protogonoi@gmail.com>
2015-11-01 02:11:29 +11:00
Agatha Hu
20abda6b62 avcodec/nvenc: fix potential profile error when encoding yuv444p
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2015-10-31 16:00:39 +01:00
Ganesh Ajjanagadde
8a5b60a6b1 avutil/opencl_internal: add av_warn_unused_result
clSetKernelArg can return an error due to lack of memory (for instance):
https://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clSetKernelArg.html.
Thus this error must be propagated.

Currently should not trigger warnings, but adds robustness.
Untested.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-31 10:40:54 -04:00
Ganesh Ajjanagadde
7910a2c269 avfilter/vf_deshake: replace qsort with AV_QSORT
qsort is called indirectly in filter_frame, suggesting its performance
criticality. AV_QSORT is substantially faster due to the inlining of the
comparison callback. Thus, the increase in performance should be worth
the increase in binary size.

This optimization is just a low hanging fruit. The trac ticket 1430 is
a request for an improved deshake filter.

Sample benchmark (x86-64, Haswell, GNU/Linux):
File: original from https://trac.ffmpeg.org/ticket/1430
command: ffmpeg -stream_loop 8 -i file.webm -vf deshake=rx=64:ry=64 -f null -

Timer truncated at 1024 runs.
new:
28260 decicycles in qsort,       1 runs,      0 skips
35570 decicycles in qsort,       2 runs,      0 skips
39010 decicycles in qsort,       4 runs,      0 skips
46897 decicycles in qsort,       8 runs,      0 skips
40442 decicycles in qsort,      16 runs,      0 skips
41611 decicycles in qsort,      32 runs,      0 skips
40345 decicycles in qsort,      64 runs,      0 skips
38967 decicycles in qsort,     128 runs,      0 skips
38647 decicycles in qsort,     256 runs,      0 skips
40238 decicycles in qsort,     512 runs,      0 skips
39676 decicycles in qsort,    1024 runs,      0 skips

old:
1740280 decicycles in qsort,       1 runs,      0 skips
 923560 decicycles in qsort,       2 runs,      0 skips
 511330 decicycles in qsort,       4 runs,      0 skips
 309720 decicycles in qsort,       8 runs,      0 skips
 194900 decicycles in qsort,      16 runs,      0 skips
 142686 decicycles in qsort,      32 runs,      0 skips
 112516 decicycles in qsort,      64 runs,      0 skips
  98166 decicycles in qsort,     128 runs,      0 skips
  88147 decicycles in qsort,     256 runs,      0 skips
  88706 decicycles in qsort,     512 runs,      0 skips
  86783 decicycles in qsort,    1024 runs,      0 skips

Reviewed-by: Nicolas George <george@nsup.org>
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-31 10:25:00 -04:00
Matt Oliver
6c6ac9cb17 avutil/x86/intmath: Use tzcnt in place of bsf.
Signed-off-by: Matt Oliver <protogonoi@gmail.com>
2015-10-31 23:11:32 +11:00
Matt Oliver
e82883aa88 gdigrab: grab right desktop size if DPI in use, based on patch from Alexander Brotzge
Signed-off-by: Matt Oliver <protogonoi@gmail.com>
2015-10-31 23:08:02 +11:00
Ganesh Ajjanagadde
8d9f86bd37 avutil/rational: use frexp rather than ad-hoc log to get floating point exponent
This simplifies and cleans up the code.
Furthermore, it is much faster due to absence of the slow log computation.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-30 23:18:43 -04:00
Michael Niedermayer
865f6f410f avdevice/caca: change AV_OPT_TYPE_STRING to set .str default
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-31 02:31:40 +01:00
Michael Niedermayer
81d3986d2d avcodec/libopenh264enc: AV_OPT_TYPE_STRING should use .str default
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-31 02:29:01 +01:00
Michael Niedermayer
9319e08380 avcodec/libopenh264enc: Fix project name
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-31 02:21:58 +01:00
Michael Niedermayer
a75bebfe9a avcodec/libopenh264enc: set .i64 for AV_OPT_TYPE_INT
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-31 02:20:53 +01:00
Michael Niedermayer
34f49bfacd avfilter/avf_showcqt: Replace all fmin* and fmax* by FFMIN/FFMAX
Should fix build on x86_32-msvc2012

The alternative of emulating fmin/fmax* turns out to be non trivial

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-31 00:29:51 +01:00
Muhammad Faiz
306808f10f avfilter/showcqt: fix dependency with avformat
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-30 22:45:46 +01:00
Marton Balint
d9611864c2 ffprobe: add support for printing packet strings metadata as packet tags
ffprobe.xsd already contains the tag element.

Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-10-30 20:47:43 +01:00
Ganesh Ajjanagadde
47af5db721 all: fix enum definition for large values
ISO C restricts enumerator values to the range of int. Thus (for instance) 0x80000000
unfortunately does not work, and throws a warning with -Wpedantic on
clang 3.7.

This fixes it by using alternative expressions that result in identical
values but do not have this issue.

Tested with FATE.

Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-30 15:06:19 -04:00
Martin Storsjö
407ac22322 w32pthreads: Map MemoryBarrier to __sync_synchronize on mingw
This fixes building on older mingw (both mingw.org and mingw64;
mingw64 from before May 2011).

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-10-30 20:15:11 +02:00
Ganesh Ajjanagadde
191f611906 avutil/wchar_filename: add av_warn_unused_result
Current code is fine, this just adds robustness.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-30 13:47:28 -04:00
Ganesh Ajjanagadde
20a30077c3 avutil/mathematics: correct documentation for av_gcd
av_gcd is now always defined regardless of input. This documents this
change in the "documented API". Two benefits (closely related):
1. The function is robust, and there is no need to worry about INT64_MIN, etc.

2. Clients of av_gcd, like av_reduce, can now be made fully correct. Currently,
av_reduce can trigger undefined behavior if e.g num is INT64_MIN due to
integer overflow in the FFABS. Furthermore, this undefined behavior is
completely undocumented, and could be a fuzzer's paradise. The FFABS was needed in the past as
av_gcd was undefined for negative inputs. In order to make av_reduce
robust, it is essential to guarantee that av_gcd works for all int64_t.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-30 13:42:04 -04:00
Luca Barbato
a0562e5317 configure: Add a SONAME entry for the android target
In order to load libraries in Android they need to be unversioned.
The android target section was derived from the BSD ones, and they
that simply drop the SONAME

Android M requires to have a SONAME entry but unversioned.
2015-10-30 13:02:02 +01:00
Rémi Denis-Courmont
d35d0c723e vdpau: remove dysfunctional H.263 support
The VDPAU API never explicitly supported H.263 in the first place.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-10-30 12:46:56 +01:00
Vittorio Giovara
f53583ea6e omadec: Fix position of opening parenthesis 2015-10-30 12:46:56 +01:00
Vittorio Giovara
b4a82e7407 h264: Print the complete user message
Previously the message was cut off at 256th byte.
This will allow dumping the complete x264 encode info when needed.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-10-30 12:46:56 +01:00
Vittorio Giovara
8487987b87 h264: Print user data SEI under normal debug verbosity
Drop the need of setting -debug bugs since it's not a bug, and the
message is already under a AV_LOG_DEBUG log level. Instead only print
it when there is an actual string in it.
2015-10-30 12:46:56 +01:00
Kirill Gavrilov
1720791e36 png: read and write stereo3d frame side data information
Use optional sTER chunk defining side-by-side stereo pair
within "Extensions to the PNG 1.2 Specification", version 1.3.0.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-10-30 12:46:56 +01:00
Nicolas George
e8e7eb150f ffmpeg_filter: check encoder before using it to set frame size.
Fix a segfault when no encoder is found for a default codec
with a complex filter graph.
2015-10-30 10:55:10 +01:00
Martin Storsjö
00b62968d0 os_support: Don't try to return the service name as a string in getnameinfo
Some systems may be lacking getservbyport; the previous ifdef wasn't
quite enough since it still assumed that struct servent was defined,
as pointed out by Clément Gregoire.

Simply remove the possibility to return non-numeric services in
getnameinfo; no caller of getnameinfo within libavformat
currently try to use getnameinfo for retrieving the port number without
NI_NUMERICSERV, and falling back on getservbyport may be non-threadsafe.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-10-30 10:03:58 +02:00
Steven Robertson
b38e685c05 vf_lut: Add support for RGB48 and RGBA64.
Signed-off-by: Steven Robertson <steven@strobe.cc>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-30 03:55:12 +01:00
Michael Niedermayer
203dc14693 avformat/3dostr: Remove redundant ;
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-30 03:02:41 +01:00
Michael Niedermayer
a7af002b5f avformat/oggparseogm: Enable parser for mpeg4
Fixes regression with iJi.ogv

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-30 02:31:49 +01:00
Carl Eugen Hoyos
bd1d67efe8 lavc/proresdec2: Fix slice_count for very high resolutions.
QT ignores the value written in the frame header.
Issue reported by forum user Koracas.
2015-10-30 01:32:39 +01:00
Carl Eugen Hoyos
2f1d6d45af lavc/cdg: Add transparency support. 2015-10-30 01:24:50 +01:00
Ganesh Ajjanagadde
b7fb7c4542 avutil/mathematics: make av_gcd more robust
This ensures that no undefined behavior is invoked, while retaining
identical return values in all cases and at no loss of performance
(identical asm on clang and gcc).
Essentially, this patch exchanges undefined behavior with implementation
defined behavior, a strict improvement.

Rationale:
1. The ideal solution is to have the return type a uint64_t. This
unfortunately requires an API change.
2. The only pathological behavior happens if both arguments are
INT64_MIN, to the best of my knowledge. In such a case, the
implementation defined behavior is invoked in the sense that UINT64_MAX
is interpreted as INT64_MIN, which any reasonable implementation will
do. In any case, any usage where both arguments are INT64_MIN is a
fuzzer anyway.
3. Alternatives of checking, etc require branching and lose performance
for no concrete gain - no client cares about av_gcd's actual value when
both args are INT64_MIN. Even if it did, on sane platforms (e.g all the
ones FFmpeg cares about), it produces a correct gcd, namely INT64_MIN.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-29 19:13:55 -04:00
Ganesh Ajjanagadde
0fe5dcd660 avfilter/avf_showvolume: use log10 instead of log()/M_LN10
This is likely more precise and conveys the intent better.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-29 19:10:49 -04:00
Ganesh Ajjanagadde
b45daad2aa ffmpeg: use log10 instead of log()/log(10)
This is more concise and conveys the intent better.
Furthermore, it is likely more precise as well due to lack of floating
point division.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-29 19:05:29 -04:00
Ganesh Ajjanagadde
b8e1980807 avfilter/vf_ssim: use log10 instead of log()/log(10)
This is likely more precise and conveys the intent better.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-29 19:02:05 -04:00
Ganesh Ajjanagadde
ec66bcc0e7 avfilter/avf_showspectrum: use log10 instead of log()/...
This is likely more precise and conveys the intent better.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-29 18:55:10 -04:00
Ganesh Ajjanagadde
59d37f5a4e avfilter/vf_psnr: use log10 instead of log()/log(10)
This is likely more precise and conveys the intent better.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-29 18:53:11 -04:00
Andreas Cadhalpun
e8c3716064 swscale: rename sws_rgb2rgb_init to ff_sws_rgb2rgb_init
It is an internal swscale function and thus should not be exported.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-10-29 23:49:46 +01:00
Andreas Cadhalpun
8bfbc8c5e5 swscale: rename sws_context_class to ff_sws_context_class
It is an internal swscale symbol and thus should not be exported.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-10-29 23:49:10 +01:00
Andreas Cadhalpun
41455dca60 avformat: stop exporting ffurl_read_complete, ffurl_seek and ffurl_size
They are not in public headers and not used outside of libavformat.

Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-10-29 23:48:13 +01:00
Ganesh Ajjanagadde
4d0d85c94a avfilter/af_volume: use log10 instead of log()/M_LN10
This is likely more precise and conveys the intent better.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-29 18:46:00 -04:00
Ganesh Ajjanagadde
603d627457 avcodec/zmbvenc: use log2 instead of log()/M_LN2
This is likely more precise and conveys the intent better.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-29 18:46:00 -04:00
Ganesh Ajjanagadde
68ba63ebd5 avcodec/nellymoserenc: use log2 instead of log()/M_LN2
This is likely more precise and conveys the intent better.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-29 18:46:00 -04:00
Ganesh Ajjanagadde
4870d8518a avcodec/snowenc: use log2 instead of log() / log(2...)
This is likely more precise and conveys the intent better.
The expression has also been accordingly simplified.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-29 18:46:00 -04:00
Paul B Mahol
863c9189ee doc/general.texi: fix SDX2 description
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-29 21:29:47 +01:00
Paul B Mahol
09ef1f5923 doc/general.texi: move Screenpresso to right section
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-29 21:26:43 +01:00
Paul B Mahol
48f0d3accc avformat: add DC STR demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-29 21:26:43 +01:00
Paul B Mahol
af3f793f60 avcodec: add ADPCM AICA decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-29 21:26:43 +01:00
Paul B Mahol
e99321a3b6 avformat: add 3dostr demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-29 21:26:43 +01:00
Kyle Swanson
3b1939bb66 avfilter/tremolo: fix wavetable buffer size
Signed-off-by: Kyle Swanson <k@ylo.ph>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-29 18:16:09 +01:00
Kyle Swanson
e5451f25d3 avfilter/asrc_sine: fix options typos
Signed-off-by: Kyle Swanson <k@ylo.ph>
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-29 17:43:13 +01:00
Martin Storsjö
567ca14295 configure: Add -D_CRT_NONSTDC_NO_WARNINGS when building with msvc
This silences warnings like this one:
libavformat/file.c(62) : warning C4996: 'read': The POSIX name for this
item is deprecated. Instead, use the ISO C++ conformant name: _read.
See online help for details.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-10-29 16:17:15 +02:00
Hendrik Leppkes
7968b1f853 Merge commit '8edaf625f3c38c695c33745822182e94e17d6e1b'
* commit '8edaf625f3c38c695c33745822182e94e17d6e1b':
  libopenh264enc: Count and warn about the number of skipped frames

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-29 14:26:17 +01:00
Hendrik Leppkes
f79bb118f5 Merge commit '9e14a992409348630ea96521411127418a92e8a3'
* commit '9e14a992409348630ea96521411127418a92e8a3':
  libopenh264enc: Add an option for controlling the frame skipping

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-29 14:26:07 +01:00
Hendrik Leppkes
313f53824e Merge commit 'b8deb7c34f755d5e3eee0b5930c3a6ad2dda96bc'
* commit 'b8deb7c34f755d5e3eee0b5930c3a6ad2dda96bc':
  opus: Do not call vector_fmul_scalar on zero samples

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-29 14:25:19 +01:00
Hendrik Leppkes
f2dc68e2e2 Merge commit '6dcd82290438eb810936de4febd0558b38a08ec5'
* commit '6dcd82290438eb810936de4febd0558b38a08ec5':
  opus: Buffer the samples from the correct offset

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-29 14:24:53 +01:00
Hendrik Leppkes
7c99384f3c Merge commit 'f3aff31e5f66a4f1c4e34ce4944f4a402aca61ed'
* commit 'f3aff31e5f66a4f1c4e34ce4944f4a402aca61ed':
  avpicture: Deprecate the single fields

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-29 14:23:24 +01:00
Hendrik Leppkes
9f7de99517 Merge commit 'cd0e08813a0484002b5defbf557c859f123953ae'
* commit 'cd0e08813a0484002b5defbf557c859f123953ae':
  avconv: support infinite loop for the loop option

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-29 14:21:41 +01:00
Hendrik Leppkes
3ec049b85d Merge commit 'a9a60106370f862e191dea58e748626da6a8fe97'
* commit 'a9a60106370f862e191dea58e748626da6a8fe97':
  avpacket: Provide an alloc and a free function for the struct

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-29 14:18:03 +01:00
Hendrik Leppkes
87a6f532b4 Merge commit '9b56d5c11488656254e9aed8d964ef2b7c2ff5e6'
* commit '9b56d5c11488656254e9aed8d964ef2b7c2ff5e6':
  avpacket: Deprecate av_dup_packet

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-29 14:16:44 +01:00
Hendrik Leppkes
54de179caa Merge commit 'd584533cf38141172e20bae5436629ee17c8ce50'
* commit 'd584533cf38141172e20bae5436629ee17c8ce50':
  avformat: Rework add_to_pktbuf

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-29 14:06:11 +01:00
Ronald S. Bultje
c048303823 vp9: update timestamps in ref files using multiple invisible frames.
For the 10-show-existing-frame, the source file indeed has a timestamp
of 3 (or 100/33) for the second visible frame, so the fix appears to
work correctly. For the other, only the timebase is fixed, but again
appears to be correct now.
2015-10-29 07:55:12 -04:00
Matthieu Bouron
ff0dfb5c36 lavc/mjpegdec: honor skip_frame option 2015-10-29 12:04:11 +01:00
Matthieu Bouron
cbe2dfa4e5 lavc/pngdec: honor skip_frame option 2015-10-29 12:04:06 +01:00
James Almer
fc460fe618 avfilter/showcqt: fix compilation with libswscale disabled
Signed-off-by: James Almer <jamrial@gmail.com>
2015-10-29 02:11:58 -03:00
Ganesh Ajjanagadde
dd36749557 avutil/audio_fifo: add av_warn_unused_result
This one should not trigger any warnings, but will be useful for future
robustness.

Strictly speaking, one could check the size after the call by examining
the structure instead of the return value. Such a use case is highly
unusual, and this commit may be easily reverted if there is a legitimate
need of such use.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-28 23:05:31 -04:00
Ronald S. Bultje
63fca9df9c vp9_parser: don't overwrite cached timestamps with nopts. 2015-10-28 22:15:36 -04:00
Ganesh Ajjanagadde
6dc0db6634 avcodec/motion_est_template: replace qsort with AV_QSORT
This code is in a performance critical section. AV_QSORT is
substantially faster due to the inlining of the comparison callback.
Thus, the increase in performance is worth the increase in binary size.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-28 21:44:24 -04:00
Ganesh Ajjanagadde
fab1562a50 avutil/ripemd: make rol macro more robust by adding parentheses
This ensures that the macro remains correct in the sense of allowing
expressions for value and bits, by placing the value and bits expressions within
parentheses.

Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-28 21:42:15 -04:00
Lou Logan
2193f537ed doc/encoders: fix "the their" typo
Signed-off-by: Lou Logan <lou@lrcd.com>
2015-10-28 13:23:52 -08:00
Martin Storsjö
8edaf625f3 libopenh264enc: Count and warn about the number of skipped frames
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-10-28 23:02:52 +02:00
Martin Storsjö
9e14a99240 libopenh264enc: Add an option for controlling the frame skipping
This allows enabling the frame skipping, which is required for the
encoder to properly hit the target bitrate.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-10-28 23:02:48 +02:00
Michael Niedermayer
3f50291813 doc/filters: Remove article redundancy
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-28 20:15:00 +01:00
wm4
80580bb240 swr: do not reject channel layouts that use channel 63
Channel layouts are essentially uint64_t, and every value is valid.
2015-10-28 19:25:49 +01:00
Kieran Kunhya
b8deb7c34f opus: Do not call vector_fmul_scalar on zero samples
The x86 variant of this function crashes in that specific case.

CC: libav-devel@libav.org
2015-10-28 17:57:07 +01:00
Michael Niedermayer
6dcd822904 opus: Buffer the samples from the correct offset
When not all the opus stream have the same amount of decoded samples
process the least amount and store what is left from the other streams.

Bug-Id: 909
CC: libav-stable@libav.org

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-10-28 16:59:57 +01:00
Rodger Combs
cceed8389d lavu/aes: test CBC functionality 2015-10-28 09:38:21 -05:00
Kirill Gavrilov
bea931c2eb avcodec/png: read and write stereo3d frame side data information
Use optional sTER chunk defining side-by-side stereo pair
within "Extensions to the PNG 1.2 Specification", version 1.3.0.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-28 12:59:43 +01:00
Rodger Combs
54cd1ab555 lavu/aes: align AVAES struct members 2015-10-28 04:23:14 -05:00
Rodger Combs
15ff5c7215 lavu/aes: add runtime dispatch for crypt function 2015-10-28 04:23:14 -05:00
Rodger Combs
ec588db56f lavu/aes: move AVAES to separate internal header 2015-10-28 04:23:14 -05:00
Rodger Combs
1e477a970f lavu: add AESNI CPU flag 2015-10-28 04:23:14 -05:00
Michael Niedermayer
057ce755b9 ffprobe: Remove abort()
Found-by: Ganesh Ajjanagadde and wm4
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-28 10:12:15 +01:00
Ganesh Ajjanagadde
a0e390e8ff avutil/avstring: add av_warn_unused_result
This does not trigger any warnings, but adds robustness.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-27 23:16:09 -04:00
Michael Niedermayer
492dead9ac avfilter/avf_showcqt: Fix ;;
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-28 03:26:08 +01:00
Muhammad Faiz
f8d429e0c5 avfilter/avf_showcqt: rewrite showcqt and add features
add yuv444p, yuv422p, and yuv420p output format (lower cpu usage
on ffplay playback because it does not do format conversion)
custom size with size/s option (fullhd option is deprecated)
custom layout with bar_h, axis_h, and sono_h option
support rational frame rate (within fps/r/rate option)
relaxed frame rate restriction (support fractional sample step)
support all input sample rates
separate sonogram and bargraph volume (with volume/sono_v and
volume2/bar_v)
timeclamp option alias (timeclamp/tc)
fcount option
gamma option alias (gamma/sono_g and gamma2/bar_g)
support custom frequency range (basefreq and endfreq)
support drawing axis using external image file (axisfile option)
alias for disabling drawing to axis (text/axis)
possibility to optimize it using arch specific asm code

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-28 02:30:03 +01:00
Michael Niedermayer
232b8a5a43 avformat/img2enc: re enable atomic writes with split planes
They work now after fixing the implementation

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-28 02:29:51 +01:00
Andreas Cadhalpun
eaa6bade37 avcodec: install avdct.h as public header
The commit 932ff70 introducing this header mentions it should be public.

Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-10-27 22:51:54 +01:00
Luca Barbato
f3aff31e5f avpicture: Deprecate the single fields
Silence pointless warnings from gcc.
2015-10-27 21:53:26 +01:00
Michael Niedermayer
1b82a0052c avformat/img2enc: Fix img2enc atomic implementation to work with split planes
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-27 21:28:23 +01:00
Michael Niedermayer
9ec2b9fce1 avformat/img2enc: Disable rename&atomic writing for non file protocol and split planes
For protocols other than local files ff_rename() is not implemented
For split planes support the implementation is simply wrong

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-27 20:44:46 +01:00
Hendrik Leppkes
6255bf3d0d mpegts: Fix FATE seek test 2015-10-27 15:42:59 +01:00
Hendrik Leppkes
75c3e54d1c asfdec: fix FATE seek test 2015-10-27 15:29:12 +01:00
Hendrik Leppkes
c2f861ca42 Replace remaining occurances of av_free_packet with av_packet_unref 2015-10-27 14:35:30 +01:00
Hendrik Leppkes
7f5af80ba4 Merge commit 'ce70f28a1732c74a9cd7fec2d56178750bd6e457'
* commit 'ce70f28a1732c74a9cd7fec2d56178750bd6e457':
  avpacket: Replace av_free_packet with av_packet_unref

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-27 14:28:56 +01:00
Hendrik Leppkes
856b19d593 Merge commit 'a5d42043093a39636a1f4021a37dd9c612479f6f'
* commit 'a5d42043093a39636a1f4021a37dd9c612479f6f':
  avformat: Always return ref-counted AVPacket

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-27 14:12:27 +01:00
Hendrik Leppkes
fe3c22e0c0 Merge commit 'f0ca6ffa0ae5d5564516ee7a18aa1e234751444a'
* commit 'f0ca6ffa0ae5d5564516ee7a18aa1e234751444a':
  avprobe: Unref the packet once it is used

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-27 14:10:04 +01:00
Hendrik Leppkes
5fe1578571 Merge commit '9cbae3a7d57bd2b862c37fd8123bd1fba680e801'
* commit '9cbae3a7d57bd2b862c37fd8123bd1fba680e801':
  roqvideodec: use av_frame_copy

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-27 14:07:36 +01:00
Hendrik Leppkes
af7c703715 Merge commit '9f5d6f460ceeda8b4ac29b3249a49e275b64c706'
* commit '9f5d6f460ceeda8b4ac29b3249a49e275b64c706':
  hap: Set avctx.bits_per_coded_sample

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-27 14:06:45 +01:00
Hendrik Leppkes
fe41f28c3a Merge commit 'fe66671bd5f446f8d0a9c70968ba8fe891efe028'
* commit 'fe66671bd5f446f8d0a9c70968ba8fe891efe028':
  cmdutils: Check for and report the correct codec capability

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-27 14:06:30 +01:00
Hendrik Leppkes
564eabeebb Merge commit '3c5cf2a31b4b29a8e4282cbe6a3f0617c14698b8'
* commit '3c5cf2a31b4b29a8e4282cbe6a3f0617c14698b8':
  screenpresso: Drop parameter change check

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-27 14:05:41 +01:00
Hendrik Leppkes
0a830b95d5 Merge commit '447b5b278c689b21bbb7b5747c8773145cbd9448'
* commit '447b5b278c689b21bbb7b5747c8773145cbd9448':
  mpegvideo_enc: Fix encoding videos with less frames than the delay of the encoder

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-27 14:04:47 +01:00
Hendrik Leppkes
a4b5ada36b Merge commit '27eeee76b2546fd313808997b3d07ba9cce94551'
* commit '27eeee76b2546fd313808997b3d07ba9cce94551':
  mpegvideo_enc: Merge ifs with identical conditions

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-27 14:01:18 +01:00
Hendrik Leppkes
1174eb2f10 Merge commit 'f0a88d4d2a74534460f4a8b79c448bd5890dbd41'
* commit 'f0a88d4d2a74534460f4a8b79c448bd5890dbd41':
  mpegvideo_enc: Factor new_picture unref out

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-27 14:01:03 +01:00
Hendrik Leppkes
8b3228a329 Merge commit '533a6198505edd1379e1cd722852350ae4a85acc'
* commit '533a6198505edd1379e1cd722852350ae4a85acc':
  innoHeim/Rsupport Screen Capture Codec decoder

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-27 13:58:44 +01:00
Hendrik Leppkes
8dde5dc05a Merge commit '233d2fa0443197df12b4f7823d591dad964149b3'
* commit '233d2fa0443197df12b4f7823d591dad964149b3':
  kvazaar: Add libkvazaar HEVC encoder

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-27 13:49:37 +01:00
Paul B Mahol
a66243a201 avformat/aiff: add ADP4 DVI ADPCM support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-27 13:41:54 +01:00
Hendrik Leppkes
b95b8e5a22 Merge commit '18f9308e6a96bbeb034ee5213a6d41e0b6c2ae74'
* commit '18f9308e6a96bbeb034ee5213a6d41e0b6c2ae74':
  mpjpeg: Cope with multipart lacking the initial CRLF

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-27 12:55:51 +01:00
Hendrik Leppkes
7daac50067 Merge commit '22f4d9c303ede1a240538fd105c97047db40dc86'
* commit '22f4d9c303ede1a240538fd105c97047db40dc86':
  img2enc: Make sure the images are atomically written

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-27 12:50:56 +01:00
Hendrik Leppkes
e7a57d4873 Merge commit '1ec72c6c68dbc78bf4ebb6f06c13316dc488bdfa'
* commit '1ec72c6c68dbc78bf4ebb6f06c13316dc488bdfa':
  libx264: Make sure the extradata are padded

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-27 12:48:27 +01:00
Hendrik Leppkes
368e521646 Merge commit '5ea5a24eb70646a9061b85af407fcbb5dd4f89fd'
* commit '5ea5a24eb70646a9061b85af407fcbb5dd4f89fd':
  movenc: Honor flush requests with delay_moov, when some tracks lack samples

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-27 12:46:21 +01:00
Hendrik Leppkes
12e95d156a Merge commit 'e02dcdf6bb6835ef4b49986b85a67efcb3495a7f'
* commit 'e02dcdf6bb6835ef4b49986b85a67efcb3495a7f':
  rtsp: Allow $ as interleaved packet indicator before a complete response header

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-27 12:41:37 +01:00
Hendrik Leppkes
0bcb17d44e Merge commit 'dca23ffbc7568c9af5c5fbaa86e6a0761ecae50c'
* commit 'dca23ffbc7568c9af5c5fbaa86e6a0761ecae50c':
  lavc: Deprecate AVPicture structure and related functions

Deprecation flag on AVPicture struct replaced by a comment, as it causes
excess deprecation warnings for every include of avcodec.h

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-27 12:40:04 +01:00
Kyle Swanson
15d8b65125 doc/filters.texi: ebur128 grammar fix
Reviewed-by: Lou Logan <lou@lrcd.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-27 12:11:38 +01:00
AppChecker
8199908fdf fix: assigning instead of comparing
Signed-off-by: AppChecker <support.appc@cnpo.ru>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-27 12:11:38 +01:00
Hendrik Leppkes
31741aecbf avcodec: disallow hwaccel with frame threads
HWAccels with frame threads are fundamentally flawed in avcodecs current
design, and there are several known problems ranging from image corruption
to driver crashes.

These problems come down to two design problems in the interaction of
threads and HWAccel decoding:

(1)
While avcodec prevents parallel decoding and as such simultaneous access
to the hardware accelerator from the decoding threads, it cannot account
for the user code and its access to the hardware surfaces and the hardware
itself.

This can result in image corruption or even driver crashes if the
user code locks image surfaces while they are being used by the decoder
threads as reference frames.

The current HWAccel API does not offer any way to ensure exclusive access
to the hardware or the surfaces if frame threading is used.

(2)
Initialization of the HWAccel with frame threads is non-trivial, and many
decoders had and still have issues that cause excess calls to the
get_format callback.

This will potentially cause duplicate HWAccel initialization, which in
extreme cases can even lead to driver crashes if the HWAccel is
re-initialized while the user code is actively accessing the hardware
surfaces associated with it, or lead to image corruption due to lost
reference frames.

While both of these issues are solvable, fixing (1) would at least require
a huge API redesign which would move a lot of complexity into the user
code.

The only reason the combination of frame threads and HWAccel was
considered useful is to allow a seamless fallback to multi-threaded
software decoding if the HWAccel is not available, however the issues
outlined above far outweigh this.

The proper solution for a fallback is to re-open the AVCodecContext with
threading enabled if the HWAccel failed, which is a practice commonly used
by various user applications using avcodec today already.

Reviewed-by: Gwenole Beauchesne <gb.devel@gmail.com>
Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-27 10:19:05 +01:00
Rostislav Pehlivanov
af71c73fb4 FATE: Increase FUZZ value on AAC LTP encoding test
Clang prerelease on Darwin is making the test fail.
2015-10-27 07:41:33 +00:00
Timothy Gu
b9cd3e1add srtenc: Reindent 2015-10-26 23:24:45 -07:00
Timothy Gu
852c4b3d42 drawutils: Reindent 2015-10-26 23:24:30 -07:00
Timothy Gu
87d5509261 avfilter: Reindent 2015-10-26 23:24:18 -07:00
Timothy Gu
9b40ce5a45 avcodec: srtdec: Reindent 2015-10-26 23:23:59 -07:00
James Almer
d897d4c12d x86/vf_w3fdif: use aligned loads in w3fdif_complex_high
Found-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-10-27 01:49:22 -03:00
Rostislav Pehlivanov
e6f99520aa FATE: Slightly increase thresholds on prediction AAC encoding tests
They barely fail on some systems by being off by 0.81.
2015-10-27 03:48:17 +00:00
Kieran Kunhya
b3e5f15b95 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>
2015-10-27 02:45:40 +01:00
Michael Niedermayer
07225fa74f avcodec/opusdec: Fix extra samples read index
Fixes crash
Fixes Ticket4969 part 1

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-27 02:37:16 +01:00
Kyle Swanson
dcb95ef482 avfilter: add vibrato filter
Signed-off-by: Kyle Swanson <k@ylo.ph>
2015-10-26 20:56:17 +01:00
Alexandra Hájková
cd0e08813a avconv: support infinite loop for the loop option
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-10-26 19:28:24 +01:00
Luca Barbato
a9a6010637 avpacket: Provide an alloc and a free function for the struct
Pave the way for having the size of the AVPacket struct not part
of the ABI.
2015-10-26 18:00:55 +01:00
Luca Barbato
9b56d5c114 avpacket: Deprecate av_dup_packet
As documented, `av_dup_packet` is broken by design, `av_packet_ref`
matches the AVFrame ref-counted API and can be safely used instead.
2015-10-26 18:00:55 +01:00
Luca Barbato
d584533cf3 avformat: Rework add_to_pktbuf
Make it return an error and check its return value when it is used.
Simplify the usage by calling `av_packet_ref` internally when needed.
2015-10-26 18:00:55 +01:00
Luca Barbato
ce70f28a17 avpacket: Replace av_free_packet with av_packet_unref
`av_packet_unref` matches the AVFrame ref-counted API and can be used as
a drop in replacement.

Deprecate `av_free_packet`.
2015-10-26 18:00:55 +01:00
Luca Barbato
a5d4204309 avformat: Always return ref-counted AVPacket
And drop the av_dup_packet from the input_thread.
2015-10-26 18:00:55 +01:00
Luca Barbato
f0ca6ffa0a avprobe: Unref the packet once it is used
Make sure it does not leak packets.

CC: libav-stable@libav.org
2015-10-26 18:00:54 +01:00
Clément Bœsch
51ee62d50b avcodec/options: remove a few more redundant "default" information 2015-10-26 15:39:09 +01:00
Clément Bœsch
90c4ccc629 avcodec/options: remove redundant and wrong default information for skipcmp option 2015-10-26 15:39:09 +01:00
Clément Bœsch
7794627032 avcodec/avdct: remove redundant "default" information in options 2015-10-26 15:39:09 +01:00
Derek Buitenhuis
a7fcc43bcc tests/aac: Add bitexact flags to AAC LTP Encode test
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-10-26 14:32:05 +00:00
Tinglin Liu
9ea812692c mov: Add support parsing QuickTime Metadata Keys.
The Apple dev specification:
    https://developer.apple.com/library/mac/documentation/QuickTime/QTFF/Metadata/Metadata.html

Basically the structure is like:
    |--meta
    |----hdlr
    |----keys
    |----ilst

1) The handler type in the metadata handler atom is ‘mdta’.
2) The key and value are stored separately for each key-value pair.
   The 'keys' atom stores the key table, while 'ilst' atom stores the
   values corresponding to the indices in the key table.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-10-26 14:32:05 +00:00
Vittorio Giovara
63ea8e0610 timecode: Support HFR values 2015-10-26 15:05:26 +01:00
Vittorio Giovara
8c22148220 timecode: Do not fail for non-standard framerates
Instead just warn, and use the parse fps normally.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-10-26 15:05:05 +01:00
Michael Niedermayer
4f00d23577 tests/fate/aac: Add bitexact flags to fate-aac-pns-encode
This fixes a fate failure after bumping the minor version
Its unknown why this is not needed for the other aac tests,
more investigation needed but for now i dont want to leave
it broken while its investigated

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-26 13:31:06 +01:00
Hendrik Leppkes
9cbae3a7d5 roqvideodec: use av_frame_copy
CC: libav-stable@libav.org
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-10-26 12:55:40 +01:00
Ganesh Ajjanagadde
68a0a164d1 avfilter/vf_removegrain: replace qsort with AV_QSORT
filter_slice calls qsort, so qsort is in a performance critical
position. AV_QSORT is substantially faster due to the inlining of the
comparison callback. Thus, the increase in performance is worth the
increase in binary size.

Sample benchmark (x86-64, Haswell, GNU/Linux),
filter-removegrain-mode-02 (from FATE)
new:
  24060 decicycles in qsort,       1 runs,      0 skips
  15690 decicycles in qsort,       2 runs,      0 skips
   9307 decicycles in qsort,       4 runs,      0 skips
   5572 decicycles in qsort,       8 runs,      0 skips
   3485 decicycles in qsort,      16 runs,      0 skips
   2517 decicycles in qsort,      32 runs,      0 skips
   1979 decicycles in qsort,      64 runs,      0 skips
   1911 decicycles in qsort,     128 runs,      0 skips
   1568 decicycles in qsort,     256 runs,      0 skips
   1596 decicycles in qsort,     512 runs,      0 skips
   1614 decicycles in qsort,    1024 runs,      0 skips
   1874 decicycles in qsort,    2046 runs,      2 skips
   2186 decicycles in qsort,    4094 runs,      2 skips

old:
 246960 decicycles in qsort,       1 runs,      0 skips
 135765 decicycles in qsort,       2 runs,      0 skips
  70920 decicycles in qsort,       4 runs,      0 skips
  37710 decicycles in qsort,       8 runs,      0 skips
  20831 decicycles in qsort,      16 runs,      0 skips
  12225 decicycles in qsort,      32 runs,      0 skips
   8083 decicycles in qsort,      64 runs,      0 skips
   6270 decicycles in qsort,     128 runs,      0 skips
   5321 decicycles in qsort,     256 runs,      0 skips
   4860 decicycles in qsort,     512 runs,      0 skips
   4424 decicycles in qsort,    1024 runs,      0 skips
   4191 decicycles in qsort,    2046 runs,      2 skips
   4934 decicycles in qsort,    4094 runs,      2 skips

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-26 07:14:22 -04:00
Paul B Mahol
ff1e44b01e avformat/thp: set duration for audio stream too
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-26 10:08:01 +01:00
Paul B Mahol
035ae3c009 avcodec: add SDX2 DPCM decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-26 10:08:01 +01:00
Ganesh Ajjanagadde
2ccc1b304e MAINTAINERS: add key fingerprint
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-25 19:15:04 -04:00
Tom Butterworth
9f5d6f460c hap: Set avctx.bits_per_coded_sample
Fixes an issue where alpha is ignored in some players.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-10-25 22:48:04 +01:00
Clément Bœsch
6b5412cbfa avutil/opt: print more meaningful default flags values
Example:
% ./ffmpeg -h encoder=gif
[...]
GIF encoder AVOptions:
  -gifflags          <flags>      E..V.... set GIF flags (default offsetting+transdiff)
     offsetting                   E..V.... enable picture offsetting
     transdiff                    E..V.... enable transparency detection between frames
2015-10-25 22:47:16 +01:00
Vittorio Giovara
fe66671bd5 cmdutils: Check for and report the correct codec capability 2015-10-25 22:47:13 +01:00
Vittorio Giovara
3c5cf2a31b screenpresso: Drop parameter change check
Size can never change, allowing us to use ff_reget_buffer, and to
simplify the code a little.
2015-10-25 22:44:21 +01:00
Alexis Ballier
447b5b278c mpegvideo_enc: Fix encoding videos with less frames than the delay of the encoder
When the encoder is fed with less frames than its delay, the picture list
looks like { NULL, NULL, ..., frame, frame, frame }. When flushing the
encoder (input frame == NULL), we need to ensure the picture list is
shifted enough so that we do not return an empty packet, which would
mean the encoder has finished, while it has not encoded any frame.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-10-25 22:43:30 +01:00
Michael Niedermayer
27eeee76b2 mpegvideo_enc: Merge ifs with identical conditions
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-25 22:24:13 +01:00
Michael Niedermayer
f0a88d4d2a mpegvideo_enc: Factor new_picture unref out
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-25 22:23:51 +01:00
Nicolas George
559603dae1 lavfi/drawutils: add const to blending mask. 2015-10-25 20:58:21 +01:00
Ganesh Ajjanagadde
bbd6bc6bd0 avutil/tree: clean up pointer incompatibility warnings
Commit 7c8fcbbde3a299096974f9061c8b5be0e526f4c2 introduced some warnings
that get triggered on the test build. This should fix them.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-25 12:45:10 -04:00
Carl Eugen Hoyos
6498b34bba lavf/xwma: Support wmapro.
Fixes ticket #4963.
2015-10-25 17:37:17 +01:00
Michael Niedermayer
65ffca9f80 avutil/tree: Document the guaranteed ordering of compare arguments for av_tree_find()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-25 17:28:47 +01:00
Ganesh Ajjanagadde
9bc3d3355f avcodec/huffman: replace qsort with AV_QSORT
ff_huff_build_tree uses qsort underneath. AV_QSORT is substantially
faster due to the inlining of the comparison callback. Furthermore, this
code is reasonably performance critical, since in e.g the fraps codec,
ff_huff_build_tree is called on every frame. This routine is also called
in vp6 on every frame in some circumstances.

Sample benchmark (x86-64, Haswell, GNU/Linux), vp6 from FATE:
vp6 (old):
  78930 decicycles in qsort,       1 runs,      0 skips
  45330 decicycles in qsort,       2 runs,      0 skips
  27825 decicycles in qsort,       4 runs,      0 skips
  17471 decicycles in qsort,       8 runs,      0 skips
  12296 decicycles in qsort,      16 runs,      0 skips
   9554 decicycles in qsort,      32 runs,      0 skips
   8404 decicycles in qsort,      64 runs,      0 skips
   7405 decicycles in qsort,     128 runs,      0 skips
   6740 decicycles in qsort,     256 runs,      0 skips
   7540 decicycles in qsort,     512 runs,      0 skips
   9498 decicycles in qsort,    1024 runs,      0 skips
   9938 decicycles in qsort,    2048 runs,      0 skips
   8043 decicycles in qsort,    4095 runs,      1 skips

vp6 (new):
  15880 decicycles in qsort,       1 runs,      0 skips
  10730 decicycles in qsort,       2 runs,      0 skips
  10155 decicycles in qsort,       4 runs,      0 skips
   7805 decicycles in qsort,       8 runs,      0 skips
   6883 decicycles in qsort,      16 runs,      0 skips
   6305 decicycles in qsort,      32 runs,      0 skips
   5854 decicycles in qsort,      64 runs,      0 skips
   5152 decicycles in qsort,     128 runs,      0 skips
   4452 decicycles in qsort,     256 runs,      0 skips
   4161 decicycles in qsort,     511 runs,      1 skips
   4081 decicycles in qsort,    1023 runs,      1 skips
   4072 decicycles in qsort,    2047 runs,      1 skips
   4004 decicycles in qsort,    4095 runs,      1 skips

Reviewed-by: Timothy Gu <timothygu99@gmail.com>
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-25 10:18:00 -04:00
Ganesh Ajjanagadde
104f8ea873 version.sh: add note that ffversion.h is auto-generated
Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-25 10:14:44 -04:00
Ganesh Ajjanagadde
c7131762c0 all: add const-correctness to qsort comparators
This adds const-correctness when needed for the comparators.

Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-25 10:07:20 -04:00
Paul B Mahol
f7751a5e53 avformat/aiffdec: give friendly message if compressed codec tag is unsupported
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-25 14:07:03 +01:00
Paul B Mahol
1f36b43c28 doc/general: update after recent additions
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-25 11:54:17 +01:00
Paul B Mahol
6f3ba23ae0 avformat: add xvag demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-25 11:05:56 +01:00
Ganesh Ajjanagadde
7c8fcbbde3 avutil/tree: add additional const qualifier to the comparator
libc's qsort comparator has a const qualifier on both arguments. This
adds a missing const qualifier to exactly match the comparator API.

Existing usages of av_tree_find, av_tree_insert are appropriately
modified: type signature changes of the comparators, and removal of
unnecessary void * casts of function pointers.

Reviewed-by: Henrik Gramner <henrik@gramner.com>
Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-24 20:38:07 -04:00
Ganesh Ajjanagadde
94f333f9dc avutil/tree: improve documentation for av_tree_find, av_tree_insert
This documents the additional constness, and provides a useful libc
reference for the API specification of the comparator.

Reviewed-by: Henrik Gramner <henrik@gramner.com>
Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-24 20:38:06 -04:00
Ganesh Ajjanagadde
2ee51ef259 avfilter/vf_deshake: use a void * comparator for consistency
For generality, qsort uses a comparator whose elements are void *. This
makes the comparator have such a form, and thus makes the void * cast of
the comparator pointer useless. Furthermore, this makes the code more
consistent with other usages of qsort across the codebase.

Reviewed-by: Henrik Gramner <henrik@gramner.com>
Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-24 20:35:31 -04:00
Ganesh Ajjanagadde
38f4e973ef all: fix -Wextra-semi reported on clang
This fixes extra semicolons that clang 3.7 on GNU/Linux warns about.
These were trigggered when built under -Wpedantic, which essentially
checks for strict ISO compliance in numerous ways.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-24 17:58:17 -04:00
Ganesh Ajjanagadde
4c96985af1 all: remove some casts of function pointer to void *
These casts are unnecessary, and may safely be removed.
Found by enabling -Wpedantic on clang 3.7.

Tested with FATE.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-24 15:14:59 -04:00
Ronald S. Bultje
49d8a70dc5 vp9: uses ff_set_dimensions (which sets coded_width/height).
Fixes ticket 4935.
2015-10-24 15:11:59 -04:00
Ronald S. Bultje
52f84d82bd 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.
2015-10-24 14:34:50 -04:00
Ganesh Ajjanagadde
683462911d avfilter: avoid zero arguments to variadic macro
ISO C requires at least one argument in the place of the ellipsis in a
variadic macro. In particular, under -pedantic, this triggers the
warning -Wgnu-zero-variadic-macro-arguments on clang 3.7.

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-24 10:18:55 -04:00
Marton Balint
5e9f14e4bf libzvbi-teletextdec: fix AVSubtitleRect pict compatiblity code
Only set pict if we got a valid rect.

Signed-off-by: Marton Balint <cus@passwd.hu>
2015-10-24 16:12:26 +02:00
Marton Balint
03037a4aad ffplay: use a separate struct for the rescaled YUVA AVSubtitle rectangles
Current code segfaults since the deprecation of AVSubtitleRect.pict because it
freed/realloced AVSubtitleRect.pict.data by itself.

The new code stores the generated YUVA AVSubtitle rectangles in their own
struct and keeps the original AVSubtitle structure untouched, because
overwriting it is considered invalid API usage.

Signed-off-by: Marton Balint <cus@passwd.hu>
2015-10-24 16:12:25 +02:00
Carl Eugen Hoyos
a3bed3f3e1 lavf/ingenientdec: Add a probe function. 2015-10-24 13:28:32 +02:00
Carl Eugen Hoyos
9c069bf71a lavc/hapdec: Use correct no-transparency colour space.
Reviewed-by: Tom Butterworth
2015-10-24 13:09:58 +02:00
Michael Niedermayer
e06ef9aa5f avcodec/dpxenc: Fix "libavcodec/dpxenc.c:250:44: warning: passing argument 3 of av_image_copy_to_buffer from incompatible pointer type"
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-24 12:16:04 +02:00
Paul B Mahol
daabc59c64 avformat/genh: add ADPCM IMA DVI support
Our decoder have wrong name.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-23 21:12:17 +02:00
Paul B Mahol
a03fe8adba avformat/ads: extend format long description
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-23 19:16:17 +02:00
Paul B Mahol
dfc64f4ddf avformat/svag: extend format long description
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-23 19:12:32 +02:00
Paul B Mahol
8dea76180c avcodec: extend long decription for adpcm psx codec
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-23 19:07:37 +02:00
Paul B Mahol
dd456245b6 avformat/msf: extend format long description
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-23 19:06:14 +02:00
Tom Butterworth
abae43a7d4 Add myself as maintainer for Hap
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-23 18:55:52 +02:00
Ganesh Ajjanagadde
8738885c7d Revert "configure: add -Wstrict-prototypes when available"
This reverts commit e6a93e59adeea1c140f2ef63e4055a15823bfeda,
Wstrict-prototypes is already enabled.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-23 09:10:45 -04:00
Vittorio Giovara
533a619850 innoHeim/Rsupport Screen Capture Codec decoder
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-10-23 14:56:43 +02:00
Ganesh Ajjanagadde
e6a93e59ad configure: add -Wstrict-prototypes when available
GCC (and Clang) have this useful warning that is not enabled by -Wall or
-Wextra. This will ensure that issues like those fixed in
4da52e3630343e8d3a79aef2cafcb6bf0b71e8da
will trigger warnings.

Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-23 08:46:33 -04:00
Ganesh Ajjanagadde
8ed79c45b4 avutil/qsort: use the do while form for AV_QSORT, AV_MSORT
Reviewed-by: Clément Bœsch <u@pkh.me>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-23 08:41:16 -04:00
Ronald S. Bultje
0c7b44a01c vf_psnr/ssim: don't crash if stats_file is NULL. 2015-10-23 06:38:30 -04:00
Tom Butterworth
a60539bb5e avcodec/hap: set bits_per_coded_sample
fixes issue where alpha is ignored in some players

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-23 12:10:07 +02:00
Arttu Ylä-Outinen
233d2fa044 kvazaar: Add libkvazaar HEVC encoder
Signed-off-by: Arttu Ylä-Outinen <arttu.yla-outinen@tut.fi>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-10-23 11:59:27 +02:00
Luca Barbato
18f9308e6a mpjpeg: Cope with multipart lacking the initial CRLF
Some server in the wild do not put the boundary at a newline
as rfc1347 7.2.1 states.
Cope with that by reading a line and if it is not empty reading
a second one.

Reported-By: bitingsock
2015-10-23 11:56:38 +02:00
Luca Barbato
22f4d9c303 img2enc: Make sure the images are atomically written
Users that want to generate a live-preview and serve it
would otherwise get partial images.
2015-10-23 11:55:14 +02:00
Paul B Mahol
ca09eacbce avfilter: add shuffleframes filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-23 11:49:01 +02:00
Luca Barbato
1ec72c6c68 libx264: Make sure the extradata are padded 2015-10-23 11:13:35 +02:00
Michael Niedermayer
573334da82 avformat/mov: Autodetect mp3s which need parsing
mp3 packets all have the same duration and number of samples
if their duration indicated in the container varies then thats an
indication that they are not 1 mp3 packet each.
If this autodetection fails for some case then please contact us
and provide a testcase.

Fixes Ticket4938
2015-10-23 11:01:43 +02:00
Martin Storsjö
5ea5a24eb7 movenc: Honor flush requests with delay_moov, when some tracks lack samples
This also makes sure that a fragmented file without the empty_moov
flag (i.e. with a non-empty initial moov fragment) actually gets
written, if some of the tracks turn out to not have any samples.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-10-23 10:37:49 +03:00
Martin Storsjö
e02dcdf6bb rtsp: Allow $ as interleaved packet indicator before a complete response header
Some RTSP servers ("HiIpcam/V100R003 VodServer/1.0.0") respond to
our keepalive GET_PARAMETER request by a truncated RTSP header
(lacking the final empty line to indicate a complete response
header). Prior to 764ec70149, this worked just fine since we
reacted to the $ as interleaved packet indicator anywhere.

Since $ is a valid character within the response header lines,
764ec70149 changed it to be ignored there. But to keep
compatibility with such broken servers, we need to at least
allow reacting to it at the start of lines.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-10-23 10:31:55 +03:00
Ganesh Ajjanagadde
a7c5005d7b avdevice/pulse_audio_common: add av_warn_unused_result
This does not trigger any warnings, but adds robustness.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-22 19:03:50 -04:00
Ronald S. Bultje
e7d9061d4f vf_ssim: print per-channel dB values. 2015-10-22 17:18:40 -04:00
Ronald S. Bultje
81d7f118e2 vf_psnr: remove %0.2f format specifiers for stream summary line.
This makes output equally precise as vf_ssim.
2015-10-22 17:18:15 -04:00
Michael Niedermayer
3f85552e40 avcodec/libzvbi-teletextdec: Add variable to fix build
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-22 23:00:02 +02:00
Ganesh Ajjanagadde
8507b98c10 avfilter,swresample,swscale: use fabs, fabsf instead of FFABS
It is well known that fabs and fabsf are at least as fast and sometimes
faster than the FFABS macro, at least on the gcc+glibc combination.
For instance, see the reference:
http://patchwork.sourceware.org/patch/6735/.
This was a patch to glibc in order to remove their usages of a macro.

The reason essentially boils down to fabs using the __builtin_fabs of
the compiler, while FFABS needs to infer to not use a branch and to
simply change the sign bit. Usually the inference works, but sometimes
it does not. This may be easily checked by looking at the asm.

This also has the added benefit of reducing macro usage, which has
problems with side-effects.

Note that avcodec is not handled here, as it is huge and
most things there are integer arithmetic anyway.

Tested with FATE.

Reviewed-by: Clément Bœsch <u@pkh.me>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-22 16:13:26 -04:00
Hendrik Leppkes
dde8e5ad02 Merge commit '3ee2c60cc296eee3f63d7b5fee9b4332eeeac9fa'
* commit '3ee2c60cc296eee3f63d7b5fee9b4332eeeac9fa':
  utils: Use data buffers directly instead of an AVPicture

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-22 21:46:56 +02:00
Hendrik Leppkes
3c3997188e Merge commit 'ff7956fcbf8e59b21654b95038de3ed88a850a9e'
* commit 'ff7956fcbf8e59b21654b95038de3ed88a850a9e':
  avplay: Replace avpicture functions with imgutils

avplay and ffplay have diverged quite a bit, and ffplay should be updated
independently.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-22 21:45:49 +02:00
Hendrik Leppkes
ce97363628 avcodec/libzvbi: Update for AVSubtitleRect changes 2015-10-22 21:43:15 +02:00
Hendrik Leppkes
ee573b4d31 Merge commit 'a17a7661906ba295d67afd80ac0770422e1b02b3'
* commit 'a17a7661906ba295d67afd80ac0770422e1b02b3':
  lavc: Add data and linesize to AVSubtitleRect

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-22 21:41:53 +02:00
Michael Niedermayer
37498a4b20 avcodec/nuv: Fix 'libavcodec/nuv.c:83:19: warning: passing argument 3 of av_image_copy from incompatible pointer type'
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-22 21:13:59 +02:00
Michael Niedermayer
ea5a1d1485 avcodec/x86/vc1dsp: Remove unused macro
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-22 21:13:42 +02:00
Hendrik Leppkes
470204218f Merge commit 'f890677d05bc4e8b494a73373ab4cc19791bf884'
* commit 'f890677d05bc4e8b494a73373ab4cc19791bf884':
  Replace any remaining avpicture function with imgutils

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-22 20:48:54 +02:00
Lou Logan
4c46f1d493 avfilter/vf_zscale: fix typo
Fixes #4958 as found by nicol.

Signed-off-by: Lou Logan <lou@lrcd.com>
2015-10-22 10:44:30 -08:00
Hendrik Leppkes
422fab7fbe Merge commit '13bddab7de10aebf6efb98aa6d7ff0c51bb0e364'
* commit '13bddab7de10aebf6efb98aa6d7ff0c51bb0e364':
  nuv: Replace avpicture functions with imgutils

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-22 20:32:07 +02:00
Hendrik Leppkes
8fe1433ad4 Merge commit '48c06386831604921bdaf4fb77ea02766cd615f4'
* commit '48c06386831604921bdaf4fb77ea02766cd615f4':
  dpx: Replace avpicture functions with imgutils

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-22 20:31:09 +02:00
Hendrik Leppkes
ef4fbee79d roqvideodec: use av_frame_copy 2015-10-22 20:23:44 +02:00
Hendrik Leppkes
42b87ed01e Merge commit 'f0a106578d759de6183eea3c75f8373b6d3153c1'
* commit 'f0a106578d759de6183eea3c75f8373b6d3153c1':
  roqvideodec: Replace avpicture functions with imgutils

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-22 20:11:21 +02:00
Hendrik Leppkes
9a6f1eea3e Merge commit 'ef3a3519c10620c4206738595bf03fc0bed71802'
* commit 'ef3a3519c10620c4206738595bf03fc0bed71802':
  rawdec: Replace avpicture functions with imgutils

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-22 20:08:26 +02:00
Hendrik Leppkes
6d34ab1a08 Merge commit 'fcc1280acb6e6f682b34c2101b075b82f83d71ba'
* commit 'fcc1280acb6e6f682b34c2101b075b82f83d71ba':
  rawenc: Replace avpicture functions with imgutils

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-22 20:02:33 +02:00
Hendrik Leppkes
d3cc258a61 Merge commit '3496cec43304ac040d6d05f9d500a6f93cc049e7'
* commit '3496cec43304ac040d6d05f9d500a6f93cc049e7':
  msrle: Use AVFrame instead of AVPicture

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-22 19:43:44 +02:00
Hendrik Leppkes
e9a2ab3ac7 Merge commit 'ac981d16415e7fd99683e10297781c7d9ec1a8cd'
* commit 'ac981d16415e7fd99683e10297781c7d9ec1a8cd':
  APIchanges: Fill in missing dates and hashes

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-22 19:41:52 +02:00
Marton Balint
ddc6bd8c95 ffmpeg: add abort_on option to allow aborting on empty output
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-10-22 19:03:01 +02:00
Marton Balint
5821244b22 ffmpeg: fix ffmpeg.h trailing whitespace
How this passed through the commit hook?

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-10-22 18:56:47 +02:00
Hendrik Leppkes
b54d645116 qsvdec: fix get_format and hwaccel_context handling
This enables the qsv transcoder to actually get activated
2015-10-22 17:01:13 +02:00
Hendrik Leppkes
dd8a4b0f8c Merge commit 'fb472e1a11a4e0caed2c3c91da01ea8e35d9e3f8'
* commit 'fb472e1a11a4e0caed2c3c91da01ea8e35d9e3f8':
  avconv: add support for Intel QSV-accelerated transcoding

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-22 16:18:02 +02:00
Hendrik Leppkes
866a4174db Merge commit 'dc923bc23b3efd949d0bf67ff1abdb95059e5843'
* commit 'dc923bc23b3efd949d0bf67ff1abdb95059e5843':
  qsvenc: add an API for allocating opaque surfaces

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-22 15:55:43 +02:00
Hendrik Leppkes
a440886a35 Merge commit '2ec96b6bd5bf7b22978711bcf2cee702bee89c6f'
* commit '2ec96b6bd5bf7b22978711bcf2cee702bee89c6f':
  qsvenc: cosmetics, reindent

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-22 15:49:26 +02:00
Hendrik Leppkes
2fece1e4d5 Merge commit 'f6f32fc93d39caf329869c1bff8ad024ccab1d42'
* commit 'f6f32fc93d39caf329869c1bff8ad024ccab1d42':
  qsvenc: set the timestamp for PIX_FMT_QSV frames as well

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-22 15:48:11 +02:00
Hendrik Leppkes
760dbdd3c5 Merge commit '772c87c5a658f36d7c0612f5da583fc2bfa54f79'
* commit '772c87c5a658f36d7c0612f5da583fc2bfa54f79':
  qsvenc: support passing arbitrary external buffers to the encoder

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-22 15:46:52 +02:00
Michael Niedermayer
00efaa7983 avutil/intmath: fix undefined behavior in ff_ctzll_c()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-22 14:10:42 +02:00
Vittorio Giovara
dca23ffbc7 lavc: Deprecate AVPicture structure and related functions
This structure served as a bridge between data pointers and frames,
but it suffers from several limitations:
- it is not refcounted and data must be copied to every time
- it cannot be expanded without ABI break due to being used on the stack
- its functions are just wrappers to imgutils which add a layer of
  unneeded indirection, and maintenance burden
- it allows hacks like embedding uncompressed data in packets
- its use is often confusing to our users

AVFrame provides a much better API, and, if a full blown frame is not
needed, it is just as simple and more straightfoward to use data and
linesize arrays directly.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-10-22 13:32:15 +02:00
Vittorio Giovara
3ee2c60cc2 utils: Use data buffers directly instead of an AVPicture
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-10-22 13:31:58 +02:00
Peter Ross
cdfc61de4e libavformat/electronicarts: also demux mpeg audio layer 2
Signed-off-by: Peter Ross <pross@xvid.org>

http://wiki.multimedia.cx/index.php?title=Electronic_Arts_SCxl
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-22 12:08:05 +02:00
Carl Eugen Hoyos
775b84e30e lavc/x86/vc1dsp_init: Fix compilation with --disable-yasm. 2015-10-22 11:37:42 +02:00
Carl Eugen Hoyos
c52c78cc56 lavf/mpjpegdec: Return 0 if an allocation inside the probe function fails. 2015-10-22 11:19:45 +02:00
Paul B Mahol
6debfce6a3 avformat/electronicarts: fix demuxing of certain eam files
Such files have gaps between header chunks.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-22 11:01:00 +02:00
Paul B Mahol
0d7c027483 avformat/electronicarts: support ADPCM PSX
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-22 11:01:00 +02:00
Julian Scheel
7ebe12fc55 mmaldec: Add mpeg2 decoding support
Register mmaldec as mpeg2 decoder. Supporting mpeg2 in mmaldec is just a
matter of setting the correct MMAL_ENCODING on the input port. To ease the
addition of further supported mmal codecs a macro is introduced to generate
the decoder and decoder class structs.

Signed-off-by: Julian Scheel <julian@jusst.de>
Signed-off-by: wm4 <nfxjfg@googlemail.com>
2015-10-22 10:46:03 +02:00
James Almer
73353af6e5 x86/Makefile: move decoder/encoder objects out of the subsystems section
Signed-off-by: James Almer <jamrial@gmail.com>
2015-10-22 03:55:18 -03:00
Marton Balint
b69b43e2c4 ffmpeg: exit on corrupt packets or decoded frames if exit_on_error flag is present
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-10-22 05:07:46 +02:00
Marton Balint
e2b416b68e ffmpeg: factorize checking decoder result
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-10-22 05:07:46 +02:00
Marton Balint
f4730a5845 ffmpeg: exit on av_write_trailer failure if exit_on_error is set
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-10-22 05:07:45 +02:00
Marton Balint
a1240c0522 ffmpeg: log failed av_write_trailer
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-10-22 05:07:45 +02:00
Timothy Gu
ab5f43e634 vc1dsp: Port ff_vc1_put_ver_16b_shift2_mmx to yasm
This function is only used within other inline asm functions, hence the
HAVE_MMX_INLINE guard. Per recent discussions, we should not worry about
the performance of inline asm-only builds.
2015-10-21 20:01:52 -07:00
Alexis Ballier
12628e3369 libavformat/mxfdec.c: Report dark metadata keys only when they match no parser at all, not everytime they fail to match one.
Reviewed-by: Tomas Härdin <tomas.hardin@codemill.se>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-22 00:53:35 +02:00
Alexis Ballier
94ec82f14a libavformat/mxfdec.c: cosmetics: Add missing space after '?' in log message.
Reviewed-by: Tomas Härdin <tomas.hardin@codemill.se>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-22 00:53:35 +02:00
Andreas Cadhalpun
a4680e7170 avcodec: rename avpriv_color_frame to ff_color_frame
It is only used inside libavcodec.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-10-22 00:38:50 +02:00
Andreas Cadhalpun
957f92729a avcodec: drop 2 suffix from avpriv_ac3_parse_header2
avpriv_ac3_parse_header was removed in commit 3dfb643.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-10-22 00:34:54 +02:00
Tobias Rapp
18e8fac531 avfilter/vf_ssim: Add support for writing stats to stdout
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-21 22:11:33 +02:00
Timothy Gu
98da061461 huffyuvencdsp: Cherry pick changes left out in the last commit
Oops.
2015-10-21 12:42:33 -07:00
Timothy Gu
5e586e1bef huffyuvencdsp: Add ff_diff_bytes_{sse2,avx2}
SSE2 version 4%-35% faster than MMX depending on the width.
AVX2 version 1%-13% faster than SSE2 depending on the width.
2015-10-21 12:25:32 -07:00
Julian Scheel
da43e9e157 mmaldec: Fix avpriv_atomic_get usage
There is no avpriv_atomic_get, instead avpriv_atomic_int_get is to be used for
integers. This fixes building mmaldec.

Signed-off-by: Julian Scheel <julian@jusst.de>
Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-21 15:01:36 +02:00
Hendrik Leppkes
4da52e3630 aacdec: fix strict prototype warning
Function protoypes without arguments require a void argument in C,
instead of an empty list.
2015-10-21 14:28:08 +02:00
Vittorio Giovara
ff7956fcbf avplay: Replace avpicture functions with imgutils
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-10-21 12:02:47 +02:00
Vittorio Giovara
a17a766190 lavc: Add data and linesize to AVSubtitleRect
Use the new fields directly instead of the ones from AVPicture.
This removes a layer of indirection which serves no pratical purpose
whatsoever, and will help in removing AVPicture structure completely
later.

Every subtitle encoder/decoder seamlessly points to the new arrays,
so it is possible to deprecate AVSubtitleRect.pict.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-10-21 12:02:29 +02:00
Vittorio Giovara
f890677d05 Replace any remaining avpicture function with imgutils
avpicture_get_size() -> av_image_get_buffer_size()

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-10-21 11:59:59 +02:00
Vittorio Giovara
13bddab7de nuv: Replace avpicture functions with imgutils
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-10-21 11:59:54 +02:00
Vittorio Giovara
48c0638683 dpx: Replace avpicture functions with imgutils
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-10-21 11:59:46 +02:00
Vittorio Giovara
f0a106578d roqvideodec: Replace avpicture functions with imgutils
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-10-21 11:59:38 +02:00
Luca Barbato
ef3a3519c1 rawdec: Replace avpicture functions with imgutils
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-10-21 11:59:33 +02:00
Luca Barbato
fcc1280acb rawenc: Replace avpicture functions with imgutils
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-10-21 11:59:07 +02:00
Vittorio Giovara
3496cec433 msrle: Use AVFrame instead of AVPicture
Callers always use a frame and cast it to AVPicture, change
ff_msrle_decode() to accept an AVFrame directly instead.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-10-21 11:51:07 +02:00
Rostislav Pehlivanov
0f87cbdd51 lavf: add oggparsedaala and bump micro
This commit introduces a parser for the current bitstream produced by
Daala. It currently bears a large similarity with Theora, another
codec produced by Xiph. While likely to change in the future, its basic
format of packet parsing should remain fairly identical with its current
structure.
Once the bitstream freezes, there are a few probable simplifications
that could be made. Also, the current version (major, minor and micro)
is stuck at zero so it's unusable as a way to warn about possible
incompatibilities. This will change once the bitstream freezes,
however until then this file is strictly targeting the current git
master of the reference encoder, libdaala.

This file was developed independently at the same time by both myself
and Vittorio Giovara, who used libav as a starting point. For fairness,
and to prevent confusion and allegations, his name has been added to the
copyright in the license header as well, and vice versa.
2015-10-21 06:02:47 +01:00
Rostislav Pehlivanov
b7c9873bed lavc: add AV_CODEC_ID_DAALA to the list of codec IDs and bump minor
This commit shall introduce the first step of adding support for the
Daala next generation video codec to FFmpeg. Although still in
development, the codec is showing good progress and exchanging work
through IETF drafts. The companies behind Daala are also participating
in the Alliance for Open Media, so it's likely that whatever the result
any of these collaborations produce it's probable that elements from
Daala could be used in them, or perhaps this codec itself could be the
result.
2015-10-21 06:02:47 +01:00
James Zern
6540fe04a3 libvpxenc: remove some unused ctrl id mappings
VP8E_UPD_ENTROPY, VP8E_UPD_REFERENCE, VP8E_USE_REFERENCE were removed
from libvpx and the remaining values were never used here

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Zern <jzern@google.com>
2015-10-20 20:25:53 -07:00
Timothy Gu
6b41b44149 huffyuvencdsp: Convert ff_diff_bytes_mmx to yasm
Heavily based upon ff_add_bytes by Christophe Gisquet.

Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2015-10-20 18:24:54 -07:00
Tobias Rapp
1ec8c1554e avfilter/vf_psnr: Add support for writing stats to stdout
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-21 00:39:50 +02:00
Andreas Cadhalpun
451b6a990a avutil: merge avpriv_float_dsp_init into avpriv_float_dsp_alloc
Also replace the last two usages of avpriv_float_dsp_init with
avpriv_float_dsp_alloc.

Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-10-21 00:24:58 +02:00
Andreas Cadhalpun
3dfb643cd4 avcodec: remove unused avpriv_ac3_parse_header
It was replaced by avpriv_ac3_parse_header2.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-10-21 00:23:31 +02:00
Andreas Cadhalpun
95687dc310 avutil: install des.h, rc4.h and tree.h as public headers
These headers contain functions supposed to be public.

libavutil/des.h:
 av_des_alloc
 av_des_crypt
 av_des_init
 av_des_mac
libavutil/rc4.h:
 av_rc4_alloc
 av_rc4_crypt
 av_rc4_init
libavutil/tree.h
 av_tree_destroy
 av_tree_enumerate
 av_tree_find
 av_tree_insert
 av_tree_node_alloc
 av_tree_node_size

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-10-21 00:23:10 +02:00
Timothy Gu
bc22cd244e dnxhdenc: Optimize get_pixels_8x4_sym for 10-bit
This reverts commit 628e6d0164febc8e69b0f10dfa487e8a2dd1a28a and uses
a better fix.

Before:
4483 decicycles in get_pixels_8x4_sym,  131032 runs,     40 skips

After:
2569 decicycles in get_pixels_8x4_sym,  131054 runs,     18 skips
2015-10-20 12:36:29 -07:00
Hendrik Leppkes
00ae5b401b dca_parser: don't overwrite the sample rate, it may not be correct
The parser only reads the dca core sample rate, which is limited to a
maximum of 48000 Hz, while X96 and HD extensions can increase the sample
rate up to 192000 Hz.

This change prevents the parser and decoder fighting over the sample rate,
potentially confusing user applications. This also fixes sample rate
display of >48000Hz files with ffmpeg/ffprobe when using libdcadec.

Fixes ticket #4397
2015-10-20 13:02:18 +02:00
wm4
de1b1a7da9 avformat/mp3dec: improve junk skipping heuristic
Commit 2b3e9bbfb529e6bde238aeb511b55ebe461664c8 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.
2015-10-20 12:17:21 +02:00
Paul B Mahol
35564318ad avformat: add wve demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-20 09:41:11 +02:00
Paul B Mahol
0e08d6ca14 avformat: add msf demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-20 09:40:08 +02:00
Michael Niedermayer
e91cd8a9c4 compat/solaris/make_sunver.pl: Use /usr/bin/env perl instead of /usr/bin/perl
This is how the other perl scripts in git call perl

Reviewed-by: Ganesh Ajjanagadde <gajjanag@mit.edu>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-20 02:21:34 +02:00
Timothy Gu
068e6cb732 huffyuvencdsp: Use intptr_t for width
It is done this way in huffyuvdsp as well.
2015-10-19 16:57:33 -07:00
Timothy Gu
a079cbf458 x86: vc1dsp_mmx: Move yasm initiation steps to vc1dsp_init
That's where all yasm initiation steps are. Also removes the overlap
between the two files.
2015-10-19 16:52:52 -07:00
Timothy Gu
607f820ec7 x86: fpel: Remove erroneous ff_put_pixels8_mmxext prototype
This function does not exist.
2015-10-19 16:52:37 -07:00
Timothy Gu
cb6f1f8bf9 x86: fpel: Move prototypes for 4-px block functions 2015-10-19 16:52:33 -07:00
Michael Niedermayer
fb4d350ff3 avcodec/mpegaudio_parser: Update comment to match code
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-19 22:16:20 +02:00
James Zern
7b4367d93e vp9_parser: fix endless loop w/0-sized frame
treat this the same as an over-sized superframe packet to break out of
the parser loop and allow the decoder to fail.

Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: James Zern <jzern@google.com>
2015-10-19 12:10:52 -07:00
Vittorio Giovara
ac981d1641 APIchanges: Fill in missing dates and hashes 2015-10-19 13:11:58 +02:00
Matt Oliver
b0bb1dc62d lavu/intmath.h: Move x86 only msvc/icl functions to x86 specific header.
Signed-off-by: Matt Oliver <protogonoi@gmail.com>
2015-10-19 13:40:51 +11:00
Matt Oliver
216cc1f6fe lavu/intmath.h: Add msvc/icl ctzll optimisations.
Signed-off-by: Matt Oliver <protogonoi@gmail.com>
2015-10-19 13:40:27 +11:00
Clément Bœsch
ce0a117ed4 avutil/opt: display a better default value for int/int64 options
Example:

% ./ffmpeg -h encoder=aac
  -aac_coder         <int>        E...A... Coding algorithm (from -1 to 3) (default twoloop)
     faac                         E...A... FAAC-inspired method
     anmr                         E...A... ANMR method
     twoloop                      E...A... Two loop searching method
     fast                         E...A... Constant quantizer
[...]
2015-10-19 00:04:33 +02:00
Kyle Swanson
32403d1fab avfilter/af_flanger: free frame on ENOMEM
Signed-off-by: Kyle Swanson <k@ylo.ph>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-18 21:27:00 +02:00
Ganesh Ajjanagadde
07d4fe3a87 avutil: use EINVAL instead of -1 for the return code of crypto related init functions
These functions return an error typically when the key size is an
incorrect number. AVERROR(EINVAL) is more specific than -1.

Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-18 15:17:58 -04:00
Michael Niedermayer
94f7c97e05 avformat/vag: Remove unused variable pos
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-18 20:43:02 +02:00
Paul B Mahol
416e35e5aa avfilter: add zscale filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-18 18:01:56 +02:00
Ganesh Ajjanagadde
e11e32686f avcodec/bitstream: replace qsort with AV_QSORT
Commit 3a0a2f33a6c955823fa4fb12c0b49cd29a496659 claims large performance
advantages for AV_QSORT over libc's qsort. The reason is that I suspect
that libc's qsort (at least on non LTO builds, like the typical FFmpeg config)
can't inline the comparison callback:
https://stackoverflow.com/questions/5290695/is-there-any-way-a-c-c-compiler-can-inline-a-c-callback-function.
AV_QSORT has two things going for it:
1. The guaranteed inlining of qsort itself. This yields a negligible
boost that may be ignored.
2. The more serious possibility of potentially allowing the comparison
function to be inlined - this is likely responsible for the large boosts
reported.

There is a comment explaining that this is a place that could use some
performance improvement. Thus AV_QSORT is used to achieve that.

Benchmarks deemed unnecessary due to existing claims about AV_QSORT.
Tested with FATE.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-18 09:22:49 -04:00
Carl Eugen Hoyos
9496f565dc configure: Simplify using --disable-all.
libavutil was always built, allow its dependencies to be enabled.
2015-10-18 14:27:51 +02:00
Paul B Mahol
7bbd060324 avcodec/adpcm: increase max channels for ADPCM PSX to 8
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-18 14:17:15 +02:00
Paul B Mahol
bb1d3f1078 avformat/rsd: add VAG support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-18 14:17:14 +02:00
Alexis Ballier
6e8d856ad6 libavcodec/mpegvideo_enc.c: Fix encoding videos with less frames than the delay of the encoder.
When the encoder is fed with less frames than its delay, the picture list looks like { NULL, NULL, ..., frame, frame, frame }. When flushing the encoder (input frame == NULL), we need to ensure the picture list is shifted enough so that we do not return an empty packet, which would mean the encoder has finished, while it has not encoded any frame.

Before the patch, the command:
'./ffmpeg_g -loglevel debug -f lavfi -i "testsrc=d=0.01" -bf 2 -vcodec mpeg2video out.mxf' prints:

Output stream #0:0 (video): 1 frames encoded; 0 packets muxed (0 bytes);

After:

Output stream #0:0 (video): 1 frames encoded; 1 packets muxed (8058 bytes);

Relates to ticket #4817.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-18 11:55:40 +02:00
Michael Niedermayer
fd46d6deac avcodec/mpegvideo_enc: Merge ifs with identical conditions
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-18 11:44:42 +02:00
Michael Niedermayer
b379e1d6df avcodec/mpegvideo_enc: Factor new_picture unref out
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-18 11:42:32 +02:00
Paul B Mahol
002b0499b6 avfilter/af_ladspa: check functions return value in query_formats
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-18 02:01:44 +02:00
Ganesh Ajjanagadde
62144b225d avfilter/internal: Doxygen for ff_fmt_is_in
This clarifies and adds Doxygen for ff_fmt_is_in.

Reviewed-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-17 18:58:38 -04:00
Rostislav Pehlivanov
7303962f14 aacenc_ltp: adjust and speed up autocorrelation calculations
There were some errors in the calculation as well as an entire
unnecessary loop to find the gain coefficient. Merge the
two loops.
Thanks to @ubitux for the suggestions and testing.
2015-10-17 22:53:11 +01:00
Derek Buitenhuis
4ffdba2418 mpegts: Make the sdt_period a double
Having it as a float didn't even allow enough precision to check
for INT_MAX/2.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-10-17 15:02:40 -04:00
Derek Buitenhuis
516d34de42 mpegts: Make the pat_period a double
Having it as a float didn't even allow enough precision to check
for INT_MAX/2.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-10-17 15:02:06 -04:00
Paul B Mahol
c37d2cd01c avformat/vag: fix demuxing stereo files
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-17 20:02:09 +02:00
Michael Niedermayer
c38a6077ee avcodec/aacenc: Fix "libavcodec/aacenc.c:540:13: warning: ISO C90 forbids mixed declarations and code"
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-17 18:58:11 +02:00
Michael Niedermayer
66d3666803 tests/fate-run: Remove ./ from run ffmpeg call
This makes it consistent with ffprobe

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-17 18:58:11 +02:00
Marton Balint
df239b7619 concatdec: fix file_start_time calculation regression
Fixes ticket #4924.

Found-by: Jaroslav Šnajdr <jsnajdr@gmail.com>
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-10-17 18:38:52 +02:00
Ganesh Ajjanagadde
01790484c1 avfilter/internal: add av_warn_unused_result
av_warn_unused_result is added to functions whose return status should
be checked. Currently does not trigger any warnings, but should be
useful for future robustness.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-17 12:27:45 -04:00
Timothy Gu
ed53c14a3c chromakey: Use the pixel descriptor API for chroma subsampling info 2015-10-17 07:43:23 -07:00
Hendrik Leppkes
a8e86b0e3f libavformat/Makefile: remove unnecessary object file from wtv demuxer
The wtv demuxer doesn't reference any functionality from asfdec or asfcrypt
2015-10-17 15:38:27 +02:00
Clément Bœsch
8c9c8fd035 avfilter/selectivecolor: fix correction_method option range 2015-10-17 15:01:57 +02:00
Rostislav Pehlivanov
4c9805538d aacenc_ltp: correct header description comment 2015-10-17 13:28:55 +01:00
Rostislav Pehlivanov
b1d290920d fate: use -profile:a aac_ltp instead of -aac_ltp 1 for LTP encode test
The fate test command line is supposed to serve as an example. It's
nicer to explicitly state the profile rather than setting options
to force it for you.
2015-10-17 12:30:53 +01:00
Rostislav Pehlivanov
b0a3c614b4 aacenc_ltp: replace av_clip() with av_clip_uintp2()
Suggested by ubitux.
Convenient.
2015-10-17 12:24:16 +01:00
Rostislav Pehlivanov
780dba01f9 aacenc_ltp: fix assertion
A value of 2048 will overflow 11 bits.
2015-10-17 12:00:30 +01:00
Michael Niedermayer
92a26261d1 avformat/rsd: Check av_new_packet() return value
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-17 12:56:47 +02:00
Michael Niedermayer
acf23d9451 avformat/genh: Check av_new_packet() return value
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-17 12:56:47 +02:00
Michael Niedermayer
58b19b6f63 tests/fate-run: Remove PROGSUF from function calls
Fixes make fate V=2

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-17 12:56:47 +02:00
Rostislav Pehlivanov
6eff30b0bc fate: increase fuzz on AAC LTP encoding test
Fails on some newer systems (archlinux with a modern GCC version).
2015-10-17 11:23:22 +01:00
Rostislav Pehlivanov
d4da15563f fate: add a parameter to disable TNS for the other encoder tests
Since it became the default option, in order to prevent interference
with the other tests, disable it.
2015-10-17 11:10:26 +01:00
Rostislav Pehlivanov
dfba1be963 aacenc_tns: enable Temporal Noise Shaping by default
In light of the recent changes to the TNS system, it has been
deemed worthy and robust enough to be turned on by default.
2015-10-17 11:10:26 +01:00
Rostislav Pehlivanov
8ce6e24db4 fate: adjust the target for the new TNS changes 2015-10-17 11:10:26 +01:00
Rostislav Pehlivanov
fa4d900c27 aacenc_tns: rework TNS descision logic
Changes:
 - strongly prefer dual filters to a single filter
 - less strict about using 2 filters w.r.t. energy
 - scrap the usage of threshold and spread, useless
 - use odd-shaped windows to set the filter direction
 - use 4 bits instead of 3 bits for short windows
 - simplify and reduce the main loop to a single level
 - add stricter regulations for short windows

All of this now makes the TNS implementation operate
as good as it can and it definitely shows. The frequency
thresholds are now even better defined by looking at
the spectrals and the overall sound has been improved at
the price of just a few bits that are well worth it.
2015-10-17 11:10:26 +01:00
Rostislav Pehlivanov
bf39beca87 aacenc_tns: simplify encoding function
It's simpler and has 2 less levels than the previous which
was practically lifted from the decoder with put_bits() instead
of get_bits().
2015-10-17 11:10:26 +01:00
Rostislav Pehlivanov
f3ad901a32 aacenc_tns: disable coefficient compression by default
Too much effort and work has been spent on such a simple function.
It simply refuses to work as the specifications say, the
transformation is NOT lossless and creates some crackling and
distortions.
Therefore disable it by default and add a couple of warnings to
scare people away from touching it or wasting their time the
way I did.
2015-10-17 11:10:26 +01:00
Rostislav Pehlivanov
8d18d28918 aacenc_tns: add moving average filter for LTP
The decoder does this so I guess we better do that as well.
There's barely any difference between the autoregressive and
the moving average filters looking at spectrals though.
2015-10-17 11:10:26 +01:00
Timothy Gu
801eca1372 opencl: Force the use of 1.2 APIs
Silences warnings regarding `clCreateCommandQueue` being deprecated.

Only a very limited number of products support 2.0. Since the
replacement API (`clCreateCommandQueueWithProperties`) is only available
in 2.0, we should not update it just yet.
2015-10-17 01:16:50 -07:00
Timothy Gu
17c68933f4 opencl: Use "opencl" as log context name
All other classes use lowercase names.
2015-10-17 01:16:50 -07:00
Timothy Gu
893a648182 opencl: Print compilation log
Useful when debugging.
2015-10-17 01:16:50 -07:00
Timothy Gu
d2a1029724 opencl: Print error string when compilation fails 2015-10-17 01:16:50 -07:00
Rostislav Pehlivanov
590008e696 aacenc: increase fuzz on aac-ms-encode test
GCC 3.4 miscompiles it on sunos. Date of release? The second of
August two thousand and five, anno Domini. That's ten years two
months and fourteen days ago. Three thousand seven hundred and
twenty seven days ago. One sixth of the average life expectancy
of a person living in a country with a human development index
of zero point eight hundred and eight, equality adjusted.
GCC 4.3 also miscompiles it, though not as bad.
2015-10-17 06:55:19 +01:00
Rostislav Pehlivanov
777b305bed fate: adjust aac encoder test values and introduce MS and LTP tests
The LTP encoding and the test is a bit slow currently, taking twice
the amount of time the other tests do, so in the future the
total time to encode might be cut down on that test.
2015-10-17 05:59:19 +01:00
Rostislav Pehlivanov
e9299df7a6 aacenc: partially revert previous commits to set options via a profile
It didn't work out because of the exceptions that needed to be made
for the "-1" cases and was overall more confusing that just manually
checking and setting options for each profile.
2015-10-17 03:17:27 +01:00
Ganesh Ajjanagadde
3835554bf8 avfilter/avfiltergraph: fix -Wunused-result warnings
Commit bf0d2d6030c239f91e0368a20fb2dc0705bfec99 introduced
av_warn_unused_result to avfilter/formats, whose associated warnings
were mostly fixed in 6aaac24d72a7da631173209841a3944fcb4a3309. This
fixes the issues in avfilter/avfiltergraph.

Tested with FATE.

Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-16 21:58:50 -04:00
Rostislav Pehlivanov
27d23ae074 aacenc: add support for encoding files using Long Term Prediction
Long Term Prediction allows for prediction of spectral coefficients
via the previously decoded time-dependent samples. This feature
works well with harmonic content 2 or more frames long, like speech,
human or non-human, piano music or any constant tones at very low
bitrates.

It should be noted that the current coder is highly efficient and
the rate control system is unable to encode files at extremely
low bitrates (less than 14kbps seems to be impossible) so this
extension isn't capable of optimum operation. Dramatic difference
is observable with some types of audio and speech but for the most
part the audiable differences are subtle. The spectrum looks better
however so the encoder is able to harvest the additional bits that
this feature provies, should the user choose to enable it. So
it's best to enable this feature only if encoding at the absolutely
lowest bitrate that the encoder is capable of.
2015-10-17 02:31:20 +01:00
Rostislav Pehlivanov
83900c0ed3 aacenc: (re)enable Mid/Side coding by default
Apparently it was set to be enabled by default but after the
profile commits it was reverted to be off by default because
I didn't notice.
Works well so (re)enable it.
2015-10-17 02:31:20 +01:00
Rostislav Pehlivanov
148cf4690c aacenc_pred: only print predictor information if profile is aac_main
Needed because LTP uses predictor_present as well.
2015-10-17 02:31:20 +01:00
Rostislav Pehlivanov
3f3be1c07a aacenc: correctly zero prediction_used array
An oversight, probably because of copy-pasting the TNS line.
2015-10-17 02:31:20 +01:00
Rostislav Pehlivanov
2d9b5ae071 aacenc: slightly simplify and remove a redundant variable
Functionally identical, doesn't change anything.
2015-10-17 02:31:20 +01:00
Rostislav Pehlivanov
564db3e55d aacenc_pred: correct header information 2015-10-17 02:31:20 +01:00
Rostislav Pehlivanov
8dd2d5e70a aacenc: indicate that TNS is off by default
Doesn't change anything, just a slight clarification that
under all profiles TNS is currently off. That'll be soon to change
hopefully.
2015-10-17 02:31:20 +01:00
Rostislav Pehlivanov
b9fb1db9b4 aactab: move ltp_coef[] from aacdectab to aactab
The encoder makes use of it in the following commits.
2015-10-17 02:31:20 +01:00
Michael Niedermayer
a878dfa4f5 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>
2015-10-17 02:18:22 +02:00
Ganesh Ajjanagadde
cf52ae003b avutil/mem: add av_warn_unused_result
This adds av_warn_unused_result to functions whose return codes need to
be checked.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-16 19:53:55 -04:00
James Almer
3d1690b8c6 avutil: undo FF_API_CRYPTO_CONTEXT deprecation
It's been argued that the benefits of the current implementation far outweight
those of making the structs opaque.

This deprecation is not present in any release, so it can be safely removed.

Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-10-16 19:13:38 -03:00
Ganesh Ajjanagadde
6d0c8cb79a avdevice/internal: add av_warn_unused_result
This does not trigger any warnings but adds robustness.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-16 17:28:40 -04:00
Ganesh Ajjanagadde
a0b079ac25 avutil/file: add av_warn_unused_result to av_file_map
The return code here should be checked.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-16 17:18:39 -04:00
Ganesh Ajjanagadde
31ed189d5c avutil/internal: add av_warn_unused_result to avpriv_open
The open syscall can obviously fail, and its return code needs to be
checked.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-16 17:18:21 -04:00
Ganesh Ajjanagadde
cd8a0a9a9a swscale/swscale: add av_warn_unused_result to sws_init_context
This should not trigger any warnings; but adds robustness.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-16 17:18:21 -04:00
Hendrik Leppkes
02daf2b360 Merge commit '68e00ad66d13c57d9eb3a3862b44ab3fb030e19f'
* commit '68e00ad66d13c57d9eb3a3862b44ab3fb030e19f':
  w32pthreads: fix mingw build on x86 with -msse2 or higher

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-16 23:04:59 +02:00
Hendrik Leppkes
af065bf11b Merge commit 'b52307933b576eba741c80108c3dad09eb48ba12'
* commit 'b52307933b576eba741c80108c3dad09eb48ba12':
  wrapped_avframe: Drop a now-unused variable

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-16 23:04:46 +02:00
Hendrik Leppkes
eebea62671 Merge commit '49d7fcd774ac31f242818ad9d45d9c013f3bb3db'
* commit '49d7fcd774ac31f242818ad9d45d9c013f3bb3db':
  mpeg12: Unbreak building stale code

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-16 23:04:14 +02:00
Hendrik Leppkes
d307c44baf Merge commit '504e3f75bf73a488d39a80a42962bae2a353dd6b'
* commit '504e3f75bf73a488d39a80a42962bae2a353dd6b':
  aac: Make codec init run under ff_thread_once

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-16 23:03:49 +02:00
Hendrik Leppkes
ba94e985a3 Merge commit '1f84b008bf2b1eaca473937c48788cb4e4ce1aea'
* commit '1f84b008bf2b1eaca473937c48788cb4e4ce1aea':
  fate: Move screenpresso to the appropriate screen capture file

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-16 23:00:11 +02:00
Hendrik Leppkes
53fc900ca0 Merge commit '2d59159508c5c1830cc5da907a9454e229077320'
* commit '2d59159508c5c1830cc5da907a9454e229077320':
  lavc: AV-prefix a few left out capabilities

Not applied, since this change breaks compilation and is not correct.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-16 22:58:24 +02:00
Hendrik Leppkes
93ac7a98e0 Merge commit '9ef748173a4e0e58d40afaf38397783cd2537eaa'
* commit '9ef748173a4e0e58d40afaf38397783cd2537eaa':
  cmdutils: Print general codec capabilities

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-16 22:57:21 +02:00
Hendrik Leppkes
0ad43d0f15 Merge commit 'e240a28b20680b326a39b0860fda37d7e459bfc0'
* commit 'e240a28b20680b326a39b0860fda37d7e459bfc0':
  cmdutils: Add auto to threading capabilities report

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-16 22:46:23 +02:00
Michael Niedermayer
5063a18f56 avcodec/ffv1dec: update progress in case of broken pointer chains
Fixes deadlock
Fixes Ticket4932

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-16 22:25:20 +02:00
Michael Niedermayer
4c2d4e8700 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>
2015-10-16 21:14:56 +02:00
James Almer
8297f560cc avformat/rsd: propagate return values of extradata helper functions
They can return errors other than ENOMEM

Signed-off-by: James Almer <jamrial@gmail.com>
2015-10-16 16:11:58 -03:00
Anton Khirnov
fb472e1a11 avconv: add support for Intel QSV-accelerated transcoding
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-10-16 20:01:37 +02:00
Anton Khirnov
dc923bc23b qsvenc: add an API for allocating opaque surfaces 2015-10-16 20:00:40 +02:00
Anton Khirnov
2ec96b6bd5 qsvenc: cosmetics, reindent 2015-10-16 20:00:17 +02:00
Anton Khirnov
f6f32fc93d qsvenc: set the timestamp for PIX_FMT_QSV frames as well 2015-10-16 20:00:12 +02:00
Anton Khirnov
772c87c5a6 qsvenc: support passing arbitrary external buffers to the encoder 2015-10-16 20:00:02 +02:00
Agatha Hu
2b5dda3f48 avcodec/nvenc: fix b frame n_quant_offset
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2015-10-16 18:24:10 +02:00
Hendrik Leppkes
68e00ad66d w32pthreads: fix mingw build on x86 with -msse2 or higher
When SSE2 or higher compiler optimizations are used, mingw uses
the _mm_mfence intrinsic for MemoryBarrier, however it doesn't include
the appropriate headers automatically.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-10-16 17:46:41 +02:00
Luca Barbato
b52307933b wrapped_avframe: Drop a now-unused variable 2015-10-16 17:45:09 +02:00
Luca Barbato
49d7fcd774 mpeg12: Unbreak building stale code
Broken in 2d59159508c5c1830cc5da907a9454e229077320
2015-10-16 17:45:09 +02:00
Paul B Mahol
8e7571eacd avformat: add svag demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-16 16:37:41 +02:00
Paul B Mahol
3a63890154 avformat/rsd: add WADP support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-16 16:37:41 +02:00
Paul B Mahol
3919089beb avformat: add ads demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-16 16:37:40 +02:00
Paul B Mahol
c0aeee9443 avformat: add vag demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-16 16:37:40 +02:00
Paul B Mahol
af70117c38 avformat: add genh demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-16 16:37:40 +02:00
Paul B Mahol
8b11e43799 avcodec: add ADPCM PSX decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-16 16:37:40 +02:00
Michael Niedermayer
377883c4be avfilter/avfilter: Error out if audio parameters change instead of failing an assert
Filters which support such changes should be excluded from these checks

Fixes Ticket4884

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-16 15:25:09 +02:00
Hendrik Leppkes
97be5d4d20 w32pthreads: fix mingw build on x86 with -msse2 or higher
When SSE2 or higher compiler optimizations are used, mingw uses
the _mm_mfence intrinsic for MemoryBarrier, however it doesn't include
the appropriate headers automatically.
2015-10-16 14:54:48 +02:00
Hendrik Leppkes
e12908d71e vp9: use AVFrame.buf[0] to check if a frame is valid
AVFrame.data[0] is not guaranteed to be set with a HWAccel
2015-10-16 14:53:41 +02:00
Christophe Gisquet
42c1dcde68 fate: use PROGSSUF
May require exporting in the shell var PROGSUF when invoking a
shell script.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-16 14:02:12 +02:00
Ganesh Ajjanagadde
5e80a6cd31 avdevice/alsa: add av_warn_unused_result
This does not trigger any warnings, but adds robustness.

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-16 07:54:36 -04:00
Ganesh Ajjanagadde
0418541d5d avutil/cast5: update Doxygen for av_cast5_init with return information
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-15 22:32:58 -04:00
Ganesh Ajjanagadde
ef62f573ca swresample/swresample_internal: add av_warn_unused_result
This will trigger a few warnings that need to be fixed.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-15 22:27:23 -04:00
Michael Niedermayer
d6f6e98eb1 avutil/crc: use EINVAL instead of -1 for the return code of av_crc_init()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-16 03:24:36 +02:00
Michael Niedermayer
c980c5e54d avcodec/jpeg2000dec: Clear properties in jpeg2000_dec_cleanup() too
Fixes: Ticket4878

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-15 22:00:49 +02:00
Vicente Olivert Riera
50366b4295 mips: disable all features in configure if no cpu is matched
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Reviewed-by: Nedeljko Babic <Nedeljko.Babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-15 20:19:10 +02:00
wm4
17fe18d21a Revert "avcodec/h264: remove redundant and bogus get_format call"
This reverts commit be583c6fd3a6f06844b56619653b9b0e4561870d.

This was not approved, and was accidentally pushed. I'm very sorry.
2015-10-15 20:19:55 +02:00
wm4
cdf4a13f86 swresample: slightly nicer debug output for auto matrix
This is the matrix that will be used for up/downmixing.
2015-10-15 20:16:13 +02:00
wm4
be583c6fd3 avcodec/h264: remove redundant and bogus get_format call
The AVCodecContext.get_format callback is not only used for pixel format
negotiation with the API user, but also for hwaccel init. For the
latter, it's required that some codec parameters, in particular the
codec profile, are set when the callback is invoked.

This patch removes a get_format invocation where this is not guaranteed.
The codec parameters, including the profile, are really set further
below. (The same code path that sets the profile also calls get_format
properly too.)

This just happened to work by coincidence in most cases. For example, if
the API user just copied or reused the AVStream's AVCodecContext when
decoding, the profile would be set properly. But in some cases it
fails., such as with the sample WolfensteinTwitch.mp4 on the samples
server.

Remove the redundant get_format call. Apparently it serves no purpose
anymore, although it is possible that this was different at the time it
was added in commit ffd77f94a26be22b8ead3178ceec3ed39e68abc5.

This fixes hwaccel usage for API users which do not set the profile
when setting up the AVCodecContext (which is allowed).
2015-10-15 20:16:13 +02:00
Derek Buitenhuis
504e3f75bf aac: Make codec init run under ff_thread_once
This makes AAC init threadsafe.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-10-15 14:00:24 -04:00
Derek Buitenhuis
1a29804558 aac: Make codec init run under ff_thread_once
This makes AAC init threadsafe.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-10-15 13:48:55 -04:00
wang-bin
0861862b89 winrt: multithreading support
_beginthreadex is for desktop only. CreateThread is available for windows store apps on windows (and phone) 8.1 and later. http://msdn.microsoft.com/en-us/library/ms682453%28VS.85%29.aspx

Signed-off-by: Matt Oliver <protogonoi@gmail.com>
2015-10-16 00:54:57 +11:00
Vittorio Giovara
1f84b008bf fate: Move screenpresso to the appropriate screen capture file 2015-10-15 15:47:16 +02:00
Vittorio Giovara
2d59159508 lavc: AV-prefix a few left out capabilities 2015-10-15 15:47:16 +02:00
Vittorio Giovara
9ef748173a cmdutils: Print general codec capabilities 2015-10-15 15:47:08 +02:00
Vittorio Giovara
e240a28b20 cmdutils: Add auto to threading capabilities report
And use 'none' when such capabilities are not set.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-10-15 15:43:21 +02:00
Anssi Hannula
9099079488 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
da7759b3579de3e98deb1ac58e642b861280ba54

Fixes ticket #4797.
2015-10-15 15:04:00 +03:00
Anssi Hannula
fd74d45d51 avformat/hls: fix segment selection regression on track changes of live streams
Commit ad701326b43078b90 ("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.
2015-10-15 15:04:00 +03:00
Hendrik Leppkes
6e719dc6bb vp9: expose reference frames in VP9SharedContext 2015-10-15 13:02:23 +02:00
Ronald S. Bultje
b95f241b6e vp9: split header into separate struct and expose in vp9.h
This allows hwaccels to access the bitstream header information.
2015-10-15 13:02:20 +02:00
Clément Bœsch
f2f55bd9ca build/videotoolbox: add missing CoreVideo framework 2015-10-15 10:43:55 +02:00
Clément Bœsch
3041618516 ffmpeg/videotoolbox: protect UTGetOSTypeFromString on both VDA and VT 2015-10-15 10:22:31 +02:00
Clément Bœsch
9898ef8139 ffmpeg/videotoolbox: try to fix compilation when cross compiling ffmpeg with VT for iOS under certain configuration
Likely a regression from 8f6f357fde0ea88db180db07a6d749ef95f52c28
2015-10-15 10:13:02 +02:00
Ganesh Ajjanagadde
76cd82d925 doc/ffmpeg: use stream_loop instead of loop
Commit dbb03b8e47f905f0f7b10c3eb5ac11f9bfc793ff renamed loop to
stream_loop. This documents the change.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-14 21:56:31 -04:00
Kyle Swanson
0131636f22 avfilter/af_tremolo: clean up extra newlines
Signed-off-by: Kyle Swanson <k@ylo.ph>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-15 03:14:47 +02:00
Christophe Gisquet
96b165fae2 dnxhd: interleave AC levels and flags
This allows more efficient access to the array as the level and flags
are contiguous. Around 4% faster coefficient decoding.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-15 02:46:29 +02:00
Carl Eugen Hoyos
2c2d1624a2 lavf: Remove duplicated latm demuxer.
The demuxer used to demux loas files for which a dedicated demuxer exists.
2015-10-15 01:11:17 +02:00
Michael Niedermayer
83fc0b9d48 doc/examples/muxing: Fix mixed declaration and code
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-15 00:24:00 +02:00
Hendrik Leppkes
15db457ea8 Merge commit 'd15368ee3926152a3a301c13cc638fbf7a062ddf'
* commit 'd15368ee3926152a3a301c13cc638fbf7a062ddf':
  h264: Run VLC init under pthread_once

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-14 23:06:06 +02:00
Hendrik Leppkes
f05021f3f4 Merge commit 'c53e796f8b69799b7ad6d28fbab981d37edf1bc9'
* commit 'c53e796f8b69799b7ad6d28fbab981d37edf1bc9':
  thread: Provide no-op variants for pthread_once

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-14 23:02:35 +02:00
Hendrik Leppkes
b66a94ab53 Merge commit '08377f9c3bf6dbe216512a2e05c9fac837b13fc0'
* commit '08377f9c3bf6dbe216512a2e05c9fac837b13fc0':
  dxva: Include last the internal header

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-14 23:02:00 +02:00
Hendrik Leppkes
0e4528b88e Merge commit 'c1348506697377b46f844339c178332e3314149a'
* commit 'c1348506697377b46f844339c178332e3314149a':
  httpauth: Add space after commas in HTTP/RTSP auth header

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-14 23:01:20 +02:00
Hendrik Leppkes
7ac4140c07 Merge commit 'e55376a1fd5abebbb0a082aa20739d58c2260a37'
* commit 'e55376a1fd5abebbb0a082aa20739d58c2260a37':
  rtmpproto: Write correct flv packet sizes at the end of packets

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-14 22:55:55 +02:00
Michael Niedermayer
dbb03b8e47 ffmpeg_opt: rename loop option to stream_loop
The "loop" option is used in several demuxers (like img2dec) and muxers, using the same name in ffmpeg_opt
breaks them. Feel free to revert this and replace by any other solution or rename both as preferred
This is just as a quick fix to avoid the regression with existing command lines and to have both named
the same (which does not work)

Example:
./ffmpeg -loop 1 -i fate-suite/png1/lena-rgb24.png -t 1 test.avi
will produce 25 frames with the img2dec loop but only 1 frame at 25fps with the ffmpeg loop option

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-14 21:06:28 +02:00
Zhang Rui
6c7f289fab avformat/async: cache some data for fast seek backward
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-14 20:40:09 +02:00
Zhang Rui
87ff61b9ab avutil/fifo: add function av_fifo_generic_peek_at()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-14 20:23:58 +02:00
Ganesh Ajjanagadde
55d3e97970 avutil/intmath: use de Bruijn based ff_ctz
It has already been demonstrated that the de Bruijn method has benefits
over the current implementation: commit 971d12b7f9d7be3ca8eb98e6c04ed521f83cbd3c.
That commit implemented it for long long, this extends it to the int version.

Tested with FATE.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2015-10-14 13:39:42 -04:00
Hendrik Leppkes
2d0a10e369 Remove test file that accidentally ended up in one commit 2015-10-14 17:06:07 +02:00
Carl Eugen Hoyos
1f2c474cb2 lavf/vc1dec: Autodetect raw vc-1 streams.
Move the demuxer into its own file.
2015-10-14 16:40:57 +02:00
Clément Bœsch
c793a271d5 doc/filters: fix selectivecolor example
Fixes Ticket #4927
2015-10-14 16:34:41 +02:00
Ganesh Ajjanagadde
bf0d2d6030 avfilter/formats: add av_warn_unused_result to function prototypes
This uses the av_warn_unused_result attribute liberally to catch some forms of improper
usage of functions defined in avfilter/formats.h.

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-14 10:19:26 -04:00
Ganesh Ajjanagadde
6aaac24d72 avfilter/all: propagate errors of functions from avfilter/formats
Many of the functions from avfilter/formats can return errors, usually AVERROR(ENOMEM).
This propagates the return values.

All of these were found by using av_warn_unused_result, demonstrating its utility.

Tested with FATE. I am least sure of the changes to avfilter/filtergraph,
since I don't know what/how reduce_format is intended to behave and how it should
react to errors.

Fixes: CID 1325680, 1325679, 1325678.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Previous version Reviewed-by: Nicolas George <george@nsup.org>
Previous version Reviewed-by: Clément Bœsch <u@pkh.me>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-14 10:04:01 -04:00
Hendrik Leppkes
8ededd5836 Merge commit '6a23a34274b747280c1e4a00ad22f97f99bbb48a'
* commit '6a23a34274b747280c1e4a00ad22f97f99bbb48a':
  mimic: drop AVPicture usage

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-14 15:01:54 +02:00
Hendrik Leppkes
3d93ff289e Merge commit '6fdd4c678ac1ce0776f9645cd534209e5f1ae1e3'
* commit '6fdd4c678ac1ce0776f9645cd534209e5f1ae1e3':
  libschroedinger: Properly use AVFrame API

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-14 15:00:53 +02:00
Hendrik Leppkes
9c3f75c29d Merge commit '901f9c0a32985f48672fd68594111dc55d88a57a'
* commit '901f9c0a32985f48672fd68594111dc55d88a57a':
  qtrle: Properly use AVFrame API

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-14 14:56:16 +02:00
Hendrik Leppkes
6281749909 Merge commit '17e41cf3614973258c24aa2452215ef7e3bfa5ed'
* commit '17e41cf3614973258c24aa2452215ef7e3bfa5ed':
  avcodec: Do not lock during init if there is no init function

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-14 14:54:04 +02:00
Hendrik Leppkes
a34dfc93ef ffmpeg: add deprecation guards around remaining AVFMT_RAWPICTURE usage 2015-10-14 14:52:43 +02:00
Hendrik Leppkes
435dfc15df ffmpeg: remove trailing whitespace that sneaked into the previous merge 2015-10-14 14:52:42 +02:00
Hendrik Leppkes
1899b25799 Merge commit '34ed5c2e4d9b7fe5c9b3aae2da5599fabb95c02e'
* commit '34ed5c2e4d9b7fe5c9b3aae2da5599fabb95c02e':
  avformat: Do not use AVFMT_RAWPICTURE

Removal from ffmpeg.c not merged because some parts of avdevice
still use it

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-14 14:43:20 +02:00
Derek Buitenhuis
d15368ee39 h264: Run VLC init under pthread_once
This makes the h.264 decoder threadsafe to initialize.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-10-14 14:35:34 +02:00
Luca Barbato
c53e796f8b thread: Provide no-op variants for pthread_once 2015-10-14 14:35:34 +02:00
Luca Barbato
08377f9c3b dxva: Include last the internal header
It redefines _WIN32_WINNT, possibly causing problems with the
w32pthreads.h header.
2015-10-14 14:35:34 +02:00
Andrey Utkin
c134850669 httpauth: Add space after commas in HTTP/RTSP auth header
This fixes access to Grandstream cameras, which return 401 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.

See RFC 2617 (HTTP Auth).

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-10-14 14:35:34 +02:00
Michael Niedermayer
e55376a1fd rtmpproto: Write correct flv packet sizes at the end of packets
In one case it was written as zero, one case left it uninitialized,
missed the 11 bytes for the flv header.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-10-14 14:35:33 +02:00
Hendrik Leppkes
9ccd90626f Merge commit '16b0c929621f84983b83b9735ce973acb12723bc'
* commit '16b0c929621f84983b83b9735ce973acb12723bc':
  avconv: Add loop option.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-14 14:28:20 +02:00
Hendrik Leppkes
b994788353 Merge commit '11c5f438ff83da5040e85bfa6299f56b321d32ef'
* commit '11c5f438ff83da5040e85bfa6299f56b321d32ef':
  dict: Change return type of av_dict_copy()

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-14 14:01:11 +02:00
Hendrik Leppkes
fcfb66ba9b Merge commit 'c1aac39eaccd32dc3b74ccfcce701d3d888fbc6b'
* commit 'c1aac39eaccd32dc3b74ccfcce701d3d888fbc6b':
  build: add Solaris symbol versioning

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-14 13:54:50 +02:00
Hendrik Leppkes
64ceeac26a Merge commit 'b9ece15a01782b4f301c0c139d1d7b20f848914c'
* commit 'b9ece15a01782b4f301c0c139d1d7b20f848914c':
  nullenc: Use the wrapped avframe pseudo-encoder

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-14 13:48:22 +02:00
Hendrik Leppkes
1dd5f3340e Merge commit 'd00a8fd417ad20cecbc7ca17b25f352655148fb1'
* commit 'd00a8fd417ad20cecbc7ca17b25f352655148fb1':
  yuv4mpeg: Use the wrapped avframe pseudo-encoder

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-14 13:44:33 +02:00
Hendrik Leppkes
037b44a3b4 Merge commit '00332e0a064dad866812de9162b009cbaba6f5df'
* commit '00332e0a064dad866812de9162b009cbaba6f5df':
  wrapped_avframe: Initial implementation

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-14 13:26:17 +02:00
wm4
6a23a34274 mimic: drop AVPicture usage
Work on the AVFrame references directly.

Instead of setting up a flipped/swapped "view" on the pictures,
flip/swap them when returning decoded frames to the API user.
2015-10-14 11:25:53 +02:00
Vittorio Giovara
6fdd4c678a libschroedinger: Properly use AVFrame API
Rather than copying data buffers around, allocate a proper frame, and
use the standard AVFrame functions. This effectively makes the decoder
capable of direct rendering.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-10-14 11:24:55 +02:00
Vittorio Giovara
901f9c0a32 qtrle: Properly use AVFrame API
Rather than copying data buffers around, just add a reference to
the current frame.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-10-14 11:24:24 +02:00
Ganesh Ajjanagadde
d59bfcd112 avformat/mov: fix integer overflow
Partially fixes Ticket 4727.

-duration is not a safe expression, since duration can be INT_MIN.
One might ask how it can become INT_MIN.
Although it is true that line 2574 is no longer reached with INT_MIN due
to commit 053e80f6eaf8d87521fe58ea96886b6ee0bbe59d (which fixed another
integer overflow issue), mov_update_dts_shift is called on line 3549 as
well, right after a read of untrusted data.
One can do the fix locally there, but that function is already a huge
mess. Changing mov_update_dts_shift is likely better.

This changes duration to INT_MIN + 1 in such cases. This should not make any
practical difference since such streams are anyway fuzzer files.

Tested with FATE.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-13 19:41:07 -04:00
Ganesh Ajjanagadde
4c8ca76965 ffserver_config: check for INT_MIN before doing FFABS
FFABS(INT_MIN) is not safe. Alternative of using FFNABS is not as
readable.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-13 19:40:09 -04:00
James Almer
74a87ae210 x86/vp9itxfm: fix register clobbering in ff_vp9_idct_idct_4x4_add_12_sse2
Reviewed-by: Henrik Gramner <henrik@gramner.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-10-13 20:21:33 -03:00
Christophe Gisquet
234369d0fd dnxhdenc: fix access outside of image
This is the same test as for the 8bit case.
2015-10-13 18:53:10 -03:00
Christophe Gisquet
74c414202f x86: simple_idct10_template: use const
This avoid going through constants.c while still sharing them
with proresdsp.asm

Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-13 22:52:33 +02:00
Michael Niedermayer
147b12162d avutil/fifo: Fix thread saftey of av_fifo_generic_peek()
changing the context state and restoring it is not safe if another
thread writes data into the fifo

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-13 19:08:42 +02:00
Pedro Arthur
5bd62a1b3c swscale: fix ticket #4881
When scaling only a slice of a frame the output was written always
in the first lines leaving the rest of the frame black.
2015-10-13 13:43:39 -03:00
Nedeljko Babic
de262d018d avcodec/mips/aaccoder_mips: Sync with the generic code
This patch fixes build of AAC encoder optimized for mips that was broken due
 to some changes in generic code that were not propagated to the optimized code.

Also, some functions in the optimized code are basically duplicate of functions
 from generic code. Since they do not bring enough improvement to the optimized
 code to justify their existence, they are removed (which improves
 maintainability of the optimized code).

Optimizations disabled in 97437bd are enabled again.

Signed-off-by: Nedeljko Babic <nedeljko.babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-13 17:22:56 +02:00
Ronald S. Bultje
e578638382 vp9: use registers for constant loading where possible. 2015-10-13 11:06:01 -04:00
Ronald S. Bultje
408bb8556f vp9: refactor itx coefficients and share between 8 and 10/12bpp. 2015-10-13 11:06:01 -04:00
Ronald S. Bultje
eb4b5ff738 vp9: add itxfm_add eob shortcuts to 10/12bpp functions.
These aren't quite as helpful as the ones in 8bpp, since over there,
we can use pmulhrsw, but here the coefficients have too many bits to
be able to take advantage of pmulhrsw. However, we can still skip
cols for which all coefs are 0, and instead just zero the input data
for the row itx. This helps a few % on overall decoding speed.
2015-10-13 11:06:01 -04:00
Ronald S. Bultje
488fadebbc vp9: add 10/12bpp idct_idct_32x32 sse2 SIMD version. 2015-10-13 11:06:00 -04:00
Ronald S. Bultje
3d0ca2fe89 vp9: 10/12bpp sse2 SIMD for iadst16. 2015-10-13 11:06:00 -04:00
Ronald S. Bultje
0e80265b0a vp9: refactor 10/12bpp dc-only code in 4x4/8x8 and add to 16x16. 2015-10-13 11:06:00 -04:00
Ronald S. Bultje
1338fb79d4 vp9: add 10/12bpp sse2 SIMD version for idct_idct_16x16. 2015-10-13 11:06:00 -04:00
Ronald S. Bultje
cb054d061a vp9: add 10/12bpp sse2 SIMD versions of iadst8x8. 2015-10-13 11:05:59 -04:00
Ronald S. Bultje
e0610787b2 vp9: add 10/12bpp sse2 SIMD for idct_idct_8x8. 2015-10-13 11:05:59 -04:00
Ronald S. Bultje
a35f6bdb38 vp9: add 12bpp sse2 versions of iadst4. 2015-10-13 11:05:59 -04:00
Ronald S. Bultje
235e76aeb8 vp9: initial attempt at a idct_idct_4x4 12bpp x86 simd (sse2) impl.
The trouble with this function is that intermediates overflow 31+sign
bits, so I've added some helpers (that will also be used in 10/12bpp
8x8, 16x16 and 32x32) to make that easier, basically emulating a half-
assed pmaddqd using 2xpmaddwd. It's currently sse2-only, if anyone sees
potential in adding ssse3, I'd love to hear it.
2015-10-13 11:05:58 -04:00
Ronald S. Bultje
f76423d097 vp9: add x86 simd (sse2/ssse3) for iadst4 10bpp functions. 2015-10-13 11:05:58 -04:00
Ronald S. Bultje
6b579cf547 vp9: add 10bpp simd (mmxext/ssse3) for idct_idct_4x4. 2015-10-13 11:05:58 -04:00
Ronald S. Bultje
1c3be32533 vp9: add 10/12bpp mmxext-optimized iwht_iwht_4x4 function. 2015-10-13 11:05:57 -04:00
Christophe Gisquet
b6594a9605 x86: dct-test: add more idcts
In particular for 10 and 12 bits.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-13 16:03:04 +02:00
Michael Niedermayer
a745d1a9e4 avcodec/dct-test: Print failure notice below the failed *dct
This makes it easier to see where a failure happens

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-13 16:03:03 +02:00
Christophe Gisquet
7ece8b50b1 x86: simple_idct: 12bits versions
On 12 frames of a 444p 12 bits DNxHR sequence, _put function:
C:         78902 decicycles in idct,  262071 runs,     73 skips
avx:       32478 decicycles in idct,  262045 runs,     99 skips

Difference between the 2:
stddev:    0.39 PSNR:104.47 MAXDIFF:    2

This is unavoidable and due to the scale factors used in the x86
version, which cannot match the C ones.

In addition, the trick of adding an initial bias to the input of a
pass can overflow, as the input coefficients are already 15bits,
which is the maximum this function can handle.

Overall, however, the omse on 12 bits samples goes from 0.16916 to
0.16883. Reducing rowshift by 1 improves to 0.0908, but causes
overflows.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-13 15:34:32 +02:00
Derek Buitenhuis
17e41cf361 avcodec: Do not lock during init if there is no init function
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-10-13 13:43:29 +02:00
Luca Barbato
34ed5c2e4d avformat: Do not use AVFMT_RAWPICTURE
There are no formats supporting it anymore and it is deprecated.
Update the documentation accordingly.
2015-10-13 13:43:29 +02:00
Christophe Gisquet
4369b9dc7b x86: simple_idct(_put): 10bits versions
Modeled from the prores version. Clips to [0;1023] and is bitexact.
Bitexactness requires to add offsets in different places compared to
prores or C, and makes the function approximately 2% slower.

For 16 frames of a DNxHD 4:2:2 10bits test sequence:

C:    60861 decicycles in idct, 1048205 runs,    371 skips
sse2: 27567 decicycles in idct, 1048216 runs,    360 skips
avx:  26272 decicycles in idct, 1048171 runs,    405 skips

The add version is not implemented, so the corresponding dsp
function is set to NULL to make it clear in a code executing it.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-13 13:32:21 +02:00
Christophe Gisquet
e652f69b35 x86: simple_idct10_template: fix overflow in pass
When the input of a pass has 15 or 16 bits of precision (in particular
the column pass), the addition of a bias to W4 may lead to overflows
in the input to pmaddwd.

This requires postponing the adding of the bias to after the first
butterfly. To do so, the fact that m15, unused although zeroed, is
exploited. In case the pass is safe, an address can be directly used,
and the number of xmm regs can be decreased. Otherwise, the 32bits bias
is loaded into it.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-13 12:51:10 +02:00
Alexandra Hájková
16b0c92962 avconv: Add loop option.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-10-13 09:41:02 +02:00
Ganesh Ajjanagadde
3b336ec2fb avfilter/af_sidechaincompress: replace FFABS with fabs 2015-10-13 09:37:18 +02:00
Ganesh Ajjanagadde
ac6b7c47cc avfilter/af_astats: replace FFABS with fabs 2015-10-13 09:34:39 +02:00
Ganesh Ajjanagadde
9ab98b580e avfilter/af_agate: replace FFABS with fabs 2015-10-13 09:31:16 +02:00
Christophe Gisquet
f1181e4660 fate: add 10bits YUV4:2:2 dnxhd test
It was useful to (accidentally?) spot an overflow in the column pass
of the x86 simple_idct10 implementation.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-13 04:04:02 +02:00
Christophe Gisquet
2fd14dd8eb avcodec/simple_idct10: improve precision
omse goes from 0.03060703 (which fails for dct-test) to 0.01663750.
This also actually improve the error of decoding the sample generated
by fate-vsynth3-dnxhd1080i-10bit using simple_idct10 to FAANI, which
goes (when resampled to yuv422p) from:
stddev:    0.06 PSNR: 72.28 MAXDIFF:    1
to identical.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-13 02:10:51 +02:00
Christophe Gisquet
e9a68b0316 x86: prores: templatize 10 bits simple_idct
This should be reused for a generic simple_idct10 function.
Requires a bit of trickery to declare common constants in C.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-13 01:10:34 +02:00
Rostislav Pehlivanov
93e6b23c9f aacenc: shorten name of ff_aac_adjust_common_prediction
To keep it similar to the other functions which are all named *_pred.
2015-10-12 23:33:07 +01:00
Rostislav Pehlivanov
65f5b96dd8 aacenc: increase size of s->planar_samples[] from 6 to 8
Left out of last commit which added support for eight channel audio.
2015-10-12 23:25:45 +01:00
Christophe Gisquet
9f3bfe30dd mpegvideo: dnxhdenc: permute 10bits content
Dequant or encoding were trying to reverse a scan that hadn't been
applied...

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-13 00:01:39 +02:00
Michael Niedermayer
97437bd17a avcodec/mips/aaccoder_mips: Disable ff_aac_coder_init_mips() to prevent build failure
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-13 00:01:39 +02:00
Ricardo Constantino
6eaf97c289 avformat/webvttdec: Don't stop parsing on comments
Signed-off-by: Ricardo Constantino <wiiaboo@gmail.com>
2015-10-12 22:16:12 +02:00
Ricardo Constantino
a96dbdc14f fate/subtitles: Add a new test for WebVTT
Includes escapes that should now be supported and a few features not yet
fully supported, like comments, regions, classes, ruby, and lang.

All were tested with https://quuz.org/webvtt/ for validation, except
regions because the validator doesn't support them yet, and I couldn't
find any other way to validate WebVTT.

Signed-off-by: Ricardo Constantino <wiiaboo@gmail.com>
2015-10-12 22:14:44 +02:00
Ricardo Constantino
53886d6955 avcodec/webvttdec: Deal with WebVTT escapes
Bare ampersand characters are still accepted, even though out-of-spec.
Also fixes adjacent tags not being parsed.

Fixes trac #4915

Signed-off-by: Ricardo Constantino <wiiaboo@gmail.com>
2015-10-12 22:04:05 +02:00
Lou Logan
329bd25475 doc/filters: s/nb_inputs/inputs for stack filters
Signed-off-by: Lou Logan <lou@lrcd.com>
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-12 10:56:13 -08:00
Derek Buitenhuis
1156b634c1 avcodec: Don't lock on init for codecs without an init function
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-10-12 15:25:51 -03:00
Rostislav Pehlivanov
ccd3b3df39 fate: increase fuzz on fate-aac-tns-encode test
Fails on SunOS and old GCC (<=4.6 is ancient) versions.
2015-10-12 17:15:30 +01:00
Rostislav Pehlivanov
e2749ef60a aacenc_utils: fit find_form_factor() below 80 chars per line 2015-10-12 17:14:50 +01:00
Rostislav Pehlivanov
0f4334df45 aacenc: add support for changing options based on a profile
This commit adds the ability for a profile to set the default
options, as well as for the user to override such options
by simply stating them in the command line while still keeping
the same profile, as long as those options are still permitted by
the profile.

Example: setting the profile to aac_low (the default) will turn
PNS and IS on. They can be disabled by -aac_pns 0 and -aac_is 0,
respectively. Turning on -aac_pred 1 will cause the profile to be
elevated to aac_main, as long as no options forbidding aac_main
have been entered (like AAC-LTP, which will be pushed soon).

A useful feature is that by setting the profile to mpeg2_aac_low,
all MPEG4 features will be disabled and if the user tries to enable
them then the program will exit with an error. This profile is
signalled with the same bitstream as aac_low (MPEG4) but some devices
and decoders will fail if any MPEG4 features have been enabled.
2015-10-12 16:57:56 +01:00
Alex Agranovsky
cf28490e56 avfilter/drawtext: allow to format pts with strftime
Signed-off-by: Alex Agranovsky <alex@sighthound.com>
2015-10-12 16:56:58 +02:00
Bela Bodecs
1f3a29e999 lavf/tee: allow multiple stream specifiers in select.
It makes possible to put multiple stream specifier into the select
option separated by comma.
eg. select=\'a:0,v\'

Signed-off-by: Bela Bodecs <bodecsb@vivanet.hu>
Signed-off-by: Nicolas George <george@nsup.org>
2015-10-12 16:56:58 +02:00
Rostislav Pehlivanov
b3deaece87 aacenc: add support for encoding 7.1 channel audio
This commit implements support for 7.1 channel audio. There's no
more predefined bitstream channel mappings so going beyond 8 channels
(and 7 channels exactly) will require programmable channel elements,
which is already underway.
2015-10-12 15:53:17 +01:00
Rostislav Pehlivanov
e679a1e65f aacenc_quantization: fix header description
Two guesses as to which file was used as boilerplate.
2015-10-12 15:41:50 +01:00
Vittorio Giovara
11c5f438ff dict: Change return type of av_dict_copy()
av_dict_set() could return an error, so forward it appropriately.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-10-12 13:35:01 +02:00
Claudio Freire
b629c67ddf AAC encoder: memoize quantize_band_cost
The bulk of calls to quantize_band_cost are replaced
by a call to a version that memoizes, greatly improving
performance, since during coefficient search there is
a great deal of repeat work.

Memoization cannot always be applied, so do this in a
different function, and leave the original as-is.
2015-10-12 03:56:22 -03:00
Michael Niedermayer
ce0834bdd6 avformat/flvdec: set broken_sizes for "metadatacreator : MEGA"
The 2nd size value is wrong for the sample file

Fixes: Ticket4903

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-12 05:36:39 +02:00
Claudio Freire
07b3b779a9 AAC encoder: fix assertion error re SF differences
Intermediate results can indeed violate SF delta. Instead of asserting
there, just make the code safe, and assert on the final result.

Also re-clamp SFs more often in short windows (which tend to violate
the restriction when encoding the switch from one window to the other)
2015-10-11 23:00:46 -03:00
Rostislav Pehlivanov
d25c033ddd aaccoder_twoloop.h: simplify and comment ff_pns_bits() 2015-10-12 01:42:43 +01:00
Rostislav Pehlivanov
5f760da6b6 aacenc_utils: add 'inline' flag to find_form_factor, silence warning
Seems it was forgotten.
2015-10-12 01:12:43 +01:00
James Almer
224a529b44 x86/vf_w3fdif: use aligned loads in w3fdif_simple_high
Found-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-10-11 20:07:12 -03:00
James Almer
e8903fbf8e x86/vf_w3fdif: simplify w3fdif_simple_high
Signed-off-by: James Almer <jamrial@gmail.com>
2015-10-11 20:04:54 -03:00
Andreas Cadhalpun
ec0275843d avcodec: remove leftover iff_byterun1 decoder
It was merged with the iff_ilbm decoder in commit
929a24efff9a208a52748605eb412ffb915c1403.

Define AV_CODEC_ID_IFF_BYTERUN1 as AV_CODEC_ID_IFF_ILBM for API
compatibility.

Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-10-12 00:21:13 +02:00
Marton Balint
148418a2bc ffplay: eliminate stream_component_close forward declaration
No change in fuctionality.

Signed-off-by: Marton Balint <cus@passwd.hu>
2015-10-12 00:07:38 +02:00
Marton Balint
4ce75387cd ffplay: close streams and AVFormatContext in the main thread
To avoid race conditions.

Signed-off-by: Marton Balint <cus@passwd.hu>
2015-10-12 00:07:38 +02:00
Ronald S. Bultje
93866c2aa2 intmath: remove av_ctz.
It's a non-installed header and only used in one place (flacenc).
Since ff_ctz is static inline, it's fine to use that instead.
2015-10-11 18:03:10 -04:00
Claudio Freire
79f2014f12 AAC encoder tests: increase fuzz for pred test
MIPS needs more fuzz
2015-10-11 18:46:27 -03:00
Ganesh Ajjanagadde
3ae98497c2 ffmpeg: modify tty state when stderr is redirected
Removes unnecessary isatty(), fixes Ticket2964

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2015-10-11 17:41:15 -04:00
Claudio Freire
323d37521d AAC encoder: cosmetics from last commit
Reindent
2015-10-11 18:06:02 -03:00
Claudio Freire
01ecb7172b AAC encoder: Extensive improvements
This finalizes merging of the work in the patches in ticket #2686.

Improvements to twoloop and RC logic are extensive.

The non-exhaustive list of twoloop improvments includes:
 - Tweaks to distortion limits on the RD optimization phase of twoloop
 - Deeper search in twoloop
 - PNS information marking to let twoloop decide when to use it
   (turned out having the decision made separately wasn't working)
 - Tonal band detection and priorization
 - Better band energy conservation rules
 - Strict hole avoidance

For rate control:
 - Use psymodel's bit allocation to allow proper use of the bit
   reservoir. Don't work against the bit reservoir by moving lambda
   in the opposite direction when psymodel decides to allocate more/less
   bits to a frame.
 - Retry the encode if the effective rate lies outside a reasonable
   margin of psymodel's allocation or the selected ABR.
 - Log average lambda at the end. Useful info for everyone, but especially
   for tuning of the various encoder constants that relate to lambda
   feedback.

Psy:
 - Do not apply lowpass with a FIR filter, instead just let the coder
   zero bands above the cutoff. The FIR filter induces group delay,
   and while zeroing bands causes ripple, it's lost in the quantization
   noise.
 - Experimental VBR bit allocation code
 - Tweak automatic lowpass filter threshold to maximize audio bandwidth
   at all bitrates while still providing acceptable, stable quality.

I/S:
 - Phase decision fixes. Unrelated to #2686, but the bugs only surfaced
   when the merge was finalized. Measure I/S band energy accounting for
   phase, and prevent I/S and M/S from being applied both.

PNS:
 - Avoid marking short bands with PNS when they're part of a window
   group in which there's a large variation of energy from one window
   to the next. PNS can't preserve those and the effect is extremely
   noticeable.

M/S:
 - Implement BMLD protection similar to the specified in
   ISO-IEC/13818:7-2003, Appendix C Section 6.1. Since M/S decision
   doesn't conform to section 6.1, a different method had to be
   implemented, but should provide equivalent protection.
 - Move the decision logic closer to the method specified in
   ISO-IEC/13818:7-2003, Appendix C Section 6.1. Specifically,
   make sure M/S needs less bits than dual stereo.
 - Don't apply M/S in bands that are using I/S

Now, this of course needed adjustments in the compare targets and
fuzz factors of the AAC encoder's fate tests, but if wondering why
the targets go up (more distortion), consider the previous coder
was using too many bits on LF content (far more than required by
psy), and thus those signals will now be more distorted, not less.

The extra distortion isn't audible though, I carried extensive
ABX testing to make sure.

A very similar patch was also extensively tested by Kamendo2 in
the context of #2686.
2015-10-11 17:29:50 -03:00
Ganesh Ajjanagadde
624057df3f avfilter/buffersrc: add av_warn_unused_result attributes
This adds av_warn_unused_result whenever it is relevant.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2015-10-11 14:30:47 -04:00
Jean-Yves Avenard
f05ff057ff configure: fix configure when using gcc
Fixes Ticket4922.

Commit 060102389e572abb2beaed3b9f5e1036aeea43f1 broke configure, since
the inversion ! was missed while converting the grep to a case
statement.

Reviewed-by: Nicolas George <george@nsup.org>
Reviewed-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-11 13:25:13 -04:00
James Almer
d2bf2d094e x86/vf_w3fdif: move pxor outside the loop in w3fdif_complex_low
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-10-11 14:23:21 -03:00
Paul B Mahol
f226c25a37 avcodec/sipr: use AVERROR return code instead of -1
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-11 18:40:28 +02:00
Paul B Mahol
a99226133e avformat/rsd: support XADP tag
It appears that Xbox ADPCM is same as WAV adpcm.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-11 18:39:23 +02:00
Michael Niedermayer
98b8bf12bc avcodec/pngdec: Use av_malloc_array()
Suggested-by: ubitux
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-11 16:39:41 +02:00
Michael Niedermayer
c08b06c225 avcodec/jpeg2000dec: Check that step_x/y are valid before use in JPEG2000_PGOD_PCRL
Fixes: CID1322305 and CID1322304

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-11 15:43:26 +02:00
Sean McGovern
c1aac39eac build: add Solaris symbol versioning
The versioning facility in the Solaris linker differs from Linux in 3 ways:

1. It does not support globs in linker scripts for
symbol versioning -- this is a GNU extension.

2. The linker argument is '-M', instead of '--version-script'.

3. It is picky about line endings.
Each symbol or directive must be on a line of it's own.

Let's use make_sunver.pl from GCC to generate a version script that works
correctly with the Solaris linker. It's function is to correctly expand the
globs in the original generated version script.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-10-11 15:42:36 +02:00
Clément Bœsch
49f4967dd0 avfilter: add selectivecolor filter 2015-10-11 13:44:33 +02:00
Michael Niedermayer
47c5a3058e avcodec/pngdec: Alloc buffer after blend_op check in handle_p_frame_apng()
Avoids memleak on error
Fixes CID1322342

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-11 13:09:56 +02:00
Michael Niedermayer
14573b9b7c Revert "Merge commit '8b830ee9a26d47b138f12a82085cdb372f407f1e'" (avconv: Do not try to configure filter outputs without streams)
FFmpeg already tests for this case in configure_output_filter() and printed a
clearer error message

example:
./ffmpeg -f lavfi -i color -f lavfi -i color -filter_complex "[1]null[x],[0][1]overlay" -f null -
before the merge / after the revert:
Filter null has a unconnected output

after the merge / before the revert:
Output pad "default" with type video of the filter instance "Parsed_null_0" of null not connected to any destination
Error configuring complex filters.
Invalid argument

This reverts commit 3e3779cd517e4d2d1f21d5eb6afdb428cd3c1aa0, reversing
changes made to 0b28039a44b33753d77116691d680bd60f3bac1f.

Reviewed-by: Ganesh Ajjanagadde <gajjanag@mit.edu>
2015-10-11 12:24:43 +02:00
Michael Niedermayer
2a4d1a66e8 avutil/intmath: Change debruijn_ctz64 to use 8bit elements
This reduces the memory & cache need from 256 to 64 bytes
the code also seems faster with this change

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-11 04:21:01 +02:00
Ganesh Ajjanagadde
971d12b7f9 avutil/mathematics: speed up av_gcd by using Stein's binary GCD algorithm
This uses Stein's binary GCD algorithm:
https://en.wikipedia.org/wiki/Binary_GCD_algorithm
to get a roughly 4x speedup over Euclidean GCD on standard architectures
with a compiler intrinsic for ctzll, and a roughly 2x speedup otherwise.
At the moment, the compiler intrinsic is used on GCC and Clang due to
its easy availability.

Quick note regarding overflow: yes, subtractions on int64_t can, but the
llabs takes care of that. The llabs is also guaranteed to be safe, with
no annoying INT64_MIN business since INT64_MIN being a power of 2, is
shifted down before being sent to llabs.

The binary GCD needs ff_ctzll, an extension of ff_ctz for long long (int64_t). On
GCC, this is provided by a built-in. On Microsoft, there is a
BitScanForward64 analog of BitScanForward that should work; but I can't confirm.
Apparently it is not available on 32 bit builds; so this may or may not
work correctly. On Intel, per the documentation there is only an
intrinsic for _bit_scan_forward and people have posted on forums
regarding _bit_scan_forward64, but often their documentation is
woeful. Again, I don't have it, so I can't test.

As such, to be safe, for now only the GCC/Clang intrinsic is added, the rest
use a compiled version based on the De-Bruijn method of Leiserson et al:
http://supertech.csail.mit.edu/papers/debruijn.pdf.

Tested with FATE, sample benchmark (x86-64, GCC 5.2.0, Haswell)
with a START_TIMER and STOP_TIMER in libavutil/rationsl.c, followed by a
make fate.

aac-am00_88.err:
builtin:
714 decicycles in av_gcd,    4095 runs,      1 skips

de-bruijn:
1440 decicycles in av_gcd,    4096 runs,      0 skips

previous:
2889 decicycles in av_gcd,    4096 runs,      0 skips

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-11 04:08:41 +02:00
Michael Niedermayer
1e7e4f13f9 avcodec/pngdec: Check blend_op.
Fixes CID1322359, CID1322358

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-11 03:46:44 +02:00
Ganesh Ajjanagadde
f3fc103c6a doc/resampler, swresample/options: use proper capitalization
Proper names should be capitalized in all user facing API as far as
possible. The option names themselves have not been changed since:
1. We consistently keep option names in lower case.
2. Changing them would break existing scripts.
3. I suspect that we want to be similar to Sox and its relevant options.

The converse is also true: improper names should not be capitalized
generally.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-10 20:49:54 +02:00
Ganesh Ajjanagadde
07c60684a7 gitignore: ignore object file temporaries
During a build, a lot of *.o.-hash files are created - had not noticed
this as they are usually dumped in tmpfs on Linux. However, they
sometimes are present during a long build in the project directory, making it
annoying to commit while the project is being built.

These have been observed with Clang, -fsanitize-undefined on Arch Linux,
though other configurations may also generate such temporaries.

The solution here is on lines with the Linux kernel's .gitignore:
https://github.com/torvalds/linux/blob/master/.gitignore.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-10 20:30:41 +02:00
Ganesh Ajjanagadde
3b2000c2bf doc/scaler, swscale/options: use proper capitalization
Proper names should be capitalized in all user facing API as far as
possible. The option names themselves have not been changed since:
1. We consistently keep option names in lower case.
2. Changing them would break existing scripts.

The converse is also true: improper names should not be capitalized
generally.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-10 19:32:56 +02:00
Zhang Rui
810fbd8933 fate/async: test error code from underlying protocol
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-10 17:58:45 +02:00
Zhang Rui
7dc42c9e65 avformat/async: pass internal I/O error
av_fifo_generic_write() does not return any error code.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-10 17:58:45 +02:00
Paul B Mahol
c3d312bb7f avfilter/x86/vf_w3fdif: add colons after labels
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-10 17:55:06 +02:00
Rodger Combs
0d53a6f5b4 lavc: move bitstream filter args to the bsf ctx 2015-10-10 10:41:10 -05:00
Paul B Mahol
5740dc27e1 avfilter/vf_w3fdif: add x86 SIMD
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-10 17:33:43 +02:00
Ganesh Ajjanagadde
0281ef9075 doc/developer: minor typo and consistency fixes
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-10 15:52:15 +02:00
Ganesh Ajjanagadde
8881b035d9 doc/build_system: miscellaneous typo and consistency fixes
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-10 15:49:08 +02:00
Luca Barbato
b9ece15a01 nullenc: Use the wrapped avframe pseudo-encoder 2015-10-10 14:50:42 +02:00
Luca Barbato
d00a8fd417 yuv4mpeg: Use the wrapped avframe pseudo-encoder 2015-10-10 14:50:42 +02:00
Luca Barbato
00332e0a06 wrapped_avframe: Initial implementation 2015-10-10 14:50:34 +02:00
Ganesh Ajjanagadde
979572365f avcodec/ac3enc: fix undefined negative left shift
This should fix the undefined behavior reported in:
https://trac.ffmpeg.org/ticket/4727.

I can reproduce this at runtime: simply stick in an abort call in
asym_quant to check if c < 0 and run FATE. I don't know ac3 so I can't
confirm if negative coefficients are intentional, but at the moment they
clearly are according to FATE.

This resolves the undefined behavior. Tested with FATE.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-10 14:43:22 +02:00
Hendrik Leppkes
c4e23ca853 Merge commit 'c3e5c47bdae2bb8219fea62d91b7455650b22c60'
* commit 'c3e5c47bdae2bb8219fea62d91b7455650b22c60':
  libopenh264enc: Added max_nal_size option

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-10 09:58:42 +02:00
Hendrik Leppkes
80fd622590 Merge commit '00cc10aee380f882507bac994ac469d8358d12e8'
* commit '00cc10aee380f882507bac994ac469d8358d12e8':
  asfdec: do not skip padding if offset is above packet size - padding

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-10 09:56:29 +02:00
Hendrik Leppkes
8b1007ead8 Merge commit 'a8956eca1ff3b5b7f9aadbe6eb46536efeb2f828'
* commit 'a8956eca1ff3b5b7f9aadbe6eb46536efeb2f828':
  cabac: Make CABAC states hardcoded

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-10 09:56:14 +02:00
Anton Khirnov
8a73b8c5b4 cabac: Make cabac starts hardcoded
There's not much reason to generate such a small table at runtime.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-10-10 09:52:18 +02:00
Derek Buitenhuis
9692fd7622 Revert "cabac: Allow hardcoding CABAC table."
This becomes unuseful in the following commit.

This reverts commit 092d1977cc7146f20c8db2155e7d648afb300de7.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-10-10 09:52:13 +02:00
Hendrik Leppkes
9d6873a43d Merge commit '2830bce47e2eb29c76202f19017031ddc1f95dd3'
* commit '2830bce47e2eb29c76202f19017031ddc1f95dd3':
  w32pthreads: Load dynamically loaded functions on demand

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-10 09:45:44 +02:00
Hendrik Leppkes
89da893c88 Merge commit 'b22693b06d1e5d73454a65c203b4d31c1ca5b69a'
* commit 'b22693b06d1e5d73454a65c203b4d31c1ca5b69a':
  w32pthreads: Add pthread_once emulation

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-10 09:45:16 +02:00
Hendrik Leppkes
3e3779cd51 Merge commit '8b830ee9a26d47b138f12a82085cdb372f407f1e'
* commit '8b830ee9a26d47b138f12a82085cdb372f407f1e':
  avconv: Do not try to configure filter outputs without streams

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-10 09:43:47 +02:00
Hendrik Leppkes
0b28039a44 Merge commit 'd7a5a178c252b625537adc046392624ad543dea7'
* commit 'd7a5a178c252b625537adc046392624ad543dea7':
  configure: When disabling a library disable all the related components

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-10 09:37:51 +02:00
Hendrik Leppkes
a71fff213d Merge commit '58b42345b38b46d11c32e11d9c57517f99d6a601'
* commit '58b42345b38b46d11c32e11d9c57517f99d6a601':
  dcadec: reorganise context data

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-10 09:32:59 +02:00
Hendrik Leppkes
d3952510d2 Merge commit '3a4d369ea4ded91b1178ae6e2ff0ab9ea470e344'
* commit '3a4d369ea4ded91b1178ae6e2ff0ab9ea470e344':
  g2m: Relax resolution change constraints

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-10 09:13:32 +02:00
James Almer
dab5f65b25 x86/takdsp: use arithmetic shift instructions
p1 and p2 are int32_t.

Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-10-09 23:52:39 -03:00
Rodger Combs
4ab5666759 lavf/mov: add support for sidx fragment indexes
Fixes trac #3842
2015-10-09 21:18:28 -05:00
赵宇龙
cd847839f3 h264_mp4toannexb: fix the pps offset when there are more than one sps in avcc
the pps offset is used to locate pps in the spspps_buf; however, the
current calc method is wrong because it is the offset of the original
avctx->extradata;
when there is only one sps in the avcc; the value is correct by
coincidence, however, it will fail in avcc with multi sps

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-10 01:37:00 +02:00
Michael Niedermayer
3d126ef188 avcodec/h264_mp4toannexb_bsf: Use av_freep() to free spspps_buf
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-10 01:29:22 +02:00
Ganesh Ajjanagadde
9953038728 avcodec/xvmc: apply attribute_deprecated correctly
This fixes a warning observed on Clang 3.7:
"warning: attribute 'deprecated' is ignored, place it after "struct" to apply attribute to type declaration [-Wignored-attributes]"
and thus enables deprecation warning for the relevant struct.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2015-10-09 19:01:08 -04:00
Ganesh Ajjanagadde
3be27e07d3 avcodec/mpegvideoenc: fix undefined negative left shift
This should fix the first undefined behavior reported in:
https://trac.ffmpeg.org/ticket/4727.

I can't reproduce the runtime behavior reported in the ticket, hence I
can't confirm that this actually fixes the exact issue reported in the
ticket.

Regardless, I can confirm that this is a genuine issue, and that
negative shifts can (and do) occur, fixed by this.

Tested with FATE.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-09 23:01:55 +02:00
Christophe Gisquet
25d3013e36 fate: add DNxHD/HR tests
Currently only 2 profiles are evaluated because they are the only 2
with distributed test sequences.
- CID 1260: YUV 4:2:2 10 bits with block-adaptive interlace coding,
  from ticket 4876;
- CID 1270: YUV 4:4:4 10 bits (HR), 1920x839, from ticket 4581.

They were generated from the ticket sequences by running the
following kind of command-line;
ffmpeg -i $INPUT -an -sn -vcodec copy -vframes 1 -y $OUTPUT.mov

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-09 22:36:05 +02:00
Andreas Cadhalpun
8d6625642d doc: fix spelling errors
Reviewed-by: Lou Logan <lou@lrcd.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-10-09 22:09:08 +02:00
Paul B Mahol
35af7add6f avcodec/takdec: add x86 SIMD for rest of decorrelation modes
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-09 21:38:15 +02:00
Ganesh Ajjanagadde
2f4374fae1 ffmpeg: avoid possible undefined behavior
On lines 1633,1634 FFABS(pts) is performed. However, if av_stream_get_end_pts
returns AV_NOPTS_VALUE always, pts remains stuck at INT64_MIN, leading
to undefined behavior on FFABS.

One could conceive of a solution using FFNABS. However, such a solution
has to deal with the implementation defined rounding of integer division
with at least one negative operand in ANSI C89. C99 forces truncation to
zero, but I am not sure that all of our platforms compile with full C99
support, and in particular whether we can safely assume a fixed
rounding behavior across all platforms.

This solution is simple, and I doubt changing INT64_MIN to INT64_MIN + 1
has any practical loss - if it is stuck at its initial value, the stream
is messed up anyway.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-09 21:19:39 +02:00
Carl Eugen Hoyos
d6cfbcd621 lavc/mjpegenc: Add an option to force outputting chroma matrix.
RFC 2435 suggests that mjpeg over rtp uses both two tables.
2015-10-09 20:58:07 +02:00
Mario Gasparoni
c3e5c47bda libopenh264enc: Added max_nal_size option
Also added dynamic slice_mode option, needed for the max_nal_size.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-10-09 16:53:44 +02:00
Ganesh Ajjanagadde
1e81fd3710 avcodec/pthread_frame: update doxygen for update_context_from_thread
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2015-10-09 09:56:08 -04:00
Christophe Gisquet
1896ac4abf build system: fix dependency generation
When trying to build the binary dct-test under MSYS2/Win64, the
makefile rule does not have the SUBDIR in the target for its
object file.

Consequently, modifications to various include files (e.g. C ones)
do not trigger a recompilation.

When tracing the dependency generating, the dependency generation
has this strange content (linebreak inserted):
sed -e "/^#.*/d" -e "s,^[[:space:]]*dct\\.o,libavcodec/dct.o," \
 > libavcodec/dct-test.d

For some reason, the $(*F) has weird content. It looks simpler to
use $(@F) instead of $(*F)\\.o, although this was tested on one
single version of make.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-09 13:17:34 +02:00
Paul B Mahol
5e0abf59d8 avfilter/vf_blend: fix normal mode with opacity != 1
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-09 12:12:03 +02:00
Rodger Combs
f00ec7eb1b lavf/hls: don't convert NULL options to empty strings; fixes HTTP CRLF warnings 2015-10-09 04:12:57 -05:00
Rodger Combs
0562f95902 lavu/opt: add flag to return NULL when applicable in av_opt_get
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-09 04:12:57 -05:00
Rodger Combs
f36baeebc5 lavu/opt: switch AV_OPT flags to shift-based formatting 2015-10-09 04:12:57 -05:00
Clément Bœsch
8f6f357fde build: restore videotoolbox compilation on iOS 2015-10-09 10:59:31 +02:00
Clément Bœsch
40d9d6de90 avformat/srtdec: make sure we probe a number
Fixes regression since 7218352e0228028dfa009a3799ec93fd041065f1: WebVTT
files were matching the SRT probing.
2015-10-09 10:53:21 +02:00
Rodger Combs
4f7d9b7706 lavf/matroskadec: drop indexes that appear broken
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-09 04:43:49 +02:00
wm4
b3f8d871ee avcodec/ass: fix doxygen typo 2015-10-08 23:29:18 +02:00
Ganesh Ajjanagadde
65e2a5bb32 doc/faq: use https instead of http
Change to https for FFmpeg websites.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-08 23:11:32 +02:00
Justin Greer
9c168f9a22 avfilter/af_afade: fix start of fade out
Fixes #4919
2015-10-08 23:09:25 +02:00
Alexandra Hájková
00cc10aee3 asfdec: do not skip padding if offset is above packet size - padding
Sample-Id: https://samples.libav.org/asf-wmv/demux-asf-assert-failed.wmv

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-10-08 21:55:31 +02:00
Anton Khirnov
a8956eca1f cabac: Make CABAC states hardcoded
There is not much reason to generate such a small table at runtime.

Signed-off-by: Derek Buitenhuis <derekb@vimeo.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-10-08 21:55:31 +02:00
Ganesh Ajjanagadde
079d553b9e configure: add message to avoid manual modification of config.texi
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-08 16:29:31 +02:00
Ganesh Ajjanagadde
1460719153 doc/writing_filters: miscellaneous grammar and typo fixes
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-08 16:27:24 +02:00
Stefano Sabatini
329465235a tests: update fate-filter-delogo test reference after commit 8bc708fcee137ead6d0773fad8e24ab471ab2122 2015-10-08 12:44:48 +02:00
Jean Delvare
8bc708fcee avfilter/delogo: Set default band to 1
The original interpolation algorithm behaved poorly on the borders and
did not even guarantee continuity at the borders. For this reason, a
second interpolation/blending pass was required on the borders to make
them seamless.

However, since the interpolation algorithm was improved in June 2013,
the border issues no longer exist. The new algorithm does guarantee
continuity at the borders, making the second pass useless. A larger
band always increases the cumulated interpolation error. In most cases
it also increases the average interpolation error, even though the
samples in the band are only partially interpolated.

For this reason I would like to get rid of the "band" parameter. As a
first step, let's change its default value from 4 to 1 and document it
as deprecated.

I have benchmarked this change on a combination of input sources and
realistic logo areas. Lowering the band value from 4 to 1 resulted in
8 to 39 % less interpolation error per frame (or 1 to 34 % less
interpolation error per luma sample.)

Signed-off-by: Jean Delvare <jdelvare@suse.de>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2015-10-08 11:27:57 +02:00
Christophe Gisquet
5911eeb033 dnxhdenc: mark CID 1260 encoder experimental
The MBAFF handling recently introduced on the decoder side shows that
the encoder does not support it correctly. Therefore, make the related
profile experimental.

Furthermore, current encoder logic treats it as unable to encode as
progressive, which isn't the case.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-08 00:22:06 +02:00
Christophe Gisquet
79cfb36f92 dnxhddata: introduce and use MBAFF flag
MBAFF-like handling of interlaced content in CID 1260 is different from
the other CIDs, and in particular doesn't use the same syntax.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-07 23:33:44 +02:00
Paul B Mahol
4e7fa057d2 avfilter/vf_w3fdif: scale down coefficiends by 2
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-07 23:33:50 +02:00
Christophe Gisquet
71199ee907 dnxhddec: better support for 4:4:4
Profiles 1256 & 1270 (currently) signal at the frame header and MB
levels the colorspace used, either RGB or YUV. While a MB-level
varying colorspace is not supported, whether it is constant can be
tracked so as to determine the exact colorspace.

This requires having bitdepth and the ACT and 4:4:4 flags, in turn
needing the CID. Because setting those before having validated
enough things may result in invalid/unset DSP fucntions, setting
the bitdepth in the context is delayed.

It is not tested against a true RGB sequence, though.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-07 23:16:52 +02:00
Paul B Mahol
624a1a0e69 avfilter/x86/vf_blend.asm: hardmix: do same with two pxor instructions less
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-07 23:12:09 +02:00
Paul B Mahol
e999210cec avfilter/x86/vf_blend.asm: 11th register is used, update functions
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-07 22:53:54 +02:00
Paul B Mahol
0948ba3204 avfilter/x86/vf_blend.asm: add hardmix and phoenix sse2 SIMD
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-07 22:50:15 +02:00
Nicolas George
8a9fa46e87 lavfi/vf_yadif: reindent after last commit. 2015-10-07 19:05:13 +02:00
Nicolas George
ea2fd42f9d lavfi/vf_thumbnail: reindent after last commit. 2015-10-07 19:05:13 +02:00
Nicolas George
90d087247c lavfi/vf_w3fdif: reindent after last commit. 2015-10-07 19:05:13 +02:00
Nicolas George
d7849248dd lavfi/vf_alphamerge: reindent after last commit. 2015-10-07 19:05:13 +02:00
Nicolas George
35c3043ea4 lavfi/avf_showspectrum: reindent after last commit. 2015-10-07 19:05:13 +02:00
Nicolas George
4883e5d540 lavfi/vf_yadif: remove looping on request_frame(). 2015-10-07 19:05:13 +02:00
Nicolas George
86b8a82f4f lavfi/vf_w3fdif: remove looping on request_frame(). 2015-10-07 19:05:13 +02:00
Nicolas George
73a5546ba8 lavfi/vf_thumbnail: remove looping on request_frame(). 2015-10-07 19:05:13 +02:00
Nicolas George
ca540fbdb4 lavfi/vf_select: remove looping on request_frame(). 2015-10-07 19:05:13 +02:00
Nicolas George
4bc7eb2dd2 lavfi/vf_fps: remove looping on request_frame(). 2015-10-07 19:05:13 +02:00
Nicolas George
a45e96a54f lavfi/vf_alphamerge: remove looping on request_frame(). 2015-10-07 19:00:22 +02:00
Nicolas George
8a2e2fc34a lavfi/avf_showwaves: remove looping on request_frame(). 2015-10-07 19:00:22 +02:00
Nicolas George
9a520c4d52 lavfi/avf_showspectrum: remove looping on request_frame(). 2015-10-07 19:00:22 +02:00
Nicolas George
114f3f526e lavfi/avf_showcqt: remove looping on request_frame(). 2015-10-07 19:00:22 +02:00
Nicolas George
4982130d5a lavfi/af_aresample: remove looping on request_frame(). 2015-10-07 19:00:22 +02:00
Hendrik Leppkes
2830bce47e w32pthreads: Load dynamically loaded functions on demand
This removes the requirement of calling w32thread_init before being
able to use the threading primitives.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-10-07 18:45:50 +02:00
Hendrik Leppkes
b22693b06d w32pthreads: Add pthread_once emulation
The emulation uses native InitOnce* APIs on Windows Vista+, and a
lock-free/allocation-free approach using atomics and spinning for
Windows XP.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-10-07 18:45:50 +02:00
Luca Barbato
8b830ee9a2 avconv: Do not try to configure filter outputs without streams
Prevent a NULL-dereference.

CC: libav-stable@libav.org
2015-10-07 18:45:50 +02:00
Luca Barbato
d7a5a178c2 configure: When disabling a library disable all the related components
This way is sufficient to use the component specific configure variable
and not guard against the global library configure variable in code
that is outside it (e.g. checkasm).
2015-10-07 18:45:50 +02:00
Alexandra Khirnova
58b42345b3 dcadec: reorganise context data
place primary audio coding header data into DCAAudioHeader
structure to make DCAContext clearer
and move channel related data to DCAChan structure to make
them easier to use by extensions

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-10-07 18:45:49 +02:00
Vittorio Giovara
3a4d369ea4 g2m: Relax resolution change constraints
Do not fail when original resolution is smaller than current one,
as the frame buffer is resized automatically.

Signed-off-by: Vittorio Giovara <vittorio.giovara at gmail.com>
2015-10-07 18:45:49 +02:00
Michael Niedermayer
1bc873acd6 swresample/resample: manually unroll the main loop in bessel()
About 10% faster

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-07 18:00:58 +02:00
Michael Niedermayer
6024c865ef swresample/resample: merge first iteration into init in bessel()
speedup of about 1%

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-07 17:33:00 +02:00
Shivraj Patil
322e960dbf avcodec/mips: build fix for MSA 64bit
Modified datatype of function argument (pitch from int32_t to ptrdiff_t)

Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-07 16:40:05 +02:00
Shivraj Patil
b0732b0214 avcodec/mips: build fix for MSA
Modified sps and pps access from old HEVCContext(s) structure to newly introduced HEVCParamSets(ps)

Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-07 16:40:05 +02:00
Arttu Ylä-Outinen
cb8999f368 doc/encoders: Fix libkvazaar documentation
The -threads option is ignored with libkvazaar since it does not have
any of the AV_CODEC_CAP_{FRAME,SLICE,AUTO}_THREADS capabilities. This
commit removes the incorrect documentation as well as the no-op of
setting the number of threads in libkvazaar encoder.

Signed-off-by: Arttu Ylä-Outinen <arttu.yla-outinen@tut.fi>
2015-10-07 17:09:13 +03:00
Arttu Ylä-Outinen
0e34868387 libkvazaar: Fix setting framerate
The divisor and dividend in the equation had been swapped, making the
result the inverse of the actual framerate.

Signed-off-by: Arttu Ylä-Outinen <arttu.yla-outinen@tut.fi>
2015-10-07 17:09:10 +03:00
Arttu Ylä-Outinen
5fefa7b512 libkvazaar: Use av_image_copy for copying pixels
Replaces a for loop for copying pixels by a call to av_image_copy.

Signed-off-by: Arttu Ylä-Outinen <arttu.yla-outinen@tut.fi>
2015-10-07 17:09:08 +03:00
Arttu Ylä-Outinen
8db62f0419 libkvazaar: Set pts and dts
Signed-off-by: Arttu Ylä-Outinen <arttu.yla-outinen@tut.fi>
2015-10-07 17:09:05 +03:00
Arttu Ylä-Outinen
c09419ca80 libkvazaar: Replace asserts with proper errors
Changes function libkvazaar_encode to return proper error codes instead
of crashing when the video dimensions or pixel format change in the
middle of encoding.

Signed-off-by: Arttu Ylä-Outinen <arttu.yla-outinen@tut.fi>
2015-10-07 17:09:02 +03:00
Arttu Ylä-Outinen
425d6134ed libkvazaar: Remove unnecessary NULL checks
Signed-off-by: Arttu Ylä-Outinen <arttu.yla-outinen@tut.fi>
2015-10-07 17:09:00 +03:00
Arttu Ylä-Outinen
b9446d0b56 configure: Add version check for libkvazaar
Signed-off-by: Arttu Ylä-Outinen <arttu.yla-outinen@tut.fi>
2015-10-07 17:03:51 +03:00
Arttu Ylä-Outinen
b3777b2c2e libkvazaar: Update to work with the latest version
Function encoder_encode in Kvazaar API was changed to have new output
parameters: source picture and frame info. Frame info is used to set the
keyframe flag and source picture is ignored.

Signed-off-by: Arttu Ylä-Outinen <arttu.yla-outinen@tut.fi>
2015-10-07 16:43:34 +03:00
Ronald S. Bultje
ce78729033 vp9: don't keep a stack pointer if we don't need it.
This saves one register in a few cases on 32bit builds with unaligned
stack (e.g. MSVC), making the code slightly easier to maintain.

(Can someone please test this on 32bit+msvc and confirm make fate-vp9
and tests/checkasm/checkasm still work after this patch?)
2015-10-07 08:55:19 -04:00
Ganesh Ajjanagadde
b3b6665c60 avcodec/libx264: silence -Waddress
This patch moves the pointer validity check outside the macro,
and silences the -Waddress observed with GCC 5.2.

Note that this changes the error message slightly, from:
"bad option..." to "Error parsing option...".

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-07 08:55:18 -04:00
Ganesh Ajjanagadde
2d8ef1b690 doc/developer: use https instead of http
Change to https for FFmpeg websites.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-07 12:13:41 +02:00
Michael Niedermayer
a852db796e avcodec/pngenc: Check that there is at least 1 frame
Fixes null pointer dereference
Fixes CID1322330

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-07 04:50:16 +02:00
Michael Niedermayer
e96ecaf053 avcodec/pngenc: Initialize fctl_chunk to 0
The structure is copied around and that triggers warnings if it is uninitialized
Fixes CID1322360

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-07 02:49:34 +02:00
Michael Niedermayer
f4585e666f avformat/flvdec: Print stream type in case a new stream is discovered after the header
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-07 02:41:40 +02:00
James Almer
285e41c34c checkasm: add alacdsp tests
Signed-off-by: James Almer <jamrial@gmail.com>
2015-10-06 20:25:49 -03:00
James Almer
72254b19b8 x86/alacdsp: add simd optimized functions
Signed-off-by: James Almer <jamrial@gmail.com>
2015-10-06 20:22:00 -03:00
Andrey Utkin
fdb3283872 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>
2015-10-07 00:10:16 +02:00
Paul B Mahol
ac74e857a2 avfilter/vf_stereo3d: add x86 SIMD for anaglyph outputs
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-06 21:01:24 +02:00
Ganesh Ajjanagadde
9ecfcfe481 README: replace http with https
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-06 13:27:29 +02:00
Paul B Mahol
a342c2a531 afilter/af_extrastereo: remove dead initialization
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-06 09:56:22 +02:00
Paul B Mahol
755242b912 avfilter:audio: fix shadowed AVFrame *out
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-06 09:54:45 +02:00
Michael Niedermayer
d1c8368e40 avfilter/af_extrastereo: Fix shadowed variable
Fixes CID1325675

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-06 03:16:24 +02:00
Michael Niedermayer
e34ba5ec53 avformat/flvdec: Remove dead loop
Fixes CID1325682

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-06 01:22:35 +02:00
Ronald S. Bultje
cb912b4521 vp9: fix msvc build by using 6 GPRs on 32bit if stack!=aligned. 2015-10-05 16:51:05 -04:00
Michael Niedermayer
8deb1fdac8 avformat/omadec: Fix { typo
Fixes CID1324299

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-05 22:31:38 +02:00
Ganesh Ajjanagadde
4c2bfabc3a ffplay: use correct context for av_log
Recent commits c3e8de1c248f8c742dd9e61a0c71ee56bba22c28 and
8dc6e92c3dc67a85026f3010045c7a28b1c0adc8 used av_log incorrectly.
This fixes such usage.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-10-05 22:28:17 +02:00
Ganesh Ajjanagadde
b67c1ab58c ffplay: more robust condition variable creation
SDL_CreateCond can fail:
https://wiki.libsdl.org/SDL_CreateCond.
This patch makes creation more robust in one instance.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-10-05 22:25:51 +02:00
Ganesh Ajjanagadde
4802b8368a ffplay: log SDL error messages
This logs the SDL error messages on failure of creation of SDL_CreateMutex,
SDL_CreateCond, and SDL_CreateThread.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-10-05 22:21:20 +02:00
Ganesh Ajjanagadde
1d4af04adf avutil/attributes: add av_warn_unused_result
GCC 3.4 introduced an attribute warn_unused_result to warn when a programmer
discards the return value. Applying this judiciously across the codebase can help
in fixing a lot of problems. At a high level, functions which return error codes
should always be checked. More concretely, consider the functions ff_add_format
and the like in avfilter/formats.h. A quick examination shows that a large portion
of libavfilter fails to handle the associated errors, usually AVERROR(ENOMEM).
The above example was where I observed the utility of this, but it should be
useful in many places across the code base.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-05 19:30:20 +02:00
Jeremy James
6f1ccca4ae dnxhd: add better support for CIDs 1270 to 1274
These are DNxHR profiles with the following properties:
- Variable size in a profile (property added in a previous commit),
  requiring variable-sized macroblock table;
- Variable bitdepth, up to 12 bits.
- Better validation of buffer sizes and positions

Signed-off-by: Christophe Gisquet <christophe.gisquet@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-05 13:08:20 +02:00
Christophe Gisquet
66db504f03 dnxhd: add CID 1270
This a 4:4:4 10 bits profile, where image size is not fixed by the
profile, and which strays a bit outside the old frame header parsing
code.

Fixes ticket #4581 (DNxHR is not stricly supported, but that sequence is).

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-05 12:58:40 +02:00
Jeremy James
118a3cd2c5 dnxhd: add decoder support for DNxHR
Signed-off-by: Christophe Gisquet <christophe.gisquet@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-05 12:44:10 +02:00
Christophe Gisquet
3a6a432b58 isom: add support for DNxHR codec family
This is actually similar to DNxHD.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-05 12:44:05 +02:00
Christophe Gisquet
1f4ff53aea dnxhddec: Introduce DNXHD_VARIABLE
Currently not used, but will be used to indicate that a CIDEntry field
is not set, because it is variable, and that checks should be adapted.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-05 12:44:00 +02:00
Christophe Gisquet
52256860d6 dnxhdenc: do not select 4:4:4 profiles
The encoder can only deal with 4:2:2.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-05 12:27:15 +02:00
Christophe Gisquet
4e7cba1d8a dnxhd: profile flags
Move the 'interlaced' flag to this element (arbitrarily set to 16bits).
This should allow better detection/selection of profiles.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-05 12:26:54 +02:00
Christophe Gisquet
9139a7e84f dnxhddec: cleanup frame header parsing
Rely more on the actual syntax from the specs (also seen in the
encoder code).

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-05 12:26:30 +02:00
Michael Niedermayer
c0152ebb9e avcodec/mmaldec: Use av_assert0() instead of assert()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-05 12:04:40 +02:00
Hendrik Leppkes
329a0e419e Merge commit '39f01e346cab464ef6c0d4ec58cc13b7123e60d8'
* commit '39f01e346cab464ef6c0d4ec58cc13b7123e60d8':
  mmaldec: be more tolerant against MMAL not returning decoded output

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-05 11:34:11 +02:00
Hendrik Leppkes
827d4b7942 Merge commit '65db4899fa8790049bec3af16ecdb75dd81051fd'
* commit '65db4899fa8790049bec3af16ecdb75dd81051fd':
  mmaldec: refactor to have more context per MMAL input buffer

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-05 11:34:04 +02:00
Hendrik Leppkes
45ab078e35 Merge commit 'eae58428bd199f7d4670bf471f56ed204430878e'
* commit 'eae58428bd199f7d4670bf471f56ed204430878e':
  avcodec: Do not lock during open for codecs marked as having threadsafe init

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-05 11:33:43 +02:00
Hendrik Leppkes
cae02106b7 Merge commit 'abe9adfb31566c415fd830a8d4977c79512d4385'
* commit 'abe9adfb31566c415fd830a8d4977c79512d4385':
  rangecoder: Use AV_RB16 instead of bytestream_get_be16

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-05 11:30:53 +02:00
Hendrik Leppkes
c9b3524619 Merge commit 'b8b13acd70a1c1b6c044f967d78cb82f1a53887b'
* commit 'b8b13acd70a1c1b6c044f967d78cb82f1a53887b':
  hevc: Simplify logical check

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-05 11:29:22 +02:00
Hendrik Leppkes
f85e460078 Merge commit '10aa6f9db44e96977e7155fdc3e62619e0e00a15'
* commit '10aa6f9db44e96977e7155fdc3e62619e0e00a15':
  h264: Use the correct argument context in debug log

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-05 11:28:17 +02:00
Hendrik Leppkes
78d9658a4d Merge commit '4628443ca3534060888dd0015b229337eac13fd2'
* commit '4628443ca3534060888dd0015b229337eac13fd2':
  h263: Drop uninitialized variable use from log message

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-05 11:27:07 +02:00
Hendrik Leppkes
fbd71bba85 Merge commit '1da2a20763ae9ca579d5fd20763065871ddf6311'
* commit '1da2a20763ae9ca579d5fd20763065871ddf6311':
  dvbsubdec: Fix function return type

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-05 11:25:40 +02:00
Hendrik Leppkes
d0186a4ec4 Merge commit 'cab63a8b594cdc365bb2581a12b3ac8e6dd480b2'
* commit 'cab63a8b594cdc365bb2581a12b3ac8e6dd480b2':
  dv: Mark internal frame reference as const

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-05 11:21:23 +02:00
Hendrik Leppkes
fecf775624 Merge commit '4c160fa23996c05efcd952ccfac2359311d8a1bc'
* commit '4c160fa23996c05efcd952ccfac2359311d8a1bc':
  dcadec: Always initialize return variable

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-05 11:19:38 +02:00
Hendrik Leppkes
0cd8170dd2 Merge commit 'bb198c4997d5036f3bf91de51e44f807115677d0'
* commit 'bb198c4997d5036f3bf91de51e44f807115677d0':
  d3d11va: make av_d3d11va_alloc_context() available at all times

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-05 11:18:31 +02:00
Hendrik Leppkes
ac830e9b48 Merge commit 'f3202871598f59b570b31b01cfeb64b8fedbd700'
* commit 'f3202871598f59b570b31b01cfeb64b8fedbd700':
  d3d11va: check for malloc failure

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-05 11:18:08 +02:00
Hendrik Leppkes
a7322bd97f Merge commit '2c3dbff1d89bbf8300c121c06524c014cb6e0915'
* commit '2c3dbff1d89bbf8300c121c06524c014cb6e0915':
  avutil/avstring: Inline some tiny functions

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-05 11:17:24 +02:00
Hendrik Leppkes
4064d688e7 Merge commit 'f56a08559334b7eb6b3fedbc0cc741887f6067ae'
* commit 'f56a08559334b7eb6b3fedbc0cc741887f6067ae':
  matroskaenc: Don't write a track language tag

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-05 11:12:12 +02:00
Hendrik Leppkes
f83ead7691 Merge commit '8bb376cf6b4ab8645daedb8becaa7163656436a4'
* commit '8bb376cf6b4ab8645daedb8becaa7163656436a4':
  checkasm: Fix the function name sorting algorithm

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-05 11:08:29 +02:00
Reynaldo H. Verdejo Pinochet
fe95b0eb8f ffserver: avoid leaking pathname at exit
Fixes Coverity CID 1325681

Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-10-04 22:31:22 -07:00
Reynaldo H. Verdejo Pinochet
84b4998dbd ffserver: fix up rate units in server messages
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-10-04 15:58:35 -07:00
Reynaldo H. Verdejo Pinochet
d8c714cb24 ffserver: wrap around bandwidth exceeded msg text
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-10-04 15:58:35 -07:00
Reynaldo H. Verdejo Pinochet
8a9089948f ffserver: wrap around too-busy message text
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-10-04 15:58:35 -07:00
Reynaldo H. Verdejo Pinochet
3388bcced4 ffserver: unify exit path in _write_index()
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-10-04 15:58:35 -07:00
Reynaldo H. Verdejo Pinochet
1175bbd14f ffserver: fix line wrapping on function decls
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-10-04 15:58:35 -07:00
Ganesh Ajjanagadde
7c6dd90eed ffplay: more robust mutex creation
SDL_CreateMutex can fail:
https://wiki.libsdl.org/SDL_CreateMutex.
This patch makes creation more robust in one instance.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-10-05 00:16:42 +02:00
Marton Balint
80b6cc4214 concatdec: fix metadata memleak on error
Fixes Coverity CID 1323077.

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-10-05 00:16:12 +02:00
Rodger Combs
854972b53d libavformat/tls_securetransport: fix argument evalulation order UB
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-04 23:14:19 +02:00
Michael Niedermayer
46f3015f35 avcodec/tta: Un-break build without threads
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-04 23:07:44 +02:00
Paul B Mahol
0c2b37fed4 avfilter: add displace video filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-04 21:44:57 +02:00
wm4
39f01e346c mmaldec: be more tolerant against MMAL not returning decoded output
In some situations, MMAL won't return a decoded frame for certain input
frames. This can happen if a frame fails to decode, or if a packet does
not actually contain a complete frame. In these situations, we would
deadlock (or actually timeout) waiting for an expected output frame,
which is not ideal. On the other hand, there are situations where we
definitely have to block to avoid deadlocks. (This mess is a
consequence of trying to map MMAL's asynchronous and flexible
dataflow to libavcodec, which is more static and rigid.)

Solve this by doing a blocking wait only if the amount of buffered data
is too big. The whole purpose of the blocking wait is to avoid excessive
buffering of input data, so we can skip it if it appears to be low. The
consequence is that libavcodec can gracefully return no frame to the
API user.

We want to track the number of full packets to make our heuristic work.
But MMAL buffers are fixed-size, requiring splitting large packets. This
is why the previous commit is needed. We use the ..._FRAME_END flag to
remember packet boundaries, but MMAL does not preserve these buffer
flags when returning buffers to the user.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-10-04 19:34:04 +02:00
wm4
65db4899fa mmaldec: refactor to have more context per MMAL input buffer
The next commit needs 1 bit of additional information per MMAL buffer
sent to the MMAL input port. This information will be needed when the
buffer is recycled (i.e. returned by the input port's callback).
Normally, we could use MMAL_BUFFER_HEADER_FLAG_USER0, but that is
unexpectedly not preserved.

Do this by storing a pointer to FFBufferEntry in the MMAL buffer's
user data, instead of an AVBufferRef. This also changes the lifetime
of FFBufferEntry.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-10-04 19:34:04 +02:00
James Almer
b70566d6ca avcodec/alacdec: split off decorrelate_stereo and append_extra_bits as alacdsp
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-10-04 14:10:05 -03:00
Ganesh Ajjanagadde
2cbaa078d1 avcodec: use HAVE_THREADS header guards to silence -Wunused-function
When compiled with --disable-pthreads, e.g
http://fate.ffmpeg.org/report.cgi?time=20150917015044&slot=alpha-debian-qemu-gcc-4.7,
a bunch of -Wunused-functions are reported due to missing header guards
around threading related functions.
This patch should silence such warnings.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-04 12:47:34 -04:00
Ganesh Ajjanagadde
26e8895b73 all: add _DEFAULT_SOURCE locally wherever needed
Glibc 2.20 onwards generates a deprecation warning for usage of _BSD_SOURCE and _SVID_SOURCE.
The solution from man feature_test_macros is to define both _DEFAULT_SOURCE and the old macros.
This solution is on the lines of the one in commit af1818276ef271af98e2e2bbabb4dc875b4fa7d8.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2015-10-04 12:15:16 -04:00
Ganesh Ajjanagadde
c3e8de1c24 ffplay: more robust thread creation
SDL_CreateThread can fail:
https://wiki.libsdl.org/SDL_CreateThread.
This patch makes thread creation more robust in one instance.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-10-04 17:40:30 +02:00
Ganesh Ajjanagadde
59594b11f9 Changelog: add note on ffplay dynamic volume control
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-10-04 17:40:30 +02:00
Henrik Gramner
ec85153f25 checkasm: Fix compilation with --disable-avcodec 2015-10-04 15:35:16 +02:00
Ching Yi, Chan
5d926d5473 avformat/flacdec: support fast-seek
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-04 13:23:42 +02:00
Derek Buitenhuis
eae58428bd avcodec: Do not lock during open for codecs marked as having threadsafe init
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-10-04 13:21:16 +02:00
Clément Bœsch
513fcd4167 avfilter/ebur128: use AV_OPT_TYPE_BOOL for video option 2015-10-04 13:10:29 +02:00
Kyle Swanson
4f721bfd46 avfilter/ebur128: add dualmono measurement option 2015-10-04 13:10:26 +02:00
Vittorio Giovara
abe9adfb31 rangecoder: Use AV_RB16 instead of bytestream_get_be16
Silence an incompatible-pointer-types-discards-qualifiers warning from clang.
rangecoder.c:58:34: warning: passing
      'uint8_t **' (aka 'unsigned char **') to parameter of type
      'const uint8_t **' (aka 'const unsigned char **') discards qualifiers in
      nested pointer types [-Wincompatible-pointer-types-discards-qualifiers]
2015-10-04 13:09:08 +02:00
Vittorio Giovara
b8b13acd70 hevc: Simplify logical check
The intended meaning is "if this block is the first block in a slice then
its left boundary is a slice boundary". Silence a logical-not-parentheses
warning from gcc.
2015-10-04 13:08:58 +02:00
Vittorio Giovara
10aa6f9db4 h264: Use the correct argument context in debug log 2015-10-04 13:07:12 +02:00
Vittorio Giovara
4628443ca3 h263: Drop uninitialized variable use from log message 2015-10-04 13:07:12 +02:00
Vittorio Giovara
1da2a20763 dvbsubdec: Fix function return type 2015-10-04 13:07:12 +02:00
Vittorio Giovara
cab63a8b59 dv: Mark internal frame reference as const
Silence a warning due to frame assignment in dvenc. All uses of the
reference in dvdec are read only, except the ones in the main decoding
function, so use the frame pointer directly there.
2015-10-04 13:06:34 +02:00
Vittorio Giovara
4c160fa239 dcadec: Always initialize return variable
Silence an uninitialized warning from clang.
2015-10-04 13:06:27 +02:00
Rodger Combs
a2b8b16300 lavf: add chromaprint muxer
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-04 01:37:31 +02:00
DHE
76e3f8242d libavformat/hlsenc: Use of uninitialized memory unlinking old files
Fixes ticket#4900

Signed-off-by: DHE <git@dehacked.net>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-03 23:52:19 +02:00
DeHackEd
e06114fed3 libx264: copy A53 closed captions from source
Assumes 'GA94' format (ATSC standard)

Signed-off-by: DHE <git@dehacked.net>
Tested-by: Anshul <anshul.ffmpeg@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-03 23:39:01 +02:00
Christophe Gisquet
f827a17005 blockdsp: reindent after parameter removal
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-03 23:34:56 +02:00
Ganesh Ajjanagadde
c4c389aa14 avcodec/apedec: fix bug introduced in commit d3e5fbb1406995e07fccbff3ca8c1e24f57a1f7b
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-03 23:04:23 +02:00
Carl Eugen Hoyos
32a6d37a6b lavf/mlpdec: Simplify mlp/thd probe function.
Move the demuxers into their own file.
2015-10-03 22:40:27 +02:00
Paul B Mahol
e306e43633 avfilter/vf_stereo3d: rewrite in preparation for SIMD
Also slightly faster.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-03 22:25:54 +02:00
Ganesh Ajjanagadde
8d1226e623 configure: silence preprocessor noise from dependency generation
Currently, errors are thrown for various macros while building that are completely bogus.
They occur during the dependency (.d) generation phase, and have no bearing on the compiled output,
since only the stdout is piped into the sed command to generate the .d files.
They basically occur as the relevant -I paths are not (and cannot be passed) during
the dependancy generation phase.
As such, this patch silences them.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-03 21:59:24 +02:00
Michael Niedermayer
fd9a528523 avfilter/vf_blend: Fix argument types, fix segfault in asm
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-03 21:59:24 +02:00
Carl Eugen Hoyos
d89820002a lavf/shortendec: Autodetect raw Shorten streams.
Move the demuxer into its own file.
2015-10-03 21:48:16 +02:00
Paul B Mahol
9762554dd0 avfilter/vf_blend: add x86 SIMD for some modes
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-03 21:26:17 +02:00
Ronald S. Bultje
061b67fb50 vp9: 10/12bpp SIMD (sse2/ssse3/avx) for directional intra prediction. 2015-10-03 14:42:39 -04:00
Ronald S. Bultje
26ece7a511 vp9: 16bpp tm/dc/h/v intra pred simd (mostly sse2) functions. 2015-10-03 14:42:39 -04:00
Ronald S. Bultje
db7786e8ff vp9: sse2/ssse3/avx 16bpp loopfilter x86 simd. 2015-10-03 14:42:39 -04:00
Ganesh Ajjanagadde
254c64c574 cmdutils: silence unused warnings under --disable-swscale, --disable-swresample
This patch silences such warnings by placing initializations under a header guard,
see e.g
http://fate.ffmpeg.org/log.cgi?time=20150919095430&log=compile&slot=x86_64-archlinux-gcc-disableswscale,
http://fate.ffmpeg.org/log.cgi?time=20150919095048&log=compile&slot=x86_64-archlinux-gcc-disableswresample
for examples of such warnings.
It also has the benefit of placing library specific #defines next to each other.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-03 19:26:09 +02:00
Ganesh Ajjanagadde
8dc6e92c3d ffplay: more robust mutex, condition variable handling
SDL_CreateMutex and SDL_CreateCond can fail:
https://wiki.libsdl.org/SDL_CreateMutex.
This patch makes handling more robust in one instance.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-10-03 17:43:24 +02:00
Carl Eugen Hoyos
64508b9af2 configure: Remove --disable-avutil which has no effect from help output. 2015-10-03 16:35:32 +02:00
Carl Eugen Hoyos
7c94cfa262 lavc/options_table: Add option flags to the truncated flag.
Also add a short description for the help output.
2015-10-03 16:34:03 +02:00
Paul B Mahol
13090895cf avfilter/vf_tinterlace: add mergex2 mode
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-03 15:22:16 +02:00
Henrik Gramner
99982524f9 checkasm: Remove use of deprecated av_set_cpu_flags_mask() 2015-10-03 15:08:24 +02:00
Michael Niedermayer
de2f531699 configure: Change screenpresso_decoder to select zlib instead of dep
zlib is used as a suggest/select target not a dep

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-03 14:42:02 +02:00
Ganesh Ajjanagadde
0493e42eb2 avcodec/x86/hpeldsp_rnd_template: silence -Wunused-function on --disable-mmx
This silences some of the -Wunused-function warnings when compiled with --disable-mmx, e.g
http://fate.ffmpeg.org/log.cgi?time=20150919094617&log=compile&slot=x86_64-archlinux-gcc-disable-mmx.
Header guards are too brittle and ugly for this case.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-03 14:24:41 +02:00
Anton Khirnov
bb198c4997 d3d11va: make av_d3d11va_alloc_context() available at all times
The public API should not depend on the build configuration.
2015-10-03 14:09:23 +02:00
Anton Khirnov
f320287159 d3d11va: check for malloc failure 2015-10-03 14:08:13 +02:00
Henrik Gramner
2c3dbff1d8 avutil/avstring: Inline some tiny functions
They're short enough that inlining them actually reduces code size due to
all the overhead associated with making a function call.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-10-03 13:45:37 +02:00
John Stebbins
f56a085593 matroskaenc: Don't write a track language tag
"language" is not an offical matroska tag.
Track languages are specified with the MATROSKA_ID_TRACKLANGUAGE ebml.
Writing the tag overrides the ebml specified language during playback with
libav and some other players.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-10-03 13:44:35 +02:00
Henrik Gramner
8bb376cf6b checkasm: Fix the function name sorting algorithm
The previous implementation was behaving incorrectly in some corner cases.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-10-03 13:38:03 +02:00
Rodger Combs
14221b2dd9 lavf/hls: allow subtitles to be read despite incomplete handling
This will give incorrect results in some cases due to not parsing segments
separately, so it currently requires -strict experimental.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-03 12:54:44 +02:00
Hendrik Leppkes
6b849211bc Merge commit 'e54d7e4e8ef7d778e2ddc5a60bf7307ed55d6333'
* commit 'e54d7e4e8ef7d778e2ddc5a60bf7307ed55d6333':
  dnxhddata: Deduplicate cid 1256 chroma table

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-03 12:49:22 +02:00
Hendrik Leppkes
6411ac6886 Merge commit '1fb63d6f43c348e9c990fa6f7c1bd43f22bc2389'
* commit '1fb63d6f43c348e9c990fa6f7c1bd43f22bc2389':
  dnxhddata: Deduplicate dnx100 tables

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-03 12:48:41 +02:00
Hendrik Leppkes
092d22ea75 Merge commit 'cc320296ab438dfe3178f0e1f775af955fe6c064'
* commit 'cc320296ab438dfe3178f0e1f775af955fe6c064':
  dnxhddata: Fix cid 1260 luma and chroma tables

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-03 12:47:35 +02:00
Hendrik Leppkes
ed11e8966c Merge commit 'bfe1cd80ebeab58cbc1c91ac766a96fce8e4ec1e'
* commit 'bfe1cd80ebeab58cbc1c91ac766a96fce8e4ec1e':
  dnxhddata: Fix 10-bit DNxHD quant matrices

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-03 12:47:20 +02:00
Hendrik Leppkes
cda503a1b9 Merge commit '380146924ecad2e05e9dcc5c3c2e1b5ba47c51e8'
* commit '380146924ecad2e05e9dcc5c3c2e1b5ba47c51e8':
  x264: Add option to force IDR frames

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-03 12:46:01 +02:00
Hendrik Leppkes
f5af92edb9 Merge commit 'eb02387add350f2b34a3e61539fe25ec6213eb18'
* commit 'eb02387add350f2b34a3e61539fe25ec6213eb18':
  x264: Expose the NV21 input support

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-03 12:43:46 +02:00
Hendrik Leppkes
4e67382d72 Merge commit '74942685cb457c01937686892878403a409baf27'
* commit '74942685cb457c01937686892878403a409baf27':
  hls: Check av_opt_set_dict return value as well

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-03 12:43:28 +02:00
Hendrik Leppkes
a11741c293 Merge commit 'd0a3e89d41b05f9ed0e7401c352b60ed4f4d1ed5'
* commit 'd0a3e89d41b05f9ed0e7401c352b60ed4f4d1ed5':
  dcadec: make a number of samples per subband per subsubframe a named constant

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-03 12:36:42 +02:00
Hendrik Leppkes
98ca981a23 Merge commit '8ae1d87a2440cea0564efe2a6c9c223478a05f44'
* commit '8ae1d87a2440cea0564efe2a6c9c223478a05f44':
  build: Add support for known custom allocators

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-03 12:29:19 +02:00
Hendrik Leppkes
4d2160c99a Merge commit '9a3202a98b2e095b54dd784c3e01a09a676fc3fa'
* commit '9a3202a98b2e095b54dd784c3e01a09a676fc3fa':
  Screenpresso SPV1 decoder

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-03 12:22:41 +02:00
Rodger Combs
9825a24e5b lavf/utils: avoid giving up probing early with long subtitle events
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-03 12:10:03 +02:00
Michael Niedermayer
85c92789b6 avcodec/h264_ps: Fix copying oversized pps&sps data
Fixes: https://trac.ffmpeg.org/attachment/ticket/685/movie.264

In the available testcase the actual PPS only uses a few bits
while there are 7kbyte of apparently random data after it

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-03 11:55:23 +02:00
Hendrik Leppkes
5fa5e73e81 Merge commit '1aa24df74c052a73175c43e57d35b4835e537ec8'
* commit '1aa24df74c052a73175c43e57d35b4835e537ec8':
  lavu: Deprecate AVFrame.error[]

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-03 09:52:39 +02:00
Hendrik Leppkes
59b55619b6 Merge commit '3f1f6053013d0015e9f115a91a11744807649a07'
* commit '3f1f6053013d0015e9f115a91a11744807649a07':
  configure: address a copy-paste typo

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-03 09:32:47 +02:00
Michael Niedermayer
14f6c4356b avformat/flvdec: accept sizes if they are off by 11
This error was produced by rtmproto.c, it is possibly such streams
where dumped, this commit is needed to support them

Fixes: z0e.flv

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-02 20:18:53 +02:00
wm4
16aac9a359 avcodec/videotoolbox: fix decoding of some h264 bitstreams
This affects Annex B streams (such as demuxed from .ts and others). It
also handles the format change in reinit-large_420_8-to-small_420_8.h264
correctly.

Instead of passing through the extradata, create it on the fly it from
the currently active SPS and PPS. Since reconstructing the PPS and SPS
NALs would be very complicated and verbose, we use the NALs as they
originally appeared in the bitstream.

The code for writing the extradata is somewhat derived from
libavformat/avc.c, but it's small and different enough that sharing it
is not really worth it.
2015-10-02 19:09:16 +02:00
wm4
069190f707 avcodec/h264: keep SPS and PPS bitstream data
We assume an upper bound of 4096 bytes for each raw SPS/PPS. It's hard
to determine an exact maximum size, but this value was was considered
high enough and safe.

Needed for the following VideotoolBox commit.
2015-10-02 19:08:54 +02:00
Christophe Gisquet
74ef5449a6 dnxhddec: init scantable once permutation is set
Otherwise, the dsp may change without its permuation being applied.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-02 18:08:36 +02:00
Christophe Gisquet
c7e14a279f dnxhddec: use dequantization formula from specs
The current one, while correct, does not yield the best possible
results. The specificiations suggest another formula, which results
in quality gains in the decoded output from fate tests. This
justifies changing said formula.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-02 18:08:36 +02:00
Christophe Gisquet
7e4070d2e7 dnxhddec: initialize with mb-aligned dimensions
The coded size is a multiple of the macroblock size, which is 16.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-02 18:08:36 +02:00
Paul B Mahol
160556c9ad avfilter/vf_maskedmerge: add SIMD for maskedmerge with 8 bit depth input
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-02 17:40:57 +02:00
Derek Buitenhuis
abaa12263e avcodec: Don't lock during open if the codec has threadsafe init
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-10-02 14:07:14 +01:00
Christophe Gisquet
e54d7e4e8e dnxhddata: Deduplicate cid 1256 chroma table
CID 1256 is specified as using the same table for luma and chroma,
which is the same as CID 1235 luma table. This is consistent with
the format supposedly being RGB, although most sequences seem to
actually be YCbCr-encoded.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-10-02 13:12:19 +02:00
Jeremy James
1fb63d6f43 dnxhddata: Deduplicate dnx100 tables
Tables 1258 and 1259 were not zigzagged when added, so it was not
possible to notice the equivalence.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-10-02 13:12:12 +02:00
Jeremy James
cc320296ab dnxhddata: Fix cid 1260 luma and chroma tables
These table was not zigzagged when added.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-10-02 13:12:04 +02:00
Joseph Artsimovich
bfe1cd80eb dnxhddata: Fix 10-bit DNxHD quant matrices
Convert them to zigzag order, as the rest of them are.

When I was adding support for 10-bit DNxHD, I just copy-pasted the
missing quant matrices from the spec. Now it turns out the existing
matrices in dnxhddata.c were in zigzag order. This resulted in wrong
quantization for 10-bit DNxHD. The attached patch fixes the problem by
converting 10-bit quant matrices to zigzag order.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-10-02 13:11:57 +02:00
Paul B Mahol
1d7d824494 avfilter/af_rubberband: add process_command()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-02 10:37:44 +02:00
Christophe Gisquet
562ba4a827 blockdsp: remove high bitdepth parameter
It is only (mis-)used to set the dsp fucntions clear_block(s). But
these functions always work on 16bits-wide elements, which make
the parameter useless and actually harmful, as it causes all content
on more than 8-bits to not use accelerated functions.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-02 04:38:40 +02:00
James Almer
acdd672506 x86/audio_convert: fix clobbering of xmm registers
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-10-01 22:40:50 -03:00
Carl Eugen Hoyos
da767f06f5 lavf/rawdec: Autodetect raw TrueHD streams. 2015-10-02 03:15:04 +02:00
Michael Niedermayer
94d50b5d00 avformat/rtmpproto: Fix 2 more cases of the 2nd packet size being wrong
This should fix RTMP input which was broken by cbbd906be6150be38dfc14b6bc67dcac8da8aea4
the 40 + 11 case is untested as it did not occur in the testcase

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-02 02:16:14 +02:00
Carl Eugen Hoyos
ac7b1f7423 lavfi/mandelbrot: Output RGB0 instead of RGBA. 2015-10-02 01:21:36 +02:00
Paul B Mahol
f5afd1c738 configure: check rubberband version, allow only latest one
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-01 22:30:18 +02:00
Paul B Mahol
0701ff2c32 avfilter/x86/vf_psnr.asm: fix typo
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-10-01 21:53:13 +02:00
Carl Eugen Hoyos
aea5db97f7 lavf/rawdec: Autodetect raw mlp streams. 2015-10-01 19:58:10 +02:00
Henrik Gramner
17710550c4 x86inc: Make cpuflag() and notcpuflag() return 0 or 1
Makes it possible to use them in arithmetic expressions.
2015-10-01 18:14:12 +02:00
Sven Dueking
5d4a3563f2 qsvenc.c: use query to catch all kind of setting issues
Reviewed-by: Ivan Uskov <ivan.uskov@nablet.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-01 16:12:33 +02:00
Derek Buitenhuis
380146924e x264: Add option to force IDR frames
When forwarding the frame type information, by default x264 can
decide which kind of keyframe output, add an option to force it
to output IDR frames in to support use-cases such as preparing
the content for segmented streams formats.
2015-10-01 14:27:45 +02:00
Yu Xiaolei
eb02387add x264: Expose the NV21 input support
x264 build 147 adds the native support for NV21.

Useful to avoid additional pixel format conversion when encoding
from a wide range of capture devices, Android among those.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-10-01 14:00:28 +02:00
Luca Barbato
74942685cb hls: Check av_opt_set_dict return value as well
Bug-Id: CID 1320426
2015-10-01 13:51:13 +02:00
Alexandra Khirnova
d0a3e89d41 dcadec: make a number of samples per subband per subsubframe a named constant
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-10-01 12:29:06 +02:00
Clément Bœsch
7218352e02 avformat/srtdec: more lenient first line probing
Fixes Ticket #4898
2015-10-01 11:48:45 +02:00
Clément Bœsch
d161a2a72b avformat/srtdec: fix number check for the first character 2015-10-01 11:46:05 +02:00
Michael Niedermayer
9e9d731b51 avcodec/pngdec: mark previous_picture as done on end of decode_frame_common()
Fixes deadlock with threads

Found-by: Paul B Mahol
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-01 01:11:45 +02:00
Michael Niedermayer
dabea74d0e 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>
2015-10-01 00:58:46 +02:00
Paul B Mahol
30ce6fd106 avfilter/vf_maskedmerge: get rid of MaskedMergeContext from functions that do actual work
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-30 22:35:31 +02:00
Paul B Mahol
1da1574002 avfilter/vf_maskedmerge: rewrite and remove some duplicated code
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-30 22:27:39 +02:00
Michael Niedermayer
9b4dd0f876 avcodec/mpeg12dec: Initialize chroma_format to 1
This ensures that chroma format is never set to an invalid value

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-30 21:51:16 +02:00
Luca Barbato
8ae1d87a24 build: Add support for known custom allocators
Makes slightly easier to use jemalloc and tcmalloc.

The two are quite common choices for profiling and debugging.
2015-09-30 21:42:26 +02:00
Vittorio Giovara
9a3202a98b Screenpresso SPV1 decoder
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-09-30 16:45:11 +02:00
Vittorio Giovara
1aa24df74c lavu: Deprecate AVFrame.error[]
These field are difficult to interpret, and are provided by a single
encoder (mpegvideoenc). In general they do not belong to a structure
containing raw data only, so remove them from AVFrame.

Mpegvideoenc now uses a private field in Picture for its internal
computations.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-09-30 16:44:33 +02:00
wm4
cb1da9fb8d 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.
2015-09-30 15:57:41 +02:00
Paul B Mahol
6ce02126ce avfilter/af_rubberband: flush only if there is something available
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-30 13:02:03 +02:00
James Almer
3178931a14 x86/hevc_sao: move 10/12bit functions into a separate file
Tested-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-09-30 02:59:55 -03:00
Matt Oliver
3b03bde46e avformat/async: Allow compilation with native threads. 2015-09-30 13:41:53 +10:00
Matt Oliver
ae58abeabb compat/w32pthreads: Add return values to match the simulated pthread functions. 2015-09-30 13:41:33 +10:00
Shawn Singh
733475160a libavformat/mov.c: Add parsing for DDTS atom for DTS audio
The DDTS atom is defined in ETSI TS 102 114, v1.4.1, Annex E.
This is useful for DTS-HD formats, some of which cannot be
decoded by dcadec.c or libdcadec.

Signed-off-by: Shawn Singh <shawnsingh@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-30 05:05:17 +02:00
Christophe Gisquet
e3242c0219 dnxhddata: deduplicate table
CID 1256 is specified as using the same table for luma and chroma,
which is the same as CID 1235 luma table. This is consistent with
the format supposedly being RGB, although most sequences seem to
actually be YCbCr-encoded.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-30 00:27:07 +02:00
Stefano Pigozzi
78cc19f15e videotoolbox: require hardware acceleration
VideoToolbox also implements a software decoder for h264, and will fallback to
using it if the file cannot be decoded on the GPU. In these cases though,
we want the hwaccel to fail so that we can use the libavcodec software decoder
instead of the Apple one.

Signed-off-by: wm4 <nfxjfg@googlemail.com>
2015-09-29 23:55:11 +02:00
Carl Eugen Hoyos
98ed0716fb lavf/rawenc: Force one stream for hevc and m4v. 2015-09-29 21:36:18 +02:00
Paul B Mahol
a019149249 avfilter/vf_atadenoise: do not use uninitialized data
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-29 20:50:20 +02:00
Ganesh Ajjanagadde
308e7484a3 avcodec/x86/rnd_template: silence -Wunused-function on --disable-mmx
This silences some of the -Wunused-function warnings when compiled with --disable-mmx, e.g
http://fate.ffmpeg.org/log.cgi?time=20150919094617&log=compile&slot=x86_64-archlinux-gcc-disable-mmx.
Header guards are too brittle and ugly for this case.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-29 19:37:26 +02:00
Przemysław Sobala
01dd7e025c lavf/img2dec: Fix memory leak
Fixes #4886

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-29 19:21:13 +02:00
Michael Niedermayer
ed18c49f5f fate: Add basic license header check
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-29 18:52:35 +02:00
Vicente Olivert Riera
3f1f605301 configure: address a copy-paste typo
The correct instruction for mips32r1 is addi.

Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-09-29 18:31:20 +02:00
Hendrik Leppkes
fc97b1f091 Merge commit '26e8fa3b508eb047e85f4e923fc8e82a1aa656ba'
* commit '26e8fa3b508eb047e85f4e923fc8e82a1aa656ba':
  tiny_psnr: Use the correct abs() version

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-29 15:44:28 +02:00
Hendrik Leppkes
f35c4ede9e Merge commit 'c9943f00cfa2471d1b8a3a9ddc7a21049a71090e'
* commit 'c9943f00cfa2471d1b8a3a9ddc7a21049a71090e':
  vf_framepack: Use av_image_copy() where appropriate

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-29 15:44:14 +02:00
Hendrik Leppkes
b03260fde0 Merge commit 'e94e651c762f90ac5fd2dc9bd3ba1336a77d5b5c'
* commit 'e94e651c762f90ac5fd2dc9bd3ba1336a77d5b5c':
  dnxhddec: Enable frame threading

FFmpeg has much more threading modes for DNxHD

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-29 15:38:05 +02:00
Hendrik Leppkes
1342d7b2f9 Merge commit 'c49cbecbae5a42f4ca004197b0118cc50aaaca2e'
* commit 'c49cbecbae5a42f4ca004197b0118cc50aaaca2e':
  dnxhddec: Decode and use interlace mb flag

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-29 15:36:06 +02:00
Hendrik Leppkes
b3bf41cb75 Merge commit 'c5e5e6306223623de8352a3ecd224956aa5beb37'
* commit 'c5e5e6306223623de8352a3ecd224956aa5beb37':
  riff: Add support for RV40 codec in AVI

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-29 15:31:29 +02:00
Hendrik Leppkes
7255cf003e Merge commit 'b5e4f393b6757629281f58c3f3f6d55ca522ab60'
* commit 'b5e4f393b6757629281f58c3f3f6d55ca522ab60':
  avconv: Make the private options discovery more manifest

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-29 15:30:48 +02:00
Hendrik Leppkes
e490fee6b9 Merge commit '3973f0f773e0bd212734eccda78aa798f8b20692'
* commit '3973f0f773e0bd212734eccda78aa798f8b20692':
  Revert "avconv_opt: Allow printing private options"

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-29 15:29:46 +02:00
Hendrik Leppkes
773570a9dc Merge commit 'cf7d2f2d2134c0854edf2db91e7436ac2bc9874f'
* commit 'cf7d2f2d2134c0854edf2db91e7436ac2bc9874f':
  lavc: Simplify checking quant bias option

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-29 15:27:59 +02:00
Hendrik Leppkes
24fea89983 Merge commit '84dfc426cea7242099aea9d47121cea65dffd936'
* commit '84dfc426cea7242099aea9d47121cea65dffd936':
  avresample: Remove an unused variable

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-29 15:27:42 +02:00
Hendrik Leppkes
fe294b3403 Merge commit '4885bde3187a2bb0cae85b67796e07db233bf77f'
* commit '4885bde3187a2bb0cae85b67796e07db233bf77f':
  motion_est_template: Fix undefined left shift of negative number

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-29 15:26:59 +02:00
Hendrik Leppkes
cbed8dbb7e Merge commit '977f41e274a66c9d257186ca1df8373a09cc4d40'
* commit '977f41e274a66c9d257186ca1df8373a09cc4d40':
  mlpdec: Fix a undefined left shift of negative number

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-29 15:26:13 +02:00
Hendrik Leppkes
b01891a9f0 Merge commit '948f3c19a8bd069768ca411212aaf8c1ed96b10d'
* commit '948f3c19a8bd069768ca411212aaf8c1ed96b10d':
  lavc: Make AVPacket.duration int64, and deprecate convergence_duration

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-29 15:22:52 +02:00
Ganesh Ajjanagadde
d3e5fbb140 avcodec/apedec: fix undefined left shifts of negative numbers
This fixes -Wshift-negative-value reported with clang 3.7+, e.g
http://fate.ffmpeg.org/log.cgi?time=20150919172459&log=compile&slot=x86_64-darwin-clang-polly-notiling-3.7.
Note that the patch crucially depends on int >= 32 bits,
an assumption made in many places in the codebase.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-29 15:05:38 +02:00
Hendrik Leppkes
a2426798d6 Merge commit 'd00bb8addccb63fa3feacb06d2a310731dc0113b'
* commit 'd00bb8addccb63fa3feacb06d2a310731dc0113b':
  mips: intreadwrite: Only execute that code for mips r1 or r2

Not merged, as FFmpeg has a separate condition to protect this code.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-29 14:35:07 +02:00
Hendrik Leppkes
c096226ae6 Merge commit '1016a75cf3170648dc9b59fdef170cbfc142f8ad'
* commit '1016a75cf3170648dc9b59fdef170cbfc142f8ad':
  configure: mips: Support mips r6, r2 and r1

Not merge, as MIPS support in ffmpeg is handled
quite differently and I do not have an env to test.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-29 14:33:35 +02:00
Vittorio Giovara
26e8fa3b50 tiny_psnr: Use the correct abs() version 2015-09-29 14:33:01 +02:00
Vittorio Giovara
c9943f00cf vf_framepack: Use av_image_copy() where appropriate
This correctly adjust chroma subsampling for column interleaved mode,
and allows future high bitdepth support.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-09-29 14:33:01 +02:00
Vittorio Giovara
e94e651c76 dnxhddec: Enable frame threading
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-09-29 14:33:01 +02:00
Christophe Gisquet
c49cbecbae dnxhddec: Decode and use interlace mb flag
This bit is 1 in some samples, and seems to coincide with interlaced
mbs and CID1260. 2008 specs do not know about it, and maintain qscale
is 11 bits. This looks oversized, but may help larger bitdepths.

Currently, it leads to an obviously incorrect qscale value, meaning
its syntax is shifted by 1. However, reading 11 bits also leads to
obviously incorrect decoding: qscale seems to be 10 bits.

However, as most profiles still have 11bits qscale, the feature is
restricted to the CID1260 profile (this flag is dependent on
a higher-level flag located in the header).

The encoder writes 12 bits of syntax, last and first bits always 0,
which is now somewhat inconsistent with the decoder, but ends up with
the same effect (progressive + reserved bit).

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-09-29 14:33:01 +02:00
Thierry Foucu
c5e5e63062 riff: Add support for RV40 codec in AVI
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-29 14:33:01 +02:00
Vittorio Giovara
b5e4f393b6 avconv: Make the private options discovery more manifest 2015-09-29 14:33:01 +02:00
Vittorio Giovara
3973f0f773 Revert "avconv_opt: Allow printing private options"
This reverts commit 7bb1c1bfd22de2200743af04ebd0c7c775f56f7e.
A long existing version in the form of avconv -h decoder=h264 already
existed, and this just duplicates it.
2015-09-29 14:33:01 +02:00
Vittorio Giovara
cf7d2f2d21 lavc: Simplify checking quant bias option 2015-09-29 14:33:01 +02:00
Ganesh Ajjanagadde
84dfc426ce avresample: Remove an unused variable
This fixes a -Wunused-variable warning.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-09-29 14:33:01 +02:00
Ganesh Ajjanagadde
4885bde318 motion_est_template: Fix undefined left shift of negative number
This fixes a -Wshift-negative-value warning reported with clang 3.7+.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-09-29 14:33:00 +02:00
Ganesh Ajjanagadde
977f41e274 mlpdec: Fix a undefined left shift of negative number
This fixes a -Wshift-negative-value warning reported with clang 3.7+.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-09-29 14:33:00 +02:00
wm4
948f3c19a8 lavc: Make AVPacket.duration int64, and deprecate convergence_duration
Note that convergence_duration had another meaning, one which was in
practice never used. The only real use for it was a 64 bit replacement
for the duration field. It's better just to make duration 64 bits, and
to get rid of it.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-09-29 14:33:00 +02:00
Hendrik Leppkes
071f6edb98 Merge commit '678f788fea3380e5cbbf75baac5cc0ce07a56a42'
* commit '678f788fea3380e5cbbf75baac5cc0ce07a56a42':
  configure: Set the initial ldflags to match the cflags

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-29 14:24:35 +02:00
Hendrik Leppkes
4d9b78a875 Merge commit '1a4c5fe56008c61b0362c75bea5d446dc5b256bc'
* commit '1a4c5fe56008c61b0362c75bea5d446dc5b256bc':
  libopenh264enc: Use av_log() to log messages

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-29 14:23:45 +02:00
Hendrik Leppkes
27673f1bea Merge commit '8aecec84021a61b943718ff3d7c2c57fcd4af199'
* commit '8aecec84021a61b943718ff3d7c2c57fcd4af199':
  qsvdec: make ff_qsv_decode_init() static

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-29 14:20:05 +02:00
Hendrik Leppkes
b1284a4b4a Merge commit '539e5ac2ecfec2e2f441222a43fb0583643ea607'
* commit '539e5ac2ecfec2e2f441222a43fb0583643ea607':
  examples/qsvdec: free the lavc decoder before closing MFX/VAAPI

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-29 14:17:29 +02:00
Hendrik Leppkes
d0a1605134 Merge commit '3ee462dca1038e63b8e8d5e751121736d5772a5d'
* commit '3ee462dca1038e63b8e8d5e751121736d5772a5d':
  examples/qsvdec: do not free the surfaces in the frame_free() callback

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-29 14:17:23 +02:00
Hendrik Leppkes
9457a11a22 Merge commit '2c32eace5ec4d1d7ca4e0220856cd2815ccc71b2'
* commit '2c32eace5ec4d1d7ca4e0220856cd2815ccc71b2':
  qsvdec: close the MFX decoder on uninit

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-29 14:17:09 +02:00
Hendrik Leppkes
029aa8ff14 Merge commit 'd0c8c380ecf3d9bb16621a4fb59ebbcde301002a'
* commit 'd0c8c380ecf3d9bb16621a4fb59ebbcde301002a':
  qsv: document AVQSVContext members

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-29 14:14:10 +02:00
Hendrik Leppkes
6668214521 Merge commit '5d2daebf3cc8de4cee1973db6a2229beaad3b7cd'
* commit '5d2daebf3cc8de4cee1973db6a2229beaad3b7cd':
  qsvenc: mark the encoders as INIT_CLEANUP

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-29 14:12:47 +02:00
Hendrik Leppkes
49a25d02dd Merge commit '83847cc8fa97e0fc637a0962bafb837acdb6eacc'
* commit '83847cc8fa97e0fc637a0962bafb837acdb6eacc':
  qsvenc: do not try to close the encoder if the session is NULL

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-29 14:10:25 +02:00
Hendrik Leppkes
4554178f07 Merge commit '741b352b16dad74b87c4a39bade8902633a2b0e6'
* commit '741b352b16dad74b87c4a39bade8902633a2b0e6':
  qsvdec: list supported pixel formats

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-29 13:53:42 +02:00
Hendrik Leppkes
c36e85b3d9 Merge commit 'ae25413daf42a06f078ed81bb545ec23a8e0b482'
* commit 'ae25413daf42a06f078ed81bb545ec23a8e0b482':
  lavfi: do not exclude hwaccel formats from ff_all_formats()

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-29 13:48:58 +02:00
Hendrik Leppkes
88dbdf4845 Merge commit 'cc285521000020ab237d183dc3a26f99fce3030f'
* commit 'cc285521000020ab237d183dc3a26f99fce3030f':
  checkasm/x86: Correctly handle variadic functions

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-29 13:48:24 +02:00
Hendrik Leppkes
fd0fa9af80 Merge commit '5405584b7b54ca889c341743de1d58792449830d'
* commit '5405584b7b54ca889c341743de1d58792449830d':
  checkasm: Use a self-balancing tree

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-29 13:48:05 +02:00
Hendrik Leppkes
d0bf83ff1d Merge commit 'a41e5e192ed8f79f6607f978dee3205580ba5039'
* commit 'a41e5e192ed8f79f6607f978dee3205580ba5039':
  vdpau: fix constrained baseline fallback

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-29 13:45:38 +02:00
Hendrik Leppkes
4b7685b6c6 Merge commit 'cc8db760616a7ec3bd39b22ca45888c01326db13'
* commit 'cc8db760616a7ec3bd39b22ca45888c01326db13':
  mpegts: use avcodec_get_type() to set codec_type

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-29 13:45:23 +02:00
Hendrik Leppkes
2f63e83c26 Merge commit 'a5d58fea68b9212e0065a71939e921505504a9bb'
* commit 'a5d58fea68b9212e0065a71939e921505504a9bb':
  lavc: reimplement avcodec_get_type() using codec descriptors

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-29 13:45:19 +02:00
Hendrik Leppkes
b123d82c41 Merge commit 'b10b6ac7a902f28e09e37a29c392e2f0c19e9526'
* commit 'b10b6ac7a902f28e09e37a29c392e2f0c19e9526':
  vdpau: deprecate av_vdpau_get_profile()

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-29 13:44:59 +02:00
Michael Niedermayer
1b82b934a1 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>
2015-09-29 13:23:25 +02:00
Vicente Olivert Riera
d00bb8addc mips: intreadwrite: Only execute that code for mips r1 or r2
MIPS R6 supports unaligned memory access and does not have
the load/store-left/right family of instructions.

Signed-off-by: Vicente Olivert Riera <Vincent.Riera at imgtec.com>
Signed-off-by: Luca Barbato <lu_zero at gentoo.org>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-09-29 11:10:37 +02:00
Luca Barbato
1016a75cf3 configure: mips: Support mips r6, r2 and r1
Detect the different MIPS architecture variants.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-09-29 11:10:37 +02:00
Luca Barbato
678f788fea configure: Set the initial ldflags to match the cflags
Some gcc-based toolchain would fail to link if the abi set by the
cpuflags does not match the default.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-09-29 11:10:37 +02:00
Gregory J. Wolfe
1a4c5fe560 libopenh264enc: Use av_log() to log messages
File libopenh264enc.c has been modified so that the encoder uses av_log()
to log messages (error, warning, info, etc.) instead of logging them
directly to stderr.  At the time the encoder is created, the current
libav log level is mapped to an equivalent libopenh264 log level.  This
log level, and a message logging function that invokes av_log() to
actually log messages, are then set on the encoder.

This contains further changes and simplifications by Michael Niedermayer
and Martin Storsjö.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-09-29 11:37:36 +03:00
Ganesh Ajjanagadde
b3066be0e4 avcodec/videotoolbox: fix -Wunused-but-set-variable
pix_fmt was declared presumably to shorten the argument passed to the function.
However, it is currently not being used for such a purpose.
This patch simply removes it instead.
This fixes -Wunused-but-set-variable reported at e.g:
http://fate.ffmpeg.org/log.cgi?time=20150919194249&log=compile&slot=x86_64-darwin-gcc-4.9.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-29 04:50:03 +02:00
Thierry Foucu
7f72f2d75e libavformat/flvdec.c: free always the packet after a resync.
In case of resync, always free the packet, but retry only if the resync
did not get to the end of the file. Otherwise, there is a memory leak when the
last packet in the file is corrupted.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-29 04:01:50 +02:00
Paul B Mahol
1d0487f77f avcodec/pngdec: reset has_trns after every decode_frame_png()
Fixes #4887.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-28 20:54:09 +02:00
Henrik Gramner
69e456d7fb checkasm/vp9dsp: Fix iszero() to read the correct data 2015-09-28 18:50:13 +02:00
Ronald S. Bultje
0b227c6d47 checkasm: add vp9dsp.itxfm_add tests. 2015-09-28 10:51:53 -04:00
Henrik Gramner
19b28d047d checkasm: Fix the function name sorting algorithm
The previous implementation was behaving incorrectly in some corner cases.
2015-09-28 16:38:23 +02:00
Anton Khirnov
8aecec8402 qsvdec: make ff_qsv_decode_init() static
It is not used outside of qsvdec.c anymore.
2015-09-28 15:46:58 +02:00
Anton Khirnov
539e5ac2ec examples/qsvdec: free the lavc decoder before closing MFX/VAAPI
lavc expects MFX to still be in a usable state on close.
2015-09-28 15:46:10 +02:00
Anton Khirnov
3ee462dca1 examples/qsvdec: do not free the surfaces in the frame_free() callback
Even though libmfx might not need them anymore, avcodec might still
access the surfaces. So free them separately at the end.
2015-09-28 15:45:29 +02:00
Anton Khirnov
2c32eace5e qsvdec: close the MFX decoder on uninit 2015-09-28 15:45:17 +02:00
Anton Khirnov
d0c8c380ec qsv: document AVQSVContext members 2015-09-28 15:44:47 +02:00
Anton Khirnov
5d2daebf3c qsvenc: mark the encoders as INIT_CLEANUP
Should fix some leaks on init failure.
2015-09-28 15:43:04 +02:00
Anton Khirnov
83847cc8fa qsvenc: do not try to close the encoder if the session is NULL 2015-09-28 15:42:56 +02:00
Anton Khirnov
741b352b16 qsvdec: list supported pixel formats
This is useful for detecting QSV-enabled decoders.
2015-09-28 15:42:46 +02:00
Anton Khirnov
ae25413daf lavfi: do not exclude hwaccel formats from ff_all_formats()
It should be possible to pass hwaccel frames through lavfi.
2015-09-28 15:42:38 +02:00
Henrik Gramner
cc28552100 checkasm/x86: Correctly handle variadic functions
The System V ABI on x86-64 specifies that the al register contains an upper
bound of the number of arguments passed in vector registers when calling
variadic functions, so we aren't allowed to clobber it.

checkasm_fail_func() is a variadic function so also zero al before calling it.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-09-28 14:25:59 +02:00
Jean Delvare
3e5b02bdb8 avfilter/delogo: Fix show option when band is small
The code assumed that the outermost interpolated pixels were always in
the fuzzy area defined by the band option. However if the band value
is small, there may be no fuzzy area on a given plane. In that case,
option show did not work, no rectangle was drawn (or only on the luma
plane, depending on the band value and chroma plane subsampling
factors.)

Fix the problem by not making any assumption on where the outermost
interpolated pixels will be.

The new code was verified to produce the same result as the original
code when the band value is not small.

Signed-off-by: Jean Delvare <jdelvare@suse.de>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-28 13:23:47 +02:00
Christophe Gisquet
578f721f5d dnxhddec: add my contributions
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-28 12:39:22 +02:00
Christophe Gisquet
6110a55b7d dnxhddec: reindent/cosmetics
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-28 12:25:56 +02:00
Henrik Gramner
5405584b7b checkasm: Use a self-balancing tree
Tested functions are internally kept in a binary search tree for efficient
lookups. The downside of the current implementation is that the tree quickly
becomes unbalanced which causes an unneccessary amount of comparisons between
nodes. Improve this by changing the tree into a self-balancing left-leaning
red-black tree with a worst case lookup/insertion time complexity of O(log n).

Significantly reduces the recursion depth and makes the tests run around 10%
faster overall. The relative performance improvement compared to the existing
non-balanced tree will also most likely increase as more tests are added.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-09-28 11:16:33 +02:00
wm4
a41e5e192e vdpau: fix constrained baseline fallback
It appears vdpau drivers can return constrained baseline as unsupported,
even if libvdpau knows about the symbol, and the main profile is
supported.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-09-28 11:05:27 +02:00
wm4
cc8db76061 mpegts: use avcodec_get_type() to set codec_type
Note that this slightly changes behavior: it sets AVMEDIA_TYPE_UNKNOWN
if the codec type is unknown. This should be ok.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-09-28 10:50:50 +02:00
wm4
a5d58fea68 lavc: reimplement avcodec_get_type() using codec descriptors
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-09-28 10:50:38 +02:00
Alex Smith
a58c22d612 configure: Support for HEASLR on mingw targets
The appropriate flag for HEASLR (--high-entropy-va) was added in
binutils 2.25.

Also set the image base >4GB so higher entropy gets applied to image
base randomization when used with HEASLR (8 -> 17 bits of
randomization).  Windows does this for compatibility because of "latent
pointer truncation issues".

Signed-off-by: Alex Smith <alex.smith@warpsharp.info>
2015-09-28 10:15:49 +02:00
Rémi Denis-Courmont
b10b6ac7a9 vdpau: deprecate av_vdpau_get_profile()
This function can intrinsically not deal with codec profile fallback
(for H.264 Constrained Baseline especially), and was made redundant
by av_vdpau_bind_context().

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-09-28 09:45:58 +02:00
Paul B Mahol
238ca2d723 doc/filters: move mcdeint above mergeplanes
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-28 09:20:58 +02:00
Paul B Mahol
691a7df3c5 avfilter: add maskedmerge filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-28 09:20:58 +02:00
Christophe Gisquet
235381e674 dnxhddec: use unsafe bitstream reader
Each line is padded by the format, and errors are now reported and
stop the decoding. Around 5% speedup.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-28 01:00:58 +02:00
Ganesh Ajjanagadde
fd44892073 doc/ffplay, ffplay: add information regarding volume control
ffplay now supports dynamic volume control. This documents the supported
behavior.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-09-27 23:04:54 +02:00
Ganesh Ajjanagadde
f1a9583305 ffplay: add support for interactive volume control
This is a feature heavily inspired by the mpv player. At the moment, methods
for adjusting volume in ffplay are rather clumsy: either one needs to set it
system-wide, or one needs to set it via the volume filter.

This patch adds key bindings identical to the mpv defaults for muting/unmuting
and increasing/decreasing the volume interactively without any introduction of
external dependencies.

TODO: doc update, possible mouse button bindings (mpv has this).

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-09-27 23:04:53 +02:00
Thomas Mundt
2b6567722a h264: Fix ticket #3147 H264 - Wrong field order
Default field order to top field first when interlaced frame is detected and pic_struct_present_flag is not set.
Since bottom field first comes from the old NTSC standard and is not used with HD anymore I think it´s straight forward to favor the majority.

Signed-off-by: Thomas Mundt <loudmax@yahoo.de>
Reviewed-by: Kieran Kunhya <kierank@obe.tv>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-27 22:39:24 +02:00
Christophe Gisquet
b8b8e82ea1 dnxhddec: check and report bitstream errors
This only occur when an overrun in coefficient decoding is
detected.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-27 21:57:58 +02:00
Henrik Gramner
7ca1de5b4f checkasm/x86: Correctly handle variadic functions
The System V ABI on x86-64 specifies that the al register contains an upper
bound of the number of arguments passed in vector registers when calling
variadic functions, so we aren't allowed to clobber it.

checkasm_fail_func() is a variadic function so also zero al before calling it.
2015-09-27 20:21:26 +02:00
Alex Smith
6e61231d64 configure: Disable automatic image base calculation
There's no reason for it.  ASLR will rebase it regardless so "preventing
collisions" isn't really relevant.  This also brings it in line with
what a msvc produced dll will have (an image base of 0x10000000).

Signed-off-by: Alex Smith <alex.smith@warpsharp.info>
Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-27 19:30:09 +02:00
Michael Niedermayer
7d636d02b1 swresample/dither_template: Add missing license header
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-27 13:09:10 +02:00
Michael Niedermayer
c4d50314c0 avcodec/d3d11va: Fix project name
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-27 13:08:49 +02:00
Michael Niedermayer
549d109248 avfilter/vf_yadif: add missing "This file is part of FFmpeg"
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-27 13:08:24 +02:00
Michael Niedermayer
485057f715 avfilter/vf_mcdeint: add missing "This file is part of FFmpeg"
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-27 13:07:12 +02:00
Christophe Gisquet
5c6e3a019c dnxhddec: simplify block parsing calls
Fewer arguments, less duplicated code.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-27 12:03:00 +02:00
Christophe Gisquet
8e8ed57ea7 dnxhddec: remove unused qscale parameter
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-27 12:03:00 +02:00
Ganesh Ajjanagadde
23acb982a3 ffplay: dynamically allocate filename buffer
filename was set to an arbitrary 1024 characters. ffplay would thus be unable to
play files whose name exceeds that arbitrary threshold.

This patch dynamically allocates and frees the filename buffer to remove such
limitations.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-09-27 01:38:46 +02:00
Christophe Gisquet
08a7510fca dnxhddec: implement slice multithreading
Around 3x speedup with 4 threads. Maybe more mb lines should be
batched per thread, but that's good enough for a first try.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-27 01:07:46 +02:00
Ganesh Ajjanagadde
265b106b92 ffplay: introduce key repeats
Key repeats have been introduced simply because they improve usability in my
experience for volume, brightness, and other such controls by speeding up the
time taken to go from 0 to max intensity. As a side benefit, this enables rapid
seeking through a file via left/right keys.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-09-27 00:54:29 +02:00
Alex Smith
20b079963b configure: Combine dynamicbase and nxcompat checks
They were added to binutils in the same version so it's safe to combine.

Signed-off-by: Alex Smith <theryuu@warpsharp.info>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-27 00:06:22 +02:00
Henrik Gramner
ad9a543e93 avutil/avstring: Inline some tiny functions
They're short enough that inlining them actually reduces code size due to
all the overhead associated with making a function call.
2015-09-26 22:08:02 +02:00
James Almer
4e03f0ab08 checkasm/vp9dsp: add const to suppress "discards const qualifier" warnings
Reviewed-by: Henrik Gramner <henrik@gramner.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-09-26 16:35:39 -03:00
James Almer
af990d72b7 checkasm/Makefile: add missing testclean target
Reviewed-by: Henrik Gramner <henrik@gramner.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-09-26 16:35:34 -03:00
Timo Rothenpieler
31ee86cd98 avutil/opencl: Fix volatile pointer
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2015-09-26 20:28:29 +02:00
Ganesh Ajjanagadde
db9de9b954 avformat/hls: remove unused function
Fixes -Wunused-function from
http://fate.ffmpeg.org/report.cgi?time=20150820031140&slot=arm64-darwin-clang-apple-5.1

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-09-26 18:44:36 +02:00
Christophe Gisquet
dc218bd083 dnxhddec: parse and print adaptive color transform
Indicates a YCbCr->RGB transform at the block level. Although nothing
explicitly states it, this would assume the actual content is planar
RGB.

Currently unsupported, but the one sequence I found using it flagged
every mb that way, actually meaning the content was YCbCr, and thus
best left to the output format to decide what to do of it.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-26 17:35:04 +02:00
Christophe Gisquet
e4b7c3a9f2 dnxhddec: proper rule for interlaced mb flag
It currently only applies to CID 1260, but this flag is dependent on
a higher-level flag located in the header.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-26 16:34:27 +02:00
Paul B Mahol
4cf60b4fa1 avfilter/vf_blend: add addition128 mode
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-26 15:32:56 +02:00
Henrik Gramner
2ab65b652d checkasm: Use a self-balancing tree
Tested functions are internally kept in a binary search tree for efficient
lookups. The downside of the current implementation is that the tree quickly
becomes unbalanced which causes an unneccessary amount of comparisons between
nodes. Improve this by changing the tree into a self-balancing left-leaning
red-black tree with a worst case lookup/insertion time complexity of O(log n).

Significantly reduces the recursion depth and makes the tests run around 10%
faster overall. The relative performance improvement compared to the existing
non-balanced tree will also most likely increase as more tests are added.
2015-09-26 15:11:11 +02:00
Michael Niedermayer
2d221d9e06 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>
2015-09-26 13:42:04 +02:00
Michael Niedermayer
10bbf6cf62 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>
2015-09-26 13:42:04 +02:00
Ronald S. Bultje
7a4b97e946 checkasm: clip vp9 loopfilter test pixels inside allowed bitdepth range. 2015-09-26 06:42:33 -04:00
Hendrik Leppkes
9c3c8d2c56 Merge commit 'b2417ee6d1ee0c5e9b170a642d73bdf68908966f'
* commit 'b2417ee6d1ee0c5e9b170a642d73bdf68908966f':
  dxv: Improve error message

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-26 11:14:31 +02:00
Hendrik Leppkes
b4ea8a7305 Merge commit '1bcd4a476ba45a7fdf59d1701b8f0e274418cc32'
* commit '1bcd4a476ba45a7fdf59d1701b8f0e274418cc32':
  dxv: Support RAW intermediate compression

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-26 11:14:25 +02:00
Hendrik Leppkes
f6048e4920 Merge commit 'bbf71d46db3417b43bcbd745cbf235e8e2ff69ae'
* commit 'bbf71d46db3417b43bcbd745cbf235e8e2ff69ae':
  dxv: Print texture information after header parsing

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-26 11:14:01 +02:00
Hendrik Leppkes
234c7378ca Merge commit 'fb2889691cb7720d2680e188eb6036a35afa2392'
* commit 'fb2889691cb7720d2680e188eb6036a35afa2392':
  dxv: Support the original first version

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-26 11:13:48 +02:00
Hendrik Leppkes
d0aec0aae8 Merge commit '588a5619da0d041e55b365f63d0fa9c72bdbd4d3'
* commit '588a5619da0d041e55b365f63d0fa9c72bdbd4d3':
  dxv: Parse ancillary encoder information

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-26 11:11:06 +02:00
Hendrik Leppkes
2b61cc4443 Merge commit 'a9b8c638cfe2f82191db65e3e3a39f3b35df81f5'
* commit 'a9b8c638cfe2f82191db65e3e3a39f3b35df81f5':
  mmal: Fix AVBufferRef usage

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-26 11:07:54 +02:00
Hendrik Leppkes
f3310df853 Merge commit '49623f531972be5dc2dd8c1b4b8748cad7c424ff'
* commit '49623f531972be5dc2dd8c1b4b8748cad7c424ff':
  mmal: Remove setting extradata on input format

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-26 11:07:44 +02:00
Hendrik Leppkes
c5a312dd6a Merge commit 'f290e48d86e10f34b5ddc519127636bcebec7c43'
* commit 'f290e48d86e10f34b5ddc519127636bcebec7c43':
  mmal: drop the h264 BSF

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-26 11:07:33 +02:00
Claudio Freire
0f98fd30e2 AAC encoder: fix OOB access in search_for_pns
Fix out of bounds access caused by wrongful usage
of swb_offset constants when computing scalefactor
positions.
2015-09-26 04:49:16 -03:00
Rodger Combs
f559812a84 tests/checkasm: make randomize_buffers a function for easier debugging
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-26 02:47:53 +02:00
Reynaldo H. Verdejo Pinochet
086718e8f7 ffserver: drop unneeded branching
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-09-25 17:12:25 -07:00
Reynaldo H. Verdejo Pinochet
83411d7331 ffserver: drop error counting when parsing ACL row
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-09-25 17:12:25 -07:00
Reynaldo H. Verdejo Pinochet
5c1acf0a09 ffserver: rm whitespace c&p leftovers from macro
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-09-25 17:12:25 -07:00
Christophe Gisquet
e19ea0218a dnxhddec: indicate colorspace
It is supposed to only old BT.709 colorspaces.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-26 01:07:40 +02:00
Paul B Mahol
aff3acc54c avformat/iff: check for possible overflow in 2nd argument of av_new_packet
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-25 21:25:08 +02:00
Jeremy James
428424fe75 dnxhddata: correct weight tables
CID 1260 (as evidenced by incorrect decoding of a sample from ticket
4876) seems to use incorrect weight tables. It appears those tables
were not zigzag-scanned.

Apply zigzag on weight tables for new CIDs 1258, 1259, and 1260, and
fix an incorrect chroma table for CID 1256.

Fixes last issue from ticket #4876.

Found-by: Christophe Gisquet <christophe.gisquet@gmail.com>
Signed-off-by: Christophe Gisquet <christophe.gisquet@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-25 20:57:57 +02:00
Christophe Gisquet
2801a1352d dnxhddec: decode and use interlace mb flag
This bit is 1 in some samples, and seems to coincide with interlaced
mbs and CID1260. 2008 specs do not know about it, and maintain qscale
is 11 bits. This looks oversized, but may help larger bitdepths.

Currently, it leads to an obviously incorrect qscale value, meaning
its syntax is shifted by 1. However, reading 11 bits also leads to
obviously incorrect decoding: qscale seems to be 10 bits.

However, as most profiles still have 11bits qscale, the feature is
restricted to the CID1260 profile.

The encoder writes 12 bits of syntax, last and first bits always 0,
which is now somewhat inconsistent with the decoder, but ends up with
the same effect (progressive + reserved bit).

Partially fixes ticket #4876.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-25 20:41:19 +02:00
Lucas de Andrade
770dd10504 avformat/hls: Update Cookies response with Setcookie
Context cookies must be updated when a playlist response return Setcookie header.

Signed-off-by: wm4 <nfxjfg@googlemail.com>
2015-09-25 17:22:44 +02:00
Pedro Arthur
a8602dde5e swscale: fix ticket #4877 2015-09-25 12:18:58 -03:00
Michael Niedermayer
25df7b1c35 avcodec/ffv1dec: Fix >8bps error concealment
Fixes: 03_cave_girls_h264_slc24_slicecrc1_fuzzed.avi

Found-by: Dinah Handel <dinahrhandel@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-25 16:45:43 +02:00
Michael Niedermayer
b2955b6c5a avcodec/rangecoder: Check e
Fixes hang.nut

Found-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-25 14:36:41 +02:00
Claudio Freire
9458a62dec AAC encoder: tweak PNS usage to be more aggressive
This patch tweaks search_for_pns to be both more
aggressive and more careful when applying PNS. On
the one side, it will again try to use PNS on zero
(or effectively zero) bands. For this, both zeroes
and band_type have to be checked (some ZERO bands
aren't marked in zeroes). On the other side, a more
accurate rate-distortion measure avoids using PNS
where it would cause audible distortion.

Also fixed a small bug in the computation of freq
that caused PNS usage on low-frequency bands during
8-short windows. This allows re-enabling PNS during
8-short.
2015-09-25 03:56:32 -03:00
Michael Niedermayer
aa6c43f3fd 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>
2015-09-24 23:53:02 +02:00
Michael Bradshaw
244184217c Return EOF for ICO when the end is reached 2015-09-24 23:35:10 +02:00
Michael Niedermayer
5ba40c3c71 tests/checkasm/vp9dsp: Revert first hunk of bddcf758d3a68ac0bcc3bc4fc4aa7156e05245d4
The change was wrong, also add a comment explaining it

Found-by: BBB
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-24 18:34:43 +02:00
Kyle Swanson
435d000eb5 avfilter/generate_wave_table: clean up extra newlines
Signed-off-by: Kyle Swanson <k@ylo.ph>
2015-09-24 17:26:27 +02:00
Vittorio Giovara
b2417ee6d1 dxv: Improve error message 2015-09-24 10:57:30 +02:00
Vittorio Giovara
1bcd4a476b dxv: Support RAW intermediate compression
Sample-Id: boombox64.mov
Reported-by: Aarni Koskela
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-09-24 10:57:25 +02:00
Vittorio Giovara
bbf71d46db dxv: Print texture information after header parsing 2015-09-24 10:57:25 +02:00
Vittorio Giovara
fb2889691c dxv: Support the original first version
DXV 1.0 provided DXT1 with LZF only.

Sample-Id: Orange-Strings-07_640_DXV.mov
Reported-by: Carl Eugen Hoyos
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-09-24 10:57:20 +02:00
Vittorio Giovara
588a5619da dxv: Parse ancillary encoder information
Header does not contain the number of channels, but rather the encoder
version, so rename the variable, and read the additional byte.
2015-09-24 10:56:44 +02:00
wm4
a9b8c638cf mmal: Fix AVBufferRef usage
AVBufferRef.data and AVPacket.data don't need to have the same value.
AVPacket could point anywhere into the buffer. Likewise, the sizes
don't need to be the same.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-09-24 10:34:46 +02:00
wm4
49623f5319 mmal: Remove setting extradata on input format
This works only for extradata sizes up to 128 bytes. Additionally, I
could never actually see it doing anything. The new code using
MMAL_BUFFER_HEADER_FLAG_CONFIG now takes care of this.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-09-24 10:34:38 +02:00
wm4
f290e48d86 mmal: drop the h264 BSF
We can send mp4-style data directly. But for some reason, this requires
sending the extradata as buffer with MMAL_BUFFER_HEADER_FLAG_CONFIG
set. Reuse the infrastructure for sending AVPackets to do this.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-09-24 10:34:28 +02:00
Paul B Mahol
964a9badcc avfilter/af_tremolo: make it bit-exact with sox effect of same name
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-24 09:57:11 +02:00
Ganesh Ajjanagadde
7179add427 avcodec/ac3enc: use long long after switch to 64 bit bitrate
Commit 7404f3bdb switched bitrate to 64 bits.
This triggers -Wabsolute-value on clang, e.g
http://fate.ffmpeg.org/log.cgi?time=20150917122742&log=compile&slot=x86_64-darwin-clang-3.7-O3.
Therefore, usage of abs is changed to llabs, which is available on all of the platforms.
Unfortunately, LLONG_MAX is not always available, so INT64_MAX is used instead.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-24 04:43:00 +02:00
Ganesh Ajjanagadde
07cd8d5676 avcodec/x86/cavsdsp: silence -Wunused-variable on --disable-mmx
This silences -Wunused-variable when compiled with --disable-mmx, e.g
http://fate.ffmpeg.org/log.cgi?time=20150919094617&log=compile&slot=x86_64-archlinux-gcc-disable-mmx.
The alternative of header guards will make it far too ugly.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-24 04:27:50 +02:00
Christophe Gisquet
f94af8d32a fate: add chroma position scale test
The sample position is made weird and non-nominal to force catching
such issues as default values or specialized operations hiding
issues in corner cases.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-23 23:42:28 +02:00
Christophe Gisquet
552faecf4b vf_scale: conditionally override chroma position
For yuv420p, the chroma position is unilaterally overriden, even
if ffmpeg's command-line explicitly set it. To fix this, override
only if the value is the default one.

Regression since 1515bfb3.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-23 23:30:53 +02:00
Paul B Mahol
3441fef0f8 avformat/brstm: fix overflow
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-23 19:10:13 +02:00
Timo Rothenpieler
4af1f37682 avfilter/vf_chromakey: Add chromakey video filter
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2015-09-23 18:10:14 +02:00
Michael Niedermayer
0c7ceb1e0a avcodec/aacenctab: Make aac_maxval_cb const
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-23 12:46:52 +02:00
zylthinking
d1bbefeaa7 avcodec/libstagefright: fix Stagefright_decode_frame() failing to exit when the source is done
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-23 12:35:59 +02:00
Paul B Mahol
69e6ed2174 doc/filters.texi: add rubberband documentation
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-23 09:50:42 +02:00
Paul B Mahol
43f0b1d38c avfilter/af_rubberband: rename duplicate option name
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-23 09:33:52 +02:00
Claudio Freire
7ec74ae4aa AAC encoder: tweak rate-distortion logic
This patch modifies the encode frame function to
retry encoding the frame when the resulting bit count
is too far off target, but only adjusting lambda
in small, incremental step. It also makes the logic
more conservative - otherwise it will contend with
bit reservoir-related variations in bit allocation,
and result in artifacts when frame have to be truncated
(usually at high bit rates transitioning from low
complexity to high complexity).
2015-09-23 02:33:44 -03:00
Claudio Freire
b01f3ddad3 AAC encoder: simplify and speed up find_min_book
Trivial change to simplify the small but hot
find_min_book function. The new form is easier to
understand and faster.
2015-09-23 02:33:40 -03:00
Alex Smith
91b668acd6 configure: Force mingw's ld to keep the reloc section
Binutils will always strip the relocation information from executable
files even if it needs it (dynamicbase/ASLR).  We can work around this
by using the pic-executable flag combined with setting the correct entry
point since apparently ld forgets what that should be.  This problem
affects both 32 and 64-bit mingw-w64.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-23 01:11:53 +02:00
Ganesh Ajjanagadde
0544c95fd6 avcodec/x86/mpegaudiodsp: silence -Wunused-variable on --disable-mmx
This silences -Wunused-variable when compiled with --disable-mmx, e.g
http://fate.ffmpeg.org/log.cgi?time=20150919094617&log=compile&slot=x86_64-archlinux-gcc-disable-mmx.
The alternative of header guards will make it far too ugly.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-22 23:45:03 +02:00
Ganesh Ajjanagadde
4f90818ea1 avcodec/x86/rv40dsp_init: silence -Wunused-variable on --disable-mmx
This silences -Wunused-variable when compiled with --disable-mmx, e.g
http://fate.ffmpeg.org/log.cgi?time=20150919094617&log=compile&slot=x86_64-archlinux-gcc-disable-mmx.
The alternative of header guards will make it far too ugly.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-22 23:45:03 +02:00
Michael Niedermayer
118b1ba43b avfilter/hermite: fix "libavfilter/hermite.h:19:15: error: no previous prototype for hermite_interpolation"
Fix build

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-22 23:45:03 +02:00
Paul B Mahol
ed4257de2d avfilter: add agate filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-22 22:07:36 +02:00
Michael Niedermayer
31623e9d1e avcodec/mpegvideo_enc: Avoid fine lambda steps in VBV retry code when RD is not in use
Reduces the number of times the vbv retry code is used and should have no
effect on quality

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-22 21:02:50 +02:00
Andreas Cadhalpun
f9f0b4c08e hls: only seek if there is an offset
If there is no #EXT-X-BYTERANGE specified, there is no need to seek.
Seeking fails anyway for rtmp, because this protocol does not support
url_seek.

This fixes CNN.m3u from trac ticket 4797 (i.e. Debian bug #798189).

Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-09-22 21:00:01 +02:00
wm4
e859a3c864 avcodec/dvdsubdec: don't use a NULL log context 2015-09-22 17:41:01 +02:00
wm4
9aab222239 avcodec/dvdsubdec: reject some broken packets
If cmd_pos is broken, this would just keep accumulating packets in the
reassembly buffer, until it fails and flushes the buffer on overflow.
Since packets are usually rather small, this will take a lot of subtitle
packets. The perceived effect is that subtitles are not displayed
anymore after the faulty packet was passed to the decoder.

I'm not terribly sure about this, but on the other hand this code is
active only when fragmented packets need to be reassembled.

Fixes sample file in trac issue #4872.
2015-09-22 17:41:01 +02:00
wm4
f874e2728b avcodec/dvdsub: fix partial packet assembly
Assuming the first and second packets are partial, this would append the
reassembly buffer (ctx->buf) to itself with the second
append_to_cached_buf() call, because buf is set to ctx->buf.

I do not know a valid sample file which triggers this, and do not know
if packets can be split into more than 2 sub-packets, but it triggered
with a (differently) broken sample file in trac issue #4872.
2015-09-22 17:41:01 +02:00
wm4
26eb294007 avformat/hls: fix some cases of HLS streams which require cookies
Broken by commit ba12ba859aabfa7153ba397d869db13acdaba340. This only
happens with HLS streams which use encryption and require preserving
cookies sent by the server.

Fixes trac issue #4846.
2015-09-22 17:41:01 +02:00
Kyle Swanson
a9509ad3f0 avfilter: add tremolo filter
Signed-off-by: Kyle Swanson <k@ylo.ph>
2015-09-22 15:59:39 +02:00
Jean Delvare
d9c72e0d24 Update my email address
My old address no longer works.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-22 10:47:35 +02:00
Ronald S. Bultje
74e4948235 hevc: fix wpp threading deadlock.
Fixes ticket 4258.
2015-09-21 20:44:14 -04:00
Ronald S. Bultje
350e9c6765 vp9: fix loopfilter test code to address Hendrik's comments.
(I forgot to actually merge them into the patch I just pushed.)
2015-09-21 20:44:14 -04:00
James Almer
7086154aaa x86/vp9dsp: fix local header include
Signed-off-by: James Almer <jamrial@gmail.com>
2015-09-21 14:37:32 -03:00
James Almer
91fcb10f08 x86/vp9dsp: add missing header include
Fixes make checkheaders

Signed-off-by: James Almer <jamrial@gmail.com>
2015-09-21 14:34:08 -03:00
wm4
4ed5a73a7e avcodec/dvdsubdec: fix indentation 2015-09-21 13:46:34 +02:00
wm4
265d2a73d6 avformat/assdec: do not drop duplicate subtitles
Duplicates are perfectly legitimate with this format. A correct
renderer will typically show them stacked.
2015-09-21 13:44:37 +02:00
wm4
5c93e57f5c avformat/vobsub: do not attempt to check duplicate subtitles
Some .idx files actually contain duplicate subtitle events:

timestamp: 00:07:52:600, filepos: 00004e800
timestamp: 00:07:52:600, filepos: 00004f800

The second will be dropped, because it has same pts, duration, and text
(the text is just a dummy empty string; the real data is retrieved when
actually reading vobsub subtitle packets).

Dropping this is probably not intended/safe, so avoid it.

See trac issue #4872 for a sample. This patch doesn't fix decoding of
the sample, though.
2015-09-21 13:43:32 +02:00
wm4
c216324a7f avformat/subtitles: make dropping duplicate events optional 2015-09-21 13:42:48 +02:00
wm4
a47ad06baf avformat/vobsub: compare correct packet stream IDs
The stream ID is essentially an arbitrary number defined by the .idx
file headers. They have to match the IDs in the .sub stream. The vobsub
demuxer assumed the IDs would just start from 0, increassing by 1 for
each stream. This is not correct. In the sample I had, the IDs were
starting from 1, leading to no subtitles being displayed at all.

Fix this by using the correct stream ID.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-21 12:55:13 +02:00
Ganesh Ajjanagadde
a0e6e471db configure: silence error if tput not found
If tput is not found for colorizing, error message should be squashed.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-21 10:20:45 +02:00
James Almer
fd9ac48dc8 doc: mention libavcodec can decode Opus natively
Signed-off-by: James Almer <jamrial@gmail.com>
2015-09-20 23:20:43 -03:00
Alex Agranovsky
53e8bef25a mpjpeg: CRLF terminating a sequence of MIME headers should not cause an error
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-21 02:30:29 +02:00
Michael Niedermayer
01770bfda0 avcodec/snowenc: Do not write into const AVFrame
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-20 23:26:39 +02:00
Michael Niedermayer
55b803e33e avcodec/snowenc: Remove unused new_picture field
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-20 23:26:39 +02:00
Pedro Arthur
77367f61b3 swscale: fix ticket 4850 2015-09-20 18:08:14 -03:00
Michael Niedermayer
f67170e81b avdevice/libdc1394: add const to suppress "assignment discards const qualifier from pointer target type" warnings
See: http://fate.ffmpeg.org/log.cgi?time=20150919100330&log=compile&slot=x86_64-archlinux-gcc-enableshared

Found-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-20 22:12:37 +02:00
Ganesh Ajjanagadde
198110d702 avcodec/hevc_mp4toannexb_bsf: silence -Wdiscarded-qualifiers
*poutbuf is non-const, so this casts it explicitly.
This suppresses -Wdiscarded-qualifiers seen in e.g
http://fate.ffmpeg.org/log.cgi?time=20150919100330&log=compile&slot=x86_64-archlinux-gcc-enableshared.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-20 21:15:12 +02:00
Rodger Combs
df2a2643fe tests/checkasm: fix stack smash in check_loopfilter
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-20 20:26:09 +02:00
Rodger Combs
cf2719abee lavf/matroska: ignore ChapCountry ID for now
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-20 20:08:01 +02:00
Paul B Mahol
2a0fc55995 avfilter: add rubberband wrapper
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-20 19:54:57 +02:00
Nicolas George
44f660e7e7 lavfi: remove FF_LINK_FLAG_REQUEST_LOOP.
It has no longer any effect.
2015-09-20 19:02:33 +02:00
Nicolas George
2a351f6c55 lavfi: drop the requirement that request_frame returns a frame.
It requires a loop in filters or the framework,
that makes the scheduling less efficient and more complex.
This is purely an internal change since the loop is now
present in buffersink.
Note that no filter except buffersink did rely on the requirement.
2015-09-20 19:02:33 +02:00
Nicolas George
598f8a7afa lavfi/vf_idet: reindent after last commit. 2015-09-20 18:50:00 +02:00
Nicolas George
7635242ae5 lavfi/vf_idet: remove the loop in request_frame().
It is not necessary due to the use of FF_LINK_FLAG_REQUEST_LOOP.
2015-09-20 18:50:00 +02:00
Nicolas George
807d4b6355 lavfi/buffersink: loop over ff_request_frame().
Do not assume that ff_request_frame() returning success
implies a frame has arrived in the FIFO.
Instead, just loop until a frame is in the FIFO.
It does not change anything since the same loop is present
in ff_request_frame(), confirmed by an assertion.
2015-09-20 18:50:00 +02:00
James Almer
4bb6cb4c7d x86/vp9mc: fix string concatenation of fullpel function names
Fixes compilation with NASM

Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-09-20 12:32:27 -03:00
Michael Niedermayer
b947ac9096 avcodec/internal: Use do {} while() for ff_tlog()
Avoids problems when used without braces

Found-by: Clément Bœsch <u@pkh.me>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-20 12:56:29 +02:00
Michael Niedermayer
bddcf758d3 tests/checkasm/vp9dsp: Add () to protect macro arguments
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-20 11:37:57 +02:00
Ronald S. Bultje
b074367405 checkasm: add VP9 loopfilter tests.
The randomize_buffer() implementation assures that "most of the time",
we'll do a good mix of wide16/wide8/hev/regular/no filters for complete
code coverage. However, this is not mathematically assured because that
would make the code either much more complex, or much less random.
2015-09-20 10:33:04 +02:00
James Almer
784792788b checkasm: add jpeg2000dsp rct_int tests
Reviewed-by: Henrik Gramner <henrik@gramner.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-09-20 00:49:35 -03:00
Ganesh Ajjanagadde
92fabca427 avcodec/x86/hpeldsp_rnd_template: silence -Wunused-function on --disable-mmx
This silences some of the -Wunused-function warnings when compiled with --disable-mmx, e.g
http://fate.ffmpeg.org/log.cgi?time=20150919094617&log=compile&slot=x86_64-archlinux-gcc-disable-mmx.
Header guards are too brittle and ugly for this case.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-20 04:00:42 +02:00
Ganesh Ajjanagadde
6ea457f76d avformat/format: silence -Wdiscarded-qualifiers
lpd.buf is non-const and discards the const qualifier of zerobuffer.
This fixes -Wdiscarded-qualifiers observed with a variety of compilers, including GCC 5.2.
Note that this does not change the type of zerobuffer, and merely makes the intent explicit.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-20 02:14:18 +02:00
Ganesh Ajjanagadde
7cf22c7970 swscale/output: fix undefined left shifts of negative numbers
This fixes -Wshift-negative-value reported with clang 3.7+, e.g
http://fate.ffmpeg.org/log.cgi?time=20150918181527&log=compile&slot=x86_64-darwin-clang-polly-vectorize-stripmine-3.7.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-20 01:14:36 +02:00
Ganesh Ajjanagadde
094a1985d6 avcodec/mlpdec: fix a undefined left shift of negative number
This fixes a -Wshift-negative-value reported with clang 3.7+, e.g
http://fate.ffmpeg.org/log.cgi?time=20150918181527&log=compile&slot=x86_64-darwin-clang-polly-vectorize-stripmine-3.7.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-20 00:30:39 +02:00
Hendrik Leppkes
0118158efa 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>
2015-09-20 00:17:32 +02:00
Ganesh Ajjanagadde
11b563ed8f avcodec/motion_est_template: fix undefined left shift of negative number
This fixes -Wshift-negative-value reported with clang 3.7+, e.g
http://fate.ffmpeg.org/log.cgi?time=20150918181527&log=compile&slot=x86_64-darwin-clang-polly-vectorize-stripmine-3.7.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-19 23:52:16 +02:00
Ganesh Ajjanagadde
39ca7641c8 avresample/resample: remove unused variable
This fixes a -Wunused-variable, see e.g
http://fate.ffmpeg.org/log.cgi?time=20150919162338&log=compile&slot=x86_64-archlinux-gcc-threads.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-19 23:40:34 +02:00
Ganesh Ajjanagadde
e681baf638 avcodec/x86/mpegvideoenc: silence -Wunused-function on --disable-mmx
This silences -Wunused-function when compiled with --disable-mmx, e.g
http://fate.ffmpeg.org/log.cgi?time=20150919094617&log=compile&slot=x86_64-archlinux-gcc-disable-mmx.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-19 23:26:57 +02:00
Ganesh Ajjanagadde
f0c635f577 avcodec/x86/hpeldsp_init: silence -Wunused-function on --disable-mmx
This silences some of the -Wunused-function warnings when compiled with --disable-mmx, e.g
http://fate.ffmpeg.org/log.cgi?time=20150919094617&log=compile&slot=x86_64-archlinux-gcc-disable-mmx.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-19 23:10:52 +02:00
Lou Logan
b798593ca5 doc/filters: fix typo in eq contrast option
Fixes ticket #4866.

Signed-off-by: Lou Logan <lou@lrcd.com>
2015-09-19 12:29:15 -08:00
Michael Niedermayer
a0af9fd954 cmdutils: Filter dst/srcw/h
Dimensions / pixel formats for scaling must be set through the -s / pix_fmt options
or the scale / format filters. Otherwise there are mismatches between whet is
in/output to the scaler and for what the scaler is configured

Fixes Ticket4856

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-19 21:25:40 +02:00
Michael Niedermayer
e3cf978cdd avformat/flvdec: Detect broken sizes (OBS 0.655b), disable resync for affected files
Fixes Ticket4867
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-19 18:34:55 +02:00
Przemysław Sobala
0d097a869c avcodec/imgconvert: Support non-planar colorspaces while padding
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-19 18:34:55 +02:00
James Almer
6f9ba0cb82 x86/vp9dsp: add missing preprocessor guards
Signed-off-by: James Almer <jamrial@gmail.com>
2015-09-19 13:33:53 -03:00
Rostislav Pehlivanov
0cfdaf45c4 lpc: correctly apply windowing to the samples in the float-only lpc
Also change the window to Hamming (using coefficient which make it
a Hanning).

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-19 16:25:58 +01:00
Ganesh Ajjanagadde
9db6c8815d avcodec/dcadec: fix a -Wsometimes-unitialized on clang
This fixes a genuine -Wsometimes-unitialized reported on clang, e.g
http://fate.ffmpeg.org/log.cgi?time=20150918181527&log=compile&slot=x86_64-darwin-clang-polly-vectorize-stripmine-3.7.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-19 14:11:52 +02:00
Ganesh Ajjanagadde
4328e1fc42 avcodec/g723_1: fix a undefined left shift of negative number
This fixes a -Wshift-negative-value reported with clang 3.7+, e.g
http://fate.ffmpeg.org/log.cgi?time=20150918181527&log=compile&slot=x86_64-darwin-clang-polly-vectorize-stripmine-3.7.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-19 13:06:40 +02:00
Ganesh Ajjanagadde
4e2471ef1d avcodec/internal: silence -Wempty-body on clang
This silences a -Wempty-body warning on clang 3.7+, e.g
http://fate.ffmpeg.org/log.cgi?time=20150918181527&log=compile&slot=x86_64-darwin-clang-polly-vectorize-stripmine-3.7.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-19 11:29:49 +02:00
Ganesh Ajjanagadde
8c9853a69b avcodec/indeo3data: fix undefined left shift of negative number
This fixes a whole sea of -Wshift-negative-value reported with clang 3.7+, e.g
http://fate.ffmpeg.org/log.cgi?time=20150918181527&log=compile&slot=x86_64-darwin-clang-polly-vectorize-stripmine-3.7.
Any half decent compiler should anyway optimize away the multiplication.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-09-19 02:43:39 -03:00
Claudio Freire
3693efb315 AAC encoder: fix make checkheaders
With the move of some functions into templates
in aaccoder_twoloop.h and aaccoder_trellis.h,
make checkheaders started failing. Add them to
SKIPHEADERS as should be.
2015-09-18 22:57:56 -03:00
Ganesh Ajjanagadde
6a817ac1e9 avdevice/xcbgrab: fix -Wunused-variable
This patch fixes a -Wunused-variable reported in e.g
http://fate.ffmpeg.org/log.cgi?time=20150918194649&log=compile&slot=x86_64-debian-asan-144800.
av_unused is used as opposed to a header guard for readability.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-19 01:35:43 +02:00
Reynaldo H. Verdejo Pinochet
7a30f51446 ffserver: remove useless assignment leftover
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-09-18 16:24:39 -07:00
Reynaldo H. Verdejo Pinochet
eb613877bf ffserver: break early on _parse_acl_row()
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-09-18 16:24:39 -07:00
Reynaldo H. Verdejo Pinochet
c677b42f79 ffserver: explicitly free() duped filename
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-09-18 16:24:38 -07:00
Reynaldo H. Verdejo Pinochet
fb349359dc ffserver: start dropping all unneededly harcoded str lengths
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-09-18 16:24:33 -07:00
Ganesh Ajjanagadde
b4cb597900 libswscale/swscale: fix -Wunused-function
hyscale, hcscale are only used in old filter code, hence place
header guard to silence -Wunused-function.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-18 23:19:42 +02:00
Ganesh Ajjanagadde
0fe1c50e50 all: do standards compliant absdiff computation
This resolves implementation defined behavior, and also silences -Wabsolute-value in clang 3.5+.
Moreover, the generated asm is identical to before modulo nop padding.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-18 22:42:38 +02:00
James Almer
e47564828b x86/vp9mc: add missing preprocessor guards
Signed-off-by: James Almer <jamrial@gmail.com>
2015-09-18 15:14:53 -03:00
Muhammad Faiz
5b48dd75d5 avfilter/avf_showcqt: use frequency domain windowing
faster initialization and less code
slightly different result computationally from previous
coeffclamp option is ignored

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-18 18:27:18 +02:00
James Almer
36e1665d3d avutil/attributes: add AV_GCC_VERSION_AT_MOST
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-09-18 12:41:29 -03:00
James Almer
2f9ab15960 x86/vp9: add avx2 subpel MC SIMD for 10/12bpp
Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-09-18 12:28:55 -03:00
Timo Rothenpieler
85c343faad avfilter/vf_colorkey: Improve filter description
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2015-09-18 14:52:19 +02:00
Paul B Mahol
770b0ed0e0 Changelog: add forgotten entry
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-17 21:16:51 +00:00
Paul B Mahol
32e1af77ec avcodec/dcaenc: fix lfe fir coefficients
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-17 21:16:26 +00:00
Michael Niedermayer
58fe57d5a0 avcodec/mpeg12enc: Basic support for encoding non even QPs for -non_linear_quant 1
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-18 02:52:57 +02:00
Michael Niedermayer
bf9464027b avcodec/mpeg12dec: Move non_linear_qscale to mpegvideodata
This will be used in the next commit

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-18 02:52:54 +02:00
Michael Niedermayer
2d35757814 avcodec/mpegvideo: Change mpeg2 unquant to work with higher precission qscale
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-18 02:39:17 +02:00
Michael Niedermayer
90d239a441 avcodec/mpegvideo_enc: Add missing entry to non_linear_qscale table
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-18 02:39:17 +02:00
Paul B Mahol
d4a9e6c1a1 avcodec/dcaenc: unbreak >4 channel support
LFE channel is still broken, search for FIXME.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-17 19:20:40 +00:00
James Almer
763ffa2029 checkasm: add flacdsp decorrelate tests
Reviewed-by: Henrik Gramner <henrik@gramner.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-09-17 15:33:07 -03:00
Ganesh Ajjanagadde
63cdb6e4a5 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>
2015-09-17 18:58:01 +02:00
Hendrik Leppkes
3a8e447712 lavf/utils: remove some left-over cruft from the 32-bit size fields 2015-09-17 16:54:00 +02:00
James Almer
655b6dcb34 lavc/lavf: remove incompatible abi checks for the new 64bit fields
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-09-17 11:36:16 -03:00
Paul B Mahol
245bf7c18a doc/filters: showfreqs: fix typo
Fixes #4863

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-17 14:14:22 +00:00
Michael Niedermayer
e1ac0ecbba avcodec/mips/aaccoder_mips: Remove duplicate include
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-17 15:16:05 +02:00
Paul B Mahol
00776e75b1 doc/filters: stereotools: fix mistake
Reported-by: RiCON
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-17 13:11:30 +00:00
Paul B Mahol
f825883eeb avfilter/af_sidechaincompress: do not use floats
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-17 13:05:15 +00:00
Paul B Mahol
969ce025cc avfilter/vf_atadenoise: fix file permissions
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-17 12:41:42 +00:00
Hendrik Leppkes
e34939ca76 Merge commit '7bb1c1bfd22de2200743af04ebd0c7c775f56f7e'
* commit '7bb1c1bfd22de2200743af04ebd0c7c775f56f7e':
  avconv_opt: Allow printing private options

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-17 11:46:34 +02:00
Hendrik Leppkes
7c46f24bde Merge commit 'e3d4784eb31b3ea4a97f2d4c698a75fab9bf3d86'
* commit 'e3d4784eb31b3ea4a97f2d4c698a75fab9bf3d86':
  d3d11va: WindowsPhone requires a mutex around ID3D11VideoContext

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-17 11:31:40 +02:00
Paul B Mahol
695ff5dc6d avfilter/af_sidechaincompress: use doubles instead of floats
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-17 09:30:50 +00:00
Paul B Mahol
ddf378895f avfilter: add stereo tools filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-17 09:30:50 +00:00
Hendrik Leppkes
ea33b1ea30 Merge commit '781a25e9c419dd66063597cc5d70e8919de60561'
* commit '781a25e9c419dd66063597cc5d70e8919de60561':
  checkasm: v210: Fix array overwrite

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-17 11:28:19 +02:00
Hendrik Leppkes
e8fbd80e14 Merge commit '4a664224502b42e3b28949d905a8de7769892184'
* commit '4a664224502b42e3b28949d905a8de7769892184':
  pixfmt: Add new SMPTE color primaries and transfer characteristic values

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-17 11:27:23 +02:00
Hendrik Leppkes
04eff96822 Merge commit '777885983533235ccda5145f96317fc8cd0a18ab'
* commit '777885983533235ccda5145f96317fc8cd0a18ab':
  dcadec: set channel layout in a separate function

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-17 11:21:07 +02:00
Hendrik Leppkes
ecaa6cf7b8 Merge commit '971177f751a6e2931232accceab438bce277bde8'
* commit '971177f751a6e2931232accceab438bce277bde8':
  dcadec: scan for extensions in a separate function

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-17 11:08:22 +02:00
Hendrik Leppkes
157969321a Merge commit '22cc57da64bfd73f2206969486b0aa183ee76479'
* commit '22cc57da64bfd73f2206969486b0aa183ee76479':
  rtpdec: Forward the memory failure

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-17 11:01:16 +02:00
Vittorio Giovara
7bb1c1bfd2 avconv_opt: Allow printing private options
Add an allowed parameter to -h and --help avconv option to print private
options from a codec, format, or filter, named with the provided input
value.

In case multiple classes are found (eg. mov demuxer and mov muxer, or
h264 decoder and h264 demuxer) print all options from all classes.
It is possible to select the type of class to print by adding it
before the name (eg. demuxer:mov and muxer:mov, or decoder:h264and
demuxer:h264).

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-09-17 10:34:37 +02:00
Steve Lhomme
e3d4784eb3 d3d11va: WindowsPhone requires a mutex around ID3D11VideoContext 2015-09-17 10:33:21 +02:00
Henrik Gramner
781a25e9c4 checkasm: v210: Fix array overwrite 2015-09-17 10:33:06 +02:00
Kevin Wheatley
4a66422450 pixfmt: Add new SMPTE color primaries and transfer characteristic values
Appeared in ITU-T Rec H.265 10/2014.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-09-17 10:31:43 +02:00
Timothy Gu
d36eac698f Revert "avformat/format: silence -Wdiscarded-qualifiers"
This reverts commit 27cbe4588aeaa3272f16e395bc2a337e1e43e2b6.

See
https://lists.ffmpeg.org/pipermail/ffmpeg-devel/2015-September/179002.html

Requested-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2015-09-16 19:53:13 -07:00
Claudio Freire
8df9bf8e39 AAC encoder: refactor to resynchronize MIPS port
This patch refactors the AAC coders to reuse code
between the MIPS port and the regular, portable C code.
There were two main functions that had to use
hand-optimized versions of quantization code:
 - search_for_quantizers_twoloop
 - codebook_trellis_rate

Those two were split into their own template header
files so they can be inlined inside both the MIPS port
and the generic code. In each context, they'll link
to their specialized implementations, and thus be
optimized by the compiler.

This approach I believe is better than maintaining
several copies of each function. As past experience has
proven, having to keep those in sync was error prone.
In this way, they will remain in sync by default.

Also, an implementation of the dequantized output
argument for the optimized quantize_and_encode
functions is included in the patch. While the current
implementation of search_for_pred still isn't using
it, future iterations of main prediction probably will.
It should not imply any measurable performance hit while
not being used.
2015-09-16 23:14:26 -03:00
Ronald S. Bultje
344d519040 vp9: add subpel MC SIMD for 10/12bpp. 2015-09-16 21:11:34 -04:00
Ronald S. Bultje
77f359670f vp9: add fullpel (avg) MC SIMD for 10/12bpp. 2015-09-16 21:11:34 -04:00
Ronald S. Bultje
6354ff0383 vp9: add fullpel (put) MC SIMD for 10/12bpp. 2015-09-16 21:11:34 -04:00
Michael Niedermayer
d64f7d4213 avformat/avidec: disable parsing for RV40
Fixes: broken_rv40.avi

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-17 02:08:15 +02:00
Michael Niedermayer
fa5358f07d avcodec/rv34: Delay failure return for B frames with a missing reference
Failing earlier causes the context to be insufficiently initialized which
can break decoding future frames with threads

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-17 02:08:15 +02:00
Ganesh Ajjanagadde
80d23d9d32 swscale/swscale: silence unused function warning
gamma_convert is only used with the old code. Thus, it is
placed under a header guard. This patch silences a -Wunused-function
observed on GCC 5.2.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-09-16 16:31:29 -07:00
Ganesh Ajjanagadde
9aaa54135c avformat/mpjpegdec: silence unused variable/function warnings
Silences a -Wunused-variable and -Wunused-function observed under GCC 5.2.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-09-16 16:29:51 -07:00
Ganesh Ajjanagadde
27cbe4588a avformat/format: silence -Wdiscarded-qualifiers
lpd.buf is non-const and discards the const qualifier of zerobuffer.
This fixes -Wdiscarded-qualifiers observed with GCC 5.2.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-09-16 16:24:56 -07:00
Timothy Gu
712235dd8f configure: Print large lists in more columns if the screen size allows
Reviewed-by: Ganesh Ajjanagadde <gajjanag@mit.edu>
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
2015-09-16 16:22:24 -07:00
Alexandra Hájková
7778859835 dcadec: set channel layout in a separate function
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-09-16 20:21:07 +02:00
Alexandra Hájková
971177f751 dcadec: scan for extensions in a separate function
to make dca_decode_frame more readable

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-09-16 20:21:07 +02:00
Luca Barbato
22cc57da64 rtpdec: Forward the memory failure
And avoid a memory leak.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-09-16 20:20:16 +02:00
Rostislav Pehlivanov
5ba811bdf0 aacenc_tns: fix coefficient compression condition
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-16 17:48:02 +01:00
Michael Niedermayer
a860adb49c tests/checkasm/vp9dsp: Use snprintf() for safetey
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-16 14:19:37 +02:00
Hendrik Leppkes
78af3ffaa9 Merge commit '1ec611a10228945d2ec8a9cf6c5531dee6b7ee56'
* commit '1ec611a10228945d2ec8a9cf6c5531dee6b7ee56':
  rtsp: warning when max_delay reached

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-16 14:11:24 +02:00
Hendrik Leppkes
85c85d453d Merge commit 'd555bd69e792e42d94bd909b30d9bfef01db4e25'
* commit 'd555bd69e792e42d94bd909b30d9bfef01db4e25':
  rtpdec: inform jitter buffer size

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-16 14:11:06 +02:00
Hendrik Leppkes
3d481f39a2 Merge commit 'ff7f6ea9db2a77d74f7e68a716f53ba1f3f85017'
* commit 'ff7f6ea9db2a77d74f7e68a716f53ba1f3f85017':
  rtpdec: add a trace when jitter buffer is full

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-16 14:10:27 +02:00
Hendrik Leppkes
7cecab2f88 Merge commit '3c525b8b4770c1ac5f466a12c5523802bd5d40eb'
* commit '3c525b8b4770c1ac5f466a12c5523802bd5d40eb':
  rtpdec: Increase the max size of the jitter buffer to 500 packets

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-16 14:07:05 +02:00
Hendrik Leppkes
b2a72e8ab9 Merge commit '570fcaf3326aef9313b10863e2f6e6ae664d9dae'
* commit '570fcaf3326aef9313b10863e2f6e6ae664d9dae':
  jpeg2000: Factor out prec init

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-16 14:04:46 +02:00
Carl Eugen Hoyos
f17ca46009 lavf/riff: Support decoding Ambisonic wav files.
Reported and tested by Andy Furniss, adf d lists at gmail
2015-09-16 14:03:13 +02:00
Hendrik Leppkes
2fc552b629 Merge commit '95a41311ac3a44773cc4dc407408aca35b1f8e26'
* commit '95a41311ac3a44773cc4dc407408aca35b1f8e26':
  jpeg2000: Factor out band stepsize initialization

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-16 14:01:58 +02:00
Hendrik Leppkes
054ce2d6ab Merge commit '7fb93eae43cc89bd7c1c275344e1cdbadab7155b'
* commit '7fb93eae43cc89bd7c1c275344e1cdbadab7155b':
  jpeg2000: Factor out band initialization

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-16 13:58:30 +02:00
Hendrik Leppkes
8f80f3d074 Merge commit '1b709f23fb5f505c834d4c855703225795def01d'
* commit '1b709f23fb5f505c834d4c855703225795def01d':
  jpeg2000: Refactor decode_packets

Not merged, as the ffmpeg code is much more advanced.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-16 13:57:50 +02:00
Henrik Gramner
6115966ad3 checkasm: v210: Fix array overwrite 2015-09-16 13:50:09 +02:00
Henrik Gramner
985e7d8cc1 checkasm: v210: s/Libav/FFmpeg/ 2015-09-16 13:48:43 +02:00
Hendrik Leppkes
64f72bb61f Merge commit '29b00f880faa404aa1d0d6820310c510c5996479'
* commit '29b00f880faa404aa1d0d6820310c510c5996479':
  jpeg2000: Templatize the frame writer

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-16 12:08:39 +02:00
Paul B Mahol
dc1050a3e8 avfilter/af_ladspa: process all channels for nb_handles > 1
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-16 09:45:59 +00:00
Paul B Mahol
03f34e0d3c doc/filters: ladspa: add two more examples, this time using SWH plugins
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-16 09:45:59 +00:00
Timo Rothenpieler
dad38bff81 avcodec/vaapi_internal: Add missing include
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2015-09-16 11:41:07 +02:00
Michael Niedermayer
fee2b97d56 avcodec/libxvid: add missing include
Fix build

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-16 11:38:20 +02:00
Hendrik Leppkes
5a754f92d1 Merge commit '41bcc3d15204f290400ba02e4e8f87fc07bcc00e'
* commit '41bcc3d15204f290400ba02e4e8f87fc07bcc00e':
  jpeg2000: Split codeblock decoding from the main tile decoding

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-16 11:31:40 +02:00
Hendrik Leppkes
5de28d341f Merge commit '6536da7371b4847a2824ed46b98829f127f24dad'
* commit '6536da7371b4847a2824ed46b98829f127f24dad':
  doc: Add travis badge

Not merged as ffmpeg does not have travis officially setup.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-16 11:31:11 +02:00
Hendrik Leppkes
52ce8b7b31 Merge commit 'e60a6e7545dd6f5b25e3a65de9c6fdcc6e2e9d6b'
* commit 'e60a6e7545dd6f5b25e3a65de9c6fdcc6e2e9d6b':
  mpegvideo: Drop mpegvideo.h where not needed

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-16 11:27:20 +02:00
Hendrik Leppkes
7b865c222e Merge commit '5d14cf199990cd378904a2618b5c72c4b02290f6'
* commit '5d14cf199990cd378904a2618b5c72c4b02290f6':
  mpegvideo: Make sure mpegutils.h is included where needed

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-16 11:23:40 +02:00
Hendrik Leppkes
b3ff8ef6ec Merge commit '525f58977c93e189fda49a5c4928feaf4d89fac6'
* commit '525f58977c93e189fda49a5c4928feaf4d89fac6':
  mpegvideo: Move macros to more appropriate headers

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-16 11:23:20 +02:00
Hendrik Leppkes
643a156002 Merge commit '285fe5b098c8fbefaed4aacdb839b760a5b7f20d'
* commit '285fe5b098c8fbefaed4aacdb839b760a5b7f20d':
  avfilter: Support both syntaxes for the scale filter

Not merged, ffmpeg has much more flexible option handling

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-16 11:20:42 +02:00
Hendrik Leppkes
c2972a2800 Merge commit 'c7247eb7fe2b95803983e8f7c4f0e904f050ca7b'
* commit 'c7247eb7fe2b95803983e8f7c4f0e904f050ca7b':
  lavr: Remove unreachable code

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-16 11:19:36 +02:00
Hendrik Leppkes
1eb2c0de9e Merge commit 'dc54c78c4d56cdf5549f35ccff2fd66e7ffa0af2'
* commit 'dc54c78c4d56cdf5549f35ccff2fd66e7ffa0af2':
  buffersrc: Improve initialization log message

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-16 11:19:17 +02:00
Hendrik Leppkes
03d47f2ff1 Merge commit '2c6014c629346ebfeb25fc715581a8df9175f71f'
* commit '2c6014c629346ebfeb25fc715581a8df9175f71f':
  fate: Change global error option to private error_rate option

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-16 11:18:28 +02:00
Hendrik Leppkes
25a7c2aed6 Merge commit 'e17db9ac496420f8824190ff5059a8a3646cbb7e'
* commit 'e17db9ac496420f8824190ff5059a8a3646cbb7e':
  fate: Move mv0 option from global to mpv private

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-16 11:14:37 +02:00
Hendrik Leppkes
a600e7145f Merge commit '5b142a4d334bfa8ee5ec5f364c26c98ddb425fac'
* commit '5b142a4d334bfa8ee5ec5f364c26c98ddb425fac':
  lavc: Keep idct integer option

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-16 11:12:32 +02:00
Hendrik Leppkes
352eb4b599 Merge commit '18adc1fd3bb739a240c59f87ec6837fdfa89d32e'
* commit '18adc1fd3bb739a240c59f87ec6837fdfa89d32e':
  avconv_filter: Use full named options

Not merged, as ffmpeg option syntax is quite different.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-16 11:12:07 +02:00
Hendrik Leppkes
182550e42c Merge commit '10de408738d28ab17aa5c1fdccd809b0637c12d5'
* commit '10de408738d28ab17aa5c1fdccd809b0637c12d5':
  lavf: Update to the new crypto API

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-16 11:06:55 +02:00
Eloi BAIL
1ec611a102 rtsp: warning when max_delay reached
packets are queued due to packet reordering until the queue reach its
maximal size or max delay is reached.
This commit adds a warning trace when max delay is reached.

Signed-off-by: Eloi BAIL <eloi.bail@savoirfairelinux.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-09-16 09:58:12 +03:00
Eloi BAIL
d555bd69e7 rtpdec: inform jitter buffer size
This commit print as AV_LOG_VERBOSE the jitter buffer
size. It might be the default value or the value set by application.

Signed-off-by: Eloi BAIL <eloi.bail@savoirfairelinux.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-09-16 09:55:51 +03:00
Eloi BAIL
ff7f6ea9db rtpdec: add a trace when jitter buffer is full
This commit adds a warning trace when jitter buffer
is full. It helps to understand leading decoding issues.

Signed-off-by: Eloi BAIL <eloi.bail@savoirfairelinux.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-09-16 09:54:14 +03:00
Michael Niedermayer
cbbd906be6 avformat/flvdec: Check that sizes match and resync if not
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-16 03:43:21 +02:00
Michael Niedermayer
e01ad950bb avformat/rtmpproto: Fix 2nd packet size
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-16 03:43:21 +02:00
Michael Niedermayer
3496a20bb9 avformat/flvdec: Change packet loop to return EAGAIN instead of looping until a valid packet is foud
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-16 03:32:27 +02:00
Ganesh Ajjanagadde
6d1801b5aa configure: make assignment of variable to '=' explicit
op== is confusing, as it may easily be mistook for an equality check,
while in reality it is doing an assigment to '='.
This patch has the additional benefit of cleaning up 2 warnings from shellcheck.net.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-09-15 14:58:48 -07:00
Thierry Foucu
164cd9b42a libavformat/riff.c: Add support for RV40 codec in AVI
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-15 23:21:47 +02:00
Ronald S. Bultje
bbd44e124a checkasm: add vp9 intra pred tests. 2015-09-15 16:43:29 -04:00
Ronald S. Bultje
084451e1e4 checkasm: add vp9 MC tests. 2015-09-15 16:43:28 -04:00
Paul B Mahol
eeaf19cee9 avfilter/vf_stereo3d: simplify blank calculations and check height
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-15 19:06:06 +00:00
Carl Eugen Hoyos
040ddd27bf lavc/utils: Correctly show bit_rate >INT_MAX.
Fixes ticket #2089.
2015-09-15 20:56:23 +02:00
Michael Niedermayer
72db5e96fc avcodec/ffv1enc: Fix error message when the requested version does not support the requested features
Found-by: "Peter B." <pb@das-werkstatt.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-15 20:46:04 +02:00
Ganesh Ajjanagadde
0f711126b8 avfilter/vsrc_cellauto: use the name 's' for the pointer to the private context
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-09-15 18:34:44 +00:00
Lou Logan
a62d4a01e8 README.md: avoid Github pull requests
Signed-off-by: Lou Logan <lou@lrcd.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Reviewed-by: Ganesh Ajjanagadde <gajjanag@mit.edu>
2015-09-15 10:13:46 -08:00
Ganesh Ajjanagadde
f7b53c9527 avfilter/f_sendcmd: use the name 's' for the pointer to the private context
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2015-09-15 13:21:57 -04:00
Paul B Mahol
aaf4e703f6 avfilter/af_stereowiden: fix 2nd argument for av_calloc
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-15 16:27:52 +00:00
Carl Eugen Hoyos
b290972b8f lavf: Switch probesize and max_analyze_duration to 64bit.
Both are only accessible through AVOptions.
2015-09-15 18:02:51 +02:00
Carl Eugen Hoyos
c311713ca9 lavf: Switch bitrate to 64bit unless compatibility with avconv was requested.
Based on a patch by Steve Swanson, swanysteve at gmail.

Fixes ticket #2089.
2015-09-15 18:02:47 +02:00
Michael Niedermayer
7404f3bdb9 lavc: Switch bitrate to 64bit unless compatibility with avconv was requested. 2015-09-15 18:02:43 +02:00
Paul B Mahol
28e023377c doc/filters: mention newly added windowing functions
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-15 15:23:39 +00:00
Ganesh Ajjanagadde
b26a45c2c3 avfilter/vf_vidstabdetect: use the name 's' for the pointer to the private context
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2015-09-15 11:12:49 -04:00
Ronald S. Bultje
a0d8a81075 vp9: switch min_tile_cols location so it shifts up instead of down.
This fixes cases where the shifted number is 64, but we shifted non-
zero numbers away in the shift. The change makes behaviour consistent
with libvpx.
2015-09-15 09:20:34 -04:00
Eloi BAIL
0edf6c8b2a rtpdec: add a trace when jitter buffer is full
This commit adds an error trace when jitter buffer
is full. It helps to understand leading decoding issues.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-15 13:34:51 +02:00
Eloi BAIL
bc3ea39415 rtpdec: inform jitter buffer size
This commit print as AV_LOG_INFO the jitter buffer
size. It might be the default value or the value set by application.

Signed-off-by: Eloi BAIL <eloi.bail@savoirfairelinux.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-15 13:34:51 +02:00
Ganesh Ajjanagadde
e76be9cd45 avfilter/vf_xbr: use the name 's' for the pointer to the private context
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-09-15 10:51:54 +00:00
Paul B Mahol
b0f9856616 avfilter: add stereowiden filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-15 09:34:22 +00:00
Paul B Mahol
f2b1df735e avfilter/avf_showfreqs: add lanczos and gauss windowing functions
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-15 09:28:40 +00:00
Paul B Mahol
1c853d5727 avfilter/avf_showcqt: draw text optionally
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-15 07:54:47 +00:00
Paul B Mahol
92bfc3cd03 avcodec/dxv: remove code that is never reached
The function is automatically called.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-15 07:52:15 +00:00
Martin Storsjö
3c525b8b47 rtpdec: Increase the max size of the jitter buffer to 500 packets
Since the actual max length of the jitter buffer is restricted by
max_delay, this shouldn't harm the overall latency (assuming that
max_delay is set properly), while allowing packet reordering with
a larger number of packets (which may be required with high bitrate
video).

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-09-15 09:35:44 +03:00
Michael Niedermayer
59c1fec9fb avformat/avidec: Change (last)pos to 64bit
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-15 04:26:19 +02:00
Michael Niedermayer
3e2ef00394 avformat/avidec: Workaround broken initial frame
Fixes Ticket4851

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-15 04:26:19 +02:00
Rodger Combs
8e924629eb lavu/avstring: switch AV_ESCAPE_FLAGs to shift-based formatting
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-15 00:00:57 +02:00
Carl Eugen Hoyos
a85f2cdfbf lavc: Fix standalone compilation of the avi demuxer. 2015-09-14 23:12:28 +02:00
Michael Niedermayer
8b47e10651 avformat/hlsenc: Fix the method command line parameter
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-14 21:07:37 +02:00
Vittorio Giovara
65b96aba28 wmalossless: Warn when decoding 24 bit depth
See ticket #4134
2015-09-14 19:36:21 +02:00
Timothy Gu
ca00dda216 aaccoder_mips: Fix indentation 2015-09-14 08:54:44 -07:00
Clément Bœsch
c8370a17f5 avformat: fix style after recent commits 2015-09-14 17:42:56 +02:00
Alex Agranovsky
1de21215d4 mpjpegde: trim header name/value of MIME headers
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-14 17:13:14 +02:00
Alex Agranovsky
0572bd1a62 mpjpeg: probe should require same constraints as packet reader - both proper content-type and content-size must be present
return AVPROBE_SCORE_MAX, rather than random positive number on success

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-14 17:03:47 +02:00
Nedeljko Babic
b65ffa316e avcodec/mips/aaccoder_mips: Sync with generic aaccoder file.
Code in aaccoder_mips.c was not synced with changes in aaccoder.c for
some time.

That was cause for some fate-aac tests failing.

This patch fixes the problems.

Optimizations disabled in 933309a are enabled again.

Signed-off-by: Nedeljko Babic <nedeljko.babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-14 15:35:35 +02:00
Luca Barbato
570fcaf332 jpeg2000: Factor out prec init
Makes debugging a little simpler.
2015-09-14 14:50:19 +02:00
Luca Barbato
95a41311ac jpeg2000: Factor out band stepsize initialization 2015-09-14 14:48:59 +02:00
Luca Barbato
7fb93eae43 jpeg2000: Factor out band initialization 2015-09-14 14:36:18 +02:00
Luca Barbato
1b709f23fb jpeg2000: Refactor decode_packets
Move the packet-specific parsers in separate functions.
2015-09-14 14:31:25 +02:00
Luca Barbato
29b00f880f jpeg2000: Templatize the frame writer 2015-09-14 14:28:03 +02:00
Luca Barbato
41bcc3d152 jpeg2000: Split codeblock decoding from the main tile decoding
That loop is completely stand-alone.
2015-09-14 14:26:54 +02:00
Agatha Hu
a8bedd56aa avcodec/nvenc: merge compute initialQP sections
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2015-09-14 14:10:09 +02:00
Agatha Hu
49046580ce avcodec/nvenc: Optimize nvenc parameters
Add 3 more presets: fast, medium, slow.
Improve min/max QP calculation.

Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2015-09-14 14:10:08 +02:00
Muhammad Faiz
145c5a9978 avfilter/avf_showcqt: change fft left-right separation
This simplifies the code

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-14 12:51:43 +02:00
Luca Barbato
6536da7371 doc: Add travis badge
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-09-14 00:19:08 +02:00
Ganesh Ajjanagadde
d13a2df8de avfilter/vsrc_mandelbrot: use the name 's' for the pointer to the private context
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-09-13 20:34:26 +00:00
Vittorio Giovara
e60a6e7545 mpegvideo: Drop mpegvideo.h where not needed
Add necessary headers in .c files.
2015-09-13 17:34:46 +02:00
Vittorio Giovara
5d14cf1999 mpegvideo: Make sure mpegutils.h is included where needed 2015-09-13 17:34:45 +02:00
Vittorio Giovara
525f58977c mpegvideo: Move macros to more appropriate headers
MAX_MB_BYTES -> mpegutils.h
FRAME_SKIPPED -> mpegutils.h
INPLACE_OFFSET -> mpegutils.h
ME_MAP_SIZE -> motion_est.h
2015-09-13 17:34:45 +02:00
Luca Barbato
285fe5b098 avfilter: Support both syntaxes for the scale filter 2015-09-13 17:34:45 +02:00
Vittorio Giovara
c7247eb7fe lavr: Remove unreachable code
Bug-Id: CID 1323180
2015-09-13 17:34:45 +02:00
Vittorio Giovara
dc54c78c4d buffersrc: Improve initialization log message
Add timebase and aspect ratio information.
2015-09-13 17:34:45 +02:00
Vittorio Giovara
2c6014c629 fate: Change global error option to private error_rate option 2015-09-13 17:34:45 +02:00
Vittorio Giovara
e17db9ac49 fate: Move mv0 option from global to mpv private 2015-09-13 17:34:45 +02:00
Vittorio Giovara
5b142a4d33 lavc: Keep idct integer option
"int" is useful in testing because provides accurate results across
different plaftforms, so remove it from the scheduled FF_API_UNUSED_MEMBERS
deprecation.
2015-09-13 17:34:45 +02:00
Vittorio Giovara
18adc1fd3b avconv_filter: Use full named options
This introduces a slight timebase computation difference in zmbv-8bit
fate test. This is expected since the new options are double instead
of ints, and the additional precision skews the results in a non
meaningful way.
2015-09-13 17:34:45 +02:00
Vittorio Giovara
10de408738 lavf: Update to the new crypto API 2015-09-13 17:34:45 +02:00
Paul B Mahol
39c61d8459 avfilter: add audio limiter filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-12 13:29:20 +00:00
Paul B Mahol
a0a2ca024b avfilter/af_ladspa: support simpler syntax for controls
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-12 13:07:55 +00:00
Michael Niedermayer
5629143433 avformat/flvdec: Use the first index entry to find the first packet if there was a parsing error in the header
Fixes: unknow_codec.flv

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-13 14:22:31 +02:00
Michael Niedermayer
fd6296e412 avformat/flvdec: Print last packet size at trace level
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-13 14:22:31 +02:00
Michael Niedermayer
6bed88ac78 avformat/flvdec: Print terminator value found if it differs from AMF_END_OF_OBJECT in AMF_DATA_TYPE_MIXEDARRAY
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-13 14:22:21 +02:00
Alex Agranovsky
276ab7c148 avformat/mpjpegdec: Allow mpjpeg headers parsing to succeed upon EOF, if required headers are present
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-13 03:08:50 +02:00
Rodger Combs
3f9fa2d0b5 ADPCM: Bump THP channel limit to 14
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-12 22:09:35 +02:00
Alexandra Hájková
c0a49077ea asfdec: add more checks for size left in asf packet buffer
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-09-12 14:23:32 +02:00
Hendrik Schreiber
1b2412f501 lavc: Fix compilation with --disable-everything --enable-parser=mpeg4video 2015-09-12 13:47:14 +02:00
Vittorio Giovara
f00f6d538d lavc: Sanitize header inclusion guards
Fix typos, add missing comments, and remove stray lines.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-09-12 13:39:37 +02:00
Vittorio Giovara
6064f697a3 lavc: Enable side data only packets by default
Deprecate the now unused option, but temporarily retain the capability
to disable the now default behaviour.

Mention this change in the AVPacket documentation.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-09-12 13:38:31 +02:00
James Almer
1e0b8bf0b3 travis: fix dependencies
bc hasn't been needed since a982c5d74fbc7ff5bd2f2f73af61ae48e9b1bcc6

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-09-12 12:29:27 +02:00
wm4
9940459720 mmaldec: fix pkt_dts determination
This also drops setting the frame->pts field. This is usually not set by
decoders, so this would be an inconsistency that's at worst a danger to
the API user.

It appears the buffer->dts field is normally not set by the MMAL
decoder, so don't use it. If it's ever going to be set by MMAL, we
don't know whether the value will be what we want.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-09-12 12:27:34 +02:00
wm4
87a051f976 lavc: allow asynchronous decoders to return correct pkt_dts values
The generic code in utils.c sets the AVFrame.pkt_dts field from the
packet it was supposedly decoded. This does not have to be true for a
fully asynchronous decoder like mmaldec. It could be overwritten with an
incorrect value. Even if the decoder doesn't determine the DTS (but sets
it to AV_NOPTS_VALUE), it's impossible to determine a correct value in
utils.c.

Decoders can now be marked with FF_CODEC_CAP_SETS_PKT_DTS, in which case
utils.c won't overwrite the field. The decoders are expected to set this
field (even if they only set it to AV_NOPTS_VALUE).

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-09-12 12:27:19 +02:00
wm4
b7ab6e18ee mmaldec: disable timestamp interpolation
This MMAL feature fills in missing timestamps from the framerate set on
the input port. This is generally unwanted, since libavcodec decoders
merely pass through timestamps without ever "fixing" them. The framerate
is also unknown, and even the timebase doesn't have to be set.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-09-12 12:25:49 +02:00
wm4
6b652c0273 mmaldec: fix problems with flush logic
Don't try to do a blocking wait for MMAL output if we haven't even sent
a single real packet, but only flush packets. Obviously we can't expect
to get anything back.

Additionally, don't send a flush packet to MMAL in the same case. It
appears the MMAL decoder will sometimes hang in mmal_vc_port_disable()
(called from ffmmal_close_decoder()), waiting for a reply from the GPU
which never arrives. Either MMAL disallows sending flush packets without
preceding real data, or it's a MMAL bug.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-09-12 12:25:39 +02:00
wm4
b84675d63a mmaldec: hack against buffering problems on broken input
I can't come up with a nice way to handle this. It's hard to keep the
lock-stepped input/output in this case. You can't predict whether the
MMAL decoder will output a picture (because it's asynchronous), so
you have to assume in general that any packet could produce 0 or 1
frames. You can't continue to write input packets to the decoder,
because then you might get too many output frames, which you can't
get rid of because the lavc decoding API does not allow the decoder
to return an output frame without consuming an input frame (except
when flushing).

The ideal fix is a M:N decoding API (preferably asynchronous), which
would make this code potentially much cleaner. For now, this hack
will do.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-09-12 12:25:23 +02:00
Paul B Mahol
6a074cfa15 avfilter/vf_framerate: fix frame leak at uninit
Reported-by: Andres Noetzli
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-12 03:13:34 +00:00
Paul B Mahol
16f08b7a09 avfilter/vf_framerate: unbreak flushing
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-12 02:37:32 +00:00
Paul B Mahol
349970a67a avfilter/vf_framerate: calculate delta from scaled pts instead of unscaled
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-12 02:37:31 +00:00
Paul B Mahol
2b77034565 avfilter/vf_framerate: highbit depth support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-12 02:37:31 +00:00
Paul B Mahol
1bf7bd194b avfilter: add ocr filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-12 02:14:44 +00:00
Paul B Mahol
494b792441 avfilter: use ff_all_channel_counts() instead of ff_all_channel_layouts()
Fixes playback of some files with ffplay.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-12 01:43:06 +00:00
Carl Eugen Hoyos
e3e55758dc lavf/img2dec: Improve jpeg auto-detection.
Fixes ticket #4841.
2015-09-12 19:00:02 +02:00
Clément Bœsch
a84613b4c2 avformat/mov: use AV_OPT_TYPE_BOOL for export_{all,xmp} options 2015-09-12 18:24:49 +02:00
Clément Bœsch
7434b9f66f avcodec/roqvideoenc: use AV_OPT_TYPE_BOOL for quake3_compat option 2015-09-12 18:24:49 +02:00
Clément Bœsch
1e2c23f06c avfilter/treble: use AV_OPT_TYPE_BOOL for csg option 2015-09-12 18:24:49 +02:00
Clément Bœsch
8e22becbc7 avcodec/pgssubdec: use AV_OPT_TYPE_BOOL for forced_subs_only option 2015-09-12 18:24:49 +02:00
Clément Bœsch
5cae43e718 avdevice/v4l2: use AV_OPT_TYPE_BOOL for use_libv4l2 option 2015-09-12 18:24:49 +02:00
Clément Bœsch
7a256133ff avcodec/textdec: use AV_OPT_TYPE_BOOL for keep_ass_markup option 2015-09-12 17:50:24 +02:00
Clément Bœsch
51cec6c306 avcodec/libx264: use AV_OPT_TYPE_BOOL for fastfirstpass option 2015-09-12 17:50:23 +02:00
Clément Bœsch
411c32386a avcodec/h264: use AV_OPT_TYPE_BOOL for is_avc option 2015-09-12 17:50:23 +02:00
Clément Bœsch
306ff40988 ffprobe: use AV_OPT_TYPE_BOOL for writers options 2015-09-12 17:50:22 +02:00
Clément Bœsch
2c364ef82d avdevice/caca: small trivial macros adjustments 2015-09-12 17:50:22 +02:00
Clément Bœsch
79f0f1a80b avdevice/caca: remove space before ':' (English typo, cosmetics) 2015-09-12 17:50:21 +02:00
Clément Bœsch
9d0a6ede30 avdevice/caca: use AV_OPT_TYPE_BOOL for list_drivers option 2015-09-12 17:50:20 +02:00
Clément Bœsch
4f926a1088 avcodec: use AV_OPT_TYPE_BOOL for refcounted_frames, side_data_only_packets and skip_alpha options 2015-09-12 17:50:18 +02:00
Peter Belkner
1d2beb686e configure: fix build on mingw64 target with msys2 2015-09-12 15:23:52 +02:00
Hendrik Leppkes
de969904b1 Merge commit 'c0a49077ea4ff3a0ad30b9e33f1bb06ba9112aaa'
* commit 'c0a49077ea4ff3a0ad30b9e33f1bb06ba9112aaa':
  asfdec: add more checks for size left in asf packet buffer

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-12 15:18:05 +02:00
Hendrik Leppkes
73e9f04ea5 Merge commit '1b2412f50185447da4212f65f06e8d72a6daf06e'
* commit '1b2412f50185447da4212f65f06e8d72a6daf06e':
  lavc: Fix compilation with --disable-everything --enable-parser=mpeg4video

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-12 15:17:50 +02:00
Hendrik Leppkes
95f92b2513 Merge commit 'f00f6d538dcbaa122eb5e2784f41f4a299296b7b'
* commit 'f00f6d538dcbaa122eb5e2784f41f4a299296b7b':
  lavc: Sanitize header inclusion guards

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-12 15:16:57 +02:00
Hendrik Leppkes
580c4fc98a Merge commit '6064f697a321174232a3fad351afb21150c3e9e5'
* commit '6064f697a321174232a3fad351afb21150c3e9e5':
  lavc: Enable side data only packets by default

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-12 15:12:05 +02:00
Tobias Rapp
1416370027 avformat/avienc: add muxer option "write_channel_mask"
Allow writing an empty channel mask into the wave format header. Useful
if the input file contains an unknown channel layout.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-12 14:39:28 +02:00
Rostislav Pehlivanov
1e75bee3d6 fate: readjust AAC encoder TNS test
The recent commits change the value slightly. Even though it's
within the threshold it's better to risk as little as possible
especially when different systems, processors, FPUs and compilers
are involved.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-12 13:17:04 +01:00
Rostislav Pehlivanov
3381d92671 aacenc_tns: readjust values for new TNS decision making
Since TNS was fixed with the recent commits retweak the values
so it's more frequently used.
Still not enabled by default yet, though it's possible that it
will be made enabled by default in the near future.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-12 13:15:02 +01:00
Rostislav Pehlivanov
7b7866387b aacenc_tns: encode coefficients directly and reenable compression
This commit was made possible with the earlier commits since the
new quantization method basically means we're working always with
unsigned values. The specifications mention to use compression when
the first 2 bits are identical but they didn't mention if this should
happen before or after the conversion to signed values. Actually
they said nothing about conversion to signed values.

With this commit, coefficient compression usually always happens
which saves a lot of space, especially at extremely low bitrates
and doesn't change the quality at all.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-12 13:10:28 +01:00
Rostislav Pehlivanov
a83a8d7068 aacenc_tns: redo coefficient quantization and decision making
This finally (and again) gets rid of basically everything the
specifications say about how TNS should be done. The main
problem used to be that a single filter was used for all
coefficients which despite being explicitly recommended by
the specifications usually sounds wrong, therefore it's
a corner case in the current TNS implementation.

This commit also changes the coefficient bit size, as apparently
it's better to use lower precision in case the windows are eight
short. This is apparently what fdk_aac uses, looking at the bit
stream and makes sense. Also the order when 8 SHORT windows happen
is important as 7 was too much and according to PSNR was worse
while 5 is just about correct.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-12 13:04:27 +01:00
Hendrik Leppkes
33be39efe3 Merge commit '1e0b8bf0b3b3b4247fb21e9839af342ae879607c'
* commit '1e0b8bf0b3b3b4247fb21e9839af342ae879607c':
  travis: fix dependencies

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-12 13:31:22 +02:00
Hendrik Leppkes
e75b2e9c4b Merge commit '99404597201911de90cff2ef85f2d44176d39147'
* commit '99404597201911de90cff2ef85f2d44176d39147':
  mmaldec: fix pkt_dts determination

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-12 13:30:41 +02:00
Hendrik Leppkes
264ff3dd2e Merge commit '87a051f97633010f71dfc1d23d806856499bf231'
* commit '87a051f97633010f71dfc1d23d806856499bf231':
  lavc: allow asynchronous decoders to return correct pkt_dts values

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-12 13:30:33 +02:00
Hendrik Leppkes
30fb54c23f Merge commit 'b7ab6e18eecad43593ad2a0e9fc9eba7f24751cb'
* commit 'b7ab6e18eecad43593ad2a0e9fc9eba7f24751cb':
  mmaldec: disable timestamp interpolation

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-12 13:29:29 +02:00
Hendrik Leppkes
45ae299785 Merge commit '6b652c0273d79f2e0c52ad91450bd0737cf3c8a6'
* commit '6b652c0273d79f2e0c52ad91450bd0737cf3c8a6':
  mmaldec: fix problems with flush logic

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-12 13:29:16 +02:00
Hendrik Leppkes
886f0f5ff1 Merge commit 'b84675d63aaede8f6944b901250a10456c5477e6'
* commit 'b84675d63aaede8f6944b901250a10456c5477e6':
  mmaldec: hack against buffering problems on broken input

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-12 13:29:10 +02:00
Hendrik Leppkes
84d04a0dfa Merge commit '5788623d29c3e806a7879210986110aced758dc2'
* commit '5788623d29c3e806a7879210986110aced758dc2':
  jpeg2000: Split codeblock decoding from the main tile decoding

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-12 13:25:38 +02:00
Hendrik Leppkes
6e611a1839 Merge commit 'db53a2306f62f05faa67e6f3c60ee55a9b8e4776'
* commit 'db53a2306f62f05faa67e6f3c60ee55a9b8e4776':
  jpeg2000: Do not warn about known and skippable markers

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-12 13:16:13 +02:00
Hendrik Leppkes
c074671621 Merge commit '9b5a4a9cce3042558e107ae1ed30d9bf3d867a35'
* commit '9b5a4a9cce3042558e107ae1ed30d9bf3d867a35':
  mmvideo: Make sure the rle does not write over the frame boundaries

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-12 13:14:26 +02:00
Hendrik Leppkes
09c15eac3e Merge commit '41ed749fe987e60b0485fa721ad869590651324d'
* commit '41ed749fe987e60b0485fa721ad869590651324d':
  ogg: Do not try to use the parser if it is not present

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-12 13:05:01 +02:00
Hendrik Leppkes
eadf6cb2c4 Merge commit '7b02cb29d9d60cdd5ef321043d11d02023e7dc8f'
* commit '7b02cb29d9d60cdd5ef321043d11d02023e7dc8f':
  pixdesc: Document the component order

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-12 13:03:04 +02:00
Ronald S. Bultje
a30a8beeb3 vp9: Fix emu[] edge overflow conditions for >8bpp/non-420. 2015-09-12 07:01:48 -04:00
Ronald S. Bultje
2563a33856 vp9: re-initialize internal buffers on bpp change also. 2015-09-12 07:01:47 -04:00
Hendrik Leppkes
6210a64822 Merge commit 'c7ed26ad6035793c7212c17545b0ded18b72db69'
* commit 'c7ed26ad6035793c7212c17545b0ded18b72db69':
  pixdesc: Add missing alpha flag for yuva420p9be

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-12 13:00:31 +02:00
Hendrik Leppkes
ba42096d9a Merge commit 'e336c51e6ffcdb93fbcf3c6153d378400608526b'
* commit 'e336c51e6ffcdb93fbcf3c6153d378400608526b':
  pixdesc: Consistently order components

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-12 12:54:25 +02:00
James Almer
d5f8a642f6 x86: port PSIGNW to cpuflags
Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-09-11 23:27:03 -03:00
Reynaldo H. Verdejo Pinochet
314bc20d7a ffserver: remove redundant comment, clarify another one
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-09-11 18:33:29 -07:00
Reynaldo H. Verdejo Pinochet
2580395e1c ffserver: unify exit path in http_server()
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-09-11 18:33:13 -07:00
Reynaldo H. Verdejo Pinochet
9a168e9371 ffserver: unify fail path in socket_open_listen()
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-09-11 18:08:08 -07:00
Ronald S. Bultje
4b66274a86 vp9: save one (PSIGNW) instruction in iadst16_1d sse2/ssse3. 2015-09-11 20:36:51 -04:00
Simon Thelen
b84232694e 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>
2015-09-12 02:17:41 +02:00
Ronald S. Bultje
02064d6b7b libvpxdec: apply RGB to 444P16 instead of 422P16. 2015-09-11 19:35:22 -04:00
Alex Agranovsky
9b10ae5727 avformat/format: Remove parameters from mime type before comparission for probing
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-12 00:42:18 +02:00
James Almer
b8e4df46ab configure: check for ID3D11VideoContext
Should fix compilation with mingw-w64 trunk, where ID3D11VideoDecoder is available
but ID3D11VideoContext still isn't.

Signed-off-by: James Almer <jamrial@gmail.com>
2015-09-11 18:23:30 -03:00
Alexander S. Drozdov
6a8d58d693 avformat/tcp: TCP Protocol: fix descriptor leak on listen and interrupt
If we try to listen on TCP port and ff_listen() fails on
interrupt callback socket (bind) descriptor overwrites and
does not closed at all.

As a result, we can't rebind to the same port.

Reviewed-by: Stephan Holljes <klaxa1337@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-11 21:44:30 +02:00
Thierry Foucu
f600381b79 libavformat/utils.c: use correct variable for message.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-11 21:25:33 +02:00
Michael Niedermayer
0ae40c5a70 swscale/swscale: Fix "unused variable" warning
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-11 20:59:32 +02:00
Rostislav Pehlivanov
8180b113e1 aaccoder: respect cutoff when marking bands as PNS
Makes more sense as users usually set the -cutoff option
to low pass filter the signal. The encoder will still over
shoot slightly when encoding normal coefficients however
that's normal.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-11 18:59:15 +01:00
Luca Barbato
5788623d29 jpeg2000: Split codeblock decoding from the main tile decoding
That loop is completely stand-alone.
2015-09-11 18:19:39 +02:00
Luca Barbato
db53a2306f jpeg2000: Do not warn about known and skippable markers
Matches the openjpeg behaviour.
2015-09-11 18:19:01 +02:00
Luca Barbato
9b5a4a9cce mmvideo: Make sure the rle does not write over the frame boundaries
Bug-Id: 887
CC: libav-stable@libav.org
2015-09-11 18:19:00 +02:00
Paul B Mahol
abef6383fb avformat/wavdec: use AV_OPT_TYPE_BOOL for ignore_length
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-11 15:41:18 +00:00
Paul B Mahol
2506244155 avformat/wavenc: use AV_OPT_TYPE_BOOL for write_bext option
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-11 15:34:17 +00:00
Michael Niedermayer
8b72f6d50b avcodec/ljpegenc: Fix encoding RGBA LJPEG
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-11 13:45:29 +02:00
Michael Niedermayer
055e56e9f7 avcodec/mjpegdec: Fix decoding RGBA RCT LJPEG
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-11 13:42:05 +02:00
Ganesh Ajjanagadde
07d33439f3 configure: colorize error messages
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-11 12:57:14 +02:00
Carl Eugen Hoyos
85a7ff8c27 lavc: Fix standalone compilation of the subrip decoder. 2015-09-11 12:39:29 +02:00
Agatha Hu
81071eea7d avcodec/nvenc: change flag of cuCtxCreate to avoid CPU spins
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2015-09-11 10:11:29 +02:00
Michael Niedermayer
f58e011a1f avformat/utils: Increase default max_stream_analyze_duration for flv
Fixes: unknown_video.flv

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-11 01:12:28 +02:00
Michael Niedermayer
77d03b0ebb avutil/version: Bump for avpriv_get_trc_function_from_trc() and AVCOL_PRI/TRC_SMPTEST428_1 and AVCOL_TRC_SMPTEST2084
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-11 01:12:28 +02:00
Lou Logan
98ecee2d3d doc/filters: fix Photoshop curves file extension
Found-by: moorej
Signed-off-by: Lou Logan <lou@lrcd.com>
2015-09-10 14:13:23 -08:00
Kevin Wheatley
a1fa5392e6 avcodec/exr: Mark up the decoded buffer as the appropriate transfer characteristic when applying one 2015-09-10 23:53:05 +02:00
Kevin Wheatley
7eb3233352 avcodec/exr: Add support for applying a transfer characteristic curve to OpenEXR inputs.
Signed-off-by: Kevin Wheatley <kevin.j.wheatley@gmail.com>
2015-09-10 23:53:05 +02:00
Kevin Wheatley
bac9048265 avutil/color_utils: Add basic transfer functions for each AVColorTransferCharacteristic
Most functions are valid over a domain and range of [0.0-1.0] but
some are defined over greater. This patch does not deal with
AVColorRange and assumes AVCOL_RANGE_JPEG for the returned values.

Signed-off-by: Kevin Wheatley <kevin.j.wheatley@gmail.com>
2015-09-10 23:53:05 +02:00
Ganesh Ajjanagadde
f6e598afa8 avfilter/vf_transpose: use the name 's' for the pointer to the private context
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-09-10 21:30:43 +00:00
Ganesh Ajjanagadde
5064b06224 avfilter/f_perms: use the name 's' for the pointer to the private context
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-09-10 21:06:58 +00:00
Michael Niedermayer
3ffa77d301 avcodec/options_table: Fix TRC / PRI typo
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-10 22:51:19 +02:00
Michael Niedermayer
24426172d3 avutil/pixfmt: Name "SMPTE ST 428-1" in AVColorPrimaries the same as in AVColorTransferCharacteristic
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-10 22:50:42 +02:00
Michael Niedermayer
b5939ba09c avutil/pixdesc: Use "-" in color_primaries_names to be consistent with color_transfer_names
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-10 22:47:51 +02:00
Kevin Wheatley
6d4b394b5d avutil/pixdesc: Add SMPTE ST 2084 and ST 428-1 pixel descriptions
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-10 22:34:47 +02:00
Kevin Wheatley
7061a30c37 avcodec/options_table: Add SMPTE ST428-1 colour primaries (CIE 1931 XYZ) to command line options
Signed-off-by: Kevin Wheatley <kevin.j.wheatley@gmail.com>
Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-10 22:33:56 +02:00
Kevin Wheatley
47570a265e avcodec/options_table: Add CLI options for SMPTE ST 2084 and ST 428-1 transfer characteristics
Signed-off-by: Kevin Wheatley <kevin.j.wheatley@gmail.com>
Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-10 22:33:39 +02:00
Kevin Wheatley
c3cd6dd106 avutil/pixfmt: Add additional primaries and transfer characteristic enumerations from ITU-T Rec H.265
Signed-off-by: Kevin Wheatley <kevin.j.wheatley@gmail.com>
Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-10 22:32:52 +02:00
Michael Niedermayer
151312890c avcodec/truemotion1: Simplify code using AV_PIX_FMT_0RGB32
Suggested-by: carl
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-10 22:17:27 +02:00
Clément Bœsch
342ead4491 avformat/subtitles: improve ff_subtitles_queue_finalize() doxy 2015-09-10 21:40:49 +02:00
Clément Bœsch
af924fd9e4 avformat/subtitles: forward log context in ff_subtitles_queue_finalize() for logging 2015-09-10 21:40:07 +02:00
Clément Bœsch
a634649a36 avformat/subtitles: make sure we don't drop "duplicated" events from different streams 2015-09-10 21:39:13 +02:00
Clément Bœsch
4f26c99912 avformat/subtitles: drop duplicated events
Fix Ticket #4843
2015-09-10 21:18:34 +02:00
Harshit Mittal
4f7189f09e .gitignore: ignore temp files
Github: Closes #144
2015-09-10 17:55:34 +02:00
Michael Niedermayer
d730dd8c53 swscale: Forward colorspace updates to the 2nd cascaded context in case of alphablend
The first just does the blending and wouldnt do anything with the colorspace values

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-10 17:05:20 +02:00
Michael Niedermayer
21c7272859 swscale/utils: Forward luma range to the cascaded context for alphablending
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-10 17:05:20 +02:00
Michael Niedermayer
a4d17c9a70 avcodec/truemotion1: use BGR0/0RGB
The alpha channel in the fate sample contains random trash, not alpha

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-10 16:36:47 +02:00
Michael Niedermayer
67fe1a2b61 avcodec/cscd: Use BGR0 instead of BGRA
the available BGRA samples contain random trash in the alpha channel

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-10 16:36:47 +02:00
Michael Niedermayer
aec340c533 avcodec/bmp: Analyze BGRA files alpha channel to choose pixel format
BGRA BMPs commonly do contain an all transparent alpha channel

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-10 16:36:47 +02:00
Michael Niedermayer
319898bba2 swscale/utils: handle gray+alpha formats like gray for luma ranges
Its illogic to handle gray differently depending on the existence of an alpha channel

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-10 15:00:19 +02:00
Michael Niedermayer
816cf5181e swscale/utils: If the source has no alpha then disable alpha blendaway
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-10 15:00:19 +02:00
Michael Niedermayer
dfd3fd67bb avcodec/libopenh264enc: use AV_LOG_TRACE instead of DEBUG+1
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-10 15:00:19 +02:00
Luca Barbato
41ed749fe9 ogg: Do not try to use the parser if it is not present
Bug-Id: 886
CC: libav-stable@libav.org
2015-09-10 14:47:33 +02:00
Ronald S. Bultje
fd8b90f5f6 vp9: fix overflow in 8x8 topleft 32x32 idct ssse3 version.
Also disable the mmx/iwht optimization when the bitexact flag is set.
With synthetically coded coefficients (i.e. these that lead to a
residual well outside the [-255,255] range), our optimizations will
overflow. It doesn't make sense to fix the overflows, since they can
only occur on synthetic input, not on real fwht-generated input. Thus,
add a bitexact flag that disables this optimization.
2015-09-10 07:51:16 -04:00
Ronald S. Bultje
4bb9dbe4d7 vp9: permanently delete segmentation refmap on any size change. 2015-09-10 07:51:16 -04:00
Michael Niedermayer
35b7bd2558 avcodec/libopenh264enc: Remove some unneeded intermediate variables
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-10 13:13:06 +02:00
Michael Niedermayer
fb000b0f0f avcodec/libopenh264enc: Fix formating to match FFmpegs style
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-10 13:02:40 +02:00
Michael Niedermayer
ec5b13fbe4 avcodec/libopenh264enc: remove useless cast
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-10 12:59:44 +02:00
Gregory J. Wolfe
e8c45b96f4 avcodec/libopenh264enc: Use av_log() to log messages
File libopenh264enc.c has been modified so that the encoder uses av_log()
to log messages (error, warning, info, etc.) instead of logging them
directly to stderr.  At the time the encoder is created, the current
ffmpeg log level is mapped to an equivalent libopenh264 log level.  This
log level, and a message logging function that invokes av_log() to
actually log messages, are then set on the encoder.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-10 12:56:09 +02:00
Luca Barbato
7b02cb29d9 pixdesc: Document the component order 2015-09-10 12:08:57 +02:00
Hendrik Leppkes
c7ed26ad60 pixdesc: Add missing alpha flag for yuva420p9be
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-09-10 12:08:57 +02:00
Hendrik Leppkes
e336c51e6f pixdesc: Consistently order components
Ensure that the components are ordered consistently, ie. always
RGB(A) and YUV(A). This allows to identify a specific plane on a given
pixel format without hard-coding knowledge of the plane order.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-09-10 12:08:57 +02:00
Vesselin Bontchev
8e28e0721c avformat/aa: initialize "header_seed" and "header_key"
Fixes CID 1322364, CID 1322363

Signed-off-by: Vesselin Bontchev <vesselin.bontchev@yandex.com>
2015-09-10 09:06:13 +02:00
James Almer
bbc8fcae1d RELEASE: update to 2.8.git
Signed-off-by: James Almer <jamrial@gmail.com>
2015-09-09 23:53:15 -03:00
James Almer
67d81b76b6 avformat/avformat: remove dead code
Signed-off-by: James Almer <jamrial@gmail.com>
2015-09-09 20:12:16 -03:00
Hendrik Schreiber
9d742d23d2 lavc: Fix compilation with --disable-everything --enable-parser=mpeg4video. 2015-09-09 14:49:52 +02:00
Ricardo Constantino
2641eeeefe configure: add libsoxr to swresample's pkgconfig
Fixes linking in FFMS and f265 at least, when ffmpeg is compiled with
libsoxr.

Signed-off-by: Ricardo Constantino <wiiaboo@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-09 14:02:55 +02:00
Paul B Mahol
8bf2d3e468 avcodec/wavpackenc: use AV_OPT_TYPE_BOOL for all options
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-09 10:01:10 +00:00
Paul B Mahol
6603368ab4 avcodec/huffyuvenc: use AV_OPT_TYPE_BOOL for non_deterministic option
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-09 10:01:10 +00:00
Paul B Mahol
33a68759c1 avcodec/libmp3lame: use AV_OPT_TYPE_BOOL for all options
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-09 10:01:10 +00:00
Paul B Mahol
af24763400 avfilter/vf_lut: use AV_OPT_TYPE_BOOL for negate_alpha option
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-09 10:01:10 +00:00
Rostislav Pehlivanov
da64bd6a99 aaccoder: tweak PNS implementation further
This commit changes a few things about the noise substitution
logic:
 - Brings back the quantization factor (reduced to 3) during
   scalefactor index calculations.
 - Rejects any zeroed bands. They should be inaudiable and it's
   a waste transmitting the scalefactor indices for these.
 - Uses swb_offsets instead of incrementing a 'start' with every
   window group size.
 - Rejects all PNS during short windows.
Overall improves quality. There was a plan to use the lfg system
to create the random numbers instead of using whatever the decoder
uses but for now this works fine. Entropy is far from important here.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-09 10:44:33 +01:00
Hendrik Leppkes
b421455ee0 Merge commit '3b8e895237592fdaffe87cdcd204104200b9ccf9'
* commit '3b8e895237592fdaffe87cdcd204104200b9ccf9':
  codec_desc: Add missing DXV entry

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-09 09:55:14 +02:00
Michael Niedermayer
e407d70f83 MAINTAINERS: add 2.8, drop 2.2
No actively maintained linux disto on
https://trac.ffmpeg.org/wiki/Downstreams
uses 2.2 anymore, so it makes no sense to maintain it further

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-09 04:50:20 +02:00
Vittorio Giovara
3b8e895237 codec_desc: Add missing DXV entry 2015-09-09 03:11:09 +02:00
Michael Niedermayer
2c1ec57596 avformat/mpegvideo_enc: Move sponsorship notice to its own comment block
Suggested-by: BBB
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-09 02:50:20 +02:00
Michael Niedermayer
a7c0373ea3 avformat/mxfenc: Move sponsorship notice to its own comment block
Suggested-by: BBB
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-09 02:49:49 +02:00
Michael Niedermayer
7277a4ace9 avformat/http: add reconnect_delay_max option
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-09 02:23:38 +02:00
Andrew Stone
a450ec2672 avcodec/libvorbisdec: Fix memory leak
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-09 01:56:14 +02:00
Clément Bœsch
1435587373 avfilter/acrossfade: use AV_OPT_TYPE_BOOL for overlap option 2015-09-09 01:32:30 +02:00
Clément Bœsch
7114282a0d avfilter/life: use AV_OPT_TYPE_BOOL for a stitch option 2015-09-09 01:16:23 +02:00
Clément Bœsch
7b6007204d avfilter/cellauto: use AV_OPT_TYPE_BOOL for a few options 2015-09-09 01:15:42 +02:00
Clément Bœsch
c826f9b284 avfilter/waveform: use AV_OPT_TYPE_BOOL for mirror option 2015-09-09 01:04:28 +02:00
Clément Bœsch
9f4e096496 avfilter/vignette: use AV_OPT_TYPE_BOOL for dither option 2015-09-09 01:02:07 +02:00
Clément Bœsch
14d6c68824 avfilter/vidstabtransform: use AV_OPT_TYPE_BOOL for tripod and debug options 2015-09-09 00:59:43 +02:00
Clément Bœsch
b761033e7f avfilter/uspp: use AV_OPT_TYPE_BOOL for use_bframe_qp option 2015-09-09 00:48:03 +02:00
Clément Bœsch
b0431383cb avfilter/unsharp: use AV_OPT_TYPE_BOOL for opencl option 2015-09-09 00:47:04 +02:00
Clément Bœsch
9b8e514c14 avfilter/spp: use AV_OPT_TYPE_BOOL for use_bframe_qp option 2015-09-09 00:43:06 +02:00
Clément Bœsch
d1c4e8c7db avfilter/paletteuse: use AV_OPT_TYPE_BOOL for mean_err and debug_accuracy option 2015-09-09 00:38:22 +02:00
Clément Bœsch
81e52c6df9 avfilter/palettegen: use AV_OPT_TYPE_BOOL for reserve_transparent option 2015-09-09 00:34:56 +02:00
Clément Bœsch
9c52eafd5b avfilter/overlay: use AV_OPT_TYPE_BOOL for rgb, shortest and repeatlast options 2015-09-09 00:33:02 +02:00
Clément Bœsch
9f846ed4c7 avfilter/haldclut: use AV_OPT_TYPE_BOOL for shortest and repeatlast options 2015-09-09 00:30:53 +02:00
Clément Bœsch
dc2802c81e avfilter/kerndeint: use AV_OPT_TYPE_BOOL for the previously missed options 2015-09-09 00:21:57 +02:00
Michael Niedermayer
6bda0f6638 doc/protocols: Fix usefull typo
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-09 00:17:59 +02:00
Michael Niedermayer
91ca8105dd avcodec/h264_sei: Remove "Subtitles with data type 0x%02x" sample request
Suggested-by: Carl and Hendrik
2015-09-09 00:17:59 +02:00
Clément Bœsch
a62bf26c28 avfilter/il: use AV_OPT_TYPE_BOOL for {luma,chroma,alpha}_swap options 2015-09-09 00:12:42 +02:00
Clément Bœsch
f5436ebe22 avfilter/fspp: use AV_OPT_TYPE_BOOL for use_bframe_qp option 2015-09-09 00:11:05 +02:00
Clément Bœsch
96651e41b0 avfilter/fieldmatch: use AV_OPT_TYPE_BOOL for ppsrc, mchroma and chroma options 2015-09-09 00:08:10 +02:00
Clément Bœsch
334b11246c avfilter/fade: use AV_OPT_TYPE_BOOL for alpha option 2015-09-09 00:06:15 +02:00
Clément Bœsch
e1d24e6c1e avfilter/elbg: use AV_OPT_TYPE_BOOL for pal8 option 2015-09-08 23:58:59 +02:00
Clément Bœsch
1cab6a33cd avfilter/drawtext: use AV_OPT_TYPE_BOOL for a few options 2015-09-08 23:56:43 +02:00
Clément Bœsch
97692ef1ba avfilter/deshake: use AV_OPT_TYPE_BOOL for opencl option 2015-09-08 23:50:25 +02:00
Clément Bœsch
ee4f0ec0cd avfilter/delogo: use AV_OPT_TYPE_BOOL for show option 2015-09-08 23:49:48 +02:00
Clément Bœsch
96dbc5bdf9 avfilter/decimate: use AV_OPT_TYPE_BOOL for ppsrc and chroma options 2015-09-08 23:48:49 +02:00
Clément Bœsch
fa83b55161 avfilter/crop: use AV_OPT_TYPE_BOOL for keep_aspect option 2015-09-08 23:46:12 +02:00
Clément Bœsch
7a29d10839 avfilter/blend: use AV_OPT_TYPE_BOOL for shortest and repeatlast options 2015-09-08 23:43:54 +02:00
Clément Bœsch
728eff9e38 avfilter/ebur128: use AV_OPT_TYPE_BOOL for metadata option 2015-09-08 23:38:25 +02:00
Clément Bœsch
e73f46b105 avfilter/abuffersink: use AV_OPT_TYPE_BOOL for all_channel_counts option 2015-09-08 23:35:12 +02:00
Clément Bœsch
b599d21642 avfilter/showwaves: use AV_OPT_TYPE_BOOL for split_channels option 2015-09-08 23:32:10 +02:00
Clément Bœsch
286d625b43 avfilter/showvolume: use AV_OPT_TYPE_BOOL for channel name displaying option (t) 2015-09-08 23:28:44 +02:00
Clément Bœsch
af0945d912 avfilter/showcqt: use AV_OPT_TYPE_BOOL for fullhd option 2015-09-08 23:26:30 +02:00
Clément Bœsch
9f4b3bd96c avfilter/concat: use AV_OPT_TYPE_BOOL for unsafe option 2015-09-08 23:24:12 +02:00
Clément Bœsch
b6249d4f52 avfilter/flite: use AV_OPT_TYPE_BOOL for list_voices option 2015-09-08 23:22:38 +02:00
Clément Bœsch
cb8d71734c avfilter/volume: drop useless trailing comma 2015-09-08 23:21:15 +02:00
Clément Bœsch
34201fcf74 avfilter/volume: fix missing filtering flags for a bunch of options 2015-09-08 23:20:02 +02:00
Clément Bœsch
ed28dd6301 avfilter/volume: use AV_OPT_TYPE_BOOL for replaygain_noclip option 2015-09-08 23:18:33 +02:00
Clément Bœsch
5c64ae64bd avfilter/silenceremove: use AV_OPT_TYPE_BOOL for leave_silence option 2015-09-08 23:16:49 +02:00
Clément Bœsch
6d79aae63c avfilter/extrastereo: use AV_OPT_TYPE_BOOL for clipping option 2015-09-08 23:14:00 +02:00
Clément Bœsch
fad0841869 avfilter/asyncts: use AV_OPT_TYPE_BOOL for compensate option 2015-09-08 23:09:59 +02:00
Clément Bœsch
816cfd00cb avfilter/astats: use AV_OPT_TYPE_BOOL for metadata option 2015-09-08 23:08:20 +02:00
Clément Bœsch
1457610d87 avfilter/asetnsamples: use AV_OPT_TYPE_BOOL for pad with zeros option 2015-09-08 23:06:40 +02:00
Clément Bœsch
2d7726f7ab avfilter/rotate: use AV_OPT_TYPE_BOOL for bilinear option 2015-09-08 23:04:13 +02:00
Clément Bœsch
9571a56009 avutil/opt: refactor pixel/sample fmt common case 2015-09-08 22:49:33 +02:00
Clément Bœsch
0b93c6d831 avfilter/interlace: fix opt flags 2015-09-08 22:47:16 +02:00
Clément Bœsch
f790b54d98 avfilter/interlace: use AV_OPT_TYPE_BOOL 2015-09-08 22:39:24 +02:00
Clément Bœsch
2f4e2356bc avfilter/deband: use AV_OPT_TYPE_BOOL 2015-09-08 22:39:24 +02:00
Clément Bœsch
266997504d avfilter/dynaudnorm: use AV_OPT_TYPE_BOOL 2015-09-08 22:39:24 +02:00
Clément Bœsch
c97cd1169c swscale: use AV_OPT_TYPE_BOOL 2015-09-08 22:39:24 +02:00
Clément Bœsch
ae32c9916d avfilter/kerndeint: use AV_OPT_TYPE_BOOL 2015-09-08 22:39:24 +02:00
Clément Bœsch
a68d6cf5b4 avdevice/dshow: use AV_OPT_TYPE_BOOL 2015-09-08 22:39:21 +02:00
Clément Bœsch
a6da2fec7c avcodec/aacenc: use AV_OPT_TYPE_BOOL 2015-09-08 22:39:20 +02:00
Clément Bœsch
9117748cff avutil/opt: add AV_OPT_TYPE_BOOL 2015-09-08 22:39:20 +02:00
Paul B Mahol
84f6284709 avfilter/vf_vectorscope: 9 & 10 bit depth support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-08 19:05:38 +00:00
Ganesh Ajjanagadde
c07f493efe avfilter/vf_super2xsai: use the name 's' for the pointer to the private context
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-09-08 18:47:06 +00:00
Paul B Mahol
31c9660b0f avfilter/af_ladspa: add special case for 2:2 plugins
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-08 18:33:02 +00:00
Stefano Sabatini
309fb6ba22 lavc/options: extend/fix text for threads and slices options 2015-09-08 17:54:33 +02:00
Stefano Sabatini
ae72b57502 lavc/libopenh264enc: apply minor consistency fixes to options text 2015-09-08 17:54:26 +02:00
Stefano Sabatini
e25f192d6b doc/encoders: add libopenh264 entry 2015-09-08 17:54:16 +02:00
Stefano Sabatini
51c5e924b9 doc/codecs: extend documentation for the threads option 2015-09-08 17:54:09 +02:00
Stefano Sabatini
106cab1152 doc/codecs: mention GOP in the g option
This helps when grepping for "gop".
2015-09-08 17:54:03 +02:00
Hendrik Leppkes
5d8e836d0e Replace all remaining occurances of step/depth_minus1 and offset_plus1 2015-09-08 17:10:48 +02:00
Hendrik Leppkes
151aa2ebff Merge commit '2268db2cd052674fde55c7d48b7a5098ce89b4ba'
* commit '2268db2cd052674fde55c7d48b7a5098ce89b4ba':
  lavu: Drop the {minus,plus}1 suffix from AVComponentDescriptor fields

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-08 16:35:28 +02:00
Hendrik Leppkes
f53569a93f Merge commit '6b3ef7f080293956b2e5212b83135c6b051212e9'
* commit '6b3ef7f080293956b2e5212b83135c6b051212e9':
  lavu: Remove bit packing from AVComponentDescriptor

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-08 14:53:34 +02:00
Hendrik Leppkes
c734b34b04 Merge commit 'b8b5d8274471129f122858bc74ad09284dae6ab7'
* commit 'b8b5d8274471129f122858bc74ad09284dae6ab7':
  lavu: extend size of the AVPixFmtDescriptor.flags field

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-08 14:53:13 +02:00
Hendrik Leppkes
8998caf0a4 Merge commit '77cf23668991bfd1fb69339f13e1511b4186b7b3'
* commit '77cf23668991bfd1fb69339f13e1511b4186b7b3':
  asfdec: alloc enough space for storing name in asf_read_metadata_obj

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-08 14:46:21 +02:00
Hendrik Leppkes
f4ce8cea73 Merge commit '7cad1bf0759ada2a1fc3e80bb232a5377dd4fda4'
* commit '7cad1bf0759ada2a1fc3e80bb232a5377dd4fda4':
  mov: Allow more than one keyframe per trun

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-08 14:46:02 +02:00
Hendrik Leppkes
72773203a6 Merge commit 'd0f7e4a57fbffa0efb204d4274c3dd56fbfff946'
* commit 'd0f7e4a57fbffa0efb204d4274c3dd56fbfff946':
  dxtory: Unify and rework the decoding routines

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-08 14:34:09 +02:00
Hendrik Leppkes
8537e24927 Merge commit '3cdda78deb19b39dbbf8961ae0aec44dbb19bf6d'
* commit '3cdda78deb19b39dbbf8961ae0aec44dbb19bf6d':
  checkasm: add unit tests for v210enc

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-08 14:30:00 +02:00
Hendrik Leppkes
80b93f2463 Merge commit '599fe93a840397f551d94db406d0bad42b46b94b'
* commit '599fe93a840397f551d94db406d0bad42b46b94b':
  riff: Add AVj2 fourcc for Avid jpeg2000

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-08 14:28:39 +02:00
Hendrik Leppkes
aa15e233c4 Merge commit 'a7e6fbd90e62d3320b1e26d8209fc0f55ee5b0be'
* commit 'a7e6fbd90e62d3320b1e26d8209fc0f55ee5b0be':
  dxtory: Factorize the buffer loading

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-08 14:27:05 +02:00
Hendrik Leppkes
696634c5fa Merge commit '6a6bc43f5f79587b8936334cc0b3a6616f4807ac'
* commit '6a6bc43f5f79587b8936334cc0b3a6616f4807ac':
  dxtory: Factorize slice size checks

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-08 14:23:53 +02:00
Hendrik Leppkes
94d7060d71 Merge commit 'db9fd1e9af83e88bcf2ef40db6a5debf91845c25'
* commit 'db9fd1e9af83e88bcf2ef40db6a5debf91845c25':
  fraps: increase vlc nb_bits

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-08 14:19:17 +02:00
Hendrik Leppkes
ec6b4e21bd Merge commit '741d353ab9cb47fe864e60552bf7b9af7aaa735b'
* commit '741d353ab9cb47fe864e60552bf7b9af7aaa735b':
  huffman: allow specifying nb_bits to ff_huff_build_tree()

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-08 14:17:59 +02:00
Hendrik Leppkes
b7ce3aefec Merge commit '26960aa1cd865e5dc55c67fb2ff9f0629e4d1bda'
* commit '26960aa1cd865e5dc55c67fb2ff9f0629e4d1bda':
  huffman: increase bits constant

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-08 14:17:04 +02:00
Hendrik Leppkes
140318c396 Merge commit '5a19bce2ff2b61602889392bec747ce81d1e9a1b'
* commit '5a19bce2ff2b61602889392bec747ce81d1e9a1b':
  huffman: use a named identifer for the bits constant

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-08 14:16:36 +02:00
Paul B Mahol
b31041adc3 avfilter: add extrastereo filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-08 10:43:17 +00:00
Carl Eugen Hoyos
9b2802f0d3 lavc/dxv: Support more real-world old version samples. 2015-09-08 10:18:16 +02:00
Carl Eugen Hoyos
84c9bf62b4 lavc/dxv: Silence "Multiple ff_thread_finish_setup() calls" warnings. 2015-09-08 10:16:34 +02:00
Timothy Gu
617d53f4c7 configure: Reenable colorized warnings and check for tput's existence
Untested.
2015-09-07 20:41:38 -07:00
Michael Niedermayer
12e6b64cd4 Revert "configure: colorize warning messages"
This broke win32, MSYS

This reverts commit 3e830b6dc844219673b6a036d8a3bd326ac4f9e2.
2015-09-08 05:09:58 +02:00
周晓勇
a78656a187 avcodec: loongson delete invalid simple idct put and add optimization
Change-Id: I23a36c65915f01a1cf20e317c14b8eaaa62958b4
Signed-off-by: ZhouXiaoyong <zhouxiaoyong@loongson.cn>

Fixes Decoding of http://loongnix.org/ftp/multimedia/testing/nanocore_720p_24fps_mpeg4_ac3_short.avi

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-08 01:04:36 +02:00
Michael Niedermayer
124b7cd485 Add NOA credits 2015-09-08 01:04:19 +02:00
周晓勇
f7e9b9d260 avcodec: loongson optimize h264dsp idct and loop filter with mmi
Change-Id: Ic87fb8f5cd22a502ff9dbbc5a5a8ea97cfc8a1dd
Signed-off-by: ZhouXiaoyong <zhouxiaoyong@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-07 22:49:52 +02:00
Ganesh Ajjanagadde
b45ff1386a avfilter/vf_thumbnail: use the name 's' for the pointer to the private context
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-09-07 20:17:46 +00:00
Ivan Uskov
3f8e2e9953 libavcodec/qsvdec.c: correct flush() handler has been implemented
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-07 22:04:02 +02:00
Ivan Uskov
cc167f7e55 libavcodec/qsvdec.c: correct handling of dynamic frame size changing has been implemented
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-07 22:04:02 +02:00
James Almer
ef359e724d avcodec: remove VIMA Makefile entry
Signed-off-by: James Almer <jamrial@gmail.com>
2015-09-07 16:24:31 -03:00
James Almer
f9fd879877 avcodec: remove missing bits from deprecated VIMA decoder
Signed-off-by: James Almer <jamrial@gmail.com>
2015-09-07 16:06:25 -03:00
Michael Niedermayer
bdbab4a351 avformat/http: exponentially delay reconnection to avoid flooding the server
Reviewed-by: Zhang Rui <bbcallen@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-07 19:28:46 +02:00
Michael Niedermayer
9bd68dea2b avformat/http: Add reconnect_at_eof and reconnect_streamed options
They allow reconnecting endless live streams which fail with eof

Reviewed-by: Zhang Rui <bbcallen@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-07 19:26:43 +02:00
James Almer
83c6a880a6 avcodec: remove fourcc values from AVCodecIDs
Based on a patch by wm4.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-09-07 12:47:00 -03:00
James Almer
2bef340cb2 avcodec: remove duplicate AVCodecIDs
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-09-07 12:46:56 -03:00
Ganesh Ajjanagadde
3e830b6dc8 configure: colorize warning messages
This patch introduces color warning messages (yellow).
They are enabled whenever available.
Tested with zsh, bash, and sh (bash under --posix).

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-07 16:27:17 +02:00
Hendrik Leppkes
1f1c100833 Merge commit '9ad1e0c12caa440de860bd8f2122beb11d73815c'
* commit '9ad1e0c12caa440de860bd8f2122beb11d73815c':
  mux: Make sure that the data is actually written

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-07 16:19:40 +02:00
Hendrik Leppkes
88e7ea3e56 Merge commit 'e05f7ed5436207f4a55f1978b223c7f8bc82af42'
* commit 'e05f7ed5436207f4a55f1978b223c7f8bc82af42':
  file: properly forward errors from file_read() and file_write()

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-07 16:11:57 +02:00
Hendrik Leppkes
1789e46d34 Merge commit '5a1a9da8a7ae120f2543b8f2fa13dc8baac39f17'
* commit '5a1a9da8a7ae120f2543b8f2fa13dc8baac39f17':
  mpegvideo: Drop a stray error message

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-07 16:08:42 +02:00
Hendrik Leppkes
d02d208211 Merge commit 'c45fcf30cfab687004ed1cdc06ebaa21f4262a0b'
* commit 'c45fcf30cfab687004ed1cdc06ebaa21f4262a0b':
  DXV decoder

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-07 16:07:07 +02:00
Gwenole Beauchesne
aea611dc3e vaapi: fix local header include.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2015-09-07 15:32:08 +02:00
Vittorio Giovara
2268db2cd0 lavu: Drop the {minus,plus}1 suffix from AVComponentDescriptor fields
The new fields can be accessed directly and are more intelligible.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-09-07 12:37:47 +02:00
Vittorio Giovara
6b3ef7f080 lavu: Remove bit packing from AVComponentDescriptor
There is no practical benefit in having this structure elements
bit packed given the size of the structure and its usage.
Change types from uint16_t (packed) to plain int in order to simplify
modifying the structure and accessing its fields.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-09-07 12:36:56 +02:00
wm4
b8b5d82744 lavu: extend size of the AVPixFmtDescriptor.flags field
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-09-07 12:36:04 +02:00
Alexandra Hájková
77cf236689 asfdec: alloc enough space for storing name in asf_read_metadata_obj
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-09-06 20:48:36 +02:00
Martin Storsjö
7cad1bf075 mov: Allow more than one keyframe per trun
The previous restriction was partially designed to fix certain
(broken) samples from bug 215. There should be no restriction on the
number of keyframes per fragment or trun.

The spec suggests that all frames lacking MOV_FRAG_SAMPLE_FLAG_IS_NON_SYNC
are key frames, but we require the flag MOV_FRAG_SAMPLE_FLAG_DEPENDS_YES
to be unset as well. This works for (possibly broken) media that never
sets the NON_SYNC flag and should also be correct for any spec-compliant
file.

For files that never set either of the flags, all samples are marked
as keyframes.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-09-06 21:24:37 +03:00
Luca Barbato
d0f7e4a57f dxtory: Unify and rework the decoding routines
Do not make many assumption on the dimension of the slices and just
try to decode additional lines if there is enough data left.

Decodes all the samples kindly provided by ultramage.
2015-09-06 14:16:38 +02:00
Paul B Mahol
50d9121afc doc/filters:vf_stereo3d: update to recent changes
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-06 11:55:13 +00:00
Rostislav Pehlivanov
b6cc8ec7ec aaccoder: add frequency scaling and quantization correction for PNS
This commit once again improves the PNS implementation by scaling the
thresholds with frequency. The thresholds get looser as the frequency
increases since higher frequencies are basically noise to human ears.

Also, this introduces quantization error correction for PNS. Should
the error be too much, no PNS will be used. The energy_ratio is used
to regulate the actual encoded PNS energy: if the generated PNS
energy is higher than the energy from the psy system, energy_ratio
is used to correct it so that hopefully once requantized and
transmitted the value in the decoder will be closer to what the
encoder has.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-07 12:44:09 +01:00
Paul B Mahol
0c511eb272 avfilter/vf_stereo3d: stop dumping half of data for interleave rows output
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-06 11:49:03 +00:00
Paul B Mahol
32dd9b2c6e avfilter/vf_stereo3d: add interleave columns output format
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-06 11:49:03 +00:00
Paul B Mahol
8bd13eb8be avfilter/vf_stereo3d: add HDMI output format
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-06 11:49:03 +00:00
Paul B Mahol
4b2bafbd4c avfilter/vf_stereo3d: support interleaved rows as input format
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-06 11:49:03 +00:00
Paul B Mahol
09812e1200 avfilter/vf_stereo3d: add checkerboard output format
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-06 11:49:03 +00:00
Zhang Rui
b821aed706 avformat/async: fix integer conversion warning
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-07 13:15:44 +02:00
Hendrik Leppkes
1964aeae42 Merge commit '0c7707610f46a28b65eff935500c78c9781f8f4f'
* commit '0c7707610f46a28b65eff935500c78c9781f8f4f':
  lavc: Add a lzf decompressor

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-07 12:53:00 +02:00
Hendrik Leppkes
d4f63be92b Merge commit '4dc9f00365853b1239936d771856cf1881b5c5ce'
* commit '4dc9f00365853b1239936d771856cf1881b5c5ce':
  build: Skip libvpx.h if libvpx is not enabled

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-07 12:31:14 +02:00
Hendrik Leppkes
a92bd1901f Merge commit '1a164e0a83dd7c1b129aeef10cb3caff368ce850'
* commit '1a164e0a83dd7c1b129aeef10cb3caff368ce850':
  tools: Drop a stale header

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-07 12:29:33 +02:00
Hendrik Leppkes
c8c9940f47 Merge commit '87a11db220dec523e39eb4af715175e150787a72'
* commit '87a11db220dec523e39eb4af715175e150787a72':
  dnxhddata: Double frame_size for cid 1260

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-07 12:29:25 +02:00
Hendrik Leppkes
b7601b5f3d Merge commit 'a686e58165ca0f83966431a9166cb6e17bf6095c'
* commit 'a686e58165ca0f83966431a9166cb6e17bf6095c':
  des: Add missing include

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-07 12:28:25 +02:00
Hendrik Leppkes
84cca0644a Merge commit '87e5d8d78cf08b54b4a9e7cbaeff89f8c1d91b78'
* commit '87e5d8d78cf08b54b4a9e7cbaeff89f8c1d91b78':
  ismindex: Use the correct abs() version

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-07 12:27:21 +02:00
Hendrik Leppkes
b8346b2294 Merge commit '9a003fc38833b6b9f08e44d7f1c6539db65840a0'
* commit '9a003fc38833b6b9f08e44d7f1c6539db65840a0':
  lavr: Remove unused label

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-07 12:26:13 +02:00
Hendrik Leppkes
464dc6e09f Merge commit 'b0d94324d21d0c1c4adf1c8c329928afe473b099'
* commit 'b0d94324d21d0c1c4adf1c8c329928afe473b099':
  libfdk-aacdec: Remove unused variable

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-07 12:25:13 +02:00
Hendrik Leppkes
7e272100c9 Merge commit '6bcd3e05998b41fb3b2c8dcc79e4662854e5208d'
* commit '6bcd3e05998b41fb3b2c8dcc79e4662854e5208d':
  build: Add support for travis CI

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-07 12:24:51 +02:00
tab
fb135139fd avformat: implement query_codec for the image2 muxer.
Allows avformat_query_codec to be used to check for valid image2 encoders.
Reuses the existing ff_guess_image2_codec ID table.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-07 02:48:58 +02:00
Michael Niedermayer
b480f0e37a avformat/cafenc: Move special casing of PCM codecs into ff_codec_caf_tags
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-07 01:21:12 +02:00
Ronald S. Bultje
e855ed17a7 Update md5 muxer docs to indicate that it ignores timestamps. 2015-09-06 15:07:19 -04:00
Ronald S. Bultje
f12093fffd vp9: fix integer overflows in sse2 version of iadst4. 2015-09-06 15:07:19 -04:00
Ronald S. Bultje
a02e27c03d md5: change flags to match framemd5.
This prevents the following warning: "Application provided invalid, non
monotonically increasing dts to muxer in stream 0: 9 >= 9".
2015-09-06 15:07:19 -04:00
Michael Niedermayer
63974bd494 avformat/http: print error that causes reconnection
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-06 20:43:38 +02:00
Michael Niedermayer
7990beedee avformat/http: require seekability only when seeking to position != 0
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-06 20:43:38 +02:00
Rostislav Pehlivanov
1956cfbaed aacenc_is: take absolute coefficient value upon energy calculations
This was an oversight when the IS system was being first implemented.
The ener01 part was largely a result of trial and error and the fact
that the sum of coef0 and coef1 could result in a zero was
overlooked. Once ener01 turns to zero it's used to divide the left
channel energy which doesn't turn out so well as it fills IS[]
with -nan's and inf's which in turn confused the quantize_band_cost.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-06 18:36:42 +01:00
Rostislav Pehlivanov
ff99a38855 fate: adjust AAC encoder tests values
Since the new commits improve quality.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-06 15:30:26 +01:00
Rostislav Pehlivanov
033e58941e aaccoder: rewrite PNS implementation
This commit rewrites the PNS implementation and significantly
improves sonic quality.

The previous implementation marked an incredibly big amount
of SFBs to predict when there was no need for this and this
resulted in quite a large amount of artifacts. Also the
quantization was incorrect (av_clip(4+log2f(...))) which
led to 3x the intensity for PNS values leading to even more
artifacts.

This commit rewrites the PNS search function and introduces
a major change: the PNS values are synthesized and are compared
to the current coefficients in addition to passing through
the revised checks to see whether PNS can be used.

This decreases distortions and makes the current PNS implementation
mainly focused on replacing any low-power non-zero bands as well
as adding any zeroed bands back.

The current encoder's performance is enough (especially with
IS) so PNS isn't really required except to fill in the occasional
few bands as well as extend any zeroed high frequency, so this
combination which is already enabled by default works
to get as much quality as it can within the bits allowed.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-06 15:30:26 +01:00
Rostislav Pehlivanov
8848c8440e aacenc_pred: disable PNS SFBs and disable right predictors with IS
Since PNS generates coefficients it doesn't make sense to send
the predicted ones as well. Also the specifications explicitly
state to disable right channel IS predictors.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-06 15:30:26 +01:00
Rostislav Pehlivanov
a71f7de95b aacenc_is: ignore PNS band types
It's better to trust that the coefficients generated will be
closer than the coefficients derived, and the new PNS implementation
makes sure that this happens.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-06 15:30:26 +01:00
Rostislav Pehlivanov
b9b1fd1183 aaccoder: use roundf() instead of ceilf()
The specifications explicitly state to use roundf() which
also rounds half-integer values away from zero.
This does fix a few IS artifacts.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-06 15:30:26 +01:00
Rostislav Pehlivanov
92aa3e7fb2 aacenc: copy PRNG from the decoder
Needed for the following PNS commits.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-06 15:30:25 +01:00
Hendrik Leppkes
34e85cb340 avcodec/vorbis: remove avpriv vorbis parser cruft
It was replaced by a public API
2015-09-06 16:25:58 +02:00
Hendrik Leppkes
2cad7eebc1 avcodec/flac: remove avpriv parsing API cruft 2015-09-06 16:25:56 +02:00
Hendrik Leppkes
eb011f73ca avcodec/alac: remove dead code cruft
The output is always planar since two major bumps, remove all code
related to packed output.
2015-09-06 16:25:55 +02:00
Michael Niedermayer
c5406d5e15 Changelog: add 2.8
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-06 15:59:40 +02:00
Rodger Combs
d2d020bb32 avcodec/htmlsubtitles: handle leading whitespace before tag names
This fixes cases like `</ font>`.

Signed-off-by: Clément Bœsch <u@pkh.me>
2015-09-06 15:48:34 +02:00
Clément Bœsch
a388ca359d avfilter/sine: support expression in the number of output samples 2015-09-06 15:28:21 +02:00
Clément Bœsch
db18b3d6e6 avcodec/samidec: small indent fix 2015-09-06 14:06:44 +02:00
Clément Bœsch
26786f43d7 avcodec/htmlsubtitles: drop avcodec dependency 2015-09-06 13:39:04 +02:00
Yayoi
87f90be4f2 avcodec/samidec: use ff_htmlmarkup_to_ass()
Signed-off-by: Clément Bœsch <u@pkh.me>
2015-09-06 13:29:28 +02:00
Yayoi
1bb8a53f08 avformat/samidec: do not include trailing sami footer in the last packet
Signed-off-by: Clément Bœsch <u@pkh.me>
2015-09-06 13:09:02 +02:00
Yayoi
fc9aa1fb46 fate/subtitles: add a new test for SAMI demuxer and decoder
Signed-off-by: Clément Bœsch <u@pkh.me>
2015-09-06 13:08:53 +02:00
Yayoi
50332f8a6b avcodec/srtdec: factor out HTML parsing code
This code will be used in SAMI decoder in a later commit.

Signed-off-by: Clément Bœsch <u@pkh.me>
2015-09-06 13:07:44 +02:00
Clément Bœsch
d9464e9c14 doc/examples/demuxing_decoding: simplify api_mode to refcount
This finalizes the quick cleanup of a753e6c9f508fd48a0f34438bcdce87c826779b9.
2015-09-06 12:35:00 +02:00
Ganesh Ajjanagadde
d74123d03e 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>
2015-09-06 11:59:34 +02:00
Zhang Rui
929451c5cb avformat/async: replace strerror with av_err2str
Fixes CID1322337

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-06 10:51:46 +02:00
Henrik Gramner
3cdda78deb checkasm: add unit tests for v210enc
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-09-06 10:36:24 +02:00
Michael Niedermayer
61009a709c tests/fate: replace all -f md5 by framemd5
also limit dcinema-encode to 20 frames to avoid huge reference checksum lists

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-06 03:23:02 +02:00
Michael Niedermayer
3cb85ad445 tests/fate-run: Pass bitexact flags to enc_dec_pcm() output
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-06 00:25:49 +02:00
Rostislav Pehlivanov
cf6fb6f3f7 fate: increase the fuzz of the AAC encoder aref test
Almost fine on SunOS without yasm but 5 wasn't enough.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-05 21:47:26 +01:00
Michael Niedermayer
69c344eed2 configure: Remove reference to no longer existing avcodec_encode_video()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-05 22:36:19 +02:00
Ganesh Ajjanagadde
78995dc241 avfilter/vf_unsharp: use the name 's' for the pointer to the private context
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-09-05 20:36:35 +00:00
Michael Niedermayer
8d860f9a77 avcodec/x86/w64xmmtest: Fix another build failure
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-05 22:15:53 +02:00
Hendrik Leppkes
8042d6c492 avcodec: remove old_codec_ids.h from SKIPHEADERS as well 2015-09-05 21:55:59 +02:00
Hendrik Leppkes
393b472362 avcodec: fix make install after old_codec_ids.h removal 2015-09-05 21:54:53 +02:00
Ronald S. Bultje
086c9b78d4 vp9: fix rounding error in idct_8x8_ssse3. 2015-09-05 15:50:02 -04:00
Ronald S. Bultje
ae9344cb9f vp9: check return value of ff_thread_ref_frame().
Fixes CID 1322309.
2015-09-05 15:50:01 -04:00
Ronald S. Bultje
ef8740d8e5 vp9: fix type of iadst4_1d intermediates.
Fixes integer overflows for extreme coefficient values in 10/12bpp content.
2015-09-05 15:50:01 -04:00
Ronald S. Bultje
342bca7f02 vp9: fix integer overflow in 10/12bpp DC-only calculation. 2015-09-05 15:50:01 -04:00
Ronald S. Bultje
1f7871ec42 vp9: fix edge copy for 10/12bpp frames. 2015-09-05 15:50:01 -04:00
Ronald S. Bultje
9cdeb105a6 vp9: do unscaled MC in scaled path if size of this reference matches.
This can happen if we do bidirectional MC, where one reference has the
same size as the current frame, but the other one doesn't.
2015-09-05 15:50:01 -04:00
Ronald S. Bultje
873dbc6758 vp9: sync segmentation.absolute_vals between threads. 2015-09-05 15:50:00 -04:00
Ronald S. Bultje
3d7173b509 vp9: always sync segmentation.feat between threads. 2015-09-05 15:50:00 -04:00
wm4
89b0a9f3fa avcodec/vdpau: remove incompatible-libav-abi hack from vdpau_render_state struct 2015-09-05 16:45:26 -03:00
Hendrik Leppkes
160e92c8bf Merge commit 'e88103a7f92cf27a2868b50acc8a9912f6088249'
* commit 'e88103a7f92cf27a2868b50acc8a9912f6088249':
  Bump major versions of all libraries

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-05 21:35:46 +02:00
Hendrik Leppkes
590ea32e54 Postpone removal of API changes from within the last two years 2015-09-05 21:21:20 +02:00
Hendrik Leppkes
24e3bac52a avcodec: remove deprecated codec id aliases 2015-09-05 21:15:58 +02:00
Hendrik Leppkes
76cac7ed45 avcodec: remove deprecated old video encode API 2015-09-05 21:15:57 +02:00
Hendrik Leppkes
64c33f9624 avcodec: remove deprecated old audio encode API 2015-09-05 21:15:55 +02:00
Hendrik Leppkes
2c8ee2547e avcodec: remove deprecated old audio decode API 2015-09-05 21:15:54 +02:00
James Almer
c956cb2c02 avutil/pixfmt: remove duplicate AVPixelFormat values
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-09-05 15:51:55 -03:00
Hendrik Leppkes
d83dd630a0 lavu: Drop FF_API_GET_CHANNEL_LAYOUT_COMPAT cruft
FATE refs changed to accomodate for the new default behavior of the function.
Numbers are now interpreted as a channel layout, instead of a number of channels.
2015-09-05 20:36:19 +02:00
James Almer
251fb7dcd4 avcodec: remove FF_API_DV_FRAME_PROFILE cruft
Signed-off-by: James Almer <jamrial@gmail.com>
2015-09-05 14:16:16 -03:00
Hendrik Leppkes
3433228795 lavfi: remove old graph parser API with different semantics
This API hasn't been active since the last bump already.
2015-09-05 18:35:09 +02:00
Andy Wu
c43bd08f8b avformat/mp3dec: Make MP3 seek fast
When AVFMT_FLAG_FAST_SEEK is specified, make MP3 seek operation as
fast as possible.

When no "-usetoc" is specified, the default operation is using TOC
if available; otherwise, uses linear interpolation. This is useful
when seeking a large MP3 file with no TOC available. One example is
Podcast, many MP3 files are large, but no CBR/VBR tags. Most of
them are actually CBR. Even in VBR cases, this option sacrifices the
accuracy of playback time in exchange for responsiveness.
2015-09-05 18:32:58 +02:00
Hendrik Leppkes
237cf3786e lavu: Drop old deprecated AVOption API
Deprecated in 2011/10
2015-09-05 18:30:35 +02:00
Michael Niedermayer
0acd4e75fd doc/APIchanges: Fill in missing fields and correct one lavu version
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-05 18:25:24 +02:00
Michael Niedermayer
982e235d76 doc/APIchanges: add 2.8 cut line
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-05 18:25:24 +02:00
Michael Niedermayer
a753e6c9f5 doc/examples/demuxing_decoding: Drop old api mode, because the code fails to build otherwise
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-05 18:25:24 +02:00
Michael Niedermayer
998fa4fa30 avcodec/libutvideodec: remove AVFrame->reference usage, otherwise the code does not build
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-05 18:25:24 +02:00
James Almer
4a447e3e69 avcodec/ac3: sync AC3HeaderInfo struct with the fork
Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-09-05 13:24:52 -03:00
Hendrik Leppkes
137f075993 lavu/hmac: remove deprecated type ids 2015-09-05 18:07:20 +02:00
Hendrik Leppkes
545559e43d Remove FF_CONST_AVUTIL55 cruft 2015-09-05 17:56:28 +02:00
Hendrik Leppkes
2df52088ef Merge commit '4e649debcf7f71d35c6b38cdb7ee715eba95d64a'
* commit '4e649debcf7f71d35c6b38cdb7ee715eba95d64a':
  Postpone API-incompatible changes until the next bump

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-05 17:52:10 +02:00
Hendrik Leppkes
6f6c025d6d Merge commit '3d89373fae281053154772d5e3e4370da09d3880'
* commit '3d89373fae281053154772d5e3e4370da09d3880':
  lavu: Drop deprecated private lls functions

Previously removed in ffmpeg

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-05 17:46:47 +02:00
Hendrik Leppkes
f940931995 Merge commit '2f9b652e8c646eabef74a6742f0d7d4c9118fd0e'
* commit '2f9b652e8c646eabef74a6742f0d7d4c9118fd0e':
  lavu: Drop deprecated context size variables

These variables had been previously un-deprecated in ffmpeg, not removed.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-05 17:44:55 +02:00
Hendrik Leppkes
a991526832 lavu/frame: put frame QP elements under a new version guard
These fields are still used, removal postponed until a replacement functionality is available.
2015-09-05 17:35:31 +02:00
Hendrik Leppkes
b9fd813351 Merge commit '8f12ef9860d0e164e4647fd5d5cebdb3cfb34a79'
* commit '8f12ef9860d0e164e4647fd5d5cebdb3cfb34a79':
  lavu: Drop deprecated duplicated AVFrame/AVCodecContext parameters

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-05 17:31:45 +02:00
Hendrik Leppkes
f1b02e6ca8 lavu/cpu: remove old cmov cruft 2015-09-05 17:23:28 +02:00
Hendrik Leppkes
58ebb39127 Merge commit 'bf7114b6caad8cf94696b0299c13b0d26bf291be'
* commit 'bf7114b6caad8cf94696b0299c13b0d26bf291be':
  lavu: Drop deprecated AV_CPU_FLAG_MMX2 symbol

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-05 17:19:50 +02:00
Hendrik Leppkes
d9218011ef Merge commit '2d40968dd3ff17b12f7c80dbfad409b14418e267'
* commit '2d40968dd3ff17b12f7c80dbfad409b14418e267':
  lavu: Drop deprecated audioconvert.h header

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-05 17:18:05 +02:00
Hendrik Leppkes
d96d0252fd Merge commit 'cdfe45ad371b7a8e6135b6c063b6b2a93152cb3a'
* commit 'cdfe45ad371b7a8e6135b6c063b6b2a93152cb3a':
  lavu: Drop deprecated av_reverse function

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-05 17:17:15 +02:00
Hendrik Leppkes
0eed703d64 Merge commit '2f8cbbc962dfc0dc1dd0a90b2cd6c21266380f51'
* commit '2f8cbbc962dfc0dc1dd0a90b2cd6c21266380f51':
  lavu: Drop deprecated external access to AVPixFmtDescriptor table

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-05 17:12:23 +02:00
Hendrik Leppkes
c10caea214 Merge commit '183db02a51a422568084b113a7571c845ca68622'
* commit '183db02a51a422568084b113a7571c845ca68622':
  lavu: Drop deprecated old_pix_fmt.h and related code

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-05 17:10:28 +02:00
Hendrik Leppkes
41194f065c Merge commit 'cad40a3833ad81a352e7657ec6f7d637cea3b798'
* commit 'cad40a3833ad81a352e7657ec6f7d637cea3b798':
  lavc: Drop deprecated deinterlace module

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-05 17:06:14 +02:00
Hendrik Leppkes
7f6b794da0 Merge commit '069713aa4b137781e270768d803b1f7456daa724'
* commit '069713aa4b137781e270768d803b1f7456daa724':
  lavc: Drop deprecated thread opaque and codec pkt

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-05 17:03:44 +02:00
Hendrik Leppkes
4eb86b83a4 Merge commit '9f90b24877016e7140b9b14e4b1acee663bb6d8a'
* commit '9f90b24877016e7140b9b14e4b1acee663bb6d8a':
  lavc: Drop deprecated get_buffer related functions

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-05 16:59:23 +02:00
Hendrik Leppkes
83a5df54ea Remove left-over FF_API_DESTRUCT_PACKET cruft 2015-09-05 16:51:53 +02:00
Hendrik Leppkes
87c8812270 Merge commit '01bcc2d5c23fa757d163530abb396fd02f1be7c8'
* commit '01bcc2d5c23fa757d163530abb396fd02f1be7c8':
  lavc: Drop deprecated destruct_packet related functions

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-05 16:50:09 +02:00
Hendrik Leppkes
b27ddffbfb Merge commit 'dc70c19476e76f1118df73b5d97cc76f0e5f6f6c'
* commit 'dc70c19476e76f1118df73b5d97cc76f0e5f6f6c':
  lavc: Drop deprecated request_channels related functions

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-05 16:42:44 +02:00
Hendrik Leppkes
144fb06806 Remove left-over FF_API_AVFILTERBUFFER cruft 2015-09-05 16:27:19 +02:00
Hendrik Leppkes
033764e015 Merge commit 'f6974fe651d29ef6eb68d66d73f7b6c011062aa0'
* commit 'f6974fe651d29ef6eb68d66d73f7b6c011062aa0':
  lavfi: Drop deprecated AVFilterBuffer* code

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-05 16:22:03 +02:00
Hendrik Leppkes
43e2e172df Merge commit 'e65e4cbbda03ca3c9087f069c9867d518415fca1'
* commit 'e65e4cbbda03ca3c9087f069c9867d518415fca1':
  lavfi: Drop deprecated *_count suffixed variables

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-05 16:11:22 +02:00
Hendrik Leppkes
2751d5f0ba Merge commit '86e5056575f55f070609dd3926605302f7d2280e'
* commit '86e5056575f55f070609dd3926605302f7d2280e':
  lavfi: Drop deprecated public AVFilterPad struct

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-05 16:01:24 +02:00
Hendrik Leppkes
e2adb00ec5 Merge commit '11b2eed43e91b35b8295ed47115cae2e29bd687d'
* commit '11b2eed43e91b35b8295ed47115cae2e29bd687d':
  lavr: Drop deprecated context reinitialization if resampling was not enabled

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-05 15:59:40 +02:00
Hendrik Leppkes
cebe51a625 Merge commit '9d58639e270f7612874681e0ca30fa461e2667b7'
* commit '9d58639e270f7612874681e0ca30fa461e2667b7':
  sws: Drop deprecated SWS_CPU_CAPS defines

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-05 15:58:52 +02:00
Michael Niedermayer
8ca97b5e4f avfilter/avf_showfreqs: Fix memleak of out frame
Fixes CID1322344

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-05 15:46:18 +02:00
Michael Niedermayer
0ada8ec1a5 avfilter/avf_showfreqs: Fix "may be used uninitialized in this function" warning
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-05 15:34:35 +02:00
Michael Niedermayer
7213d3fbf3 avfilter/avf_showfreqs: Free fin
Fixes CID1322345

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-05 15:32:00 +02:00
Michael Niedermayer
a3ad51e0d5 avfilter/af_amerge: avoid undefined shift (<<64) in outlayout setup
Fixes CID1322306

Reviewed-by: Ganesh Ajjanagadde <gajjanag@mit.edu>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-05 15:14:09 +02:00
Michael Niedermayer
7eab904d11 avfilter/vf_stack: Fix memleak of out frame
Fixes CID1322347

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-05 14:41:45 +02:00
Michael Niedermayer
4eca1939ef avformat/hls: Check for av_opt_set_dict() failure
Fixes: CID1320426

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-05 14:28:08 +02:00
Michael Niedermayer
c41a59330f avcodec/rawenc: Use AVFrame parameters instead of AVCodecContext
This allows encoding raw frames with changing dimensions

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-05 11:56:23 +02:00
Michael Niedermayer
5d859e5980 avfilter/avfilter: Add a few more basic filters to the list which support frame size changes
Fixes assertion failures

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-05 11:43:27 +02:00
Carl Eugen Hoyos
da8eb70dc3 lavf/aiffenc: Clarify an error message.
Only one audio stream is allowed in aiff.
2015-09-05 10:53:55 +02:00
Rostislav Pehlivanov
5ab3b6a8a5 fate: adjust AAC encoder TNS test target
The new commits improve the quality.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-05 09:11:05 +01:00
Rostislav Pehlivanov
e3faad811e aacenc_tns: adjust coefficient calculation, add double filter support
This commit improves the TNS implementation to the point where it's
actually usable and very rarely results in nastyness (in all bitrates
except extremely low bitrates it's increasing the quality and prevents
some distortions from the coder being audiable).

Also adds a double filter support which is only used if the energy
difference between the top and bottom of the SFBs is above the
thresholds defined in the header file. Looking at the bitstream
that fdk_aac generates it sometimes used a double filter despite
the specs stating that a single filter should be enough for almost
all cases and purposes.

Unlike FAAC or fdk_aac we sometimes use a reverse filter in case
the energy difference isn't enought to use a double filter. This
actually works better.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-05 09:08:30 +01:00
Rostislav Pehlivanov
7591f8319b lpc: increase error array size of ff_lpc_calc_ref_coefs_f by one
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-05 08:51:19 +01:00
Rostislav Pehlivanov
4565611b04 aacenc_is: add a flag to use pure coefficients instead
This commit adds a flag to use the pure coefficients instead
of the processed ones (sce->coeffs). This is needed because
IS will apply the changes to the coefficients immediately
before the adjust_common_prediction function and it doesn't
make sense to measure stereo channel coefficient difference
when one of the channels coefficients are all zero.

Therefore add a flag to use pure coefficients in that case.
TNS is the only thing touching the coefficients before IS
so common window prediction will not take that into account
but the effect of the TNS filter per coefficient can be small
(a few percent) so to some approximation it's fine to just
ignore that.

Also fixed a small error which doesn't alter the results
that much. pow(sqrt(number), 3.0/4.0) == pow(number, 3.0/8.0) !=
pow(number, 3.0/4.0).

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-05 08:32:09 +01:00
Michael Niedermayer
a87ada53c3 avcodec/jpeg2000dec: Initialize ret to avoid warning and make the code more robust
"Fixes" CID1322361

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-05 00:38:21 +02:00
Michael Niedermayer
9e70475551 avcodec/jpeg2000dec: Assert that step_x/y are valid
Fixes CID1322304, CID1322305

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-05 00:37:53 +02:00
Michael Niedermayer
205c31b301 avcodec/hapdec: Check section_size for non negativity in parse_section_header()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-05 00:37:53 +02:00
Arnaud Bienner
0cdba4ac68 lavf/mxfdec: Support more codecs in mxf_picture_essence_container_uls[].
Signed-off-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
2015-09-05 00:11:14 +02:00
Arnaud Bienner
35ab967f52 lavf/mxf: Support video essence container uls for vc1.
Signed-off-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
2015-09-05 00:09:13 +02:00
Arnaud Bienner
fd6b38bed7 lavf/riff: Support fourcc AVd1 for dvvideo.
Signed-off-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
2015-09-05 00:09:06 +02:00
Pedro Arthur
3059562aa1 swscale: re-enable gamma
+added gamma conversion to refactored code
2015-09-04 19:00:20 -03:00
Pedro Arthur
f67aff3ad7 swscale: added proper error check for ff_init_filters 2015-09-04 19:00:20 -03:00
Carl Eugen Hoyos
f7361dbcf4 lavc/mxfdec: Support more mxf files with codec_ul.
Fixes decoding for the sample from ticket #4820.
2015-09-04 23:50:34 +02:00
Carl Eugen Hoyos
f253c34175 lavc/j2kenc: Remove experimental flag.
The encoder produces valid and - if requested - lossless files.
2015-09-04 23:48:32 +02:00
Paul B Mahol
f011e98cb1 avfilter/vf_vectorscope: change intensity to float
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-04 18:47:46 +00:00
Paul B Mahol
db592f3b03 avfilter/vf_waveform: stop abusing s->size for calculating limit
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-04 17:34:23 +00:00
Paul B Mahol
55886c67e7 avfilter/vf_waveform: change intensity to float
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-04 17:14:32 +00:00
Paul B Mahol
fda05554e3 avfilter/vf_waveform: reduce number of operations a little
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-04 17:07:08 +00:00
Paul B Mahol
5b658bcc8a avfilter/vf_waveform: 9 and 10 bit depth support for lowpass & color filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-04 17:07:08 +00:00
Vittorio Giovara
599fe93a84 riff: Add AVj2 fourcc for Avid jpeg2000 2015-09-04 17:51:29 +02:00
Ronald S. Bultje
9ee2ddd773 vp9_parse: fix parsing of pskip and profile 2/3.
The fate results change because we now correctly timestamp the pskip
frames, which means the results are now identical to -vsync 0.
2015-09-04 09:59:17 -04:00
Ronald S. Bultje
10142f994a libvpxdec: explicitly signal RGB. 2015-09-04 09:33:46 -04:00
Ronald S. Bultje
4ecb8b4191 vp9: don't erase values for {lf,ref,skip,q}_enabled if segmentation=0.
Instead, use segmentation.enabled before accessing each of these values.
2015-09-04 09:33:45 -04:00
Ronald S. Bultje
8b45e87f64 vp9: fix segmentation map retention across keyframe boundaries. 2015-09-04 09:33:45 -04:00
Ronald S. Bultje
7cc7d13fe3 vp9: fix RGB chroma subsampling. 2015-09-04 09:33:45 -04:00
Ronald S. Bultje
ecd9f57edc vp9: read reserved bit in RGB header. 2015-09-04 09:33:45 -04:00
Ronald S. Bultje
48f641a18b vp9: clip intermediates in dequant calculations.
This makes values consistent with libvpx.
2015-09-04 09:33:45 -04:00
Ronald S. Bultje
eaff36c973 vp9: fix segmentation map retention if segmentation is turned off. 2015-09-04 09:33:44 -04:00
Ronald S. Bultje
8d25a11dc7 vp9: use resetctx in the same way as libvpx. 2015-09-04 09:33:44 -04:00
Ronald S. Bultje
cc9d3a3e36 vp9: fix indentation. 2015-09-04 09:33:44 -04:00
Ronald S. Bultje
caf6512ac4 vp9: deal with the case where update_map=0 but we're key/intraonly. 2015-09-04 09:33:44 -04:00
Ronald S. Bultje
339550e7c8 vp9: reset segmentation information on context reset. 2015-09-04 09:33:43 -04:00
Michael Niedermayer
fb04666995 avcodec/g2meet: Also clear tile dimensions on header_fail
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-04 12:14:14 +02:00
Michael Niedermayer
71ec8e1ed6 avcodec/g2meet: Fix potential overflow in tile dimensions check
Fixes CID1322351

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-04 12:14:13 +02:00
Michael Niedermayer
c447ab0e74 avcodec/eatgq: Check init_get_bits8() for failure
Fixes CID1322315

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-04 12:03:44 +02:00
Michael Niedermayer
66a7bc0010 avcodec/adpcm: Check init_get_bits8() for failure
Fixes CID1322317

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-04 12:03:37 +02:00
Michael Niedermayer
cf410f8fb9 ffmpeg: Drop redundant ist check
stream copy always has a input stream, it cannot use complex video/audio filters with unambigous input
Fixes CID1322348

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-04 11:42:23 +02:00
Michael Niedermayer
e9c58033e8 doc/examples/http_multiclient: Fix occured typo
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-04 11:30:25 +02:00
Michael Niedermayer
325ee610ba avcodec/libfdk-aacdec: Remove unused variable
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-04 11:26:14 +02:00
Michael Niedermayer
bd6610c3b3 avcodec/hevc_parser: Check init_get_bits8() for failure
Fixes: CID1322322

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-04 03:09:03 +02:00
Michael Niedermayer
194dd15558 avcodec/ira288: Check init_get_bits8() for failure
Fixes: CID1322321

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-04 02:19:06 +02:00
Michael Niedermayer
21d8c6612f avcodec/smacker: Check init_get_bits8() for failure
Fixes: CID1322314

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-04 02:15:50 +02:00
Michael Niedermayer
6ae1a32d8a avcodec/sonic: Check init_get_bits8() for failure
Fixes: CID1322310

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-04 02:14:10 +02:00
Luca Barbato
a7e6fbd90e dxtory: Factorize the buffer loading
And the checks nearby it.
2015-09-04 01:42:55 +02:00
Luca Barbato
6a6bc43f5f dxtory: Factorize slice size checks
They are always the same.
2015-09-04 01:42:55 +02:00
Michael Niedermayer
a51d4246d8 avcodec/svq1dec: Check init_get_bits8() for failure
Fixes: CID1322313

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-04 01:28:26 +02:00
Michael Niedermayer
f1593e4ca5 avcodec/tta: Check init_get_bits8() for failure
Fixes: CID1322319

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-04 01:28:25 +02:00
Michael Niedermayer
cbd3cd8eb2 avcodec/vp3: Check init_get_bits8() for failure
Fixes CID1322316

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-04 01:13:05 +02:00
Michael Niedermayer
f5a6a8336f avfilter/af_channelmap: Reorder operations to avoid memleak
Fixes CID1322346
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-04 00:10:41 +02:00
Michael Niedermayer
59361d8c9d avfilter/af_sidechaincompress: Also assert that i < 2
This should help static analyzers (CID1322339)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-03 23:13:24 +02:00
Michael Niedermayer
d5710411c7 avfilter/vf_atadenoise: Check for ff_get_video_buffer() failure
Fixes CID1322338

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-03 23:07:43 +02:00
Michael Niedermayer
c97ea011f5 avfilter/vf_histogram: Fix order of operations with flags
Fixes CID1322325

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-03 23:02:03 +02:00
Michael Niedermayer
e5aa6f7021 avcodec/gsmdec_template: avoid undefined negative left shifts
Fixes: unknown_unknown_338_824_cov_1045285351_sample-gsm-8000.mov

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-03 22:17:24 +02:00
Michael Niedermayer
9ed53d5a8a avformat/mov: Change the type of the r/g/b variables
Fixes integer overflow
Fixes: unknown_unknown_31b_795_cov_1818643045_raybauduc.mov

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-03 22:17:00 +02:00
Stephan Holljes
280d140cb0 lavf/http: Remove superfluous parenthesis.
Signed-off-by: Stephan Holljes <klaxa1337@googlemail.com>
Reviewed-by: Ganesh Ajjanagadde <gajjanag@mit.edu>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-03 20:11:29 +02:00
Michael Niedermayer
a212a983c7 avfilter/avf_showwaves: Check max_samples
Fixes potential division by zero
Fixes: CID1292295

Reviewed-by: Ganesh Ajjanagadde <gajjanag@mit.edu>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-03 19:27:20 +02:00
Stephan Holljes
dd7b486e8e lavf/http: Fix incorrectly placed parenthesis.
The assignment had incorrectly placed parentheses which resulted in ret
always being > 0.

Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-03 18:55:49 +02:00
Michael Niedermayer
92b3c486b0 avfilter/af_dynaudnorm: Fix typo in assert
Fixes: CID1322303

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-03 18:55:06 +02:00
Michael Niedermayer
629fcda4da avfilter/avf_showfreqs: Use floating point division in WFUNC_BHANN
Fixes: CID1322365

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-03 18:54:14 +02:00
Michael Niedermayer
9f6ca28e32 avformat/concatdec: Check file variable before dereferencing
Fixes CID1322328

Reviewed-by: Ganesh Ajjanagadde <gajjanag@mit.edu>
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-03 18:53:44 +02:00
Claudio Freire
5131ba5657 AAC: MIPS: Add missing codebooks in quantize funcs
Add entries on the quantize function tables for the missing
codebooks (which all behave like ZERO)
2015-09-03 11:27:52 -03:00
Claudio Freire
bcb3332b1b AAC: Increase fuzziness of fate-aac tests
Needed to make them pass in mips
2015-09-03 10:16:33 -03:00
Carl Eugen Hoyos
3cf0c959cd doc: Explain how to use the fps and the fieldmatch filter together.
Fixes ticket #3968.
2015-09-03 14:36:34 +02:00
Michael Niedermayer
db9fd1e9af fraps: increase vlc nb_bits
Sample-Id: fraps_bug_huff.avi
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-09-03 13:55:38 +02:00
Michael Niedermayer
741d353ab9 huffman: allow specifying nb_bits to ff_huff_build_tree()
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-09-03 13:55:38 +02:00
Michael Niedermayer
26960aa1cd huffman: increase bits constant
Bug-ID: ffmpeg ticket 2593

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-09-03 13:55:38 +02:00
Michael Niedermayer
5a19bce2ff huffman: use a named identifer for the bits constant
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-09-03 13:55:38 +02:00
Sean McGovern
9ad1e0c12c mux: Make sure that the data is actually written
And forward the error if it is not.

Bug-Id: 881

CC: libav-stable@libav.org

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-09-03 13:39:34 +02:00
Sean McGovern
e05f7ed543 file: properly forward errors from file_read() and file_write()
Bug-Id: 881

CC: libav-stable@libav.org

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-09-03 13:39:34 +02:00
Luca Barbato
5a1a9da8a7 mpegvideo: Drop a stray error message
The condition is not a failure.
2015-09-03 13:39:34 +02:00
Michael Niedermayer
fddcd9e570 avformat/file: Fix copy and paste error
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-03 12:42:40 +02:00
Ganesh Ajjanagadde
c0ae4619ec avfilter/vf_sab: use the name 's' for the pointer to the private context
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-09-03 09:47:44 +00:00
Paul B Mahol
9136e65c40 avcodec/fraps: use init_get_bits8()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-03 09:47:44 +00:00
Michael Niedermayer
4cad4bd4ca avformat/hlsenc: Fix memleak of path
Fixes: CID1322343
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-03 11:28:29 +02:00
Michael Niedermayer
e3d8504fd0 avformat/hlsenc: Initialize vtt_oc to help static analyzers
This is also more robust in case it ever is used

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-03 11:28:29 +02:00
Michael Niedermayer
879603fa3f avformat/latmenc: Add assert to avoid coverity warning
Fixes CID1322323

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-03 11:28:29 +02:00
Paul B Mahol
8d2b4b8c82 avfilter/vf_drawgraph: add rscroll slide mode
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-03 09:12:14 +00:00
Paul B Mahol
81f7a2579b avcodec/vorbisdec: use init_get_bits8()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-03 09:12:14 +00:00
Paul B Mahol
7820197d2c avfilter/vf_vectorscope: constify more variables
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-03 09:12:14 +00:00
Paul B Mahol
1c88ef0c99 avfilter/vf_vectorscope: support more formats for color4 mode in common case
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-03 09:12:14 +00:00
Paul B Mahol
19dfbe9298 avfilter/vf_elbg: make it possible to output to pal8 pixel format
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-03 09:12:06 +00:00
Michael Niedermayer
bd70303ead avformat/swfdec: Check return value of init_get_bits8()
Fixes: CID1322320

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-03 10:20:29 +02:00
Michael Niedermayer
32f53958b8 swresample/swresample: Fix integer overflow in seed calculation
Fixes CID1322333

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-03 09:32:43 +02:00
Michael Niedermayer
053e80f6ea 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>
2015-09-03 09:20:57 +02:00
Michael Niedermayer
d6cd614dac 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>
2015-09-03 09:05:50 +02:00
Michael Niedermayer
d1bdaf3fb2 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>
2015-09-03 02:50:41 +02:00
Michael Niedermayer
733511fb53 avutil/common: Document FFABS() corner case
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-03 02:18:01 +02:00
Vittorio Giovara
c45fcf30cf DXV decoder
Support all DXDI and DXD3 normal quality videos.
2015-09-02 22:22:02 +02:00
Luca Barbato
0c7707610f lavc: Add a lzf decompressor
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-09-02 21:56:22 +02:00
Marton Balint
26a0cd1b4b lavf: add V as a video stream specifier which is not an attached picture
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-09-02 21:35:21 +02:00
Michael Niedermayer
863522431f avcodec/mpeg12dec: Fix integer overflow
Fixes: 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>
2015-09-02 21:11:07 +02:00
Michael Niedermayer
d9b56895b5 avcodec/mpegvideo: change bit_rate to 64bit
32bit is not sufficient for all cases

Fixes: 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>
2015-09-02 21:10:36 +02:00
Michael Niedermayer
5b6a50e150 avcodec/mpegvideo_parser: Fix integer overflow
Fixes: 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>
2015-09-02 20:55:09 +02:00
Michael Niedermayer
cf818be4f2 avcodec/truemotion1: Fix undefined behavior (left shift of negative value)
Fixes: 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>
2015-09-02 20:45:07 +02:00
周晓勇
95010d49a2 avcodec: loongson optimize mpeg2 dct unquantize intra and denoise dct
Change-Id: I2f391ae912a079fb32f0703841dca86358aac72a
Signed-off-by: ZhouXiaoyong <zhouxiaoyong@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-02 16:53:32 +02:00
Vittorio Giovara
c4a0a326a1 lavfi/colormatrix: Add a bt601 alias
Matches what av_get_colorspace_name() and av_color_space_name() report.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-02 16:35:21 +02:00
Carl Eugen Hoyos
a4188c9cd2 ffmpeg: Improve help text for -target.
Fixes ticket #1057.
2015-09-02 14:32:06 +02:00
Michael Niedermayer
933309a6ca avcodec/mips/aaccoder_mips: disable optimizatios which break fate-aac-pns-encode
These should be re enabled once the issue is fixed

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-02 13:04:57 +02:00
Rostislav Pehlivanov
10d16647cc fate: increase fuzziness for the AAC encoder prediction test
Fails on x86_64 using ICC 13.1.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-02 08:36:53 +01:00
Rostislav Pehlivanov
dcf72da841 fate: add fuzziness to the AAC Encode prediction test
Fails on ppc64 architecture under Ubuntu.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-02 07:15:42 +01:00
Rostislav Pehlivanov
72adf24310 fate: update AAC encoder tests
TNS had both IS and PNS switched on when it makes more sense
to have them both off.

Prediction had a redundant argument.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-02 06:39:59 +01:00
Rostislav Pehlivanov
20dc527139 aacenc: reorder coding tools
This commit reorders the coding tools such that they're doing what
the decoder does in reverse order. The very first thing the decoder
does is to decode M/S stereo if that's signalled, then prediction,
IS, and finally TNS and PNS in another function.
adjust_frame_information()'s application of IS and M/S was taken
out into two separate functions since prediction doesn't expect
to get the raw coefficients but rathe the coefficients at that
part of the encoding process.

The results show a much better PSNR when any combination of
Intensity Stereo, Mid/Side stereo and Prediction is used, which
is a sign of an increased encoder efficiency as well as the fact
that the decoder gets what it expects.

Otherwise, with only IS, PNS or prediction there are neither
regressions nor improvements except in the case of IS, which
now by itself (or with PNS) is less prone to artifacts. Enabling
M/S (using stereo_mode) as well will also reduce stereo artifacts
induced by IS, so in the very near future M/S may be enabled
by default.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-02 06:26:45 +01:00
LiuQi
a4055d3e5d avformat/hlsenc: add a use_localtime option to expand the segment filename with localtime
test examples:

./ffmpeg -re -i ~/Movies/objectC/facebook.mp4 -v verbose -c copy -f hls -hls_segment_filename test-%s.ts -use_localtime 1 -bsf:v h264_mp4toannexb aaa.m3u8

[StevenLiu@localhost ffmpeg]$ cat aaa.m3u8;ll test-*.ts
test-1441052221.ts
test-1441052231.ts
test-1441052235.ts
test-1441052243.ts
test-1441052249.ts
-rw-r--r--  1 StevenLiu  staff  1310736  9  1 04:15 test-1441052131.ts
-rw-r--r--  1 StevenLiu  staff   495192  9  1 04:15 test-1441052141.ts
-rw-r--r--  1 StevenLiu  staff  1310736  9  1 04:17 test-1441052212.ts
-rw-r--r--  1 StevenLiu  staff  1067840  9  1 04:17 test-1441052221.ts
-rw-r--r--  1 StevenLiu  staff   235564  9  1 04:17 test-1441052231.ts
-rw-r--r--  1 StevenLiu  staff  1187220  9  1 04:17 test-1441052235.ts
-rw-r--r--  1 StevenLiu  staff   694848  9  1 04:17 test-1441052243.ts
-rw-r--r--  1 StevenLiu  staff   526588  9  1 04:17 test-1441052249.ts
[StevenLiu@localhost ffmpeg]$

./ffmpeg -re -i ~/Movies/objectC/facebook.mp4 -v verbose -c copy -f hls -hls_segment_filename test-%s.ts -use_localtime 1 -bsf:v h264_mp4toannexb aaa.m3u8

[StevenLiu@localhost ffmpeg]$ cat aaa.m3u8;ll aaa-*.ts
aaa-1441052417.ts
aaa-1441052427.ts
aaa-1441052437.ts
aaa-1441052440.ts
aaa-1441052449.ts
-rw-r--r--  1 StevenLiu  staff  1310736  9  1 04:19 aaa-1441052382.ts
-rw-r--r--  1 StevenLiu  staff   277300  9  1 04:19 aaa-1441052392.ts
-rw-r--r--  1 StevenLiu  staff  1310736  9  1 04:20 aaa-1441052417.ts
-rw-r--r--  1 StevenLiu  staff  1067840  9  1 04:20 aaa-1441052427.ts
-rw-r--r--  1 StevenLiu  staff   235564  9  1 04:20 aaa-1441052437.ts
-rw-r--r--  1 StevenLiu  staff  1187220  9  1 04:20 aaa-1441052440.ts
-rw-r--r--  1 StevenLiu  staff   338776  9  1 04:20 aaa-1441052449.ts
[StevenLiu@localhost ffmpeg]$

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-02 04:31:32 +02:00
Rainer Hochecker
62bd8deef9 avcodec/hevc_parser: fix split function of parser
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-02 02:48:43 +02:00
Michael Niedermayer
b7baebb754 avcodec/ffv1dec: Print CRCs at picture debug level
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-02 02:11:43 +02:00
Michael Niedermayer
eac161451d avcodec/ffv1dec: Check that there is enough space for the CRC in the global header
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-02 02:10:31 +02:00
Michael Niedermayer
1376084dcb avcodec/h264_slice: replace assert by normal error check
Fixes assertion failure
Fixes: c6075771557e4f3b7b74e63d2d24fb01/signal_sigabrt_7ffff6ac8cc9_133_cov_2853689970_CREDITS.FST

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-02 01:22:45 +02:00
Carl Eugen Hoyos
3eae98c1ac lavf/dv: Do not return EIO for every error (like EOF).
Fixes ticket #4818.

Reviewed-by: Ronald S. Bultje
Reviewed-by: Paul B Mahol
2015-09-02 00:59:10 +02:00
Ricardo Constantino
9dbc50b4cd avfilter/vf_subtitles: allow setting fonts directory
This is mostly useful if libass was compiled with a font provider
other than fontconfig, but is still useful in that case.

Signed-off-by: Ricardo Constantino <wiiaboo@gmail.com>
2015-09-02 00:47:52 +02:00
Michael Niedermayer
642d2f9d55 avcodec/version: Minor version bump due to 5d12d7de2ce548a3c9f5c175a9d1c5bfbdbcbfa8
Found-by: ubitux
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-01 23:02:15 +02:00
Michael Niedermayer
c7c207aecd 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>
2015-09-01 22:46:23 +02:00
Petri Hintukainen
5d12d7de2c mpegts: demux BluRay text subtitles
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-01 14:35:32 +02:00
Petri Hintukainen
757cb0f286 mpegts: fix demuxing PES private stream 2
PES header size is 6 bytes (00 00 01 bf XX XX), not 0.
BluRay text subtitles use private stream 2.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-01 14:35:32 +02:00
Ganesh Ajjanagadde
d79c200000 avfilter/vf_spp: use the name 's' for the pointer to the private context
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-09-01 12:02:56 +00:00
Andrew Stone
dc926ab518 rtmp: support the AMF_DATE tag
Instead of returning EINVAL, which can cause a stream to fail to load, this
allows the tag to be passed through to the flv demuxer, where it's summarily
ignored.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-01 13:35:37 +02:00
Rostislav Pehlivanov
8ffe1cb4d7 aacenc: disable bandtype modifying extensions when coder != twoloop
If the selected coder isn't twoloop, this commit temporarily
disables IS and PNS.
The problem is in the encode_window_bands_info() being confused
and setting invalid band_types for non-marked (normal) bands.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-01 12:07:00 +01:00
Paul B Mahol
c3cd1a7496 avfilter/vf_waveform: support envelope for all filters
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-01 08:43:34 +00:00
Paul B Mahol
97c7c39d25 avfilter/vf_waveform: simplify memory allocations
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-01 08:43:34 +00:00
Paul B Mahol
32f217edad avfilter/vf_waveform: implement various filters
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-01 08:43:34 +00:00
Rostislav Pehlivanov
b86532810d fate: adjust fuzz of AAC Encoder's TNS test
Have to adjust it again, this time because of --enable-small on
gcc 4.5 in Linaro.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-01 09:08:31 +01:00
Carl Eugen Hoyos
670d8ecfae lavf: Remove probesize32 and max_analyze_duration32 on version bump.
Add FF_API_PROBESIZE_32 to allow removing 32bit probesize and 32bit
max_analyze_duration after the next libavformat version bump.
2015-09-01 09:19:49 +02:00
Carl Eugen Hoyos
0cb6c0ec48 lavfi/scale: Pass src_range and dst_range to libswscale.
Fixes ticket #4812.
2015-09-01 09:17:26 +02:00
Rostislav Pehlivanov
555f513769 fate: update AAC tests to the new defaults
IS and PNS increase quality a ton so as a result the PSNR changed.
Disable the extensions and keep the tests separate such that there
will be no red herrings if one test fails.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-01 07:26:03 +01:00
Rostislav Pehlivanov
bc9927b854 aacenc: Enable Intensity Stereo by default
Since the changes made a few week ago (which were done more than a
month ago) the quality and stability of intensity stereo has been
notably good. There were some requests and wishes to have in on by
default and therefore it has been enabled. Should any regressions
arise changes will be made to preferably keep it operating rather
than just disabling it by default again.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-01 07:15:23 +01:00
Rostislav Pehlivanov
b7eb7cb3a1 aacenc: Enable Perceptual Noise Substitution by default
It has been in the current encoder in its current implementation
for quite some time now, so enable it by default. Will increase
quality at all bitrates, especially at low ones.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-01 07:13:33 +01:00
Rostislav Pehlivanov
a8ced764f7 fate: update AAC Encoder TNS test for the new changes
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-01 07:07:59 +01:00
Rostislav Pehlivanov
a0079aae00 aacenc: reorder resetting of cpe->common_window
Purely a cosmetic change, most of the zeroing of encoder resources
should happen at the top of the main loop.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-01 07:00:10 +01:00
Rostislav Pehlivanov
f3f6c6b928 aacenc_tns: rework coefficient quantization and filter application
This commit reworks the TNS implementation to a hybrid between what
the specifications say, what the decoder does and what's the best
thing to do.

The filter application function was copied from the decoder and
modified such that it applies the inverse AR filter to the
coefficients. The LPC coefficients themselves are fed into the
same quantization expression that the specifications say should
be used however further processing is not done, instead they're
converted to the form that the decoder expects them to be in
and are sent off to the compute_lpc_coeffs function exactly the
way the decoder does. This function does all conversions and will
return the exact coefficients that the decoder will generate, which
are then applied to the coefficients.
Having the exact same coefficients on both the encoder and decoder
is a must since otherwise the entire sfb's over which the filter
is applied will be attenuated.

Despite this major rework, TNS might not work fine on some audio
types at very low bitrates (e.g. sub 90kbps) as it can attenuate
some coefficients too much. Users are advised to experiment with
TNS at higher bitrates if they wish to use this tool or simply
wait for the implementation to be improved.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-01 06:44:07 +01:00
Rostislav Pehlivanov
d09f9c45c7 aacenc: allocate a larger buffer for the TNS LPC context
Turns out autocorrelating more than 750 coefficients at once
will cause a segfault, despite there being enough space to
hold an entire frame of samples into the buffer.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-01 06:40:12 +01:00
Rostislav Pehlivanov
0fc3a51353 lpc: add ff_lpc_calc_ref_coefs_f() function
This commit adds a function to get the reflection coefficients on
floating point samples. It's functionally identical to
ff_lpc_calc_ref_coefs() except it works on float samples and will
return the global prediction gain. The Welch window implementation
which is more optimized works only on int32_t samples so a slower
generic expression was used.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-01 06:34:50 +01:00
Rostislav Pehlivanov
a70ee2bdcd lpc: remove unused ff_lpc_calc_levinson() function
Not needed anymore, it was only used by the AAC TNS
encoder and was replaced with a more suitable function
in the following commit.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-01 06:32:35 +01:00
Rostislav Pehlivanov
139c2f93fd aacenctab: add tns_min_sfb[] to the encoder tables header
Needed for following commits. Contains the starting sfb for
every samplerate and window type.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-01 06:30:08 +01:00
Rostislav Pehlivanov
5ed5ca706f aacenc: populate tns_max_bands
Needed for the following commits.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-01 06:20:24 +01:00
Michael Niedermayer
63fb5a6aef 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>
2015-09-01 05:15:04 +02:00
Michael Niedermayer
b54e03c9dc 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>
2015-09-01 02:47:11 +02:00
Michael Niedermayer
a047ccbb9f avcodec/movtextdec: Free ftab_temp
Fixes memleak
Fixes: efe937780e95574250dabe07151bdc23/unknown_unknown_351_849_cov_3187578556_shellymanne.mov

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-31 23:44:39 +02:00
Michael Niedermayer
a1a32fdb0e avcodec/movtextdec: Make tx3g_ptr unsigned
Fixes integer overflow
Fixes: efe937780e95574250dabe07151bdc23/unknown_unknown_351_849_cov_3187578556_shellymanne.mov

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-31 23:44:39 +02:00
Luca Barbato
4dc9f00365 build: Skip libvpx.h if libvpx is not enabled 2015-08-31 21:37:18 +02:00
Luca Barbato
1a164e0a83 tools: Drop a stale header 2015-08-31 21:37:18 +02:00
Michael Niedermayer
87a11db220 dnxhddata: Double frame_size for cid 1260
Despite '417792' being reported in the binary decoder, the buffer at
encoding time needs to be bigger to avoid running out of space due to
interlace handling.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-08-31 17:14:08 +02:00
Vittorio Giovara
a686e58165 des: Add missing include 2015-08-31 17:06:32 +02:00
Peter B
baeb8f5f71 tests: Renamed pix_fmts wording in ffv1 test target name to match pix_fmt parameter.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-31 16:14:38 +02:00
Vittorio Giovara
87e5d8d78c ismindex: Use the correct abs() version 2015-08-31 15:24:56 +02:00
Vittorio Giovara
9a003fc388 lavr: Remove unused label 2015-08-31 15:24:41 +02:00
Vittorio Giovara
b0d94324d2 libfdk-aacdec: Remove unused variable 2015-08-31 15:24:30 +02:00
Andreas Cadhalpun
2ac5b6ce8d fate: use 'c' for setting the channel_layout
Without this fate-filter-join failes with
FF_API_GET_CHANNEL_LAYOUT_COMPAT disabled.

Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-08-31 13:49:46 +02:00
Donny Yang
51d4bca5a4 avcodec/pngdec: fully support the tRNS chunk
Signed-off-by: Donny Yang <work@kota.moe>
2015-08-31 09:52:46 +00:00
Hendrik Leppkes
d5911e6963 Merge commit 'c457bdebe7af643b380aa0f6add3cb4335d218dc'
* commit 'c457bdebe7af643b380aa0f6add3cb4335d218dc':
  checkasm: Fix floating point arguments on 64-bit Windows

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-31 10:08:18 +02:00
Hendrik Leppkes
ea1061e147 Merge commit 'b1abd2aaf91be249f24cb74db9c205d9e4ca9da6'
* commit 'b1abd2aaf91be249f24cb74db9c205d9e4ca9da6':
  vf_scale: Add an option to pass the scaler params

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-31 10:07:34 +02:00
Hendrik Leppkes
80a12be10f Merge commit 'c23999be134bde0a0554261a9043be7dbc01de0c'
* commit 'c23999be134bde0a0554261a9043be7dbc01de0c':
  avconv_opt: Add an option that lists all supported hwaccels

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-31 10:01:58 +02:00
Hendrik Leppkes
ad79fa471b Merge commit '629d4c5b4deee08bf3a4f3ab45fd4f8b76d7aff3'
* commit '629d4c5b4deee08bf3a4f3ab45fd4f8b76d7aff3':
  avconv_opt: Add missing comma

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-31 10:00:07 +02:00
Michael Niedermayer
1acd6311a1 swscale/utils: If cascaded contexts are used forward sws_setColorspaceDetails() to the first context
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-31 02:00:55 +02:00
Michael Niedermayer
8e05f9217a swscale/utils: Split scaling if possible and yuv->yuv with different matrixes is requested
This uses a RGB intermediate, a more optimal solution would be to perform the rematrixing
directly in subsampled YUV, this is quite a bit more complicated though

Fixes Ticket4805

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-31 02:00:19 +02:00
Michael Niedermayer
58a0b7f114 avfilter/vf_scale: If no output color matrix is specified, use the input
This should only affect yuv->yuv, and not change behavior

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-31 01:33:05 +02:00
Michael Niedermayer
5a00c30041 avfilter/vf_scale: Do not skip scale if the color matrix mismatches
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-31 01:33:05 +02:00
Carl Eugen Hoyos
75d9006475 avfilter/vf_scale: Do not skip scale if range mismatches
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-31 01:33:05 +02:00
Andreas Cadhalpun
c64060d56a fate: add -fflags +bitexact to the relevant targets
This fixes fate with FF_API_LAVF_BITEXACT disabled.

Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-08-30 23:31:10 +02:00
Andreas Cadhalpun
c34363acd2 mux: warn if the encoders bitexact flag is set, but not the muxers
Based-on-patch-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-08-30 23:30:09 +02:00
Andreas Cadhalpun
e6c20e214e avfilter: add missing FF_API_AVFILTERBUFFER guards
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-08-30 23:24:22 +02:00
Ganesh Ajjanagadde
0169c4dc81 avfilter/vf_separatefields: use the name 's' for the pointer to the private context
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-08-30 15:58:12 +00:00
Sven Dueking
67e87f8050 avcodec/qsv : Added look ahead rate control mode
Reviewed-by: Ivan Uskov <ivan.uskov@nablet.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-30 16:00:05 +02:00
Paul B Mahol
dead1964ea avfilter/vf_vectorscope: make color mode more useful
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-08-30 13:37:21 +00:00
Michael Niedermayer
fb42e77516 swresample/swresample-test: Make layouts static const
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-30 13:10:11 +02:00
Michael Niedermayer
ab800add7b avdevice/libdc1394: Make dc1394_frame_format and dc1394_frame_rate, static
These are not used outside nor are in installed headers

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-30 13:10:11 +02:00
Federico Tomassetti
6bcd3e0599 build: Add support for travis CI
It is useful to support a future staging branch and to have an
automated consistency check on github pull requests.
2015-08-30 12:54:05 +02:00
Michael Niedermayer
845fb3d4a5 avcodec/options: Make dummy_v?_encoder static
It does not need to be non static

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-30 12:02:07 +02:00
Paul B Mahol
a902bebdab doc/filters: mention all short names for vectorscope options
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-08-30 08:35:02 +00:00
Paul B Mahol
7516aa9a4a avfilter/vf_vectorscope: implement envelope support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-08-30 08:34:05 +00:00
Michael Niedermayer
4bd99f715d avcodec/snowenc: Support setting the iterative dia size separately
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-30 04:23:30 +02:00
Rostislav Pehlivanov
21bfeec27f aacenc_tns: do not limit the filter size
This was copied from the decoder, but is unneeded for the encoder.
tns_max_bands is unused and set to zero which zeroed out start, end
and size and thus no filter was actually applied.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-29 21:59:38 +01:00
Rostislav Pehlivanov
141d80ded7 lpc: rename ff_lpc_calc_levinsion to ff_lpc_calc_levinson
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-29 19:29:18 +01:00
Rostislav Pehlivanov
e924967fd5 aacenc_tns: fix out-of-bounds array access
Since the coefficients are stepped up to order + 1 it was possible
that it went over TNS_MAX_ORDER. Also just return in case the only
coefficient is less than the threshold.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-29 19:21:35 +01:00
Rostislav Pehlivanov
902ac9ca74 aacenc_tns: actually apply TNS filter to the coefficients
The encoder-side filter isn't that important. The PSNR
shouldn't change so the FATE test should still be fine.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-29 19:18:18 +01:00
Rostislav Pehlivanov
49854c56c2 aacenc: initialize LPC context with MAX_LPC_ORDER
The order should never go above TNS_MAX_ORDER (and thus cause
the context to be reinitialized) but this is just in case.

Also fix a comparison, since the coefficients are zero-indexed.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-29 19:15:52 +01:00
Rostislav Pehlivanov
0818705bf3 aacenc_tns: fix triggering an assertion with assert-level=2
It also made no sense to actually make the filter span the entire
window including the first band of the next window.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-29 19:01:59 +01:00
Ganesh Ajjanagadde
47b41feb72 avfilter/af_apad: use the name 's' for the pointer to the private context
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-08-29 16:38:38 +00:00
Paul B Mahol
16229fae9c avfilter/vf_vectorscope: add yet another mode
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-08-29 14:05:03 +00:00
Clément Bœsch
b48d8fa3ac avfilter: add allrgb
Signed-off-by: Nicolas George <george@nsup.org>
Signed-off-by: Clément Bœsch <u@pkh.me>
2015-08-29 14:57:52 +02:00
Rostislav Pehlivanov
8323d9b8af fate: adjust AAC encoder TNS test fuzziness
Tests fails on some ARM builds but it's close enough so it's okay.
NEON, half-precision floats, rounding errors, who knows.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-29 09:26:05 +01:00
Rostislav Pehlivanov
4ff897a536 fate: add a test for encoding AAC-Main prediction
This commit introduces a test for AAC-Main prediction
which was just reworked in this series of commits.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-29 07:00:54 +01:00
Rostislav Pehlivanov
fe12ba6f30 fate: reenable TNS test
Hopefully without errors like last time, but I'm prepared.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-29 07:00:17 +01:00
Rostislav Pehlivanov
f04d86c16a aacenc: remove TNS from the todo list
Pulses are already on the way so expect to see the list
gone in the close future.

TNS is already of sufficiently high quality to be enabled
by default (but isn't yet, so you too can help by testing!).

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-29 06:57:08 +01:00
Rostislav Pehlivanov
f20b67173c aacenc_tns: rework the way coefficients are calculated
This commit abandons the way the specifications state to
quantize the coefficients, makes use of the new LPC float
functions and is much better.

The original way of converting non-normalized float samples
to int32_t which out LPC system expects was wrong and it was
wrong to assume the coefficients that are generated are also
valid. It was essentially a full garbage-in, garbage-out
system and it definitely shows when looking at spectrals
and listening. The high frequencies were very overattenuated.
The new LPC function performs the analysis directly.

The specifications state to quantize the coefficients into
four bit index values using an asin() function which of course
had to have ugly ternary operators because the function turns
negative if the coefficients are negative which when encoding
causes invalid bitstream to get generated.

This deviates from this by using the direct TNS tables, which
are fairly small since you only have 4 bits at most for index
values. The LPC values are directly quantized against the tables
and are then used to perform filtering after the requantization,
which simply fetches the array values.

The end result is that TNS works much better now and doesn't
attenuate anything but the actual signal, e.g. TNS removes
quantization errors and does it's job correctly now.

It might be enabled by default soon since it doesn't hurt and
helps reduce nastyness at low bitrates.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-29 06:47:31 +01:00
Rostislav Pehlivanov
1cd5daee20 aac: remove now-unused redundant array
This commit removes the array which was made redundant with
the last commit. The current prediction system gets the
quantization error directly (and without the single-frame delay)
in the search_for_pred function.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-29 06:44:20 +01:00
Rostislav Pehlivanov
44ddee945a aacenc_pred: rework the way prediction is done
This commit completely alters the algorithm of prediction.
The original commit which introduced prediction was completely
incorrect to even remotely care about what the actual coefficients
contain or whether any options were enabled. Not my actual fault.

This commit treats prediction the way the decoder does and expects
to do: like lossy encryption. Everything related to prediction now
happens at the very end but just before quantization and encoding
of coefficients. On the decoder side, prediction happens before
anything has had a chance to even access the coefficients.

Also the original implementation had problems because it actually
touched the band_type of special bands which already had their
scalefactor indices marked and it's a wonder the asserion wasn't
triggered when transmitting those.

Overall, this now drastically increases audio quality and you should
think about enabling it if you don't plan on playing anything encoded
on really old low power ultra-embedded devices since they might not
support decoding of prediction or AAC-Main. Though the specifications
were written ages ago and as times change so do the FLOPS.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-29 06:34:08 +01:00
Rostislav Pehlivanov
949a4892fa aacenc: change FF_PROFILE_UNKNOWN to AAC-Main if prediction is enabled
This was missed when the original commits were done. FF_PROFILE_UNKNOWN
is what's in avctx->profile when no audio profile is specified.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-29 06:28:21 +01:00
Rostislav Pehlivanov
20962b567b lpc: create a simplified Levinson-Durbin LPC handling float samples
This commit simply duplicates the functionality of ff_lpc_calc_coefs()
for the case of a Levinson-Durbin LPC with the only difference being
that floating point samples are accepted and the resulting coefficients
are raw and unquantized.
The motivation behind doing this is the fact that the AAC encoder
requires LPC in TNS and LTP and converting non-normalized floating
point coefficients to int32_t using SWR and again back for the LPC
coefficients was very impractical.
The current LPC interfaces were designed for int32_t in mind possibly
because FLAC and ALAC use this type for most internal operations.
The mathematics in case of floats remains of course identical.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-29 06:14:13 +01:00
Rostislav Pehlivanov
f55cc57911 aac: move the TNS tables from aacdectab to the shared aactab
This commit simply moves the TNS tables to a more appropriate
aactab.h since then they can be accessed by both the decoder
and encoder.

The encoder _shouldn't_ normally need the tables since the
specs describe a specific quantization process, but the exact
reason for this can be seen in the TNS commit following.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-29 06:07:12 +01:00
Philip Langdale
91f1115a0e avcodec/vc1dec: Re-order init to avoid initting hwaccel too early
At least for vdpau, the hwaccel init code tries to check the video
profile and ensure that there is a matching vdpau profile available.

If it can't find a match, it will fail to initialise.

In the case of wmv3/vc1, I observed initialisation to fail all the
time. It turns out that this is due to the hwaccel being initialised
very early in the codec init, before the profile has been extracted
and set.

Conceptually, it's a simple fix to reorder the init code, but it gets
messy really fast because ff_get_format(), which is what implicitly
trigger hwaccel init, is called multiple times through various shared
init calls from h263, etc. It's incredibly hard to prove to my own
satisfaction that it's safe to move the vc1 specific init code
ahead of this generic code, but all the vc1 fate tests pass, and I've
visually inspected a couple of samples and things seem correct.

Signed-off-by: Philip Langdale <philipl@overt.org>
2015-08-28 19:11:55 -07:00
Michael Niedermayer
628a73f8f3 ffmpeg: force 128k default audio bitrate if nothing is specified and there is no specific default
This prevents breaking existing command lines in case the "ab" default is removed from libavcodec

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-28 23:07:12 +02:00
Paul B Mahol
777df1ff74 avfilter/vf_dejudder: use the name 's' for the pointer to the private context
This is shorter and consistent across filters.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-08-28 19:05:19 +00:00
Ronald S. Bultje
7e12a54251 ffserver: use -b instead of -ab for setting audio bitrate. 2015-08-28 14:59:58 -04:00
Ronald S. Bultje
2fb593dcb9 Put remaining pieces of CODEC_FLAG_EMU_EDGE under FF_API_EMU_EDGE.
The amv one probably looks suspicious, but since it's an intra-only
codec, I couldn't possibly imagine what it would use the edge for,
and the vsynth fate result doesn't change, so it's probably OK.
2015-08-28 14:40:59 -04:00
Philip Langdale
1e50f953fa Changelog: Add VDPAU HEVC to the list
Signed-off-by: Philip Langdale <philipl@overt.org>
2015-08-28 08:16:39 -07:00
Paul B Mahol
9f2fa95bd8 avfilter/vf_histogram: 9 and 10 bit depth support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-08-28 14:15:17 +00:00
Vittorio Giovara
e88103a7f9 Bump major versions of all libraries
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-08-28 16:04:28 +02:00
Vittorio Giovara
4e649debcf Postpone API-incompatible changes until the next bump 2015-08-28 16:04:28 +02:00
Vittorio Giovara
3d89373fae lavu: Drop deprecated private lls functions
Deprecated in 02/2013.
2015-08-28 16:04:27 +02:00
Vittorio Giovara
2f9b652e8c lavu: Drop deprecated context size variables
Deprecated in 10/2012.
2015-08-28 16:04:27 +02:00
Vittorio Giovara
8f12ef9860 lavu: Drop deprecated duplicated AVFrame/AVCodecContext parameters
Deprecated in 10/2012.
2015-08-28 16:04:27 +02:00
Vittorio Giovara
bf7114b6ca lavu: Drop deprecated AV_CPU_FLAG_MMX2 symbol
Deprecated in 11/2012.
2015-08-28 16:04:27 +02:00
Vittorio Giovara
2d40968dd3 lavu: Drop deprecated audioconvert.h header
Deprecated in 11/2012.
2015-08-28 16:04:27 +02:00
Vittorio Giovara
cdfe45ad37 lavu: Drop deprecated av_reverse function
Deprecated in 10/2012.
2015-08-28 16:04:27 +02:00
Vittorio Giovara
2f8cbbc962 lavu: Drop deprecated external access to AVPixFmtDescriptor table
Deprecated in 10/2012.
2015-08-28 16:04:27 +02:00
Vittorio Giovara
183db02a51 lavu: Drop deprecated old_pix_fmt.h and related code
Deprecated in 10/2012.
2015-08-28 16:04:27 +02:00
Vittorio Giovara
cad40a3833 lavc: Drop deprecated deinterlace module
Deprecated in 03/2013.
2015-08-28 16:04:19 +02:00
Vittorio Giovara
069713aa4b lavc: Drop deprecated thread opaque and codec pkt
These fields were never part of the public API.
2015-08-28 16:01:17 +02:00
Vittorio Giovara
9f90b24877 lavc: Drop deprecated get_buffer related functions
Deprecated in 11/2012.
2015-08-28 16:01:16 +02:00
Vittorio Giovara
01bcc2d5c2 lavc: Drop deprecated destruct_packet related functions
Deprecated in 10/2012.
2015-08-28 16:01:16 +02:00
Vittorio Giovara
dc70c19476 lavc: Drop deprecated request_channels related functions
Deprecated in 04/2011.
2015-08-28 16:01:16 +02:00
Vittorio Giovara
f6974fe651 lavfi: Drop deprecated AVFilterBuffer* code
Deprecated in 11/2012.
2015-08-28 16:01:16 +02:00
Vittorio Giovara
e65e4cbbda lavfi: Drop deprecated *_count suffixed variables
Deprecated in 06/2012.
2015-08-28 16:01:13 +02:00
Harshit Mittal
53bf32fa42 doc/examples/filtering_video: better demo ffmpeg filters; demos chaining the filters
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-28 12:53:35 +02:00
Carl Eugen Hoyos
24e0b14c4f Changelog: Clarify that the new asf demuxer is optional. 2015-08-28 11:08:28 +02:00
Vittorio Giovara
86e5056575 lavfi: Drop deprecated public AVFilterPad struct
Deprecated in 06/2012.
2015-08-28 11:06:37 +02:00
Vittorio Giovara
11b2eed43e lavr: Drop deprecated context reinitialization if resampling was not enabled
Deprecated in 11/2012.
2015-08-28 10:55:36 +02:00
Vittorio Giovara
9d58639e27 sws: Drop deprecated SWS_CPU_CAPS defines
Deprecated in 07/2012.
2015-08-28 10:55:26 +02:00
Henrik Gramner
c457bdebe7 checkasm: Fix floating point arguments on 64-bit Windows
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-08-28 09:54:54 +02:00
Thilo Borgmann
2392da164a Changelog: Mention the change of the default webm codecs.
Signed-off-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
2015-08-28 06:05:41 +02:00
Carl Eugen Hoyos
b009d5b1f7 configure: Do not let the webm muxer suggest external libraries.
This can fail as seen on fate and the usefulness of the suggestion is limited.
2015-08-28 06:03:58 +02:00
Donny Yang
51ca703222 apng: Support inter-frame compression
The current algorithm is just "try all the combinations, and pick the best".
It's not very fast either, probably due to a lot of copying, but will do for
an initial implementation.

Signed-off-by: Donny Yang <work@kota.moe>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-28 04:25:15 +02:00
Michael Niedermayer
3322f0d415 avcodec/dnxhddata: Fix inconsistent table entry
Fixes segfault
Fixes Ticket4809

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-28 04:07:42 +02:00
rogerdpack
832b4a4a43 configure: Print out enabled programs
Better message that ffplay is not going to be built by printing out what
will be built.

Based on a patch by Moritz Barsnick.

Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
Reviewed-by: Ganesh Ajjanagadde <gajjanag@mit.edu>
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2015-08-27 16:26:54 -07:00
Michael Niedermayer
e2b19a533d avformat/segment: atomically update list if possible
Fixes Ticket4802

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-28 00:09:56 +02:00
Zhang Rui
92d378067e ffplay: remove unused include libavutil/colorspace.h
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-28 00:09:42 +02:00
Ganesh Ajjanagadde
9ba511d5d3 avfilter/af_amerge: use the name 's' for the pointer to the private context
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-08-27 21:01:01 +00:00
Paul B Mahol
15f4b3db58 avfilter: add framerate video filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-08-27 20:00:36 +00:00
Stefano Sabatini
57cd2f7777 lavf/mpegenc: provide better feedback in case of invalid media type 2015-08-27 18:07:43 +02:00
lummax
0c800b2761 avcodec: Assert on codec->encode2 in encode_audio2
Assert on `avctx->codec->encode2` to avoid a SEGFAULT on the subsequent
function call.

avcodec_encode_video2() uses a similar assertion.
Calling the wrong function on a stream is a serious inconsistency
which could at other places be potentially dangerous and exploitable,
it is thus safer to stop execution and not continue with such
inconsistency after returning an error.

Commit-message-extended-by commiter
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-27 17:26:24 +02:00
Timo Rothenpieler
1dd854e10f vaapi: Add hevc hwaccel support
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2015-08-27 17:05:44 +02:00
Ganesh Ajjanagadde
bfe525e632 configure: warn if GCC 4.2 is being used
The wiki, Ticket1464, and Ticket3970 warn about the usage of GCC 4.2.
This fixes Ticket3970.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-08-27 16:56:34 +02:00
Carl Eugen Hoyos
0382c546cc lavc: Describe eia_608 as text subtitles. 2015-08-27 16:42:39 +02:00
Michael Niedermayer
6701c92fa4 avcodec/libopusenc: Fix infinite loop on flushing after 0 input
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-27 12:44:31 +02:00
Ganesh Ajjanagadde
f174bfea86 configure: remove unused apply() function
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-27 11:47:52 +02:00
Hendrik Leppkes
f5258a7d16 Merge commit 'e176639bcbf4b580edb462a6b0650e53cd5e3c04'
* commit 'e176639bcbf4b580edb462a6b0650e53cd5e3c04':
  webm: Explicitly select libvpx, libopus and libvorbis encoders

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-27 09:53:07 +02:00
Hendrik Leppkes
ebff705c2c Merge commit '413d4e54a9bffe2d0afdc6d8a80f516e5df6a421'
* commit '413d4e54a9bffe2d0afdc6d8a80f516e5df6a421':
  nvenc: Properly free the fifos

Not merged, ffmpeg's nvenc doesn't use these fifos.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-27 09:50:53 +02:00
Hendrik Leppkes
540f280098 Merge commit '2157df425bd909854fd4afcec4aa3311d8a3b31b'
* commit '2157df425bd909854fd4afcec4aa3311d8a3b31b':
  hlsenc: Support outputting specific versions

Not merged, the version is auto-selected in ffmpeg based on enabled features.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-27 09:49:21 +02:00
Hendrik Leppkes
427598a2f4 Merge commit 'd68705c9756e6558c8e28d90b4c364f25ba72083'
* commit 'd68705c9756e6558c8e28d90b4c364f25ba72083':
  dnxhddata: Add tables for missing DNx100 profiles

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-27 09:40:06 +02:00
Hendrik Leppkes
f30132f9c4 Merge commit 'a4615572b576d3ef7ee2f11529d935e61bf4ebb8'
* commit 'a4615572b576d3ef7ee2f11529d935e61bf4ebb8':
  dnxhddata: Merge a few duplicated RUN tables

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-27 09:31:52 +02:00
Hendrik Leppkes
f19a283867 Merge commit 'efbfb1ad1112cea79bef51fd9f30c0c94735abfc'
* commit 'efbfb1ad1112cea79bef51fd9f30c0c94735abfc':
  dnxhddata: Group together RUN-related tables

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-27 09:29:54 +02:00
Hendrik Leppkes
305f461754 Merge commit '403ea4ac7289ac39229452b6b5e2f8ebcc00f2a1'
* commit '403ea4ac7289ac39229452b6b5e2f8ebcc00f2a1':
  dnxhddata: Merge a few duplicated DC tables

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-27 09:27:02 +02:00
Hendrik Leppkes
3b0af76c1b Merge commit '5e129ed655bff5b6d90355c0b713d7aaba3898ec'
* commit '5e129ed655bff5b6d90355c0b713d7aaba3898ec':
  dnxhddata: Group together DC-related tables

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-27 09:26:14 +02:00
Hendrik Leppkes
3f491224fe Merge commit 'd3ae4c65942d67a294fd56eabbbdcce6756fab5f'
* commit 'd3ae4c65942d67a294fd56eabbbdcce6756fab5f':
  dnxhddata: List the reused tables in a comment

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-27 09:19:41 +02:00
Hendrik Leppkes
bd074bde02 Merge commit 'fdd021884d5c06fb9ad65cb0040bb5717a7b084b'
* commit 'fdd021884d5c06fb9ad65cb0040bb5717a7b084b':
  dnxhddata: Keep a single CID in the table names

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-27 09:17:37 +02:00
Michael Niedermayer
81a8701eb5 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>
2015-08-27 04:28:21 +02:00
Timothy Gu
da0e76955a ffmpeg_opt: Add -hwaccels option that lists all supported hwaccels 2015-08-26 18:46:20 -07:00
Carl Eugen Hoyos
33908f0837 lavf/mov: Support unusual alac files without frma and alac atoms.
Fixes ticket #4747.
2015-08-27 03:29:29 +02:00
Carl Eugen Hoyos
7f9656f10d lavc/dnxhdenc: Fix ibias default.
Fixes a regression since a8ab64d2 reported by Rens Dijkshoorn, rens offlinemedia nl.
2015-08-27 02:59:43 +02:00
Paul B Mahol
319440e54f avfilter: add hstack & vstack filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-08-26 11:16:51 +00:00
Paul B Mahol
0190c372ef avfilter/framesync: allocate FFFrameSyncIn internally
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-08-26 11:12:23 +00:00
Paul B Mahol
a16251a6d0 avfilter/vf_histogram: fix bug in checking pixel format flags
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-08-26 11:11:26 +00:00
Paul B Mahol
3fbc9deb95 avfilter/vf_vectorscope: fix bug in checking pixel format flags
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-08-26 11:11:26 +00:00
Luca Barbato
b1abd2aaf9 vf_scale: Add an option to pass the scaler params
Reported-By: zehan@magicpony.technology
2015-08-26 12:13:23 +02:00
Ganesh Ajjanagadde
6455e4fb5b configure: do not fork off grep subprocess while testing for whitespace
grep is not necessary for the functionality.
This avoids an unnecessary fork.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-26 11:53:15 +02:00
Paul B Mahol
47df871645 avfilter/af_aphaser: use the name 's' for the pointer to the private context
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-08-26 09:49:02 +00:00
Timothy Gu
c23999be13 avconv_opt: Add an option that lists all supported hwaccels
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-08-26 05:18:43 +02:00
Timothy Gu
629d4c5b4d avconv_opt: Add missing comma
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-08-26 05:03:14 +02:00
Paul B Mahol
e030d3c61f avfilter/vf_blend: use the name 's' for the pointer to the private context
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-08-25 18:16:55 +00:00
James Almer
4c39892b67 avcodec/vdpau: fix compilation of mpeg1/mpeg4/vc1 decoders when h264 is disabled
Tested-by: wm4 <nfxjfg@googlemail.com>
Tested-by: Philip Langdale <philipl@overt.org>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-08-25 23:58:54 -03:00
Michael Niedermayer
dda6925357 avformat/segment: Do not free the filename twice
Bug introduced in 83a508cda5115c61b456aeb227bf770d61010961

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-26 03:50:52 +02:00
Timothy Gu
68a9c8ac77 swscale: Silence an unused variable warning
Also remove a pair of extraneous ifdeffery.
2015-08-25 17:40:06 -07:00
Timothy Gu
b144008c1b ffmpeg_opt: Add missing comma 2015-08-25 16:49:51 -07:00
Timothy Gu
0c6a92a447 matroskaenc: Fix indentation
Found-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-25 16:03:49 -07:00
Stephan Holljes
4f860848ab lavf/http: Fix parsing http request data to not read over '\0'.
Signed-off-by: Stephan Holljes <klaxa1337@googlemail.com>
2015-08-25 19:51:13 +02:00
wm4
94a4be85a1 configure: aac encoder requires lpc
Fixes compilation with --disable-encoders --enable-encoder=aac
2015-08-25 19:48:11 +02:00
Luca Barbato
e176639bcb webm: Explicitly select libvpx, libopus and libvorbis encoders
And update the preference for the newer codecs now that the libraries
seem stable and widespread enough.

Bug-Id: 695
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-08-25 19:47:43 +02:00
Luca Barbato
413d4e54a9 nvenc: Properly free the fifos
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-08-25 19:47:43 +02:00
Luca Barbato
2157df425b hlsenc: Support outputting specific versions
Right now only version 2 and version 3 are supported.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-08-25 19:43:58 +02:00
Henrik Gramner
33a58d7bf4 checkasm: Fix floating point arguments on 64-bit Windows 2015-08-25 19:34:46 +02:00
Vesselin Bontchev
4cd1d2314b avformat/aa: use correct format specifier in sscanf
This demuxer was broken on a large number of platforms due to usage of wrong
format specifier in sscanf. This patch fixes the problem, and also adds some
debug logging to reduce future debugging pain.
2015-08-25 12:44:20 +00:00
Carl Eugen Hoyos
83a508cda5 lavf/segment: Fix memleak.
Reviewed-by: Stefano Sabatini
Reviewed-by: Ganesh Ajjanagadde
2015-08-25 13:36:24 +02:00
Michael Niedermayer
d65b9114f3 avformat/file: Check for lstat() instead of dirent.h
Fixes build on mingw

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-25 13:08:44 +02:00
Paul B Mahol
1b1c4030ea fate: add tests for vectorscope filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-08-25 10:13:03 +00:00
Carl Eugen Hoyos
91619d195b lavf/dnxhd: Autodetect more valid files. 2015-08-25 12:07:38 +02:00
Mariusz Szczepańczyk
1f4c62e84e lavf/file: check for dirent.h support
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-25 02:06:06 +02:00
Lukasz Marek
d39a9b01e2 lavf/file: implement directory listing callbacks
Signed-off-by: Lukasz Marek <lukasz.m.luki2 at gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-25 02:04:34 +02:00
Ganesh Ajjanagadde
060102389e configure: do not fork off grep subprocess in probe_cc
grep is not required for the functionality in this instance.
This avoids an unnecessary fork, and also avoids a duplicated dumpversion call.
Furthermore, it also corrects behavior when no minor version number is present, see e.g
https://github.com/joyent/node/pull/25671.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-25 00:31:25 +02:00
Michael Niedermayer
fa9af304f0 avcodec/mjpegdec: Remove message asking for a non mod 16 AMV sample
Ticket4770 contains such a sample and it decodes fine

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-24 19:50:01 +02:00
Paul B Mahol
2f731d46f0 avfilter/vf_vectorscope: add options with shorter name
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-08-24 14:21:26 +00:00
Paul B Mahol
c34c050303 avfilter/vf_vectorscope: make intensity user configurable
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-08-24 14:19:30 +00:00
Vittorio Giovara
d68705c975 dnxhddata: Add tables for missing DNx100 profiles
1440x1080@8 progressive (1259) and interlaced (1260).

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-08-24 13:20:10 +02:00
Vittorio Giovara
a4615572b5 dnxhddata: Merge a few duplicated RUN tables 2015-08-24 13:20:04 +02:00
Vittorio Giovara
efbfb1ad11 dnxhddata: Group together RUN-related tables
This helps in finding duplicates.
2015-08-24 13:19:58 +02:00
Vittorio Giovara
403ea4ac72 dnxhddata: Merge a few duplicated DC tables 2015-08-24 13:19:43 +02:00
Vittorio Giovara
5e129ed655 dnxhddata: Group together DC-related tables
This helps in finding duplicates.
2015-08-24 13:19:36 +02:00
Vittorio Giovara
d3ae4c6594 dnxhddata: List the reused tables in a comment 2015-08-24 13:19:28 +02:00
Vittorio Giovara
fdd021884d dnxhddata: Keep a single CID in the table names
Use a comment to list the reused tables, since it's more flexible than a
table name to keep information like this. The list will expand in later
commits.
2015-08-24 13:19:06 +02:00
Michael Niedermayer
ee155c18a2 avformat/hevc: Check num_long_term_ref_pics_sps to avoid potentially long loops
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-24 13:04:38 +02:00
Arthur Grant
781efd0741 avformat/hevc: Fix parsing errors
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-24 12:44:34 +02:00
Hendrik Leppkes
fd2977d85f Merge commit 'e23f84d9652474353d8bbc42787a56ec1991908f'
* commit 'e23f84d9652474353d8bbc42787a56ec1991908f':
  channel_layout: Add a 16channel default layout

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-24 10:40:24 +02:00
Hendrik Leppkes
d2d6ca6f98 Merge commit 'd5eab59a5373b22aa52d6053a8e853e95a6e131e'
* commit 'd5eab59a5373b22aa52d6053a8e853e95a6e131e':
  aac: Make sure to set err on the failure path

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-24 10:39:08 +02:00
Hendrik Leppkes
87ee98c898 Merge commit '167ea1fbf15ecefa30729f9b8d091ed431bf43bd'
* commit '167ea1fbf15ecefa30729f9b8d091ed431bf43bd':
  xavs: Do not try to set the bitrate tolerance without a bitrate

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-24 10:37:50 +02:00
Hendrik Leppkes
0f72dfeb5f Merge commit '61d8fa2a1ab76f0f3ac1442faa104ace4b29decc'
* commit '61d8fa2a1ab76f0f3ac1442faa104ace4b29decc':
  h264: Fix faulty call to avpriv_request_sample

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-24 10:36:27 +02:00
Hendrik Leppkes
a4c13f95fb Merge commit 'f9ab4fe1f7c1e9d410ca5ee2c9ff8d2892aad068'
* commit 'f9ab4fe1f7c1e9d410ca5ee2c9ff8d2892aad068':
  h264: Discard currently unsupported registered sei

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-24 10:36:07 +02:00
Hendrik Leppkes
59cae1916e Merge commit '47b447aaff1bc30ba986ca757346a2c5c95b786a'
* commit '47b447aaff1bc30ba986ca757346a2c5c95b786a':
  imgutils: Fix a typo in avcodec_get_pix_fmt_loss

Not merged, this code was refactored and moved to avutil.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-24 10:34:38 +02:00
Hendrik Leppkes
0cbae3763d Merge commit 'd8ebb6157d12183ed3fc987cd2ba18b404758828'
* commit 'd8ebb6157d12183ed3fc987cd2ba18b404758828':
  hevcdsp: fix a function name

Not merged, ffmpeg has no function of this name anymore.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-24 10:32:34 +02:00
Hendrik Leppkes
001ea567ff Merge commit 'a1926a29fb4325afa46842883f197c74d4535c36'
* commit 'a1926a29fb4325afa46842883f197c74d4535c36':
  hevc: avoid invalid shifts of negative values

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-24 10:29:26 +02:00
Hendrik Leppkes
fea156367d Merge commit '515b69f8f8e9a24cfaee95d8c1f63f265d8582fe'
* commit '515b69f8f8e9a24cfaee95d8c1f63f265d8582fe':
  checkasm: Explicitly declare function prototypes

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-24 10:27:39 +02:00
Hendrik Leppkes
38b42250dc Merge commit 'e13da244f41610ee073b2f72bcf62b60fa402bb5'
* commit 'e13da244f41610ee073b2f72bcf62b60fa402bb5':
  checkasm: x86: properly save rdx/edx in checked_call()

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-24 10:26:29 +02:00
Hendrik Leppkes
11014dd3d4 Merge commit 'faa3f17a76333b672ce4a40cf80f678ab68bdbae'
* commit 'faa3f17a76333b672ce4a40cf80f678ab68bdbae':
  fate: test only demuxing in asf-repldata

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-24 10:25:41 +02:00
Paul B Mahol
c864de3c8f fate: add tests for waveform filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-08-24 07:13:06 +00:00
Ludmila Glinskih
4a9bc12fe7 fate: add api-band-test
Works only for flv, h263 and huffyuv decoders.
Makes only one pass through the file (this should be changed to two passes)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-24 03:54:55 +02:00
Andreas Cadhalpun
1bf76cd2db rtpenc_chain: also copy AVFMT_FLAG_BITEXACT to new AVFormatContext
Otherwise it is impossible to make '-movflags +rtphint' bitexact after
FF_API_LAVF_BITEXACT has been disabled.

Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-08-23 23:35:38 +02:00
Andreas Cadhalpun
01594ebb07 options_table: fix compatibility with MSVC
Including libavutil/internal.h breaks compilation of doc/print_options.c
with MSVC due to linking avpriv_strtod/avpriv_snprintf.

This reverts part of commit 095347f.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-08-23 23:35:14 +02:00
Andreas Cadhalpun
03e71cccba avcodec: remove FF_API_LOWRES around max_lowres
Reviewed-by: wm4 <nfxjfg@googlemail.com>
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-08-23 23:34:02 +02:00
Ganesh Ajjanagadde
24e6729a04 swresample/dither: use integer arithmetic
This fixes a -Wabsolute-value reported by clang 3.5+ complaining about misuse of fabs() for integer absolute value.
An additional benefit is the removal of floating point calculations.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-23 23:19:31 +02:00
Luca Barbato
e23f84d965 channel_layout: Add a 16channel default layout
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-08-23 21:44:38 +02:00
Luca Barbato
d5eab59a53 aac: Make sure to set err on the failure path
Bug-Id: CID 1308153
2015-08-23 21:44:38 +02:00
Luca Barbato
167ea1fbf1 xavs: Do not try to set the bitrate tolerance without a bitrate
Avoid a division by zero.

Bug-Id: CID 1257655
2015-08-23 21:44:38 +02:00
Ganesh Ajjanagadde
9aaac04107 avdevice/lavfi: fix self assignment warning
FAIL(ret) expands to statements including a silly ret=ret.
This triggers a -Wself-assign on confirmed clang 3.6, and so we fix it.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-23 20:00:03 +02:00
Paul B Mahol
6be5b05fb1 avfilter/vf_histogram: levels: support more input pixel formats
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-08-23 10:13:52 +00:00
Michael Niedermayer
b4d68e7cdb avformat: Remove use of AVFrac and AVStream->pts
Move field to internal part of AVStream and struct to internal.h

Reviewed-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-23 04:16:02 +02:00
Ganesh Ajjanagadde
6638e4a950 avcodec/x86/mpegaudiodsp: correct asm guards
Fixes -Wunused-function warnings when compiling with --disable-yasm on x86.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-23 02:39:21 +02:00
Rostislav Pehlivanov
4f396a6f30 fate: temporarily disable AAC TNS test
Fixing it will take a bit longer, so just suspend the test.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-23 01:04:06 +01:00
Rostislav Pehlivanov
f2ba60d4e9 aacenc_tns: temporarily disable
Due to segfaults on some platforms, fix will take a bit longer.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-22 23:49:59 +01:00
Ganesh Ajjanagadde
eb3cfa7dd3 swscale/alphablend: fix pointer cast
Commit 7c72a4bbd3a0ca421c7419abad2fb65aa713dd8b was slightly wrong

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-08-22 20:11:48 +00:00
Paul B Mahol
14f97bb2bc avfilter: add waveform monitor filter 2015-08-22 19:48:42 +00:00
Paul B Mahol
e95193f5ea avfilter/vf_vectorscope: add more pixel formats
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-08-22 18:04:12 +00:00
Andreas Cadhalpun
095347ffe4 disable deprecation warnings in deprecated code
Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-08-22 19:16:14 +02:00
Andreas Cadhalpun
805f38b4d6 fate: replace deprecated request_channels with request_channel_layout
This fixes fate with FF_API_REQUEST_CHANNELS disabled.

Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-08-22 19:16:13 +02:00
Andreas Cadhalpun
9acf5341d6 openal-dec: replace av_destruct_packet with av_free_packet
Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-08-22 19:16:13 +02:00
Andreas Cadhalpun
c363843a53 add missing FF_API_DESTRUCT_PACKET guards
Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-08-22 19:16:13 +02:00
Timothy Gu
5f1c37aefb avcodec: Fix make checkheaders 2015-08-22 10:14:17 -07:00
Timothy Gu
c5d9e9b354 doxygen: Remove lavu_internal group
There is no use in an internal group for a public API documentation.
2015-08-22 10:07:05 -07:00
Timothy Gu
5dee7a32d7 git-howto: Various copy edits 2015-08-22 09:16:20 -07:00
Timothy Gu
f0af25ae11 ffv1: Add missing ff_ prefixes 2015-08-22 08:36:20 -07:00
Timothy Gu
ee4cc80653 vp9dsp: Add missing ff_ prefixes 2015-08-22 08:36:20 -07:00
Timothy Gu
e10ef3289d aacsbr_fixed: Make fixed_{exp,log}_table static const 2015-08-22 08:36:20 -07:00
Timothy Gu
1597dba86a aacdec_fixed: Make exp2tab static const 2015-08-22 08:36:20 -07:00
Timothy Gu
8d9fe002b3 fmtconvert: Remove float_interleave*
They were not public or used anywhere.
2015-08-22 08:29:10 -07:00
Timothy Gu
0aa9bbbc37 version: Fix two more typos
Same as cafba99b5146cf10d60ceed4257f6e82380a020e but applied to
lavf and lavu.
2015-08-22 08:09:03 -07:00
Rostislav Pehlivanov
7adb6d5aab aacenc_quantization: replace copysign() with a ternary operator
This commit removes the last thing a Windows environment can
complain about the AAC encoder code. Leftover from an old revision.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-22 08:50:41 +01:00
Rostislav Pehlivanov
ae1b9c9754 fate: added PNS, TNS and IS tests for the AAC encoder
This commit adds tests for the PNS, TNS and IS functionality
of the encoder.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-22 08:12:20 +01:00
Rostislav Pehlivanov
2c94e45fad aacenc_is: rename struct to follow guidelines
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-22 06:47:14 +01:00
Timothy Gu
e8279880dc acenctab: Fix merge conflict
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-22 06:16:31 +01:00
Timothy Gu
21dd5279c3 aacenc: Add missing ff_ prefixes
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Reviewed-by: Ganesh Ajjanagadde <gajjanag@mit.edu>
2015-08-22 06:11:23 +01:00
Timothy Gu
d4401a9e0d aacenc: Harmonize multiple inclusion guards
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Reviewed-by: Ganesh Ajjanagadde <gajjanag@mit.edu>
2015-08-22 04:56:36 +01:00
Timothy Gu
15ebc7787c aacenctab: Add missing ff_ prefixes
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Reviewed-by: Ganesh Ajjanagadde <gajjanag@mit.edu>
2015-08-22 04:30:15 +01:00
Timothy Gu
5cbcf2b24d aacenctab: Use FF_ARRAY_ELEMS
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Reviewed-by: Ganesh Ajjanagadde <gajjanag@mit.edu>
2015-08-22 04:07:09 +01:00
Ganesh Ajjanagadde
531b0a316b avutil/x86/asm: rename REG_SP to REG_sp
REG_SP is defined by Solaris system headers.
This fixes a sea of warnings while building on Solaris:
http://fate.ffmpeg.org/report.cgi?time=20150820233505&slot=x86-opensolaris-gcc4.3

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-22 02:56:53 +02:00
Luca Barbato
61d8fa2a1a h264: Fix faulty call to avpriv_request_sample
Broken in f9ab4fe1f7c1e9d410ca5ee2c9ff8d2892aad068
2015-08-22 01:42:19 +02:00
Rostislav Pehlivanov
670dfda143 aacenc_tns: remove unused header
Thanks to @nevcairiel for pointing this one out.
Another thing which stopped msvc from compiling.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-21 23:36:09 +01:00
Clément Bœsch
cafba99b51 avcodec/version: fix 2 recently introduced typo 2015-08-21 19:33:28 -03:00
Rostislav Pehlivanov
5df166e430 aacenc_tns: re-enable coefficient compression
This time in a platform/compiler-generic way.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-21 21:36:06 +01:00
Rostislav Pehlivanov
88a5f93f62 aacenc: treat unknown profile as AAC-LC
When the encoder is ran without specifying -profile:a
the default avctx->profile value is -99 (FF_PROFILE_UKNOWN),
which used to be treated as AAC-LC.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-21 21:28:20 +01:00
Rostislav Pehlivanov
fb0c295cc3 aacenc_tns: temporarily disable coefficient compression
Hotfix to deal with msvc. Sane compilers lack POSIX ffs().
It only saves a single bit or so and isn't worth it that much.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-21 20:55:46 +01:00
Rostislav Pehlivanov
58cd5386e8 MAINTAINERS: add myself as an AAC encoder maintainer
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-21 19:44:15 +01:00
Rostislav Pehlivanov
76b81b10d9 aacenc: implement the complete AAC-Main profile
This commit finalizes AAC-Main profile encoding support
by implementing all mandatory and optional tools available
in the specifications and current decoders.

The AAC-Main profile reqires that prediction support be
present (although decoders don't require it to be enabled)
for an encoder to be deemed capable of AAC-Main encoding,
as well as TNS, PNS and IS, all of which were implemented
with previous commits or earlier of this year.

Users are encouraged to test the new functionality using either
-profile:a aac_main or -aac_pred 1, the former of which will enable
the prediction option by default and the latter will change the
profile to AAC-Main. No other options shall be changed by enabling
either, it's currently up to the users to decide what's best.

The current implementation works best using M/S and/or IS,
so users are also welcome to enable both options and any
other options (TNS, PNS) for maximum quality.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-21 19:38:05 +01:00
Rostislav Pehlivanov
a1c487e921 aacenc_tns: implement temporal noise shaping
This commit implements temporal noise shaping support in the
encoder, along with an -aac_tns option to toggle it on or off
(off by default for now). TNS will increase audio quality
and reduce quantization noise by applying a multitap FIR filter
across allowed coefficients and transmit side information to the
decoder so it could create an inverse filter.

Users are encouraged to test the new functionality by enabling
-aac_tns 1 during encoding.

No major bugs are observable at this time so after a while if no
new problems appear and if the current implementation is deemed
of high enough quality and stability it will be enabled by default,
possibly at the same time the encoder has its experimental flag
removed and becomes the standard aac encoder in ffmpeg.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-21 19:27:38 +01:00
Rostislav Pehlivanov
eab12d072e aacenc: do not reject AAC-Main profile
This commit permits for the use of the Main profile
in encoding. The functionality of that profile will
be added in the commits following. By itself, this
commit does not alter anything.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-21 19:20:22 +01:00
Rostislav Pehlivanov
d1ca7142ac aaccoder: move the Intensity Stereo implementation out
This commit moves the intensity stereo implementation
out from aaccoder and into a separate file. This was
possible using the previous commits.

This commit also drastically improves the IS implementation
by making it phase invariant e.g. it will always choose the
best possible phase regardless of whether M/S coding is on
or most of the coefficients have identical phases.
This also increases the quality and reduces any distortions
introduced by enablind intensity stereo.

Users are encouraged to test it out using the -aac_is 1
parameter as it has always been.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-21 19:13:26 +01:00
Rostislav Pehlivanov
860dbe0275 aaccoder_mips: update function definitions
This commit updates the function definitions in the aaccoder_mips.c
file. This was broken around a month or so ago with the addition
of the rounding argument.
The previous commit in this series also introduced a separate array
to put the quantization error in, this also needed to be updated,
albeit non-functional, in the MIPS optimized aaccoder file.

Credits for the rounding goes to Claudio Freire.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-21 19:00:15 +01:00
Rostislav Pehlivanov
43b378a0d3 aaccoder: move the quantization functions to a separate file
This commit moves the quantizer to a separate header file.
This allows the quantizer to be used from a separate files outside
of aaccoder without having to put another function pointer and will
result in a slight speedup as the compiler can do more optimizations.

This is required for commits following.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-21 18:53:14 +01:00
Rostislav Pehlivanov
b47a1e5c5f aacenc: create and initialize an LTP context
This commit only creates and initializes an LTP
context which is needed for upcoming commits (TNS).

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-21 18:43:09 +01:00
Rostislav Pehlivanov
23e786be61 aacenc: populate the sce->ics.swb_offset table pointer
This commit simply populates the table pointer which is needed
for upcoming commits (TNS, prediction, etc.). Copied from
the decoder.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-21 18:40:44 +01:00
Rostislav Pehlivanov
e6c9f3a166 aacenc: reset special bands in the main frame encoding function
This commit moves the resetting of special bands (above RESERVED_BT)
to the main frame encoding function rather than the way it was done
previously in their corresponding search_for_... functions.

The reason why special bands need to be reset is that while normal
bands get chosen for every frame by the coder (twoloop by default)
the coders do not touch any special sfbs and will therefore
make them persist throughout the file.

If we zero them out any bands left unmarked will be chosen by
the second part of the coder (the trellis function in aaccoder.c).

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-21 18:36:09 +01:00
Rostislav Pehlivanov
32be264cea aacenc: coding style changes
This commit only changes the coding style to a saner way
of accessing coefficients (makes more sense to get the
memory address of a coefficients and start from there
rather than adding arbitrary numbers to offset a pointer).
Some compilers might detect an out of bounds access easier.

Also the way M/S and IS coefficients are calculated has been
changed, but should still have the same result (with the exception
that IS now applies from the normal coefficients rather than the
pristine ones, this is needed for upcoming commits).

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-21 18:30:51 +01:00
Ganesh Ajjanagadde
907373ea9d avcodec/x86/v210-init: fix unused variable warning
Fixes a -Wunused-variable while compiling with --disable-yasm on x86

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-21 17:06:27 +02:00
Ganesh Ajjanagadde
92b1a0fa9e ffserver: cast PID to int64_t before printing
Unfortunately, there is no portable format specifier for PID's.
Furthermore, it is not safe to assume pid_t <= 32 bit in size,
see e.g http://unix.derkeiler.com/Mailing-Lists/AIX-L/2010-08/msg00008.html.
Right now, it is ok to assume pid_t <= 32 bit in size, but this may change in the future.
Also, this patch fixes warning due to lack of an appropriate cast from
http://fate.ffmpeg.org/report.cgi?time=20150820233505&slot=x86-opensolaris-gcc4.3.
Note that this method of handling pid_t is in line with what nginx does.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-21 15:47:54 +02:00
Ganesh Ajjanagadde
5edf8b118d avformat/hls: correct comment for ensure_playlist()
Comment was previously slightly incorrect.
Also, it was placed in the wrong location.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-21 14:21:10 +02:00
Michael Niedermayer
5176443b2b avfilter/vf_vectorscope: Fix ;;
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-21 13:16:34 +02:00
Ganesh Ajjanagadde
36f7a37895 avcodec/jpeg2000: comment out unused variable
Fixes -Wunused-const-variable from
http://fate.ffmpeg.org/report.cgi?time=20150820031140&slot=arm64-darwin-clang-apple-5.1

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-21 13:01:44 +02:00
Michael Niedermayer
7c72a4bbd3 swscale/alphablend: Fix pointer type warnings
Found-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-21 12:14:08 +02:00
Michael Niedermayer
b3d2035ec3 ffmpeg: use av_err2str()
Found-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-21 12:11:09 +02:00
John Högberg
f9ab4fe1f7 h264: Discard currently unsupported registered sei
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-08-21 12:03:36 +02:00
Luca Barbato
47b447aaff imgutils: Fix a typo in avcodec_get_pix_fmt_loss
If the candidate does not have alpha and the source does have alpha
report the loss of alpha.

CC: libav-stable@libav.org
2015-08-21 12:03:36 +02:00
Paul B Mahol
5e1d863760 avfilter/vf_vectorscope: support yuv(a)420p and yuv410p as input for common case
Speed up gain more than 2x.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-08-21 08:04:45 +00:00
Anton Khirnov
d8ebb6157d hevcdsp: fix a function name
put_weighted_pred_avg should be put_unweighted_pred_avg, there is no
weighting there.
2015-08-21 08:46:05 +02:00
Anton Khirnov
a1926a29fb hevc: avoid invalid shifts of negative values 2015-08-21 08:45:37 +02:00
James Almer
7a806c68a6 avcodec/hevcdsp: rename sao_band_filter c functions
Signed-off-by: James Almer <jamrial@gmail.com>
2015-08-21 02:24:30 -03:00
Vesselin Bontchev
e32a99264b Add support for Audible AA files
https://en.wikipedia.org/wiki/Audible.com#Quality
2015-08-21 04:24:58 +00:00
Michael Niedermayer
45f3d4e63e ffmpeg: Use correct codec_id for av_parser_change() check
No testcase known

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-21 03:37:32 +02:00
Michael Niedermayer
ac0ba6f233 ffmpeg: Check av_parser_change() for failure
No testcase known

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-21 03:37:32 +02:00
Michael Niedermayer
2bb54b82b5 avcodec/h264_mp4toannexb_bsf: Reorder operations in nal_size check
Fixes Ticket4778

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-21 03:37:32 +02:00
Michael Niedermayer
c8890941d6 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>
2015-08-21 03:37:09 +02:00
Michael Niedermayer
15ff3f3fdf ffmpeg: check avpicture_fill() return value
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-21 03:18:57 +02:00
Paul B Mahol
4e8963fa38 avfilter: add video vectorscope filter 2015-08-20 22:57:47 +00:00
Ganesh Ajjanagadde
e8319f602e avcodec/metasound_data: comment out unused variable
Fixes -Wunused-const-variable from
http://fate.ffmpeg.org/report.cgi?time=20150820031140&slot=arm64-darwin-clang-apple-5.1

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-20 23:39:04 +02:00
Andreas Cadhalpun
96f5fdebc3 graph2dot: use avfilter_pad_get_name accessor function
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-08-20 22:38:01 +02:00
Ludmila Glinskih
e23a01c06d api-seek-test: first version
Works only with video stream.
First pass without seeking -- counts crcs of a frames and store it in an array.
After that it seeks a lot in different places and checks if crcs of these frames and crcs of frames in array are the same.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-20 21:40:11 +02:00
Ganesh Ajjanagadde
c3052c9e8a avcodec/aacsbr_fixed: remove unused variable
Fixes -Wunused-const-variable from
http://fate.ffmpeg.org/report.cgi?time=20150820031140&slot=arm64-darwin-clang-apple-5.1

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-20 21:23:51 +02:00
Ganesh Ajjanagadde
b772847eb0 avformat/webmdashenc: fix uninitialized variable
Fixes -Wsometimes-uninitialized from
http://fate.ffmpeg.org/report.cgi?time=20150820031140&slot=arm64-darwin-clang-apple-5.1

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-20 21:03:08 +02:00
Lou Logan
538ea9a209 doc/indevs: Remove non-existent decklink option examples
Forgotten in c5d0148. Found by Thomas Langhorst.

Signed-off-by: Lou Logan <lou@lrcd.com>
2015-08-20 10:34:18 -08:00
Henrik Gramner
515b69f8f8 checkasm: Explicitly declare function prototypes
Now we no longer have to rely on function pointers intentionally
declared without specified argument types.

This makes it easier to support functions with floating point parameters
or return values as well as functions returning 64-bit values on 32-bit
architectures. It also avoids having to explicitly cast strides to
ptrdiff_t for example.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-08-20 19:22:34 +02:00
Henrik Gramner
e13da244f4 checkasm: x86: properly save rdx/edx in checked_call()
If the return value doesn't fit in a single register rdx/edx can in some
cases be used in addition to rax/eax.

Doesn't affect any of the existing checkasm tests but might be useful later.

Also comment the relevant code a bit better.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-08-20 19:22:06 +02:00
Janne Grunau
faa3f17a76 fate: test only demuxing in asf-repldata 2015-08-20 16:22:52 +02:00
Ganesh Ajjanagadde
ecf6b26aa5 avformat/ftp: use correct enum type
Fixes -Wenum-conversion from
http://fate.ffmpeg.org/report.cgi?time=20150820031140&slot=arm64-darwin-clang-apple-5.1

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-20 12:22:50 +02:00
Carl Eugen Hoyos
9bd305be91 lavf/mpeg: Allow users to force audio codec MLP.
Fixes part of ticket #4786.
2015-08-20 12:19:00 +02:00
Michael Niedermayer
db91e0edb6 avformat/mux: Update sidedata in ff_write_chained()
Fixes Ticket4777

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-20 03:42:04 +02:00
Mariusz Szczepańczyk
bf5b2f9df8 lavf/ftp: implement move and delete callbacks
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-20 00:08:16 +02:00
Michael Niedermayer
034e6fbd9c configure: Check for CoreServices/CoreServices.h and make vda+viedotoolbox depend on it
Fixes arm cross build on osx

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-19 22:49:20 +02:00
Michael Niedermayer
0b7829901b */version.h: Add note/recommandition about bumping major
Reviewed-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-19 21:37:32 +02:00
Lou Logan
2edb7ab1cb MAINTAINERS: add myself as a docs maintainer
Signed-off-by: Lou Logan <lou@lrcd.com>
2015-08-19 10:47:38 -08:00
Lou Logan
4918726d41 doc/indevs: add various missing options
Signed-off-by: Lou Logan <lou@lrcd.com>
Reviewed-by: Ganesh Ajjanagadde <gajjanag@mit.edu>
2015-08-19 10:34:24 -08:00
Paul B Mahol
2fa019958b avfilter: add showfreqs filter 2015-08-19 16:15:13 +00:00
Henrik Gramner
e6b8797b82 checkasm: x86: properly save rdx/edx in checked_call()
If the return value doesn't fit in a single register rdx/edx can in some
cases be used in addition to rax/eax.

Doesn't affect any of the existing checkasm tests but might be useful later.

Also comment the relevant code a bit better.
2015-08-19 16:17:35 +02:00
Henrik Gramner
18b101ff59 checkasm: Explicitly declare function prototypes
Now we no longer have to rely on function pointers intentionally
declared without specified argument types.

This makes it easier to support functions with floating point parameters
or return values as well as functions returning 64-bit values on 32-bit
architectures. It also avoids having to explicitly cast strides to
ptrdiff_t for example.
2015-08-19 16:17:35 +02:00
Ronald S. Bultje
99b9f0136c fate: rename -error option to -error_rate.
This fixes fate when FF_API_ERROR_RATE=0.
2015-08-19 10:01:42 -04:00
Pedro Arthur
62d176de12 swscale: refactor vertical scaler 2015-08-19 10:43:52 -03:00
Ivan Uskov
fffae8e605 libavcodec/qsvdec.c: the ff_get_format() missed at refactoring has been restored
Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-19 14:20:24 +02:00
Gwenole Beauchesne
9d1d7b367e vaapi: drop unused include.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2015-08-19 14:15:43 +02:00
Gwenole Beauchesne
8813d55fa5 vaapi: fix usage of invalid buffer ids.
Invalid buffer ids are defined by VA_INVALID_ID. Use that through out
vaapi_*.c support files now that we have private data initialized and
managed by libavcodec. Previously, the only requirement for the public
vaapi_context struct was to be zero-initialized.

This fixes support for 3rdparty VA drivers that strictly conform to
the API whereby an invalid buffer id is VA_INVALID_ID and the first
valid buffer id can actually be zero.

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2015-08-19 14:05:32 +02:00
Gwenole Beauchesne
babd340f58 vaapi: streamline public context structure.
Move libavcodec managed objects from the public struct vaapi_context
to a new privately owned FFVAContext. This is done so that to clean up
and streamline the public structure, but also to prepare for new codec
support, thus requiring new internal data to be added in there.

The AVCodecContext.hwaccel_context, that holds the public vaapi_context,
shall no longer be accessed from within vaapi_*.c codec support files.

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2015-08-19 14:03:24 +02:00
Gwenole Beauchesne
9f8e57efe4 vaapi: define a unique pixel format for VA-API (AV_PIX_FMT_VAAPI).
Deprecate older VA pixel formats (MOCO, IDCT) as it is now very unlikely
to ever be useful in the future. Only keep plain AV_PIX_FMT_VAAPI format
that is aliased to the older VLD variant.

This is an API change.

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2015-08-19 14:03:24 +02:00
Sven Dueking
6eecb91fbc avcodec/qsvenc: Added PicTiming SEI
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-19 13:49:37 +02:00
Neil Birkbeck
3dabebc272 libavformat/matroskaenc.c: fix small memory leaks on error
Fixing small leaks that can occur when mkv_write_tracks fails in mkv_write_header
(e.g., if video track has unknown codec). Also changing mkv_write_seekhead to take
the MatroskaMuxContext to avoid having dangling pointers.

Signed-off-by: Neil Birkbeck <neil.birkbeck@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-19 13:17:21 +02:00
Paul B Mahol
fa95965f5a avfilter/vf_histogram: make it possible to pick color components for levels mode
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-08-19 10:05:33 +00:00
Ronald S. Bultje
6495c4c687 lavfi: fix compilation with FF_API_OLD_FILTER_OPTS=0. 2015-08-18 22:22:49 -04:00
Michael Niedermayer
c1507db617 fate: Force simple idct for fate-asf-repldata
otherwise it can fail when a different idct is used on some platform

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-19 03:51:57 +02:00
Lou Logan
5d410a1db2 doc/indevs: fix fbdev typos
Fixes ticket #4784 as found by rodarmor.

Signed-off-by: Lou Logan <lou@lrcd.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2015-08-18 13:14:57 -08:00
Pedro Arthur
4545906f60 swscale: Fixed typos
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-18 22:56:50 +02:00
Pedro Arthur
ed80dec621 swscale: fixed compiler warnings
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-18 22:56:50 +02:00
Pedro Arthur
0f3687d6fb swscale: add license headers and copyrights
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-18 22:56:50 +02:00
Derek Buitenhuis
c981b1145a libx264: Add option to force IDR frames
Currently, when forcing an I frame, via API, or via the ffmpeg cli,
using -force_key_frames, we still let x264 decide what sort of
keyframe to user. In some cases, it is useful to be able to force
an IDR frame, e.g. for cutting streams.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-08-18 17:40:36 -03:00
Ronald S. Bultje
87068ea5c5 lavu: disable wrong value check in get_version() upon api bump. 2015-08-18 15:57:20 -04:00
wm4
a383f226f0 lavc: move vdpau decoders under FF_API_VDPAU.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2015-08-18 15:57:20 -04:00
Ronald S. Bultje
030b5a4f77 lavc: put remaining bits of vdpau-in-decoder under FF_API_CAP_VDPAU. 2015-08-18 15:57:19 -04:00
Ronald S. Bultje
7a629186ba Prepare for removal of obsolete FF_IDCT_* members. 2015-08-18 15:41:06 -04:00
Ronald S. Bultje
9468207e1c mpeg4video: use ff_dlog instead of av_log under debug&FF_DEBUG_PTS.
This fixes compilation with FF_API_UNUSED_MEMBERS=0.
2015-08-18 15:39:41 -04:00
Stephen Hutchinson
c5308eea29 configure: force -mconsole when linking SDL under MinGW
When building SDL with MinGW, it sets -mwindows with the
assumption that the application is a GUI application. If this
is linked without passing -mconsole to configure via
--extra-ldflags, stdout will be silenced from cmd.exe while
running FFmpeg.

The -mwindows flag that causes this behavior is included in the
sdl_libs variable, so append -mconsole there rather than create
an sdl_ldflags case just to insert it (especially if -mconsole
must come *after* -mwindows in order to be effective).

Reviewed-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-18 21:20:50 +02:00
Ronald S. Bultje
3285005347 Undeprecate av_opt_set_defaults2(). 2015-08-18 13:09:06 -04:00
Ronald S. Bultje
e3b7298aed lavc: fix compilation with FF_API_XVMC. 2015-08-18 12:05:57 -04:00
Ronald S. Bultje
ad45121d56 options: mark av_get_{int,double,q} as deprecated.
Convert last users to av_opt_get_*() counterparts.
2015-08-18 12:05:17 -04:00
Ronald S. Bultje
b07d2a2509 libvpxenc: make flags i64 instead of dbl. 2015-08-18 12:04:57 -04:00
Ronald S. Bultje
6471040f56 FF_OPT_TYPE_* -> AV_OPT_TYPE_*. 2015-08-18 11:48:49 -04:00
Ronald S. Bultje
229843aa35 Replace av_dlog with ff_dlog.
ff_dlog checks compilability, and is non-public. av_dlog is deprecated
and no longer exists if FF_API_DLOG=0.
2015-08-18 10:24:01 -04:00
Ronald S. Bultje
ad7d972e08 lavfi: add error message to help users convert to new lavfi syntax. 2015-08-18 10:18:43 -04:00
Michael Niedermayer
22f85543ed scale2ref: override request_frame() and correctly connect them to the corresponding inputs
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-18 15:59:23 +02:00
Michael Niedermayer
db0f8f3f9d avfilter/vf_scale: Set scale2ref ref output timebase
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-18 15:59:23 +02:00
Ronald S. Bultje
70a19c482a Move ff_dlog from lavc to lavu. 2015-08-18 09:46:49 -04:00
Arttu Ylä-Outinen
b807f7e286 configure: Use pkg-config for libkvazaar.
Signed-off-by: Arttu Ylä-Outinen <arttu.yla-outinen@tut.fi>
Liked-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-18 12:30:39 +02:00
Hendrik Leppkes
649b2e4c83 Merge commit '317cfaa5e09755ed0b34af512ec687963a67bdbf'
* commit '317cfaa5e09755ed0b34af512ec687963a67bdbf':
  asfdec: prevent the memory leak in the asf_read_metada_obj

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-18 09:35:56 +02:00
Hendrik Leppkes
4b6ccccb03 Merge commit '58c3720a3cc71142b5d48d8ccdc9213f9a66cd33'
* commit '58c3720a3cc71142b5d48d8ccdc9213f9a66cd33':
  fate: Make sure a corner-case for ASF is covered

Adjusted fate ref to match the different timebase of the ffasf demuxer

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-18 09:34:53 +02:00
Hendrik Leppkes
316825f3e9 Merge commit '72839fce6457fdb5d51b4a5381ac52914ee66389'
* commit '72839fce6457fdb5d51b4a5381ac52914ee66389':
  hlsenc: Use AV_TIME_BASE units for all the computations

Not merged, duration/time computation is handled quite differently in ffmpeg's hlsenc

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-18 09:22:41 +02:00
Hendrik Leppkes
983fa5a1a9 Merge commit '7bf9647264308d2df74b2b50669f2d02a7ecc90b'
* commit '7bf9647264308d2df74b2b50669f2d02a7ecc90b':
  vp7: bound checking in vp7_decode_frame_header

Only partially merged, see 46f72ea507afee6adb0d2324848159063d0e7afc

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-18 09:14:08 +02:00
Hendrik Leppkes
e721cb8d8b Merge commit 'f34b152eb7b7e8d2aee57c710a072cf74173fbe1'
* commit 'f34b152eb7b7e8d2aee57c710a072cf74173fbe1':
  libfdk-aacdec: Clean up properly if the init fails

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-18 09:09:55 +02:00
Hendrik Leppkes
4cf4831ae7 Merge commit '1b90433f79de857550d4d8c35c89fbe954920594'
* commit '1b90433f79de857550d4d8c35c89fbe954920594':
  libfdk-aacdec: Always decode into an intermediate buffer

Conflicts:
	libavcodec/libfdk-aacdec.c

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-18 09:05:54 +02:00
Hendrik Leppkes
9dc30d0811 Merge commit '87de6ddb7b7674e329d5c96677bd8685bc7f7855'
* commit '87de6ddb7b7674e329d5c96677bd8685bc7f7855':
  libfdk-aacdec: Bump the max number of channels to 8

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-18 09:02:15 +02:00
Hendrik Leppkes
fdca935013 Merge commit 'cb2dbe2c762dae44d890aa26620bcdd9022fd0f3'
* commit 'cb2dbe2c762dae44d890aa26620bcdd9022fd0f3':
  configure: arm: Assume softfp ABI on darwin

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-18 09:02:01 +02:00
Hendrik Leppkes
9c22aedd26 Merge commit '44b44441203177690305c294be6eff8d9c668954'
* commit '44b44441203177690305c294be6eff8d9c668954':
  x86inc: Various minor backports from x264

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-18 09:01:35 +02:00
Hendrik Leppkes
1907e19d0c Merge commit '26ac22e5e7394346e9d59f800e7d4e91f4518d33'
* commit '26ac22e5e7394346e9d59f800e7d4e91f4518d33':
  movenc: Add a new flag for writing global sidx indexes for dash

Conflicts:
	libavformat/movenc.c
	libavformat/movenc.h

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-18 08:50:22 +02:00
Pedro Arthur
737aa902f0 swscale: process horizontal lines in batches
Process more lines in a single pass to improve performance

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-18 01:33:32 +02:00
Pedro Arthur
e0a3173a94 swscale: refactor horizontal scaling
+ split color conversion from scaling
- disabled gamma correction, until it's refactored too

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-18 01:33:32 +02:00
Ronald S. Bultje
a27c9f61bf fate: add -fflags +bitexact in a few places.
This improves results after FF_API_LAVF_BITEXACT=0. It still doesn't
pass, because of mov rtphint track which I don't understand (yet).
2015-08-17 19:14:37 -04:00
Ronald S. Bultje
61043777d7 fate: explicitly specify audio bitrate for adpcm/mp2fixed tests.
They picked up defaults, which changes from 128 to 200 when we remove
FF_API_OLD_AVOPTIONS.
2015-08-17 18:13:03 -04:00
Ronald S. Bultje
cdbd3b1e7d fate: move -flags +mv0 -> -mpv_flags +mv0.
Fixes associated fate tests when FF_API_MV0=0.
2015-08-17 17:46:43 -04:00
Michael Niedermayer
21566b21d5 avfilter: add scale2ref filter
This filter can be used to scale one stream to match another or based on
another, useful to scale subtitles or other things to be overlayed

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-17 17:18:01 +02:00
Carl Eugen Hoyos
84170d4be0 lavc/mjpegdec: Detect more CMYK images.
Fixes ticket #4772.
2015-08-17 15:53:41 +02:00
Michael Niedermayer
3afca32561 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>
2015-08-17 03:08:10 +02:00
Michael Niedermayer
7f769ae41e avcodec/rv30: fix switching back to the original resolution
Fixes part of Ticket1388

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-17 02:07:34 +02:00
Philip Langdale
d3eb317b86 ffmpeg_vdpau: Ignore decoder's max supported level
The h264 decoder reports 4.1 as its maximum level, but it will decode
5.1 4K video just fine. In practice, the published level limits in
vdpau do not communicate anything that's actually useful.
2015-08-16 15:02:33 -07:00
Andreas Cadhalpun
d90fbde06a buffersink: introduce FIFO_INIT_ELEMENT_SIZE to complement FIFO_INIT_SIZE
Use sizeof(void *) as its value, because AVFilterBufferRef is deprecated.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-08-16 22:36:20 +02:00
Alexandra Hájková
317cfaa5e0 asfdec: prevent the memory leak in the asf_read_metada_obj
also do not return the error code but just break reading
metadata object in the case of the aspect ratio reading failure

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-08-16 20:00:37 +02:00
Alexandra Hájková
58c3720a3c fate: Make sure a corner-case for ASF is covered
Test the demuxer for the case when the replicated data length in
a sample is 0.

Sample-ID: https://samples.libav.org/mplayer-bugs/bug821/bug821-2.asf

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-08-16 19:16:35 +02:00
Luca Barbato
72839fce64 hlsenc: Use AV_TIME_BASE units for all the computations
Do not risk mixing different timebases.

CC: libav-stable@libav.org

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-08-16 19:02:16 +02:00
Federico Tomassetti
7bf9647264 vp7: bound checking in vp7_decode_frame_header
CC: libav-stable@libav.org
2015-08-16 19:02:16 +02:00
Andreas Cadhalpun
fbc8eb6857 ffmpeg: use av_buffersrc_add_frame instead of av_buffersrc_add_ref
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-08-16 18:17:00 +02:00
Michael Niedermayer
0cb87cd7d4 avfilter/avfiltergraph: Implement and use find_best_sample_fmt_of_2()
Similar to the pixel format code

Fixes Ticket3847

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-16 14:59:58 +02:00
Rodger Combs
b4b2717ffe lavf/matroskadec: Fully parse and repack MP3 packets
Fixes https://trac.ffmpeg.org/ticket/4776

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-16 11:46:33 +02:00
Michael Niedermayer
31d6f8de53 doc/filter_design: Remove reference to the deprecated and unused cur_buf_copy
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-16 11:46:33 +02:00
Mariusz Szczepańczyk
767d780ec0 doc/examples: rename avio_list_dir -> avio_dir_cmd
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-16 02:16:47 +02:00
Martin Storsjö
f34b152eb7 libfdk-aacdec: Clean up properly if the init fails
Previously most of the error paths leaked.

Also add FF_CODEC_CAP_INIT_THREADSAFE while adding caps_internal;
this decoder wrapper doesn't have any static data that is initialized.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-08-16 00:18:00 +03:00
Martin Storsjö
1b90433f79 libfdk-aacdec: Always decode into an intermediate buffer
For ADTS streams, the output format (number of channels, frame size)
can change at any point (with the latest version of fdk-aac, the decoder
seems to change format after a handful of frames, not outputting the
right format immediately, for cases that worked fine with the earlier
version of the lib).

Previously, the decoder decoded straight into the output frame once the
number of channels and frame size was known. This obviously does not
work if the number of channels or frame size changes.

The alternative would be to allocate the AVFrame with the maximum number
of channels and frame size, and change them afterward decoding into it,
but that may cause confusion to users e.g. of the get_buffer callback.
This solution should be more robust.

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-08-16 00:17:49 +03:00
Martin Storsjö
87de6ddb7b libfdk-aacdec: Bump the max number of channels to 8
In the latest version of fdk-aac, the decoder can output up to 8
channels; take this into account when preallocating buffers that
need to fit the output from any packet.

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-08-16 00:17:46 +03:00
Martin Storsjö
cb2dbe2c76 configure: arm: Assume softfp ABI on darwin
Don't try to detect the float ABI by checking at the toolchain
name or by trying to assemble and link files with eabi_attributes.

This fixes the float ABI detection when building using clang
with -fembed-bitcode, where the current eabi_attributes check
accidentally passes.

This issue was pointed out by James Howe <james.howe@hp.com>.

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-08-16 00:17:22 +03:00
Michael Niedermayer
4ada49f9db ffmpeg: Use the decoders dimensions in sub2video_get_blank_frame()
Fixes Ticket4744 part3

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-15 17:41:48 +02:00
Michael Niedermayer
bd5d11d9f5 ffmpeg: Use actual frame dimensions in checks in sub2video_update()
Fixes Ticket4744 part2

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-15 17:41:48 +02:00
Michael Niedermayer
0ac83047f6 ffmpeg: Print sub2video: rectangle coordinates in case of overflows
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-15 17:41:48 +02:00
Michael Niedermayer
72237ef6e9 ffmpeg_filter: Do not override the dimensions in sub2video_prepare()
Fixes ticket4744 part1

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-15 17:41:48 +02:00
Michael Niedermayer
b1f59bb660 avcodec/flashsvenc: Correct max dimension in error message
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-15 15:21:04 +02:00
Michael Niedermayer
88fe45e0fe avcodec/svq1enc: Check dimensions
Fixes assertion failure

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-15 15:06:01 +02:00
Niklesh
a604289b85 movtextdec: Add support for automatic text wrapping
The value of wrap_flag in the Text Wrap Box specifies if the text is to
be wrapped or not. Uses 'end of line wrap' amongst the wrap styles
supported by ASS if the text is to be wrapped, i.e; fill as much text
in a line as possible, then break to next line.

The 3GPP spec has no provision for smart wrapping.

Signed-off-by: Niklesh <niklesh.lalwani@iitb.ac.in>
2015-08-14 19:35:26 -07:00
Mariusz Szczepańczyk
c84d208c27 examples/avio_list_dir: add move and delete methods
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-15 03:32:38 +02:00
Paul B Mahol
4b0e112442 avfilter/avf_avectorscope: add polar mode 2015-08-14 17:27:56 +02:00
Sven Dueking
f3fbe790d9 avcodec/qsvenc: Set MaxKpbs to rc_max_rate for CBR and VBR (bitrate is equal to rc_max_rate for CBR)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-14 14:51:47 +02:00
Marton Balint
95584ddac4 mxfdec: set AVFMT_SEEK_TO_PTS demuxer flag
Since 53f2ef2c4afb1d49a679dea9163cb0e4671f3117 seeking is done using PTS.

Signed-off-by: Marton Balint <cus@passwd.hu>
2015-08-14 14:20:25 +02:00
Michael Niedermayer
012784052a avcodec/faxcompr: negate uncompressed runs
Fixes remaining part of Ticket700

Found-by: ami_stuff
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-14 13:54:05 +02:00
Michael Niedermayer
b2e95e012c avcodec/faxcompr: Factor decode_uncompressed() out
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-14 13:47:18 +02:00
Stefano Sabatini
fedc422684 lavf/mpegts: apply misc option description fixes
Use impersonal form, drop capitalization and ending dot.
2015-08-14 12:08:57 +02:00
Stefano Sabatini
90f5668323 doc/demuxers/mpegts: apply a minor grammar fix to option description
Consistently use impersonal form.
2015-08-14 12:08:57 +02:00
Stefano Sabatini
819dc7aa0b doc/demuxers/mpegts: update documentation
The description is yet crappy, it merely copies the description of the
added and undocumented options and their value range. More descriptive
documentation is welcome.
2015-08-14 12:08:57 +02:00
Michael Niedermayer
ae2cb9290a ffmpeg_opt: Prefer audio streams with packets
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-14 10:43:16 +02:00
Michael Niedermayer
856452cf63 avformat/rmdec: MLTI with multiple MDPR support
Fixes Ticket4496

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-14 04:40:00 +02:00
Michael Niedermayer
02fff49936 avformat/rmdec: Move MLTI handling out of ff_rm_read_mdpr_codecdata()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-14 03:32:00 +02:00
Mariusz Szczepańczyk
affbecb0de lavf/ftp: implement NLST method
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-14 01:00:11 +02:00
Michael Niedermayer
5fec7942bf doc/developer: Suggest everyone to help with patch reviews
Reviewed-by: Timothy Gu <timothygu99@gmail.com>
Reviewed-by: compn <tempn@mi.rr.com>
Reviewed-by: Ganesh Ajjanagadde <gajjanag@mit.edu>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-13 19:49:11 +02:00
James Almer
1c10c1aa3c crypto_bench: add support for ripemd-128
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-08-13 13:45:58 -03:00
James Almer
bd1fe53eab crypto_bench: add support for xtea
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-08-13 13:45:26 -03:00
James Almer
a791e32b15 crypto_bench: add support for rc4
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-08-13 13:45:20 -03:00
James Almer
1184795db6 crypto_bench: add support for blowfish
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-08-13 13:45:14 -03:00
Michael Niedermayer
7727f76230 avcodec/tiff: Support uncompressed G3 CCITT fax
Fixes part of Ticket700

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-13 17:02:05 +02:00
Michael Niedermayer
a4f9bb228b avcodec/faxcompr: Support uncompressed escapes in decode_group3_1d_line()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-13 17:01:11 +02:00
Michael Niedermayer
dd1b4ed6d9 avcodec/tiff: Support uncompressed G4 CCITT fax
Fixes part of ticket700

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-13 16:33:36 +02:00
Michael Niedermayer
38025e6898 avcodec/faxcompr: Support cmode == 9 && xxx == 7
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-13 16:11:00 +02:00
Michael Niedermayer
bd2d4cc4a9 avcodec/faxcompr: Print the unsupported mode number
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-13 14:39:15 +02:00
Michael Niedermayer
acbd78a001 avformat/wavdec: Detect wrongly interpreted specification about the sample value in the fact chunk
Fixes Ticket703

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-13 12:38:31 +02:00
Michael Niedermayer
4ec4454ccf avformat/wavdec: Do not discard sample_count due to rounding
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-13 12:38:20 +02:00
Henrik Gramner
44b4444120 x86inc: Various minor backports from x264
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-08-13 07:46:24 +02:00
Ganesh Ajjanagadde
1bbb5ea10d avformat/tls_gnutls: correct version detection for certificate support
Fixes Ticket3748

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-13 02:24:37 +02:00
Michael Niedermayer
d21ab8e411 avcodec/dvbsubdec: Print field lens in case they are too lerge
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-13 01:50:08 +02:00
Marton Balint
8009a1f1fd avisynth: fix setting stream timebase
Stream timebase should be set using avpriv_set_pts_info, otherwise
avctx->pkt_timebase is not correct.

This should fix ticket #4766.

Patch is only compile tested.

Signed-off-by: Marton Balint <cus@passwd.hu>
Reviewed-by: Stephen Hutchinson <qyot27@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-13 01:20:16 +02:00
Niklesh
1bf8f54274 movtextdec: Use default style information from movtext header
As suggested, posting the combined patch with the fate changes.
The patch sets the default style in ASS from the default style
information present in the movtext header.

Signed-off-by: Niklesh <niklesh.lalwani@iitb.ac.in>
2015-08-12 14:43:19 -07:00
Michael Niedermayer
1f86079376 avcodec/mpeg12dec: Check chroma_format
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-12 22:51:40 +02:00
Michael Niedermayer
0d2a62d257 avformat/avidec: Simplify dshow_block_align based special case detection
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-12 22:51:40 +02:00
Paul B Mahol
f9905e13ea avfilter: add aphasemeter filter 2015-08-12 22:27:43 +02:00
Michael Niedermayer
45c558563a avformat: Move MAX_PROBE_PACKETS to internal.h
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-12 17:33:47 +02:00
Martin Storsjö
26ac22e5e7 movenc: Add a new flag for writing global sidx indexes for dash
The double meaning of the faststart flag (moving a moov atom
to the start of files, making them streamable, for non-fragmented
files, vs inserting a global sidx index at the start of files
for fragmented files) is confusing - see 40ed1cbf1 for
explanation of its origins.

Since the second meaning of the flag hasn't been part of any
libav release yet, just rename it to get rid of the confusion
without any extra deprecation (which wouldn't get rid of the
potential confusion, of users adding -movflags faststart
even for fragmented files, where it isn't needed for making
them "streamable").

This gets back the old behaviour, where -movflags faststart
doesn't have any effect for fragmented files.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-08-12 13:41:46 +03:00
Hendrik Leppkes
8a8aee358d Merge commit 'ab43beefab9147673e09679e04be08431684a5db'
* commit 'ab43beefab9147673e09679e04be08431684a5db':
  x86inc: Drop SECTION_TEXT macro

See f0b7882ceb791ff32267ad97bd21a09e9cbf83d5

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-12 12:40:45 +02:00
Hendrik Leppkes
f0da598069 Merge commit '1c6bb813284732d9a1acacfe99522d9f66ebf73e'
* commit '1c6bb813284732d9a1acacfe99522d9f66ebf73e':
  x86inc: Disable vpbroadcastq workaround in newer yasm versions

See f151fbd9e58c7af6535efb342d868bf803afef34

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-12 12:37:44 +02:00
Hendrik Leppkes
9947902601 Merge commit 'f5e486f6f8c242bb2be01ad3ae952b5733ba1113'
* commit 'f5e486f6f8c242bb2be01ad3ae952b5733ba1113':
  x86inc: Fix instantiation of YMM registers

See e93d3a22cb53bd88f551c1ad05cf3db3d453a396

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-12 12:37:22 +02:00
Hendrik Leppkes
30cd9695a7 Merge commit 'b114d28a18050b5ebd22fc067332e5487243889c'
* commit 'b114d28a18050b5ebd22fc067332e5487243889c':
  x86inc: warn when instructions incompatible with current cpuflags are used

See a1684311b3de0766932c42b1ffdd59823d786bc2

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-12 12:37:01 +02:00
Hendrik Leppkes
0e35296da5 Merge commit '9f1245eb9620a70feaa00ba745c6c7a56a839556'
* commit '9f1245eb9620a70feaa00ba745c6c7a56a839556':
  x86inc: Support arbitrary stack alignments

See 826790f59640a84813e8dd81c2bba559516f8e4d

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-12 12:36:08 +02:00
Hendrik Leppkes
eaf3fb877f Merge commit '8c75ba55a4367c854b577c849ea2195bd78c4c81'
* commit '8c75ba55a4367c854b577c849ea2195bd78c4c81':
  x86inc: warn if XOP integer FMA instruction emulation is impossible

See 8db0f71b49a360dd64ae482fa4244db055f117eb

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-12 12:35:41 +02:00
Hendrik Leppkes
47c1f36b49 Merge commit '8f4a06faf45c1cbcabec610f4b47824171379934'
* commit '8f4a06faf45c1cbcabec610f4b47824171379934':
  checkasm: Remove unnecessary include

See 5e8e121fccc247942a42b609f1e32060950c1a65

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-12 12:33:20 +02:00
Hendrik Leppkes
2752a038bc Merge commit '4a53c758d2f69302e6822b23f3e7349253b9e8d3'
* commit '4a53c758d2f69302e6822b23f3e7349253b9e8d3':
  x86: dcadsp: Avoid SSE2 instructions in SSE functions

See fc7e02f0ff345d5331b7c78f2400668d2c79a8b0

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-12 12:32:13 +02:00
Ganesh Ajjanagadde
8b63a88494 doc/ffmpeg,doc/ffplay: reference timespec definitions
Reference time definition syntax in option descriptions when appropriate.

Fixes trac ticket #4595.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2015-08-12 11:52:40 +02:00
Alexis Ballier
4f74efa76d libavcodec/tableprint_vlc.h: include lavu/reverse.c for ff_reverse.
Fixes the build with --enable-hardcoded-tables since ff_reverse has moved to lavu.
2015-08-12 11:37:24 +02:00
Michael Niedermayer
5f501f066e avformat/avidec: Disable AVSTREAM_PARSE_TIMESTAMPS for flac
The flac parser does not support it, its also not needed.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-12 04:03:37 +02:00
Michael Niedermayer
254ff6e6bf avformat/avidec: Add flac to the dshow_block_align exception list
Fixes Ticket4758

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-12 03:11:15 +02:00
Michael Niedermayer
542562e5ab avcodec/gsm_parser: Replace codec_id check by assert
A parser should never be called with a mismatching codec

Found-by: Ganesh Ajjanagadde <gajjanag@mit.edu>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-12 01:00:20 +02:00
Andreas Cadhalpun
107e54c5bf avutil: add ff_reverse as av_reverse replacement
The table is used in libavutil/eval.c.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-08-12 00:14:14 +02:00
Andreas Cadhalpun
9c29aa7143 ffmpeg: replace deprecated av_log_ask_for_sample with av_log
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-08-12 00:14:13 +02:00
Andreas Cadhalpun
13b3462b7a avfilter: add missing FF_API_AVFILTERPAD_PUBLIC guard
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-08-12 00:14:13 +02:00
Ganesh Ajjanagadde
36e17d994e tests/fate-run: make FATE non-interactive
FATE is non-interactive; it should not listen to user commands

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>

This should fix leaving the terminal in a messed up state with
zsh in case of crashes during fate

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-12 00:10:57 +02:00
Michael Niedermayer
8992029fc0 avcodec/g729_parser: Replace codec_id check by assert
A parser should never be called with a mismatching codec

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-11 23:16:35 +02:00
Ganesh Ajjanagadde
0581ab2cac avcodec/g729: add g729_parser
Add trivial g729 parser; fixes Ticket4753

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-11 23:16:35 +02:00
Carl Eugen Hoyos
daf2c35f52 lavc: Remove newline from avpriv_request_sample() calls. 2015-08-11 22:50:45 +02:00
Paul B Mahol
f0708b751f avfilter/vsrc_testsrc: correct colors for smptebars 2015-08-11 16:19:41 +02:00
Ganesh Ajjanagadde
92a4bda95b doc/ffmpeg: correct minor typo
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-11 14:39:23 +02:00
Ivan Uskov
44857e7a36 libavcodec/qsvdec.c: Extended error messages for MFXVideoDECODE_Init() result
Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-11 14:18:43 +02:00
wm4
67db57ea12 mmaldec: fix problems with flush logic
Don't try to do a blocking wait for MMAL output if we haven't even sent
a single real packet, but only flush packets. Obviously we can't expect
to get anything back.

Additionally, don't send a flush packet to MMAL in the same case. It
appears the MMAL decoder will sometimes hang in mmal_vc_port_disable()
(called from ffmmal_close_decoder()), waiting for a reply from the GPU
which never arrives. Either MMAL disallows sending flush packets without
preceding real data, or it's a MMAL bug.
2015-08-11 12:14:15 +02:00
wm4
7f116973d5 mmaldec: do not mutate user's AVCodecContext extradata field 2015-08-11 12:14:15 +02:00
wm4
750f72d775 mmaldec: hack against buffering problems on broken input
I can't come up with a nice way to handle this. It's hard to keep the
lock-stepped input/output in this case. You can't predict whether the
MMAL decoder will output a picture (because it's asynchronous), so
you have to assume in general that any packet could produce 0 or 1
frames. You can't continue to write input packets to the decoder,
because then you might get too many output frames, which you can't
get rid of because the lavc decoding API does not allow the decoder
to return an output frame without consuming an input frame (except
when flushing).

The ideal fix is a M:N decoding API (preferably asynchronous), which
would make this code potentially much cleaner. For now, this hack
will do.
2015-08-11 12:14:15 +02:00
Marton Balint
0860016529 concatdec: fix broken file_inpoint calculation
Should fix ticket #4765.

Signed-off-by: Marton Balint <cus@passwd.hu>
2015-08-11 11:19:17 +02:00
Henrik Gramner
ab43beefab x86inc: Drop SECTION_TEXT macro
The .text section is already 16-byte aligned by default on all supported
platforms so `SECTION_TEXT` isn't any different from `SECTION .text`.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-08-11 11:12:01 +02:00
Henrik Gramner
1c6bb81328 x86inc: Disable vpbroadcastq workaround in newer yasm versions
The bug was fixed in 1.3.0, so only perform the workaround in earlier versions.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-08-11 11:11:27 +02:00
Christophe Gisquet
f5e486f6f8 x86inc: Fix instantiation of YMM registers
Signed-off-by: Henrik Gramner <henrik@gramner.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-08-11 11:09:08 +02:00
Anton Mitrofanov
b114d28a18 x86inc: warn when instructions incompatible with current cpuflags are used
Signed-off-by: Henrik Gramner <henrik@gramner.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-08-11 11:07:18 +02:00
Henrik Gramner
9f1245eb96 x86inc: Support arbitrary stack alignments
Change ALLOC_STACK to always align the stack before allocating stack space for
consistency. Previously alignment would occur either before or after allocating
stack space depending on whether manual alignment was required or not.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-08-11 11:04:11 +02:00
Anton Mitrofanov
8c75ba55a4 x86inc: warn if XOP integer FMA instruction emulation is impossible
Emulation requires a temporary register if arguments 1 and 4 are the same; this
doesn't obey the semantics of the original instruction, so we can't emulate
that in x86inc.

Also add pmacsdql emulation.

Signed-off-by: Henrik Gramner <henrik@gramner.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-08-11 11:02:27 +02:00
Henrik Gramner
8f4a06faf4 checkasm: Remove unnecessary include
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-08-11 11:00:53 +02:00
Henrik Gramner
4a53c758d2 x86: dcadsp: Avoid SSE2 instructions in SSE functions
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-08-11 09:22:46 +02:00
Rostislav Pehlivanov
ef8e5a61c8 aacenc: Move small misc. functions to a separate file
As well as tables littered everywhere, functions were spread
out all across the encoder's files. This moves them to a single
place where they can be used by either the encoder's main files
or additional encoder files. Additionally, it changes the type
of some to 'inline' to enable us to simply put them in a header
file and possibly gain some speed due to compiler optimizations.

Signed-off-by: Claudio Freire <klaussfreire@gmail.com>
2015-08-11 00:22:05 -03:00
Michael Niedermayer
8623aba043 doc/codecs: Document color_range for the input side
Partly fixes Ticket 443

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-11 03:58:00 +02:00
Michael Niedermayer
55a07cf49c avformat/ftp: Use av_freep() for dir_buffer
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-10 18:46:38 +02:00
Mariusz Szczepańczyk
ee44cb3c81 lavf/ftp: properly read an empty path
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-10 18:23:40 +02:00
Lukasz Marek
bc93053161 lavf/ftp: implement directory listing callbacks
Signed-off-by: Lukasz Marek <lukasz.m.luki2 at gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-10 18:23:35 +02:00
Michael Niedermayer
b26497f824 avcodec/mjpegenc_common: do not ignore the color_range field
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-10 17:48:43 +02:00
Paul B Mahol
7a7ca3cc2f avfilter/vsrc_testsrc: smpte(hd)bars: fix uninitialized last rows and columns of chroma planes
For cases width and/or height is not multiple of chroma subsamplings.
2015-08-10 11:29:39 +02:00
Hendrik Leppkes
10ea06b3bb Merge commit '5f200bbf98efe50f63d0515b115d2ba8dae297bc'
* commit '5f200bbf98efe50f63d0515b115d2ba8dae297bc':
  movenc: Place the sidx index after the initial moov/mdat pair

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-10 11:24:30 +02:00
Hendrik Leppkes
7653ebfff6 Merge commit '83f254e65f938657a4dbec711e4c94252a72daf9'
* commit '83f254e65f938657a4dbec711e4c94252a72daf9':
  movenc: Rename reserved_moov_pos to reserved_header_pos

Conflicts:
	libavformat/movenc.c
	libavformat/movenc.h

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-10 11:23:21 +02:00
Hendrik Leppkes
6c52432b48 Merge commit '8e34089e265a6b01e1e3301e8864439d26793753'
* commit '8e34089e265a6b01e1e3301e8864439d26793753':
  movenc: Check that frag_info entries exist in mov_write_sidx_tag

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-10 11:20:09 +02:00
Hendrik Leppkes
e1def4ffec Merge commit '1542ec96389f32e5081c6c607e4b6f5e257ccdf2'
* commit '1542ec96389f32e5081c6c607e4b6f5e257ccdf2':
  cosmetics: Drop spurious spaces from if clauses

Conflicts:
	libavcodec/vc1_block.c

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-10 11:16:27 +02:00
Hendrik Leppkes
b1d547fe02 Merge commit '0f562f5b833d603e04123d198c59f8b2b5eb43e4'
* commit '0f562f5b833d603e04123d198c59f8b2b5eb43e4':
  h264: Do not print an error when the buffer has to be refilled

Conflicts:
	libavcodec/h264.c

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-10 11:11:42 +02:00
Martin Storsjö
5f200bbf98 movenc: Place the sidx index after the initial moov/mdat pair
For fragmented files with non-empty moov, with a fragment index
(sidx), place the index after the initial moov/mdat pair.

Previously, for this pathological case, the index was written
at the start of the file.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-08-10 09:46:14 +03:00
Martin Storsjö
83f254e65f movenc: Rename reserved_moov_pos to reserved_header_pos
The same field is also used for writing the sidx index header,
for fragmented files, when the faststart flag is used.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-08-10 09:46:07 +03:00
Martin Storsjö
8e34089e26 movenc: Check that frag_info entries exist in mov_write_sidx_tag
This fixes crashes with pathological cases when trying to write
a sidx index (via the -movflags faststart option, in combination
with fragmenting options), when no fragments actually have been
written. (This is possible if the empty_moov flag isn't used,
so that all actual packet data is written in the moov/mdat pair,
and no moof/mdat pairs have been written.)

In these pathological cases, no sidx should be written at all.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-08-10 09:46:03 +03:00
Michael Niedermayer
46f15de8a4 avformat/gifdec: correct r_frame_rate for single frame gifs
Fixes Ticket4650

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-10 04:45:27 +02:00
Michael Niedermayer
8c75a33812 postproc: Deprecate QP_STORE_T, it lacks a PP/AV/FF prefix
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-10 02:33:25 +02:00
Michael Niedermayer
0eb896b38d Revert "movtextdec: Use default style information from movtext header"
The commit broke  sub-movtext and sub-subripenc
fate output differs between mips ad x86 so updating fate ref is not
possible

This reverts commit d670848d4c2757068ff43a68c05d01b28c809fb4.
2015-08-10 02:09:14 +02:00
Niklesh
d670848d4c movtextdec: Use default style information from movtext header
Signed-off-by: Niklesh <niklesh.lalwani@iitb.ac.in>
2015-08-09 15:12:15 -07:00
Marton Balint
8628b06b31 ffplay: increase MIN_FRAMES to 25
FFplay was using a 5 frame packet buffer, this is not much (e.g. 200 ms for
25fps video), when HLS is requesting a new segment via HTTP, it may take longer
for the request to complete.

Should fix ticket #4720.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-08-09 23:58:03 +02:00
Marton Balint
0166d329c3 ffplay: add specific constants for buffer fullness settings when using external clock
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-08-09 23:57:51 +02:00
周晓勇
7fbafd0b1b avcodec: loongson optimize h264qpel with mmi v1
Signed-off-by: ZhouXiaoyong <zhouxiaoyong@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-09 20:43:54 +02:00
Michael Niedermayer
0f9d46b70d swscale/alphablend: Support chroma subsampling
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-09 18:04:46 +02:00
Michael Niedermayer
c5ebeaa308 swscale/alphablend: Support SWS_ALPHA_BLEND_CHECKERBOARD
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-09 17:11:53 +02:00
Michael Niedermayer
87100e828a swscale/alphablend: Factor target computation out of the loops
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-09 16:09:30 +02:00
Michael Niedermayer
f28ba31b1b swscale/alphablend: Fix big endian formats on LE
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-09 15:59:12 +02:00
Michael Niedermayer
b7faa9d314 swscale/alphablend: support packed pixel formats
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-09 15:58:43 +02:00
Michael Niedermayer
16df02fd2e avcodec/snowenc: Avoid use of deprecated me_method
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-09 14:33:31 +02:00
Michael Niedermayer
c64f01227f swscale/swscale: Document param[0..1]
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-09 14:33:19 +02:00
Andreas Cadhalpun
e66a43f694 graphdump: include internal.h for AVFilterPad
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-08-08 21:59:21 +02:00
Andreas Cadhalpun
9126ae4b6b use avfilter_pad_get_{type,name} accessor functions
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-08-08 21:59:02 +02:00
Andreas Cadhalpun
8bd74aafe8 avfilter: remove obsolete function declarations
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-08-08 21:58:48 +02:00
Andreas Cadhalpun
2e9c8be834 avcodec: add missing FF_API_CODEC_ID guard
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-08-08 21:58:31 +02:00
Michael Niedermayer
5edab1d207 cmdutils: remove sws_opts usage, simplify code
It has become unused as all code was switched to AVDictionary

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-08 16:51:25 +02:00
Michael Niedermayer
408c9cf0e2 cmdutils: Fix overriding flags on the command line.
Previously the code just appended the strings of flags which
worked with "+bitexact" but would not work with something like "0"

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-08 14:58:38 +02:00
Michael Niedermayer
6dbaeed6b7 ffmpeg: switch swscale option handling to AVDictionary similar to what the other subsystems use
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-08 14:44:15 +02:00
Michael Niedermayer
d3d776ccf9 avfilter/vf_scale: apply generic options after flags.
Otherwise the flags overwrite anything set by the generic stuff to the flags

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-08 14:44:15 +02:00
Michael Niedermayer
e755954a84 ffplay: pass all sws options to the filter graph
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-08 13:25:12 +02:00
Michael Niedermayer
165fb7eba8 cmdutils: Export all sws options using a AVDictionary like the other subsystems do
This makes extracting options other than sws_flags easier

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-08 13:24:52 +02:00
Michael Niedermayer
41e733c1ef avfilter/graphparser: Do not ignore scale_sws_opts if args == NULL
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-08 13:24:52 +02:00
Michael Niedermayer
d0e0757e9a swscale: Implement alphablendaway for planar 4:4:4 formats
Fixes Ticket4746

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-08 13:24:52 +02:00
Michael Niedermayer
c382d9e8cb swscale: Add sws_alloc_set_opts()
This simplifies allocating and initializing swscale contexts with custom options.
The function is internal currently but could be moved into the public header

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-08 13:08:16 +02:00
Carl Eugen Hoyos
7e9cd99627 lavc: The h263 encoder (also) depends on h263data.o 2015-08-08 12:11:33 +02:00
Carl Eugen Hoyos
176698260c configure: mpegvideo depends on mpeg_er.
Fixes compilation with --disable-everything --enable-encoder=mjpeg
While there, clean up some recursive dependencies.
Reported-by: Bernhard Döbler, programmer bardware de
2015-08-08 11:02:25 +02:00
Ludmila Glinskih
8ec89681af tests/api/api-h264-test: structure changes to avoid duplicate code
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-08 09:53:00 +02:00
Niklesh
ecc806a224 movtextdec: Fix memory leaks by freeing mem allocs correctly
Initialize m->count_f to 0 at the correct place to free memory allocs properly.

Signed-off-by: Niklesh <niklesh.lalwani@iitb.ac.in>
2015-08-07 16:33:31 -07:00
Paolo Bizzarri
1542ec9638 cosmetics: Drop spurious spaces from if clauses
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-08-08 01:26:38 +02:00
Michael Niedermayer
7d3aa2ca63 avutil/float_dsp: Remove use of deprecated av_set_cpu_flags_mask()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-07 22:46:27 +02:00
Michael Niedermayer
005d006938 avcodec/libopenh264enc: Avoid usage of deprecated ff_alloc_packet()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-07 22:46:27 +02:00
Paul B Mahol
2bdd026b26 avfilter/avf_avectorscope: stop making output fully transparent 2015-08-07 16:44:19 +02:00
Hendrik Leppkes
8015150f43 Merge commit '9469370fb32679352e66826daf77bdd2e6f067b5'
* commit '9469370fb32679352e66826daf77bdd2e6f067b5':
  h264: Use AVERROR return codes instead of -1

Only partially merged, as the first hunk is not correct and would result
in endless log spam.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-07 09:54:12 +02:00
Hendrik Leppkes
3d2d672828 Merge commit 'e5997152f54f790229c99f237f8eb6b5b1ee683a'
* commit 'e5997152f54f790229c99f237f8eb6b5b1ee683a':
  asf: Use time_t where needed

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-07 09:27:55 +02:00
Hendrik Leppkes
b54cf4b886 Merge commit '944f60866f507e3c0850ae9c2f30dac1da54587c'
* commit '944f60866f507e3c0850ae9c2f30dac1da54587c':
  asfdec: read values properly

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-07 09:27:49 +02:00
Rostislav Pehlivanov
c47c781e83 aacenc: Move local encoder specific tables to a separate file
This commit moves any tables specific to the encoder from aacenc
and aaccoder to a separate file called 'aacenctab.c/.h'.
This was done as a clean up attempt as the encoder was filled with
tables pasted in between functions which made it confusing to follow
and track where each table and definition had been used.
This commit solves this by simply exporting the smaller tables out to
the aacenctab.h while the larger ones are compiled using aacenctab.c
and are referenced from the header file.

Signed-off-by: Claudio Freire <klaussfreire@gmail.com>
2015-08-07 03:58:07 -03:00
James Almer
9c0407e856 x86/sbrdsp: remove an unnecessary mova in sbr_autocorrelate
Signed-off-by: James Almer <jamrial@gmail.com>
2015-08-06 23:42:19 -03:00
Michael Niedermayer
bee2e702cc tests/fate/mp3: increase mp3-float-extra_overread FUZZ for ppc64be-RHEL7.0-gcc-4.8.2-ibmcrl to 23 from 20
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-07 02:54:59 +02:00
Michael Niedermayer
ae413a48e6 avcodec/movtextdec: check that ftab has been allocated before dereferencing it
Fixes potential null pointer dereference on deallocation

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-06 23:38:55 +02:00
Niklesh
2e7a684e72 movtextdec.c: Add support for font names
Signed-off-by: Niklesh <niklesh.lalwani@iitb.ac.in>
2015-08-06 08:42:09 -07:00
wm4
8024002d40 vc1dec: propagate error codes and return meaningful error codes 2015-08-06 15:27:19 +02:00
Paul B Mahol
40ddbc87c5 avfilter/avf_showspectrum: use av_calloc() 2015-08-06 15:06:14 +02:00
Michael Niedermayer
cb5190bc9d avcodec/diracdec: Move reference to DiracFrame, avoid use of the deprecated field from AVFrame
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-06 12:44:37 +02:00
Michael Niedermayer
a368920eef avcodec/options: Silence deprecated warning about coded_frame
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-06 12:39:37 +02:00
Luca Barbato
0f562f5b83 h264: Do not print an error when the buffer has to be refilled
Partially amends 9469370fb32679352e66826daf77bdd2e6f067b5
2015-08-06 11:55:48 +02:00
wm4
94c0df79c7 lavc: propagate hwaccel errors
At least the new videotoolbox decoder does not actually set a frame if
end_frame fails. This causes the API to return success and signals that
a picture was decoded, even though AVFrame->data[0] is NULL.

Fix this by propagating end_frame errors.
2015-08-06 11:05:02 +02:00
Michael Niedermayer
ace8376653 avformat/matroskaenc: Avoid "for (int i" syntax for better compatibility
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-06 01:15:08 +02:00
Henrik Gramner
5e8e121fcc checkasm: Remove unnecessary include 2015-08-05 23:21:28 +02:00
周晓勇
71575d98f5 avcodec: loongson optimized h264pred with mmi v2
Signed-off-by: ZhouXiaoyong <zhouxiaoyong@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-05 22:52:52 +02:00
Sasi Inguva
31852540d4 libavformat/matroska: Write stream durations in metadata, in the format of mkvmerge.
Compute individual stream durations in matroska muxer.
Write them as string tags in the same format as mkvmerge tool does.

Signed-off-by: Sasi Inguva <isasi@google.com>
2015-08-05 22:29:23 +02:00
Marton Balint
b1f78632c6 ffplay: do not block audio thread on WIN32
The windows SDL audio driver plays the old data in the buffer in a loop if it
is not updated in time. So instead of waiting for data and blocking the the
audio thread, return silence if no data is available.

Should fix ticket #2289.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-08-05 21:09:30 +02:00
Anton Mitrofanov
8db0f71b49 x86inc: warn if XOP integer FMA instruction emulation is impossible
Signed-off-by: Henrik Gramner <henrik@gramner.com>
2015-08-05 16:15:40 +02:00
Michael Niedermayer
e740659a5d avcodec/avcodec: Define CODEC_CAP_* based on AV_CODEC_CAP_*
Avoid duplicating the literal numeric values

Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-05 15:45:50 +02:00
Michael Niedermayer
4ab1f33daf avcodec/avcodec: Replace AV_CODEC_FLAG* values by 1 << C style for consistency
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-05 15:45:50 +02:00
Michael Niedermayer
500bfbe27a avcodec/hapenc: Remove use of deprecated ff_alloc_packet()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-05 15:45:50 +02:00
Ronald S. Bultje
22b30f925d vf_psnr: add psnr_avg to stats file. 2015-08-05 09:19:09 -04:00
Hendrik Leppkes
45d9d16863 Merge commit 'b197f78329615893201c0e241d00b71b7c749dbb'
* commit 'b197f78329615893201c0e241d00b71b7c749dbb':
  configure: Silence error messages when probing compiler

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-05 12:19:07 +02:00
Hendrik Leppkes
7e2717ba3c Merge commit '98c9ade9853a9c413534ef243174d65f3f7506fa'
* commit '98c9ade9853a9c413534ef243174d65f3f7506fa':
  drawtext: Move the strftime expansion in a separate function

Not merged, the code does not exist anymore.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-05 12:18:31 +02:00
Hendrik Leppkes
4eded225ad Merge commit 'fe026ba960790a004adfcff33f44f96b05538e5c'
* commit 'fe026ba960790a004adfcff33f44f96b05538e5c':
  drawtext: Drop stray guards

Conflicts:
	libavfilter/vf_drawtext.c

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-05 12:15:41 +02:00
Hendrik Leppkes
00b5c19661 Merge commit '4fee11ab05fc8569ef35c0ce86a60375c903eefb'
* commit '4fee11ab05fc8569ef35c0ce86a60375c903eefb':
  png: Be more informative regarding signature errors

Conflicts:
	libavcodec/pngdec.c

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-05 12:10:08 +02:00
Jake Sebastian-Jones
9469370fb3 h264: Use AVERROR return codes instead of -1
And report why it fails.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-08-05 11:40:30 +02:00
Michael Niedermayer
e5774f28d1 avcodec/dvbsubdec: Do not stop decoding at a invalid depth
This corrects parsing the later elements

Fixes Ticket4754

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-05 00:16:43 +02:00
Luca Barbato
e5997152f5 asf: Use time_t where needed
gmtime takes a time_t not an uint64_t.
2015-08-04 21:40:04 +02:00
Timo Rothenpieler
2ae45816b2 avcodec/nvenc: Add support for 2pass rc in vbr mode
Thanks to WereCatf for pointing out this now exists.

Github: Closes #143
2015-08-04 21:38:10 +02:00
Timo Rothenpieler
3a20e5bc3b avcodec/nvenc: Only set h264 parameter when encoding h264 2015-08-04 21:38:10 +02:00
Timo Rothenpieler
bef740688d avcodec/nvenc: Fix indentation 2015-08-04 21:38:10 +02:00
Hendrik Leppkes
bec062e57c wmv2enc: remove duplicate priv_class in codec definition 2015-08-04 21:35:54 +02:00
Carl Eugen Hoyos
128e722bc1 lavf/swf: Fix auto-detection of compressed files.
Fixes auto-detection of compressed swf files as in
http://samples.ffmpeg.org/SWF/compressed-swf/
Reported by forum user Zard1096.
2015-08-04 21:34:00 +02:00
Alexandra Hájková
944f60866f asfdec: read values properly
The length of BOOL values is 16 bits in the Metadata Object but
32 bits in the Extended Content Description Object.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-08-04 21:33:55 +02:00
Henrik Gramner
f0b7882ceb x86inc: Drop SECTION_TEXT macro
The .text section is already 16-byte aligned by default on all supported
platforms so `SECTION_TEXT` isn't any different from `SECTION .text`.
2015-08-04 20:13:09 +02:00
Henrik Gramner
826790f596 x86inc: Support arbitrary stack alignments
Change ALLOC_STACK to always align the stack before allocating stack space for
consistency. Previously alignment would occur either before or after allocating
stack space depending on whether manual alignment was required or not.
2015-08-04 20:13:09 +02:00
Hendrik Leppkes
99f8fc725d ffmpeg: remove access to private FILE struct members on Windows
The FILE struct is opaque in MSVC 2015, and the members of this struct
were never meant to be accessed in any case.

No conditions are known where this check was needed to get characters
from stdin.
2015-08-04 20:05:18 +02:00
Hendrik Leppkes
2ab5002e3c ffmpeg: avoid scanf in keyboard command parsing
Mixing stdio and low-level IO on stdin is not safe.
2015-08-04 20:04:53 +02:00
Philip Langdale
3c8652208b MAINTAINERS: Add myself to vdpau maintainers 2015-08-04 08:22:19 -07:00
Philip Langdale
f038bbd4ed avcodec/vdpau_hevc: Properly signal the num_delta_pocs from the SPS RPS
This is the same fix that Hendrik made to dxva2_hevc. It should be
equally required here, although I don't see any visual difference.
Nevertheless, best to stay consistent.
2015-08-04 08:22:19 -07:00
Philip Langdale
aa10f0aab0 avcodec/vdpau_hevc: Remove experimental flag
The latest nvidia 355.06 drivers fixes the interleaving bug when
video surfaces are rendered. It still seems to be broken for
read-back with getBits but that's sufficiently uninteresting that
I don't think we need to wait for it to remove the flag.
2015-08-04 08:22:19 -07:00
Shivraj Patil
dec16372df avcodec/mips: MSA (MIPS-SIMD-Arch) optimizations for VP8 functions
Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
2015-08-04 11:15:06 -04:00
Paul B Mahol
63c442e3b1 avfilter/avf_showspectrum: reindent 2015-08-04 15:18:51 +02:00
Carl Eugen Hoyos
087c0a0a93 lavc/dvbsub: Do not fail on clut depth 0.
Fixes ticket #4752.
2015-08-04 15:01:22 +02:00
Carl Eugen Hoyos
4c4f14c717 lavd/v4l2: Use AVSTREAM_PARSE_FULL_ONCE when reading a h264 stream.
Reported, debugged and tested by trac user noah.
Fixes ticket #4644.
2015-08-04 14:59:26 +02:00
Michael Niedermayer
3f87a17063 avcodec/dvbsubdec: Allow selecting the substream, or all substreams
Fixes Ticket 2161

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-04 14:24:13 +02:00
Matthieu Bouron
f6518e51b8 lavf/mxfdec: support segmented frame layout as separate fields layout
According to S377M, segmented frame layout is identical to separate
field layout except that the two fields are taken from a single scan
of the incoming image, ie: they are coincident in time. Thus the
resulting frame is progressive.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-04 13:03:29 +02:00
Shiz
b197f78329 configure: Silence error messages when probing compiler
On Xcode's clang on OS X, $cc --version will output a 'Configured with:'
line to stderr, which clobbers the configure script output. As this line
serves no further purpose, it should be silenced.

The same applies to apple-gcc 4.2.1, which complains that it can not
understand the kernel version it is running on.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-08-04 12:19:27 +02:00
Shiz
2480da12a4 configure: Silence error messages when probing compiler.
On Xcode's clang on OS X, $cc --version will output a 'Configured with:'
line to stderr, which clobbers the configure script output. As this line
serves no further purpose, it should be silenced.

The same applies to apple-gcc 4.2.1, which complains that it can not
understand the kernel version it is running on.

Reviewed-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-04 11:00:54 +02:00
Michael Niedermayer
e322b7061f avcodec/dcaenc: clear bitstream end
This avoids leaving uninitialized bits in the output

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-04 04:16:43 +02:00
Michael Niedermayer
d903b62750 avcodec/internal: improve min_size documentation for ff_alloc_packet2()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-04 04:16:43 +02:00
James Almer
5750d6c5e9 x86: move XOP emulation code back to x86inc
Only two functions that use xop multiply-accumulate instructions where the
first operand is the same as the fourth actually took advantage of the macros.

This further reduces differences with x264's x86inc.

Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-08-03 17:11:13 -03:00
Michael Niedermayer
2ca0ed9cfd doc/git-howto: Replace "git push" example by one with dry-run
I do not think having "git push" as example is a good idea.
The command has a very high chance of pushing things which are unwanted to be
pushed

Reviewed-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-03 19:33:46 +02:00
Hendrik Leppkes
5d324dae11 dxva2_hevc: properly signal the num_delta_pocs from the SPS RPS
ucNumDeltaPocsOfRefRpsIdx needs to contain the flat value from the SPS RPS,
and not the final computed value from the slice header RPS, as this calculation
is done internally by the driver again.

Sample-Id: http://trailers.divx.com/hevc/Sintel_4k_27qp_24fps_1aud_9subs.mkvi
2015-08-03 15:48:21 +02:00
Michael Niedermayer
8bdd0dbd60 avcodec/videotoolbox: Add missing AV_ prefix to CODEC_ID in comment
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-03 14:47:11 +02:00
Michael Niedermayer
6b0fa73b4d avcodec/videotoolbox: Fix bistream typo
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-03 14:46:24 +02:00
Michael Niedermayer
4302a92835 avcodec/pcm: Better min_size for ff_alloc_packet2()
33318 -> 30601 decicycles

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-03 14:31:03 +02:00
Michael Niedermayer
fdc2385ca9 avcodec/libwebpenc_animencoder: Use ff_alloc_packet2()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-03 14:31:03 +02:00
Michael Niedermayer
77fb14f039 avcodec/rawenc: Use ff_alloc_packet2()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-03 14:31:03 +02:00
Sebastien Zwickert
11d923d414 avcodec: add new Videotoolbox hwaccel. 2015-08-03 10:12:10 +02:00
Henrik Gramner
127203ba5a x86inc: Various minor backports from x264
Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-03 04:08:33 +02:00
Henrik Gramner
f151fbd9e5 x86inc: Disable vpbroadcastq workaround in newer yasm versions
The bug was fixed in 1.3.0, so only perform the workaround in earlier versions.

Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-03 03:13:20 +02:00
Michael Niedermayer
7f46a641bf avcodec/aacdec: Fix integer overflow in argument to decode_audio_specific_config()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-03 01:41:13 +02:00
Emanuel Czirai
7ab1c57a64 libavcodec/aacdec_template: Use init_get_bits8() in aac_decode_frame()
related to ticket4749

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-03 01:18:33 +02:00
Michael Niedermayer
0508657f42 avcodec/cngenc: Use ff_alloc_packet2()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-02 23:02:12 +02:00
Michael Niedermayer
7e9cd4e100 avcodec/libwebpenc: Use ff_alloc_packet2()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-02 20:58:31 +02:00
Michael Niedermayer
06f2659891 avcodec/v210enc: Use ff_alloc_packet2()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-02 20:57:39 +02:00
Michael Niedermayer
107026ea81 avcodec/aliaspixenc: Use ff_alloc_packet2()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-02 20:36:24 +02:00
Michael Niedermayer
4a8ec0218e avcodec/avuienc: Use ff_alloc_packet2()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-02 20:24:30 +02:00
Rico Tzschichholz
a0044becca libshine: Fix faulty ff_alloc_packet2 usage 2015-08-02 19:05:26 +02:00
Paul B Mahol
3fe01eca21 avcodec/xfaceenc: remove coded_frame usage 2015-08-02 18:41:12 +02:00
Paul B Mahol
5b69fb783e avfilter: add atadenoise 2015-08-02 18:19:19 +02:00
Luca Barbato
98c9ade985 drawtext: Move the strftime expansion in a separate function
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-08-02 15:18:48 +02:00
Luca Barbato
fe026ba960 drawtext: Drop stray guards
There is a fallback for localtime_r and it is in use already.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-08-02 15:14:33 +02:00
Luca Barbato
4fee11ab05 png: Be more informative regarding signature errors
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-08-02 14:31:09 +02:00
Paul B Mahol
49a14a7616 avfilter: add allyuv source filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-08-02 14:13:59 +02:00
Paul B Mahol
ff6c92447d avfilter/vf_deband: add mising slice thread flag 2015-08-02 14:00:34 +02:00
Paul B Mahol
ff8f6691ce avfilter/f_drawgraph: stop making foreground color transparent 2015-08-02 13:34:30 +02:00
Hendrik Leppkes
a95210bfbd MAINTAINERS: Add myself as maintainer for dxva2 and Windows/MSVC 2015-08-02 13:03:48 +02:00
Michael Niedermayer
8b11ce7137 avcodec/libutvideoenc: Remove coded_frame usage
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-02 12:49:49 +02:00
Hendrik Leppkes
9f56aceaec Merge commit '14e558024642638085ae2bbeffc6087612e6a3f9'
* commit '14e558024642638085ae2bbeffc6087612e6a3f9':
  opusdec: properly handle mismatching configurations in multichannel streams

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-02 12:40:53 +02:00
Hendrik Leppkes
190e521123 Merge commit 'fdbc544d29176ba69d67dd879df4696f0a19052e'
* commit 'fdbc544d29176ba69d67dd879df4696f0a19052e':
  asfdec: prevent the memory leak while reading metadata

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-02 12:32:10 +02:00
Hendrik Leppkes
1ce298dac5 Merge commit 'ebaf571aca2dd6ce3caeeeec4210a3fccd47e7db'
* commit 'ebaf571aca2dd6ce3caeeeec4210a3fccd47e7db':
  x86: dct: Disable dct32_float_sse on x86-64

Conflicts:
	libavcodec/x86/dct32.asm
	libavcodec/x86/dct_init.c

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-02 12:31:39 +02:00
Hendrik Leppkes
b3e5d59537 Merge commit '979cb55103fa8e8274806e496901203742c686d1'
* commit '979cb55103fa8e8274806e496901203742c686d1':
  hevc: Split the sei parsing in 3 functions

Conflicts:
	libavcodec/hevc_sei.c

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-02 12:29:30 +02:00
Hendrik Leppkes
90ec89a629 Merge commit '043f46f5741e1a5caedf55d788e1a72aae3b7605'
* commit '043f46f5741e1a5caedf55d788e1a72aae3b7605':
  hevc: Use switch instead of if-nests in decode_nal_sei_message

Conflicts:
	libavcodec/hevc_sei.c

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-02 12:25:41 +02:00
Hendrik Leppkes
2e290d6114 Merge commit '2cd841c0776535be56e4db67485fdd9509c9b9f4'
* commit '2cd841c0776535be56e4db67485fdd9509c9b9f4':
  hevc: Use a proper enum for the SEI values

Conflicts:
	libavcodec/hevc_sei.c

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-02 12:18:40 +02:00
Michael Niedermayer
582d98aed9 tests/fate/mp3: Fix fate-mp3-float-extra_overread on mips-qemu
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-02 11:26:58 +02:00
Hendrik Leppkes
db395bef7f Merge commit '80ea66112817c719b476de8f7d8d3b325f4c7dd1'
* commit '80ea66112817c719b476de8f7d8d3b325f4c7dd1':
  avcodec: h264: Extract decoder methods

Conflicts:
	libavcodec/h264_sei.c

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-02 10:59:06 +02:00
Hendrik Leppkes
2ab827389b Merge commit '33dc1913ab7aaefc991b3e665d1d0b5d0b088672'
* commit '33dc1913ab7aaefc991b3e665d1d0b5d0b088672':
  asfdec: remove improper assignement that caused wrong timestamps

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-02 10:41:56 +02:00
Hendrik Leppkes
07094e5e40 Merge commit '78491fe8cfed83d2aead95dafe26f0d3f999e961'
* commit '78491fe8cfed83d2aead95dafe26f0d3f999e961':
  asfdec: do not export empty metadata

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-02 10:41:45 +02:00
Hendrik Leppkes
d95fee4425 Merge commit '3e853ff7acc56b180950ab39e7282f1b938c8784'
* commit '3e853ff7acc56b180950ab39e7282f1b938c8784':
  des: extend av_des_init() doxy

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-02 10:41:26 +02:00
Hendrik Leppkes
3cf08e96fc Merge commit 'd9e8b47e3144262d6bc4681740411d4bdafad6ac'
* commit 'd9e8b47e3144262d6bc4681740411d4bdafad6ac':
  des: add av_des_alloc()

Conflicts:
	libavutil/des.c

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-02 10:41:16 +02:00
Hendrik Leppkes
9ca19971bc Merge commit '5d8bea3bb2357bb304f8f771a4107039037c5549'
* commit '5d8bea3bb2357bb304f8f771a4107039037c5549':
  xtea: add av_xtea_alloc()

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-02 10:39:37 +02:00
Hendrik Leppkes
52566efd5c Merge commit 'b469832de993dabbfe037bef59c68e90e82ebca5'
* commit 'b469832de993dabbfe037bef59c68e90e82ebca5':
  rc4: extend av_rc4_init() doxy

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-02 10:38:53 +02:00
Hendrik Leppkes
a130ec9540 Merge commit 'ae365453c370c85f278bff7fbf9e20d9d335cb2a'
* commit 'ae365453c370c85f278bff7fbf9e20d9d335cb2a':
  rc4: add av_rc4_alloc()

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-02 10:38:33 +02:00
Hendrik Leppkes
9ed59f16e0 Merge commit '7a7df34c91e16ea8936f59524145a2cdd6b790f9'
* commit '7a7df34c91e16ea8936f59524145a2cdd6b790f9':
  blowfish: add av_blowfish_alloc()

Conflicts:
	doc/APIchanges
	libavutil/version.h

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-02 10:38:12 +02:00
Hendrik Leppkes
988ddfea5e Merge commit 'cd4d9df22738e6f147521ccb72c7930db6050914'
* commit 'cd4d9df22738e6f147521ccb72c7930db6050914':
  asfdec: free AVDictionaries properly when closing the demuxer

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-02 10:34:18 +02:00
Hendrik Leppkes
cf1ccfffa4 Merge commit '90e648c508fa6b97587ce62699a1449123f7d285'
* commit '90e648c508fa6b97587ce62699a1449123f7d285':
  fate/mp3: use the f32le format as output

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-02 10:32:38 +02:00
Anton Khirnov
14e5580246 opusdec: properly handle mismatching configurations in multichannel streams
The substreams can have different resampling delays, so an additional
level of buffering is needed to synchronize them.

Bug-Id: 876
2015-08-02 08:43:51 +02:00
Alexandra Hájková
fdbc544d29 asfdec: prevent the memory leak while reading metadata
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-08-02 08:43:51 +02:00
Henrik Gramner
ebaf571aca x86: dct: Disable dct32_float_sse on x86-64
There is an SSE2 implementation so the SSE version is never used. The "SSE"
version also happens to contain SSE2 instructions on x86-64.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-08-02 08:41:45 +02:00
Michael Niedermayer
f080a01fd3 avcodec/hevc_mp4toannexb_bsf: Remove ;;
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-02 03:52:37 +02:00
Vesselin Bontchev
336822edf4 avformat/mov: fix regression in processing .aax files
Commit 0a551cbe introduced "activation_bytes" option, and not specifying
this option (while calling ffmpeg / ffprobe) causes the program to quit
early. Before this commit, ffprobe was capable of processing metadata in
.aax files.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-02 03:40:38 +02:00
Paul B Mahol
5bf8590d6e avfilter/avf_showvolume: stop making output fully transparent 2015-08-01 19:40:34 +02:00
Rostislav Pehlivanov
ec2090d21f aacenc: add description to the 'aac_coder' option
This commit adds a short description to the aac_coder option of the
AAC encoder in order to be consistent with the other options.
Generally, right now, the 'FAAC' method works fine with speech and
low broadband spectrum audio. 'Fast' is just as the name suggests.
'ANMR' still needs work and 'Twoloop', the default, works well with
every type of audio.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-01 17:40:30 +01:00
Luca Barbato
979cb55103 hevc: Split the sei parsing in 3 functions 2015-08-01 15:45:50 +02:00
Luca Barbato
043f46f574 hevc: Use switch instead of if-nests in decode_nal_sei_message
Makes simpler to add support for more SEI types.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-08-01 15:34:45 +02:00
Luca Barbato
2cd841c077 hevc: Use a proper enum for the SEI values
And use the correct value for decoded_picture_hash.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-08-01 15:23:05 +02:00
David Holm
80ea661128 avcodec: h264: Extract decoder methods
Extract two methods from decode_registered_user_data in order to improve
code readability. Also make the constant holding the allocation size a
64-bit unsigned integer so that the size comparison against INT_MAX makes
sense.

Bug-Id: CID1312090

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-08-01 14:29:53 +02:00
Michael Niedermayer
b27d4fd997 Revert "libavcodec/utils: av_get_exact_bits_per_sample fixed to return "1" for DSD codecs."
Requested-by: Ganesh Ajjanagadde <gajjanag@mit.edu> (original patch reviewer)
This reverts commit 293e25be615d43c9b611c4b04920ec0d245a7145.
2015-08-01 03:25:04 +02:00
Michael Niedermayer
55ea31ab89 Merge branch 'simple_http_server_api_implementation' of http://git.klaxa.eu/git/ffmpeg
Reviewed-by: Nicolas George <george@nsup.org>
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-01 03:08:04 +02:00
Rostislav Pehlivanov
6d175158e9 aacenc: remove redundant argument from coder functions
This commit removes a redundant argument from the functions in aaccoder.
The argument lambda was redundant as it was just a copy of s->lambda,
to which all functions have access to anyway. This cleans up the function
pointers a bit which is helpful as there are a lot of other search_for_*
functions under development and with them populated it gets messy.

Reviewed-by: Claudio Freire <klaussfreire@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-01 02:54:35 +02:00
Yu Xiaolei
2ef6994ef6 avcodec/libx264: expose nv21 input support
libx264 added support for NV21 input recently.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-01 02:14:18 +02:00
Ihar A. Tumashyk
293e25be61 libavcodec/utils: av_get_exact_bits_per_sample fixed to return "1" for DSD codecs.
All DSD codes have 1 bit per sample.
https://en.wikipedia.org/wiki/Direct_Stream_Digital

Signed-off-by: Ihar A. Tumashyk <itumashyk@gmail.com>
Reviewed-by: Ganesh Ajjanagadde <gajjanag@mit.edu>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-01 01:49:21 +02:00
Stephan Holljes
25410c524d doc/example: Add http multi-client example code
Signed-off-by: Stephan Holljes <klaxa1337@googlemail.com>
2015-08-01 00:58:32 +02:00
Stephan Holljes
1d46e0ee05 doc/protocols: document experimental mutli-client api
Signed-off-by: Stephan Holljes <klaxa1337@googlemail.com>
2015-08-01 00:58:31 +02:00
Stephan Holljes
3240e69de6 lavf/http: Implement server side network code.
add http_accept,
add http_handshake and move handshake logic there,
handle connection closing.

Signed-off-by: Stephan Holljes <klaxa1337@googlemail.com>
2015-08-01 00:58:31 +02:00
Stephan Holljes
75235a2550 lavf/tcp: increase range for listen and call the underlying socket operations accordingly
Signed-off-by: Stephan Holljes <klaxa1337@googlemail.com>
2015-08-01 00:58:31 +02:00
Stephan Holljes
21198155a7 lavf/tcp: add tcp_accept
Signed-off-by: Stephan Holljes <klaxa1337@googlemail.com>
2015-08-01 00:58:31 +02:00
Stephan Holljes
63c07a956b lavf/avio: add avio_accept and avio_handshake
Signed-off-by: Stephan Holljes <klaxa1337@googlemail.com>
2015-08-01 00:58:31 +02:00
Stephan Holljes
5125e4b53f lavf/avio: add ffurl_accept and ffurl_handshake
Signed-off-by: Stephan Holljes <klaxa1337@googlemail.com>
2015-08-01 00:58:31 +02:00
Stephan Holljes
cf6c871bee lavf/network: split ff_listen_bind into ff_listen and ff_accept
Signed-off-by: Stephan Holljes <klaxa1337@googlemail.com>
2015-08-01 00:58:31 +02:00
Paul B Mahol
5870b3d2a3 MAINTAINERS: update my maintership 2015-07-31 20:25:07 +02:00
rogerdpack
bed1d9ec7a dshow: show more debug timestamp info
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
2015-07-31 18:30:03 +02:00
Michael Niedermayer
f2c58931e6 MAINTAINERS: Remove myself as leader
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-31 15:55:20 +02:00
Michael Niedermayer
814d4c4c94 Merge commit 'a0797950527120c85263c910eb6ba08fddcfdcb3'
* commit 'a0797950527120c85263c910eb6ba08fddcfdcb3':
  fate/mp3: specify the number of output samples instead of filesize

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-31 11:56:42 +02:00
Alexandra Hájková
33dc1913ab asfdec: remove improper assignement that caused wrong timestamps
and remove unneeded variable

Sample-Id: https://samples.libav.org/asf-wmv/asf-code-53/movn018.asf

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-07-31 09:10:05 +02:00
Alexandra Hájková
78491fe8cf asfdec: do not export empty metadata
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-07-31 09:09:27 +02:00
James Almer
3e853ff7ac des: extend av_des_init() doxy
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-07-31 09:04:12 +02:00
James Almer
d9e8b47e31 des: add av_des_alloc()
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-07-31 09:04:12 +02:00
James Almer
5d8bea3bb2 xtea: add av_xtea_alloc()
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-07-31 09:04:12 +02:00
James Almer
b469832de9 rc4: extend av_rc4_init() doxy
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-07-31 09:04:12 +02:00
James Almer
ae365453c3 rc4: add av_rc4_alloc()
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-07-31 09:04:12 +02:00
James Almer
7a7df34c91 blowfish: add av_blowfish_alloc()
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-07-31 09:04:09 +02:00
Alexandra Hájková
cd4d9df227 asfdec: free AVDictionaries properly when closing the demuxer
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-07-31 07:23:20 +02:00
Anton Khirnov
90e648c508 fate/mp3: use the f32le format as output
Those tests test the float decoder, so it is preferable to dump the
decoder output directly instead of converting it to s16.
2015-07-31 07:11:35 +02:00
Anton Khirnov
a079795052 fate/mp3: specify the number of output samples instead of filesize
This is not dependent on the output format.
2015-07-31 07:11:34 +02:00
Ganesh Ajjanagadde
c1bfb99ff2 avformat/wavdec: add extra sample count check for G.729 files
Can be used to fix Ticket4577

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-31 03:17:55 +02:00
James Almer
a0092cea46 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>
2015-07-30 20:44:32 -03:00
James Almer
9dcaae70f2 x86/aacpsdsp: add SSE and SSE3 optimized functions
Between 1.5 and 2.5 times faster

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-07-30 19:01:15 -03:00
Michael Niedermayer
d2077c860e Revert "ffmpeg: modify tty state when stderr is redirected"
faults in fate otherwise breaks the terminal.
To reproduce, add a abort() into wav_read_header()
run make fate-acodec-adpcm-ima_wav

This reverts commit 92e62f49cf7440a9e8998d284528e223c0948c97.
2015-07-30 23:49:54 +02:00
Michael Niedermayer
802e51299e avcodec/r210enc: Drop coded_frame usage
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-30 19:57:58 +02:00
Michael Niedermayer
dfe8e3b381 avcodec/avuienc: Drop coded_frame usage
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-30 19:57:07 +02:00
Michael Niedermayer
bc4bdc6d61 Merge commit '764ec70149728be82304c163ccc4e280f1629201'
* commit '764ec70149728be82304c163ccc4e280f1629201':
  rtsp: Only interpret $ as interleaved packet indicator at the start of replies

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-30 18:37:37 +02:00
Michael Niedermayer
d560c61125 Merge commit '6877537ff321136cf78ab03b8b91e6b6f218db5b'
* commit '6877537ff321136cf78ab03b8b91e6b6f218db5b':
  hmac: add missing version bump and APIChanges entry

Conflicts:
	libavutil/version.h

version.h is not changed as the code has been added 2 years ago in FFmpeg

See: 82ef67016ef731268ab7b8e91139bd5f16edc991
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-30 18:37:05 +02:00
Michael Niedermayer
ba12ba859a Merge commit '0c73a5a53cc97f4291bbe9e1e68226edf6161744'
* commit '0c73a5a53cc97f4291bbe9e1e68226edf6161744':
  hls: Save and forward avio options

Conflicts:
	libavformat/hls.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-30 17:52:23 +02:00
Michael Niedermayer
8e67599505 Merge commit '5ae178539b91d25710b7bb322d156c31aea9f8bf'
* commit '5ae178539b91d25710b7bb322d156c31aea9f8bf':
  http: Add the trailing endlines if they are missing

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-30 16:24:03 +02:00
Michael Niedermayer
77d8fd5c9c avcodec/y41penc: Drop coded_frame usage
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-30 16:14:23 +02:00
Michael Niedermayer
9ebffc5bba avcodec/yuv4enc: drop coded_frame usage
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-30 16:14:06 +02:00
Martin Storsjö
764ec70149 rtsp: Only interpret $ as interleaved packet indicator at the start of replies
Allow $ as character anywhere within normal RTSP replies - both
within the lines, and as the first character of RTSP header lines.
(The existing old comment indicated that an inline packet could
start at any line within a RTSP reply header, but that doesn't
sound valid to me, and I'm not sure if the existing code
handled that correctly either.)

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-07-30 16:59:36 +03:00
Michael Niedermayer
a0123b6023 avcodec/v308enc: Remove coded_frame usage
coded_frame is deprecated

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-30 15:54:45 +02:00
Michael Niedermayer
2d80de0be2 avcodec/v408enc: remove coded_frame usage
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-30 15:53:54 +02:00
James Almer
6877537ff3 hmac: add missing version bump and APIChanges entry
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-07-30 16:40:26 +03:00
Ganesh Ajjanagadde
92e62f49cf ffmpeg: modify tty state when stderr is redirected
This fixes Ticket2964

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-30 14:31:26 +02:00
Michael Niedermayer
1919827f2c Merge commit 'bf0cef5c3a114df452e5476167634dd8f51eb448'
* commit 'bf0cef5c3a114df452e5476167634dd8f51eb448':
  checkasm: Include io.h for isatty, if available

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-30 12:23:54 +02:00
Michael Niedermayer
dd0dbaccb7 Merge commit '9487ffd4c02b9e261562d43735490068c0df0d4b'
* commit '9487ffd4c02b9e261562d43735490068c0df0d4b':
  rtmpproto: free hmac context properly

See: 6ce3d9fc4a70958680b93c6995cc87f34630a7e3
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-30 12:14:54 +02:00
Luca Barbato
0c73a5a53c hls: Save and forward avio options
Make possible to send the custom headers and override the user agent.

Reported-by: BenWonder
2015-07-30 11:21:26 +02:00
Luca Barbato
5ae178539b http: Add the trailing endlines if they are missing
Makes slightly easier the life of those want to use the option
from the command line
2015-07-30 11:21:26 +02:00
Martin Storsjö
bf0cef5c3a checkasm: Include io.h for isatty, if available
configure does check for isatty, and checkasm properly checks
HAVE_ISATTY, but on some platforms (e.g. WinRT), io.h needs to be
included for isatty to be available.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-07-30 09:27:09 +03:00
James Almer
9487ffd4c0 rtmpproto: free hmac context properly
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-07-30 09:26:49 +03:00
Michael Niedermayer
f977e69dac avcodec/mpegvideo_enc: Ignore QMAX if VBV constraints are exceeded
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-30 05:00:54 +02:00
Michael Niedermayer
bf2474c74f avcodec/mpeg12enc: extend QP range to 28 for non linear quantizers
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-30 05:00:54 +02:00
James Zern
9723d439fd libvpxenc: report pict_type/error via side-data
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Zern <jzern@google.com>
2015-07-29 19:59:20 -07:00
James Zern
88df16fe6d libvpxenc: quiet coded_frame deprecation warnings
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Zern <jzern@google.com>
2015-07-29 19:59:19 -07:00
James Almer
6ce3d9fc4a avformat/rtmpproto: free hmac context properly
Signed-off-by: James Almer <jamrial@gmail.com>
2015-07-29 23:56:22 -03:00
James Almer
222d7619ce avfilter/vf_pnsr: fix author name
Signed-off-by: James Almer <jamrial@gmail.com>
2015-07-29 22:28:09 -03:00
Michael Niedermayer
363995296f doc/APIchanges: fill in some missing things
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-30 03:09:04 +02:00
James Almer
bc397246aa avutil/hmac: fix API/ABI compatibility with the fork
The test code is updated with some cosmetics to avoid the loop
using undefined AVHMACType values.
The old enum values will be removed in the next major bump, effectively
making both projects synced and without API or ABI issues.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-07-29 21:32:05 -03:00
Michael Niedermayer
15a7a3cf0a Merge commit '65dd6a1f84cc5c9a91d279e8e8b72ff7adf58d31'
* commit '65dd6a1f84cc5c9a91d279e8e8b72ff7adf58d31':
  rtmpproto: use AVHMAC instead of a custom implementation

See: 6c87b866285fae0a45ab4d7162088428f60bd332
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-30 01:36:28 +02:00
Michael Niedermayer
277a5005b7 Merge commit 'e59f7cd89e7f4f096f8456d63191adec2f8b1083'
* commit 'e59f7cd89e7f4f096f8456d63191adec2f8b1083':
  fate: add test vectors for HMAC SHA and SHA-2

Conflicts:
	libavutil/hmac.c
	tests/ref/fate/hmac

See: 1163910a00595f01f5f6aabd5d69b01925429401
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-30 01:28:00 +02:00
Michael Niedermayer
8c5cc7b7fb avutil/hmac: support another ABI difference to the fork
spotted this and so adding it.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-30 01:25:05 +02:00
Michael Niedermayer
865564c466 Merge commit '7e38340b831af8e3271f22bd66b9da14953c02af'
* commit '7e38340b831af8e3271f22bd66b9da14953c02af':
  hmac: add support for SHA-2

Conflicts:
	libavutil/hmac.c
	libavutil/hmac.h

See: 82ef67016ef731268ab7b8e91139bd5f16edc991
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-30 00:24:41 +02:00
wm4
4c6beaed92 rawdec: fix mjpeg probing buffer size check
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-30 00:06:15 +02:00
wm4
bf51fcd304 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>
2015-07-29 23:50:46 +02:00
Michael Niedermayer
f8b81a02c9 avformat/oggdec: ogg_read_seek: reset ogg after seeking
Fixes Ticket4743

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-29 23:22:12 +02:00
James Almer
65dd6a1f84 rtmpproto: use AVHMAC instead of a custom implementation
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-07-29 22:09:16 +03:00
James Almer
e59f7cd89e fate: add test vectors for HMAC SHA and SHA-2
Also replace custom tests for MD5 with those published in RFC 2202

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-07-29 22:09:16 +03:00
James Almer
7e38340b83 hmac: add support for SHA-2
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-07-29 22:09:16 +03:00
James Almer
6c87b86628 avformat/rtmpproto: use AVHMAC instead of a custom implementation
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-07-29 15:32:08 -03:00
Michael Niedermayer
0949869e7b ffmpeg_op: Print warning if duration isnt known when -sseof is used
Found-by: ubitux
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-29 18:58:57 +02:00
Michael Niedermayer
42209eb955 doc/ffmpeg: Use @code
Found-by: ubitux
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-29 18:58:40 +02:00
Michael Niedermayer
1fc20af6af avcodec/dvbsubdec: Implement display definition segment fallback from ETSI EN 300 743 V1.3.1
Fixes: subtitles.ts
Fixes: Ticket679

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-29 18:02:07 +02:00
Michael Niedermayer
f4ada6dc3f ffmpeg: Implement support for seeking relative to EOF
Fixes Ticket227

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-29 17:16:51 +02:00
Nedeljko Babic
902bfa5b22 avcodec/aacdec_fixed: Fix preparation for resampler
2nd channel makes sense only for CPE type.

Skip 2nd channel in preparation for resampler (in spectral_to _sample())
depending on block type.

Fixes fate failure with clang ftrapv.

Signed-off-by: Nedeljko Babic <nedeljko.babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-29 16:53:29 +02:00
Michael Niedermayer
d64ba25a4d ffplay: Use sws_scale to scale subtitles
Fixes some files from Ticket679

This also changes subtitles to 4:2:0 matching the output format and thus
simplifying the blend code.
This restricts placement to the chroma sample resolution though, speak up
if you consider this a problem, say so, the code could be changed to use
YUV444 for subtitles and scaling them down while blending, this would be
slower though.
The current code only uses a single swscale context and reinitializes it
as needed, this could be changed as well if needed

Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-29 16:18:20 +02:00
Michael Niedermayer
f40ec70478 avformat/wavdec: Check for data_size overflow
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-29 13:47:44 +02:00
Ganesh Ajjanagadde
13d605e090 wavdec: make sample count check more precise
May be used to fix Ticket4577

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-29 13:13:09 +02:00
Michael Niedermayer
9ec17e45b2 avcodec/h264_refs: Allow slightly larger pps_ref_count[0] in PAFF RAP detection heuristic
Fixes Ticket4738

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-29 03:03:52 +02:00
Michael Niedermayer
0a6aa30f7c avcodec/h264_refs: extend RAP heuristic to multiple PPS
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-29 03:03:30 +02:00
Michael Niedermayer
9789595189 avcodec/utils: Set coded_frame.pict_type in generic code
This makes it possible to remove more coded_frame usage without breaking the
publically visible coded_frame

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-29 01:45:32 +02:00
Michael Niedermayer
15eda746e7 avcodec/proresenc_anatoliy: remove coded_frame use
coded_frame.key_frame should be set by the core already

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-29 01:37:43 +02:00
Michael Niedermayer
47424b865a avcodec/avcodec: define CODEC_FLAG based on AV_CODEC_FLAG instead of duplicating the numbers and comments
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-28 22:59:59 +02:00
Michael Niedermayer
7a0e085ec5 Merge commit 'c6e0829e3696c894d24c8088c3ee30a9c17534c2'
* commit 'c6e0829e3696c894d24c8088c3ee30a9c17534c2':
  configure: Don't force _WIN32_WINNT to an older version if targeting winphone/winrt

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-28 22:30:21 +02:00
Michael Niedermayer
77c3908d5c Merge commit 'd75b55635a02444c2f188c26e431a1cec992babe'
* commit 'd75b55635a02444c2f188c26e431a1cec992babe':
  dxva2/d3d11va: Set _WIN32_WINNT to 0x0602 instead of 0x0600

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-28 22:22:10 +02:00
Ivan Uskov
9f543e01af libavcodec/qsvdec.c delay in 1 microsecond replaced to more appropriate 500 microseconds
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-28 20:55:17 +02:00
Ivan Uskov
947c2aa456 libavcodec/qsvenc.c delay in 1 microsecond replaced to more appropriate 500 microseconds
This commit replaces the 1 microsecond delay by 500 microsecond for the
case when the MFX library does return MFX_WRN_DEVICE_BUSY status.
In general this warning never appears for simple encoding or
transcoding session because the GPU is so fast so it almost always is not busy and
any delay value just does not executes.
But for heavy transcoding tasks for example, when several QSV sessions
are running simultaneously then using a 1-microsecond delay may
result in 1000 iterations per each frame.
So here possible a paradoxical case when GPU loading also loads CPU by dummy tasks.
Official MFX/QSV samples by Intel are using 1 millisecond (i.e. 1000
microseconds) everywhere where MFX_WRN_DEVICE_BUSY does appear.
So 500us is a much more optimal value than 1us.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-28 20:37:38 +02:00
Nedeljko Babic
fee7c42bf4 avcodec/aac_fixed: Fix a bug in spectral_to_sample()
There was fixed number of loops (2048) in preparation for resampler, so
when number of samples is smaller than this, there would be an overflow on
ret_buf.

For some reason this behavior popped out only under valgrind with
--disable-memory-poisoning option.

This is now fixed and number of loops depends on actual number of samples.

Signed-off-by: Nedeljko Babic <nedeljko.babic@rt-rk.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-28 20:13:07 +02:00
Michael Niedermayer
8c2f00d590 ffmpeg.c: remove all remaining coded_frame uses
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-28 19:52:40 +02:00
Martin Storsjö
c6e0829e36 configure: Don't force _WIN32_WINNT to an older version if targeting winphone/winrt
This avoids having to manually set _WIN32_WINNT in --extra-cflags
when targeting these API families, which only was necessary to
work around configure setting _WIN32_WINNT to an older version
by default.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-07-28 19:37:49 +03:00
Martin Storsjö
d75b55635a dxva2/d3d11va: Set _WIN32_WINNT to 0x0602 instead of 0x0600
If _WIN32_WINNT is unset, we force it to a new enough value to
make sure the necessary definitions are visible.

When targeting Windows Phone or Windows RT, _WIN32_WINNT should
be at least 0x0602 - otherwise the windows headers themselves
can cause errors (which technically are bugs in the headers).

Raising this value here shouldn't hurt; the alternative would
be to not touch it at all if WINAPI_FAMILY is set to phone/app,
or to force setting it to 0x0602 in configure if unset (for phone/app).

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-07-28 19:37:47 +03:00
Ivan Uskov
0b8b18b4fb libavcodec/hevc_mp4toannexb_bsf.c: Optional argument "private_spspps_buf" to avoid extradata modification.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-28 16:22:00 +02:00
Michael Niedermayer
07558ad582 avcodec/libdcadec: exss is used only under ifdef, thus mark it as potentially unused
avoids a compiler warning

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-28 13:35:47 +02:00
Michael Niedermayer
c3fdf536f6 avcodec/h264_slice: Also check sei_recovery_frame_cnt for skip_frame nokey
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-28 13:27:16 +02:00
Michael Niedermayer
accc91642b avcodec/h264_slice: do not skip 2nd field if first was not skipped
Found-by: John Högberg <john.hogberg@ericsson.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-28 11:40:57 +02:00
Chris Spencer
9c41126e1b avdevice/decklink: Fix build error caused by a change in the SDK.
In version 10.4 of the DeckLink SDK, GetBufferedAudioSampleFrameCount() was changed to take an unsigned int instead of an unsigned long.

Signed-off-by: Chris Spencer <spencercw@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-28 05:16:05 +02:00
Michael Niedermayer
cdb0225fa9 ffmpeg: Use side data instead of coded_frame for error[] values
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-28 02:22:23 +02:00
Michael Niedermayer
1ca042a14b avcodec/snowenc: Export quality/pict_type/PSNR stats through side data
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-28 02:22:23 +02:00
Michael Niedermayer
27294bc203 avcodec/mpegvideo_enc: export per frame PSNR through side data
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-28 02:22:22 +02:00
James Almer
5d95f32bff avocdec/mpeg12dec: fix mpeg_xvmc hwaccel flag
The flag is deprecated and as such didn't get a new AV_ prefixed version

Signed-off-by: James Almer <jamrial@gmail.com>
2015-07-27 21:09:53 -03:00
Michael Niedermayer
360cebc9c8 avcodec/mpegvideo_enc: move ff_side_data_set_encoder_stats() call to after the vbv retry code
This ensures the data matches the final values

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-28 01:14:02 +02:00
Michael Niedermayer
ea7e4f8e6a Merge commit 'b7040e67ec18259ca634a0e29d98469b3484a87c'
* commit 'b7040e67ec18259ca634a0e29d98469b3484a87c':
  h264: fix AVDISCARD_NONKEY for some interlaced content

Conflicts:
	libavcodec/h264.c

Not merged, the used field is not initialized where it is used

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-28 00:31:58 +02:00
Michael Niedermayer
e1296b5fa4 Merge commit 'b5c1c16247ab7d166c84eaf4564e49a1535fdaaf'
* commit 'b5c1c16247ab7d166c84eaf4564e49a1535fdaaf':
  asfdec: do not align Data Object when Broadcast Flag is set

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-28 00:13:54 +02:00
Michael Niedermayer
4ecc9a2f31 Merge commit 'db21dde3f72c2331653399bdb8745350f015d847'
* commit 'db21dde3f72c2331653399bdb8745350f015d847':
  qsvdec_mpeg2: drop an incorrect comment

Conflicts:
	libavcodec/qsvdec_mpeg2.c

No change as the removed comment was not in libavcodec/qsvdec_mpeg2.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-28 00:13:14 +02:00
Michael Niedermayer
1467304802 Merge commit 'abdc7e403e003e97a0dcc4499ac319bf854aeead'
* commit 'abdc7e403e003e97a0dcc4499ac319bf854aeead':
  fate: Add hap-chunk ref file

Conflicts:
	tests/ref/fate/hap-chunk

See: c7e6443441ed5c1b5f64067dfbf4956bc2c6acbb
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-28 00:04:26 +02:00
Michael Niedermayer
952e9fbb4a Merge commit 'aaf937ee3557bfb99c2ad298591b22a7f22ecbf7'
* commit 'aaf937ee3557bfb99c2ad298591b22a7f22ecbf7':
  hap: Add utility functions file

Conflicts:
	libavcodec/hap.c

No change, no files are/where missing in FFmpeg

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-28 00:02:37 +02:00
Michael Niedermayer
4be1b6bef0 Merge commit '3ee217853a6741b829a2683f49c590618891b1ab'
* commit '3ee217853a6741b829a2683f49c590618891b1ab':
  Support the Hap chunked frame format

Conflicts:
	libavcodec/hap.h
	libavcodec/hapdec.c
	libavcodec/version.h

See: c7e6443441ed5c1b5f64067dfbf4956bc2c6acbb
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 23:53:55 +02:00
Michael Niedermayer
f01e3c5d00 Merge commit '43dd004747fa697396b47d034a80e069facbea09'
* commit '43dd004747fa697396b47d034a80e069facbea09':
  hap: Move some per-stream setup into decoder init rather than per-frame

Conflicts:
	libavcodec/hapdec.c

See: 6074956fa1d2617ac602e49931b06df0a751370e
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 23:37:19 +02:00
Michael Niedermayer
e3ec2cde2c Merge commit 'b94ec30428b9696f99b08055735689623fe63954'
* commit 'b94ec30428b9696f99b08055735689623fe63954':
  lavc: Update version and APIchanges

Conflicts:
	doc/APIchanges
	libavcodec/avcodec.h
	libavcodec/version.h

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 23:21:23 +02:00
Michael Niedermayer
29d147c94d Merge commit '059a934806d61f7af9ab3fd9f74994b838ea5eba'
* commit '059a934806d61f7af9ab3fd9f74994b838ea5eba':
  lavc: Consistently prefix input buffer defines

Conflicts:
	doc/examples/decoding_encoding.c
	libavcodec/4xm.c
	libavcodec/aac_adtstoasc_bsf.c
	libavcodec/aacdec.c
	libavcodec/aacenc.c
	libavcodec/ac3dec.h
	libavcodec/asvenc.c
	libavcodec/avcodec.h
	libavcodec/avpacket.c
	libavcodec/dvdec.c
	libavcodec/ffv1enc.c
	libavcodec/g2meet.c
	libavcodec/gif.c
	libavcodec/h264.c
	libavcodec/h264_mp4toannexb_bsf.c
	libavcodec/huffyuvdec.c
	libavcodec/huffyuvenc.c
	libavcodec/jpeglsenc.c
	libavcodec/libxvid.c
	libavcodec/mdec.c
	libavcodec/motionpixels.c
	libavcodec/mpeg4videodec.c
	libavcodec/mpegvideo.c
	libavcodec/noise_bsf.c
	libavcodec/nuv.c
	libavcodec/nvenc.c
	libavcodec/options.c
	libavcodec/parser.c
	libavcodec/pngenc.c
	libavcodec/proresenc_kostya.c
	libavcodec/qsvdec.c
	libavcodec/svq1enc.c
	libavcodec/tiffenc.c
	libavcodec/truemotion2.c
	libavcodec/utils.c
	libavcodec/utvideoenc.c
	libavcodec/vc1dec.c
	libavcodec/wmalosslessdec.c
	libavformat/adxdec.c
	libavformat/aiffdec.c
	libavformat/apc.c
	libavformat/apetag.c
	libavformat/avidec.c
	libavformat/bink.c
	libavformat/cafdec.c
	libavformat/flvdec.c
	libavformat/id3v2.c
	libavformat/isom.c
	libavformat/matroskadec.c
	libavformat/mov.c
	libavformat/mpc.c
	libavformat/mpc8.c
	libavformat/mpegts.c
	libavformat/mvi.c
	libavformat/mxfdec.c
	libavformat/mxg.c
	libavformat/nutdec.c
	libavformat/oggdec.c
	libavformat/oggparsecelt.c
	libavformat/oggparseflac.c
	libavformat/oggparseopus.c
	libavformat/oggparsespeex.c
	libavformat/omadec.c
	libavformat/rawdec.c
	libavformat/riffdec.c
	libavformat/rl2.c
	libavformat/rmdec.c
	libavformat/rtpdec_latm.c
	libavformat/rtpdec_mpeg4.c
	libavformat/rtpdec_qdm2.c
	libavformat/rtpdec_svq3.c
	libavformat/sierravmd.c
	libavformat/smacker.c
	libavformat/smush.c
	libavformat/spdifenc.c
	libavformat/takdec.c
	libavformat/tta.c
	libavformat/utils.c
	libavformat/vqf.c
	libavformat/westwood_vqa.c
	libavformat/xmv.c
	libavformat/xwma.c
	libavformat/yop.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 23:15:19 +02:00
Michael Niedermayer
444e9874a7 Merge commit 'def97856de6021965db86c25a732d78689bd6bb0'
* commit 'def97856de6021965db86c25a732d78689bd6bb0':
  lavc: AV-prefix all codec capabilities

Conflicts:
	cmdutils.c
	ffmpeg.c
	ffplay.c
	libavcodec/8svx.c
	libavcodec/aacenc.c
	libavcodec/ac3dec.c
	libavcodec/adpcm.c
	libavcodec/alac.c
	libavcodec/atrac3plusdec.c
	libavcodec/bink.c
	libavcodec/dnxhddec.c
	libavcodec/dvdec.c
	libavcodec/dvenc.c
	libavcodec/ffv1dec.c
	libavcodec/ffv1enc.c
	libavcodec/fic.c
	libavcodec/flacdec.c
	libavcodec/flacenc.c
	libavcodec/flvdec.c
	libavcodec/fraps.c
	libavcodec/frwu.c
	libavcodec/gifdec.c
	libavcodec/h261dec.c
	libavcodec/hevc.c
	libavcodec/iff.c
	libavcodec/imc.c
	libavcodec/libopenjpegdec.c
	libavcodec/libvo-aacenc.c
	libavcodec/libvorbisenc.c
	libavcodec/libvpxdec.c
	libavcodec/libvpxenc.c
	libavcodec/libx264.c
	libavcodec/mjpegbdec.c
	libavcodec/mjpegdec.c
	libavcodec/mpegaudiodec_float.c
	libavcodec/msmpeg4dec.c
	libavcodec/mxpegdec.c
	libavcodec/nvenc_h264.c
	libavcodec/nvenc_hevc.c
	libavcodec/pngdec.c
	libavcodec/qpeg.c
	libavcodec/ra288.c
	libavcodec/rv10.c
	libavcodec/s302m.c
	libavcodec/sp5xdec.c
	libavcodec/takdec.c
	libavcodec/tiff.c
	libavcodec/tta.c
	libavcodec/utils.c
	libavcodec/v210dec.c
	libavcodec/vp6.c
	libavcodec/vp9.c
	libavcodec/wavpack.c
	libavcodec/yop.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 22:50:18 +02:00
Michael Niedermayer
94d68a41fa Merge commit '7c6eb0a1b7bf1aac7f033a7ec6d8cacc3b5c2615'
* commit '7c6eb0a1b7bf1aac7f033a7ec6d8cacc3b5c2615':
  lavc: AV-prefix all codec flags

Conflicts:
	doc/examples/muxing.c
	ffmpeg.c
	ffmpeg_opt.c
	ffplay.c
	libavcodec/aacdec.c
	libavcodec/aacenc.c
	libavcodec/ac3dec.c
	libavcodec/ac3enc_float.c
	libavcodec/atrac1.c
	libavcodec/atrac3.c
	libavcodec/atrac3plusdec.c
	libavcodec/dcadec.c
	libavcodec/ffv1enc.c
	libavcodec/h264.c
	libavcodec/h264_loopfilter.c
	libavcodec/h264_mb.c
	libavcodec/imc.c
	libavcodec/libmp3lame.c
	libavcodec/libtheoraenc.c
	libavcodec/libtwolame.c
	libavcodec/libvpxenc.c
	libavcodec/libxavs.c
	libavcodec/libxvid.c
	libavcodec/mpeg12dec.c
	libavcodec/mpeg12enc.c
	libavcodec/mpegaudiodec_template.c
	libavcodec/mpegvideo.c
	libavcodec/mpegvideo_enc.c
	libavcodec/mpegvideo_motion.c
	libavcodec/nellymoserdec.c
	libavcodec/nellymoserenc.c
	libavcodec/nvenc.c
	libavcodec/on2avc.c
	libavcodec/options_table.h
	libavcodec/opus_celt.c
	libavcodec/pngenc.c
	libavcodec/ra288.c
	libavcodec/ratecontrol.c
	libavcodec/twinvq.c
	libavcodec/vc1_block.c
	libavcodec/vc1_loopfilter.c
	libavcodec/vc1_mc.c
	libavcodec/vc1dec.c
	libavcodec/vorbisdec.c
	libavcodec/vp3.c
	libavcodec/wma.c
	libavcodec/wmaprodec.c
	libavcodec/x86/hpeldsp_init.c
	libavcodec/x86/me_cmp_init.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 22:10:35 +02:00
John Högberg
b7040e67ec h264: fix AVDISCARD_NONKEY for some interlaced content
When skip_frame is set to _NONKEY the decoder skips everything except intra
slices, which breaks frames that consist of an intra field together with any
other field type; half the frame becomes garbage. This patch fixes the issue by
letting non-intra slices through if they're part of a keyframe.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-07-27 18:11:00 +02:00
Alexandra Hájková
b5c1c16247 asfdec: do not align Data Object when Broadcast Flag is set
its size is invalid in this case

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-07-27 18:09:30 +02:00
Anton Khirnov
db21dde3f7 qsvdec_mpeg2: drop an incorrect comment
It got copypasted from the h264 decoder, but it does not apply to mpeg2.
2015-07-27 18:09:30 +02:00
Vittorio Giovara
abdc7e403e fate: Add hap-chunk ref file
Missing from the push of 3ee217853a6741b829a2683f49c590618891b1ab.
2015-07-27 16:56:12 +01:00
Vittorio Giovara
aaf937ee35 hap: Add utility functions file
Missing from the push of 3ee217853a6741b829a2683f49c590618891b1ab.
2015-07-27 16:21:14 +01:00
Tom Butterworth
3ee217853a Support the Hap chunked frame format
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-27 16:00:22 +01:00
Tom Butterworth
43dd004747 hap: Move some per-stream setup into decoder init rather than per-frame
This change will reject frames with a texture type which does not match
the stream description.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-27 15:53:03 +01:00
Vittorio Giovara
b94ec30428 lavc: Update version and APIchanges
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-27 15:26:57 +01:00
Vittorio Giovara
059a934806 lavc: Consistently prefix input buffer defines
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-27 15:24:59 +01:00
Vittorio Giovara
def97856de lavc: AV-prefix all codec capabilities
Express bitfields more simply.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-27 15:24:58 +01:00
Vittorio Giovara
7c6eb0a1b7 lavc: AV-prefix all codec flags
Convert doxygen to multiline and express bitfields more simply.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-27 15:24:58 +01:00
Vittorio Giovara
4b6b1082a7 lavc: Deprecate avctx.me_method
This option is extremely codec specific and only a few codecs employ it.
Move it to codec private options instead: mpegenc family supports only 3
values, xavs and x264 use 5, and xvid has a different metric entirely.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-27 15:24:56 +01:00
Vittorio Giovara
03eb557414 wmv2enc: Check memory allocation 2015-07-27 14:44:07 +01:00
Vittorio Giovara
a67b67944a ac3enc_template: Use the correct context field
For audio encoders, delay has no effect, use the appropriate one,
initial_padding (see 2df0c32).
2015-07-27 14:44:07 +01:00
Martin Storsjö
60a21b3d81 configure: Check for _M_ARMT to detect thumb when using MSVC
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-07-27 10:45:32 +03:00
Martin Storsjö
616b409c8f configure: Check MSVC defines for identifying hardfloat
This macro identifies whether VFPv3 is available; MSVC defaults
to hardfloat (except for older MSVC versions for CE, targeting
ARMv4).

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-07-27 10:45:15 +03:00
Martin Storsjö
2192ff84dd configure: Default to armasm for --toolchain=msvc when targeting arm
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-07-27 10:45:08 +03:00
Martin Storsjö
e4015b00d4 configure: Simplify, remove an unnecessary intermediate variable
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-07-27 10:44:44 +03:00
Martin Storsjö
6d3081e6c3 doc: Remove the now unnecessary remark about PATH and link.exe
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-07-27 10:44:31 +03:00
Alexandra Hájková
9e8627a1ff asfdec: interpret the first flag in an asf packet as length flag
if the error correction flag is not set, a packet starts with payload

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-07-27 07:50:32 +02:00
Henrik Gramner
65c1480152 checkasm: Modify report format
Makes it a bit more clear where each test belongs.

Suggested by Anton Khirnov.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-07-27 07:45:11 +02:00
Anton Khirnov
f3bd3810d2 qsvdec_*: add missing CODEC_CAP_DR1 2015-07-27 07:44:34 +02:00
Paul B Mahol
4a2836eaf3 avfilter: add acrossfade filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-26 21:54:13 +00:00
Michael Niedermayer
0b6f092ed3 Merge commit '4b6b1082a73907c7c3de2646c6398bc61320f2c6'
* commit '4b6b1082a73907c7c3de2646c6398bc61320f2c6':
  lavc: Deprecate avctx.me_method

Conflicts:
	doc/encoders.texi
	libavcodec/avcodec.h
	libavcodec/libx264.c
	libavcodec/motion_est.c
	libavcodec/options_table.h
	libavcodec/version.h

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 21:03:20 +02:00
Michael Niedermayer
59b009411f Merge commit '03eb55741427c6608f63972c105e565ca0ba4f15'
* commit '03eb55741427c6608f63972c105e565ca0ba4f15':
  wmv2enc: Check memory allocation

Conflicts:
	libavcodec/wmv2enc.c

See: 6e8fe448154e1aa0928cb0d2e1aecb7255c751cc
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 20:43:25 +02:00
Michael Niedermayer
c707437572 Merge commit 'a67b67944aa9e6e794934d15f9fd9a9cf7173e09'
* commit 'a67b67944aa9e6e794934d15f9fd9a9cf7173e09':
  ac3enc_template: Use the correct context field

See: 320ce9f284171f8c8d8561cccd2186c27f24898c
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 20:33:34 +02:00
Michael Niedermayer
af5f707e46 avcodec/v410enc: do not use internal->byte_buffer
it is not optimal when the buffer size is well known at allocation time

This avoids a memcpy()

about 1% faster

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-27 20:03:02 +02:00
Michael Niedermayer
9fe873bec8 avcodec/utils: do not use internal->byte_buffer when little downsizing is expected
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 20:03:02 +02:00
Michael Niedermayer
0dbfb5386f avcodec/internal: Deprecate ff_alloc_packet() in favor of ff_alloc_packet2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-27 19:58:36 +02:00
Michael Niedermayer
e36db49b7b avcodec: Add a min size parameter to ff_alloc_packet2()
This parameter can be used to inform the allocation code about how much
downsizing might occur, and can be used to optimize how to allocate the
packet

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 19:57:52 +02:00
Claudio Freire
59216e0525 AAC Encoder: clipping avoidance
Avoid clipping due to quantization noise to produce audible
artifacts, by detecting near-clipping signals and both attenuating
them a little and encoding escape-encoded bands (usually the
loudest) rounding towards zero instead of nearest, which tends to
decrease overall energy and thus clipping.

Currently fate tests measure numerical error so this change makes
tests using asynth (which are near clipping) report higher error
not less, because of window attenuation. Yet, they sound better,
not worse (albeit subtle, other samples aren't subtle at all).
Only measuring psychoacoustically weighted error would make for
a representative test, so that will be left for a future patch.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 19:13:48 +02:00
Michael Niedermayer
c8c86b8f9b avformat/mpegts: Replace silent cliping of language_count by asserts
Failure should not be possible, if it does occur then the code is
buggy and should be fixed not silently clip

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 18:15:17 +02:00
Shivraj Patil
71aede3ced avcodec/mips: MSA (MIPS-SIMD-Arch) optimizations for VP9 bilinear functions
Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 17:13:24 +02:00
Michael Niedermayer
42aa02418e avformat/mpegts: Use DVB_TELETEXT timestamp heuristic also for DVB subtitles
Fixes Ticket4200

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 15:38:40 +02:00
Michael Niedermayer
d06ea6e5ce Merge commit '60a21b3d81c1a11cf5a08950eadd4e84ca2e597c'
* commit '60a21b3d81c1a11cf5a08950eadd4e84ca2e597c':
  configure: Check for _M_ARMT to detect thumb when using MSVC

Conflicts:
	configure

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 13:20:12 +02:00
Michael Niedermayer
8324d427c2 Merge commit '616b409c8f1e4fa568908212c01f6530da8d2e71'
* commit '616b409c8f1e4fa568908212c01f6530da8d2e71':
  configure: Check MSVC defines for identifying hardfloat

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 13:07:49 +02:00
Michael Niedermayer
d9f3efd3d6 Merge commit '2192ff84dd720968108bc1ca54e239f4c94eb61d'
* commit '2192ff84dd720968108bc1ca54e239f4c94eb61d':
  configure: Default to armasm for --toolchain=msvc when targeting arm

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 13:00:09 +02:00
Michael Niedermayer
a74e3fc18b Merge commit 'e4015b00d4e9e40dc1693a018edd51bf7a04993e'
* commit 'e4015b00d4e9e40dc1693a018edd51bf7a04993e':
  configure: Simplify, remove an unnecessary intermediate variable

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 12:51:52 +02:00
Michael Niedermayer
46f01e4133 Merge commit '6d3081e6c374ff7da12b07ed33d1662be1b32dbc'
* commit '6d3081e6c374ff7da12b07ed33d1662be1b32dbc':
  doc: Remove the now unnecessary remark about PATH and link.exe

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 12:50:10 +02:00
Michael Niedermayer
90696ef368 Merge commit '9e8627a1ff9207b9e272d248da2e1bd0cc6fe2fe'
* commit '9e8627a1ff9207b9e272d248da2e1bd0cc6fe2fe':
  asfdec: interpret the first flag in an asf packet as length flag

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 12:27:35 +02:00
Michael Niedermayer
b940145c67 Merge commit '65c14801527068fcaf729eeffc142ffd4682a21a'
* commit '65c14801527068fcaf729eeffc142ffd4682a21a':
  checkasm: Modify report format

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 12:27:12 +02:00
Michael Niedermayer
d12be9ed70 Merge commit 'f3bd3810d274a7f51b5925fc3d2fc33e8043a5d4'
* commit 'f3bd3810d274a7f51b5925fc3d2fc33e8043a5d4':
  qsvdec_*: add missing CODEC_CAP_DR1

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 11:50:17 +02:00
Michael Niedermayer
c719b7a42b ffserver: add (), fix order of operations
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 11:40:00 +02:00
Reynaldo H. Verdejo Pinochet
b16b8c815c ffserver: drop superfluous else clause
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-07-26 23:53:08 -03:00
Reynaldo H. Verdejo Pinochet
c75bc268a2 ffserver: simplify assignment with ternary
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-07-26 23:11:37 -03:00
Reynaldo H. Verdejo Pinochet
2ea642ff4b ffserver: move decl to start of func
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-07-26 22:29:47 -03:00
Michael Niedermayer
33c4fc0a2d doc/decoders: Add entry for dvbsub and document compute_clut
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 00:06:43 +02:00
Michael Niedermayer
d41dceb14e avcodec/dvbsubdec: Add option to select when to computer clut (always/never/"if needed")
Reviewed-by: Anshul <anshul.ffmpeg@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 00:02:48 +02:00
Michael Niedermayer
dcc540db6e Merge commit '342b0ba5f93b09b1d0c2597db44605300e6fcc53'
* commit '342b0ba5f93b09b1d0c2597db44605300e6fcc53':
  configure: Only redirect strtoll to _strtoi64 if necessary

Conflicts:
	configure

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-26 23:32:29 +02:00
Michael Niedermayer
27e61a716c Merge commit '5fd553d31272d5ed42a7a5a0ecaab7b3452da83a'
* commit '5fd553d31272d5ed42a7a5a0ecaab7b3452da83a':
  configure: Only redefine inline to __inline for msvc if necessary

Conflicts:
	configure

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-26 23:19:56 +02:00
Michael Niedermayer
867686997c Merge commit '0cff125200ab53fa3ae70d85b4f614f269fe3426'
* commit '0cff125200ab53fa3ae70d85b4f614f269fe3426':
  configure: Only add -FIstdlib.h for msvc/icl if necessary

Conflicts:
	configure

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-26 22:59:10 +02:00
Michael Niedermayer
508c815d4d Merge commit '9b4b96c0dee90d260891ec765b28f6ca15594340'
* commit '9b4b96c0dee90d260891ec765b28f6ca15594340':
  force WINAPI_FAMILY to WINAPI_FAMILY_DESKTOP_APP to be able to use dxva.h

Conflicts:
	libavcodec/dxva2_internal.h

See: c5327df838396e7c43a56bdd141c0f01ba3edc94
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-26 22:41:18 +02:00
Michael Niedermayer
dc07e576ce avformat/isom: Use AVRN codec to handle AVDJ
Fixes cropping

Fixes Ticket4741

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-26 22:27:29 +02:00
Michael Niedermayer
29a43bd588 avformat/hlsenc: Fix wording in comment
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-26 22:06:19 +02:00
Steve Lhomme
c5327df838 force WINAPI_FAMILY to WINAPI_FAMILY_DESKTOP_APP to use DVXA
The struct definitions in dxva.h, which are necessary in order to
actually use d3d11va, are hidden when WINAPI_FAMILY targets Windows Phone
or WindowsRT.

Building with WINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP is disallowed
when targeting ARM. ("Compiling Desktop applications for the ARM
platform is not supported.") So we set _CRT_BUILD_DESKTOP_APP to 0
to tell the runtime not to detect some issues with this mismatching.

The same tweaks to detect if the API is available is done in dxva2_internal.h
when compiling each DXVA2/D3D11VA decoders.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-26 22:02:20 +02:00
Martin Storsjö
342b0ba5f9 configure: Only redirect strtoll to _strtoi64 if necessary
This isn't necessary any longer on MSVC 2013 Update 4.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-07-26 20:33:09 +03:00
Martin Storsjö
5fd553d312 configure: Only redefine inline to __inline for msvc if necessary
This isn't necessary on MSVC 2015 any longer.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-07-26 20:33:01 +03:00
Martin Storsjö
0cff125200 configure: Only add -FIstdlib.h for msvc/icl if necessary
This is only necessary on MSVC 2010/2012 (and possibly on some
ICL versions). This both avoids an extra hack on newer MSVC
versions, and better documents what the extra compiler option
is used for.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-07-26 20:33:00 +03:00
Steve Lhomme
9b4b96c0de force WINAPI_FAMILY to WINAPI_FAMILY_DESKTOP_APP to be able to use dxva.h
The struct definitions in dxva.h, which are necessary in order to
actually use d3d11va, are hidden when WINAPI_FAMILY targets Windows Phone
or WindowsRT.

Building with WINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP is disallowed
when targeting ARM. ("Compiling Desktop applications for the ARM
platform is not supported.") So we set _CRT_BUILD_DESKTOP_APP to 0
to tell the runtime not to detect some issues with this mismatching.

The same tweaks to detect if the API is available is done in dxva2_internal.h
when compiling each DXVA2/D3D11VA decoders.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-07-26 20:18:03 +03:00
Niklesh
f21fcf60ec movtextdec.c: Add support for fontsize
Add support for fontsize in style records. The patch uses reset to
directly change back to default style instead of using closing tags,
since we are not handling the default styles right now.

Signed-off-by: Niklesh <niklesh.lalwani@iitb.ac.in>
2015-07-26 09:35:20 -07:00
WereCatf
7106dfd945 avcodec/nvenc: 2-pass mode works even with non-low latency presets now
Github: Closes #140

Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2015-07-26 17:40:56 +02:00
Michael Niedermayer
e0031ca29a avcodec/avrndec: Fix cropping
This also switches to using a separate AVCodecContext for the inner mjpeg decoder
which is cleaner and avoids fields from being overwritten with wrong values

Fixes Ticket162

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-26 17:18:35 +02:00
Michael Niedermayer
4b90dcb849 avcodec/dvbsubdec: Compute default CLUT based on bitmap analysis
Fixes displaying subtitles before any CLUT has been received
Fixes Ticket153

This will of course not display these initial subtitles in the correct
color (as that is not known at that point) but they should look clean
and not corrupted

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-26 14:39:55 +02:00
Michael Niedermayer
ce466275f8 Merge commit '4d0d55cd623bcd504867f948849380f6b4060b4d'
* commit '4d0d55cd623bcd504867f948849380f6b4060b4d':
  checkasm: Use LOCAL_ALIGNED

See: f467fc02b475cd45b68aa5fb5f7c78286110ba86
See: 9e83ac6114de3d94eb992eff8ed810234069a7b2
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-26 11:39:58 +02:00
Michael Niedermayer
4d0d55cd62 checkasm: Use LOCAL_ALIGNED
Fixes alignment issues and bus errors.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-07-26 10:36:22 +03:00
James Almer
f37a5dcb55 swresample/x86: add missing colon to labels
Silences warnings with Nasm

Signed-off-by: James Almer <jamrial@gmail.com>
2015-07-26 02:51:13 -03:00
James Almer
4d2c014a8f x86/float_dsp: add missing colon to labels
Silences warnings with Nasm

Signed-off-by: James Almer <jamrial@gmail.com>
2015-07-26 02:51:08 -03:00
James Almer
d9e10af547 x86/vf_interlace: add missing colon to labels
Silences warnings with Nasm

Signed-off-by: James Almer <jamrial@gmail.com>
2015-07-26 02:50:50 -03:00
James Almer
844bef578e avcodec/x86: add missing colon to labels
Silences warnings with Nasm

Signed-off-by: James Almer <jamrial@gmail.com>
2015-07-26 02:50:14 -03:00
Anshul Maheshwari
379ddc6af4 avformat/hlsenc: Add WebVtt support in hls
Signed-off-by: Anshul Maheshwari <er.anshul.maheshwari@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-26 05:59:43 +02:00
James Almer
ec7f04c13a avcodec/texturedsp: fix undefined shift
Silences warnings when using -Wshift-overflow (GCC 6+)

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-07-26 00:40:17 -03:00
Michael Niedermayer
c3361b3a87 avformat/ipmovie: Fix late audio detection
Fixes audio in Ticket117

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-26 04:00:02 +02:00
Michael Niedermayer
8e0fdb03a2 avformat/ipmovie: Parse&handle late audio init
Fixes Ticket117

Based on problem description by Kostya
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-26 03:41:57 +02:00
Michael Niedermayer
e011538394 avformat/ipmovie: Factor init_audio() out
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-26 03:40:19 +02:00
Ivan Uskov
684b703843 libavcodec/qsvdec_h264.c: using "private_spspps_buf" argument for av_bitstream_filter_filter() to avoid failure after decoder re-initialization.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-26 02:04:41 +02:00
Ivan Uskov
1defff85cb libavcodec/h264_mp4toannexb_bsf.c: Optional argument "private_spspps_buf" to avoid extradata modification.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-26 01:44:41 +02:00
Michael Niedermayer
508b79e6c1 Merge commit '41d47ea85fb4ad9cfb5c2dc808a46bc1d57f3986'
* commit '41d47ea85fb4ad9cfb5c2dc808a46bc1d57f3986':
  lavc: add Intel libmfx-based HEVC decoder.

Conflicts:
	Changelog
	configure
	libavcodec/Makefile
	libavcodec/allcodecs.c
	libavcodec/qsvdec.c
	libavcodec/qsvdec_h2645.c
	libavcodec/version.h

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-26 01:20:46 +02:00
Michael Niedermayer
bb619f41be Merge commit 'bf52f773913cf74bdf0d2c8c2cb4473fa1b7801e'
* commit 'bf52f773913cf74bdf0d2c8c2cb4473fa1b7801e':
  lavc: add Intel libmfx-based MPEG2 decoder.

Conflicts:
	configure
	libavcodec/qsvdec_mpeg2.c

Some cosmetics merged, rest is related to the removed parser code and
thus not merged

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-26 00:59:57 +02:00
Timo Rothenpieler
9f4bff834c avcodec/nvenc: Delay frame output to increase encoding speed 2015-07-26 00:52:15 +02:00
Michael Niedermayer
15bcbc9d3b Merge commit 'f89f78c1c563d98f10ee1d7e1ed67c9f9e03b741'
* commit 'f89f78c1c563d98f10ee1d7e1ed67c9f9e03b741':
  lavc: add a HEVC mp4->annex B bitstream filter

Conflicts:
	Changelog

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-26 00:34:27 +02:00
Michael Niedermayer
a822c3bd79 Merge commit '96dca089b19bf55293136277f5b081c56146e10e'
* commit '96dca089b19bf55293136277f5b081c56146e10e':
  qsvdec: move qsv_process_data() from qsvdec_h264 to the common code

Conflicts:
	libavcodec/qsvdec.c
	libavcodec/qsvdec_h264.c

No change as the parser code has been removed

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-26 00:24:31 +02:00
Paul B Mahol
62aab839f8 avfilter/Makefile: fix order of framestep filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-25 22:07:25 +00:00
Paul B Mahol
c1fa846d0c avfilter: add sidechain compress audio filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-25 22:07:20 +00:00
Michael Niedermayer
af08d8bfbb Merge commit 'fa85fcf2b7d1ab822a59245077b8bb855406d3e9'
* commit 'fa85fcf2b7d1ab822a59245077b8bb855406d3e9':
  qsvenc_hevc: fix enum declaration

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-25 23:47:54 +02:00
Timo Rothenpieler
15cd2f8ea9 avcodec/nvenc: Remove unused parameter 2015-07-25 23:43:16 +02:00
Michael Niedermayer
c3413a712a Merge commit '22522d9c2c69624fe4d81d61ee65a56610f22f1d'
* commit '22522d9c2c69624fe4d81d61ee65a56610f22f1d':
  qsvdec: fix a memleak of async_fifo

Conflicts:
	libavcodec/qsvdec.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-25 23:28:39 +02:00
Michael Niedermayer
ef2a85ac53 Merge commit 'aa9d15d89bb4ee8a31607d3db1b8c5334eb88d2d'
* commit 'aa9d15d89bb4ee8a31607d3db1b8c5334eb88d2d':
  qsvdec: avoid an infinite loop with no consumed data and no output

Conflicts:
	libavcodec/qsvdec.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-25 23:10:14 +02:00
Michael Niedermayer
c105e0f077 avcodec/aacps_fixed_tablegen: change f_center to 64bit to avoid overflow
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-25 22:07:41 +02:00
Michael Niedermayer
e171309756 avutil/softfloat: Add a test for av_sincos_sf()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-25 21:42:42 +02:00
Ivan Uskov
fb57bc6c34 avcodec: Add QSV VC-1 video decoder.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-25 19:32:22 +02:00
Michael Niedermayer
7ec5115409 avformat/nutenc: Omit AV_PKT_DATA_QUALITY_STATS when storing side data.
This side data does not serve or improve decoding the data, it thus
would semantically be metadata and not side data.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-25 18:39:17 +02:00
Anton Khirnov
41d47ea85f lavc: add Intel libmfx-based HEVC decoder. 2015-07-25 17:37:01 +02:00
Anton Khirnov
bf52f77391 lavc: add Intel libmfx-based MPEG2 decoder. 2015-07-25 17:36:59 +02:00
Ivan Uskov
6d0123f40e avcodec: Add QSV MPEG-2 video decoder.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-25 17:31:18 +02:00
Anton Khirnov
f89f78c1c5 lavc: add a HEVC mp4->annex B bitstream filter 2015-07-25 17:26:53 +02:00
Anton Khirnov
96dca089b1 qsvdec: move qsv_process_data() from qsvdec_h264 to the common code
It will be shared with the upcoming mpeg2 and hevc decoders.
2015-07-25 17:24:25 +02:00
Anton Khirnov
fa85fcf2b7 qsvenc_hevc: fix enum declaration
Declare a named enum, not a variable with anonymous enum type.
2015-07-25 17:24:03 +02:00
Anton Khirnov
22522d9c2c qsvdec: fix a memleak of async_fifo
init() is called whenever format changes, so current code would leak the
fifo in this case.
2015-07-25 17:23:46 +02:00
Anton Khirnov
aa9d15d89b qsvdec: avoid an infinite loop with no consumed data and no output
This is triggerable with the HEVC decoder. It is unclear yet whether the
bug is in the calling code or the MSDK, but it seems better to check for
this in any case.
2015-07-25 17:23:29 +02:00
Michael Niedermayer
38490e0724 avcodec/dvdec: only attempt to conceal errors based on STA inconsistencies when error_concealment is set
This allows the user to disable it in the hypothetical case that STA values are wrong

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-25 15:27:44 +02:00
Michael Niedermayer
bbad3811cc avcodec/aacps: Fix ;;
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-25 14:07:55 +02:00
Michael Niedermayer
f267d553f7 avcodec/aactab: Add ff_aac_eld_window_480_fixed
Fixes pointer type mismatch

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-25 13:59:53 +02:00
Michael Niedermayer
17cc35c76b avcodec/aactab: Fix rounding of elements in ff_aac_eld_window_512_fixed
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-25 13:19:06 +02:00
Michael Niedermayer
1909a9151c swscale/output: Fix "warning: assignment from incompatible pointer type"
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-25 03:15:56 +02:00
Zhang Rui
8a17335189 avformat/async: wake up main thread before exit background thread
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-25 02:26:01 +02:00
Zhang Rui
c0a4af408e avformat/async: move more code into locked area in background thread
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-25 01:43:44 +02:00
Michael Niedermayer
dee551bbd2 avcodec/dvdec: skip 3rd stage ac decoding when the headers indicates that the data is inconsistent
Fixes Ticket1589

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-25 00:27:38 +02:00
Shivraj Patil
e21b090bfb avcodec/mips: MSA (MIPS-SIMD-Arch) optimizations for VP9 intra functions
Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-24 22:51:34 +02:00
Hendrik Leppkes
0c0cd34f9c configure: fix LARGEADDRESSAWARE flag with MSVC
Otherwise it would get translated like a library path (-L option),
which breaks setting the flag.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-24 21:56:10 +02:00
James Almer
ede590c84d avcodec/aacsbr: add missing header include
Fixes make checkheaders

Signed-off-by: James Almer <jamrial@gmail.com>
2015-07-24 16:27:52 -03:00
Michael Niedermayer
dae79a185f Merge commit 'c9edbe4af901e9bc9f05a62319637f9760df9a4a'
* commit 'c9edbe4af901e9bc9f05a62319637f9760df9a4a':
  use a wrapper script to call MS link.exe to avoid mixing with /usr/bin/link.exe

See: 58ed7b632842f3fedbe737c3945cabc56bab2f47
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-24 20:02:48 +02:00
Steve Lhomme
58ed7b6328 use a wrapper script to call MS link.exe to avoid mixing with /usr/bin/link.exe
favor link over link.exe in case some wrapper script already exists
fallback to "link" in the path if the one next to cl is not found

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-24 20:02:32 +02:00
Michael Niedermayer
daf6bce71b avcodec/dvdec: Retry decoding seemingly damaged MBs while skiping likely damaged parts
Improves decoding of Ticket1589

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-24 17:36:00 +02:00
Steve Lhomme
c9edbe4af9 use a wrapper script to call MS link.exe to avoid mixing with /usr/bin/link.exe
Fallback to "link" in the path if the one next to cl is not found.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-07-24 18:21:22 +03:00
Paul B Mahol
3cb8eee6f7 swscale: ayuv64le output support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-24 03:45:48 +00:00
Paul B Mahol
052f64ecb2 swscale: ayuv64le input support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-24 03:44:58 +00:00
Paul B Mahol
f0489a35c0 avutil: add ayuv64le and ayuv64be packed pixel format
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-24 03:40:36 +00:00
Paul B Mahol
44fb00866f avfilter: rename vf_reverse.c to f_reverse.c
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-24 02:09:53 +00:00
Paul B Mahol
591741b51d avfilter: add areverse filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-24 02:06:48 +00:00
Ivan Uskov
0b159e3b65 libavcodec/qsvdec_h264.c: packet buffering has been removed since qsvdec.c does maintain own data buffering now.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-24 13:03:42 +02:00
Ivan Uskov
c90dbc67ed libavcodec/qsvdec.c: The ff_qsv_decode() now guarantees the consumption of whole packet.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-24 12:46:55 +02:00
Michael Niedermayer
5da90d7ec3 avcodec/hapdec: Check that there is sufficient input data
Fixes Ticket4729

Found-by: ami_stuff
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-24 04:40:15 +02:00
Michael Niedermayer
da8b70b810 Merge commit 'a54e720e0289433d6bc3f7ba0a37fa5cabfaeea9'
* commit 'a54e720e0289433d6bc3f7ba0a37fa5cabfaeea9':
  configure: force -nologo- when detecting MSVC

Conflicts:
	configure

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-24 00:44:58 +02:00
Michael Niedermayer
c6965f62a2 Merge commit '44f7df0c987965763c609f6dc36974b04182e58d'
* commit '44f7df0c987965763c609f6dc36974b04182e58d':
  dds: Write the palette in the native endian form

Conflicts:
	libavcodec/dds.c

See: 36a87c2dc7f302da3778bd0cff050b5c93a730c7
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-23 21:30:28 +02:00
Steve Lhomme
a54e720e02 configure: force -nologo- when detecting MSVC
The -nologo- option is the inverse of -nologo, reenabling printing the
"logo" version header. This is useful if the compiler actually is a
wrapper that forces -nologo.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-07-23 22:28:08 +03:00
Tom Butterworth
64539e1213 avcodec/hap: (trivial) rename enum values and document their meaning
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-23 20:59:57 +02:00
Tom Butterworth
26e8247c1c avcodec/hap: (trivial) clarify comment
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-23 20:57:52 +02:00
Martin Storsjö
44f7df0c98 dds: Write the palette in the native endian form
This fixes the palette on big endian, broken (or, differing from
little endian) since 57214b2f7.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-07-23 19:07:43 +03:00
Tom Butterworth
11f3d5c69b hap: Name enums, remove unused struct member 2015-07-23 13:35:16 +01:00
Tom Butterworth
083cbc930d snappy: Refactor so ff_snappy_uncompress() uses an existing buffer
Some uses of Snappy require uncompressing to positions within
an existing buffer. Also adds a function to get the uncompressed
length of Snappy data.
2015-07-23 13:35:16 +01:00
Alexandra Hájková
7f388c0fab asfdec: remove the wrong condition
this condition breaks reading from the pipe as data_reached variable
have to be set to break while in the asf_read_header just after the Data
Object is found

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-07-23 10:50:27 +02:00
Tom Butterworth
ae5a8dca67 hap: Fix slice size computation
A bug was introduced in 977105407cae55876041dddbf4ce0934cdd4cd6c whereby when
frame height wasn't divisible by the number of threads, pixels would be omitted
from the bottom rows during decode.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-07-23 10:46:19 +02:00
Tom Butterworth
ebe8b5d947 dds: Fix the slice size computation
A bug was introduced in 6b2b26e7af3ede0abfb46eb5725c26d1083f50bc whereby when
frame height wasn't divisible by the number of threads, pixels would be omitted
from the bottom rows during decode.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-07-23 10:45:40 +02:00
Anton Khirnov
22ecfcd4c7 af_channelmap: properly set the supported output channel layouts
The current code expects query_formats() to be called exactly once, it
will leak if it's not called at all (filter initialized, but never
configured or used) or try to read freed memory if it's called more than
once.

Found-by: James Almer <jamrial@gmail.com>
CC: libav-stable@libav.org
2015-07-23 09:53:55 +02:00
Alexandra Hájková
aed7715b8f asfdec: increment nb_streams right after the stream allocation
to prevent possible memory leaks

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-07-23 09:48:26 +02:00
Alexandra Hájková
ee80f834cb asfdec: set nb_streams to 0 in the asf_read_close
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-07-23 09:47:59 +02:00
Paul B Mahol
e59315c4ab doc/filters.texi: fix two typos in reverse filter description
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-23 07:35:54 +00:00
Paul B Mahol
625bf6a55c avfilter/vf_reverse: check also pts_size when reallocating
Fixes crash of x32.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-23 07:11:52 +00:00
Michael Niedermayer
cb59d29fd6 Merge commit '11f3d5c69b711a1f1631961921ecd20d31f8336d'
* commit '11f3d5c69b711a1f1631961921ecd20d31f8336d':
  hap: Name enums, remove unused struct member

Conflicts:
	libavcodec/hap.h

See: 440c26e9c46bb26bc1fc8306561ed6962ae7d3bf
See: d8488090e5070187e9d8d0a93b8d841f26bde990
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-23 18:43:59 +02:00
Michael Niedermayer
efa1e26122 Merge commit '083cbc930d077651ea7e3fbc32ec45352cfed7e7'
* commit '083cbc930d077651ea7e3fbc32ec45352cfed7e7':
  snappy: Refactor so ff_snappy_uncompress() uses an existing buffer

Conflicts:
	libavcodec/hapdec.c
	libavcodec/snappy.c

See: 17ee24af7e5f7112fe25c734236d521f9e35d80d
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-23 17:52:46 +02:00
Michael Niedermayer
8eff61fd45 avcodec/mips/vp9_idct_msa: Replace __volatile__ by volatile
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-23 17:38:01 +02:00
Shivraj Patil
c03800d592 avcodec/mips: MSA (MIPS-SIMD-Arch) optimizations for VP9 idct functions
Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-23 17:29:55 +02:00
Ivan Uskov
d50ab820da libavcodec/qsvdec_h264.c: refactoring: functionality of qsv_process_data() has been moved into qsvdec.c
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-23 17:10:39 +02:00
Shivraj Patil
fd7eadd25c avcodec/mips: MSA (MIPS-SIMD-Arch) optimizations for VP9 lpf functions
Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-23 16:52:18 +02:00
Nicolas George
52c75d486e lavc/hevc: rudimentary support for skip_loop_filter.
+~9% speed on Core i5 on test sample.

All frames are treated as ref frames, skipping only applies
at level "all". The following mail contains information on
how to improve that:
http://ffmpeg.org/pipermail/ffmpeg-devel/2015-July/176116.html
2015-07-23 16:26:14 +02:00
Michael Niedermayer
744051a57a avcodec/hevc_parse: Print the name of the NAL units in addition to the numerical nal_unit_type in the debug output
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-23 16:05:20 +02:00
Michael Niedermayer
0a03271ef6 Merge commit '7f388c0fabc51eca3106e7cc443393269435ab52'
* commit '7f388c0fabc51eca3106e7cc443393269435ab52':
  asfdec: remove the wrong condition

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-23 12:45:00 +02:00
Michael Niedermayer
b04b021005 Merge commit 'ae5a8dca675ee544178225256893e679b750cb63'
* commit 'ae5a8dca675ee544178225256893e679b750cb63':
  hap: Fix slice size computation

Conflicts:
	libavcodec/hapdec.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-23 12:35:10 +02:00
Michael Niedermayer
157fa73992 Merge commit 'ebe8b5d947c41449c684f17c6826fe6bc46c0360'
* commit 'ebe8b5d947c41449c684f17c6826fe6bc46c0360':
  dds: Fix the slice size computation

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-23 12:20:53 +02:00
Michael Niedermayer
9c31b39641 Merge commit '22ecfcd4c79cdf812fdf406525ddf0fd1f7114e4'
* commit '22ecfcd4c79cdf812fdf406525ddf0fd1f7114e4':
  af_channelmap: properly set the supported output channel layouts

Conflicts:
	libavfilter/af_channelmap.c

See: 39867f3e098ab304cd3bef0ace19d73617cdb817
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-23 11:57:45 +02:00
Michael Niedermayer
40e8ade9eb Merge commit 'aed7715b8fa295980c221f1cd095d42cd3bd74a6'
* commit 'aed7715b8fa295980c221f1cd095d42cd3bd74a6':
  asfdec: increment nb_streams right after the stream allocation

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-23 11:43:56 +02:00
Michael Niedermayer
cd4c878934 Merge commit 'ee80f834cbb6dbacdc1efb4c658a7d775e82ebff'
* commit 'ee80f834cbb6dbacdc1efb4c658a7d775e82ebff':
  asfdec: set nb_streams to 0 in the asf_read_close

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-23 11:34:40 +02:00
James Almer
a176bbc873 avutil/softfloat: move av_sincos_sf() back to header
Fixes compilation of host tool aacps_fixed_tablegen

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-07-22 23:12:21 -03:00
Ivan Uskov
1acb19d12b libavcodec/qsvdec_h264.c: SPS parsing is now performed by MFXVideoDECODE_DecodeHeader() in libavcodec/qsvdec.c
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-23 03:48:00 +02:00
Michael Niedermayer
f467fc02b4 tests/checkasm/h264pred: Use LOCAL_ALIGNED_16()
Fixes alignment issue and bus errors

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-23 00:44:02 +02:00
Michael Niedermayer
9e83ac6114 tests/checkasm/h264qpel: Use LOCAL_ALIGNED_16()
Fixes alignment issue and bus errors

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-23 00:35:18 +02:00
Jovan Zelincevic
9e3135f49e Edit documentation and versioning for the fixed point AAC decoder
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-22 23:25:33 +02:00
Nedeljko Babic
a9d986c2ce avcodec: Minor macro polishing
Use macros from aac_defines.h for adding suffixes
 instead of local macros.

Signed-off-by: Nedeljko Babic <nedeljko.babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-22 23:23:29 +02:00
Michael Niedermayer
4845f6687d fate: Make ffprobe tests depend on avdevice
The test file they use needs avdevice to be created

Probably fixes Ticket 4455

Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-22 22:26:10 +02:00
Nedeljko Babic
978a8540b6 tests: Add aac_fixed decoder test
Signed-off-by: Nedeljko Babic <nedeljko.babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-22 21:51:37 +02:00
Djordje Pesut
5fd81cf6f0 avcodec: Implementation of AAC_fixed_decoder (PS-module)
Add fixed point implementation.

Signed-off-by: Nedeljko Babic <nedeljko.babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-22 21:51:28 +02:00
Jovan Zelincevic
631496e057 avcodec: Table creation for AAC_fixed_decoder (PS-module)
Add fixed point implementation of functions for generating tables.

Signed-off-by: Nedeljko Babic <nedeljko.babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-22 21:51:22 +02:00
Michael Niedermayer
5362df2ee3 avcodec: remove unused sd variables
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-22 21:04:17 +02:00
Michael Niedermayer
3d083f6ffd avformat/dump: Also print pict_type in dump_sidedata() for AV_PKT_DATA_QUALITY_STATS
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-22 21:04:17 +02:00
Michael Niedermayer
975257ffe6 avcodec/libx264: Export choosen pict_type
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-22 20:49:01 +02:00
Michael Niedermayer
caba19a5be avcodec/dnxhdenc: Set pict type for AV_PKT_DATA_QUALITY_STATS correctly
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-22 20:46:52 +02:00
Michael Niedermayer
557e011bf1 avcodec/libxavs: Export pict_type in side data
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-22 19:52:04 +02:00
Michael Niedermayer
c40ecffd31 Replace AV_PKT_DATA_QUALITY_FACTOR by AV_PKT_DATA_QUALITY_STATS
The stats are a superset of the quality factor, also allowing the picture type and encoder "PSNR" stats to be exported
This also replaces the native by fixed little endian order for the affected side data

AV_PKT_DATA_QUALITY_FACTOR is left as a synonym of AV_PKT_DATA_QUALITY_STATS

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-22 19:31:52 +02:00
Donny Yang
a906e86a8d apng: Fix decoding images with the PREVIOUS dispose op 2015-07-22 16:42:24 +00:00
Michael Niedermayer
1d7fa1ac89 Merge commit '21c90d86d27c2143354c7d782050a779b0986eb1'
* commit '21c90d86d27c2143354c7d782050a779b0986eb1':
  mpegvideo: Add missing include

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-22 18:08:07 +02:00
Michael Niedermayer
d231d2be71 Merge commit 'a16854892c3af945d3ab0015699a0c9884f0a89a'
* commit 'a16854892c3af945d3ab0015699a0c9884f0a89a':
  dds: Add a rgba fate test

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-22 17:59:24 +02:00
Paul B Mahol
787d370e14 avfilter: add deband filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-22 15:52:02 +00:00
Michael Niedermayer
b68e445f9b Merge commit 'd08d8b61aa9f07d3ea993fe5392f7408c958d221'
* commit 'd08d8b61aa9f07d3ea993fe5392f7408c958d221':
  dds: Fix 32bpp bitmaps decoding

Conflicts:
	libavcodec/dds.c

See: 5c583b141980102530c75d2756b06766742532a1
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-22 17:30:22 +02:00
Michael Niedermayer
05cf687d13 Merge commit '57214b2f7f9b1ccfd61e232e8989b5ee850f169c'
* commit '57214b2f7f9b1ccfd61e232e8989b5ee850f169c':
  dds: Fix palette decoding

Conflicts:
	libavcodec/dds.c

See: 36a87c2dc7f302da3778bd0cff050b5c93a730c7
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-22 17:26:37 +02:00
Michael Niedermayer
eaf15bba03 Merge commit 'ea4d46e72945cba37feb7aa154eb970732f513e4'
* commit 'ea4d46e72945cba37feb7aa154eb970732f513e4':
  dds: Fix enum declaration

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-22 17:14:24 +02:00
Michael Niedermayer
6b9be608ce Merge commit '2a187a074a7f5ad9f01f72ac9715ddfcb2dbb8ec'
* commit '2a187a074a7f5ad9f01f72ac9715ddfcb2dbb8ec':
  asfdec: avoid crash in the case when chunk_len is 0 or pkt_len is 0

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-22 17:13:18 +02:00
Michael Niedermayer
fa7defc89a Merge commit '93f16f338f9e8aba0c006752eb3afc3fe6e137fd'
* commit '93f16f338f9e8aba0c006752eb3afc3fe6e137fd':
  asfdec: close the demuxer properly when read_header is failing

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-22 17:06:22 +02:00
Michael Niedermayer
fce350be0e Merge commit '5655236a67203d923755f285584c6e68abe7e33f'
* commit '5655236a67203d923755f285584c6e68abe7e33f':
  asfdec: factor out seeking to the Data Object outside while

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-22 16:53:26 +02:00
Michael Niedermayer
fbdbe7a5d2 Merge commit 'ecee1148af4989e1f9e16f0cdc9f98ad2045538c'
* commit 'ecee1148af4989e1f9e16f0cdc9f98ad2045538c':
  qsvenc_hevc: use the correct HW plugin UID

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-22 16:46:25 +02:00
Michael Niedermayer
e1b5a2e46e Merge commit 'e605bf3b590d295f215fcc9fd58eb11be55b68cb'
* commit 'e605bf3b590d295f215fcc9fd58eb11be55b68cb':
  checkasm: remove empty array initializer list in h264pred test

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-22 16:38:16 +02:00
Michael Niedermayer
c1692439e0 Merge commit '3ae0e721c7b6e0483801b9039b3d140e3b68b7f5'
* commit '3ae0e721c7b6e0483801b9039b3d140e3b68b7f5':
  checkasm: Always link statically

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-22 16:30:37 +02:00
Tom Butterworth
c7e6443441 Support the Hap chunked frame format
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-22 16:15:53 +02:00
Vittorio Giovara
21c90d86d2 mpegvideo: Add missing include 2015-07-22 13:35:44 +01:00
Vittorio Giovara
a16854892c dds: Add a rgba fate test 2015-07-22 13:35:44 +01:00
Michael Niedermayer
d08d8b61aa dds: Fix 32bpp bitmaps decoding
Found-By: ami_stuff
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-22 13:35:44 +01:00
Vittorio Giovara
57214b2f7f dds: Fix palette decoding
Red and blue channels were decoded in the wrong order.

Found-By: ami_stuff
2015-07-22 13:35:44 +01:00
Vittorio Giovara
ea4d46e729 dds: Fix enum declaration
Drop the global variables with anonymous enum type.
2015-07-22 13:35:43 +01:00
Michael Niedermayer
9837d3b068 avformat/asfdec_f: Parse ECC byte according to spec
This should not change anything as the spec requires specific values
for the fields, which where handled previously.

Ask for samples when these values do not match

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-22 14:11:48 +02:00
Alexandra Hájková
2a187a074a asfdec: avoid crash in the case when chunk_len is 0 or pkt_len is 0
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-07-22 12:11:46 +02:00
Alexandra Hájková
93f16f338f asfdec: close the demuxer properly when read_header is failing
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-07-22 12:11:46 +02:00
Alexandra Hájková
5655236a67 asfdec: factor out seeking to the Data Object outside while
return INVALIDDARA if Data Object was not found

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-07-22 12:11:46 +02:00
Anton Khirnov
ecee1148af qsvenc_hevc: use the correct HW plugin UID 2015-07-22 12:11:46 +02:00
周晓勇
3e35f8efa1 avcodec: loongson optimize pixblockdsp with mmi
Signed-off-by: ZhouXiaoyong <zhouxiaoyong@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-22 12:11:31 +02:00
Janne Grunau
e605bf3b59 checkasm: remove empty array initializer list in h264pred test
Fixes MSVC compilation.
2015-07-22 12:06:32 +02:00
Carl Eugen Hoyos
6b2bb3d231 Cosmetics: Reindent after last commit. 2015-07-22 10:25:10 +02:00
Carl Eugen Hoyos
35b33f1a19 lavf/mxfdec: Set codec_tag AVup for Avid 1:1 input. 2015-07-22 10:23:18 +02:00
Niklesh
d373b508b5 movtextenc.c: Add support for text highlighting
This patch takes care of the secondary color changes in ASS through highlight and hilightcolor boxes.

Signed-off-by: Niklesh <niklesh.lalwani@iitb.ac.in>
2015-07-21 20:13:40 -07:00
Niklesh
93e80a343b movtextenc.c: Reorganize the code for easier maintenance
This patch reorganizes the code to make it easier to add support for different text modifier boxes and other styles in the future.

Signed-off-by: Niklesh <niklesh.lalwani@iitb.ac.in>
2015-07-21 20:13:40 -07:00
Michael Niedermayer
0671dc5c53 avformat/asfdec_f: Improve packet resync heuristic
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-22 01:30:02 +02:00
Michael Niedermayer
5d79a07316 avformat/asfdec_f: Do not print errors if packets do not start with ECC
There is nothing wrong with such packets, the spec allows this

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-22 01:21:17 +02:00
Michael Niedermayer
385eb066ce avformat/asfdec_f: Increase the amount of information provided in cases of errors
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-22 01:08:34 +02:00
Luca Barbato
3ae0e721c7 checkasm: Always link statically
Checkasm needs to use internal symbols that should not be made public.
2015-07-21 23:22:42 +02:00
Vesselin Bontchev
323ec6b5e2 Add support for TEA (Tiny Encryption Algorithm)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-21 23:10:44 +02:00
Zhang Rui
830d3a0ebe avformat/async: rename async_interrupt_callback to async_check_interrupt
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-21 21:19:05 +02:00
Zhang Rui
5e2098d906 avformat/async: fix interrupt_callback usage and return code
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-21 21:18:48 +02:00
Michael Niedermayer
8fe00dd18a Merge commit '6b2b26e7af3ede0abfb46eb5725c26d1083f50bc'
* commit '6b2b26e7af3ede0abfb46eb5725c26d1083f50bc':
  dds: Decode using optimal slices sizes

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-21 20:35:59 +02:00
Michael Niedermayer
2de5737ee2 Merge commit '977105407cae55876041dddbf4ce0934cdd4cd6c'
* commit '977105407cae55876041dddbf4ce0934cdd4cd6c':
  hap: Decode using optimal slices sizes

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-21 20:21:54 +02:00
Bernd Bleßmann
d2b78fe6b7 libavfilter/vf_crop: implement process_command
Signed-off-by: Bernd Bleßmann <bb@it-entwicklung.de>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-21 19:19:36 +02:00
Bernd Bleßmann
99ad832c7e libavfilter/vf_scale: implement process_command
Signed-off-by: Bernd Bleßmann <bb@it-entwicklung.de>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-21 18:20:22 +02:00
James Almer
d32547a24a avcodec/utils: silence some deprecation warnings
And prevent eventual compilation failures once the relevant functions
and fields are removed.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-07-21 13:03:29 -03:00
James Almer
3e46c7dbbe avcodec/options-test: don't alloc avctx->coded_frame
It's done automatically by avcodec_open2() now.
Fixes memleaks in fate-libavcodec-options.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-07-21 13:03:25 -03:00
周晓勇
c303ad85a9 avcodec: loongson optimize blockdsp with mmi
Signed-off-by: ZhouXiaoyong <zhouxiaoyong@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-21 17:50:19 +02:00
Michael Niedermayer
39867f3e09 avfilter/af_channelmap: Move ff_add_channel_layout() call to querry_format()
Avoids memleak if querry_formats is not called

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-21 17:40:38 +02:00
Michael Niedermayer
f2d7409c72 avformat/async: Add missing else
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-21 17:04:11 +02:00
Michael Niedermayer
be0fd07457 Merge commit '219b39a71a5694b1c14a07b86477f665a5b6849b'
* commit '219b39a71a5694b1c14a07b86477f665a5b6849b':
  parseutil: Use non ambiguous aliases for uhd

Conflicts:
	doc/ffmpeg.texi
	libavutil/parseutils.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-21 16:55:39 +02:00
Michael Niedermayer
593731efa8 tests/checkasm/Makefile: Fix checkasm with SDL
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-21 15:55:05 +02:00
Zhang Rui
aee909acfb fate: add test for async protocol
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-21 15:19:42 +02:00
Tom Butterworth
5d0616ce0e avcodec/hapdec: log reason for failure when texture type doesn't match stream
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-21 14:54:25 +02:00
周晓勇
b50910e9a9 avcodec: loongson optimize xvid idct with mmi
Signed-off-by: ZhouXiaoyong <zhouxiaoyong@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-21 14:48:23 +02:00
周晓勇
21e2f030bf avcodec: loongson move simple idct functions to a separate file
Signed-off-by: ZhouXiaoyong <zhouxiaoyong@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-21 14:48:18 +02:00
Rostislav Pehlivanov
331c1e7494 aacenc: move the generation of ff_aac_pow34sf_tab[]
This commit moves the generation of ff_aac_pow34sf_tab[] out of the
encoder and into the table generator. The original commit log for
this table in 2011 actually mentions that it should be moved outside
but this never happened.

This is the first commit which cleans up the encoder a little.

Reviewed-by: Claudio Freire <klaussfreire@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-21 13:53:04 +02:00
Luca Barbato
6b2b26e7af dds: Decode using optimal slices sizes
Enjoy some cache locality and use less threads.
About the same speedup provided to HAP.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-07-21 12:14:25 +02:00
Luca Barbato
977105407c hap: Decode using optimal slices sizes
Enjoy some cache locality and use less threads.
About 5x speedup (from 60ms to 12ms to decode a 4k frame).

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-07-21 12:14:25 +02:00
Luca Barbato
219b39a71a parseutil: Use non ambiguous aliases for uhd
uhd1 and uhd2 would be ambigous.
2015-07-21 11:43:44 +02:00
Zhang Rui
cee7acfcfc MAINTAINERS: add myself as a maintainer for async protocol
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-21 10:40:31 +02:00
Tom Butterworth
6b96c70f2d avcodec/hapdec: don't log texture format every frame, do it once per decode session
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-21 03:25:01 +02:00
Tom Butterworth
440c26e9c4 libavcodec/hap: remove unused struct member
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-21 03:15:04 +02:00
Tom Butterworth
d8488090e5 libavcodec/hap: Name enums
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-21 03:14:53 +02:00
James Almer
651448a8a7 avcodec/aacsbr: fix compilation with hardcoded tables
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-07-20 21:01:19 -03:00
Michael Niedermayer
eca84946ea Merge commit '9ed6f9a17cc1f7d3699a1223783dadc1ee222069'
* commit '9ed6f9a17cc1f7d3699a1223783dadc1ee222069':
  arm: use a local label instead of the function symbol in ff_prefetch_arm

See: cab6302534962331753fb69c674df86a458b098d
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-21 01:49:21 +02:00
Michael Niedermayer
5d5f8b29b4 Merge commit 'f56d8d8dd72b1ab52aa814c5a0fccabf8040ef68'
* commit 'f56d8d8dd72b1ab52aa814c5a0fccabf8040ef68':
  h264: aarch64: intra prediction optimisations

Conflicts:
	libavcodec/h264pred.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-21 01:39:30 +02:00
Michael Niedermayer
495eee0123 Merge commit '40cf1bbacc6220a0aa6bed5c331871d43f9ce370'
* commit '40cf1bbacc6220a0aa6bed5c331871d43f9ce370':
  Deprecate avctx.coded_frame

Conflicts:
	ffmpeg.c
	libavcodec/a64multienc.c
	libavcodec/asvenc.c
	libavcodec/cljrenc.c
	libavcodec/dpxenc.c
	libavcodec/gif.c
	libavcodec/mpegvideo_enc.c
	libavcodec/nvenc.c
	libavcodec/proresenc_kostya.c
	libavcodec/pthread_frame.c
	libavcodec/rawenc.c
	libavcodec/sunrastenc.c
	libavcodec/tiffenc.c
	libavcodec/version.h
	libavcodec/xbmenc.c
	libavcodec/xwdenc.c
	libavdevice/v4l2.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-21 01:17:15 +02:00
Michael Niedermayer
809780ca42 avcodec/utils: Do not merge side data for encoders
With side data now being added to every MPEG*/H26* video encoder
in the form of a quality scalar, software which simply stores
the pkt->data to get an ES stream would break.
This also as a side-effect makes the code faster

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-21 00:54:59 +02:00
Michael Niedermayer
e5bae39f46 Merge commit '5d3addb937946eca5391e40b5e6308e74ac6f77b'
* commit '5d3addb937946eca5391e40b5e6308e74ac6f77b':
  Add a quality factor packet side data

Conflicts:
	doc/APIchanges
	ffmpeg.c
	libavcodec/avcodec.h
	libavcodec/mpegvideo_enc.c
	libavcodec/version.h

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-21 00:54:42 +02:00
Michael Niedermayer
b1fad7ac20 Merge commit 'd6604b29ef544793479d7fb4e05ef6622bb3e534'
* commit 'd6604b29ef544793479d7fb4e05ef6622bb3e534':
  Gather all coded_frame allocations and free functions to a single place

Conflicts:
	libavcodec/a64multienc.c
	libavcodec/asvenc.c
	libavcodec/cljrenc.c
	libavcodec/dpxenc.c
	libavcodec/dvenc.c
	libavcodec/gif.c
	libavcodec/huffyuvenc.c
	libavcodec/jpeglsenc.c
	libavcodec/libopenjpegenc.c
	libavcodec/libtheoraenc.c
	libavcodec/libvpxenc.c
	libavcodec/mpegvideo_enc.c
	libavcodec/nvenc.c
	libavcodec/pngenc.c
	libavcodec/proresenc_kostya.c
	libavcodec/sunrastenc.c
	libavcodec/tiffenc.c
	libavcodec/utils.c
	libavcodec/utvideoenc.c
	libavcodec/v210enc.c
	libavcodec/v410enc.c
	libavcodec/xbmenc.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-20 23:43:05 +02:00
Janne Grunau
9ed6f9a17c arm: use a local label instead of the function symbol in ff_prefetch_arm
Avoids a relocation which might end out of range for thumb2.

Reported-By: Ludovic Fauvet <etix@videolan.org>
Bug-Id: https://bugs.webkit.org/show_bug.cgi?id=137022
CC: libav-stable@libav.org
2015-07-20 23:10:29 +02:00
Janne Grunau
f56d8d8dd7 h264: aarch64: intra prediction optimisations 2015-07-20 23:10:29 +02:00
Michael Niedermayer
439c9760b0 Merge commit '91f9b6579ac684c4b51c4cd0dbaed0a4f8295edf'
* commit '91f9b6579ac684c4b51c4cd0dbaed0a4f8295edf':
  flashsvenc: Keep coded_frame.key_frame a write-only variable

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-20 22:36:22 +02:00
Michael Niedermayer
5cc3faf619 Merge commit '75c1ed2e4c7250f5e75a11d0140727054ff0136b'
* commit '75c1ed2e4c7250f5e75a11d0140727054ff0136b':
  ffv1enc: Use input frame to set SAR and interlacing

Conflicts:
	libavcodec/ffv1enc.c

No change as the removed coded_frame uses where not in the code anymore

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-20 22:35:38 +02:00
Michael Niedermayer
b97e3e11a9 Merge commit '10a9149de242c7bbc4e130d3d7c593b89e20f80e'
* commit '10a9149de242c7bbc4e130d3d7c593b89e20f80e':
  ffv1enc: Keep coded_frame.key_frame a write-only variable

Conflicts:
	libavcodec/ffv1.h
	libavcodec/ffv1enc.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-20 22:25:53 +02:00
Michael Niedermayer
256430cf38 Merge commit 'efc618aff9d68d2ddc323a5c5f892ac71951f162'
* commit 'efc618aff9d68d2ddc323a5c5f892ac71951f162':
  qtrleenc: Keep coded_frame.key_frame a write-only variable

Conflicts:
	libavcodec/qtrleenc.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-20 22:14:29 +02:00
Michael Niedermayer
bde7f5b135 Merge commit 'f3b4a92241a33d444f7f6018ebc12e2e3a2d335f'
* commit 'f3b4a92241a33d444f7f6018ebc12e2e3a2d335f':
  libtheoraenc: Keep coded_frame.key_frame a write-only variable

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-20 22:13:42 +02:00
Michael Niedermayer
96504b3f72 Merge commit 'd6006dd9f0d4d01023359230212f1f9fa4800e5b'
* commit 'd6006dd9f0d4d01023359230212f1f9fa4800e5b':
  libvpxenc: Do not entangle coded_frame

Conflicts:
	libavcodec/libvpxenc.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-20 22:05:27 +02:00
Michael Niedermayer
70c648db89 Merge commit '7fc8d8a1b3da1666176b3d92e989ee74f3ef014e'
* commit '7fc8d8a1b3da1666176b3d92e989ee74f3ef014e':
  libxvid: Do not entangle coded_frame

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-20 22:01:44 +02:00
Michael Niedermayer
033144c0d1 Merge commit '56672aeaee19216d2fd8eeb9964b1f71f0af2919'
* commit '56672aeaee19216d2fd8eeb9964b1f71f0af2919':
  svq1enc: Do not entangle coded_frame

Conflicts:
	libavcodec/svq1enc.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-20 21:53:09 +02:00
Michael Niedermayer
f2a581e2ee Merge commit '05fb4c9aaf84b59f8ab1ce8d4c0f49dd12113024'
* commit '05fb4c9aaf84b59f8ab1ce8d4c0f49dd12113024':
  proresenc: Do not entangle coded_frame

Conflicts:
	libavcodec/proresenc_kostya.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-20 21:44:53 +02:00
Michael Niedermayer
a99f0ad194 Merge commit '91767360d86ac786571593ab11c7291010ab3829'
* commit '91767360d86ac786571593ab11c7291010ab3829':
  a64multienc: Do not entangle coded_frame

Conflicts:
	libavcodec/a64multienc.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-20 21:40:34 +02:00
Michael Niedermayer
6497aab022 Merge commit '95e2317ed85502dd8d96bcd9b12084dbfb8f9e8e'
* commit '95e2317ed85502dd8d96bcd9b12084dbfb8f9e8e':
  roqvideoenc: Drop unneeded initialization

Conflicts:
	libavcodec/roqvideoenc.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-20 21:31:42 +02:00
Michael Niedermayer
16b68bd2ee Merge commit '1f171de8cae9d0c527c5f0bae2a597dbd65fd3a4'
* commit '1f171de8cae9d0c527c5f0bae2a597dbd65fd3a4':
  mpegvideo_enc: Drop unnneded initialization

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-20 21:20:51 +02:00
Ivan Uskov
264ba3d847 libavcodec/qsvdec.c: missed MFXVideoDECODE_Close() call
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-20 19:57:57 +02:00
James Almer
736a386055 configure: check for erf() and copysign()
They are not available on some compilers.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-07-20 13:18:09 -03:00
James Almer
e3851169ee x86/vf_ssim: add ff_ssim_4x4_line_xop
~20% faster than ssse3. Also enabled for x86_32

Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-07-20 13:18:05 -03:00
James Almer
e1778fb657 x86/vf_ssim: fix some instruction comments
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-07-20 13:17:58 -03:00
Ivan Uskov
fec0485c43 Adding myself as maintainer for qsv*
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-20 17:31:36 +02:00
Michael Niedermayer
d82d11397f avutil/arm/intmath: return int for uint8 / uint16 clip
The C functions return uint8/16_t but that is effectively int not unsigned int
Fixes fate-filter-tblend

We do not return uint8/16_t as that would require the compiler to truncate the
values, slowing it down.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-20 17:20:16 +02:00
Djordje Pesut
f85bc147fb avcodec: Implementation of AAC_fixed_decoder (SBR-module)
Add fixed poind code.

Signed-off-by: Nedeljko Babic <nedeljko.babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-20 17:20:16 +02:00
Jovan Zelincevic
b0414da90d avcodec: Table creation for AAC_fixed_decoder (SBR-module)
Create tables for fixed point code.

Signed-off-by: Nedeljko Babic <nedeljko.babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-20 17:20:16 +02:00
Djordje Pesut
5499467d5d avcodec: Template creation for AAC decoder (SBR-module)
Move the existing code to a new template file.

Signed-off-by: Nedeljko Babic <nedeljko.babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-20 17:20:16 +02:00
Niklesh
a927aacbe6 movtextdec.c: Correct the highlight tags
Signed-off-by: Niklesh <niklesh.lalwani@iitb.ac.in>
2015-07-20 08:16:19 -07:00
Vittorio Giovara
40cf1bbacc Deprecate avctx.coded_frame
The rationale is that coded_frame was only used to communicate key_frame,
pict_type and quality to the caller, as well as a few other random fields,
in a non predictable, let alone consistent way.

There was agreement that there was no use case for coded_frame, as it is
a full-sized AVFrame container used for just 2-3 int-sized properties,
which shouldn't even belong into the AVCodecContext in the first place.

The appropriate AVPacket flag can be used instead of key_frame, while
quality is exported with the new AVPacketSideData quality factor.
There is no replacement for the other fields as they were unreliable,
mishandled or just not used at all.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-20 15:06:50 +01:00
Vittorio Giovara
5d3addb937 Add a quality factor packet side data
This is necessary to preserve the quality information currently exported
with coded_frame. Add the new side data to every encoder that needs it,
and use it in avconv.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-20 15:06:47 +01:00
Donny Yang
0030613d69 avcodec/apngdec: Fix typos in decoder causing incorrect results
Signed-off-by: Donny Yang <work@kota.moe>
2015-07-20 13:46:50 +00:00
Vittorio Giovara
d6604b29ef Gather all coded_frame allocations and free functions to a single place
Allocating coded_frame is what most encoders do anyway, so it makes
sense to always allocate and free it in a single place. Moreover a lot
of encoders freed the frame with av_freep() instead of the correct API
av_frame_free().

This bring uniformity to encoder behaviour and prevents applications
from erroneusly accessing this field when not allocated. Additionally
this helps isolating encoders that export information with coded_frame,
and heavily simplifies its deprecation.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-20 14:16:15 +01:00
Vittorio Giovara
91f9b6579a flashsvenc: Keep coded_frame.key_frame a write-only variable 2015-07-20 14:13:42 +01:00
Vittorio Giovara
75c1ed2e4c ffv1enc: Use input frame to set SAR and interlacing 2015-07-20 14:13:42 +01:00
Vittorio Giovara
10a9149de2 ffv1enc: Keep coded_frame.key_frame a write-only variable 2015-07-20 14:13:42 +01:00
Vittorio Giovara
efc618aff9 qtrleenc: Keep coded_frame.key_frame a write-only variable 2015-07-20 14:13:42 +01:00
Vittorio Giovara
f3b4a92241 libtheoraenc: Keep coded_frame.key_frame a write-only variable 2015-07-20 14:13:42 +01:00
Vittorio Giovara
d6006dd9f0 libvpxenc: Do not entangle coded_frame
Keep coded_frame.key_frame a write-only variable.
2015-07-20 14:13:42 +01:00
Vittorio Giovara
7fc8d8a1b3 libxvid: Do not entangle coded_frame 2015-07-20 14:13:42 +01:00
Vittorio Giovara
56672aeaee svq1enc: Do not entangle coded_frame 2015-07-20 14:13:42 +01:00
Vittorio Giovara
05fb4c9aaf proresenc: Do not entangle coded_frame 2015-07-20 14:13:42 +01:00
Vittorio Giovara
91767360d8 a64multienc: Do not entangle coded_frame
This change (and the following ones of the same kind) is mainly to
simplify wrapping this section with an #if FF_API block later on.

No functional changes are applied, the fields of the context coded_frame
fields are directly initialized, instead of keeping a reference to the
coded_frame itself.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-20 14:12:48 +01:00
Vittorio Giovara
95e2317ed8 roqvideoenc: Drop unneeded initialization
Its fields are never initialized to begin with.
2015-07-20 13:57:25 +01:00
Vittorio Giovara
1f171de8ca mpegvideo_enc: Drop unnneded initialization
coded_frame is already initialized where needed.
2015-07-20 13:57:18 +01:00
周晓勇
fdac5ff682 avcodec: loongson relocate constants of idctdsp and h264pred
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-20 14:29:22 +02:00
周晓勇
4bd6193397 avcodec: loongson constants redefined with macros
Signed-off-by: ZhouXiaoyong <zhouxiaoyong@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-20 14:29:22 +02:00
Paul B Mahol
7967474bd9 avfilter/af_amerge: increase max number of channels from 32 to 64
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-20 09:59:59 +00:00
James Almer
6de5b6cd86 avfilter/af_astats: use UINT64_C instead of the LLU suffix
Should fix compilation with vs2012

Signed-off-by: James Almer <jamrial@gmail.com>
2015-07-20 00:05:20 -03:00
Michael Niedermayer
9ebe041e1c Merge commit 'e93ca480c91397f82f2ea5b6a8b82ac6d0e2bfd2'
* commit 'e93ca480c91397f82f2ea5b6a8b82ac6d0e2bfd2':
  parseutil: Add more resolution aliases

Conflicts:
	doc/ffmpeg.texi
	libavutil/parseutils.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-20 04:32:28 +02:00
Luca Barbato
e93ca480c9 parseutil: Add more resolution aliases
Add DCI 2k and 4k and uhd1 and uhd2.
2015-07-20 04:05:48 +02:00
Michael Niedermayer
cb53db144c avformat/mp3dec: Rename sync() function to avoid build failure on android
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-20 02:41:44 +02:00
Michael Niedermayer
bf1fd59c6a avformat/avidec: Fix demuxing avi with broken index
Fixes: genio-avi

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-20 02:11:49 +02:00
Michael Niedermayer
749f85496c avcodec/ffv1enc: fix assertion failure with unset bits per raw sample
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-20 02:11:48 +02:00
Carl Eugen Hoyos
c239fcb948 lavc/jpeg2000: Signal lossless / bit-exact video stream. 2015-07-20 00:28:13 +02:00
Carl Eugen Hoyos
32d8726a31 lavf/rtpenc_jpeg: Warn if number of present quantization tables is not two. 2015-07-20 00:27:52 +02:00
Carl Eugen Hoyos
d8d2f934bd lavc: Improve documentation for rc_max_rate and bit_rate.
Both may be set by user (libavformat) on decoding.
2015-07-20 00:27:51 +02:00
Michael Niedermayer
5c583b1419 avcodec/dds: Flip more R<->B cases
Fixes Ticket4665

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-20 00:03:11 +02:00
Michael Niedermayer
36a87c2dc7 avcodec/dds: fix paletted files
Fixes Ticket4664

The changed fate tests lack red/blue shades and thus look correct
either way

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-19 23:26:59 +02:00
James Almer
4ebe31abf1 RELEASE: update to 2.7.git
Signed-off-by: James Almer <jamrial@gmail.com>
2015-07-19 17:52:31 -03:00
James Almer
2db8c42ddc avformat/mp3dec: remove unused variable
Signed-off-by: James Almer <jamrial@gmail.com>
2015-07-19 17:47:28 -03:00
Paul B Mahol
a8fbb7b625 avfilter: add random video filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-19 19:01:00 +00:00
Chris Spencer
eb468b0be0 avdevice/decklink: Add missing libraries when building with DeckLink support on Windows.
Signed-off-by: Chris Spencer <spencercw@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-19 20:32:41 +02:00
Vesselin Bontchev
0a551cbe97 Add support for Audible AAX (and AAX+) files
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-19 20:28:39 +02:00
Michael Niedermayer
4df66c7cd6 avformat/mp3dec: split position sync code out
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-19 19:31:08 +02:00
Michael Niedermayer
ea8785ceda avcodec/utils: Check that channel count is valid in avcodec_open2();
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-19 18:17:45 +02:00
Michael Niedermayer
9c943e077b Merge commit '69b92f1b99f3f210be19ee6ec06f6c0de1733031'
* commit '69b92f1b99f3f210be19ee6ec06f6c0de1733031':
  qsvenc: properly handle asynchronous encoding

Conflicts:
	libavcodec/qsvenc.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-19 16:34:12 +02:00
Michael Niedermayer
f929081f2e Merge commit 'f5c4d38c78347b09478e21a661befff4b2d44643'
* commit 'f5c4d38c78347b09478e21a661befff4b2d44643':
  qsvdec: properly handle asynchronous decoding

Conflicts:
	libavcodec/qsvdec.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-19 16:13:35 +02:00
Michael Niedermayer
7093e215d0 Merge commit '6b15874fc2c3f565732201f7907ae1112727d6ae'
* commit '6b15874fc2c3f565732201f7907ae1112727d6ae':
  af_resample: do not touch the timestamps if we are not resampling

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-19 16:05:33 +02:00
Michael Niedermayer
2dbaec690d ffmpeg_filter: Check that filters have connected outputs before accessing the output stream
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-19 15:36:59 +02:00
Michael Niedermayer
bc3f19641c Merge commit '6d592fbd0d8e89ecade3fc93b36ea200213dc01c'
* commit '6d592fbd0d8e89ecade3fc93b36ea200213dc01c':
  avconv: split creating and (re-)configuring complex filtergraphs

Conflicts:
	ffmpeg_filter.c
	ffmpeg_opt.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-19 15:36:54 +02:00
Derek Buitenhuis
8271a84094 avfilter: Add reverse filter
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-07-19 14:13:51 +01:00
Michael Niedermayer
c7dd2365f4 Merge commit 'be101bc1e357c50fcb740bc4870b3bacc93a5727'
* commit 'be101bc1e357c50fcb740bc4870b3bacc93a5727':
  avconv: create the complex filtergraphs earlier

Conflicts:
	ffmpeg_opt.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-19 14:12:11 +02:00
Michael Niedermayer
3b0534efdc Merge commit '1959351aecf09fc3e90208ff775f4849801dc13f'
* commit '1959351aecf09fc3e90208ff775f4849801dc13f':
  avconv: move the no streams failure to open_output_file()

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-19 14:01:45 +02:00
Michael Niedermayer
15fbf3e72a Merge commit 'ab7b038906f3e40ed474676d8e3029902a2078f5'
* commit 'ab7b038906f3e40ed474676d8e3029902a2078f5':
  avconv: factor out the output stream initialization

Conflicts:
	ffmpeg.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-19 13:50:33 +02:00
Michael Niedermayer
edd110ee45 Merge commit 'bd2ab27c488ae92c7820efe11d4f53d84e94d58e'
* commit 'bd2ab27c488ae92c7820efe11d4f53d84e94d58e':
  avconv: use read_file() for reading the 2pass stats

Conflicts:
	cmdutils.c
	cmdutils.h
	ffmpeg_opt.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-19 13:33:44 +02:00
Michael Niedermayer
247f4d1f18 Merge commit '6d5d9246042acb804a652e6fedfb7afe0ca85614'
* commit '6d5d9246042acb804a652e6fedfb7afe0ca85614':
  avconv: move handling the 2pass logfile into avconv_opt

Conflicts:
	ffmpeg.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-19 12:59:05 +02:00
Michael Niedermayer
db3e12a828 Merge commit '59245e0c5e10a849e67c632cccf4f677b2442e82'
* commit '59245e0c5e10a849e67c632cccf4f677b2442e82':
  avconv: set the encoding/decoding_needed flags earlier

Conflicts:
	ffmpeg.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-19 12:44:07 +02:00
Michael Niedermayer
843be56ee1 ffmpeg_opt: Fix stream copy flag for attachments
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-19 12:43:36 +02:00
Michael Niedermayer
8534c8c77a Merge commit '56c2f37727015212a404cae0f444d8bc8704d691'
* commit '56c2f37727015212a404cae0f444d8bc8704d691':
  avconv: drop update_sample_fmt()

Conflicts:
	ffmpeg.c

No change as the removed code is not in FFmpeg

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-19 11:57:34 +02:00
Michael Niedermayer
3d4297f851 Merge commit 'e61f39849c2e2b7f492c17b42058242ed2fa4d57'
* commit 'e61f39849c2e2b7f492c17b42058242ed2fa4d57':
  asfdec: make nb_sub to be unsigned int

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-19 11:52:35 +02:00
Michael Niedermayer
74aba00700 Merge commit '2883ef34b59c9b427c4cfad4620c3235e5778406'
* commit '2883ef34b59c9b427c4cfad4620c3235e5778406':
  asfdec: read the replicated data in a separate function

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-19 11:45:08 +02:00
Michael Niedermayer
80a37fc3e1 Merge commit '0989d3ad1fbd7509815208b0a5792918492d2a68'
* commit '0989d3ad1fbd7509815208b0a5792918492d2a68':
  asfdec: convert condition for the replicated data reading to be safer

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-19 11:29:55 +02:00
Michael Niedermayer
f509c9503a Merge commit '406627287e015ce381795e85e2557b12bf60ca35'
* commit '406627287e015ce381795e85e2557b12bf60ca35':
  asfdec: do not read replicated data when their length is 0

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-19 11:23:01 +02:00
Anton Khirnov
69b92f1b99 qsvenc: properly handle asynchronous encoding
Wait for async_depth frames before syncing.
2015-07-19 10:06:53 +02:00
Anton Khirnov
f5c4d38c78 qsvdec: properly handle asynchronous decoding
Wait for async_depth frames before syncing.
2015-07-19 09:47:45 +02:00
Anton Khirnov
6b15874fc2 af_resample: do not touch the timestamps if we are not resampling
This filter currently assumes that the input audio is continuous and
does some timestamps manipulation based on this assumption.

This is unnecessary if we are only converting the channel layout or the
sample format, without resampling. In such a case, just leave the
timestamps as they are.
2015-07-19 09:39:42 +02:00
Anton Khirnov
6d592fbd0d avconv: split creating and (re-)configuring complex filtergraphs
The current code is less than straightforward due to the fact that
output streams can be created based on filtergraph definitions. This
change should make the code simpler and more readable. It will also be
useful in the future commits.
2015-07-19 09:38:53 +02:00
Anton Khirnov
be101bc1e3 avconv: create the complex filtergraphs earlier
Since global options are processed before all the other options now, we
do not have to try creating the complex filtergraphs several times
anymore, it is enough to do it once after the input files are opened.
2015-07-19 09:38:44 +02:00
Anton Khirnov
1959351aec avconv: move the no streams failure to open_output_file()
It is a better place for it, there is no reason to wait until
transcode_init().
2015-07-19 09:38:28 +02:00
Anton Khirnov
ab7b038906 avconv: factor out the output stream initialization 2015-07-19 09:38:25 +02:00
Anton Khirnov
bd2ab27c48 avconv: use read_file() for reading the 2pass stats
Also, drop the now unused cmdutils_read_file(). There is no reason to
have two functions doing essentially the same thing.
2015-07-19 09:37:11 +02:00
Anton Khirnov
6d5d924604 avconv: move handling the 2pass logfile into avconv_opt
It more logically belongs there.
2015-07-19 09:34:24 +02:00
Anton Khirnov
59245e0c5e avconv: set the encoding/decoding_needed flags earlier
This will be useful in the following commits.
2015-07-19 09:34:08 +02:00
Anton Khirnov
56c2f37727 avconv: drop update_sample_fmt()
There is only one decoder left that supports this (libopus, which is not
used by default since we have a native one) and this code goes against
the avconv design, since it propagates information back from the encoder
to decoder.
2015-07-19 09:33:51 +02:00
Alexandra Hájková
e61f39849c asfdec: make nb_sub to be unsigned int
number of subpayloads should be always positive

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-07-19 09:20:01 +02:00
Alexandra Hájková
2883ef34b5 asfdec: read the replicated data in a separate function
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-07-19 09:18:27 +02:00
Alexandra Hájková
0989d3ad1f asfdec: convert condition for the replicated data reading to be safer
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-07-19 09:16:28 +02:00
Alexandra Hájková
406627287e asfdec: do not read replicated data when their length is 0
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-07-19 08:59:48 +02:00
Michael Niedermayer
54882156dd avcodec/hevc_parser: Treat extradata parsing differently, as it should not contain an AU
Fixes ticket4718

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-19 03:24:25 +02:00
James Almer
bd48764532 avutil/x86/bswap: force inline asm versions with ICC
Recent ICC versions that define GCC as >= 4.5 (like ICC 13) apparently can't
optimize the generic C versions of av_bswap*() on their own.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-07-18 20:48:09 -03:00
James Almer
78347549a4 avutil/intmath: check for ICC before GCC
Intel compiler also defines __GNUC__, so the Intel specific intrinsics were not
really being used.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-07-18 19:59:34 -03:00
Paul B Mahol
9a829a2b6a avfilter/vf_blend: unbreak tblend
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-18 05:01:16 +00:00
Paul B Mahol
5c7f708683 fate: add tblend filter test
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-18 05:01:16 +00:00
Michael Niedermayer
b5e716ae13 avformat/mpegtsenc: Add sdt_period, similar to pat_period
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-18 23:26:05 +02:00
Michael Niedermayer
34da54fd1a avformat/mpegtsenc: Support a user specified PAT/PMT period
Can be used to fix Ticket3714

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-18 22:24:25 +02:00
Michael Niedermayer
a9c1545a33 avformat/mpegtsenc: support storing PAT/PMT per frame
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-18 22:19:19 +02:00
Ganesh Ajjanagadde
e3e4f1752c doc/developer: add url for sample files
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-18 21:20:34 +02:00
Paul B Mahol
efd4e5fe68 avfilter/vf_blend: implement 16bit support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-18 02:07:44 +00:00
Paul B Mahol
e03cb1e115 fate: add test for mergeplanes filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-18 01:55:44 +00:00
Michael Niedermayer
599d746e07 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>
2015-07-18 19:37:04 +02:00
Michael Niedermayer
a84f0e8d8f 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>
2015-07-18 19:03:23 +02:00
Michael Niedermayer
1c5b712c0a 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>
2015-07-18 18:05:41 +02:00
Michael Niedermayer
a194298954 avformat/movenc: Drop redundant bit exact field from context
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-18 13:27:33 +02:00
Michael Niedermayer
3197c0aa87 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>
2015-07-18 11:28:17 +02:00
Michael Niedermayer
129785b5e8 avutil/frame: Update AVFrame docs library references
These where apparently forgotten when AVFrames where moved into libavutil

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-18 10:46:36 +02:00
Michael Niedermayer
2927b61c55 avfilter/af_dynaudnorm: Use av_frame_get_channels()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-18 10:45:29 +02:00
Michael Niedermayer
f8e4d37983 avcodec/hevc_ps: Also print depth in failure path of map_pixel_format()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-18 05:12:00 +02:00
Ganesh Ajjanagadde
f6870495e1 avformat: increase first_frames threshold for mp3,ac3
Fixes Ticket4723

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-18 04:52:49 +02:00
Michael Niedermayer
9010be252e Merge commit 'c9f8cfb6d9b34f3c51f1b7152c4dc3f2f8724dc4'
* commit 'c9f8cfb6d9b34f3c51f1b7152c4dc3f2f8724dc4':
  fate: add checkasm target

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-18 02:39:01 +02:00
Michael Niedermayer
e6b01480e5 Merge commit '82e6ac85ff9aa7631b8c01521b3d6b5ca0bc8014'
* commit '82e6ac85ff9aa7631b8c01521b3d6b5ca0bc8014':
  checkasm: test all architectures with optimisations

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-18 02:31:14 +02:00
Michael Niedermayer
3ad30d1bc0 Merge commit 'cb33f8d0f48b1e9d642ca1cbea142dcbedd08a27'
* commit 'cb33f8d0f48b1e9d642ca1cbea142dcbedd08a27':
  checkasm: Give macro a body to avoid potential unexpected syntax issues

See: a39512ba9e0c0f0e96d872af1c087f07322818fa
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-18 02:23:47 +02:00
Michael Niedermayer
78274b19f1 Merge commit '6cc4d3e9a982e926494f4b919d9733fe29774acf'
* commit '6cc4d3e9a982e926494f4b919d9733fe29774acf':
  checkasm: exit with status 0 instead of 1 if there are no tests to perform

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-18 02:22:43 +02:00
Michael Niedermayer
c0894e6288 Merge commit '256ef19844892c6cf8e0386e3287bae970ec6320'
* commit '256ef19844892c6cf8e0386e3287bae970ec6320':
  h264: arm: use intra pred8x8 functions only for chroma_format_idc <= 1

Conflicts:
	libavcodec/arm/h264pred_init_arm.c

See: 565cabf5c80b25d86c2e539afcb3b24024fbce0a
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-18 02:13:22 +02:00
Michael Niedermayer
b1861f18b6 Merge commit 'fc56868399213d3e9be19bdebeb64df233b39a7e'
* commit 'fc56868399213d3e9be19bdebeb64df233b39a7e':
  cosmetics: Reformat checkasm tests

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-18 01:57:04 +02:00
Zhang Rui
f477a3f5ab avformat/async: support filling with a background thread.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-18 01:46:50 +02:00
Janne Grunau
c9f8cfb6d9 fate: add checkasm target 2015-07-18 01:06:45 +02:00
Janne Grunau
82e6ac85ff checkasm: test all architectures with optimisations 2015-07-18 01:06:45 +02:00
Michael Niedermayer
cb33f8d0f4 checkasm: Give macro a body to avoid potential unexpected syntax issues 2015-07-18 01:06:44 +02:00
Henrik Gramner
6cc4d3e9a9 checkasm: exit with status 0 instead of 1 if there are no tests to perform 2015-07-18 01:06:44 +02:00
Janne Grunau
256ef19844 h264: arm: use intra pred8x8 functions only for chroma_format_idc <= 1 2015-07-18 00:28:49 +02:00
Michael Niedermayer
72d1409e23 Merge commit 'd37f23263584774e1798e9ac909a398304a05091'
* commit 'd37f23263584774e1798e9ac909a398304a05091':
  checkasm: Add unit tests for bswapdsp

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-17 23:26:59 +02:00
Michael Niedermayer
52b6d96268 Merge commit 'a344e5d094ebcf9a23acf3a27c56cbbbc829db42'
* commit 'a344e5d094ebcf9a23acf3a27c56cbbbc829db42':
  x86: bswapdsp: Don't treat 32-bit integers as 64-bit

Conflicts:
	libavcodec/x86/bswapdsp.asm

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-17 23:20:14 +02:00
Michael Niedermayer
c7c33ab721 Merge commit 'f5ee23004d1177ca6dd99b92cb4ff4b94b2eae09'
* commit 'f5ee23004d1177ca6dd99b92cb4ff4b94b2eae09':
  configure: Factor out g722dsp module

Conflicts:
	configure
	libavcodec/arm/Makefile

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-17 23:04:47 +02:00
Michael Niedermayer
65b0f7ce08 Merge commit 'a623aa0069dff586241ad2ffedcd45ed840e2553'
* commit 'a623aa0069dff586241ad2ffedcd45ed840e2553':
  configure: Factor out wmv2dsp module

Conflicts:
	libavcodec/Makefile

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-17 22:56:00 +02:00
Michael Niedermayer
115a9b5091 Merge commit 'd42191c78befc1983f23b1899b2dda513b72f1ed'
* commit 'd42191c78befc1983f23b1899b2dda513b72f1ed':
  configure: Factor out vp8dsp module

Conflicts:
	configure
	libavcodec/Makefile
	libavcodec/x86/Makefile

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-17 22:45:34 +02:00
Michael Niedermayer
3500eccb8e Merge commit 'd4aea1aa4060fb5ba7f5f426823b697d2a5af08b'
* commit 'd4aea1aa4060fb5ba7f5f426823b697d2a5af08b':
  configure: Factor out vp56dsp module

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-17 22:31:45 +02:00
Michael Niedermayer
fd29dd432c Merge commit '5cb4bdb2a03c3643f8f1e7d21d7094e61e0a4418'
* commit '5cb4bdb2a03c3643f8f1e7d21d7094e61e0a4418':
  configure: Factor out rv34dsp module

Conflicts:
	libavcodec/Makefile
	libavcodec/x86/Makefile

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-17 22:21:36 +02:00
Michael Niedermayer
189f2ed902 avcodec/libx264: fix MPEG2 support
Found-by: rcombs
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-17 22:14:00 +02:00
Michael Niedermayer
77cd5193a5 Merge commit '575ec60e542114b2ef5b2f88b28eeb72389dda45'
* commit '575ec60e542114b2ef5b2f88b28eeb72389dda45':
  configure: Factor out mss34dsp module

Conflicts:
	libavcodec/Makefile

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-17 21:59:45 +02:00
Michael Niedermayer
ccd3edf81f Merge commit '2edc77dc7be5f4a006c6295f4c827e5471f85262'
* commit '2edc77dc7be5f4a006c6295f4c827e5471f85262':
  configure: Factor out ividsp module

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-17 21:51:19 +02:00
Michael Niedermayer
948a15195c Merge commit 'b075869bc1e1aadea0a8dc819ebfb758adb9e3d0'
* commit 'b075869bc1e1aadea0a8dc819ebfb758adb9e3d0':
  configure: Factor out flacdsp module

Conflicts:
	configure
	libavcodec/Makefile
	libavcodec/arm/Makefile

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-17 21:42:14 +02:00
Michael Niedermayer
fd280de7ee Merge commit '4da585ae478f8b6f865ab13779af399aee20d899'
* commit '4da585ae478f8b6f865ab13779af399aee20d899':
  OS/2: Cleanup slib_create_def_cmd

See: 22a0387df29c7450f57d09fbb24b7bc5f3b1fb89
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-17 21:32:18 +02:00
Luca Barbato
fc56868399 cosmetics: Reformat checkasm tests 2015-07-17 21:29:20 +02:00
Michael Niedermayer
e56f14659f Merge commit 'e1319aa1c1be9b64117c19170344fb78841dd67c'
* commit 'e1319aa1c1be9b64117c19170344fb78841dd67c':
  libx264: Add support for the MPEG2 encoder

Conflicts:
	configure
	libavcodec/Makefile
	libavcodec/libx264.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-17 21:21:03 +02:00
Michael Niedermayer
4c7c0d37e5 avfilter/af_dynaudnorm: Fix "ISO C90 forbids mixed declarations and code" warnings
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-17 21:13:56 +02:00
Michael Niedermayer
2ea8a48083 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>
2015-07-17 21:13:56 +02:00
Henrik Gramner
d37f232635 checkasm: Add unit tests for bswapdsp
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-07-17 20:03:55 +02:00
Henrik Gramner
a344e5d094 x86: bswapdsp: Don't treat 32-bit integers as 64-bit
The upper halves are not guaranteed to be zero in x86-64.

Also use `test` instead of `and` when the result isn't used for anything other
than as a branch condition, this allows some register moves to be eliminated.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-07-17 20:02:28 +02:00
Vittorio Giovara
f5ee23004d configure: Factor out g722dsp module 2015-07-17 18:46:24 +01:00
Vittorio Giovara
a623aa0069 configure: Factor out wmv2dsp module 2015-07-17 18:46:24 +01:00
Vittorio Giovara
d42191c78b configure: Factor out vp8dsp module 2015-07-17 18:46:24 +01:00
Vittorio Giovara
d4aea1aa40 configure: Factor out vp56dsp module 2015-07-17 18:46:24 +01:00
Vittorio Giovara
5cb4bdb2a0 configure: Factor out rv34dsp module 2015-07-17 18:46:24 +01:00
Vittorio Giovara
575ec60e54 configure: Factor out mss34dsp module 2015-07-17 18:46:24 +01:00
Vittorio Giovara
2edc77dc7b configure: Factor out ividsp module 2015-07-17 18:46:24 +01:00
Vittorio Giovara
b075869bc1 configure: Factor out flacdsp module 2015-07-17 18:46:23 +01:00
Michael Niedermayer
1cdfae0b3e Merge commit '0cf5588d69922aa3e063bac6304c09c543a9ef52'
* commit '0cf5588d69922aa3e063bac6304c09c543a9ef52':
  hq_hqa: Fix decoding when INFO section is absent

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-17 14:59:18 +02:00
Michael Niedermayer
187f4278e8 Merge commit 'a53540840d26beb57a5e53b7f488c23ddf86e193'
* commit 'a53540840d26beb57a5e53b7f488c23ddf86e193':
  APIchanges: Mention lavfi and lavd identification symbol addition

Conflicts:
	doc/APIchanges

No change as these symbols have been added a very long time ago to FFmpeg
and are already listed in APIchanges

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-17 14:50:41 +02:00
Michael Niedermayer
694f9ab1ef Merge commit 'f1840b070dd449ad25e1ebbab463f10863a5e0f1'
* commit 'f1840b070dd449ad25e1ebbab463f10863a5e0f1':
  Revert "mov: Double-check that alias path is not an absolute path"

Conflicts:
	libavformat/mov.c

See: c9c7263e5820c957598643216c42be9b1c4f2d2b
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-17 14:40:53 +02:00
Michael Niedermayer
441d5a7084 Merge commit 'b0017579b6e8de3d0d13dcfe0a4dd848dc6baa37'
* commit 'b0017579b6e8de3d0d13dcfe0a4dd848dc6baa37':
  h264: Add support for Closed Caption export

Conflicts:
	libavcodec/h264.c
	libavcodec/h264_sei.c

See: 8234f0e3b485811d60c228c40a94a141c46e61ca
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-17 14:13:19 +02:00
Paul B Mahol
ec6bef68f1 avfilter: bump minor and add Changelog entry
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-17 11:39:52 +00:00
Paul B Mahol
297df52f30 avfilter/af_compand: fix clipping with default options
Decays and attacks where by default set only for first channel
which caused poor defaults to be used which produced clipping
on any higher channel.

Reported-by: lachs0r
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-17 11:29:29 +00:00
LoRd_MuldeR
21436b95dc avfilter: add Dynamic Audio Normalizer filter 2015-07-17 10:58:24 +00:00
Paul B Mahol
3b365dda5c avfilter/af_astats: measure minimal and mean difference between two consecutive samples
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-17 09:30:03 +00:00
Dave Yeo
4da585ae47 OS/2: Cleanup slib_create_def_cmd
Export symbols by name rather then ordinal.
Remove PROTMODE directive as it does not make sense for 32 bit library.
Also silences a warning from some linkers.

Signed-off-by: Dave Yeo <dave.r.yeo@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-07-17 10:47:59 +02:00
Luca Barbato
e1319aa1c1 libx264: Add support for the MPEG2 encoder 2015-07-17 10:47:48 +02:00
Vittorio Giovara
0cf5588d69 hq_hqa: Fix decoding when INFO section is absent 2015-07-17 01:49:42 +01:00
Vittorio Giovara
a53540840d APIchanges: Mention lavfi and lavd identification symbol addition 2015-07-17 01:44:22 +01:00
Vittorio Giovara
f1840b070d Revert "mov: Double-check that alias path is not an absolute path"
This reverts commit 9286de045968ad456d4e752651eec22de5e89060.
The change broke support for legit absolute file paths.

Reported-by: Maksym Veremeyenko <verem@m1stereo.tv>.
2015-07-17 01:44:22 +01:00
Kieran Kunhya
b0017579b6 h264: Add support for Closed Caption export
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-17 01:44:22 +01:00
Michael Niedermayer
8250943feb Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  lavfi/af_pan: Support a maximum of 64 channels.
  lswr: Allow 64 channels internally.
  lavc: Allow 64 channels internally.

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-17 00:54:39 +02:00
Carl Eugen Hoyos
ed5d62e509 lavfi/af_pan: Support a maximum of 64 channels.
The Soundflower input device supports 64 channels.
2015-07-17 00:18:29 +02:00
Carl Eugen Hoyos
a77401e1f7 lswr: Allow 64 channels internally. 2015-07-17 00:17:08 +02:00
Carl Eugen Hoyos
7f0d540188 lavc: Allow 64 channels internally. 2015-07-17 00:16:45 +02:00
Marton Balint
c8ec2109f9 avformat: bump micro version after adding concatdec features
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-07-17 00:12:04 +02:00
Marton Balint
5117b5e9aa concatdec: add support for injecting packet metadata
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-07-17 00:12:04 +02:00
Marton Balint
25a6711c25 concatdec: add support for specifying outpoint of files
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-07-17 00:12:04 +02:00
Marton Balint
12d82004c5 concatdec: store eof condition in context
This is needed later for outpoint support which may leave the last file in a
not-eof state.

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-07-17 00:12:04 +02:00
Marton Balint
7ff0137a1f concatdec: add support for specifying inpoint of files
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-07-17 00:12:04 +02:00
Marton Balint
53f2ef2c4a mxfdec: calculate the index in display order
This should fix seeking for open GOP files as well.

Reviewed-by: Tomas Härdin <tomas.hardin@codemill.se>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-07-16 22:07:49 +02:00
Ivan Uskov
6e127990fa Refactoring to move common QSV-related code part into libavcodec/qsvdec.c
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-16 21:30:45 +02:00
Tom Butterworth
17ee24af7e avcodec/snappy: refactor so ff_snappy_uncompress uses an existing buffer
Some uses of Snappy require uncompressing to positions within an existing buffer. Also adds a function to get the uncompressed length of Snappy data.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-16 20:41:07 +02:00
Michael Niedermayer
c4dfb76fa7 avfilter/vf_eq: Support contrast from -1000 to 1000
Fixes "-vf eq=0.05,eq=20"

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-16 18:50:24 +02:00
Paul B Mahol
51925daafd avfilter/af_astats: make sure p->last is actually always set when measuring max difference
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-15 19:24:37 +00:00
Paul B Mahol
59a9998908 avfilter/af_astats: also measure maximal difference between two consecutive samples
While here also mention bit depth in documentation.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-15 19:09:57 +00:00
Tom Butterworth
6074956fa1 avcodec/hap: move some per-stream setup into decoder init rather than per-frame
This change will reject frames with a texture type which doesn't match the stream description.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-16 16:04:06 +02:00
Shivraj Patil
012ba786e6 avcodec/mips: MSA (MIPS-SIMD-Arch) optimizations for VP9 MC functions
This patch adds MSA (MIPS-SIMD-Arch) optimizations for VP9 MC functions in new file vp9_mc_msa.c

Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-16 15:03:02 +02:00
Rong Yan
2af180bf1b swscale/ppc/yuv2rgb_altivec: POWER LE support in the macros vec_unh() and vec_unl()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-16 14:27:58 +02:00
周晓勇
0bfa176c64 avcodec: loongson optimized idctdsp with mmi
Signed-off-by: ZhouXiaoyong <zhouxiaoyong@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-16 14:27:53 +02:00
周晓勇
dcd14db806 avcodec: loongson add constant definition
Signed-off-by: ZhouXiaoyong <zhouxiaoyong@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-16 14:27:49 +02:00
Michael Niedermayer
f1a38264f2 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>
2015-07-16 12:18:30 +02:00
Carl Eugen Hoyos
8dad213143 lavc: Add properties field to AVCodecContext.
The new field can hold information about losslessness and closed captions for now.
2015-07-16 12:18:30 +02:00
Henrik Gramner
2cb34f82b9 checkasm: Add unit tests for h264qpel
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-07-15 19:47:07 +02:00
Luca Barbato
4512ee78e1 mpegts: Mark the muxer as supporting variable fps
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-07-15 19:43:48 +02:00
Luca Barbato
c88c5eef53 hevc: Split the struct setup from the pps parsing 2015-07-15 19:39:44 +02:00
Paul B Mahol
7aafac976f avfilter/vf_smartblur: use the name 's' for the pointer to the private context
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-15 13:34:56 +00:00
Paul B Mahol
61641627b8 avfilter/af_astats: calculate audio bit-depth
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-15 13:26:43 +00:00
Paul B Mahol
3001558487 avfilter: add erosion, dilation, deflate & inflate filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-15 13:21:47 +00:00
Michael Niedermayer
a39512ba9e tests/checkasm/checkasm: Give macro a body to avoid potential unexpected syntax issues
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-16 04:35:14 +02:00
Michael Niedermayer
4afc3429be avformat/utils: Fix regression with H264 stream probing
Fixes Ticket4725

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-16 03:37:43 +02:00
Michael Niedermayer
cdca400c5e avformat/utils: Print stream number in max_analyze_duration exit path
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-16 03:30:24 +02:00
Carl Eugen Hoyos
9901e53187 lavf/rtpenc_jpeg: Fix sending multiple quantization tables. 2015-07-16 00:36:13 +02:00
Donny Yang
99b0cadd13 apng: Fix wrong default final frame delay in muxer
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-15 22:52:06 +02:00
Michael Niedermayer
cbd4a1dbde Merge commit '2cb34f82b92c15b811f5c03dc7f61a4baf6e02e3'
* commit '2cb34f82b92c15b811f5c03dc7f61a4baf6e02e3':
  checkasm: Add unit tests for h264qpel

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-15 22:44:28 +02:00
Michael Niedermayer
1680f9c588 Merge commit '4512ee78e19fdb011bdec1b3a8dc0b315c82a81e'
* commit '4512ee78e19fdb011bdec1b3a8dc0b315c82a81e':
  mpegts: Mark the muxer as supporting variable fps

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-15 21:29:12 +02:00
Michael Niedermayer
4e160ecdbc Merge commit 'c88c5eef53ff1619724ba47b722da64ec0593dab'
* commit 'c88c5eef53ff1619724ba47b722da64ec0593dab':
  hevc: Split the struct setup from the pps parsing

Conflicts:
	libavcodec/hevc_ps.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-15 21:21:40 +02:00
Michael Niedermayer
269a71b68a avcodec/mpeg4videodec: Clarify the mpeg4_unpack_bframes reference.
This should avoid misunderstandings like in Ticket4618

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-15 21:05:24 +02:00
Michael Niedermayer
a5d44d5c22 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>
2015-07-15 20:06:34 +02:00
Michael Niedermayer
4a6b8289e6 avcodec/mips/mpegvideo_mmi: Use av_assert2()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-15 17:25:42 +02:00
ZhouXiaoyong
95418634b1 avcodec: loongson optimized mpegvideo dct unquantize with mmi
Signed-off-by: ZhouXiaoyong <zhouxiaoyong@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-15 15:51:07 +02:00
周晓勇
a0ad6c85ac avcodec: loongson optimized h264pred with mmi
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-15 15:51:02 +02:00
周晓勇
2c34389551 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>
2015-07-15 13:24:23 +02:00
Michael Niedermayer
9d8070afe1 avfilter/internal: add more words to sentance
Hopefully fixes english syntax

Found-by: ubitux
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-15 13:09:41 +02:00
Arttu Ylä-Outinen
ae3f4e479a MAINTAINERS: add myself as libkvazaar maintainer
Signed-off-by: Arttu Ylä-Outinen <arttu.yla-outinen@tut.fi>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-15 13:03:50 +02:00
Michael Niedermayer
8f2c045a0e avformat/mov: Implement a same origin policy for references instead of only allowing a subset of relative pathes in references
Fixes Ticket4671

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-15 12:47:09 +02:00
Paul B Mahol
eea08efc0d avfilter/x86/vf_psnr.asm: split one line of license text into two
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-14 23:54:26 +00:00
James Darnley
bff7242608 avfilter/vf_removegrain: add x86 and x86_64 SSE2 functions
Speed of all modes increased by a factor between 7.4 and 19.8 largely depending
on whether bytes are unpacked into words.  Modes 2, 3, and 4 have been sped-up
by a factor of 43 (thanks quick sort!)

All modes are available on x86_64 but only modes 1, 10, 11, 12, 13, 14, 19, 20,
21, and 22 are available on x86 due to the number of SIMD registers used.

With a contribution from James Almer <jamrial@gmail.com>
2015-07-14 23:50:50 +00:00
Michael Niedermayer
dffae122d0 avcodec/mjpegdec: Fix DC overflow in decode_block()
Fixes Ticket4683

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-15 05:05:25 +02:00
Michael Niedermayer
90dd6ad22c avformat/utils: inform the user if the protocol cannot be determined
Assuming the wrong protocol can lead to suboptimal seeking performance

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-15 04:09:09 +02:00
Michael Niedermayer
901922e047 avformat/utils: adjust short skip threshold in ff_configure_buffers_for_index() to avoid seeking if a packet is skiped
Fixes Ticket4126

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-15 03:35:08 +02:00
Michael Niedermayer
c9c7263e58 avformat/mov: Fix opening relative references
Possibly fixes Ticket4671

the removed check is wrong and insufficient

Based on patch by Maksym Veremeyenko <verem@m1.tv>

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-15 01:12:45 +02:00
Michael Niedermayer
bfd17046c1 avcodec/mpeg12dec: Fix decoding of faulty interlaced mpeg2
Fixes Ticket4721

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-15 00:09:15 +02:00
Michael Niedermayer
522256b374 avfilter/internal: Improve docs about ff_request_frame()
Reviewed-by: James Darnley <james.darnley@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-15 00:09:14 +02:00
Timo Rothenpieler
550e872bcd avcodec/nvenc: Fix build with older gcc versions
Aparently anonymous structs weren't always supported, not even sure if
they are standard conformant.
2015-07-14 23:00:44 +02:00
wm4
130a8e0eef avformat: don't crash API users when demuxing mp4
This code is one big chunk of WTF.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-14 22:41:35 +02:00
Arttu Ylä-Outinen
b90b6af710 avcodec: add libkvazaar HECV encoder
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-14 18:00:36 +02:00
Ronald S. Bultje
ae4c9ddebc vf_psnr: sse2 optimizations for sum-squared-error.
The internal line accumulator for 16bit can overflow, so I changed that
from int to uint64_t in the C code. The matching assembly looks a little
weird but output looks correct.

(avx2 should be trivial to add later.)

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-14 17:57:14 +02:00
Zhang Rui
fcbea93cf8 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>
2015-07-14 17:28:55 +02:00
Michael Niedermayer
6e80fe1ecd 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>
2015-07-14 15:59:11 +02:00
Michael Niedermayer
15629129dd 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>
2015-07-14 14:15:42 +02:00
Michael Niedermayer
0ff4953e1b avfilter/vf_ssim: Fix "incompatible pointer type" warnings
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-14 13:29:55 +02:00
Michael Niedermayer
fd4c87fa3b 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>
2015-07-14 13:03:35 +02:00
Michael Niedermayer
bd27dc9102 ffmpeg: Fix deallocating input threads with partly failed file allocation
Fixes: 18615ff56beedc63a884a8db0678b47c_signal_sigsegv_7ffff713351a_991_xtrem_e2_m64q15_a32sxx.3gp with memlimit of 524288

Found-by: Samuel Groß, Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-14 12:42:41 +02:00
Ronald S. Bultje
dfc58584b4 vf_ssim: x86 simd for ssim_4x4xN and ssim_endN.
Both are 2-2.5x faster than their C counterpart.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-14 05:07:07 +02:00
James Almer
39a04ebcaf avutil/mem_internal: add missing header includes
Fixes make checkheaders

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-07-13 21:54:15 -03:00
Ivan Uskov
ce91bab70f libavcodec/qsv.c: Issue fixed: QSV engine does not release display handler under linux platform.
Reviewed-by: Gwenole Beauchesne <gb.devel@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-14 02:02:55 +02:00
Michael Niedermayer
96e1cc3f8b Merge commit 'a5a6a786bfebb85c269abc25559fd71963983581'
* commit 'a5a6a786bfebb85c269abc25559fd71963983581':
  mp3: Forward seeking errors

Conflicts:
	libavformat/mp3dec.c

No change as the avio_seek() that are part of seeking in mp3 are already
checked in FFmpeg

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-14 01:46:16 +02:00
Michael Niedermayer
3edc6d1cd9 Merge commit '32c8d89c036b0e75ece74aea638df587099def0b'
* commit '32c8d89c036b0e75ece74aea638df587099def0b':
  hevc: Print the non-supported chroma_format_idc

Conflicts:
	libavcodec/hevc_ps.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-14 01:33:58 +02:00
Michael Niedermayer
e17a459af0 Merge commit '8e373fe048812a25b238ea60a7052b8c07639a42'
* commit '8e373fe048812a25b238ea60a7052b8c07639a42':
  hevc: Factor out the pixel format mapping from the sps parser

Conflicts:
	libavcodec/hevc_ps.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-14 01:23:39 +02:00
Michael Niedermayer
db1ab7e5af Merge commit 'c571424c7f6276a6374e1784ce2a33d4b6a4292d'
* commit 'c571424c7f6276a6374e1784ce2a33d4b6a4292d':
  asfdec: prevent memory leaks found with Coverity Scan

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-14 00:54:55 +02:00
Michael Niedermayer
4bde1a4a37 avcodec/mpegvideo: Fix null pointer dereference of picture array
Fixes: 0d0a2bace067d09c08f0fa5340496c23_signal_sigsegv_7ffff713351a_342_WobblyWindowsIntro.avi with memlimit of 67108864

Found-by: Samuel Groß, Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-14 00:31:57 +02:00
Michael Niedermayer
503ec7139f 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>
2015-07-13 23:34:29 +02:00
Michael Niedermayer
85b7456efe avcodec/hevc_parser: Fix memleaks in parser mix
Found-by: jamrial
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-13 22:26:53 +02:00
Michael Niedermayer
32d023eb6d avformat/oggdec: Check buf before copying data in to it
Fixes null pointer dereference
Fixes: aace024653cc62947336b86f8de812ab_signal_sigsegv_a0500f_343_WobblyWindowsIntro.ogg with memlimit 262144

Found-by: Samuel Groß, Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-13 22:10:24 +02:00
Michael Niedermayer
5d346feafa 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>
2015-07-13 22:09:50 +02:00
Luca Barbato
a5a6a786bf mp3: Forward seeking errors
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-07-13 21:59:53 +02:00
Luca Barbato
32c8d89c03 hevc: Print the non-supported chroma_format_idc
And drop the spurious newline.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-07-13 21:59:53 +02:00
Luca Barbato
8e373fe048 hevc: Factor out the pixel format mapping from the sps parser
The function will grow larger as more formats are supported.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-07-13 21:59:53 +02:00
Alexandra Hájková
c571424c7f asfdec: prevent memory leaks found with Coverity Scan
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-07-13 20:27:34 +02:00
James Almer
84e847c7c8 avcodec/hevc_parser: use the old parser only when hevc decoder is available
If it's not, then the new dependence-free parser will be used instead

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-07-13 14:57:54 -03:00
Michael Niedermayer
feb6a94f74 avutil/frame: fix crash with av_frame_unref(NULL)
Fixes: af94b3a3d26586c08f557cafe8246251_signal_sigsegv_7ffff713351a_343_XFMode.ASF with 2097152 alloc limit

Found-by: Samuel Groß, Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-13 19:26:44 +02:00
Michael Niedermayer
cc0380222a avcodec/mpegvideo: Check for NULL in ff_mpv_common_end()
Fixes: af94b3a3d26586c08f557cafe8246251_signal_sigsegv_7ffff713351a_343_XFMode.ASF with 1048576 alloc limit

Found-by: Samuel Groß, Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-13 19:26:37 +02:00
Michael Niedermayer
697160366f avcodec/vp3: check current_frame before accessing it
Fixes null pointer dereference
Fixes: b15eb06e0111e94bc59123c86db7aff9_signal_sigsegv_a0500f_45_320vp3.nsv with allocation limit  536870912

Found-by: Samuel Groß, Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-13 19:11:56 +02:00
Michael Niedermayer
ba05166174 configure: Fix build with --disable-decoders --enable-parser=hevc
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-13 17:43:05 +02:00
Michael Niedermayer
da10aaf238 Merge commit '1b9a8e5f1d007ea19f04032490d681becd0d4e6a'
* commit '1b9a8e5f1d007ea19f04032490d681becd0d4e6a':
  dxva2_hevc: unbreak compilation after recent sps/pps changes

See: 1aab5d8ab1e27449a2d58d6f001bb34784f402bf
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-13 17:12:00 +02:00
Michael Niedermayer
5be07d0206 Merge commit 'a062a55d37720abc8c704aa0e8682efd3cdc9c9b'
* commit 'a062a55d37720abc8c704aa0e8682efd3cdc9c9b':
  hevc_parser: fix standalone build with the hevc decoder disabled

Conflicts:
	libavcodec/Makefile
	libavcodec/hevc.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-13 17:04:13 +02:00
Michael Niedermayer
1127b35ff1 Merge commit 'b9f76d19d81fbc7f088536f966c2d3dc23c34ddc'
* commit 'b9f76d19d81fbc7f088536f966c2d3dc23c34ddc':
  hevc_ps: make sure failing to decode an SPS always returns an error

Conflicts:
	libavcodec/hevc_ps.c

See: 15893adbdb6a7000f59207bcb88def6e7b4812b9
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-13 16:50:06 +02:00
Michael Niedermayer
afa97144cf Merge commit '077b55943330150db0eafd36bbee614697cabd98'
* commit '077b55943330150db0eafd36bbee614697cabd98':
  hevc: handle a NULL sps in set_sps() properly

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-13 16:41:09 +02:00
Michael Niedermayer
d13fc98247 Merge commit '18156b53f9b642b71c182c5c9818175a61572d2b'
* commit '18156b53f9b642b71c182c5c9818175a61572d2b':
  hevc: do not pass an entire HEVCContext into export_stream_params()

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-13 16:31:10 +02:00
Michael Niedermayer
39bbdebb1e 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>
2015-07-13 16:06:37 +02:00
Michael Niedermayer
f7068bf277 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>
2015-07-13 15:47:49 +02:00
Michael Niedermayer
b513661251 avformat/utils: Skip ff_configure_buffers_for_index() for local files
Theres no known case where its use on local files improves performance
if you know of such a case, please contact us

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-13 14:27:02 +02:00
Zhang Rui
f5c281daa8 configure: clean whitespace with [:space:]
https://en.wikibooks.org/wiki/Regular_Expressions/POSIX_Basic_Regular_Expressions

Fixes NDKr10e on Cygwin,
CC_IDENT for it is defined as

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-13 13:38:29 +02:00
Michael Niedermayer
488cc05192 avformat/mov: Use ff_configure_buffers_for_index()
Fixes Ticket2513
Fixes Ticket4432

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-13 12:38:21 +02:00
Michael Niedermayer
b183fb4767 avformat: Add ff_configure_buffers_for_index()
This allows configuring the io buffer in such way that few seeks are needed for playback

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-13 12:38:21 +02:00
James Almer
1b9a8e5f1d dxva2_hevc: unbreak compilation after recent sps/pps changes
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-07-13 09:00:37 +02:00
Anton Khirnov
a062a55d37 hevc_parser: fix standalone build with the hevc decoder disabled
The parser depends on hevc_ps, which in turn needs some data tables.

Found-by: James Almer <jamrial@gmail.com>
2015-07-13 08:58:21 +02:00
Anton Khirnov
b9f76d19d8 hevc_ps: make sure failing to decode an SPS always returns an error
Some of the goto err clauses do not set the error code. It seems better
to fall back on INVALIDDATA instead of adding it everywhere explicitly.
2015-07-13 07:49:03 +02:00
James Almer
1aab5d8ab1 avcodec/dxva2_hevc: unbreak compilation after recent sps/pps changes
Signed-off-by: James Almer <jamrial@gmail.com>
2015-07-13 00:06:02 -03:00
Philip Langdale
b11c3fce38 avcodec/vdpau_hevc: unbreak compilation after sps/pps changes
There was some reorganisation in the HEVC headers so the sps and pps
now live in a different place.
2015-07-12 19:56:54 -07:00
Michael Niedermayer
10d7d0880c avcodec/utils: Check that the sample rate is not negative when opening an encoder
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-13 03:51:33 +02:00
Michael Niedermayer
7c944b0a36 tests/checkasm/x86/Makefile: Use ASMSTRIPFLAGS for asm
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-13 03:15:44 +02:00
Michael Niedermayer
d6ff68ad85 Factor duplicated ff_fast_malloc() out into mem_internal.h
internal.h is difficult to use due to circular dependancies
mem.h is a public header ff_* is not public
Alternative solutions probably are possible too

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-13 02:41:43 +02:00
Ronald S. Bultje
03931ecf71 vf_ssim: remove another obscure double loop.
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-13 02:39:51 +02:00
Ronald S. Bultje
a1f4848049 ssim: refactor a weird double loop.
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-13 02:23:30 +02:00
Michael Niedermayer
4496ccc724 avcodec/hevc_parser: Reenable the old parser under ADVANCED_PARSER define
Feel free to use either, they both work but the old one provides
more information but needs the hevc decoder

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-13 02:14:58 +02:00
Michael Niedermayer
9e810a98a2 Merge commit '650060dfb665552442ec11b456660e3e9a9d9016'
* commit '650060dfb665552442ec11b456660e3e9a9d9016':
  hevc_parser: parse and export some stream parameters

Conflicts:
	configure
	libavcodec/hevc_parser.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-13 01:28:57 +02:00
Michael Niedermayer
99558270ed avcodec/hevc: Simplify skipped_bytes_pos code further
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-13 01:09:21 +02:00
Michael Niedermayer
ad92410d90 avcodec/hevc: Move skipped_bytes_pos_nal to HEVCNAL, simplify code
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-13 00:43:25 +02:00
Michael Niedermayer
bcc6c7bb65 avcodec/hevc: Move skipped_bytes_pos_size_nal into HAVCNAL
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-13 00:38:15 +02:00
Michael Niedermayer
5620ed3557 avcodec/hevc: Remove skipped_bytes_nal, simplify code
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-13 00:03:45 +02:00
Michael Niedermayer
93aa84c1ea Merge commit '7f78155dc6b65be55efb5309b6dd2bb33925a8c4'
* commit '7f78155dc6b65be55efb5309b6dd2bb33925a8c4':
  hevc: improve a comment

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-12 23:45:56 +02:00
Michael Niedermayer
4690a63632 Merge commit 'd82e1adc2019135a2fc45372e0ed0b5ef107cdd0'
* commit 'd82e1adc2019135a2fc45372e0ed0b5ef107cdd0':
  hevc: move splitting the packet into NALUs into a separate function

Conflicts:
	libavcodec/hevc.c
	libavcodec/hevc.h
	libavcodec/hevc_parse.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-12 23:44:24 +02:00
Michael Niedermayer
4c42c66935 Merge commit 'ae05b4865514fd71b5e9431e93aa0d03d7ba7751'
* commit 'ae05b4865514fd71b5e9431e93aa0d03d7ba7751':
  hevc: eliminate the second call to hls_nal_unit()

Conflicts:
	libavcodec/hevc.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-12 22:55:47 +02:00
Michael Niedermayer
760304e4c3 Merge commit 'd7bebe4805193783f0b6f292f9127a75709fb7d9'
* commit 'd7bebe4805193783f0b6f292f9127a75709fb7d9':
  hevc: skip invalid/ignored NALUs when splitting the packet

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-12 22:46:06 +02:00
Michael Niedermayer
d5fcca83b9 Merge commit 'b11acd57326db6c2cc1475dd0bea2a06fbc85aa2'
* commit 'b11acd57326db6c2cc1475dd0bea2a06fbc85aa2':
  hevc: remove HEVCContext usage from hevc_ps

Conflicts:
	libavcodec/hevc.c
	libavcodec/hevc_cabac.c
	libavcodec/hevc_filter.c
	libavcodec/hevc_mvs.c
	libavcodec/hevc_ps.c
	libavcodec/hevc_refs.c
	libavcodec/hevcpred_template.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-12 22:28:54 +02:00
Paul B Mahol
885afff01c avfilter/vf_w3fdif: implement slice threading
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-12 20:06:03 +00:00
Paul B Mahol
7b07e72abc avfilter/vf_stereo3d: implement slice threading for anaglyph output
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-12 20:05:56 +00:00
Paul B Mahol
c02ee69be9 fate: add tests for stereo3d anaglyph modes
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-12 20:05:56 +00:00
Michael Niedermayer
ddd86e4747 Merge commit 'ab05ed4c322ed0488ac9b5d2ef5d4ffa55a946a7'
* commit 'ab05ed4c322ed0488ac9b5d2ef5d4ffa55a946a7':
  mpegvideo_parser: export pixel format and dimensions

Conflicts:
	libavcodec/mpegvideo_parser.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-12 21:34:59 +02:00
Michael Niedermayer
547848f711 Merge commit '9f4c7397a296e6d11b3c6c121a6896163577dc7c'
* commit '9f4c7397a296e6d11b3c6c121a6896163577dc7c':
  hevc: check slice address length

See: 05cc8c8e4b7008ff3be8ec477c901b2ceca4b16b
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-12 21:31:53 +02:00
Michael Niedermayer
6727380d05 Merge commit 'a9a2f3613040c4f90bf15cbd76f8671252ecc043'
* commit 'a9a2f3613040c4f90bf15cbd76f8671252ecc043':
  doc: add a section about building with libmfx

Conflicts:
	doc/general.texi

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-12 21:23:16 +02:00
Michael Niedermayer
98c7f9741e Merge commit '86eee85daddb682fa072c2e2657c90a514b855e3'
* commit '86eee85daddb682fa072c2e2657c90a514b855e3':
  bytestream2: set the reader to the end when reading more than available

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-12 21:13:07 +02:00
Michael Niedermayer
f14fc55969 Merge commit '8bc67ec2c0d2b5444d51a1bed1d50f0e10d92717'
* commit '8bc67ec2c0d2b5444d51a1bed1d50f0e10d92717':
  Checkasm: assembly testing and benchmarking tool

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-12 21:03:06 +02:00
Ganesh Ajjanagadde
4547cf68a0 avformat/isom: utilize bitrate hints
Fixes Ticket4546

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-12 20:23:58 +02:00
Niklesh
774ceee17e movtextdec.c: Add support for highlight and hilightcolor box
Signed-off-by: Niklesh <niklesh.lalwani@iitb.ac.in>
2015-07-12 10:24:17 -07:00
Anton Khirnov
077b559433 hevc: handle a NULL sps in set_sps() properly
This can happen in update_thread_context(), when the previous frame was
corrupted.
2015-07-12 18:57:10 +02:00
Anton Khirnov
18156b53f9 hevc: do not pass an entire HEVCContext into export_stream_params()
It only needs the parameter sets.
2015-07-12 18:52:02 +02:00
James Almer
a3b721d10d avcodec/dcadec: silence request_channels deprecation warnings
This also prevents an eventual compilation failure once request_channels
is removed.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-07-12 13:32:22 -03:00
Anton Khirnov
650060dfb6 hevc_parser: parse and export some stream parameters
Particularly those that will be needed by the QSV decoder.
More can be added later as necessary.
2015-07-12 18:15:40 +02:00
Anton Khirnov
7f78155dc6 hevc: improve a comment
That loop does the actual full decoding, so 'parse' can be misleading.
2015-07-12 18:15:40 +02:00
Anton Khirnov
d82e1adc20 hevc: move splitting the packet into NALUs into a separate function
This function is independent of the decoding context, so we'll be able
to use it in the parser.
2015-07-12 18:15:39 +02:00
Anton Khirnov
ae05b48655 hevc: eliminate the second call to hls_nal_unit()
Also, make hls_nal_unit() work only on the provided NAL unit, without
requiring a whole decoding context.

This will allow splitting this code for reuse by the parser.
2015-07-12 18:15:39 +02:00
Anton Khirnov
d7bebe4805 hevc: skip invalid/ignored NALUs when splitting the packet
There is no need to wait until actually decoding the NALU. This will
allow to get rid of the second hls_nal_unit() call later.
2015-07-12 18:15:39 +02:00
Anton Khirnov
b11acd5732 hevc: remove HEVCContext usage from hevc_ps
Factor out the parameter sets into a separate struct and use it instead.

This will allow us to reuse this code in the parser.
2015-07-12 18:15:39 +02:00
Anton Khirnov
ab05ed4c32 mpegvideo_parser: export pixel format and dimensions 2015-07-12 18:15:39 +02:00
Andreas Cadhalpun
9f4c7397a2 hevc: check slice address length
It is used as get_bits argument and reading 0 bits doesn't make sense.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-07-12 18:15:39 +02:00
Anton Khirnov
a9a2f36130 doc: add a section about building with libmfx 2015-07-12 18:15:39 +02:00
Anton Khirnov
86eee85dad 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
2015-07-12 18:15:39 +02:00
Ronald S. Bultje
f353b851b9 vf_ssim: fix s->coefs for yuv with non-4:2:0 subsampling.
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-12 17:15:42 +02:00
Henrik Gramner
8bc67ec2c0 Checkasm: assembly testing and benchmarking tool
It provides the following features:
 * verify correctness by comparing output to the C version.
 * detect failure to save and restore clobbered callee-saved registers.
 * detect 32-bit parameters being used as if they were 64-bit in x86-64
   (the upper halves are not guaranteed to be zero - but in practice
   they very often are, which makes those bugs hard to spot otherwise).
 * easy benchmarking.

Compile by running 'make checkasm'.
Execute by running 'tests/checkasm/checkasm'.

Optional arguments are '--bench' to run benchmarks for all functions,
'--bench=<pattern>' to run benchmarks for all functions that starts with
<pattern>, and '<integer>' to seed the PRNG for reproducible results.

Contains unit tests for most h264pred functions to get started, more tests
can be added afterwards using those as a reference.

Loosely based on code from x264. Currently only supports x86 and x86-64,
but additional architectures shouldn't be too much of an obstacle to add.

Note that functions with floating point parameters or floating point
return values are not supported. Some compiler-specific features or
preprocessor hacks would likely be required to add support for that.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2015-07-12 16:39:07 +02:00
Michael Niedermayer
d2e5297e93 Merge commit '796268654c7807c9a1cfb322c838383e2b900d60'
* commit '796268654c7807c9a1cfb322c838383e2b900d60':
  asfdec: always reset packet state after seeking

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-12 16:34:18 +02:00
Michael Niedermayer
839d6bc192 avformat/riffde: Fix integer overflow in bitrate
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-12 16:24:20 +02:00
Michael Niedermayer
cd32637741 Merge commit 'f1bdc234370401c032cd85184e93c7c155eb6d62'
* commit 'f1bdc234370401c032cd85184e93c7c155eb6d62':
  riff: Validate bitrate

Conflicts:
	libavformat/riffdec.c

See: 189420cb561929e05f5cc4224cdca83740a24a32
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-12 16:23:42 +02:00
Andreas Cadhalpun
189420cb56 riffdec: prevent negative bit rate
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-12 16:12:36 +02:00
Michael Niedermayer
7da1f00e79 Merge commit 'c1d647b15afa69fa70f999a9ddcb98346409fb4d'
* commit 'c1d647b15afa69fa70f999a9ddcb98346409fb4d':
  mp3: Make the seek more robust

Conflicts:
	libavformat/mp3dec.c

Mostly not merged

See: b6267901c466c482b2f1af3578b0a6d88265d144 and various later commits

The bug is also not reproducable in FFmpeg

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-12 16:01:31 +02:00
Michael Niedermayer
ba77fb61f7 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>
2015-07-12 15:22:37 +02:00
Michael Niedermayer
e72988d3f8 Merge commit '355864ef7a9548ee6491a25de1e0650bd983a667'
* commit '355864ef7a9548ee6491a25de1e0650bd983a667':
  g726: Do not crash on user mistake

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-12 15:08:30 +02:00
Ronald S. Bultje
3a18d3fa04 ivfenc: write duration at end-of-stream.
At the beginning, the value is not initialized.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-12 13:56:50 +02:00
Hendrik Leppkes
796268654c asfdec: always reset packet state after seeking
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-07-12 13:24:23 +02:00
Michael Niedermayer
cdb0d7e439 avformat/brstm: Remove unused variable
Fixes "libavformat/brstm.c:128:35: warning: variable info_size set but not used"

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-12 12:17:40 +02:00
Michael Niedermayer
944a1aa3c5 avformat/yuv4mpegdec: Use 64bit for file offset
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-12 00:00:21 +02:00
Michael Niedermayer
f8db81074a avcodec/utils: Assert that the pointer is set when size is in ff_fast_malloc()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-11 23:36:45 +02:00
Michael Niedermayer
59a07df067 avcodec/utils: Avoid undefined void casts in ff_fast_malloc()
based on code from libavutil/mem.c

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-11 23:24:16 +02:00
Michael Niedermayer
b3415e4c5f avutil/mem: Fix potential overflow in overallocation code
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-11 22:47:09 +02:00
Michael Niedermayer
bc976e5793 avcodec/utils: Fix potential overflow in overallocation code
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-11 22:46:44 +02:00
Paul B Mahol
9ea81fe95e fate: add tests for w3fdif filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-11 19:34:04 +00:00
Paul B Mahol
3666974230 avformat/yuv4mpegdec: remove unused variable
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-11 19:31:04 +00:00
Ronald S. Bultje
3bb58c377b vf_psnr: fix rgb channel order mixup in final log message.
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-11 19:13:57 +02:00
Ronald S. Bultje
9879421f1a vf_psnr: always calculate MSE over full pixel range.
This makes the output compatible with that of pretty much any other
tool that calculates PSNR.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-11 18:47:05 +02:00
Andreas Cadhalpun
f1bdc23437 riff: Validate bitrate 2015-07-11 18:45:45 +02:00
Luca Barbato
c1d647b15a mp3: Make the seek more robust
Try to parse up to 4 packets to find the closest packet.

Reported-By: jan.schlueter@ofai.at
2015-07-11 18:45:45 +02:00
Luca Barbato
d80811c94e riff: Use the correct logging context 2015-07-11 18:45:44 +02:00
Luca Barbato
355864ef7a g726: Do not crash on user mistake
Properly report the sample rate as invalid

CC: libav-stable@libav.org
2015-07-11 18:45:44 +02:00
Michael Niedermayer
9b8b804cfb avformat/yuv4mpegdec: Remove unused variables
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-11 14:49:55 +02:00
Ronald S. Bultje
733c5d889b yuv4mpeg: add rough duration estimate and seeking.
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-11 14:46:19 +02:00
Ronald S. Bultje
c381af77c5 vF_psnr: move set_meta() calls out of loop.
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-11 12:48:58 +02:00
Michael Niedermayer
e76c34d08c Merge commit '87f98a2b9d4c7218ad82bb45347a53b65e5244f3'
* commit '87f98a2b9d4c7218ad82bb45347a53b65e5244f3':
  fbdev: Support the RGB565 colour space.

Conflicts:
	libavdevice/fbdev_dec.c

See: 43d36599fe3330913c6be9da5519dee048263dc9
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-11 12:25:03 +02:00
Dan Flett
87f98a2b9d fbdev: Support the RGB565 colour space.
Tested on a Raspberry Pi.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-07-11 10:15:59 +03:00
Ronald S. Bultje
0303d43964 vf_psnr: add channel weighting based on chroma subsampling.
Also add per-channel psnr stream averages to final log message.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-11 04:14:09 +02:00
Michael Niedermayer
235e903b63 Merge commit '1410eeb6ea6bc5784e40032430afcdf54a79aedb'
* commit '1410eeb6ea6bc5784e40032430afcdf54a79aedb':
  imc: Use correct position for flcoeffs2 calculation

See: 75fd5ce4c1c0b2d96d71c74b650cefaaef519d27
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-11 00:38:16 +02:00
Michael Niedermayer
c06e556274 avcodec/mpeg4videodec: Check P cbpy
Fixes undefined behavior
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 <michael@niedermayer.cc>
2015-07-11 00:22:29 +02:00
Andreas Cadhalpun
75fd5ce4c1 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>
2015-07-11 00:00:36 +02:00
Michael Niedermayer
8fca37d5f8 avfilter/vf_ssim: Mark constant tables as const
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-10 23:43:21 +02:00
Michael Niedermayer
d759f7f1d0 avcodec/j2kenc: remove unused variable
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-10 23:24:20 +02:00
Andreas Cadhalpun
1410eeb6ea 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.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-07-10 23:13:30 +02:00
Andreas Cadhalpun
05cc8c8e4b 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>
2015-07-10 21:28:56 +02:00
Michael Niedermayer
72527d9c54 Merge commit '872fab4a3df48e7e6484333ee2228c684e319634'
* commit '872fab4a3df48e7e6484333ee2228c684e319634':
  asfdec: Fix reading from the pipe

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-10 20:47:46 +02:00
Michael Niedermayer
47d077337a avcodec/utils: Document 32 min for h264 width
Suggested-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-10 18:31:42 +02:00
Michael Niedermayer
b1e242bc56 avcodec/g2meet: Check R/G/B values in epic_decode_pixel_pred()
Fixes: asan_double-free_d34593_861_smp3.wmv

Found-by: Samuel Groß, Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-10 18:11:28 +02:00
Andreas Cadhalpun
3526a120f9 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>
2015-07-10 16:21:50 +02:00
Michael Niedermayer
7ef6656b1e 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>
2015-07-10 15:18:41 +02:00
Michael Niedermayer
e71ca21f30 avcodec/motion_est_template: Fix undefined behavior in small_diamond_search()
Fixes: asan_heap-oob_394322e_138_cov_4265020547_CVPCMNL1_SVA_C.264

Found-by: Samuel Groß, Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-10 13:42:41 +02:00
Alexandra Hájková
872fab4a3d asfdec: Fix reading from the pipe
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-07-10 13:25:02 +02:00
Paul B Mahol
ae55fc82a8 avfilter/vf_removegrain: clip to uint16 instead to uint8
This is how original filter behaves.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-10 10:50:28 +00:00
Michael Niedermayer
7b404c94f3 avcodec/libopenh264enc: Do not truncate frame rate
Suggested-by: Gregory J Wolfe <gregory.wolfe@kodakalaris.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-10 04:19:07 +02:00
Michael Niedermayer
033dc39c56 Merge commit '67c884eb07c7e9f2cb72bb8d447d945e5ac8cac7'
* commit '67c884eb07c7e9f2cb72bb8d447d945e5ac8cac7':
  libvpx: Add the library header

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-10 02:32:08 +02:00
Michael Niedermayer
60c6959b6b Merge commit '461b45efd04859b2672238bc8a6ecab9e9a14948'
* commit '461b45efd04859b2672238bc8a6ecab9e9a14948':
  lavc: Add nvenc.h to the skipheader

Conflicts:
	libavcodec/Makefile

No change as there is no nvenc.h in FFmpeg

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-10 02:15:54 +02:00
Ivan Uskov
5985316fba libavcodec/qsvenc.c: improving handling for return codes of MFXVideoENCODE_EncodeFrameAsync
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-10 01:26:16 +02:00
Michael Niedermayer
b160fc290c 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>
2015-07-09 22:47:16 +02:00
Vittorio Giovara
67c884eb07 libvpx: Add the library header
Unbreak make checkheaders
2015-07-09 21:36:19 +02:00
Luca Barbato
461b45efd0 lavc: Add nvenc.h to the skipheader
Unbreak make checkheaders
2015-07-09 21:34:57 +02:00
Paul B Mahol
ba0b4e53a5 fate: add removegrain tests
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-09 18:28:29 +00:00
Carl Eugen Hoyos
e786e96be7 lavf/rtpenc_jpeg: Error out for non-standard Huffman tables.
Related to ticket #3823.
2015-07-09 20:03:38 +02:00
Carl Eugen Hoyos
ad7c5cba4e lavf/rtpenc_jpeg: Do not check the table number when checking precision. 2015-07-09 20:00:31 +02:00
Carl Eugen Hoyos
2c7f7a690f ffmpeg: Use av_log to print benchmark output. 2015-07-09 19:58:22 +02:00
Carl Eugen Hoyos
6253f511e0 Cosmetics: Reindent after last commit. 2015-07-09 19:52:06 +02:00
Carl Eugen Hoyos
da46370e94 lavf/matroskaenc: Do not needlessly allocate memory for cuepoints.
Fixes ticket #4690.
2015-07-09 19:49:37 +02:00
Ivan Uskov
dbf8352a2e libavcodec/qsvenc.c: Fix for too agressive height alignment during frame encoding which may be reason of superflous frame copying.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-09 17:46:18 +02:00
Michael Niedermayer
7ee935ba5c avcodec/qsvenc_hevc: Attempt to fix error: too few arguments to function ff_hevc_extract_rbsp
Found-by: Ivan Uskov
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-09 16:51:51 +02:00
Jovan Zelincevic
f21b4472ef libavcodec: Implementation of AAC_fixed_decoder (LC-module) [4/4]
Build system modified

There are several warnings occurring during build after this patch is
applied. The cause of most of these warnings is in that some definitions
needed here are logical part of sbr module and are added in later patches.
When this patches are applied these warnings stop occurring.

The only warning that is added here and is not fixed with later patches
is warning that warns that type mismatch for table ff_aac_eld_window_480.

The reason for this warning is in that ER AAC ELD 480 is not integrated in
to the fixed point implementation at this moment and there is no fixed point
version of this table.

Signed-off-by: Nedeljko Babic <nedeljko.babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-09 14:41:41 +02:00
Djordje Pesut
b04f46cb4b libavcodec: Implementation of AAC_fixed_decoder (LC-module) [3/4]
Add fixed point implementation

Signed-off-by: Nedeljko Babic <nedeljko.babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-09 14:41:31 +02:00
Jovan Zelincevic
08be74ac81 libavcodec: Implementation of AAC_fixed_decoder (LC-module) [2/4]
Add fixed point implementation of functions for generating tables

Signed-off-by: Nedeljko Babic <nedeljko.babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-09 14:41:19 +02:00
Jovan Zelincevic
f497a9e84e libavcodec: Implementation of AAC_fixed_decoder (LC-module) [1/4]
Move existing code to the new template files

Signed-off-by: Nedeljko Babic <nedeljko.babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-09 14:35:44 +02:00
Michael Niedermayer
15893adbdb avcodec/hevc_ps: Remove gotos from ff_hevc_parse_sps()
They are currently unnecessary

Found-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-09 13:02:07 +02:00
Michael Niedermayer
4a5074d798 Merge commit '84b223cc6d6ed4cc8bd295457a90f7c94a9dd784'
* commit '84b223cc6d6ed4cc8bd295457a90f7c94a9dd784':
  configure: Make the new qsv encoder depend on libmfx

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-09 12:40:31 +02:00
Michael Niedermayer
2ecbf44f21 Merge commit 'd1a6cb195f610978ba5d2351e60f938f7f261d59'
* commit 'd1a6cb195f610978ba5d2351e60f938f7f261d59':
  x86: Serialize rdtsc in read_time()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-09 12:28:09 +02:00
Michael Niedermayer
7e85727b98 Merge commit '40af330adf7fde8073271cf2b41ff9adc4c2bba9'
* commit '40af330adf7fde8073271cf2b41ff9adc4c2bba9':
  avconv: vda: Unlock the pixel buffer once it is accessed

See: c06fdacc3dc706e70d953917fea845532d3703ca
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-09 12:19:34 +02:00
Michael Niedermayer
8d4460f1bb Merge commit '8fcd121b823caeadbe7597c9ae9229f6f164f949'
* commit '8fcd121b823caeadbe7597c9ae9229f6f164f949':
  doc: Use the succinct syntax for the channelmap example

Conflicts:
	doc/filters.texi

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-09 12:11:10 +02:00
Michael Niedermayer
7c502935ec configure: Fix build without libmfx
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-09 12:00:32 +02:00
Michael Niedermayer
7871eb4361 Merge commit '66acb76bb0492b263215ca9b4d927a7be39ace02'
* commit '66acb76bb0492b263215ca9b4d927a7be39ace02':
  lavc: add Intel libmfx-based HEVC encoder

Conflicts:
	Changelog
	configure
	libavcodec/Makefile
	libavcodec/allcodecs.c
	libavcodec/qsv.c
	libavcodec/qsvenc.c
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-09 11:53:14 +02:00
Michael Niedermayer
587980eb7a configure: Fix build without libmfx
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-09 11:27:04 +02:00
Michael Niedermayer
96ee6b9962 Merge commit '3a85397e8bb477eb34678d9edc52893f57003226'
* commit '3a85397e8bb477eb34678d9edc52893f57003226':
  lavc: add Intel libmfx-based MPEG2 encoder

Conflicts:
	Changelog
	configure
	libavcodec/allcodecs.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-09 11:17:12 +02:00
Michael Niedermayer
07ae8fa20e Merge commit '69ab9f53f901eac6a649e22d28cf093357870627'
* commit '69ab9f53f901eac6a649e22d28cf093357870627':
  hevc: split bitstream unescaping to a separate file

Conflicts:
	libavcodec/Makefile
	libavcodec/hevc.c

See: afa93d198aaf2cc661c4df6d4095cd030265d30a
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-09 05:06:48 +02:00
Michael Niedermayer
1dacf26964 avcodec/hevc_ps: Do not return success on failures in ff_hevc_parse_sps()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-09 04:50:05 +02:00
Michael Niedermayer
1d4194e696 Merge commit 'fd124d8357b1becfde3ac8d5e3320127cf97a5b7'
* commit 'fd124d8357b1becfde3ac8d5e3320127cf97a5b7':
  hevc_ps: split the code for parsing the SPS and exporting it into the context

Conflicts:
	libavcodec/hevc.c
	libavcodec/hevc_ps.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-09 04:50:00 +02:00
James Almer
c118101662 avcodev/libdcadec: implement request_channel_layout
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-07-08 23:04:17 -03:00
Michael Niedermayer
b457da4ce2 Merge commit '0e7c0ec344f542e68e3cc9680e8d41dffeffdb4e'
* commit '0e7c0ec344f542e68e3cc9680e8d41dffeffdb4e':
  lavf/hevc: pad the RBSP buffer as required by the bistream reader

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-09 03:54:31 +02:00
Chris Watkins
4f5c2e651a 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>
2015-07-09 03:46:37 +02:00
Ivan Uskov
b409748bc4 libavcodec/qsvenc.c: fix incorrect loop condition.
For example, the encoder may return MFX_WRN_INCOMPATIBLE_VIDEO_PARAM warning
i.e. ret==5 old loop implementation will repeat several times until output buffer
overflow. New implementation explicitly uses loop only for device busy case.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-09 02:25:39 +02:00
compn
0054d5ac02 avformat/movenc: fix mime-types in movenc.c
https://developer.apple.com/library/ios/documentation/AppleApplications/Reference/SafariWebContent/CreatingContentforSafarioniPhone/CreatingContentforSafarioniPhone.html

says video/mp4

suggested by BBB on irc.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-09 02:17:35 +02:00
Michael Niedermayer
4a2bcdb28b Merge commit '1761ab838c75223a6b97d8c0720d09275374c53d'
* commit '1761ab838c75223a6b97d8c0720d09275374c53d':
  lavc: Deprecate avctx.rc_strategy

Conflicts:
	libavcodec/mpegvideo.h
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-09 01:17:49 +02:00
Michael Niedermayer
edfcbf7c83 Merge commit '02b7c630875c0bc63cee5ec597aa33baf9bf4e20'
* commit '02b7c630875c0bc63cee5ec597aa33baf9bf4e20':
  h261: Signal freeze picture release for intra frames

Conflicts:
	tests/ref/vsynth/vsynth1-h261
	tests/ref/vsynth/vsynth2-h261

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-09 00:49:20 +02:00
Michael Niedermayer
a137e50ee5 Merge commit 'dc1de0b958836545339611e9c050a1d4fdded263'
* commit 'dc1de0b958836545339611e9c050a1d4fdded263':
  h261: Set 'still image mode off' in picture header

Conflicts:
	tests/ref/vsynth/vsynth1-h261
	tests/ref/vsynth/vsynth2-h261

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-09 00:33:52 +02:00
Michael Niedermayer
fcc117af30 Merge commit 'c8b8271379b200c5c6fa89ca995f90f97f55c2c5'
* commit 'c8b8271379b200c5c6fa89ca995f90f97f55c2c5':
  xcbgrab: Explicitly include xcb/shape.h

See: 54170a33c2c97b0f50347f57e8f0f2ea681dca1d
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-09 00:21:28 +02:00
Luca Barbato
84b223cc6d configure: Make the new qsv encoder depend on libmfx
Found-by: kropping
2015-07-09 00:20:27 +02:00
Michael Niedermayer
17498b70d8 Merge commit '161a301d44274645c2272855dac3e4664f935603'
* commit '161a301d44274645c2272855dac3e4664f935603':
  mpjpeg: Write the Content-length

Conflicts:
	libavformat/mpjpeg.c

See: 0d2f4eedc8a46892471c51cbc7a78cd9a489771a
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-09 00:11:32 +02:00
Henrik Gramner
d1a6cb195f x86: Serialize rdtsc in read_time()
Improves the accuracy of measurements, especially in short sections.

To quote the Intel 64 and IA-32 Architectures Software Developer's Manual:
"The RDTSC instruction is not a serializing instruction. It does not necessarily
wait until all previous instructions have been executed before reading the counter.
Similarly, subsequent instructions may begin execution before the read operation
is performed. If software requires RDTSC to be executed only after all previous
instructions have completed locally, it can either use RDTSCP (if the processor
supports that instruction) or execute the sequence LFENCE;RDTSC."

SSE2 is a requirement for lfence so only use it on SSE2-capable systems.
Prefer lfence;rdtsc over rdtscp since rdtscp is supported on fewer systems.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-07-09 00:10:13 +02:00
Sebastien Zwickert
40af330adf avconv: vda: Unlock the pixel buffer once it is accessed
Avoid possible issues with memmapped hardware buffers in
case VDA is not doing a conversion on behalf of the user
and make the code more proper as working example.

CC: libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-07-09 00:10:13 +02:00
Luca Barbato
8fcd121b82 doc: Use the succinct syntax for the channelmap example
Mixing succinct and long syntax does not work.
2015-07-09 00:09:53 +02:00
Michael Niedermayer
2a33dc2cdf Merge commit 'd09b4cce21cdad5ef2855698395ffd6e37445212'
* commit 'd09b4cce21cdad5ef2855698395ffd6e37445212':
  mpjpeg: Simplify using avio_printf

Conflicts:
	libavformat/mpjpeg.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-08 23:53:08 +02:00
Anton Khirnov
66acb76bb0 lavc: add Intel libmfx-based HEVC encoder 2015-07-08 23:40:11 +02:00
Anton Khirnov
3a85397e8b lavc: add Intel libmfx-based MPEG2 encoder 2015-07-08 23:39:28 +02:00
Anton Khirnov
69ab9f53f9 hevc: split bitstream unescaping to a separate file
It will be useful in the QSV HEVC encoder.
2015-07-08 23:38:32 +02:00
Anton Khirnov
fd124d8357 hevc_ps: split the code for parsing the SPS and exporting it into the context
This will be useful in the later commits, where we want to parse an SPS
without having a whole decoding context.
2015-07-08 23:36:22 +02:00
Anton Khirnov
0e7c0ec344 lavf/hevc: pad the RBSP buffer as required by the bistream reader 2015-07-08 23:36:10 +02:00
Paul B Mahol
91748662bc avfilter: add removegrain
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-08 16:02:34 +00:00
Michael Niedermayer
3c63d06d81 avcodec/h264_slice: Fix container cropping
Fixes out of array read
Fixes: asan_heap-oob_394322e_138_cov_4265020547_CVPCMNL1_SVA_C.264

Found-by: Samuel Groß, Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-08 17:50:05 +02:00
Vittorio Giovara
1761ab838c lavc: Deprecate avctx.rc_strategy
Only used by libxvid in ratecontrol module, so move it to a codec
private option.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-08 16:36:39 +01:00
Michael Niedermayer
80e42387dc avcodec/g2meet: Clear pointers after deallocation
Fixes double free

Found-by: Samuel Groß, Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-08 15:38:37 +02:00
Ganesh Ajjanagadde
e34a3468f2 build: add LDLIBFLAGS
Fixes Ticket4673

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-08 14:35:02 +02:00
Michael Niedermayer
e83ffb48ac avcodec/utils: Check values in apply_param_change()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-08 12:06:17 +02:00
Michael Niedermayer
656e9a68c4 avformat/swfdec: Fix "}else" style
Found-by: durandal_170
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-08 12:06:17 +02:00
Paul B Mahol
7efe81a813 avfilter/vf_colormatrix: add yuv444p support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-08 05:40:03 +00:00
Michael Niedermayer
6a1204a1a4 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>
2015-07-08 02:43:02 +02:00
Michael Niedermayer
b8c438e762 videodsp: assert that linesize is larger than width
Suggested-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-08 01:32:04 +02:00
Andreas Cadhalpun
42e7a5b3c7 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>
2015-07-07 23:35:00 +02:00
Andreas Cadhalpun
f9020d514e wmalosslessdec: avoid reading 0 bits with get_bits
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-07-07 23:34:28 +02:00
Rostislav Pehlivanov
80db686a69 aacenc: fix option descriptions
Since the new PNS implementation has been merged and is no longer considered
proof of concept (as it's much more complex and better than the previous), change
the comments to reflect that. We need people testing it (since all AAC profiles
require it to be on by default) and having it tagged as proof of concept might drive some away.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-07 22:56:30 +02:00
James Almer
7d5ab16506 avcodec/libdcadec: export matrix encoding side data
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-07-07 16:18:46 -03:00
Chris Watkins
55e29ceec8 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>
2015-07-07 21:10:15 +02:00
周晓勇
09883876ca configure: loongson enabled local aligned 32
Signed-off-by: ZhouXiaoyong <zhouxiaoyong@loongson.cn>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-07 21:10:09 +02:00
Stian Selnes
02b7c63087 h261: Signal freeze picture release for intra frames
Freeze picture release should be set to 1 when we're responding to a
fast update request. For simplicity we set it for all intra frames,
including those that starts a GOP.

Fixes issue where Tandberg MXP1700 does not recover from packet loss
state since it's waiting for the freeze picture relase indication.

Bug-Id: 873
CC: libav-stable@libav.org

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-07-07 15:11:15 +02:00
Stian Selnes
dc1de0b958 h261: Set 'still image mode off' in picture header
Ref H.261 recommendation section 4.2.1.3, setting the still image flag
to 1 disables still image mode. Some decoders require this in order to
decode the bitstream as normal video.

Fixes H.261 calls to Cisco E20.

Also, reserved (aka spare) bits should be set to 1 unless specified
otherwise.

Bug-Id: 872
CC: libav-stable@libav.org

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-07-07 15:04:55 +02:00
Shivraj Patil
d12f76ffbb avcodec/mips: MSA (MIPS-SIMD-Arch) optimizations for idctdsp functions
This patch adds MSA (MIPS-SIMD-Arch) optimizations for idctdsp functions in new file idctdsp_msa.c and simple_idct_msa.c

Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-07 14:35:15 +02:00
Ivan Uskov
9c95734e1c libavcodec/qsv.c: Linux-only code part has been moved to separate function in order to avoid the "ISO C90 forbids mixed declarations and code" compiler warning.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-07 14:03:59 +02:00
Carl Eugen Hoyos
1d5edad8cc lavf/mpegtsenc: Only fail aac muxing if the first frame is invalid.
Fixes ticket #3957.
2015-07-07 10:44:46 +02:00
周晓勇
d44cf5ef42 configure: add loongson2 cpu support
Signed-off-by: ZhouXiaoyong <zhouxiaoyong@loongson.cn>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-07 03:47:06 +02:00
周晓勇
387cbe018c use mmi instead of loongson3 as simd-optimization flag
Signed-off-by: ZhouXiaoyong <zhouxiaoyong@loongson.cn>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-07 03:46:57 +02:00
周晓勇
72aaca7488 avcodec: loongson remove useless macros in mipsfpu optimization
Loongson has disabled all mipsfpu optimization as fate-test faild.

Signed-off-by: ZhouXiaoyong <zhouxiaoyong@loongson.cn>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-06 21:16:53 +02:00
Luca Barbato
c8b8271379 xcbgrab: Explicitly include xcb/shape.h
Found-By: Cheristheus
2015-07-06 20:00:34 +02:00
Michael Niedermayer
a3a61d4663 avcodec/lpc: Fix lpc_apply_welch_window_c() for odd len
Also removes assert
this fixes an assertion failure on non-x86

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-06 19:11:42 +02:00
Shivraj Patil
709bb45c66 avcodec/mips: MSA (MIPS-SIMD-Arch) optimizations for me_cmp functions
This patch adds MSA (MIPS-SIMD-Arch) optimizations for me_cmp functions in new file me_cmp_msa.c

Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-06 18:25:14 +02:00
Shivraj Patil
2f3f98af2b avcodec/mips: MSA (MIPS-SIMD-Arch) optimizations for mpegvideoencdsp functions
This patch adds MSA (MIPS-SIMD-Arch) optimizations for mpegvideoencdsp functions in new file mpegvideoencdsp_msa.c

Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-06 18:25:01 +02:00
Ivan Uskov
115c14c3b6 libavcodec/qsvenc.c: A warning message when library will work at partial hardware acceleration.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-06 17:39:08 +02:00
Rodger Combs
2375a85c36 ffmpeg_opt: allow the user to ignore unused stream maps
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-06 15:40:13 +02:00
Kieran Kunhya
8234f0e3b4 avcodec: Add support for Closed Caption export in h264
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-06 15:25:22 +02:00
Ivan Uskov
38402754b9 libavcodec/qsvenc.c: More correct selection of alignment of a frame height depending whether an encoded sequence progressive or not.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-06 15:13:08 +02:00
Marton Balint
859731d642 lavc/utils: get rid of add_metadata_from_side_data forward declaration
Signed-off-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-06 01:02:35 +02:00
Marton Balint
9476c4c67e lavc/utils: call add_metadata_from_side_data in ff_init_buffer_info
This should ensure that each frame get its metadata from its proper packet
regardless of frame delays caused by reordering or threading.

Signed-off-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-06 00:39:29 +02:00
Marton Balint
10b6a83fb3 lavc/utils: change add_metadata_from_side_data to accept avpacket
Signed-off-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-06 00:08:48 +02:00
Marton Balint
3a19fe0048 lavc/utils: remove redundant call to ff_init_buffer_info
It does the same as calling ff_decode_frame_props.

Signed-off-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-06 00:07:55 +02:00
Carl Eugen Hoyos
97fa0f37fe lavc/j2kenc: Enable yuv42x and yuv41x encoding.
Fixes ticket #535.
Fixes ticket #4524.
2015-07-06 00:06:54 +02:00
James Almer
e43ea1cbb2 doc/texi2pod: fix an unescaped left brace
This silences some deprecation warnings

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-07-05 19:02:48 -03:00
Michael Niedermayer
c0db6320a6 avcodec/avuienc: Use ff_alloc_packet()
This should be faster in theory for AVUI, no speed difference
meassurable though

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-05 23:05:25 +02:00
Michael Niedermayer
0e7bbdbeaf avcodec/avuienc: Initialize output data
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-05 23:05:25 +02:00
Michael Niedermayer
47496eb97c 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>
2015-07-05 20:00:15 +02:00
Rostislav Pehlivanov
e8576dc8df aacenc: implement Intensity Stereo encoding support
This commit implements intensity stereo coding support
to the native aac encoder. This is a way to increase the efficiency
of the encoder by zeroing the right channel's spectral coefficients
(in a channel pair) and rederiving them in the decoder using information
from the scalefactor indices of special band types. This commit
confomrs to the official ISO 13818-7 specifications, although due to
their ambiguity certain deviations have been taken to ensure maximum
sound quality. This commit has been extensively tested and has shown
to not result in audiable audio artifacts unless in extreme cases.
This commit also adds an option, aac_is, which has the value of
0 by default. Intensity Stereo is part of the scalable aac profile
and is thus non-default.

The way IS coding works is that it rederives the right channel's
spectral coefficients from the left channel via the scalefactor
index values left in the right channel. Since an entire band's
spectral coefficients do not need to be coded, the encoder's
efficiency jumps up and it unzeroes some high frequency values
which it previously did not have enough bits to encode. That way
less information is lost than the information lost by rederiving
the spectral coefficients with some error. This is why the
filesize of files encoded with IS do not decrease significantly.
Users wishing that IS coding should reduce filesize are expected
to reduce their encoding bitrates appropriately.

This is V2 of the commit. The old version did not mark ms_mask as
0 since M/S and IS coding are incompactible, which resulted in
distortions with M/S coding enabled. This version also improves
phase detection by measuring it for every spectral coefficient in
the band and using a simple majority rule to determine whether the
coefficients are in or out of phase. Also, the energy values per
spectral coefficient were changed as to reflect the
official specifications.

Reviewed-by: Claudio Freire <klaussfreire@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-05 16:59:26 +02:00
Rostislav Pehlivanov
0b233900fa aacenc: add support for coding of IS spectral coefficients
This commit adds support for the coding of intensity stereo spectral
coefficients. It also fixes the Mid/Side coding of band_types higher
than RESERVED_BT (M/S must not be applied to their spectral coefficients,
but marking M/S as present in encode_ms_info() is okay). Much
of the changes here were taken from the decoder and inverted.
This commit does not change the functionality of the decoder as the
previous patch in this series zeroes ms_mask and is_mask.

Reviewed-by: Claudio Freire <klaussfreire@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-05 16:58:37 +02:00
Rostislav Pehlivanov
38fd4c2e66 aaccoder: add a new perceptual noise substitution implementation
This commit finalizes the PNS implementation previously added to the encoder
by moving it to a seperate function search_for_pns() and thus making it
coder-generic. This new implementation makes use of the spread field of
the psy bands and the lambda quality feedback paremeter. The spread of the
spectrum in a band prevents PNS from being used excessively and thus preserve
more phase information in high frequencies.  The lambda parameter allows
the number of PNS-marked bands to vary based on the lambda parameter and the
amount of bits available, making better choices on which bands are to be marked
as noise. Comparisons with the previous PNS implementation can be found
here: https://trac.ffmpeg.org/attachment/wiki/Encode/AAC/

This is V2 of the patch, the changes from the previous version being that this
version uses the new band->spread metric from aacpsy and normalizes the
energy using the group size. These changes were suggested by Claudio Freire
on the mailing list. Another change is the use of lambda to alter the
frequency threshold. This change makes the actual threshold frequencies
vary between +-2Khz of what's specified, depending on frame encoding performance.

Reviewed-by: Claudio Freire <klaussfreire@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-05 16:39:06 +02:00
Rostislav Pehlivanov
117b15f4a8 aaccoder: remove previous PNS implementation from twoloop
This commit undoes commit c5d4f87e81111427c0952278ec247fa8ab1e6e52
and removes PNS band marking from the twoloop coder, which has
been reimplemented in a better way in this series of patches.

Reviewed-by: Claudio Freire <klaussfreire@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-05 16:38:32 +02:00
Rostislav Pehlivanov
e06578e392 aacenc: use the new function for setting special band scalefactor indices
This commit enables the function added with commit 7c10b87 and uses that
new function for setting any special scalefactor indices. This commit does
not change the behaviour of the encoder since no bands are being marked as
either NOISE_BT(due to the previous PNS implementation removed in the
previous commit) or INTENSITY_BT2/INTENSITY_BT.

Reviewed-by: Claudio Freire <klaussfreire@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-05 16:36:38 +02:00
Philip Langdale
671bdd4b09 avcodec/nvenc: Add support for H.264 High 444 Predictive encoding
Newer versions of the nvenc hardware support The High 444 Predictive profile
of H.264, and can also do lossless encoding under this profile if desired.

This change introduces support for the profile, and exposes the appropriate
presets for requesting lossless encoding.

I tested lossless by generating a baseline sample with testsrc converted
to raw yuv444p, then encoded the sample with nvenc, then did a framemd5
comparision of both the raw video and the nvenc encode. The framemd5
reports were identical.

Signed-off-by: Philip Langdale <philipl@overt.org>
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2015-07-05 13:51:56 +02:00
Frank Heckenbach
161a301d44 mpjpeg: Write the Content-length 2015-07-04 00:51:03 +02:00
Luca Barbato
d09b4cce21 mpjpeg: Simplify using avio_printf 2015-07-04 00:46:44 +02:00
Vittorio Giovara
f046c3b5ac lavc: Move deprecation warning disabling to files including the table
Unbreak build from 7a5902c556d84a367dd64a003a4e7244fc3a73d1.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-07-03 21:02:50 +02:00
Paul B Mahol
5233f2534c avformat/yuv4mpegenc: use avio_printf()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-03 18:43:21 +00:00
Paul B Mahol
e658b1036c avfilter/avf_showvolume: make it possible to use current channel number in color expression
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-03 18:43:21 +00:00
Paul B Mahol
c3a5702ebf lavfi: add (a)drawgraph filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-03 18:43:21 +00:00
George Boyle
4385a1ce8f fate/api-tests: Tests that need samples should only run if SAMPLES is set
This change fixes a bug where a test that required a sample was being included
in the suite when SAMPLES was not set. It also improves the consistency of
variable names relating to the API tests.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-04 02:15:16 +02:00
Kevin Coyle
1262711388 YUV->BGR32 MMX support
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-04 00:03:45 +02:00
Michael Niedermayer
8255b14c68 swscale/output: fix input indexing in yuv2ya8_2_c()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-04 00:03:45 +02:00
Michael Niedermayer
ab80d3fb3a swscale/output: fix null pointer dereference in yuv2ya8_2_c()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-03 23:03:25 +02:00
Michael Niedermayer
3b03186d56 Merge commit 'f046c3b5ac36848cce824b008e0347c621523041'
* commit 'f046c3b5ac36848cce824b008e0347c621523041':
  lavc: Move deprecation warning disabling to files including the table
  lavc: Disable deprectation warnings coming from options table

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-03 21:40:47 +02:00
Michael Niedermayer
d563e13a7c Merge commit '832129431fd5c693b12c32a1563944c631feaf36'
* commit '832129431fd5c693b12c32a1563944c631feaf36':
  lavu: Add version information for av_version_info()

Conflicts:
	doc/APIchanges
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-03 21:06:46 +02:00
Paul B Mahol
866404df2d avfilter/vf_lut: fix oversight
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-03 16:58:56 +00:00
Paul B Mahol
94cfb6db7d avcodec/shorten: use init_get_bits8()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-03 16:57:11 +00:00
Paul B Mahol
c0d676f977 avfilter/af_astats: implement recalculation of stats after each X frames
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-03 16:34:28 +00:00
Paul B Mahol
d3836b603e avfilter/af_astats: export metadata
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-03 16:34:28 +00:00
Michael Niedermayer
9f653e6d36 avcodec/j2kenc: Support user specified tile dimensions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-03 18:23:08 +02:00
Michael Niedermayer
d554715f67 avcodec/jpeg2000dec: Fix decoding of subsampled multi tile images
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-03 18:08:01 +02:00
Rostislav Pehlivanov
9f4f578704 aacenc: reset marked IS and M/S bands upon frame encoding
This commit resets any bands marked as M/S or IS upon encoding a frame.
This is needed because the arrays may contain some residual information
upon allocation on startup and because there isn't any mechanism to
reset the arrays once the frame has been encoded.

Reviewed-by: Claudio Freire <klaussfreire@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-03 16:17:16 +02:00
Vittorio Giovara
7a5902c556 lavc: Disable deprectation warnings coming from options table 2015-07-03 14:30:17 +01:00
Vittorio Giovara
832129431f lavu: Add version information for av_version_info()
Move the APIchange entry at the top.
2015-07-03 14:30:11 +01:00
Rostislav Pehlivanov
57848ef3c6 aaccoder: fix M/S coding
There were some mistakes in the code for M/S stereo, this commit fixes them.
The start variable was not being reset for every window and every access to
the coefficients was incorrect as well. This fixes that by properly
addressing the coefficients using both windows and setting the start on every window to zero.

Reviewed-by: Claudio Freire <klaussfreire@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-03 13:27:25 +02:00
Rostislav Pehlivanov
8e607c747e aacpsy: use a different metric for the spread of a band
This commit modifies 02dbed6 to use band->active_lines to better gauge how much information is contained within a single band and thus allow the perceptual noise subsitution to more accurately determine which bands to code as noise. The spread[w+g] used before this patch behaved more like a low-pass filter for PNS band_types, which could mistakingly mark some low frequency bands as noise.

Reviewed-by: Claudio Freire <klaussfreire@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-03 13:17:57 +02:00
Michael Niedermayer
8f4cfda972 avutil: add missing bswap include
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-03 13:17:57 +02:00
Paul B Mahol
b74ebd09c7 avfilter/vf_lut: >8 bit depth planar yuv support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-03 09:29:06 +00:00
Michael Niedermayer
daff49ccf3 Merge commit '80f955c90867561dcce769216bc497e13281eb38'
* commit '80f955c90867561dcce769216bc497e13281eb38':
  vda: Check the correct pointer for buffer allocation

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-03 04:36:31 +02:00
Michael Niedermayer
3ffa385801 Merge commit '76d4c62734fbb8a9f497712812f30ff5c27e787f'
* commit '76d4c62734fbb8a9f497712812f30ff5c27e787f':
  webp: Make sure enough bytes are available

Conflicts:
	libavcodec/webp.c

See: 0762152f7af6cd93bc8f504d5503723500c3f369
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-03 04:07:16 +02:00
Andreas Cadhalpun
0762152f7a 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>
2015-07-03 04:06:19 +02:00
Michael Niedermayer
30ffbeb04a Merge commit '016cac75c6061a1c03f812ddf258b8baefe70b00'
* commit '016cac75c6061a1c03f812ddf258b8baefe70b00':
  asfdec: prevent the infinite loop in detect unknown_subobject

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-03 03:58:33 +02:00
Michael Niedermayer
7755a57440 Merge commit '9752d2e6cc9b9e8070ec515db8ed8374683d0856'
* commit '9752d2e6cc9b9e8070ec515db8ed8374683d0856':
  asfdec: prevent possible memory leak in the asf_read_metadata_obj

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-03 03:51:00 +02:00
Michael Niedermayer
a8ab64d2f7 Merge commit '910247f1720c6aae422723c05dac6d0b19f20bec'
* commit '910247f1720c6aae422723c05dac6d0b19f20bec':
  lavc: Deprecate avctx.{inter,intra}_quant_bias

Conflicts:
	libavcodec/mpegvideo_enc.c
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-03 03:40:22 +02:00
Michael Niedermayer
e15e78f391 Merge commit '1316df7aa98c4784f190d107206d0bb12c590b89'
* commit '1316df7aa98c4784f190d107206d0bb12c590b89':
  lavu: add an API function to return the Libav version string

Conflicts:
	.gitignore
	Makefile
	cmdutils.c
	doc/APIchanges
	libavutil/avutil.h
	libavutil/utils.c

See: f91126643a91c2d3f8d8e210c8facaf259951b03
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-03 03:22:48 +02:00
Luca Barbato
80f955c908 vda: Check the correct pointer for buffer allocation
CC: libav-stable@libav.org
Found-By: kropping
2015-07-03 01:58:32 +02:00
Andreas Cadhalpun
76d4c62734 webp: Make sure enough bytes are available
Every chunk needs at least 8 bytes for chunk_type and chunk_size.
Prevent a possible infinite loop.

CC: libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-07-03 01:50:09 +02:00
Alexandra Hájková
016cac75c6 asfdec: prevent the infinite loop in detect unknown_subobject
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-07-03 01:50:09 +02:00
Alexandra Hájková
9752d2e6cc asfdec: prevent possible memory leak in the asf_read_metadata_obj
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-07-03 01:50:09 +02:00
Vittorio Giovara
910247f172 lavc: Deprecate avctx.{inter,intra}_quant_bias
They are used by dnxhd and mpegvideo_enc exclusively, move them to codec
private options instead.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-02 22:37:59 +01:00
wm4
1316df7aa9 lavu: add an API function to return the Libav version string
This returns something like "v12_dev0-1332-g333a27c". This is much more
useful than the individual library versions, of which there are too
many, and which are very hard to map back to releases or git commits.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2015-07-02 23:22:53 +02:00
Paul B Mahol
2778fdbe54 swscale: implement YA8 output
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-02 17:36:05 +00:00
Andreas Cadhalpun
d0eff8857c 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>
2015-07-02 23:31:16 +02:00
Paul B Mahol
96953e2ef6 avfilter/vf_mpdecimate: remove packed formats
Packed formats are not supported.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-02 15:36:00 +00:00
Paul B Mahol
7ff5a345a4 avfilter: use AVFILTER_DEFINE_CLASS()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-02 15:36:00 +00:00
Ivan Uskov
6e5864ab29 avcodec/qsvenc_h264: Change the set of performance presets to match with the MFX library constants.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-02 19:16:41 +02:00
Michael Niedermayer
c9220d5b06 avcodec/mjpegdec: Reorder operations to avoid undefined behavior
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>
2015-07-02 18:53:32 +02:00
Michael Niedermayer
9dc0bac971 avcodec/motion_est_template: Fix undefined shifts in CHECK_MV()
Fixes:asan_heap-oob_4d5bb0_2295_cov_3374722539_hotel_california_ra5.1_640x480_30s.rmvb

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-02 18:43:03 +02:00
Ivan Uskov
db89f45535 avcodec/qsv: Extending QSV/MFX session initialization for the linux platform where a display handle is required.
Now ff_qsv_init_internal_session() is able
to find appropriate display handle under linux using VAAPI.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-02 15:05:56 +02:00
Stefano Sabatini
8cbce1001d doc/muxers/segment: fix formatting of segment_list_type option
Place @item entry at the right point, remove duplicated description.
2015-07-02 11:06:23 +02:00
Michael Niedermayer
1f69b7baa1 avformat/asfdec_f: Fix memleak
Found-by: jamrial
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-02 09:42:33 +02:00
John Adlum
72cad80016 avformat/asfdec_f: Add ASFDataType, use named types for metadata
This is based on asfdec_o.c, but uses a proper type instead of defines

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-02 04:58:27 +02:00
John Adlum
59fffefdb4 avformat/asfdec_f: Use dynamic allocation in asf_read_metadata() instead of a fixed size buffer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-02 04:58:23 +02:00
John Adlum
c8eca438a9 avformat/asfdec_f: factor error checking out of main header parsing loop
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-02 04:58:18 +02:00
rogerdpack
a1c03b9d58 ffmpeg_filter: log more information on failure to init simple filter graph
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-02 04:56:10 +02:00
Michael Niedermayer
03b2b40fd7 Merge commit 'a31c4b2cbef9aee15910fc3df52519aef46760de'
* commit 'a31c4b2cbef9aee15910fc3df52519aef46760de':
  fate-g2m3: disable the audio stream

Conflicts:
	tests/ref/fate/g2m3

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-02 00:34:24 +02:00
Michael Niedermayer
838c5f3df7 avformat/utils: Redesign scoring in av_find_default_stream_index()
This avoids empty streams from being selected if a equivalent non empty one is available
The new system is also clearer and more systematic
This may need finetuning, which should be easy to do ...

Fixes Ticket2687

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-01 22:51:48 +02:00
Michael Niedermayer
52c5521877 ffmpeg_opt: Favor streams that had packets
Fixes Thailand-Wave.wmv without explicitly specifying a stream

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-01 22:43:26 +02:00
Paul B Mahol
5165c600eb avformat/rtmpproto: increase hardcoded url/path lengths
Fixes #4103.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-01 20:03:26 +00:00
Janne Grunau
a31c4b2cbe fate-g2m3: disable the audio stream
The audio decoder is not in fate-g2m3 dependencies and the wma2 decoder
is probably not bit-exact since it it float based.
2015-07-01 21:42:48 +02:00
Rodger Combs
c190fdf65d lavu: Makefile: skip atomic.c if native atomics are available
This prevents a linker warning and skips a useless compilation

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-01 21:40:16 +02:00
Michael Niedermayer
06a0d5ef5c avcodec/h264dsp_template: Fix undefined shifts
Fixes: asan_heap-oob_17212bc_2243_cov_594210248_h264_TTA.mkv

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-01 20:39:25 +02:00
Michael Niedermayer
ce81e47c91 avcodec/mss2: Fix integer overflow
This also simplifies the code
Fixes: signal_sigabrt_7ffff6ac8cc9_2943_cov_3588637614_mss2_speech.wmv

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-01 20:30:48 +02:00
Michael Niedermayer
f8e038f9a0 Merge commit '4e0819310e2d2eff60be2d6df28335f0739712b9'
* commit '4e0819310e2d2eff60be2d6df28335f0739712b9':
  elsdec: Replace EOVERFLOW with INVALIDDATA

See: dec728888f8826e3f2032aec463c3dd1e26ec2a4
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-01 19:53:59 +02:00
Michael Niedermayer
5142963b7d Merge commit 'f91fe24e9bd6912c29bbb03d8afe878e045f9721'
* commit 'f91fe24e9bd6912c29bbb03d8afe878e045f9721':
  g2meet: force simple idct for identical results over all fate configs

Conflicts:
	tests/ref/fate/g2m3
	tests/ref/fate/g2m4

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-01 19:31:34 +02:00
Paul B Mahol
17e6d7b400 avfilter/vf_extractplanes: use faster path for input formats with only one component
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-01 17:19:52 +00:00
Paul B Mahol
fc40cdbf49 avfilter/vf_extractplanes: rename misleading variable
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-01 17:19:52 +00:00
Paul B Mahol
be35b8b9a9 avfilter/vf_extractplanes: support more pixel formats
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-07-01 17:19:52 +00:00
Michael Niedermayer
6205143bb3 Merge commit '9eec23b8a7fd0f91827bbc3ed0792c39a8cc9a8a'
* commit '9eec23b8a7fd0f91827bbc3ed0792c39a8cc9a8a':
  g2meet: use av_ceil_log2 instead of a custom function

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-01 19:09:55 +02:00
Michael Niedermayer
92c858ae66 Merge commit '4ccccd6c40a6d0ce85e96a6e37f558236e2a6a75'
* commit '4ccccd6c40a6d0ce85e96a6e37f558236e2a6a75':
  g2meet: use an unsigned type for the djb hash

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-01 19:09:10 +02:00
Michael Niedermayer
9cf95654ac Merge commit '007e27d363ba7d994019dc897dc9c39071bb204a'
* commit '007e27d363ba7d994019dc897dc9c39071bb204a':
  avcodec: add missing CODEC_CAP_DR1 to codecs using get_buffer()

Conflicts:
	libavcodec/atrac3plusdec.c
	libavcodec/sp5xdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-01 18:58:01 +02:00
John Adlum
811008b8ee avformat/asfdec_f: Assert that packet positions match in asf_read_pts()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-01 18:47:59 +02:00
John Adlum
28206b75e8 avformat/asfdec_f: Correct skip to key code
Fixes Ticket3978

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-01 18:47:54 +02:00
John Adlum
089a818bd3 avcodec/pthread_frame: Correcting typo of "occurred"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-01 18:47:44 +02:00
Shivraj Patil
2eb28e889d avcodec/mips: MSA (MIPS-SIMD-Arch) optimizations for mpegvideo functions
This patch adds MSA (MIPS-SIMD-Arch) optimizations for mpegvideo functions in new file mpegvideo_msa.c

Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-01 17:32:47 +02:00
Michael Niedermayer
4e0819310e elsdec: Replace EOVERFLOW with INVALIDDATA
EOVERFLOW is not available on all platforms.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-01 16:26:42 +01:00
Michael Niedermayer
53fd70579b avcodec/h264_mvpred: Fix undefined shifts in MAP_F2F
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>
2015-07-01 15:53:15 +02:00
Michael Niedermayer
ac78014f0b avcodec/motion_est: Fix some undefined shifts
Fixes: asan_heap-oob_1dd60fd_1049_cov_4200102444_P4250048.MOV

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-01 15:42:07 +02:00
Janne Grunau
f91fe24e9b g2meet: force simple idct for identical results over all fate configs 2015-07-01 15:33:20 +02:00
wm4
f91126643a lavu: add an API function to return the FFmpeg version string
This returns something like "N-73264-gb54ac84". This is much more useful
than the individual library versions, of which there are too much and
which are very hard to map back to releases or git commits.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-01 14:58:05 +02:00
Vadim Belov
db64af6395 avformat/concatdec: copy stream metadata when using concat
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-01 14:43:31 +02:00
Michael Niedermayer
60ec3007e6 avformat/nutdec: Check ff_gen_search() for failure
Fixes assertion failure

Found-by: durandal_1707
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-01 14:28:41 +02:00
Janne Grunau
9eec23b8a7 g2meet: use av_ceil_log2 instead of a custom function 2015-07-01 13:58:34 +02:00
Michael Niedermayer
4eee685a21 avcodec/motion_est: Fix undefined shifts in cmp_inline()
Fixes: signal_sigsegv_35eac16_2762_cov_2704249783_missing_frames.avi

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-01 13:42:06 +02:00
Michael Niedermayer
0ea099ad3e avcodec/mpegvideo_enc: fix undefined shifts in ff_dct_quantize_c()
Fixes: signal_sigsegv_35eac16_2762_cov_2704249783_missing_frames.avi

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-01 13:40:36 +02:00
Janne Grunau
4ccccd6c40 g2meet: use an unsigned type for the djb hash 2015-07-01 13:34:50 +02:00
Michael Niedermayer
56fd4705c0 avcodec/motion_est_template: Fix undefined shifts in CHECK_MV_DIR()
Fixes: signal_sigsegv_2e64ee0_2762_cov_4170502227_missing_frames.avi

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-01 12:21:56 +02:00
Janne Grunau
007e27d363 avcodec: add missing CODEC_CAP_DR1 to codecs using get_buffer() 2015-07-01 12:10:25 +02:00
Michael Niedermayer
2f8c81637c avformat/matroskadec: Fix undefined shift in read_sint()
Fixes: asan_heap-oob_17212bc_2243_cov_594210248_h264_TTA.mkv

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-01 12:00:43 +02:00
Michael Niedermayer
8750aef3d6 ffmpeg_opt: Fix forcing fourccs
Fixes Ticket4682

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-01 05:10:51 +02:00
Michael Niedermayer
dec728888f avcodec/elsdec: Remove EOVERFLOW
EOVERFLOW is not available on all platforms

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-01 04:24:58 +02:00
Michael Niedermayer
55a04a5d7a Merge commit 'a1e2caa93e4f8102666a21222f01b74838b6497f'
* commit 'a1e2caa93e4f8102666a21222f01b74838b6497f':
  mov: Log format rather than fourcc in stsd in trace mode

Conflicts:
	libavformat/mov.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-01 04:15:27 +02:00
Michael Niedermayer
35c8dda5c2 Merge commit '2eef75fd7e1ac96ab9ca63bb4523078c908bc9b1'
* commit '2eef75fd7e1ac96ab9ca63bb4523078c908bc9b1':
  mov: Adjust variable types to fix format warnings

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-01 04:06:42 +02:00
Michael Niedermayer
a8e137a322 Merge commit 'df22e30172b09cda4d6f7d4f43508284be65848a'
* commit 'df22e30172b09cda4d6f7d4f43508284be65848a':
  dump: Use the correct abs() version

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-01 03:51:56 +02:00
Michael Niedermayer
9c010ba668 Merge commit '0d449c81b3dd25835ae6ac849cdd150f35b9c5c6'
* commit '0d449c81b3dd25835ae6ac849cdd150f35b9c5c6':
  lavfi: Add library identifier

Conflicts:
	libavfilter/version.h

See: a70b4935f1867797b62312c20035025fad8b1f94
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-01 03:41:20 +02:00
Michael Niedermayer
818ff7ff5a Merge commit '0f87f9b4fceee854f09da2d1ef329245196775f8'
* commit '0f87f9b4fceee854f09da2d1ef329245196775f8':
  lavd: Add library identifier

Conflicts:
	libavdevice/version.h

See: a70b4935f1867797b62312c20035025fad8b1f94
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-01 03:40:06 +02:00
Michael Niedermayer
16dd0426e5 Merge commit '3f872c9bfa8ee1032058cfa48068b5a73ef27b5e'
* commit '3f872c9bfa8ee1032058cfa48068b5a73ef27b5e':
  lavc: Add missing API guard to dtg_active_format option

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-01 03:36:32 +02:00
Michael Niedermayer
9e93e544dc Merge commit '4d1229dabf7a7e3b6a7b326afd79102256c3b008'
* commit '4d1229dabf7a7e3b6a7b326afd79102256c3b008':
  g2meet: Add FATE tests for all three G2M variants

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-01 03:26:10 +02:00
Michael Niedermayer
68939f7682 Merge commit '08c2d8f0aa679c2f060721d1d0d4f33d2ae32368'
* commit '08c2d8f0aa679c2f060721d1d0d4f33d2ae32368':
  Go2Meeting decoder

Conflicts:
	Changelog
	libavcodec/g2meet.c
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-01 03:18:30 +02:00
Michael Niedermayer
3974889614 Merge commit 'e2bd03a14a4e3366df0b1ee8e284a97165be1f3c'
* commit 'e2bd03a14a4e3366df0b1ee8e284a97165be1f3c':
  fate: Avoid unnecessary pixel format conversions

Conflicts:
	tests/fate/image.mak
	tests/ref/fate/dds-ya

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-01 03:03:20 +02:00
Michael Niedermayer
2e13a45b1a avcodec/aacsbr: Assert that bs_num_env is positive
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-01 02:34:01 +02:00
Michael Niedermayer
79a98294da 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>
2015-07-01 02:33:45 +02:00
Vittorio Giovara
a1e2caa93e mov: Log format rather than fourcc in stsd in trace mode
This will fix remaining format warnings.
2015-07-01 00:13:58 +01:00
Vittorio Giovara
2eef75fd7e mov: Adjust variable types to fix format warnings 2015-07-01 00:13:58 +01:00
Vittorio Giovara
df22e30172 dump: Use the correct abs() version
Fix warning from clang "absolute value function 'abs' given an argument
of type 'long long' but has parameter of type 'int' which may cause
truncation of value [-Wabsolute-value]".
2015-07-01 00:13:58 +01:00
Vittorio Giovara
0d449c81b3 lavfi: Add library identifier 2015-07-01 00:13:58 +01:00
Vittorio Giovara
0f87f9b4fc lavd: Add library identifier 2015-07-01 00:13:58 +01:00
Vittorio Giovara
3f872c9bfa lavc: Add missing API guard to dtg_active_format option 2015-07-01 00:13:58 +01:00
Diego Biurrun
4d1229dabf g2meet: Add FATE tests for all three G2M variants
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-07-01 01:08:15 +02:00
Kostya Shishkov
08c2d8f0aa Go2Meeting decoder
ELS and ePIC decoder courtesy of Maxim Poliakovski,
cleanup and integration by Diego Biurrun.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-07-01 01:08:15 +02:00
rogerdpack
4ebb43f19c ffmpeg: windows: respond to logoff and ctrl+break messages as well
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-01 01:00:38 +02:00
Andreas Cadhalpun
bd0f14123f 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>
2015-07-01 00:33:01 +02:00
Andreas Cadhalpun
cd64ead8d9 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>
2015-07-01 00:32:50 +02:00
Andreas Cadhalpun
32a5b63126 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>
2015-07-01 00:32:21 +02:00
Nicolas DEROUINEAU
04a68f4348 avcodec/h264: Greenmetadata SEI parsing
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-30 23:20:36 +02:00
Michael Niedermayer
7e9c7b623f Merge commit '271ce76d317c5432e151216cf23f12b77ed6cb7e'
* commit '271ce76d317c5432e151216cf23f12b77ed6cb7e':
  h264: Parse registered data SEI message and AFD value

Conflicts:
	libavcodec/h264.c
	libavcodec/h264.h
	libavcodec/h264_sei.c
	libavcodec/version.h

See: d6e95669496a89d186f923c34bcaf7d86b7cd59c
See: 22291c372fa703242e8429bed61700ba81258f19
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-30 22:54:33 +02:00
Michael Niedermayer
8e6c5c4322 Merge commit '0bfab80a0d9fce0180e8aa2a947267f89b725091'
* commit '0bfab80a0d9fce0180e8aa2a947267f89b725091':
  h264_sei: Group error check outside the switch block

Conflicts:
	libavcodec/h264_sei.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-30 22:29:34 +02:00
Michael Niedermayer
2a227fe879 Merge commit '0a49a62f998747cfa564d98d36a459fe70d3299b'
* commit '0a49a62f998747cfa564d98d36a459fe70d3299b':
  h263: Always check both dimensions

Conflicts:
	libavcodec/ituh263dec.c

See: 62006b539ddda23594febf0fcb2f21c03de60457
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-30 22:14:25 +02:00
Martin Storsjö
e2bd03a14a fate: Avoid unnecessary pixel format conversions
Most of the fate-dds-* and fate-txd-* tests already
output into the same pixel format regardless of
platform endianness, so there's no need to force
conversion to another format.

This fixes the tests fate-txd-16bpp, fate-txd-odd,
fate-dds-rgb16, fate-dds-rgb24 and fate-dds-xrgb on
big endian, where the tests seem to fail due to issues
with certain conversion codepaths in swscale.

Those conversion codepaths should of course be fixed, but
the individual decoder tests should use as little extra
conversion steps as possible.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-06-30 23:10:29 +03:00
Michael Niedermayer
5585da7c5e Merge commit '6f4cd33efb5a9ec75db1677d5f7846c60337129f'
* commit '6f4cd33efb5a9ec75db1677d5f7846c60337129f':
  cosmetic: Reformat ff_h263_decode_mba

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-30 22:01:32 +02:00
Michael Niedermayer
cfcb9f5e36 Merge commit 'e95c7a61852cc5b9ce5445ff034b87553e61958a'
* commit 'e95c7a61852cc5b9ce5445ff034b87553e61958a':
  mov: Preserve the metadata even when bit-exactness is requested

Conflicts:
	libavformat/movenc.c
	tests/ref/vsynth/vsynth1-mpeg4
	tests/ref/vsynth/vsynth2-mpeg4

See: a17ee4117dcb2922f57da33b8401d11b06e81cba
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-30 21:47:58 +02:00
Michael Niedermayer
4ff0c61ba8 Merge commit '303ec065a90498c29d384b4add2ac626bc38d5eb'
* commit '303ec065a90498c29d384b4add2ac626bc38d5eb':
  aic: Fix slice size computation for widths multiples of 32 macroblocks

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-30 21:19:22 +02:00
Michael Niedermayer
2e9dcb82e5 Merge commit '3e3056f2a020dd77efdf379dbd4c06a65b4a499a'
* commit '3e3056f2a020dd77efdf379dbd4c06a65b4a499a':
  h264: Allow stream and container cropping at the same time

Conflicts:
	libavcodec/h264_slice.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-30 21:11:49 +02:00
Vittorio Giovara
271ce76d31 h264: Parse registered data SEI message and AFD value
Partially based on code by Marton Balint and Kieran Kunhya.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-06-30 15:34:38 +02:00
Vittorio Giovara
0bfab80a0d h264_sei: Group error check outside the switch block 2015-06-30 15:34:38 +02:00
Luca Barbato
0a49a62f99 h263: Always check both dimensions
CC: libav-stable@libav.org
Found-By: ago@gentoo.org
2015-06-30 15:34:38 +02:00
Luca Barbato
6f4cd33efb cosmetic: Reformat ff_h263_decode_mba 2015-06-30 15:34:38 +02:00
Luca Barbato
e95c7a6185 mov: Preserve the metadata even when bit-exactness is requested
Make sure to not write the custom `encoder` string in that case.

Bug-Id: 845
CC: libav-stable@libav.org
2015-06-30 15:34:38 +02:00
Vittorio Giovara
303ec065a9 aic: Fix slice size computation for widths multiples of 32 macroblocks
CC: libav-stable@libav.org
2015-06-30 15:34:37 +02:00
Vittorio Giovara
3e3056f2a0 h264: Allow stream and container cropping at the same time
The container cropping is applied only when difference is within 16
pixels, and the smallest value between the two is chosen.

Bug-Id: 383
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-06-30 15:34:37 +02:00
Vittorio Giovara
3ad678a85b fate: Update ac3 test to the new request_channel_layout option 2015-06-30 15:34:37 +02:00
John Högberg
42bc768e52 mpegts: Add jpeg2000 stream type
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-06-30 10:08:16 +02:00
Paul B Mahol
185e76976e avfilter/vf_ssim: fix some cosmetics issues
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-06-30 02:52:33 +00:00
Michael Niedermayer
a9aed08fa4 Merge commit '3ad678a85b96fc5fecd60e3d3a31ca5ffc89d67f'
* commit '3ad678a85b96fc5fecd60e3d3a31ca5ffc89d67f':
  fate: Update ac3 test to the new request_channel_layout option

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-30 20:55:38 +02:00
Michael Niedermayer
330863c9f1 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>
2015-06-30 19:38:44 +02:00
Michael Niedermayer
0083c16605 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>
2015-06-30 16:02:09 +02:00
Carl Eugen Hoyos
9295ee137a configure: Mention hap encoding for --enable-libsnappy. 2015-06-30 15:14:09 +02:00
Carl Eugen Hoyos
0f5b996531 lavc/j2kenc: Make jp2 output compatible with Kakadu.
Fixes ticket #4689.
2015-06-30 15:00:38 +02:00
Carl Eugen Hoyos
e97ec65630 doc: Add jpeg2000 encoder documentation. 2015-06-30 15:00:38 +02:00
Carl Eugen Hoyos
8080688d0e lavc/hapenc: Silence a warning for multithreaded encoding. 2015-06-30 14:34:56 +02:00
Michael Niedermayer
5c047f3ad4 avcodec/j2kenc: store libavcodec ident in a comment unless bitexact mode is used
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-30 13:45:03 +02:00
James Zern
e91f860ea7 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>
2015-06-30 13:24:19 +02:00
Michael Niedermayer
088b410ea2 Merge commit '42bc768e5240ec01237ad2eb7c69b917158de258'
* commit '42bc768e5240ec01237ad2eb7c69b917158de258':
  mpegts: Add jpeg2000 stream type

Conflicts:
	libavformat/mpegts.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-30 13:08:26 +02:00
Michael Niedermayer
6d9dfb1267 Merge commit '1b4c468477f3b8d372da8ef4e5405539ad9c1501'
* commit '1b4c468477f3b8d372da8ef4e5405539ad9c1501':
  riff: Validate the wav header size before trying to parse it

Conflicts:
	libavformat/riffdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-30 12:59:16 +02:00
Michael Niedermayer
3cd6b6aa0f Merge commit '5bdfc17189e4ea63c6b46b6d5256852fcb409d68'
* commit '5bdfc17189e4ea63c6b46b6d5256852fcb409d68':
  asf: Do not skip data streams

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-30 12:48:11 +02:00
Michael Niedermayer
0d5a27c2b5 Rename asfdec-o.c to asfdec_o.c
Most files use _ instead of - as spacer, so this is more consistent

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-30 12:23:44 +02:00
Michael Niedermayer
8f9c39b3e8 avformat: rename asfdec.c to asfdec_f.c
leaving it as asfdec.c confuses git

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-30 12:23:12 +02:00
James Almer
6415dcb013 configure: fix hevc_vdpau_hwaccel dependencies
Signed-off-by: James Almer <jamrial@gmail.com>
2015-06-30 04:11:31 -03:00
Michael Niedermayer
4aa0de644a 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>
2015-06-30 03:24:26 +02:00
Michael Niedermayer
84afc6b70d 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>
2015-06-30 01:33:25 +02:00
Michael Niedermayer
b54ac8403b avcodec/pngdec: Check values before updating context in decode_fctl_chunk()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-29 22:32:02 +02:00
Michael Niedermayer
f1ffa01dd3 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>
2015-06-29 22:16:58 +02:00
Michael Niedermayer
a1736926e9 avcodec/pngdec: Require a IHDR chunk before fctl
This is required by the APNG spec

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-29 21:57:12 +02:00
Michael Niedermayer
47f4e2d896 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>
2015-06-29 21:30:57 +02:00
Paul B Mahol
9842d6707f avfilter/avf_showvolume: optionally display channel names
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-06-29 07:53:56 +00:00
Michael Niedermayer
e55e5be982 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  lavf/msnwc: Return 0 if the probe function does not detect msnwc-tcp.
  lavf/mpegts: Return 0 if the probe function does not detect mpegts.
  lavf/img2dec: Improve detection of valid Quickdraw images.
  lavf/asfdec: Reduce minimum header size.
  Changelog: Add jpeg 2000 improvements before they get forgotten.
  lavf/img2dec: Autodetect dds frames.

Conflicts:
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-29 17:29:13 +02:00
Rostislav Pehlivanov
7c10b87b57 aacenc: add support for coding of intensity stereo scalefactor indices
This commit adds support for the coding of intensity stereo scalefactor indices.
It does not do any marking of such bands and as such does no functional changes
to the encoder. It removes any old twoloop specific code for PNS and moves it
into a seperate function which handles setting of scalefactor indices for
PNS and IS bands.

Reviewed-by: Claudio Freire <klaussfreire@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-29 16:44:40 +02:00
Michael Niedermayer
da8b228977 avformat/avio: Move avio_delete() avio_move() to avpriv_ namespace
This was suggested in the discussion about these functions

With this change the functions are available internally but are not
part of the public API

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-29 16:30:43 +02:00
Carl Eugen Hoyos
4b920d7b4a lavf/msnwc: Return 0 if the probe function does not detect msnwc-tcp.
Reduces console spamming on debug level.
2015-06-29 16:29:07 +02:00
Carl Eugen Hoyos
77c0b149be lavf/mpegts: Return 0 if the probe function does not detect mpegts.
Reduces console spamming on debug level.
2015-06-29 16:27:36 +02:00
Carl Eugen Hoyos
dee7943819 lavf/img2dec: Improve detection of valid Quickdraw images.
Detect Quickdraw images without application header with
lower score.
2015-06-29 16:25:11 +02:00
Carl Eugen Hoyos
5a458420e2 lavf/asfdec: Reduce minimum header size.
Fixes GipsyGuitar.wmv mentioned in ticket #1477.
2015-06-29 16:23:15 +02:00
Carl Eugen Hoyos
45441eb0f6 Changelog: Add jpeg 2000 improvements before they get forgotten. 2015-06-29 16:17:05 +02:00
Carl Eugen Hoyos
a876a4da4a lavf/img2dec: Autodetect dds frames. 2015-06-29 16:13:26 +02:00
Michael Niedermayer
f6ab967eae 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>
2015-06-29 13:54:35 +02:00
Shivraj Patil
d9deae04a7 avcodec/mips: MSA (MIPS-SIMD-Arch) optimizations for pixblock functions
This patch adds MSA (MIPS-SIMD-Arch) optimizations for pixblock functions in new file pixblockdsp_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-29 12:03:43 +02:00
Paul B Mahol
21cede9e97 doc/filters: fix documentation bug in ssim filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-06-28 21:35:19 +00:00
Michael Niedermayer
4ccd2b31f0 avformat/asfdec: Allow packet_obj_size == 0
Fixes Ticket3521

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-29 04:57:51 +02:00
Michael Niedermayer
be4e1f28fd avformat/asfdec: Print packet_obj_size in case it is invalid
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-29 04:55:06 +02:00
Ludmila Glinskih
ca3b274552 api-h264-test: build with another api test
Location of api-h264-test changed to special directory for api tests.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-29 02:49:32 +02:00
George Boyle
02bd4d93c9 fate/api-tests: Added dependency on $(FF_DEP_LIBS)
This ensures they are built before the tests are run.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-29 01:01:44 +02:00
George Boyle
c78b82f4da tests/Makefile: Fix missing trailing slash for API tests dir target
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-28 23:29:59 +02:00
Michael Niedermayer
a5f617e9ec avformat/asfdec: Print a warning if data is skiped due to less than a frame header being left
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-28 23:22:31 +02:00
Michael Niedermayer
4b0a475846 avformat/asfdec: Reduce FRAME_HEADER_SIZE to 11
This fixes demuxing of screen_codec.wmv

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-28 23:22:31 +02:00
Rostislav Pehlivanov
55397b0e76 aaccoder: add intensity stereo support to encode_window_bands_info quantizer
This commit adds support for both PNS and IS (intensity stereo) codebooks to the
encode_window_bands_info() quantizer, used by the faast, faac and anmr non-default,
native coders. This does not mean that both extensions now work with those coders,
some are simply unsuited and will trigger an assertion in the encoder while
others simply ignore the changed scalefactor indices and band types.
This commit simply adds support for encoding said band types with the alternative
coders. Future commits to the coders will be required to make them suitable.

Reviewed-by: Claudio Freire <klaussfreire@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-28 21:15:58 +02:00
Rostislav Pehlivanov
305859c0d4 aaccoder: add intensity stereo coding support for the trellis quantizer
This commit extends the trellis quantizer (used by the default twoloop coder)
 to accept and correctly encode codebooks needed for intensity stereo and perceptual noise substitution.

Reviewed-by: Claudio Freire <klaussfreire@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-28 21:15:40 +02:00
Michael Niedermayer
ecbd111768 avcodec/jpeg2000dec: Remove unused variables
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-28 19:36:52 +02:00
Luca Barbato
1b4c468477 riff: Validate the wav header size before trying to parse it 2015-06-28 17:32:40 +02:00
Luca Barbato
5bdfc17189 asf: Do not skip data streams 2015-06-28 17:10:54 +02:00
Andreas Cadhalpun
2a4700a4f0 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>
2015-06-28 17:00:21 +02:00
Rodger Combs
7d0a19757e lavc/adpcm: THP: set approx_nb_samples correctly
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-28 16:42:25 +02:00
Paul B Mahol
f76d7d4b01 avfilter: add showvolume filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-06-28 14:33:36 +00:00
Michael Niedermayer
96e73fa649 avcodec/jpeg2000dec: Merge i_stepsize/2 decoder special case into dequant
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-28 15:26:31 +02:00
Andreas Cadhalpun
9a345802ed huffyuvdec: validate image size
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-06-28 14:51:07 +02:00
Rostislav Pehlivanov
02dbed6e71 aacpsy: Add energy spread for each band
This commit adds the energy spread to the struct for each band and removes 2 unused fields.
distortion and perceptual_weight were not referenced in any file nor were they set to any value,
so it was safe to remove them. The energy spread is currently only used in the aac psy model.
It's defined as being proportional to the tonality of each band.

Reviewed-by: Claudio Freire <klaussfreire@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-28 14:24:30 +02:00
Michael Niedermayer
a57ee6cca1 Merge commit '8a26ae5f94e613dbf7eb8e3c60462e966e409cdc'
* commit '8a26ae5f94e613dbf7eb8e3c60462e966e409cdc':
  mpjpeg: Check stream allocation

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-28 13:41:44 +02:00
Michael Niedermayer
30b8f3e7dc Merge commit 'b08569a23948db107e5e6175cd4c695427d5339d'
* commit 'b08569a23948db107e5e6175cd4c695427d5339d':
  lavf: Replace the ASF demuxer

Conflicts:
	Changelog
	libavformat/asf.h
	libavformat/asfdec.c
	libavformat/version.h
	tests/ref/fate/wmv8-drm-nodec
	tests/ref/seek/lavf-asf

The rewritten demuxer is placed in a new file, the current demuxer is
left as default. Carl has tested both and the one working better is
default.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-28 13:36:54 +02:00
Michael Niedermayer
da06169850 avformat/riffdec: Forward error code from avio_read() in ff_get_guid()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-28 13:04:47 +02:00
Michael Niedermayer
0940169743 tests/fate/wma: use the existing reference files for wmapro tests
Theres no need to upload or use new files just because they are
shorter.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-28 11:58:57 +02:00
Michael Niedermayer
3d2267019c Merge commit '441e8ae5efd681055e5af6f4317fb60110de9dd0'
* commit '441e8ae5efd681055e5af6f4317fb60110de9dd0':
  FATE: drop the last truncated frame from the wmapro tests

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-28 11:48:49 +02:00
Michael Niedermayer
fb2eeebf66 Merge commit 'd3ea79e8a65ddad4da11813bb43c46701295f68c'
* commit 'd3ea79e8a65ddad4da11813bb43c46701295f68c':
  FATE: drop the last truncated frame from the wma lossless test

Conflicts:
	tests/fate/lossless-audio.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-28 11:41:23 +02:00
Andreas Cadhalpun
f9883a669c 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>
2015-06-28 11:29:46 +02:00
Luca Barbato
8a26ae5f94 mpjpeg: Check stream allocation
Bug-Id: CID 1308152
2015-06-28 10:27:19 +02:00
Alexandra Hájková
b08569a239 lavf: Replace the ASF demuxer
The old one is the result of the reverse engineering and guesswork.
The new one has been written following the now-available specification.

This work is part of Outreach Program for Women Summer 2014 activities
for the Libav project.

The fate references had to be changed because the old demuxer truncates
the last frame in some cases, the new one handles it properly.
The seek-test reference is changed because seeking works differently
in the new demuxer. When seeking, the packet is not read from the stream
directly, but it is rather constructed by the demuxer. That is why
position is -1 now in the reference.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-06-28 10:16:40 +02:00
Anton Khirnov
441e8ae5ef FATE: drop the last truncated frame from the wmapro tests
Since it's truncated, the result depends on how specifically the demuxer
and the decoder handle errors.
2015-06-28 10:10:36 +02:00
Anton Khirnov
d3ea79e8a6 FATE: drop the last truncated frame from the wma lossless test
Since it's truncated, the result depends on how specifically the demuxer
and the decoder handle errors.
2015-06-28 10:10:07 +02:00
Michael Niedermayer
317be53ca6 avcodec/jpeg2000: Support 32 decomposition levels
Fixes Ticket4680

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-28 03:16:06 +02:00
Michael Niedermayer
d62657eb4a configure: Also create tests/api
This should fix some problems on some fate clients like openbsd

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-28 02:56:26 +02:00
Michael Niedermayer
cd1a9908b5 avcodec/jpeg2000: support >32bit in ff_jpeg2000_ceildivpow2()
Fixes part of Ticket4680

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-28 02:31:26 +02:00
Michael Niedermayer
f01028bf58 avcodec/jpeg2000: Avoid one shift in ff_jpeg2000_ceildivpow2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-28 02:27:43 +02:00
Ludmila Glinskih
86fb203246 api-flac-test: Fix the bug of comparing zero bytes
Add check for linesize.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-28 01:05:59 +02:00
Rostislav Pehlivanov
d71935f883 aac: add additional fields needed by the encoder for intensity stereo
This commit adds additional fields which are used by the native encoder to add intensity stereo support. It also adds some clarifying statements to the comments for the codebooks.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-28 00:15:21 +02:00
Michael Niedermayer
6323647c35 avcodec/h264_slice: Reformat IN_RANGE() uses to be readable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-27 23:56:41 +02:00
Michael Niedermayer
29b0923324 avcodec/h264_slice: Silence pointer type warnings
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-27 23:56:06 +02:00
Michael Niedermayer
9ea256814d avcodec/h264_slice: assert that the first slice implies unfinished setup
If this assert fails there is very likely a bug in the code

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-27 23:42:33 +02:00
Michael Niedermayer
bd5c6a519e Merge commit '5ec0bdf2c524224f30ba4786f47324970aed4aaa'
* commit '5ec0bdf2c524224f30ba4786f47324970aed4aaa':
  h264: do not update the context fields copied between threads after finish_setup()

Conflicts:
	libavcodec/h264.h
	libavcodec/h264_slice.c

See: f111831ed61103f9fa8fdda41473a23da016bdaa and others
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-27 22:15:01 +02:00
Michael Niedermayer
77412f0ecd Merge commit '6d4d3fee63c46d921c4870feab79269af94e84e1'
* commit '6d4d3fee63c46d921c4870feab79269af94e84e1':
  h264: make sure the current picture is not made a long ref multiple times

See: 34ea5f418ef815c629b6ab38a6a2711fd7463290
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-27 20:56:30 +02:00
Michael Niedermayer
a5f409bcc0 Merge commit '9a5e4fbec870c7d466b7a0aec92c70778efc96b5'
* commit '9a5e4fbec870c7d466b7a0aec92c70778efc96b5':
  avconv: do not stop processing the input packet on decoding error

Conflicts:
	ffmpeg.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-27 20:34:42 +02:00
Michael Niedermayer
a50b008227 Merge commit 'b114f6d48a06a4dad6882bc83e07463905f004c4'
* commit 'b114f6d48a06a4dad6882bc83e07463905f004c4':
  avconv: factor out flushing the filters

Conflicts:
	ffmpeg.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-27 20:22:45 +02:00
James Almer
93e7b7fb34 avutil/x86/intmath: add missing check for inline assembly
Signed-off-by: James Almer <jamrial@gmail.com>
2015-06-27 14:33:53 -03:00
Andreas Cadhalpun
6b9fdf7f4f 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>
2015-06-27 19:22:27 +02:00
Michael Niedermayer
f620315fa5 Merge commit 'e49e0f58e273237f83b4486f3536931ed1943d18'
* commit 'e49e0f58e273237f83b4486f3536931ed1943d18':
  h264: make sure the slices do not overlap during slice threading

Conflicts:
	libavcodec/h264.h
	libavcodec/h264_slice.c

See: 43b434210e597d484aef57c4139c3126d22b7e2b
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-27 18:46:11 +02:00
Niklesh
cf9051deac movtextenc.c: Support for Bold, Italic and Underlined Styles
Signed-off-by: Niklesh <niklesh.lalwani@iitb.ac.in>
2015-06-27 09:28:34 -07:00
Michael Niedermayer
1edc87a665 Merge commit 'b56b12cd12f32bf11efff05632600a7619584b98'
* commit 'b56b12cd12f32bf11efff05632600a7619584b98':
  configure: Check for x265_api_get

Conflicts:
	configure

See: f4be604f1c4d5cb6480c81c671d646cc16b02017
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-27 18:13:43 +02:00
James Almer
1e51e517be avutil/x86/intmath: use bzhi gcc builtin in av_mod_uintp2()
Signed-off-by: James Almer <jamrial@gmail.com>
2015-06-27 12:56:55 -03:00
Anton Khirnov
5ec0bdf2c5 h264: do not update the context fields copied between threads after finish_setup()
Should fix a large number of possible races with frame threading.
2015-06-27 16:48:48 +02:00
Anton Khirnov
6d4d3fee63 h264: make sure the current picture is not made a long ref multiple times
Fixes possible invalid reads, once one of those refs is freed, but the
others remain.
CC: libav-stable@libav.org
2015-06-27 16:46:01 +02:00
Anton Khirnov
9a5e4fbec8 avconv: do not stop processing the input packet on decoding error
We still want to flush the filters on EOF and possibly apply streamcopy.
2015-06-27 16:45:41 +02:00
Anton Khirnov
b114f6d48a avconv: factor out flushing the filters
This also ensures this is always done, avoiding infinite loops if an
error occurs at the end of the input.
2015-06-27 16:45:04 +02:00
Anton Khirnov
e49e0f58e2 h264: make sure the slices do not overlap during slice threading
Based on a patch by Michael Niedermayer <michaelni@gmx.at>.
CC: libav-stable@libav.org
Found-by: Kieran Kunhya <kierank@obe.tv>
2015-06-27 16:43:22 +02:00
Michael Niedermayer
5cccbc3b74 avcodec/jpeg2000dec: Check for mismatching per expected termination
not just at the end

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-27 15:22:15 +02:00
Rodger Combs
68f00fb40b lavf/brstm: if the file lies about the last block's size, correct it
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-27 14:15:12 +02:00
Derek Buitenhuis
f4be604f1c 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>
2015-06-27 11:45:33 +01:00
Derek Buitenhuis
b56b12cd12 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>
2015-06-27 11:44:20 +01:00
Michael Niedermayer
8672c0a643 avcodec/jpeg2000dec: Limit poc end fields to whats available in jpeg2000_decode_packets()
Fixes: Ticket4677

Solution based on information from
https://code.google.com/p/openjpeg/issues/detail?id=80

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-27 11:48:42 +02:00
Michael Niedermayer
aab4dbe534 avcodec/utils: Replace ENOTSUP by AVERROR_PATCHWELCOME
ENOTSUP is not available on all platforms

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-27 11:19:57 +02:00
Philip Langdale
b69bea3ab8 avcodec: Add flag for experimental HWAccels and use it for VDPAU/HEVC
This HWAccel isn't really usable right now due to an nvidia driver bug,
so we don't want it selected by default.

HWAccels have a capabilities field and there's a comment about flags,
but no flags exist today, so let's add one for experimental hwaccels.
2015-06-26 19:07:51 -07:00
George Boyle
7728d231a6 fate/api-tests: Move api-flac-test to API tests directory.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-27 03:43:23 +02:00
George Boyle
3f18cb97e5 fate/api-tests: Add directory and Makefile for API tests
The intention of this change is to allow separation of API tests from the
existing tests, and also to have a place for the API test source/executable
files so they're not mixed in with the actual library code.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-27 03:42:47 +02:00
Michael Niedermayer
1221b7df68 Merge commit '92fdc80cab2acad9f171ba38a08aa89b392bdadd'
* commit '92fdc80cab2acad9f171ba38a08aa89b392bdadd':
  nvenc: Fix NV12 input

Conflicts:
	libavcodec/nvenc.c

Not merged, the changed code is not in FFmpeg

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-26 23:58:51 +02:00
Michael Niedermayer
a4d76faf45 Merge commit '072756cdd2f949462520041e357f52f15d8c274d'
* commit '072756cdd2f949462520041e357f52f15d8c274d':
  vc1dec: use get_bits_long and limit the read bits to 32

See: 1f1e0a2971b2a01f275bb5088c2e36166514be64
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-26 23:44:21 +02:00
Andreas Cadhalpun
04dfbc9441 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>
2015-06-26 23:35:26 +02:00
Kieran Kunhya
22291c372f avcodec: Add support for per-frame AFD output in h264
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-26 23:11:17 +02:00
Luca Barbato
92fdc80cab nvenc: Fix NV12 input 2015-06-26 22:18:24 +02:00
Michael Niedermayer
b75c0a72ed avcodec/jpeg2000dec: Fix tp_index for POC
Fixes Ticket2586

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-26 22:00:29 +02:00
Michael Niedermayer
c56ba5c270 avcodec/jpeg2000dec: Print what is found in place of EPH if EPH is not found
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-26 22:00:28 +02:00
James Almer
5abd4a9323 libvpx: disable unused function prototypes
Fixes make checkheader

Signed-off-by: James Almer <jamrial@gmail.com>
2015-06-26 16:43:37 -03:00
Michael Niedermayer
c72a831931 avcodec/jpeg2000dec: Support progression order changes
Fixes Ticket4657

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-26 21:00:10 +02:00
Michael Niedermayer
2ec0ba1e22 avcodec/jpeg2000dec: Parse POCs
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-26 20:59:05 +02:00
Andreas Cadhalpun
072756cdd2 vc1dec: use get_bits_long and limit the read bits to 32
get_bits should not be used with more than 25 bits.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-06-26 19:39:29 +02:00
Andreas Cadhalpun
1f1e0a2971 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>
2015-06-26 19:20:00 +02:00
Andreas Cadhalpun
151dbe4579 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>
2015-06-26 19:10:46 +02:00
Peter Ross
ea8fec2057 fate: test ea vp6 with alpha stream
Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-26 14:39:11 +02:00
schenk michael
b9161ef052 avformat/hls: do not iterate to next sequence number if interruption is requested
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-26 14:36:25 +02:00
Zhang Rui
d38bc6361d avutil/log: modify AV_LOG_MAX_OFFSET for AV_LOG_TRACE
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-26 14:02:35 +02:00
Michael Niedermayer
7ca0cd5831 avcodec/jpeg2000dec: iterate in tile sample space for CPRL & RPCL
Thats what the spec says should be done
aka iterate in the wrong space and use special cases to patch that up.
It sometimes can result in different order

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-26 13:44:17 +02:00
Michael Niedermayer
29cc0a178e ffmpeg_opt: Fix sync_ist
This code was lost in 2663540821ee010edc7a47316b00a4745aaf973c

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-26 12:41:43 +02:00
Michael Niedermayer
f5822ea379 avcodec/jpeg2000dec: Add missing \n to av_log()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-26 05:25:42 +02:00
Michael Niedermayer
50b77e364f avcodec/jpeg2000dec: iterate over positions with the special cases from jpeg2000
The order in j2k is not the simple and logic one

Fixes Ticket4670

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-26 05:25:42 +02:00
Michael Niedermayer
6c4a2f11dd avcodec/jpeg2000dec: Add coords to Jpeg2000Tile
These will be needed in subsequent commits

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-26 05:25:42 +02:00
Philip Langdale
6e5e139fe3 avcodec/vdpau: Support for VDPAU accelerated HEVC decoding
This change introduces basic support for HEVC decoding through vdpau.
Right now, there are problems with the nvidia driver/library implementation
that mean that frames are incorrectly laid out in memory when they are
returned from the decoder, and it is normally impossible to recover the
complete decoded frame due to loss of data from alignment inconsistencies.

I obviously hope that nvidia will be fixing it in due course - I've verified
the problems exist with their example application.

As such, this support is not useful for any real world application, but I
believe that it is correct (with the caveat that the mangled frames may hide
problems) and will work properly once the nvidia problem is fixed.

Right now it appears that any file encoded by x265 or nvenc is decoded
correctly, but that's because these files don't use a bunch of HEVC
features.

Quick summary:

Features that seem to work:

1) Short Term References
2) Scaling Lists
3) Tiling

Features with known problems:

1) Long Term References

It's hard to tell what's going on here. After I read the nvidia example
app that does not set the IsLongTerm flag on LTRs, and changed my code,
a bunch of frames using LTR started to display correctly, but there
are still samples with glitches that are related to LTRs.

In terms of real world files, both x265 and nvenc only use short term
refs from this list. The divx encoder seems similar.

Signed-off-by: Philip Langdale <philipl@overt.org>
2015-06-25 20:06:47 -07:00
Michael Niedermayer
f1e173049e avcodec/jpeg2000: Remove CBLK limit
This also reduces the amount of memory needed
Fixes Ticket4672

The new code seems slightly faster as well, probably due to better cache usage

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-26 01:00:17 +02:00
Michael Niedermayer
8c22143e7e ffmpeg: Use 2 instead of STDERR_FILENO
STDERR_FILENO is not available on windows

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-25 23:44:06 +02:00
Paul B Mahol
cdcf637d56 avcodec/evrc: make it possible to disable postfilter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-06-25 20:07:01 +00:00
Rodger Combs
388a6f581a lavc+doc: adjust names to reflect ADPCM THP not being GameCube-only
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-25 19:29:02 +02:00
Rodger Combs
0643b4bf74 lavf/brstm: expose the loop point when present
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-25 19:17:01 +02:00
Shawn Rainey
2c77ca459e configure: Fix ranlib failure with older cross toolchains
Cross-compile toolchains without support for ranlib -D would fail.
This fixes the configure script to test the cross ranlib rather than the native ranlib.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-25 18:46:39 +02:00
rogerdpack
87961eff23 modify exit message when signaled
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-25 14:18:31 +02:00
Peter Ross
803bdc5469 electronicarts: demux alpha stream
Electronic Arts VP6 files may contain two video streams: one for the
primary video stream and another for the alpha mask. The file format
uses identical data structures for both streams.

Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-25 12:45:09 +02:00
Peter Ross
a2517fca1e electronicarts: move video stream properties into dedicated structure
This is required for the alpha stream demux patch.

Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-25 12:45:00 +02:00
rogerdpack
1bcdac2da3 ffmpeg: log error message when shutting down from too many signals
write() suggested by wm4
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-25 12:23:29 +02:00
Ronald S. Bultje
d5a36edda4 vp9: fix profile check for intraonly frames.
Reviewed-by: James Zern <jzern@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-25 04:29:03 +02:00
Ludmila Glinskih
b04c630a3d libavformat: Add H264 API test
Result differs in pkt_duration and time_base.den for some reason.
Right now it tests only one example (adjusted to match the output).

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-25 04:09:51 +02:00
Michael Niedermayer
9ff5e7974a avcodec/jpeg2000dec: Limit x/y step to 1<<30
Fixes infinite loop
Fixes Ticket4663

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-25 00:43:49 +02:00
Michael Niedermayer
67fc898243 avcodec/jpeg2000: Improve right bottom precinct positions
Fixes Ticket4656

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-25 00:23:31 +02:00
Michael Niedermayer
2d8bf3d126 avcodec/jpeg2000dec: Check PPx / PPy values
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-25 00:23:31 +02:00
Reynaldo H. Verdejo Pinochet
08724da976 ffserver: make statement block unconditional by exiting early
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-06-24 19:17:51 -03:00
Reynaldo H. Verdejo Pinochet
36a617c162 ffserver: make statement block unconditional by exiting early
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-06-24 19:17:51 -03:00
Reynaldo H. Verdejo Pinochet
469c335c55 ffserver: unify comment formating & drop unneeded braces
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-06-24 19:17:51 -03:00
Reynaldo H. Verdejo Pinochet
1714fe2990 ffserver: factor out stream params printing
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-06-24 19:17:51 -03:00
Reynaldo H. Verdejo Pinochet
89234deaa2 ffserver: simplify URLContext cleanup
Drop unneeded var and avoid checking for NULL twice as
ffurl_closep() already does this.

Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-06-24 19:17:51 -03:00
James Zern
766a8346cf libvpxdec: report colorspace
Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: James Zern <jzern@google.com>
2015-06-24 15:09:31 -07:00
James Zern
469398f8b7 libvpxdec: report profile for vp9
Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: James Zern <jzern@google.com>
2015-06-24 14:54:54 -07:00
Michael Niedermayer
eb823df817 Merge commit '5dbd491eb38efab1d1313d4129ed76ab2e98176d'
* commit '5dbd491eb38efab1d1313d4129ed76ab2e98176d':
  TextureDSP: fix erroneous condition which produced blocky output for DXT

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-24 21:06:58 +02:00
Michael Niedermayer
87544ce8dc Merge commit '4d55484391112a30d16812597b9ad81605af0c24'
* commit '4d55484391112a30d16812597b9ad81605af0c24':
  dds: Fix palette mode on big endian

Conflicts:
	libavcodec/dds.c

See: 21d2e3d602dc5f173901ba51f6a237b9dfce9e8e
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-24 20:57:45 +02:00
Michael Niedermayer
4107092349 Merge commit 'ded5957d75def70d2f1fc1c1eae079230004974b'
* commit 'ded5957d75def70d2f1fc1c1eae079230004974b':
  segafilm: Remove deplanarization hack

Conflicts:
	libavformat/segafilm.c
	libavformat/version.h

See: 42b8f5fba1f067c55231791039283e41b5167247
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-24 20:51:22 +02:00
Michael Niedermayer
ffd9d60201 avcodec: Add codec_desc and remapping for AV_CODEC_ID_PCM_S16BE_PLANAR_DEPRECATED
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-24 20:37:02 +02:00
Michael Niedermayer
8e2fcd1cb4 Merge commit '5a79bf0284a37855636390e620d189a964214c9e'
* commit '5a79bf0284a37855636390e620d189a964214c9e':
  PCM signed 16-bit big-endian planar decoder

Conflicts:
	doc/general.texi
	libavcodec/Makefile
	libavcodec/allcodecs.c
	libavcodec/avcodec.h
	libavcodec/pcm.c
	libavcodec/version.h
	libavformat/nut.c

See: 9ba41ae63e079198ef4a9e83b5fa147e20966bdb
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-24 20:36:26 +02:00
James Almer
58d7dde081 brstm: fix use of uninitialized variables
Fixes valgrind complaining about "Conditional jump or move depends on uninitialised value(s)"

Signed-off-by: James Almer <jamrial@gmail.com>
2015-06-24 14:31:54 -03:00
Michael Niedermayer
d7e224ec24 avcodec/jpeg2000: change flags array type to 16bit
reduce memory needed for flags

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-24 17:46:37 +02:00
Michael Niedermayer
d580255571 vcodec/jpeg2000: Increase cblk size limit to 128
Fixes Ticket4649

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-24 17:38:05 +02:00
Michael Niedermayer
ffa1de8a3b avcodec/jpeg2000dec: Use 32x32->64bit for 9/7i dequantization
Like the 5/3 case this is needed to avoid overflows and similarly for 16bpp
output pure 32bit operations are insufficient if high quality is wanted

Note, this code-path is only used in bitexact mode, so this should not
affect the speed of any real use-case

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-24 17:09:21 +02:00
Michael Niedermayer
05ef6324d1 avcodec/jpeg2000dec: Add 5/3 de-quantization special case for the lossless case
This avoids a multiplication and 64bits

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-24 17:05:42 +02:00
Michael Niedermayer
8ff09e9098 avcodec/jpeg2000dec: Use 32x32->64bit for 5/3 dequantization
This fixes overflows, using fewer bits would impact high bit depth quality

Fixes Ticket4654

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-24 17:03:38 +02:00
Paul B Mahol
5a1f785249 avfilter: add ssim filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-06-24 14:04:40 +00:00
Tom Butterworth
5dbd491eb3 TextureDSP: fix erroneous condition which produced blocky output for DXT 2015-06-24 14:45:23 +01:00
Luca Barbato
4d55484391 dds: Fix palette mode on big endian
Found-By: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-06-24 14:45:16 +01:00
Paul B Mahol
ded5957d75 segafilm: Remove deplanarization hack
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-06-24 14:45:09 +01:00
Paul B Mahol
5a79bf0284 PCM signed 16-bit big-endian planar decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-06-24 14:45:00 +01:00
Mariusz Szczepańczyk
346624be4a lavf: set is_connected flag so url can be properly closed
Reviewed-by: Lukasz Marek <lukasz.m.luki2 at gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-24 15:40:03 +02:00
Michael Niedermayer
8f0f678f09 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>
2015-06-24 13:50:02 +02:00
Michael Niedermayer
49038fc17d Merge commit '41740ef8be6ec409f7eff3932ddba9a9eeec27b1'
* commit '41740ef8be6ec409f7eff3932ddba9a9eeec27b1':
  libvpx: fix test for VPX_IMAGE_ABI_VERSION

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-24 12:39:21 +02:00
Michael Niedermayer
7e63a622d1 Merge commit 'a88e21f5b78ef5e75b073ecbfd4e92921002a703'
* commit 'a88e21f5b78ef5e75b073ecbfd4e92921002a703':
  Fix missing symbols when libvpx has only vp8 enabled

Not merged, the FFmpeg libvpx-vp8 encoder does not use anything from libvpx.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-24 12:38:40 +02:00
Michael Niedermayer
8f454c3154 Merge commit 'c2de2cf0d2927f3f584dab6d54276fbda92a0a71'
* commit 'c2de2cf0d2927f3f584dab6d54276fbda92a0a71':
  arm64: constify src in h264qpel dsp function definitions

See: e16b7338d8777618936ff6ab9133e19f4db9069c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-24 11:59:02 +02:00
Janne Grunau
41740ef8be libvpx: fix test for VPX_IMAGE_ABI_VERSION 2015-06-24 08:48:52 +02:00
Mark Webster
a88e21f5b7 Fix missing symbols when libvpx has only vp8 enabled
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2015-06-24 08:47:30 +02:00
Janne Grunau
c2de2cf0d2 arm64: constify src in h264qpel dsp function definitions 2015-06-24 08:41:32 +02:00
Michael Niedermayer
041aa800f2 avformat/mp3dec: Remove the ID3v1 tag removial code
The code is simply broken, the read packets are not aligned to
the mp3 frames, the file end or the id3 tag thus this simply
cannot reliably find the ID3v1 tag to remove it

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-24 02:52:11 +02:00
Michael Niedermayer
89a420b71b avcodec/mpegaudio_parser: Discard ID3v1 tag at the end
Ideally this should be discarded by the demuxer but this is not
possible without fully parsing which would be then very similar
to this. The current ID3v1 discard code in the demuxer does not work
and will be removed in a subsequent commit

The discard code could be adjusted if needed to also discard tags at
other locations than the end or to limit this possibly to input
from the mp3 demuxer or even to move the discarding to the
decoder.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-24 02:48:37 +02:00
Mariusz Szczepańczyk
b23d2bac0d lavf/libssh: implement move and delete callbacks
Reviewed-by: Lukasz Marek <lukasz.m.luki2 at gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-24 00:44:09 +02:00
Mariusz Szczepańczyk
0cce94fb10 lavf/libssh: read empty path from url as /
Reviewed-by: Lukasz Marek <lukasz.m.luki2 at gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-24 00:43:17 +02:00
Lukasz Marek
e96f0a692b lavf/libssh: implement directory listing callbacks
Signed-off-by: Lukasz Marek <lukasz.m.luki2 at gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-24 00:42:55 +02:00
Mariusz Szczepańczyk
71034163ac lavf/libsmbclient: implement move and delete callbacks
Reviewed-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-24 00:25:24 +02:00
Rodger Combs
94a43dcff1 lavf/brstm: add FATE tests for BFSTM and BCSTM files
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-23 19:44:19 +02:00
Michael Niedermayer
0416b5e033 avcodec/jpeg2000dwt: Replace /2 by >>1
Divisions can be slow if the compiler fails to replace them by shifts

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-23 18:59:00 +02:00
James Almer
e22edbfd41 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>
2015-06-23 13:28:09 -03:00
James Almer
0c15f2f158 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>
2015-06-23 13:28:03 -03:00
James Almer
910eeab480 swscale/x86/rgb2rgb_template: add missing xmm clobbers
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-06-23 13:27:56 -03:00
Michael Niedermayer
9f997acdd0 avcodec/texturedspenc: Add () to protect macro / argument evaluation order
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-23 17:12:00 +02:00
Gwenole Beauchesne
88325c2e0b 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>
2015-06-23 13:31:54 +02:00
Sebastien Zwickert
c06fdacc3d 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.
2015-06-23 09:20:18 +02:00
Niklesh
813b2f0da3 movtextdec.c: Improve upon dynarrays and text_to_ass
Signed-off-by: Niklesh <niklesh.lalwani@iitb.ac.in>
2015-06-22 22:19:35 -07:00
Michael Niedermayer
7604358018 swscale/rgb2rgb_template: Fix signedness of v in shuffle_bytes_2103_c()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-23 05:09:11 +02:00
Michael Niedermayer
abb833c568 swscale/rgb2rgb_template: Implement shuffle_bytes_0321_c and fix shuffle_bytes_2103_c on BE
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-23 05:09:06 +02:00
Michael Niedermayer
7a4b8817fe avcodec/texturedsp: Add protective () to RGBA() macro
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-23 04:19:05 +02:00
Michael Niedermayer
b64e70436e avformat/mpegts: Use STREAM_TYPE_PRIVATE_DATA instead of 6
Suggested-by: Wolfgang Lorenz <wl-chmw@gmx.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-23 03:42:12 +02:00
Stephan Vedder
b368428fc0 avformat/electronicarts: Fixed ea_probe function to accept vp6a videos
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-23 03:34:33 +02:00
Michael Niedermayer
8575d960fe tests/fate/image: also run fate-sgi for the fate-image target
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-23 01:46:13 +02:00
Michael Niedermayer
2de6d13622 Changelog: Move HAP to the correct section
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-23 01:29:48 +02:00
Michael Niedermayer
21d2e3d602 avcodec/dds: Fix palettes on big endian
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-22 23:59:28 +02:00
Michael Niedermayer
ff68b83968 Merge commit '5c018ee18895f88e9e1d2174059dcdd48bf872d2'
* commit '5c018ee18895f88e9e1d2174059dcdd48bf872d2':
  DirectDraw Surface image decoder

Conflicts:
	Changelog
	configure
	doc/general.texi
	libavcodec/Makefile
	libavcodec/version.h
	tests/fate/image.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-22 23:34:56 +02:00
Michael Niedermayer
f067ee57c9 avcodec/jpeg2000dwt: Move large arrays used in the test code away from the stack
This should avoid problems on systems with little stack space and fix some crashes
in fate

crash found-by: jamrial
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-22 23:18:47 +02:00
Michael Niedermayer
8428e2c5f3 avcodec/jpeg2000dwt: Print 1 digit less in the 9/7f DWT test
This avoids test failure due to differing rounding between 32 and 64bit x86

Found-by: jamrial
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-22 23:18:38 +02:00
Michael Niedermayer
19dc1ed4ad avcodec/jpeg2000dwt: Use a tighter check threshold for the 9/7f DWT test
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-22 23:06:55 +02:00
Michael Niedermayer
55219a78c7 Merge commit '7ca3e5203f133eb41a0b5c3a1d753a7427ba72e7'
* commit '7ca3e5203f133eb41a0b5c3a1d753a7427ba72e7':
  Hap decoder and encoder

Conflicts:
	Changelog
	configure
	doc/general.texi
	libavcodec/allcodecs.c
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-22 22:47:32 +02:00
Michael Niedermayer
4df3cf90bf 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>
2015-06-22 22:23:22 +02:00
Michael Niedermayer
a5b2b22d9a Merge commit 'c0b105756f61d253bdabcc2bb49453a2557e7c3b'
* commit 'c0b105756f61d253bdabcc2bb49453a2557e7c3b':
  txd: Use the TextureDSP module for decoding

Conflicts:
	configure
	libavcodec/s3tc.c
	libavcodec/s3tc.h
	libavcodec/txd.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-22 21:15:50 +02:00
Michael Niedermayer
d1dc22dddd Merge commit '8337e0c57345f24cf6471220e5f8a0ea21b7c1d0'
* commit '8337e0c57345f24cf6471220e5f8a0ea21b7c1d0':
  Introduce a TextureDSP module

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-22 20:57:41 +02:00
Michael Niedermayer
9e5b0f070b Merge commit '2ecfd451649c7a08cb633635df98e59f7c6e2140'
* commit '2ecfd451649c7a08cb633635df98e59f7c6e2140':
  Implement Snappy decompression

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-22 20:47:21 +02:00
Shivraj Patil
f6276842f3 avcodec/mips: MSA (MIPS-SIMD-Arch) optimizations for block functions
This patch adds MSA (MIPS-SIMD-Arch) optimizations for block functions in new file blockdsp_msa.c

Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-22 20:18:10 +02:00
Tobias Rapp
2abdc6f477 fate: add some tests for ffv1 level 3 with 8/10/16 bps
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-22 19:09:50 +02:00
Michael Niedermayer
d4325b2fea swr: Remember previously set int_sample_format from user
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-22 18:34:39 +02:00
Michael Niedermayer
0dd2790df5 swresample/swresample: Clear delayed_samples_fixup in clear_context()
This probably makes no difference but its more proper

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-22 18:34:39 +02:00
Vittorio Giovara
5c018ee188 DirectDraw Surface image decoder
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-06-22 15:23:08 +01:00
Vittorio Giovara
7ca3e5203f Hap decoder and encoder
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-06-22 15:23:08 +01:00
Vittorio Giovara
c0b105756f txd: Use the TextureDSP module for decoding
Using the internal DXTC routines brings support for non multiple of 4
textures. A new test is added to cover this feature. Hashes differ
since the decoding algorithm is different, though no visual changes
have been spotted.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-06-22 15:23:08 +01:00
Vittorio Giovara
8337e0c573 Introduce a TextureDSP module
This module implements generic texture decompression from different
families (DXTC, RGTC, BCn) and texture compression DXTC 1, 3, and 5.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-06-22 15:23:08 +01:00
Luca Barbato
2ecfd45164 Implement Snappy decompression
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-06-22 15:23:08 +01:00
Mariusz Szczepańczyk
824a82d1b8 lavf/file: implement move and delete callbacks
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-22 12:46:18 +02:00
Mariusz Szczepańczyk
80e18bb486 lavf/avio: Extend API with avio_move() and avio_delete()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-22 12:46:08 +02:00
Michael Niedermayer
8fb672b50a Merge commit '61dc9d647c6664e11674d9a10fdde29987d6acda'
* commit '61dc9d647c6664e11674d9a10fdde29987d6acda':
  udp: Fix local_port management

Conflicts:
	libavformat/udp.c

See: 4f3f5ee1ac93797954eb66ef4d19e2256c0aaee7
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-22 12:37:29 +02:00
Luca Barbato
61dc9d647c udp: Fix local_port management
The default value for unset is -1, not 0.

Problem introduced in 66028b7ba6b411ba12ef553e9c8f1f4a4fe27710
2015-06-22 10:47:29 +03:00
Michael Niedermayer
4e926fb969 avcodec/jpeg2000: Move L band scaling from the 9/7f wavelet to quantization stage
This reduces the number of operations
Its not done for 9/7i as that would overflow thanks to JPEG2000 allowing
32 decomposition levels

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-22 03:01:24 +02:00
Michael Niedermayer
b1fdf81c6e avcodec/jpeg2000dwt: use 32x32->64 multiplies in the 9/7i DWT
This significantly improves the quality when the integer 9/7 transform
is used

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-22 02:27:50 +02:00
Michael Niedermayer
6c7b1597c7 avcodec/jpeg2000: Move H band scaling from wavelet into quantization code
This reduces the number of operations done and is equivalent except for
rounding

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-22 02:00:57 +02:00
Michael Niedermayer
69f7ccef8e avcodec/jpeg2000dwt: Move K/X constants to header
this makes them accessible by the rest of the jpeg2000 code

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-22 01:54:51 +02:00
Michael Niedermayer
1c495b0bf6 avcodec/jpeg2000: Move gainb handling into the quantization code
thats how the specification defines it, this also improves numerical
accuracy of the integer wavelet implementation. It otherwise should
be equivalent, in case of overflows this can be reverted.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-22 01:36:05 +02:00
Reynaldo H. Verdejo Pinochet
6504047f82 ffserver: drop unneeded else branching
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-06-21 19:06:00 -03:00
Reynaldo H. Verdejo Pinochet
758c7a5cbc ffserver: drop unneeded else branching
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-06-21 19:06:00 -03:00
Reynaldo H. Verdejo Pinochet
683f57354d ffserver: drop unneeded else branching
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-06-21 19:06:00 -03:00
Reynaldo H. Verdejo Pinochet
d8a04d916b ffserver: formating
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-06-21 19:06:00 -03:00
Rob Sykes
c70c6be225 swresample: soxr implementation for swr_get_out_samples()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-21 23:38:44 +02:00
Michael Niedermayer
1e7008675b Merge commit '8655c54160767de1a6b96f8bc310d6e4eaceff48'
* commit '8655c54160767de1a6b96f8bc310d6e4eaceff48':
  libvpx: Support the vp9 extended profiles

Conflicts:
	Changelog
	configure
	libavcodec/libvpx.c
	libavcodec/libvpx.h
	libavcodec/libvpxdec.c
	libavcodec/libvpxenc.c
	libavcodec/version.h

mostly not merged, as requested by jamrial

See: 01e59d48ed1a41b88107ed1d4d56ae0cbcd1a60e
See: 079b7f6eacc09bc2813fc1ddc230ab05022b69c2 and others
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-21 22:57:54 +02:00
Michael Niedermayer
30e9ebb14f Merge commit '05bf3f54e6078716f6267df530bf1d474ca3d606'
* commit '05bf3f54e6078716f6267df530bf1d474ca3d606':
  libvpx: Do not set vp8 only parameters when encoding in vp9

Conflicts:
	libavcodec/libvpxenc.c

See: 238ec505e263e7d0363798a05c1c28f494a6300a
See: ae330070ee8b985abb011835502b03baacfbb18c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-21 21:08:05 +02:00
Michael Niedermayer
f399f826ee Merge commit 'c060d046aa2f89c0e601a2dcfbce53f0e36cf498'
* commit 'c060d046aa2f89c0e601a2dcfbce53f0e36cf498':
  af_resample: Set the number of samples in the last frame

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-21 20:55:23 +02:00
Michael Niedermayer
ae215e2b42 Merge commit '6ec688e1bc76dd93151cbca1c340162ae4b10d77'
* commit '6ec688e1bc76dd93151cbca1c340162ae4b10d77':
  mp3: enable packed main_data decoding in MP4

Conflicts:
	libavcodec/mpegaudiodec_template.c

Only the parts needed to support the available sample are merged
the remaining error checks are left in place

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-21 20:32:06 +02:00
Michael Niedermayer
3bcf61f495 avcodec/jpeg2000dwt: Fix value of F_LFTG_X and I_LFTG_X
Even if the jpeg2000 spec uses a wrong value this does not
make mathematics work this way, also this has been corrected in the 2004
version AFAIK

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-21 19:25:35 +02:00
Michael Niedermayer
5de3a589f1 swresample/swresample: Print used int_sample_fmt
Suggested-by: wm4
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-21 18:12:56 +02:00
Michael Niedermayer
4977692461 swresample: Choose 16bit internally only if input and output is 16bit or less
or if no rematrix and no resampling is performed and the input is 16bit
note reampling and rematrix itself always use more than 16bit internally
the "internal" sampling format is the format between these steps

Its unlikely the difference from this commit is audible in any case
unless there is some bug either before or after the change.
but multiple people prefer this and it slightly improves the precission
of computations.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-21 17:33:46 +02:00
Michael Niedermayer
4299f085f4 avcodec/jpeg2000dwt: also test 9/7 float DWT
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-21 15:52:53 +02:00
Luca Barbato
8655c54160 libvpx: Support the vp9 extended profiles
Bump the minimum libvpx version to 1.3.0 and rework the configure logic
to fail only if no decoders and encoders are found.

Based on the original patch from Vittorio.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-06-21 16:27:18 +03:00
Michael Niedermayer
6528b90dea avcodec/jpeg2000dwt: List differences for DWT test
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-21 13:43:02 +02:00
Michael Niedermayer
aa594415a0 avcodec/jpeg2000dwt: increase the number of test iterations
the code had too little coverage

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-21 13:43:02 +02:00
Michael Niedermayer
d23b3f3940 avcodec/jpeg2000dwt: Also test 9/7 integer DWT
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-21 13:43:02 +02:00
Michael Niedermayer
3bd46914fb avcodec/jpeg2000dwt: Allow testing with a maximum allowed difference
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-21 13:43:02 +02:00
Paul B Mahol
a49154e9d7 avformat/brstm: support little-endian s16 PCM
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-06-21 10:32:13 +00:00
Rodger Combs
0f67351944 lavc/adpcm: THP: don't use the ADPC/SEEK table when not seeking
This is almost certainly closer to how the actual Nintendo players work,
and fixes some output pops in files with blank ADPC/SEEK tables (like
those from brawlcustommusic).
2015-06-21 10:32:13 +00:00
Rodger Combs
d2ce10093e lavf/brstm: handle a BFSTM endianness oddity 2015-06-21 10:32:13 +00:00
Rodger Combs
9c9cf3956c lavf/brstm: add support for seeking 2015-06-21 10:32:12 +00:00
Rodger Combs
70a39bcf1c lavf/brstm: cleanup; fix short-block demuxing 2015-06-21 10:32:12 +00:00
Rodger Combs
6c56827e62 lavf/brstm: move bfstm var to a local 2015-06-21 10:32:12 +00:00
Michael Niedermayer
6c8a05268c avformat/rawenc: Store sample number for ADX
Fixes Ticket4540

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-21 12:16:24 +02:00
Paul B Mahol
95ee0fbacf Support demuxing 4gv codec stored in qcp files
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-06-21 09:30:01 +00:00
Michael Niedermayer
54649cbda8 ffmpeg_opt: Fix handling of creation_time now
Fixes Ticket4495

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-21 04:57:20 +02:00
Michael Niedermayer
f98c3ec5c6 avformat/movenc: Check return code of ff_iso8601_to_unix_time()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-21 04:18:08 +02:00
Michael Niedermayer
dde6b2a355 avcodec/mjpegdec: dont try to combine fields for decimated multiscope 2 material
Fixes Ticket4535

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-21 02:53:06 +02:00
James Zern
9b747500f3 libvpxenc: support setting colorspace for vp9
the vp9 bitstream supports 8 values:
unknown (default), bt601, bt709, smpte170, smpte240, bt2020, reserved
and sRGB.

Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: James Zern <jzern@google.com>
2015-06-20 16:30:46 -07:00
Rodger Combs
631d56ffc8 lavc/adpcm: THP: fix indentation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-21 00:34:21 +02:00
Michael Niedermayer
e70fd57de5 avcodec/mqcenc: Remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-20 22:36:15 +02:00
Simon Thelen
7cbb52ecab libavfilter/formats: Fix parsing of channel specifications with a trailing 'c'.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-20 19:51:14 +02:00
Rodger Combs
6b547180b9 lavc/adpcm: THP: allow channel counts up to 10
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-20 19:21:53 +02:00
Rodger Combs
db426031dd lavf/brstm: allow larger block sizes
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-20 19:21:08 +02:00
Rodger Combs
d4c9eced98 lavf/brstm: support little-endian files (BCSTM; 3DS)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-20 16:50:47 +02:00
Rodger Combs
8e7a06aa5c lavc/adpcm: THP: handle packets with sample counts not divisible by 14
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-20 16:33:57 +02:00
Rodger Combs
7e7256c3a4 lavc: add little-endian ADPCM_THP decoder
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-20 16:33:39 +02:00
Michael Niedermayer
f230b9671f fate: add avfilter/formats-test
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-20 14:26:34 +02:00
Michael Niedermayer
50ee17340b avfilter/formats: Add test for ff_parse_channel_layout()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-20 14:26:34 +02:00
Michael Niedermayer
bb9f4f94ac avcodec/jpeg2000dec: Replace TPsot check by assert
The condition is impossible now.
the TPsot type is changed to unsigned int to prevent gcc from producing warnings

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-20 14:26:34 +02:00
Michael Niedermayer
5ba9ec824a avcodec/jpeg2000dec: Increase tile part limit to 256
This is the maximum that the syntax of jpeg2000 is capable to store

Fixes Ticket4639

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-20 14:26:34 +02:00
Luca Barbato
05bf3f54e6 libvpx: Do not set vp8 only parameters when encoding in vp9 2015-06-20 12:18:01 +03:00
Luca Barbato
c060d046aa af_resample: Set the number of samples in the last frame
Otherwise trailing zeroes would appear.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-06-20 12:18:01 +03:00
nu774
6ec688e1bc mp3: enable packed main_data decoding in MP4
14496-3 suggests packing main_data of MP3 that is usually scattered
into multiple frames due to bit reservoir.

However, after packing main_data into a access unit, bitrate index
in the MPEG audio frame header doesn't match with actual frame size.

In order to accept this, this patch removes unnecessary frame size
checking on mp3 decoder.

Also, mov demuxer was changed to use MP3 parser only on special cases
(QT MOV with specific sample description) to avoid re-packetizing.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-06-20 12:18:01 +03:00
James Almer
6fb96afdd6 avutil/fixed_dsp: remove ff_ prefix from static function
Signed-off-by: James Almer <jamrial@gmail.com>
2015-06-20 03:39:09 -03:00
Michael Niedermayer
5358953cdf avcodec/jpeg2000dwt: Fill array using 2d instead of 1d accesses
Avoids gcc warning

Found-by: jamrial
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-20 02:14:19 +02:00
Michael Niedermayer
116e7d5418 avcodec/jpeg2000dwt: Factor dwt test code out so it can be easily used with the other dwts too
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-20 02:10:39 +02:00
Michael Niedermayer
a75ca3ca6a avcodec/jpeg2000dwt: Fix special cases in sd_1d53()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-20 01:40:17 +02:00
Michael Niedermayer
0ce918c45b tests/fate: Add fate-j2k-dwt
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-20 01:37:43 +02:00
Michael Niedermayer
de99ce4306 avcodec/jpeg2000dwt: add test for the 5/3 wavelet
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-20 01:37:43 +02:00
Michael Niedermayer
75651cd63f avcodec/jpeg2000dwt: Fix order of operations in integer decomposition wavelets
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-20 00:53:56 +02:00
Michael Niedermayer
7e2bdea764 avcodec/j2kenc: Use JP2 format by default
Without the JP2 fields its not possible to identify the colorspace

Fixes Ticket538

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-19 21:56:57 +02:00
Michael Niedermayer
9a2fc170b1 avcodec/j2kenc: Support writing JP2 encapsulation
The added option matches openjpeg

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-19 21:51:25 +02:00
Michael Niedermayer
8edc17b639 avcodec/dpxenc: implement write16/32 as functions
Fixes undefined behavior and segfault

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-19 16:51:54 +02:00
Michael Niedermayer
52e02a9e59 avutil/avstring: Do not print NULL
Fixes segfault
Fixes Ticket4452

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-19 15:57:32 +02:00
Shivraj Patil
ee3ef5fda2 avcodec/mips: MSA (MIPS-SIMD-Arch) optimizations for hpel functions
This patch adds MSA (MIPS-SIMD-Arch) optimizations for hpel functions in new file hpeldsp_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-19 14:00:12 +02:00
Michael Niedermayer
d277b05c51 avcodec/fic: Add skip_cursor AVOption
Previous version reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-19 13:57:36 +02:00
James Almer
a9af9da631 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>
2015-06-19 12:12:27 +02:00
Michael Niedermayer
bb3703a4c3 avcodec/j2kenc: YUV should not use the ICT
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-19 05:12:06 +02:00
Michael Niedermayer
d1dce1c517 avutil/crc: Fix type of p table so its content fits without overflwoing
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-19 02:25:48 +02:00
Michael Niedermayer
2c881c7d45 avutil/avstring: Fix undefined shift
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-19 02:25:48 +02:00
Michael Niedermayer
fdbad24090 avutil/aes: Fix types
Fixes "warning: argument #2 is incompatible with prototype:"

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-19 02:25:48 +02:00
Michael Niedermayer
d8a227f231 avutil/adler32: Fix data type in test code
Fixes "warning: argument #2 is incompatible with prototype:"

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-19 02:25:48 +02:00
Michael Niedermayer
76cc8582fd avcodec/fft-test: fix type of cpuflags
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-19 02:25:48 +02:00
Andreas Cadhalpun
590743101d 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>
2015-06-19 01:47:59 +02:00
Andreas Cadhalpun
d216b9debd 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>
2015-06-19 00:07:43 +02:00
wm4
f6c3f1ed60 avformat: clarify what package needs to be compiled with SSL support
Try to reduce user confusion.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-18 22:26:36 +02:00
wm4
d4007d1763 id3v2: strip trailing spaces from APIC tag
The APIC description must be unique, and some ID3v2 tag writers add
spaces to write several APIC entries with the same description. The
trailing spaces simply serve as a way to disambiguate the description.
Do this so that API users do not have to special-case mp3 to fix this
cosmetic issue.

Requested-by: wm4
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-18 19:15:49 +02:00
Michael Niedermayer
622f1468c9 avformat/id3v2: detect PNG by header instead of mime
the mimetype for PNG can be set to jpeg

Fixes 01\ -\ Cider\ Time.mp3

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-18 18:38:53 +02:00
Michael Niedermayer
57078e4d25 avcodec/hevc_ps: Only discard overread VPS if a previous is available
Fixes Ticket4621

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-18 18:03:21 +02:00
Michael Niedermayer
7b1c03aa74 avcodec/libx264: Avoid reconfig on equivalent aspect ratios
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-18 14:40:11 +02:00
Shivraj Patil
98eb1ac901 avcodec/mips: MSA (MIPS-SIMD-Arch) optimizations for qpel functions
This patch adds MSA (MIPS-SIMD-Arch) optimizations for qpel functions in new file qpeldsp_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-18 12:33:15 +02:00
Michael Niedermayer
d1050d9950 ffmpeg: Free last_frame instead of just unref
Fixes Ticket4611

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-18 05:27:08 +02:00
Michael Niedermayer
08326e73a2 avcodec/jpeg2000dec: Continue decoding reslevels even when empty ones are encountered
Fixes Ticket4635

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-18 02:23:37 +02:00
Michael Niedermayer
3a6a8f6ee1 avcodec/ffv1enc: fix bps for >8bit yuv when not explicitly set
Fixes Ticket4636

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-18 01:01:06 +02:00
George Boyle
47cadf4d1f avcodec/flacenc: Regression test for ticket #4628
Corresponding commit: 2469ed32c81ebf2347e6883091c566724b286167

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-17 22:47:17 +02:00
Michael Niedermayer
23c22d37d2 Merge commit '1e79d5c6e73ad131f9395f337b58a2b59ee04c1b'
* commit '1e79d5c6e73ad131f9395f337b58a2b59ee04c1b':
  libwebpenc: use WebPMemoryWriterClear()

See: 7997d78643797d6d26babc4eabbda71049457169
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-17 21:00:50 +02:00
Michael Niedermayer
98b95e7466 Merge commit 'd8d124eebcf2ec1f6a1936b12a4f00a48f08e85c'
* commit 'd8d124eebcf2ec1f6a1936b12a4f00a48f08e85c':
  aic: Improve error reporting

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-17 20:53:34 +02:00
Michael Niedermayer
4624656797 avcodec/j2kenc: Properly flush the end of the truncated AC stream
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-17 20:39:03 +02:00
Michael Niedermayer
e6190045b3 avcodec/mqcenc: Add ff_mqc_flush_to()
This is needed to separate the end padding from the bitstream, allowing
to end it multiple times without disturbing it.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-17 20:11:43 +02:00
Michael Niedermayer
2687a51a3f avcodec/jpeg2000dec: Drop unneeded rlevel variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-17 15:48:12 +02:00
Michael Niedermayer
7c3f7e6ed1 avcodec/jpeg2000dwt: Support 9/7 singularity cases on the encoder side
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-17 15:24:14 +02:00
James Almer
1e79d5c6e7 libwebpenc: use WebPMemoryWriterClear()
WebPMemoryWriterClear() must be used instead of free() when
libwebp ABI version is > 0x0203.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-06-17 14:13:43 +01:00
Michael Niedermayer
9841024402 avcodec/jpeg2000dwt: More special cases to handle singularities in 9/7 decode
Fixes Ticket4634

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-17 15:07:50 +02:00
Vittorio Giovara
d8d124eebc aic: Improve error reporting 2015-06-17 14:06:35 +01:00
Shivraj Patil
63eaf529bc avcodec/mips: MSA (MIPS-SIMD-Arch) optimizations for H263 lpf functions
This patch adds MSA (MIPS-SIMD-Arch) optimizations for H263 lpf functions in new file h263dsp_msa.c

Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-17 13:50:14 +02:00
Rodger Combs
bb42a7d4d4 lavf/brstm: add support for BFSTM files
Previous version reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-17 13:24:11 +02:00
wm4
dc87758775 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>
2015-06-17 01:13:19 +02:00
Michael Niedermayer
e29d996149 swscale/output: Add rgba64/rgb48/bgra64/bgr48 output functions with full chroma interpolation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-17 00:45:46 +02:00
Michael Niedermayer
f140a99f8b swscale/output: Factorize rgb48 and 64bit code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-17 00:45:46 +02:00
Michael Niedermayer
1125c71fd7 avcodec/jpeg2000dwt: assert that mod == 0 for encoding
We are missing the handling of some special cases for this.
These cases should be unused and there should be no reason
to ever use them unless some spec dictates their use

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-17 00:44:27 +02:00
Andreas Cadhalpun
28efeb6502 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>
2015-06-16 21:48:51 +02:00
Andreas Cadhalpun
72654526e4 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>
2015-06-16 21:47:17 +02:00
Andreas Cadhalpun
92e79a2f7b 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>
2015-06-16 21:46:04 +02:00
Andreas Cadhalpun
5b76c82fd7 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>
2015-06-16 21:45:45 +02:00
Paul B Mahol
e0dac40306 avcodec/codec_desc: rename smv video codec name to smvjpeg to match decoder name
Also fixes clash with smv audio codec.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-06-16 19:17:28 +00:00
Michael Niedermayer
34121ca187 avcodec/jpeg2000dwt: Fix 9/7 IDWT for small sizes
Fixes Ticket4631

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-16 20:33:54 +02:00
Michael Niedermayer
8294ec67b5 avcodec/jpeg2000dwt: add special cases for handling length 1 in 5/3 decode
Fixes Ticket4630

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-16 20:16:53 +02:00
Michael Niedermayer
20657e05bc avcodec/jpeg2000dec: Improve end check
Fixes spurious end mismatch warnings

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-16 18:34:20 +02:00
Michael Niedermayer
36241c4055 avcodec/jpeg2000dec: Fix term_cnt check
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-16 18:31:59 +02:00
Christian Suloway
918abc19ff MAINTAINERS: add myself as hls encryption maintainer
Signed-off-by: Christian Suloway <csuloway@globaleagleent.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-16 16:52:38 +02:00
Christian Suloway
7e871d6999 avformat/hlsenc: removed empty/unused print_encryption_tag function
Signed-off-by: Christian Suloway <csuloway@globaleagleent.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-16 16:52:38 +02:00
Michael Niedermayer
cf11fd632e avformat/mxfdec: Change version byte for JPEG2000 to match mxf.c and RP224v12
This should make no difference as the byte is ignored

Found-by: tim nicholson <nichot20@yahoo.com>
Reviewed-by: tim nicholson <nichot20@yahoo.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-16 13:28:44 +02:00
George Boyle
2469ed32c8 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>
2015-06-16 12:55:20 +02:00
James Zern
202188a26c doc/muxers.texi: properly insert {}s in example
use '@{' / '@}', fixes compile errors:
*** '{' without macro. Before: 1:-'.'}
*** '}' without opening '{' before:

since:
907ac20 avformat/hlsenc: added HLS encryption

Signed-off-by: James Zern <jzern@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-16 12:13:43 +02:00
Christian Suloway
907ac20aa2 avformat/hlsenc: added HLS encryption
Added HLS encryption with -hls_key_info_file <key_info_file> option. The
first line of key_info_file specifies the key URI written to the
playlist. The key URL is used to access the encryption key during
playback. The second line specifies the path to the key file used to
obtain the key during the encryption process. The key file is read as a
single packed array of 16 octets in binary format. The optional third
line specifies the initialization vector (IV) as a hexadecimal string to
be used instead of the segment sequence number (default) for encryption.
Changes to key_info_file will result in segment encryption with the new
key/IV and an entry in the playlist for the new key URI/IV.

Key info file format:
<key URI>
<key file path>
<IV> (optional)

Example key URIs:
http://server/file.key
/path/to/file.key
file.key

Example key file paths:
file.key
/path/to/file.key

Example IV:
0123456789ABCDEF0123456789ABCDEF

Example:
ffmpeg -f lavfi -i testsrc -c:v h264 -hls_key_info_file file.keyinfo
foo.m3u8

file.keyinfo:
http://server/file.key
/path/to/file.key
0123456789ABCDEF0123456789ABCDEF

Example shell script:
BASE_URL=${1:-'.'}
openssl rand 16 > file.key
echo $BASE_URL/file.key > file.keyinfo
echo file.key >> file.keyinfo
echo $(openssl rand -hex 16) >> file.keyinfo
ffmpeg -f lavfi -re -i testsrc -c:v h264 -hls_flags delete_segments \
  -hls_key_info_file file.keyinfo out.m3u8
--

Signed-off-by: Christian Suloway <csuloway@globaleagleent.com>
Signed-off-by: Dan Dennedy <dan@dennedy.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-16 03:25:31 +02:00
Michael Niedermayer
fefe04259a avcodec/jpeg2000dec: increase tile part limit to 32
Fixes Ticket4629

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-15 23:24:49 +02:00
Paul B Mahol
eb85060b84 avfilter/af_afade: add couple of more curves
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-06-15 20:55:05 +00:00
Michael Niedermayer
12e36a3dfd Merge commit 'a4fbd55d6e03eabdbecc3b7892ec09eb8062d066'
* commit 'a4fbd55d6e03eabdbecc3b7892ec09eb8062d066':
  h264: er: Copy from the previous reference only if compatible

See: fdc64a104410f5fcc7f35b62287b0ae502b7061a
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-15 22:30:53 +02:00
Michael Niedermayer
20526f2e2f Merge commit '9af7e8045e3e63ab39adedae9a7c11b1c410af26'
* commit '9af7e8045e3e63ab39adedae9a7c11b1c410af26':
  lavc: Clarify the behaviour of dimension and format context fields

Conflicts:
	libavcodec/avcodec.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-15 22:11:43 +02:00
Michael Niedermayer
4ed3a01d71 Merge commit '03ca6d70df192125a772dadd01acfe3905aa653f'
* commit '03ca6d70df192125a772dadd01acfe3905aa653f':
  x264: Factor out the reconfiguration code

Conflicts:
	libavcodec/libx264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-15 21:56:26 +02:00
Michael Niedermayer
efcf8cfa48 Merge commit '24ad3ac6a3e20350214e6c3f7a931635f264ae07'
* commit '24ad3ac6a3e20350214e6c3f7a931635f264ae07':
  nut: Drop doxygen markers

Conflicts:
	libavformat/nut.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-15 21:41:20 +02:00
James Zern
a829040c43 libvpxenc: remove stray '\'s
Signed-off-by: James Zern <jzern@google.com>
2015-06-15 12:36:38 -07:00
James Zern
e6c71385f0 libvpxenc: cosmetics: reindent after 2c70436
Signed-off-by: James Zern <jzern@google.com>
2015-06-15 12:36:37 -07:00
Michael Niedermayer
c5fc48fdfb Merge commit '07b2db81d06e1cd6b1718d3e2dd7a42e8bccf8c0'
* commit '07b2db81d06e1cd6b1718d3e2dd7a42e8bccf8c0':
  riff: Add MNM4 FourCC as mpeg4

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-15 21:18:13 +02:00
James Zern
8ce321f0aa encoders.texi: update libvpx documentation
modeled after the libx264 section.

Reviewed-by: Lou Logan <lou@lrcd.com>
Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: James Zern <jzern@google.com>
2015-06-15 12:09:02 -07:00
Michael Niedermayer
2819aeb0f3 avcodec/jpeg2000dec: Omit mqc reinit after the last pass
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-15 20:49:04 +02:00
Paul B Mahol
d107413f1c doc/filters: add one more compand example found in the wild
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-06-15 17:20:23 +00:00
Andreas Cadhalpun
dd6c8575db 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>
2015-06-15 18:32:18 +02:00
Andreas Cadhalpun
fdc64a1044 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>
2015-06-15 18:32:18 +02:00
Michael Niedermayer
96bbbebaf9 avcodec/jpeg2000dec: Fix Vertically causal context formation
Fixes Ticket4626

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-15 18:12:45 +02:00
Michael Niedermayer
021351f246 avcodec/mqcdec: set raw flag at the begin of ff_mqc_initdec()
This way it is available to any functions called from ff_mqc_initdec()

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-15 17:11:01 +02:00
Andreas Cadhalpun
a4fbd55d6e 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: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-06-15 13:39:07 +02:00
Luca Barbato
9af7e8045e lavc: Clarify the behaviour of dimension and format context fields
The AVCodecContext width, height, coded_width, coded_height and format
are used mainly as decoding hints and they get internally overwritten
during the data parsing stage.

Do not assume they match the last AVFrame provided by
avcodec_decode_video2 and assimilated functions since multi-threading
and other frame reordering might make those values to refer to frames
that will be outputted in the future.

CC: libav-stable@libav.org
2015-06-15 13:39:07 +02:00
Luca Barbato
03ca6d70df x264: Factor out the reconfiguration code 2015-06-15 13:39:07 +02:00
Luca Barbato
24ad3ac6a3 nut: Drop doxygen markers 2015-06-15 13:39:07 +02:00
Michael Niedermayer
4ec14ce121 avcodec/jpeg2000dec: Improve readability of SOP check
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-15 13:29:41 +02:00
Vittorio Giovara
07b2db81d0 riff: Add MNM4 FourCC as mpeg4 2015-06-15 12:29:25 +01:00
Michael Niedermayer
9ba5fe7f3d avcodec/jpeg2000dec: Remove redundant check
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-15 03:11:58 +02:00
Michael Niedermayer
5b0f55aab9 avcodec/jpeg2000dec: Check reslevelno in RPCL
Fixes out of array read
Fixes Ticket4627

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-15 03:00:53 +02:00
Michael Niedermayer
a58f1bcc4c avcodec/jpeg2000dec: Skip SOP
Fixes Ticket4625

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-15 02:32:45 +02:00
Michael Niedermayer
4bfdd967a6 avcodec/jpeg2000dec: Use <0 instead of != 0 for error checking
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-15 02:19:48 +02:00
Michael Niedermayer
5ef578d03a avcodec/jpeg2000dec: Also include remaining length in "Block length" error message
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-15 01:43:14 +02:00
Michael Niedermayer
dd9400930a Merge commit '74ea1167d91ccb2e1f2943efa030f2c278b598be'
* commit '74ea1167d91ccb2e1f2943efa030f2c278b598be':
  tls_gnutls: fix hang on disconnection

See: 2222f419da99ef85d49ab04e7e15b76612f4d054
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-15 01:30:55 +02:00
Michael Niedermayer
ec5164aa31 avcodec/jpeg2000: Fix regression with multiple tiles
Fixes Ticket 4624

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-14 22:59:50 +02:00
Michael Niedermayer
a206c13289 avcodec/jpeg2000: Change codeblock coords to same origin as bands
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-14 22:59:50 +02:00
Michael Niedermayer
d9841e53e2 avcodec/jpeg2000: Change precinct coords to same origin as bands
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-14 22:59:42 +02:00
Michael Niedermayer
59c107292c avcodec/jpeg2000: Fix band coords
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-14 21:58:38 +02:00
Michael Niedermayer
6b08dc393b avcodec/jpeg2000dec: Print warning if the mqc pointer mismatches at the end
If this occurs on valid and correctly decoded files it should be reduced to debug
level

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-14 21:40:09 +02:00
wm4
2222f419da 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>
2015-06-14 21:40:08 +02:00
Michael Niedermayer
91c8025c44 avcodec/jpeg2000dec: Show the progression order at debug level for all variants
It was previously shown just for some, this makes it consistent

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-14 21:40:08 +02:00
Paul B Mahol
20ee65ef73 avfilter/af_afade: use av_clipd() instead of nested FFMAX & FFMIN
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-06-14 17:08:43 +00:00
wm4
74ea1167d9 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: Martin Storsjö <martin@martin.st>
2015-06-14 19:50:03 +03:00
Michael Niedermayer
742a26c489 avcodec/jpeg2000dec: Print error messages for more error conditions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-14 15:15:51 +02:00
Andreas Cadhalpun
ed0b1db640 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>
2015-06-14 15:09:33 +02:00
Michael Niedermayer
ad072a134f avcodec/jpeg2000dec: Handle format that has planes matching YUVA420P structure but seems not to be that
Outputs something for p0_05.j2k

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-14 13:01:12 +02:00
Michael Niedermayer
132bf0bbb7 avcodec/jpeg2000dec: Print all cdx/cdy values not just the 2nd and 3rd
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-14 11:49:49 +02:00
Clément Bœsch
1dee7a31e0 avfilter: bump minor after colorkey addition 2015-06-14 11:20:47 +02:00
Philip Langdale
1b19d0c632 avcodec/hevc: Track long and short term RPS size for VDPAU
Today, we track the short term RPS size for DXVA, but only if the
SliceHeader RPS is being used. Otherwise it's left uninitialized.

NVIDIA's VDPAU implementation requires that the size be accurately
tracked even if an SPS RPS is being used. In this case, it's really
counting the size of the RPS idx information, but you end up with
mangled output if the value is not accurate.

VDPAU also needs the size of the long term RPS.

Signed-off-by: Philip Langdale <philipl@overt.org>
2015-06-13 21:09:24 -07:00
Philip Langdale
01fac84fe4 avcodec/nvenc: Enable YV12 input format
This has been enabled by recent nvidia driver releases.

Signed-off-by: Philip Langdale <philipl@overt.org>
2015-06-13 21:09:24 -07:00
Michael Niedermayer
4a3bc0d9a5 avcodec/jpeg2000dec: Implement "Reset context probabilities on coding pass boundaries"
No testcase with just this feature known

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-14 03:38:41 +02:00
James Almer
20abb1afe5 softfloat: make av_div_sf() inline
Removes a defined but not used warning on files including softfloat.h

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-06-13 22:28:39 -03:00
Michael Niedermayer
612f8cae06 avcodec/jpeg2000dec: Support RPCL
Fixes Ticket 2792

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-14 02:53:51 +02:00
Timo Rothenpieler
f17d973413 avfilter/vf_colorkey: Add colorkey video filter
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-14 01:04:14 +02:00
James Almer
4aebaed0e1 avformat/singlejpeg: fix standalone compilation 2015-06-13 17:47:13 -03:00
James Almer
9f815bc2c2 avcodec/jpeg200dsp: add ff_rct_int_{sse2,avx2}
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-06-13 16:53:31 -03:00
James Almer
7912a6830d avcodec/jpeg200dsp: add ff_ict_float_{sse,avx}
Original intrinsics version by Nicolas Bertrand.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-06-13 16:53:27 -03:00
Michael Niedermayer
a98d4d5207 avfilter/drawutils: Assert av_pix_fmt_desc_get() return value in ff_fill_line_with_color()
Theres currently no case where this could be triggered

Found-by: Daemon404
Reviewed-by: Nicolas George <george@nsup.org>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-13 21:33:18 +02:00
Clément Bœsch
8978052869 avfilter/lut3d: assert on pixel format descriptor
inlink->format is supposed to be set to a valid format controlled by query_formats().
2015-06-13 20:51:43 +02:00
Clément Bœsch
a056636c81 avfilter/geq: assert on pixel format descriptor
inlink->format is supposed to be set to a valid format controlled by query_formats().
2015-06-13 20:51:43 +02:00
Andreas Cadhalpun
45babb0121 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>
2015-06-13 20:42:38 +02:00
Clément Bœsch
324cf0645d avcodec/ass_split: check ASSSplitContext alloc 2015-06-13 20:39:57 +02:00
Michael Niedermayer
c3517c377e avcodec/jpeg2000dec: Support PCRL
Fixes Ticket4603

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-13 13:56:49 +02:00
Michael Niedermayer
eb1beb9e1c avcodec/jpeg2000dec: Try to fix remaining DCinema hardcoded TODOs in CPRL
Again, no testcase

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-13 13:37:56 +02:00
Michael Niedermayer
0a3eb0422a avcodec/jpeg2000dec: try to correct tile location in CPRL code
No testcase

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-13 13:09:13 +02:00
Michael Niedermayer
7c244349fc avcodec/jpeg2000dec: Factorize component out of CPRL loop
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-13 13:09:13 +02:00
Michael Niedermayer
86efe83177 avcodec/jpeg2000dec: Fix x/y step TODO for CPRL
No testcase known

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-13 13:09:13 +02:00
Carl Eugen Hoyos
3323c5f353 Remove a few occurences of "long long" from the libraries. 2015-06-13 09:28:41 +02:00
Shivraj Patil
178ba1fd03 avcodec/mips: MSA (MIPS-SIMD-Arch) optimizations for AVC qpel functions
This patch adds MSA (MIPS-SIMD-Arch) optimizations for AVC qpel functions in new file h264qpel_msa.c
Adds new generic macros (needed for this patch) in libavutil/mips/generic_macros_msa.h

Added const to local static array.

Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-13 02:21:55 +02:00
Michael Niedermayer
b8ba2d3915 examples/decoding_encoding: Use the AVFrame width/height for processing images after decoding
This is what FFmpeg / FFplay do and it is more robust

Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-13 02:14:26 +02:00
Michael Niedermayer
a75d22445e ffprobe: check av_asprintf() for failure
Found-by: Daemon404
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-13 01:45:27 +02:00
Michael Niedermayer
df037fe107 avcodec/smvjpegdec: assert that the pixel format that has been set by our decoder is valid
If we do check av_pix_fmt_desc_get() then we should fail and
not continue with an invalid pix_fmt

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-13 00:51:29 +02:00
Michael Niedermayer
e0db41316a avfilter/drawutils: Fix format validity check in ff_draw_init()
Found-by: Daemon404
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-13 00:06:28 +02:00
Michael Niedermayer
ea37df2d52 avutil/imgutils: Simplify pix_fmt validity check in av_image_get_linesize()
Found-by: Daemon404
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-12 23:23:59 +02:00
Michael Niedermayer
2cbadf51e8 Merge commit '3b73d5c942f44b37f0e44276ebcfd66c8b12c02d'
* commit '3b73d5c942f44b37f0e44276ebcfd66c8b12c02d':
  fft-test: Use the float fabs() version

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-12 23:12:06 +02:00
Michael Niedermayer
fd04082af9 Merge commit '2d5176fad1a4556d209cbfb0f681712c7eada4fd'
* commit '2d5176fad1a4556d209cbfb0f681712c7eada4fd':
  on2avc: Use the integer abs() version

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-12 23:04:30 +02:00
Michael Niedermayer
00ebf89dcd Merge commit 'a7ac1a7b94447f33ae95be4d6d186e2775977f91'
* commit 'a7ac1a7b94447f33ae95be4d6d186e2775977f91':
  flv: Name an enum and use its type

Conflicts:
	libavformat/flvdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-12 22:55:49 +02:00
Michael Niedermayer
e1ec9c7fb6 Merge commit '30dfc1dad4285e7362ce3f596d7c5d5d9b7fb33d'
* commit '30dfc1dad4285e7362ce3f596d7c5d5d9b7fb33d':
  cws2fws: Close file handles on error

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-12 22:46:10 +02:00
Michael Niedermayer
6cfaa51acb Merge commit 'a9b2a51178ea446909015f061ab5df65e3b66bf6'
* commit 'a9b2a51178ea446909015f061ab5df65e3b66bf6':
  avconv_opt: Check localtime() return value

Conflicts:
	ffmpeg_opt.c

See: 8e91d9652ea5048d9014e7636e12c6ed4732d7b7
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-12 22:38:44 +02:00
Michael Niedermayer
449c74f629 Merge commit '8a78ae2d2101622fd244b99178d8bc61175c878e'
* commit '8a78ae2d2101622fd244b99178d8bc61175c878e':
  segment: Check open_null_ctx() return value

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-12 22:10:47 +02:00
Michael Niedermayer
63b0356274 Merge commit 'b7a4127a45b780d76e6b09427a3d0197c4bc1cdb'
* commit 'b7a4127a45b780d76e6b09427a3d0197c4bc1cdb':
  h264_qpel: Use the correct header

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-12 21:55:40 +02:00
Michael Niedermayer
b68b5ec513 Merge commit '5e87080f2c73186066df0b9c43877b4af0beef3a'
* commit '5e87080f2c73186066df0b9c43877b4af0beef3a':
  h264_weight: Fix SSSE3 biweight code with weights of 128

Conflicts:
	libavcodec/x86/h264_weight.asm

See: e1009665759d4a3938dd2dd07b7e84d8bc9c5290
See: fb2288834ba8a51e8934cfe8b82ac468144a34df
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-12 21:47:01 +02:00
Michael Niedermayer
85d0df0c30 Merge commit '64a2e844166d62093b45e680874eea8bd1facf5b'
* commit '64a2e844166d62093b45e680874eea8bd1facf5b':
  eamad: Use the correct headers

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-12 21:42:50 +02:00
Michael Niedermayer
d52c5e9d75 Merge commit '8606e881b02bec2ac24943d22c8afe11d641fac8'
* commit '8606e881b02bec2ac24943d22c8afe11d641fac8':
  mpeg12: Move the vlc bits to a stand alone file

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-12 21:34:22 +02:00
Michael Niedermayer
dbf172e6f4 Merge commit 'f1fa1eed2abdc8dfb0af318a43f5d293b81141bd'
* commit 'f1fa1eed2abdc8dfb0af318a43f5d293b81141bd':
  mpegvideo: Expand macro

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-12 21:25:21 +02:00
Andreas Cadhalpun
1189af4292 h264: update avctx width/height/pix_fmt when returning frame
Inconsistencies between the dimensions/pixel format of avctx and the
frame can confuse API users.
For example this can crash the demuxing_decoding example.

Back up the previous values and restore them, when decoding the next
frame. This is necessary, because these can be different between the
returned frame and the last decoded frame.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-06-12 21:22:00 +02:00
Michael Niedermayer
b5c71fba59 Merge commit 'e7af52a68dde9144b273a9598b60bf0f56e1323b'
* commit 'e7af52a68dde9144b273a9598b60bf0f56e1323b':
  mpegvideo: rv10: Move function declaration to a separate header

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-12 21:05:57 +02:00
Michael Niedermayer
218f58a16a Merge commit 'e3d0f49abb20a551bf6d885f75c354d6d0bbeb9d'
* commit 'e3d0f49abb20a551bf6d885f75c354d6d0bbeb9d':
  mpegvideo: h263: Move all tables to a single file

Conflicts:
	libavcodec/h263.h
	libavcodec/h263data.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-12 20:57:37 +02:00
Michael Niedermayer
58f63670e1 Merge commit '8b5007a31b8d1ddbe3661bf45a732336450b7d25'
* commit '8b5007a31b8d1ddbe3661bf45a732336450b7d25':
  mpegvideo: Move ER functions to a separate file

Conflicts:
	libavcodec/mpegvideo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-12 20:47:14 +02:00
Przemysław Sobala
c39637f36a libavcodec/imgconvert.c: support left band while cropping
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-12 19:52:30 +02:00
Michael Niedermayer
d0061e77cd avformat/mxfdec: Detect jpeg2000 through codec_ul too
Fixes Ticket2345

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-12 19:40:48 +02:00
Paul B Mahol
ce3bcb9479 doc/filters: add one more zoompan example
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-06-12 17:34:05 +00:00
wm4
7e240f9581 matroskadec: verify seekhead IDs
Some files have SeekHead elements with broken IDs. They mismatch with
the ID of the destination element. These files are written by
"IDMmkvlib0.1" (as identified by the MuxingApp and WritingApp elements),
and the SeekHead IDs are actually endian-swapped.

This confuses the SeekHead logic of the demuxer. It will read some
elements twice, because the SeekHead ID is used to identify and remember
already read elements. With the file at hand, the stream list was
duplicated by reading the Tracks element twice.

Fix this by rejecting invalid EBML IDs in SeekHead entries. (This fix is
relatively specific to the broken file at hand, and doesn't protect
against some other cases of broken SeekHead, such as valid but
mismatching target element IDs.)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-12 19:30:11 +02:00
Paul B Mahol
cfe8a89b00 avfilter/vf_zoompan: support planar rgb pixel formats
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-06-12 17:15:20 +00:00
Vittorio Giovara
3b73d5c942 fft-test: Use the float fabs() version
Fixes clang warning "absolute value function 'fabsf' given an argument
of type 'double' but has parameter of type 'float' which may cause
truncation of value [-Wabsolute-value]".
2015-06-12 17:15:18 +01:00
Vittorio Giovara
2d5176fad1 on2avc: Use the integer abs() version
Fixes clang warning "floating point absolute value function 'fabsf'
when argument is of integer type [-Wabsolute-value]".
2015-06-12 17:02:49 +01:00
Vittorio Giovara
a7ac1a7b94 flv: Name an enum and use its type 2015-06-12 17:02:49 +01:00
Vittorio Giovara
30dfc1dad4 cws2fws: Close file handles on error
Reported-By: infer
2015-06-12 17:02:49 +01:00
Vittorio Giovara
a9b2a51178 avconv_opt: Check localtime() return value
Reported-By: infer
2015-06-12 17:02:48 +01:00
Vittorio Giovara
8a78ae2d21 segment: Check open_null_ctx() return value
Reported-By: infer
2015-06-12 17:02:48 +01:00
Vittorio Giovara
b7a4127a45 h264_qpel: Use the correct header 2015-06-12 17:02:48 +01:00
Michael Niedermayer
5e87080f2c h264_weight: Fix SSSE3 biweight code with weights of 128
CC: libav-stable@libav.org
Sample-Id: test_bref.mp4

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-06-12 17:02:48 +01:00
Michael Niedermayer
971b377960 avcodec/jpeg2000dec: Reduce verbosity of get_plt()
The existence of such element does not represent an error

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-12 16:48:57 +02:00
Michael Niedermayer
5b2f9790e6 avcodec/jpeg2000dec: Fallback to yuv if no matching xyz format exists
Fixes Ticket4471

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-12 16:44:11 +02:00
Michael Niedermayer
eaa8685033 avcodec/jpeg2000dec: Do not abort if prc is outside limits
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-12 16:30:50 +02:00
Michael Niedermayer
8e91d9652e ffmpeg_opt: Check for localtime() failure
Found-by: Daemon404
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-12 15:36:20 +02:00
Michael Niedermayer
80b5a1e2ee Mark vectors as NAN instead of dereferencing NULL pointers on malloc failure
Found-by: Daemon404
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-12 15:06:32 +02:00
Michael Niedermayer
ae0148ff60 swscale: Assert that pixel format descriptor is not NULL
This may help static analyzers, the pixel format is checked
during initialization

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-12 14:47:37 +02:00
Michael Niedermayer
3dea13e710 avcodec/jpeg2000dec: Assert that pixel format descriptor is not NULL
We only look up pixel formats from a fixed list so none should ever
fail to be found

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-12 14:33:53 +02:00
Michael Niedermayer
d59a033a69 avformat/mpegts: recognizes and export private streams
Based on patch by Wolfgang Lorenz <wl-chmw@gmx.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-12 13:59:00 +02:00
Michael Niedermayer
04f0002291 configure: Disable VSX on unspecified / generic CPUs
Fixes fate tests on PPC64be

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-12 13:37:04 +02:00
Luca Barbato
64a2e84416 eamad: Use the correct headers
Untangle eamad from the mpeg12.h header and speed up rebuilding.
2015-06-12 12:29:46 +01:00
Luca Barbato
8606e881b0 mpeg12: Move the vlc bits to a stand alone file 2015-06-12 12:29:46 +01:00
Vittorio Giovara
f1fa1eed2a mpegvideo: Expand macro
Having this macro in an header only facilitates the use of such header.
The code increase is minimal and files have one less dependency
on mpegvideo.h.
2015-06-12 12:29:46 +01:00
Vittorio Giovara
e7af52a68d mpegvideo: rv10: Move function declaration to a separate header 2015-06-12 12:26:54 +01:00
Vittorio Giovara
e3d0f49abb mpegvideo: h263: Move all tables to a single file 2015-06-12 12:26:04 +01:00
Vittorio Giovara
8b5007a31b mpegvideo: Move ER functions to a separate file 2015-06-12 11:57:26 +01:00
Michael Niedermayer
e7adb02d3b avcodec/jpeg2000dec: Do not hardcode tile part usage
Fixes part of Ticket 4605

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-12 04:51:37 +02:00
Michael Niedermayer
1b3fbe41c5 avcodec/jpeg2000dec: Do not print a warning for RLCP
It seems to be working now

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-12 04:51:30 +02:00
Michael Niedermayer
4af9eb4f75 avcodec/jpeg2000dec: Remove unused variable and argument
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-12 03:33:31 +02:00
Michael Niedermayer
dc73c7adc0 avcodec/jpeg2000dec: Fix Selective arithmetic coding bypass and Multiple codeword segments
These 2 are highly related so they are in the same commit
Fixes part of Ticket4605
Fixes p0_04.j2k

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-12 03:12:54 +02:00
Michael Niedermayer
eea92133a1 avcodec/mqcdec: Support raw bypass and non reseting init
Some broken code that used the old mqc is removed

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-12 03:02:09 +02:00
Michael Niedermayer
b395fd3de7 avcodec/jpeg2000dec: add some sanity checking on newpasses
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-12 02:02:38 +02:00
Michael Niedermayer
5ccca4eb8e avcodec/jpeg2000dec: Add some additional checking on lengthinc
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-12 01:13:55 +02:00
Michael Niedermayer
2f1dd4a3d1 avcodec/jpeg2000dec: Print warning for "Selective arithmetic coding bypass"
This is implemented but i suspect does not work correctly as no file using this
seems to decode correctly.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-11 22:59:07 +02:00
Michael Niedermayer
9c8939216b avcodec/jpeg2000dec: Implement progression order RLCP
This works with one of 2 RLCP samples i have, the other appears to also
use selective arithemtic coding bypass which may or may not be the reason why it does
not work

Sample: p0_16.j2k

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-11 21:38:10 +02:00
Shivraj Patil
fb92f3ecb4 avcodec/mips: MSA (MIPS-SIMD-Arch) optimizations for AVC idct functions
This patch adds MSA (MIPS-SIMD-Arch) optimizations for AVC idct functions in new file h264idct_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-11 17:10:45 +02:00
Shivraj Patil
1d70b6fe1d avcodec/mips: MSA (MIPS-SIMD-Arch) optimizations for AVC intra prediction functions
This patch adds MSA (MIPS-SIMD-Arch) optimizations for AVC intra prediction functions in new file h264pred_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-11 17:10:41 +02:00
Michael Niedermayer
daf1158d77 avutil/softfloat: Move av_sf2double() to header
It was not intended to be a static private function

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-11 16:16:38 +02:00
Michael Niedermayer
54f685a0ee avutil/softfloat: properly separate testcode
This matches how other self tests are implemented

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-11 16:12:24 +02:00
Michael Niedermayer
4e640f0560 avformat/avio: move short seek threshold to the context
This allows us to adjust it internally.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-11 13:42:06 +02:00
Michael Niedermayer
70af8a5efb avformat/aiffdec: avoid double and ldexp()
There is no support for non integer sample rates, using doubles/floats currently could
only lead to rounding differences between platforms

Previous version Reviewed-by: Mark Harris <mark.hsj@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-11 13:09:46 +02:00
Shivraj Patil
e4fb8816f9 avcodec/mips: Add 'const' to static arrays in HEVC MSA code
Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-11 12:24:48 +02:00
Shivraj Patil
b87dc70c65 avcodec/mips: MSA (MIPS-SIMD-Arch) optimizations for AVC chroma mc functions
s patch adds MSA (MIPS-SIMD-Arch) optimizations for AVC chroma mc functions in new file h264chroma_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-11 12:24:02 +02:00
James Zern
fd004e10d3 libvpxenc: add overshoot-pct option
balances the presence of undershoot-pct

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Zern <jzern@google.com>
2015-06-10 21:01:32 -07:00
James Zern
2c70436e69 libvpxenc: add undershoot-pct option
replaces deprecated rc_buffer_aggressivity

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Zern <jzern@google.com>
2015-06-10 21:01:20 -07:00
Michael Niedermayer
c2163f7cc7 avcodec/pcm-dvd: Fix debug == FF_DEBUG_PICT_INFO
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-11 04:53:37 +02:00
Deliang Fu
6e1f8780c8 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>
2015-06-11 02:31:53 +02:00
Michael Niedermayer
8ddc415515 avdevice/openal-dec: Make al_format_info const
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-11 00:48:41 +02:00
Michael Niedermayer
9e40bd50e1 avformat/movenc: Make static packed_size, const static
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-11 00:48:41 +02:00
Michael Niedermayer
261b715593 avcodec/mpeg4videodec: Mark static table as const
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-11 00:48:41 +02:00
Michael Niedermayer
c465254fbf avformat/mpegts: Do not ignore registration descriptors when probing is enabled
This is required for the (not yet in git) private stream detection/export,
no other testcase known

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-10 23:50:46 +02:00
Lou Logan
dc52e6200d doc/ffmpeg: remove tips
Ancient and misleading.

Signed-off-by: Lou Logan <lou@lrcd.com>
2015-06-10 13:08:48 -08:00
Michael Niedermayer
11f86ec204 Merge commit 'c0e6b8cab874db97b6818007bc86507c8d213083'
* commit 'c0e6b8cab874db97b6818007bc86507c8d213083':
  mpegvideo: Mark one function as static

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-10 21:07:59 +02:00
Michael Niedermayer
21d8e2c0b5 Merge commit 'd1dd0d404c085f4fce7b8358b4aea677761c5d88'
* commit 'd1dd0d404c085f4fce7b8358b4aea677761c5d88':
  mpegvideo: Move block permutation function where is used

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-10 20:58:32 +02:00
Michael Niedermayer
d784d6b7ed Merge commit 'c6aa0554b0c3e31fec4580b68ea85b66966cd381'
* commit 'c6aa0554b0c3e31fec4580b68ea85b66966cd381':
  mpegvideo: Drop release_unused_pictures() function

Conflicts:
	libavcodec/mpegvideo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-10 20:50:36 +02:00
Michael Niedermayer
88679aeb08 Merge commit '7061bf0925a7d6c5899bbe710b2b8cdae9005274'
* commit '7061bf0925a7d6c5899bbe710b2b8cdae9005274':
  mpegvideo: Move Picture-related functions to a separate file

Conflicts:
	libavcodec/mpegvideo.c
	libavcodec/mpegvideo.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-10 20:41:36 +02:00
Michael Niedermayer
049161fb7c Merge commit '529c05698e88b057f0bea61e0d85f2b42925b5ea'
* commit '529c05698e88b057f0bea61e0d85f2b42925b5ea':
  movenc: fixes a questionable valgrind uninitialized value warning

See: 3c5c6870a7ffa4997928caddb0802c7a1e5fcfeb
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-10 20:19:19 +02:00
Stephan Holljes
de3a7ef204 lavf/http: Correctly terminate session with HTTP POST client.
Send a footer to correctly close client sockets.
This fixes network errors in client applications.

Signed-off-by: Stephan Holljes <klaxa1337@googlemail.com>
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-10 18:17:28 +02:00
Michael Niedermayer
63276fa9c1 avcodec/mips: remove ;;
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-10 16:23:22 +02:00
Igor Derzhavin
203f9c8ff0 libavformat/flvdec.c: don't build index_entries for input stream if AVIOContext is not seekable
Signed-off-by: Igor Derzhavin <igor.derzhavin@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-10 16:22:11 +02:00
Vittorio Giovara
c0e6b8cab8 mpegvideo: Mark one function as static 2015-06-10 14:06:44 +01:00
Vittorio Giovara
d1dd0d404c mpegvideo: Move block permutation function where is used
Mark it as static.
2015-06-10 14:06:23 +01:00
Vittorio Giovara
c6aa0554b0 mpegvideo: Drop release_unused_pictures() function
It is only used in one place, and it is small enough that it might be
called directly.
2015-06-10 14:05:53 +01:00
Vittorio Giovara
7061bf0925 mpegvideo: Move Picture-related functions to a separate file 2015-06-10 14:05:32 +01:00
Janne Grunau
529c05698e movenc: fixes a questionable valgrind uninitialized value warning
display_matrix_size is only initialized when av_stream_get_side_data()
returns a side data pointer. The code is safe since the only effect this
has is setting the display_matrix pointer to NULL which it was already
anyway.
2015-06-10 14:32:11 +02:00
Shivraj Patil
d6d98237ed avcodec/mips: MSA (MIPS-SIMD-Arch) optimizations for HEVC intra prediction functions
This patch adds MSA (MIPS-SIMD-Arch) optimizations for HEVC intra predition functions in new file hevcpred_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-10 13:53:03 +02:00
Shivraj Patil
271195f85b avcodec/mips: MSA (MIPS-SIMD-Arch) optimizations for HEVC loop filter and sao functions
This patch adds MSA (MIPS-SIMD-Arch) optimizations for HEVC loop filter and sao functions in new file hevc_lpf_sao_msa.c
Adds new generic macros (needed for this patch) in libavutil/mips/generic_macros_msa.h

In this patch, in comparision with previous patch, duplicated c functions are removed.

Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-10 13:14:50 +02:00
Andreas Cadhalpun
05c57ba2f4 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>
2015-06-10 12:21:04 +02:00
Michael Niedermayer
aef0e0f009 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>
2015-06-10 11:37:48 +02:00
Michael Niedermayer
b58a3c8975 avcodec/jpeg2000dec: Print the correct variable in the component error message
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-10 04:50:40 +02:00
Michael Niedermayer
81471d8246 avcodec/jpeg2000dec: increase tile_parts to 6
Fixes Ticket4602

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-10 04:50:14 +02:00
Michael Niedermayer
213f2da46a avcodec/jpeg2000dec: Fix shift for RGB(A)48/64
Found-by: carl
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-10 04:19:38 +02:00
Michael Niedermayer
913685f552 avdevice/lavfi: do not rescale AV_NOPTS_VALUE in lavfi_read_packet()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-10 00:56:02 +02:00
Michael Niedermayer
58142a27ea MAINTAINERS: add 2.7
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-09 23:55:19 +02:00
4315 changed files with 315011 additions and 82228 deletions

68
.gitignore vendored
View File

@ -1,5 +1,6 @@
*.a
*.o
*.o.*
*.d
*.def
*.dll
@ -17,9 +18,9 @@
*.so.*
*.swp
*.ver
*-example
*-test
*_g
\#*
.\#*
/.config
/.version
/ffmpeg
@ -28,64 +29,7 @@
/ffserver
/config.*
/coverage.info
/doc/*.1
/doc/*.3
/doc/*.html
/doc/*.pod
/doc/config.texi
/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
/doc/examples/extract_mvs
/doc/examples/filter_audio
/doc/examples/filtering_audio
/doc/examples/filtering_video
/doc/examples/metadata
/doc/examples/muxing
/doc/examples/pc-uninstalled
/doc/examples/remuxing
/doc/examples/resampling_audio
/doc/examples/scaling_video
/doc/examples/transcode_aac
/doc/examples/transcoding
/doc/fate.txt
/doc/print_options
/avversion.h
/lcov/
/libavcodec/*_tablegen
/libavcodec/*_tables.c
/libavcodec/*_tables.h
/libavutil/avconfig.h
/libavutil/ffversion.h
/tests/audiogen
/tests/base64
/tests/data/
/tests/pixfmts.mak
/tests/rotozoom
/tests/test_copy.ffmeta
/tests/tiny_psnr
/tests/tiny_ssim
/tests/videogen
/tests/vsynth1/
/tools/aviocat
/tools/ffbisect
/tools/bisect.need
/tools/crypto_bench
/tools/cws2fws
/tools/fourcc2pixfmt
/tools/ffescape
/tools/ffeval
/tools/ffhash
/tools/graph2dot
/tools/ismindex
/tools/pktdumper
/tools/probetest
/tools/qt-faststart
/tools/sidxindex
/tools/trasher
/tools/seek_print
/tools/uncoded_frame
/tools/zmqsend
/src
/mapfile

26
.travis.yml Normal file
View File

@ -0,0 +1,26 @@
language: c
sudo: false
os:
- linux
- osx
addons:
apt:
packages:
- yasm
- diffutils
compiler:
- clang
- gcc
cache:
directories:
- ffmpeg-samples
before_install:
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew update --all; fi
install:
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew install yasm; fi
script:
- mkdir -p ffmpeg-samples
- ./configure --samples=ffmpeg-samples --cc=$CC
- make -j 8
- make fate-rsync
- make check -j 8

177
Changelog
View File

@ -2,6 +2,175 @@ Entries are sorted chronologically from oldest to youngest within each release,
releases are sorted from youngest to oldest.
version <next>:
- libopenmpt demuxer
- tee protocol
- Changed metadata print option to accept general urls
- Alias muxer for Ogg Video (.ogv)
- VP8 in Ogg muxing
- curves filter doesn't automatically insert points at x=0 and x=1 anymore
- 16-bit support in curves filter
- 16-bit support in selectivecolor filter
- OpenH264 decoder wrapper
- MediaCodec hwaccel
version 3.1:
- DXVA2-accelerated HEVC Main10 decoding
- fieldhint filter
- loop video filter and aloop audio filter
- Bob Weaver deinterlacing filter
- firequalizer filter
- datascope filter
- bench and abench filters
- ciescope filter
- protocol blacklisting API
- MediaCodec H264 decoding
- VC-2 HQ RTP payload format (draft v1) depacketizer and packetizer
- VP9 RTP payload format (draft v2) packetizer
- AudioToolbox audio decoders
- AudioToolbox audio encoders
- coreimage filter (GPU based image filtering on OSX)
- libdcadec removed
- bitstream filter for extracting DTS core
- ADPCM IMA DAT4 decoder
- musx demuxer
- aix demuxer
- remap filter
- hash and framehash muxers
- colorspace filter
- hdcd filter
- readvitc filter
- VAAPI-accelerated format conversion and scaling
- libnpp/CUDA-accelerated format conversion and scaling
- Duck TrueMotion 2.0 Real Time decoder
- Wideband Single-bit Data (WSD) demuxer
- VAAPI-accelerated H.264/HEVC/MJPEG encoding
- DTS Express (LBR) decoder
- Generic OpenMAX IL encoder with support for Raspberry Pi
- IFF ANIM demuxer & decoder
- Direct Stream Transfer (DST) decoder
- loudnorm filter
- MTAF demuxer and decoder
- MagicYUV decoder
- OpenExr improvements (tile data and B44/B44A support)
- BitJazz SheerVideo decoder
- CUDA CUVID H264/HEVC decoder
- 10-bit depth support in native utvideo decoder
- libutvideo wrapper removed
- YUY2 Lossless Codec decoder
- VideoToolbox H.264 encoder
version 3.0:
- Common Encryption (CENC) MP4 encoding and decoding support
- DXV decoding
- extrastereo filter
- ocr filter
- alimiter filter
- stereowiden filter
- stereotools filter
- rubberband filter
- tremolo filter
- agate filter
- chromakey filter
- maskedmerge filter
- Screenpresso SPV1 decoding
- chromaprint fingerprinting muxer
- ffplay dynamic volume control
- displace filter
- selectivecolor filter
- extensive native AAC encoder improvements and removal of experimental flag
- ADPCM PSX decoder
- 3dostr, dcstr, fsb, genh, vag, xvag, ads, msf, svag & vpk demuxer
- zscale filter
- wve demuxer
- zero-copy Intel QSV transcoding in ffmpeg
- shuffleframes filter
- SDX2 DPCM decoder
- vibrato filter
- innoHeim/Rsupport Screen Capture Codec decoder
- ADPCM AICA decoder
- Interplay ACM demuxer and audio decoder
- XMA1 & XMA2 decoder
- realtime filter
- anoisesrc audio filter source
- IVR demuxer
- compensationdelay filter
- acompressor filter
- support encoding 16-bit RLE SGI images
- apulsator filter
- sidechaingate audio filter
- mipsdspr1 option has been renamed to mipsdsp
- aemphasis filter
- mips32r5 option has been removed
- mips64r6 option has been removed
- DXVA2-accelerated VP9 decoding
- SOFAlizer: virtual binaural acoustics filter
- VAAPI VP9 hwaccel
- audio high-order multiband parametric equalizer
- automatic bitstream filtering
- showspectrumpic filter
- libstagefright support removed
- spectrumsynth filter
- ahistogram filter
- only seek with the right mouse button in ffplay
- toggle full screen when double-clicking with the left mouse button in ffplay
- afftfilt filter
- convolution filter
- libquvi support removed
- support for dvaudio in wav and avi
- libaacplus and libvo-aacenc support removed
- Cineform HD decoder
- new DCA decoder with full support for DTS-HD extensions
- significant performance improvements in Windows Television (WTV) demuxer
- nnedi deinterlacer
- streamselect video and astreamselect audio filter
- swaprect filter
- metadata video and ametadata audio filter
- SMPTE VC-2 HQ profile support for the Dirac decoder
- SMPTE VC-2 native encoder supporting the HQ profile
version 2.8:
- colorkey video filter
- BFSTM/BCSTM demuxer
- little-endian ADPCM_THP decoder
- Hap decoder and encoder
- DirectDraw Surface image/texture decoder
- ssim filter
- optional new ASF demuxer
- showvolume filter
- Many improvements to the JPEG 2000 decoder
- Go2Meeting decoding support
- adrawgraph audio and drawgraph video filter
- removegrain video filter
- Intel QSV-accelerated MPEG-2 video and HEVC encoding
- Intel QSV-accelerated MPEG-2 video and HEVC decoding
- Intel QSV-accelerated VC-1 video decoding
- libkvazaar HEVC encoder
- erosion, dilation, deflate and inflate video filters
- Dynamic Audio Normalizer as dynaudnorm filter
- Reverse video and areverse audio filter
- Random filter
- deband filter
- AAC fixed-point decoding
- sidechaincompress audio filter
- bitstream filter for converting HEVC from MP4 to Annex B
- acrossfade audio filter
- allyuv and allrgb video sources
- atadenoise video filter
- OS X VideoToolbox support
- aphasemeter filter
- showfreqs filter
- vectorscope filter
- waveform filter
- hstack and vstack filter
- Support DNx100 (1440x1080@8)
- VAAPI hevc hwaccel
- VDPAU hevc hwaccel
- framerate filter
- Switched default encoders for webm to VP9 and Opus
- Removed experimental flag from the JPEG 2000 encoder
version 2.7:
@ -573,7 +742,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
@ -762,8 +931,8 @@ version 0.8:
- showinfo filter added
- SMPTE 302M AES3 audio decoder
- Apple Core Audio Format muxer
- 9bit and 10bit per sample support in the H.264 decoder
- 9bit and 10bit FFV1 encoding / decoding
- 9 bits and 10 bits per sample support in the H.264 decoder
- 9 bits and 10 bits FFV1 encoding / decoding
- split filter added
- select filter added
- sdl output device added
@ -1056,7 +1225,7 @@ version 0.4.9-pre1:
- rate distorted optimal lambda->qp support
- AAC encoding with libfaac
- Sunplus JPEG codec (SP5X) support
- use Lagrange multipler instead of QP for ratecontrol
- use Lagrange multiplier instead of QP for ratecontrol
- Theora/VP3 decoding support
- XA and ADX ADPCM codecs
- export MPEG-2 active display area / pan scan

View File

@ -1,4 +1,4 @@
#FFmpeg:
# License
Most files in FFmpeg are under the GNU Lesser General Public License version 2.1
or later (LGPL v2.1+). Read the file `COPYING.LGPLv2.1` for details. Some other
@ -13,15 +13,18 @@ configure to activate them. In this case, FFmpeg's license changes to GPL v2+.
Specifically, the GPL parts of FFmpeg are:
- libpostproc
- optional x86 optimizations in the files
- `libavcodec/x86/flac_dsp_gpl.asm`
- `libavcodec/x86/idct_mmx.c`
- libutvideo encoding/decoding wrappers in
`libavcodec/libutvideo*.cpp`
- optional x86 optimization in the files
- `libavcodec/x86/flac_dsp_gpl.asm`
- `libavcodec/x86/idct_mmx.c`
- `libavfilter/x86/vf_removegrain.asm`
- the X11 grabber in `libavdevice/x11grab.c`
- the swresample test app in
`libswresample/swresample-test.c`
- the `texi2pod.pl` tool
- the following building and testing tools
- `compat/solaris/make_sunver.pl`
- `doc/t2h.pm`
- `doc/texi2pod.pl`
- `libswresample/swresample-test.c`
- `tests/checkasm/*`
- `tests/tiny_ssim.c`
- the following filters in libavfilter:
- `f_ebur128.c`
- `vf_blackframe.c`
@ -46,9 +49,9 @@ Specifically, the GPL parts of FFmpeg are:
- `vf_pp.c`
- `vf_pp7.c`
- `vf_pullup.c`
- `vf_repeatfields.c`
- `vf_sab.c`
- `vf_smartblur.c`
- `vf_repeatfields.c`
- `vf_spp.c`
- `vf_stereo3d.c`
- `vf_super2xsai.c`
@ -72,19 +75,17 @@ There are a handful of files under other licensing terms, namely:
* `tests/reference.pnm` is under the expat license.
external libraries
==================
## External libraries
FFmpeg can be combined with a number of external libraries, which sometimes
affect the licensing of binaries resulting from the combination.
compatible libraries
--------------------
### Compatible libraries
The following libraries are under GPL:
- frei0r
- libcdio
- libutvideo
- librubberband
- libvidstab
- libx264
- libx265
@ -99,14 +100,25 @@ license is incompatible with the LGPL v2.1 and the GPL v2, but not with
version 3 of those licenses. So to combine these libraries with FFmpeg, the
license version needs to be upgraded by passing `--enable-version3` to configure.
incompatible libraries
----------------------
### Incompatible libraries
The Fraunhofer AAC library, FAAC and aacplus are under licenses which
are incompatible with the GPLv2 and v3. We do not know for certain if their
licenses are compatible with the LGPL.
If you wish to enable these libraries, pass `--enable-nonfree` to configure.
But note that if you enable any of these libraries the resulting binary will
be under a complex license mix that is more restrictive than the LGPL and that
may result in additional obligations. It is possible that these
restrictions cause the resulting binary to be unredistributeable.
There are certain libraries you can combine with FFmpeg whose licenses are not
compatible with the GPL and/or the LGPL. If you wish to enable these
libraries, even in circumstances that their license may be incompatible, pass
`--enable-nonfree` to configure. But note that if you enable any of these
libraries the resulting binary will be under a complex license mix that is
more restrictive than the LGPL and that may result in additional obligations.
It is possible that these restrictions cause the resulting binary to be
unredistributable.
The Fraunhofer FDK AAC and OpenSSL libraries are under licenses which are
incompatible with the GPLv2 and v3. To the best of our knowledge, they are
compatible with the LGPL.
The FAAC library is incompatible with all versions of GPL and LGPL.
The NVENC library, while its header file is licensed under the compatible MIT
license, requires a proprietary binary blob at run time, and is deemed to be
incompatible with the GPL. We are not certain if it is compatible with the
LGPL, but we require `--enable-nonfree` even with LGPL configurations in case
it is not.

View File

@ -14,7 +14,6 @@ patches and related discussions.
Project Leader
==============
Michael Niedermayer
final design decisions
@ -43,9 +42,8 @@ QuickTime faststart:
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, Lou Logan
documentation Stefano Sabatini, Mike Melanson, Timothy Gu, Lou Logan
project server Árpád Gereöffy, Michael Niedermayer, Reimar Doeffinger, Alexander Strasser, Nikolay Aleksandrov
presets Robert Swain
metadata subsystem Aurelien Jacobs
release management Michael Niedermayer
@ -57,7 +55,7 @@ Communication
website Deby Barbara Lepage
fate.ffmpeg.org Timothy Gu
Trac bug tracker Alexander Strasser, Michael Niedermayer, Carl Eugen Hoyos, Lou Logan
mailing lists Michael Niedermayer, Baptiste Coudurier, Lou Logan
mailing lists Baptiste Coudurier, Lou Logan
Google+ Paul B Mahol, Michael Niedermayer, Alexander Strasser
Twitter Lou Logan, Reynaldo H. Verdejo Pinochet
Launchpad Timothy Gu
@ -72,6 +70,7 @@ Internal Interfaces:
libavutil/common.h Michael Niedermayer
Other:
aes_ctr.c, aes_ctr.h Eran Kornblau
bprint Nicolas George
bswap.h
des Reimar Doeffinger
@ -89,7 +88,6 @@ Other:
rational.c, rational.h Michael Niedermayer
rc4 Reimar Doeffinger
ripemd.c, ripemd.h James Almer
timecode Clément Bœsch
libavcodec
@ -117,8 +115,6 @@ Generic Parts:
faandct.c, faandct.h Michael Niedermayer
Golomb coding:
golomb.c, golomb.h Michael Niedermayer
LPC:
lpc.c, lpc.h Justin Ruggles
motion estimation:
motion* Michael Niedermayer
rate control:
@ -138,45 +134,36 @@ Codecs:
4xm.c Michael Niedermayer
8bps.c Roberto Togni
8svx.c Jaikrishnan Menon
aasc.c Kostya Shishkov
ac3* Justin Ruggles
aacenc*, aaccoder.c Rostislav Pehlivanov
alacenc.c Jaikrishnan Menon
alsdec.c Thilo Borgmann
apedec.c Kostya Shishkov
ass* Aurelien Jacobs
asv* Michael Niedermayer
atrac3* Benjamin Larsson
atrac3plus* Maxim Poliakovski
bgmc.c, bgmc.h Thilo Borgmann
bink.c Kostya Shishkov
binkaudio.c Peter Ross
bmp.c Mans Rullgard, Kostya Shishkov
cavs* Stefan Gehrer
cdxl.c Paul B Mahol
celp_filters.* Vitor Sessak
cinepak.c Roberto Togni
cinepakenc.c Rl / Aetey G.T. AB
ccaption_dec.c Anshul Maheshwari
ccaption_dec.c Anshul Maheshwari, Aman Gupta
cljr Alex Beregszaszi
cllc.c Derek Buitenhuis
cook.c, cookdata.h Benjamin Larsson
cpia.c Stephan Hilb
crystalhd.c Philip Langdale
cscd.c Reimar Doeffinger
dca.c Kostya Shishkov, Benjamin Larsson
cuvid.c Timo Rothenpieler
dirac* Rostislav Pehlivanov
dnxhd* Baptiste Coudurier
dpcm.c Mike Melanson
dss_sp.c Oleksij Rempel, Michael Niedermayer
dss_sp.c Oleksij Rempel
dv.c Roman Shaposhnik
dvbsubdec.c Anshul Maheshwari
dxa.c Kostya Shishkov
eacmv*, eaidct*, eat* Peter Ross
evrc* Paul B Mahol
exif.c, exif.h Thilo Borgmann
ffv1* Michael Niedermayer
ffwavesynth.c Nicolas George
fic.c Derek Buitenhuis
flac* Justin Ruggles
flashsv* Benjamin Larsson
flicvideo.c Mike Melanson
g722.c Martin Storsjo
g726.c Roman Shaposhnik
@ -184,59 +171,47 @@ Codecs:
h261* Michael Niedermayer
h263* Michael Niedermayer
h264* Loren Merritt, Michael Niedermayer
hap* Tom Butterworth
huffyuv* Michael Niedermayer, Christophe Gisquet
idcinvideo.c Mike Melanson
imc* Benjamin Larsson
indeo2* Kostya Shishkov
indeo5* Kostya Shishkov
interplayvideo.c Mike Melanson
ivi* Kostya Shishkov
jacosub* Clément Bœsch
jni*, ffjni* Matthieu Bouron
jpeg2000* Nicolas Bertrand
jpeg_ls.c Kostya Shishkov
jvdec.c Peter Ross
kmvc.c Kostya Shishkov
lcl*.c Roberto Togni, Reimar Doeffinger
libcelt_dec.c Nicolas George
libdirac* David Conrad
libgsm.c Michel Bardiaux
libkvazaar.c Arttu Ylä-Outinen
libopenjpeg.c Jaikrishnan Menon
libopenjpegenc.c Michael Bradshaw
libschroedinger* David Conrad
libspeexdec.c Justin Ruggles
libtheoraenc.c David Conrad
libutvideo* Derek Buitenhuis
libvorbis.c David Conrad
libvpx* James Zern
libx264.c Mans Rullgard, Jason Garrett-Glaser
libx265.c Derek Buitenhuis
libxavs.c Stefan Gehrer
libzvbi-teletextdec.c Marton Balint
loco.c Kostya Shishkov
lzo.h, lzo.c Reimar Doeffinger
mdec.c Michael Niedermayer
mimic.c Ramiro Polla
mjpeg*.c Michael Niedermayer
mlp* Ramiro Polla
mmvideo.c Peter Ross
mpc* Kostya Shishkov
mpeg12.c, mpeg12data.h Michael Niedermayer
mpegvideo.c, mpegvideo.h Michael Niedermayer
mqc* Nicolas Bertrand
msmpeg4.c, msmpeg4data.h Michael Niedermayer
msrle.c Mike Melanson
msvideo1.c Mike Melanson
nellymoserdec.c Benjamin Larsson
nuv.c Reimar Doeffinger
nvenc.c Timo Rothenpieler
nvenc* Timo Rothenpieler
paf.* Paul B Mahol
pcx.c Ivo van Poorten
pgssubdec.c Reimar Doeffinger
ptx.c Ivo van Poorten
qcelp* Reynaldo H. Verdejo Pinochet
qdm2.c, qdm2data.h Roberto Togni, Benjamin Larsson
qdrw.c Kostya Shishkov
qpeg.c Kostya Shishkov
qdm2.c, qdm2data.h Roberto Togni
qsv* Ivan Uskov
qtrle.c Mike Melanson
ra144.c, ra144.h, ra288.c, ra288.h Roberto Togni
resample2.c Michael Niedermayer
@ -244,10 +219,8 @@ Codecs:
rpza.c Roberto Togni
rtjpeg.c, rtjpeg.h Reimar Doeffinger
rv10.c Michael Niedermayer
rv3* Kostya Shishkov
rv4* Kostya Shishkov, Christophe Gisquet
rv4* Christophe Gisquet
s3tc* Ivo van Poorten
smacker.c Kostya Shishkov
smc.c Mike Melanson
smvjpegdec.c Ash Hughes
snow* Michael Niedermayer, Loren Merritt
@ -256,53 +229,41 @@ Codecs:
sunrast.c Ivo van Poorten
svq3.c Michael Niedermayer
tak* Paul B Mahol
targa.c Kostya Shishkov
tiff.c Kostya Shishkov
truemotion1* Mike Melanson
truemotion2* Kostya Shishkov
truespeech.c Kostya Shishkov
tscc.c Kostya Shishkov
tta.c Alex Beregszaszi, Jaikrishnan Menon
ttaenc.c Paul B Mahol
txd.c Ivo van Poorten
ulti* Kostya Shishkov
v410*.c Derek Buitenhuis
vb.c Kostya Shishkov
vble.c Derek Buitenhuis
vc1* Kostya Shishkov, Christophe Gisquet
vc1* Christophe Gisquet
vc2* Rostislav Pehlivanov
vcr1.c Michael Niedermayer
vda_h264_dec.c Xidorn Quan
videotoolboxenc.c Rick Kern
vima.c Paul B Mahol
vmnc.c Kostya Shishkov
vorbisdec.c Denes Balatoni, David Conrad
vorbisenc.c Oded Shimon
vp3* Mike Melanson
vp5 Aurelien Jacobs
vp6 Aurelien Jacobs
vp8 David Conrad, Jason Garrett-Glaser, Ronald Bultje
vp9 Ronald Bultje, Clément Bœsch
vp8 David Conrad, Ronald Bultje
vp9 Ronald Bultje
vqavideo.c Mike Melanson
wavpack.c Kostya Shishkov
wmaprodec.c Sascha Sommer
wmavoice.c Ronald S. Bultje
wmv2.c Michael Niedermayer
wnv1.c Kostya Shishkov
xan.c Mike Melanson
xbm* Paul B Mahol
xface Stefano Sabatini
xl.c Kostya Shishkov
xvmc.c Ivan Kalvachev
xwd* Paul B Mahol
zerocodec.c Derek Buitenhuis
zmbv* Kostya Shishkov
Hardware acceleration:
crystalhd.c Philip Langdale
dxva2* Laurent Aimar
libstagefright.cpp Mohamed Naufal
dxva2* Hendrik Leppkes, Laurent Aimar
mediacodec* Matthieu Bouron
vaapi* Gwenole Beauchesne
vda* Sebastien Zwickert
vdpau* Carl Eugen Hoyos
vaapi_encode* Mark Thompson
vdpau* Philip Langdale, Carl Eugen Hoyos
videotoolbox* Rick Kern
libavdevice
@ -334,6 +295,7 @@ Generic parts:
graphdump.c Nicolas George
Filters:
f_drawgraph.c Paul B Mahol
af_adelay.c Paul B Mahol
af_aecho.c Paul B Mahol
af_afade.c Paul B Mahol
@ -341,19 +303,30 @@ Filters:
af_aphaser.c Paul B Mahol
af_aresample.c Michael Niedermayer
af_astats.c Paul B Mahol
af_astreamsync.c Nicolas George
af_atempo.c Pavel Koshevoy
af_biquads.c Paul B Mahol
af_chorus.c Paul B Mahol
af_compand.c Paul B Mahol
af_firequalizer.c Muhammad Faiz
af_hdcd.c Burt P.
af_ladspa.c Paul B Mahol
af_loudnorm.c Kyle Swanson
af_pan.c Nicolas George
af_sidechaincompress.c Paul B Mahol
af_silenceremove.c Paul B Mahol
avf_aphasemeter.c Paul B Mahol
avf_avectorscope.c Paul B Mahol
avf_showcqt.c Muhammad Faiz
vf_blend.c Paul B Mahol
vf_chromakey.c Timo Rothenpieler
vf_colorchannelmixer.c Paul B Mahol
vf_colorbalance.c Paul B Mahol
vf_colorkey.c Timo Rothenpieler
vf_colorlevels.c Paul B Mahol
vf_coreimage.m Thilo Borgmann
vf_deband.c Paul B Mahol
vf_dejudder.c Nicholas Robbins
vf_delogo.c Jean Delvare (CC <khali@linux-fr.org>)
vf_delogo.c Jean Delvare (CC <jdelvare@suse.com>)
vf_drawbox.c/drawgrid Andrey Utkin
vf_extractplanes.c Paul B Mahol
vf_histogram.c Paul B Mahol
@ -362,12 +335,17 @@ Filters:
vf_il.c Paul B Mahol
vf_lenscorrection.c Daniel Oberhoff
vf_mergeplanes.c Paul B Mahol
vf_neighbor.c Paul B Mahol
vf_psnr.c Paul B Mahol
vf_random.c Paul B Mahol
vf_readvitc.c Tobias Rapp (CC t.rapp at noa-archive dot com)
vf_scale.c Michael Niedermayer
vf_separatefields.c Paul B Mahol
vf_ssim.c Paul B Mahol
vf_stereo3d.c Paul B Mahol
vf_telecine.c Paul B Mahol
vf_yadif.c Michael Niedermayer
vf_zoompan.c Paul B Mahol
Sources:
vsrc_mandelbrot.c Michael Niedermayer
@ -380,15 +358,16 @@ Generic parts:
libavformat/avformat.h Michael Niedermayer
Utility Code:
libavformat/utils.c Michael Niedermayer
Text Subtitles Clément Bœsch
Muxers/Demuxers:
4xm.c Mike Melanson
aadec.c Vesselin Bontchev (vesselin.bontchev at yandex dot com)
adtsenc.c Robert Swain
afc.c Paul B Mahol
aiffdec.c Baptiste Coudurier, Matthieu Bouron
aiffenc.c Baptiste Coudurier, Matthieu Bouron
ape.c Kostya Shishkov
apngdec.c Benoit Fouet
ass* Aurelien Jacobs
astdec.c Paul B Mahol
@ -402,19 +381,18 @@ Muxers/Demuxers:
cdxl.c Paul B Mahol
crc.c Michael Niedermayer
daud.c Reimar Doeffinger
dss.c Oleksij Rempel, Michael Niedermayer
dss.c Oleksij Rempel
dtshddec.c Paul B Mahol
dv.c Roman Shaposhnik
dxa.c Kostya Shishkov
electronicarts.c Peter Ross
epafdec.c Paul B Mahol
ffm* Baptiste Coudurier
flac* Justin Ruggles
flic.c Mike Melanson
flvdec.c, flvenc.c Michael Niedermayer
gxf.c Reimar Doeffinger
gxfenc.c Baptiste Coudurier
hls.c Anssi Hannula
hls encryption (hlsenc.c) Christian Suloway
idcin.c Mike Melanson
idroqdec.c Mike Melanson
iff.c Jaikrishnan Menon
@ -422,10 +400,10 @@ Muxers/Demuxers:
ipmovie.c Mike Melanson
ircam* Paul B Mahol
iss.c Stefan Gehrer
jacosub* Clément Bœsch
jvdec.c Peter Ross
libmodplug.c Clément Bœsch
libnut.c Oded Shimon
libopenmpt.c Josh de Kock
lmlm4.c Ivo van Poorten
lvfdec.c Paul B Mahol
lxfdec.c Tomas Härdin
@ -437,9 +415,9 @@ Muxers/Demuxers:
mgsts.c Paul B Mahol
microdvd* Aurelien Jacobs
mm.c Peter Ross
mov.c Michael Niedermayer, Baptiste Coudurier
mov.c Baptiste Coudurier
movenc.c Baptiste Coudurier, Matthieu Bouron
mpc.c Kostya Shishkov
movenccenc.c Eran Kornblau
mpeg.c Michael Niedermayer
mpegenc.c Michael Niedermayer
mpegts.c Marton Balint
@ -455,6 +433,7 @@ Muxers/Demuxers:
oggdec.c, oggdec.h David Conrad
oggenc.c Baptiste Coudurier
oggparse*.c David Conrad
oggparsedaala* Rostislav Pehlivanov
oma.c Maxim Poliakovski
paf.c Paul B Mahol
psxstr.c Mike Melanson
@ -464,8 +443,7 @@ Muxers/Demuxers:
raw.c Michael Niedermayer
rdt.c Ronald S. Bultje
rl2.c Sascha Sommer
rmdec.c, rmenc.c Ronald S. Bultje, Kostya Shishkov
rtmp* Kostya Shishkov
rmdec.c, rmenc.c Ronald S. Bultje
rtp.c, rtpenc.c Martin Storsjo
rtpdec_ac3.* Gilles Chanteperdrix
rtpdec_dv.* Thomas Volkert
@ -473,15 +451,13 @@ Muxers/Demuxers:
rtpdec_hevc.*, rtpenc_hevc.* Thomas Volkert
rtpdec_mpa_robust.* Gilles Chanteperdrix
rtpdec_asf.* Ronald S. Bultje
rtpdec_vc2hq.*, rtpenc_vc2hq.* Thomas Volkert
rtpdec_vp9.c Thomas Volkert
rtpenc_mpv.*, rtpenc_aac.* Martin Storsjo
rtsp.c Luca Barbato
sbgdec.c Nicolas George
sdp.c Martin Storsjo
segafilm.c Mike Melanson
segment.c Stefano Sabatini
siff.c Kostya Shishkov
smacker.c Kostya Shishkov
smjpeg* Paul B Mahol
spdif* Anssi Hannula
srtdec.c Aurelien Jacobs
@ -496,10 +472,10 @@ Muxers/Demuxers:
webvtt* Matthew J Heaney
westwood.c Mike Melanson
wtv.c Peter Ross
wv.c Kostya Shishkov
wvenc.c Paul B Mahol
Protocols:
async.c Zhang Rui
bluray.c Petri Hintukainen
ftp.c Lukasz Marek
http.c Ronald S. Bultje
@ -526,29 +502,26 @@ Resamplers:
Operating systems / CPU architectures
=====================================
Alpha Mans Rullgard, Falk Hueffner
ARM Mans Rullgard
AVR32 Mans Rullgard
MIPS Mans Rullgard, Nedeljko Babic
Alpha Falk Hueffner
MIPS Nedeljko Babic
Mac OS X / PowerPC Romain Dolbeau, Guillaume Poirier
Amiga / PowerPC Colin Ward
Linux / PowerPC Luca Barbato
Windows MinGW Alex Beregszaszi, Ramiro Polla
Windows Cygwin Victor Paesa
Windows MSVC Matthew Oliver
Windows MSVC Matthew Oliver, Hendrik Leppkes
Windows ICL Matthew Oliver
ADI/Blackfin DSP Marc Hoffman
Sparc Roman Shaposhnik
x86 Michael Niedermayer
OS/2 KO Myung-Hun
Releases
========
2.8 Michael Niedermayer
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
@ -558,7 +531,6 @@ GnuPG Fingerprints of maintainers and contributors
Alexander Strasser 1C96 78B7 83CB 8AA7 9AF5 D1EB A7D8 A57B A876 E58F
Anssi Hannula 1A92 FF42 2DD9 8D2E 8AF7 65A9 4278 C520 513D F3CB
Anton Khirnov 6D0C 6625 56F8 65D1 E5F5 814B B50A 1241 C067 07AB
Ash Hughes 694D 43D2 D180 C7C7 6421 ABD3 A641 D0B7 623D 6029
Attila Kinali 11F0 F9A6 A1D2 11F6 C745 D10C 6520 BCDD F2DF E765
Baptiste Coudurier 8D77 134D 20CC 9220 201F C5DB 0AC9 325C 5C1A BAAA
@ -566,19 +538,19 @@ Ben Littler 3EE3 3723 E560 3214 A8CD 4DEB 2CDB FCE7 768C 8D2C
Benoit Fouet B22A 4F4F 43EF 636B BB66 FCDC 0023 AE1E 2985 49C8
Clément Bœsch 52D0 3A82 D445 F194 DB8B 2B16 87EE 2CB8 F4B8 FCF9
Daniel Verkamp 78A6 07ED 782C 653E C628 B8B9 F0EB 8DD8 2F0E 21C7
Diego Biurrun 8227 1E31 B6D9 4994 7427 E220 9CAE D6CC 4757 FCC5
FFmpeg release signing key FCF9 86EA 15E6 E293 A564 4F10 B432 2F04 D676 58D8
Ganesh Ajjanagadde C96A 848E 97C3 CEA2 AB72 5CE4 45F9 6A2D 3C36 FB1B
Gwenole Beauchesne 2E63 B3A6 3E44 37E2 017D 2704 53C7 6266 B153 99C4
Jaikrishnan Menon 61A1 F09F 01C9 2D45 78E1 C862 25DC 8831 AF70 D368
Jean Delvare 7CA6 9F44 60F1 BDC4 1FD2 C858 A552 6B9B B3CD 4E6A
Justin Ruggles 3136 ECC0 C10D 6C04 5F43 CA29 FCBE CD2A 3787 1EBF
Loren Merritt ABD9 08F4 C920 3F65 D8BE 35D7 1540 DAA7 060F 56DE
Lou Logan 7D68 DC73 CBEF EABB 671A B6CF 621C 2E28 82F8 DC3A
Luca Barbato 6677 4209 213C 8843 5B67 29E7 E84C 78C2 84E9 0E34
Michael Niedermayer 9FF2 128B 147E F673 0BAD F133 611E C787 040B 0FAB
Nicolas George 24CE 01CE 9ACC 5CEB 74D8 8D9D B063 D997 36E5 4C93
Nikolay Aleksandrov 8978 1D8C FB71 588E 4B27 EAA8 C4F0 B5FC E011 13B1
Panagiotis Issaris 6571 13A3 33D9 3726 F728 AA98 F643 B12E ECF3 E029
Peter Ross A907 E02F A6E5 0CD2 34CD 20D2 6760 79C5 AC40 DD6B
Philip Langdale 5DC5 8D66 5FBA 3A43 18EC 045E F8D6 B194 6A75 682E
Reimar Doeffinger C61D 16E5 9E2C D10C 8958 38A4 0899 A2B9 06D4 D9C7
Reinhard Tartler 9300 5DC2 7E87 6C37 ED7B CA9A 9808 3544 9453 48A4
Reynaldo H. Verdejo Pinochet 6E27 CD34 170C C78E 4D4F 5F40 C18E 077F 3114 452A

View File

@ -4,6 +4,7 @@ include config.mak
vpath %.c $(SRC_PATH)
vpath %.cpp $(SRC_PATH)
vpath %.h $(SRC_PATH)
vpath %.inc $(SRC_PATH)
vpath %.m $(SRC_PATH)
vpath %.S $(SRC_PATH)
vpath %.asm $(SRC_PATH)
@ -29,12 +30,18 @@ $(foreach prog,$(AVBASENAMES),$(eval OBJS-$(prog) += cmdutils.o))
$(foreach prog,$(AVBASENAMES),$(eval OBJS-$(prog)-$(CONFIG_OPENCL) += cmdutils_opencl.o))
OBJS-ffmpeg += ffmpeg_opt.o ffmpeg_filter.o
OBJS-ffmpeg-$(HAVE_VDPAU_X11) += ffmpeg_vdpau.o
OBJS-ffmpeg-$(CONFIG_VIDEOTOOLBOX) += ffmpeg_videotoolbox.o
OBJS-ffmpeg-$(CONFIG_LIBMFX) += ffmpeg_qsv.o
OBJS-ffmpeg-$(CONFIG_VAAPI) += ffmpeg_vaapi.o
ifndef CONFIG_VIDEOTOOLBOX
OBJS-ffmpeg-$(CONFIG_VDA) += ffmpeg_videotoolbox.o
endif
OBJS-ffmpeg-$(CONFIG_CUVID) += ffmpeg_cuvid.o
OBJS-ffmpeg-$(HAVE_DXVA2_LIB) += ffmpeg_dxva2.o
OBJS-ffmpeg-$(CONFIG_VDA) += ffmpeg_vda.o
OBJS-ffmpeg-$(HAVE_VDPAU_X11) += ffmpeg_vdpau.o
OBJS-ffserver += ffserver_config.o
TESTTOOLS = audiogen videogen rotozoom tiny_psnr tiny_ssim base64
TESTTOOLS = audiogen videogen rotozoom tiny_psnr tiny_ssim base64 audiomatch
HOSTPROGS := $(TESTTOOLS:%=tests/%) doc/print_options
TOOLS = qt-faststart trasher uncoded_frame
TOOLS-$(CONFIG_ZLIB) += cws2fws
@ -54,12 +61,14 @@ FFLIBS := avutil
DATA_FILES := $(wildcard $(SRC_PATH)/presets/*.ffpreset) $(SRC_PATH)/doc/ffprobe.xsd
EXAMPLES_FILES := $(wildcard $(SRC_PATH)/doc/examples/*.c) $(SRC_PATH)/doc/examples/Makefile $(SRC_PATH)/doc/examples/README
SKIPHEADERS = cmdutils_common_opts.h compat/w32pthreads.h
SKIPHEADERS = cmdutils_common_opts.h \
compat/w32pthreads.h
include $(SRC_PATH)/common.mak
FF_EXTRALIBS := $(FFEXTRALIBS)
FF_DEP_LIBS := $(DEP_LIBS)
FF_STATIC_DEP_LIBS := $(STATIC_DEP_LIBS)
all: $(AVPROGS)
@ -80,8 +89,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 MSA-OBJS \
LOONGSON3-OBJS OBJS SLIBOBJS HOSTOBJS TESTOBJS
MIPSFPU-OBJS MIPSDSPR2-OBJS MIPSDSP-OBJS MSA-OBJS \
MMI-OBJS OBJS SLIBOBJS HOSTOBJS TESTOBJS
define RESET
$(1) :=
@ -171,11 +180,15 @@ clean::
$(RM) $(CLEANSUFFIXES)
$(RM) $(CLEANSUFFIXES:%=tools/%)
$(RM) -r coverage-html
$(RM) -rf coverage.info lcov
$(RM) -rf coverage.info coverage.info.in lcov
distclean::
$(RM) $(DISTCLEANSUFFIXES)
$(RM) config.* .config libavutil/avconfig.h .version version.h libavutil/ffversion.h libavcodec/codec_names.h
$(RM) config.* .config libavutil/avconfig.h .version mapfile avversion.h version.h libavutil/ffversion.h libavcodec/codec_names.h libavcodec/bsf_list.c libavformat/protocol_list.c
ifeq ($(SRC_LINK),src)
$(RM) src
endif
$(RM) -rf doc/examples/pc-uninstalled
config:
$(SRC_PATH)/configure $(value FFMPEG_CONFIGURATION)

View File

@ -16,12 +16,12 @@ such as audio, video, subtitles and related metadata.
## Tools
* [ffmpeg](http://ffmpeg.org/ffmpeg.html) is a command line toolbox to
* [ffmpeg](https://ffmpeg.org/ffmpeg.html) is a command line toolbox to
manipulate, convert and stream multimedia content.
* [ffplay](http://ffmpeg.org/ffplay.html) is a minimalistic multimedia player.
* [ffprobe](http://ffmpeg.org/ffprobe.html) is a simple analysis tool to inspect
* [ffplay](https://ffmpeg.org/ffplay.html) is a minimalistic multimedia player.
* [ffprobe](https://ffmpeg.org/ffprobe.html) is a simple analysis tool to inspect
multimedia content.
* [ffserver](http://ffmpeg.org/ffserver.html) is a multimedia streaming server
* [ffserver](https://ffmpeg.org/ffserver.html) is a multimedia streaming server
for live broadcasts.
* Additional small tools such as `aviocat`, `ismindex` and `qt-faststart`.
@ -29,8 +29,8 @@ such as audio, video, subtitles and related metadata.
The offline documentation is available in the **doc/** directory.
The online documentation is available in the main [website](http://ffmpeg.org)
and in the [wiki](http://trac.ffmpeg.org).
The online documentation is available in the main [website](https://ffmpeg.org)
and in the [wiki](https://trac.ffmpeg.org).
### Examples
@ -40,3 +40,10 @@ Coding examples are available in the **doc/examples** directory.
FFmpeg codebase is mainly LGPL-licensed with optional components licensed under
GPL. Please refer to the LICENSE file for detailed information.
## Contributing
Patches should be submitted to the ffmpeg-devel mailing list using
`git format-patch` or `git send-email`. Github pull requests should be
avoided because they are not part of our review process. Few developers
follow pull requests so they will likely be ignored.

View File

@ -1 +1 @@
2.6.git
3.0.git

View File

@ -5,10 +5,10 @@ OBJS-$(HAVE_VFP) += $(VFP-OBJS) $(VFP-OBJS-yes)
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_MIPSDSP) += $(MIPSDSP-OBJS) $(MIPSDSP-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_MMI) += $(MMI-OBJS) $(MMI-OBJS-yes)
OBJS-$(HAVE_ALTIVEC) += $(ALTIVEC-OBJS) $(ALTIVEC-OBJS-yes)
OBJS-$(HAVE_VSX) += $(VSX-OBJS) $(VSX-OBJS-yes)

View File

@ -52,6 +52,7 @@
#include "libavutil/opt.h"
#include "libavutil/cpu.h"
#include "libavutil/ffversion.h"
#include "libavutil/version.h"
#include "cmdutils.h"
#if CONFIG_NETWORK
#include "libavformat/network.h"
@ -63,7 +64,7 @@
static int init_report(const char *env);
struct SwsContext *sws_opts;
AVDictionary *sws_dict;
AVDictionary *swr_opts;
AVDictionary *format_opts, *codec_opts, *resample_opts;
@ -73,20 +74,13 @@ int hide_banner = 0;
void init_opts(void)
{
if(CONFIG_SWSCALE)
sws_opts = sws_getContext(16, 16, 0, 16, 16, 0, SWS_BICUBIC,
NULL, NULL, NULL);
av_dict_set(&sws_dict, "flags", "bicubic", 0);
}
void uninit_opts(void)
{
#if CONFIG_SWSCALE
sws_freeContext(sws_opts);
sws_opts = NULL;
#endif
av_dict_free(&swr_opts);
av_dict_free(&sws_dict);
av_dict_free(&format_opts);
av_dict_free(&codec_opts);
av_dict_free(&resample_opts);
@ -529,7 +523,7 @@ static const AVOption *opt_find(void *obj, const char *name, const char *unit,
return o;
}
#define FLAGS (o->type == AV_OPT_TYPE_FLAGS) ? AV_DICT_APPEND : 0
#define FLAGS (o->type == AV_OPT_TYPE_FLAGS && (arg[0]=='-' || arg[0]=='+')) ? AV_DICT_APPEND : 0
int opt_default(void *optctx, const char *opt, const char *arg)
{
const AVOption *o;
@ -540,7 +534,12 @@ int opt_default(void *optctx, const char *opt, const char *arg)
#if CONFIG_AVRESAMPLE
const AVClass *rc = avresample_get_class();
#endif
const AVClass *sc, *swr_class;
#if CONFIG_SWSCALE
const AVClass *sc = sws_get_class();
#endif
#if CONFIG_SWRESAMPLE
const AVClass *swr_class = swr_get_class();
#endif
if (!strcmp(opt, "debug") || !strcmp(opt, "fdebug"))
av_log_set_level(AV_LOG_DEBUG);
@ -564,15 +563,24 @@ int opt_default(void *optctx, const char *opt, const char *arg)
consumed = 1;
}
#if CONFIG_SWSCALE
sc = sws_get_class();
if (!consumed && opt_find(&sc, opt, NULL, 0,
AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ)) {
// XXX we only support sws_flags, not arbitrary sws options
int ret = av_opt_set(sws_opts, opt, arg, 0);
if (!consumed && (o = opt_find(&sc, opt, NULL, 0,
AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ))) {
struct SwsContext *sws = sws_alloc_context();
int ret = av_opt_set(sws, opt, arg, 0);
sws_freeContext(sws);
if (!strcmp(opt, "srcw") || !strcmp(opt, "srch") ||
!strcmp(opt, "dstw") || !strcmp(opt, "dsth") ||
!strcmp(opt, "src_format") || !strcmp(opt, "dst_format")) {
av_log(NULL, AV_LOG_ERROR, "Directly using swscale dimensions/format options is not supported, please use the -s or -pix_fmt options\n");
return AVERROR(EINVAL);
}
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Error setting option %s.\n", opt);
return ret;
}
av_dict_set(&sws_dict, opt, arg, FLAGS);
consumed = 1;
}
#else
@ -582,7 +590,6 @@ int opt_default(void *optctx, const char *opt, const char *arg)
}
#endif
#if CONFIG_SWRESAMPLE
swr_class = swr_get_class();
if (!consumed && (o=opt_find(&swr_class, opt, NULL, 0,
AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ))) {
struct SwrContext *swr = swr_alloc();
@ -646,9 +653,7 @@ static void finish_group(OptionParseContext *octx, int group_idx,
*g = octx->cur_group;
g->arg = arg;
g->group_def = l->group_def;
#if CONFIG_SWSCALE
g->sws_opts = sws_opts;
#endif
g->sws_dict = sws_dict;
g->swr_opts = swr_opts;
g->codec_opts = codec_opts;
g->format_opts = format_opts;
@ -657,9 +662,7 @@ static void finish_group(OptionParseContext *octx, int group_idx,
codec_opts = NULL;
format_opts = NULL;
resample_opts = NULL;
#if CONFIG_SWSCALE
sws_opts = NULL;
#endif
sws_dict = NULL;
swr_opts = NULL;
init_opts();
@ -715,9 +718,8 @@ void uninit_parse_context(OptionParseContext *octx)
av_dict_free(&l->groups[j].codec_opts);
av_dict_free(&l->groups[j].format_opts);
av_dict_free(&l->groups[j].resample_opts);
#if CONFIG_SWSCALE
sws_freeContext(l->groups[j].sws_opts);
#endif
av_dict_free(&l->groups[j].sws_dict);
av_dict_free(&l->groups[j].swr_opts);
}
av_freep(&l->groups);
@ -1057,7 +1059,8 @@ static int warned_cfg = 0;
LIB##LIBNAME##_VERSION_MAJOR, \
LIB##LIBNAME##_VERSION_MINOR, \
LIB##LIBNAME##_VERSION_MICRO, \
version >> 16, version >> 8 & 0xff, version & 0xff); \
AV_VERSION_MAJOR(version), AV_VERSION_MINOR(version),\
AV_VERSION_MICRO(version)); \
} \
if (flags & SHOW_CONFIG) { \
const char *cfg = libname##_configuration(); \
@ -1076,15 +1079,15 @@ static int warned_cfg = 0;
static void print_all_libs_info(int flags, int level)
{
PRINT_LIB_INFO(avutil, AVUTIL, flags, level);
PRINT_LIB_INFO(avcodec, AVCODEC, flags, level);
PRINT_LIB_INFO(avformat, AVFORMAT, flags, level);
PRINT_LIB_INFO(avdevice, AVDEVICE, flags, level);
PRINT_LIB_INFO(avfilter, AVFILTER, flags, level);
PRINT_LIB_INFO(avutil, AVUTIL, flags, level);
PRINT_LIB_INFO(avcodec, AVCODEC, flags, level);
PRINT_LIB_INFO(avformat, AVFORMAT, flags, level);
PRINT_LIB_INFO(avdevice, AVDEVICE, flags, level);
PRINT_LIB_INFO(avfilter, AVFILTER, flags, level);
PRINT_LIB_INFO(avresample, AVRESAMPLE, flags, level);
PRINT_LIB_INFO(swscale, SWSCALE, flags, level);
PRINT_LIB_INFO(swresample,SWRESAMPLE, flags, level);
PRINT_LIB_INFO(postproc, POSTPROC, flags, level);
PRINT_LIB_INFO(swscale, SWSCALE, flags, level);
PRINT_LIB_INFO(swresample, SWRESAMPLE, flags, level);
PRINT_LIB_INFO(postproc, POSTPROC, flags, level);
}
static void print_program_info(int flags, int level)
@ -1321,16 +1324,47 @@ static void print_codec(const AVCodec *c)
printf("%s %s [%s]:\n", encoder ? "Encoder" : "Decoder", c->name,
c->long_name ? c->long_name : "");
printf(" General capabilities: ");
if (c->capabilities & AV_CODEC_CAP_DRAW_HORIZ_BAND)
printf("horizband ");
if (c->capabilities & AV_CODEC_CAP_DR1)
printf("dr1 ");
if (c->capabilities & AV_CODEC_CAP_TRUNCATED)
printf("trunc ");
if (c->capabilities & AV_CODEC_CAP_DELAY)
printf("delay ");
if (c->capabilities & AV_CODEC_CAP_SMALL_LAST_FRAME)
printf("small ");
if (c->capabilities & AV_CODEC_CAP_SUBFRAMES)
printf("subframes ");
if (c->capabilities & AV_CODEC_CAP_EXPERIMENTAL)
printf("exp ");
if (c->capabilities & AV_CODEC_CAP_CHANNEL_CONF)
printf("chconf ");
if (c->capabilities & AV_CODEC_CAP_PARAM_CHANGE)
printf("paramchange ");
if (c->capabilities & AV_CODEC_CAP_VARIABLE_FRAME_SIZE)
printf("variable ");
if (c->capabilities & (AV_CODEC_CAP_FRAME_THREADS |
AV_CODEC_CAP_SLICE_THREADS |
AV_CODEC_CAP_AUTO_THREADS))
printf("threads ");
if (!c->capabilities)
printf("none");
printf("\n");
if (c->type == AVMEDIA_TYPE_VIDEO ||
c->type == AVMEDIA_TYPE_AUDIO) {
printf(" Threading capabilities: ");
switch (c->capabilities & (CODEC_CAP_FRAME_THREADS |
CODEC_CAP_SLICE_THREADS)) {
case CODEC_CAP_FRAME_THREADS |
CODEC_CAP_SLICE_THREADS: printf("frame and slice"); break;
case CODEC_CAP_FRAME_THREADS: printf("frame"); break;
case CODEC_CAP_SLICE_THREADS: printf("slice"); break;
default: printf("no"); break;
switch (c->capabilities & (AV_CODEC_CAP_FRAME_THREADS |
AV_CODEC_CAP_SLICE_THREADS |
AV_CODEC_CAP_AUTO_THREADS)) {
case AV_CODEC_CAP_FRAME_THREADS |
AV_CODEC_CAP_SLICE_THREADS: printf("frame and slice"); break;
case AV_CODEC_CAP_FRAME_THREADS: printf("frame"); break;
case AV_CODEC_CAP_SLICE_THREADS: printf("slice"); break;
case AV_CODEC_CAP_AUTO_THREADS : printf("auto"); break;
default: printf("none"); break;
}
printf("\n");
}
@ -1389,7 +1423,7 @@ static int compare_codec_desc(const void *a, const void *b)
const AVCodecDescriptor * const *da = a;
const AVCodecDescriptor * const *db = b;
return (*da)->type != (*db)->type ? (*da)->type - (*db)->type :
return (*da)->type != (*db)->type ? FFDIFFSIGN((*da)->type, (*db)->type) :
strcmp((*da)->name, (*db)->name);
}
@ -1503,11 +1537,11 @@ static void print_codecs(int encoder)
while ((codec = next_codec_for_id(desc->id, codec, encoder))) {
printf(" %c", get_media_type_char(desc->type));
printf((codec->capabilities & CODEC_CAP_FRAME_THREADS) ? "F" : ".");
printf((codec->capabilities & CODEC_CAP_SLICE_THREADS) ? "S" : ".");
printf((codec->capabilities & CODEC_CAP_EXPERIMENTAL) ? "X" : ".");
printf((codec->capabilities & CODEC_CAP_DRAW_HORIZ_BAND)?"B" : ".");
printf((codec->capabilities & CODEC_CAP_DR1) ? "D" : ".");
printf((codec->capabilities & AV_CODEC_CAP_FRAME_THREADS) ? "F" : ".");
printf((codec->capabilities & AV_CODEC_CAP_SLICE_THREADS) ? "S" : ".");
printf((codec->capabilities & AV_CODEC_CAP_EXPERIMENTAL) ? "X" : ".");
printf((codec->capabilities & AV_CODEC_CAP_DRAW_HORIZ_BAND)?"B" : ".");
printf((codec->capabilities & AV_CODEC_CAP_DR1) ? "D" : ".");
printf(" %-20s %s", codec->name, codec->long_name ? codec->long_name : "");
if (strcmp(codec->name, desc->name))
@ -1581,17 +1615,17 @@ int show_filters(void *optctx, const char *opt, const char *arg)
*(descr_cur++) = '>';
}
pad = i ? filter->outputs : filter->inputs;
for (j = 0; pad && pad[j].name; j++) {
for (j = 0; pad && avfilter_pad_get_name(pad, j); j++) {
if (descr_cur >= descr + sizeof(descr) - 4)
break;
*(descr_cur++) = get_media_type_char(pad[j].type);
*(descr_cur++) = get_media_type_char(avfilter_pad_get_type(pad, j));
}
if (!j)
*(descr_cur++) = ((!i && (filter->flags & AVFILTER_FLAG_DYNAMIC_INPUTS)) ||
( i && (filter->flags & AVFILTER_FLAG_DYNAMIC_OUTPUTS))) ? 'N' : '|';
}
*descr_cur = 0;
printf(" %c%c%c %-16s %-10s %s\n",
printf(" %c%c%c %-17s %-10s %s\n",
filter->flags & AVFILTER_FLAG_SUPPORT_TIMELINE ? 'T' : '.',
filter->flags & AVFILTER_FLAG_SLICE_THREADS ? 'S' : '.',
filter->process_command ? 'C' : '.',
@ -1875,64 +1909,6 @@ int read_yesno(void)
return yesno;
}
int cmdutils_read_file(const char *filename, char **bufptr, size_t *size)
{
int64_t ret;
FILE *f = av_fopen_utf8(filename, "rb");
if (!f) {
ret = AVERROR(errno);
av_log(NULL, AV_LOG_ERROR, "Cannot read file '%s': %s\n", filename,
strerror(errno));
return ret;
}
ret = fseek(f, 0, SEEK_END);
if (ret == -1) {
ret = AVERROR(errno);
goto out;
}
ret = ftell(f);
if (ret < 0) {
ret = AVERROR(errno);
goto out;
}
*size = ret;
ret = fseek(f, 0, SEEK_SET);
if (ret == -1) {
ret = AVERROR(errno);
goto out;
}
*bufptr = av_malloc(*size + 1);
if (!*bufptr) {
av_log(NULL, AV_LOG_ERROR, "Could not allocate file buffer\n");
ret = AVERROR(ENOMEM);
goto out;
}
ret = fread(*bufptr, 1, *size, f);
if (ret < *size) {
av_free(*bufptr);
if (ferror(f)) {
ret = AVERROR(errno);
av_log(NULL, AV_LOG_ERROR, "Error while reading file '%s': %s\n",
filename, strerror(errno));
} else
ret = AVERROR_EOF;
} else {
ret = 0;
(*bufptr)[(*size)++] = '\0';
}
out:
if (ret < 0)
av_log(NULL, AV_LOG_ERROR, "IO error: %s\n", av_err2str(ret));
fclose(f);
return ret;
}
FILE *get_preset_file(char *filename, size_t filename_size,
const char *preset_name, int is_path,
const char *codec_name)
@ -2106,7 +2082,10 @@ double get_rotation(AVStream *st)
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");
av_log(NULL, AV_LOG_WARNING, "Odd rotation angle.\n"
"If you want to help, upload a sample "
"of this file to ftp://upload.ffmpeg.org/incoming/ "
"and contact the ffmpeg-devel mailing list. (ffmpeg-devel@ffmpeg.org)");
return theta;
}

View File

@ -19,8 +19,8 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef FFMPEG_CMDUTILS_H
#define FFMPEG_CMDUTILS_H
#ifndef CMDUTILS_H
#define CMDUTILS_H
#include <stdint.h>
@ -46,7 +46,7 @@ extern const int program_birth_year;
extern AVCodecContext *avcodec_opts[AVMEDIA_TYPE_NB];
extern AVFormatContext *avformat_opts;
extern struct SwsContext *sws_opts;
extern AVDictionary *sws_dict;
extern AVDictionary *swr_opts;
extern AVDictionary *format_opts, *codec_opts, *resample_opts;
extern int hide_banner;
@ -277,7 +277,7 @@ typedef struct OptionGroup {
AVDictionary *codec_opts;
AVDictionary *format_opts;
AVDictionary *resample_opts;
struct SwsContext *sws_opts;
AVDictionary *sws_dict;
AVDictionary *swr_opts;
} OptionGroup;
@ -529,18 +529,6 @@ int show_colors(void *optctx, const char *opt, const char *arg);
*/
int read_yesno(void);
/**
* Read the file with name filename, and put its content in a newly
* allocated 0-terminated buffer.
*
* @param filename file to read from
* @param bufptr location where pointer to buffer is returned
* @param size location where size of buffer is returned
* @return >= 0 in case of success, a negative value corresponding to an
* AVERROR error code in case of failure.
*/
int cmdutils_read_file(const char *filename, char **bufptr, size_t *size);
/**
* Get a file corresponding to a preset file.
*

View File

@ -206,7 +206,9 @@ end:
static int compare_ocl_device_desc(const void *a, const void *b)
{
return ((OpenCLDeviceBenchmark*)a)->runtime - ((OpenCLDeviceBenchmark*)b)->runtime;
const OpenCLDeviceBenchmark* va = (const OpenCLDeviceBenchmark*)a;
const OpenCLDeviceBenchmark* vb = (const OpenCLDeviceBenchmark*)b;
return FFDIFFSIGN(va->runtime , vb->runtime);
}
int opt_opencl_bench(void *optctx, const char *opt, const char *arg)

View File

@ -18,7 +18,7 @@ ifndef SUBDIR
ifndef V
Q = @
ECHO = printf "$(1)\t%s\n" $(2)
BRIEF = CC CXX HOSTCC HOSTLD AS YASM AR LD STRIP CP WINDRES
BRIEF = CC CXX OBJCC HOSTCC HOSTLD AS YASM AR LD STRIP CP WINDRES
SILENT = DEPCC DEPHOSTCC DEPAS DEPYASM RANLIB RM
MSG = $@
@ -32,12 +32,14 @@ endif
ALLFFLIBS = avcodec avdevice avfilter avformat avresample avutil postproc swscale swresample
# NASM requires -I path terminated with /
IFLAGS := -I. -I$(SRC_PATH)/
IFLAGS := -I. -I$(SRC_LINK)/
CPPFLAGS := $(IFLAGS) $(CPPFLAGS)
CFLAGS += $(ECFLAGS)
CCFLAGS = $(CPPFLAGS) $(CFLAGS)
OBJCFLAGS += $(EOBJCFLAGS)
OBJCCFLAGS = $(CPPFLAGS) $(CFLAGS) $(OBJCFLAGS)
ASFLAGS := $(CPPFLAGS) $(ASFLAGS)
CXXFLAGS += $(CPPFLAGS) $(CFLAGS)
CXXFLAGS := $(CPPFLAGS) $(CFLAGS) $(CXXFLAGS)
YASMFLAGS += $(IFLAGS:%=%/) -Pconfig.asm
HOSTCCFLAGS = $(IFLAGS) $(HOSTCPPFLAGS) $(HOSTCFLAGS)
@ -45,12 +47,13 @@ LDFLAGS := $(ALLFFLIBS:%=$(LD_PATH)lib%) $(LDFLAGS)
define COMPILE
$(call $(1)DEP,$(1))
$($(1)) $($(1)FLAGS) $($(1)_DEPFLAGS) $($(1)_C) $($(1)_O) $<
$($(1)) $($(1)FLAGS) $($(1)_DEPFLAGS) $($(1)_C) $($(1)_O) $(patsubst $(SRC_PATH)/%,$(SRC_LINK)/%,$<)
endef
COMPILE_C = $(call COMPILE,CC)
COMPILE_CXX = $(call COMPILE,CXX)
COMPILE_S = $(call COMPILE,AS)
COMPILE_M = $(call COMPILE,OBJCC)
COMPILE_HOSTC = $(call COMPILE,HOSTCC)
%.o: %.c
@ -60,10 +63,10 @@ COMPILE_HOSTC = $(call COMPILE,HOSTCC)
$(COMPILE_CXX)
%.o: %.m
$(COMPILE_C)
$(COMPILE_M)
%.s: %.c
$(CC) $(CPPFLAGS) $(CFLAGS) -S -o $@ $<
$(CC) $(CCFLAGS) -S -o $@ $<
%.o: %.S
$(COMPILE_S)
@ -80,10 +83,7 @@ COMPILE_HOSTC = $(call COMPILE,HOSTCC)
%.h.c:
$(Q)echo '#include "$*.h"' >$@
%.ver: %.v
$(Q)sed 's/$$MAJOR/$($(basename $(@F))_VERSION_MAJOR)/' $^ > $@
%.c %.h: TAG = GEN
%.c %.h %.ver: TAG = GEN
# Dummy rule to stop make trying to rebuild removed or renamed headers
%.h:
@ -109,8 +109,8 @@ FFEXTRALIBS := $(LDLIBS:%=$(LD_LIB)) $(EXTRALIBS)
OBJS := $(sort $(OBJS:%=$(SUBDIR)%))
SLIBOBJS := $(sort $(SLIBOBJS:%=$(SUBDIR)%))
TESTOBJS := $(TESTOBJS:%=$(SUBDIR)%) $(TESTPROGS:%=$(SUBDIR)%-test.o)
TESTPROGS := $(TESTPROGS:%=$(SUBDIR)%-test$(EXESUF))
TESTOBJS := $(TESTOBJS:%=$(SUBDIR)tests/%) $(TESTPROGS:%=$(SUBDIR)tests/%.o)
TESTPROGS := $(TESTPROGS:%=$(SUBDIR)tests/%$(EXESUF))
HOSTOBJS := $(HOSTPROGS:%=$(SUBDIR)%.o)
HOSTPROGS := $(HOSTPROGS:%=$(SUBDIR)%$(HOSTEXESUF))
TOOLS += $(TOOLS-yes)
@ -118,8 +118,9 @@ TOOLOBJS := $(TOOLS:%=tools/%.o)
TOOLS := $(TOOLS:%=tools/%$(EXESUF))
HEADERS += $(HEADERS-yes)
PATH_LIBNAME = $(foreach NAME,$(1),lib$(NAME)/$($(CONFIG_SHARED:yes=S)LIBNAME))
DEP_LIBS := $(foreach lib,$(FFLIBS),$(call PATH_LIBNAME,$(lib)))
PATH_LIBNAME = $(foreach NAME,$(1),lib$(NAME)/$($(2)LIBNAME))
DEP_LIBS := $(foreach lib,$(FFLIBS),$(call PATH_LIBNAME,$(lib),$(CONFIG_SHARED:yes=S)))
STATIC_DEP_LIBS := $(foreach lib,$(FFLIBS),$(call PATH_LIBNAME,$(lib)))
SRC_DIR := $(SRC_PATH)/lib$(NAME)
ALLHEADERS := $(subst $(SRC_DIR)/,$(SUBDIR),$(wildcard $(SRC_DIR)/*.h $(SRC_DIR)/$(ARCH)/*.h))
@ -146,15 +147,13 @@ $(TOOLOBJS): | tools
OBJDIRS := $(OBJDIRS) $(dir $(OBJS) $(HOBJS) $(HOSTOBJS) $(SLIBOBJS) $(TESTOBJS))
CLEANSUFFIXES = *.d *.o *~ *.h.c *.map *.ver *.ho *.gcno *.gcda *$(DEFAULT_YASMD).asm
CLEANSUFFIXES = *.d *.o *~ *.h.c *.gcda *.gcno *.map *.ver *.ho *$(DEFAULT_YASMD).asm
DISTCLEANSUFFIXES = *.pc
LIBSUFFIXES = *.a *.lib *.so *.so.* *.dylib *.dll *.def *.dll.a
define RULES
clean::
$(RM) $(OBJS) $(OBJS:.o=.d) $(OBJS:.o=$(DEFAULT_YASMD).d)
$(RM) $(HOSTPROGS)
$(RM) $(TOOLS)
$(RM) $(HOSTPROGS) $(TESTPROGS) $(TOOLS)
endef
$(eval $(RULES))

View File

@ -19,8 +19,8 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef FFMPEG_COMPAT_AIX_MATH_H
#define FFMPEG_COMPAT_AIX_MATH_H
#ifndef COMPAT_AIX_MATH_H
#define COMPAT_AIX_MATH_H
#define class class_in_math_h_causes_problems
@ -28,4 +28,4 @@
#undef class
#endif /* FFMPEG_COMPAT_AIX_MATH_H */
#endif /* COMPAT_AIX_MATH_H */

View File

@ -0,0 +1,42 @@
/*
* This file is part of FFmpeg.
*
* FFmpeg is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* FFmpeg is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef COMPAT_DISPATCH_SEMAPHORE_SEMAPHORE_H
#define COMPAT_DISPATCH_SEMAPHORE_SEMAPHORE_H
#include <dispatch/dispatch.h>
#include <errno.h>
#define sem_t dispatch_semaphore_t
#define sem_post(psem) dispatch_semaphore_signal(*psem)
#define sem_wait(psem) dispatch_semaphore_wait(*psem, DISPATCH_TIME_FOREVER)
#define sem_timedwait(psem, val) dispatch_semaphore_wait(*psem, dispatch_walltime(val, 0))
#define sem_destroy(psem) dispatch_release(*psem)
static inline int compat_sem_init(dispatch_semaphore_t *psem,
int unused, int val)
{
int ret = !!(*psem = dispatch_semaphore_create(val)) - 1;
if (ret < 0)
errno = ENOMEM;
return ret;
}
#define sem_init compat_sem_init
#endif /* COMPAT_DISPATCH_SEMAPHORE_SEMAPHORE_H */

View File

@ -19,8 +19,8 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef COMPAT_SNPRINTF_H
#define COMPAT_SNPRINTF_H
#ifndef COMPAT_MSVCRT_SNPRINTF_H
#define COMPAT_MSVCRT_SNPRINTF_H
#include <stdarg.h>
#include <stdio.h>
@ -35,4 +35,4 @@ int avpriv_vsnprintf(char *s, size_t n, const char *fmt, va_list ap);
#define _snprintf avpriv_snprintf
#define vsnprintf avpriv_vsnprintf
#endif /* COMPAT_SNPRINTF_H */
#endif /* COMPAT_MSVCRT_SNPRINTF_H */

View File

@ -23,8 +23,8 @@
* os2threads to pthreads wrapper
*/
#ifndef AVCODEC_OS2PTHREADS_H
#define AVCODEC_OS2PTHREADS_H
#ifndef COMPAT_OS2THREADS_H
#define COMPAT_OS2THREADS_H
#define INCL_DOS
#include <os2.h>
@ -32,59 +32,71 @@
#undef __STRICT_ANSI__ /* for _beginthread() */
#include <stdlib.h>
#include "libavutil/mem.h"
#include <sys/builtin.h>
#include <sys/fmutex.h>
#include "libavutil/attributes.h"
typedef struct {
TID tid;
void *(*start_routine)(void *);
void *arg;
void *result;
} pthread_t;
typedef TID pthread_t;
typedef void pthread_attr_t;
typedef HMTX pthread_mutex_t;
typedef void pthread_mutexattr_t;
typedef struct {
HEV event_sem;
int wait_count;
HEV event_sem;
HEV ack_sem;
volatile unsigned wait_count;
} pthread_cond_t;
typedef void pthread_condattr_t;
struct thread_arg {
void *(*start_routine)(void *);
void *arg;
};
typedef struct {
volatile int done;
_fmutex mtx;
} pthread_once_t;
#define PTHREAD_ONCE_INIT {0, _FMUTEX_INITIALIZER}
static void thread_entry(void *arg)
{
struct thread_arg *thread_arg = arg;
pthread_t *thread = arg;
thread_arg->start_routine(thread_arg->arg);
av_free(thread_arg);
thread->result = thread->start_routine(thread->arg);
}
static av_always_inline int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void*), void *arg)
static av_always_inline int pthread_create(pthread_t *thread,
const pthread_attr_t *attr,
void *(*start_routine)(void*),
void *arg)
{
struct thread_arg *thread_arg;
thread->start_routine = start_routine;
thread->arg = arg;
thread->result = NULL;
thread_arg = av_mallocz(sizeof(struct thread_arg));
if (!thread_arg)
return ENOMEM;
thread_arg->start_routine = start_routine;
thread_arg->arg = arg;
*thread = _beginthread(thread_entry, NULL, 256 * 1024, thread_arg);
thread->tid = _beginthread(thread_entry, NULL, 1024 * 1024, thread);
return 0;
}
static av_always_inline int pthread_join(pthread_t thread, void **value_ptr)
{
DosWaitThread((PTID)&thread, DCWW_WAIT);
DosWaitThread(&thread.tid, DCWW_WAIT);
if (value_ptr)
*value_ptr = thread.result;
return 0;
}
static av_always_inline int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *attr)
static av_always_inline int pthread_mutex_init(pthread_mutex_t *mutex,
const pthread_mutexattr_t *attr)
{
DosCreateMutexSem(NULL, (PHMTX)mutex, 0, FALSE);
@ -112,9 +124,11 @@ static av_always_inline int pthread_mutex_unlock(pthread_mutex_t *mutex)
return 0;
}
static av_always_inline int pthread_cond_init(pthread_cond_t *cond, const pthread_condattr_t *attr)
static av_always_inline int pthread_cond_init(pthread_cond_t *cond,
const pthread_condattr_t *attr)
{
DosCreateEventSem(NULL, &cond->event_sem, DCE_POSTONE, FALSE);
DosCreateEventSem(NULL, &cond->ack_sem, DCE_POSTONE, FALSE);
cond->wait_count = 0;
@ -124,16 +138,16 @@ static av_always_inline int pthread_cond_init(pthread_cond_t *cond, const pthrea
static av_always_inline int pthread_cond_destroy(pthread_cond_t *cond)
{
DosCloseEventSem(cond->event_sem);
DosCloseEventSem(cond->ack_sem);
return 0;
}
static av_always_inline int pthread_cond_signal(pthread_cond_t *cond)
{
if (cond->wait_count > 0) {
if (!__atomic_cmpxchg32(&cond->wait_count, 0, 0)) {
DosPostEventSem(cond->event_sem);
cond->wait_count--;
DosWaitEventSem(cond->ack_sem, SEM_INDEFINITE_WAIT);
}
return 0;
@ -141,26 +155,47 @@ static av_always_inline int pthread_cond_signal(pthread_cond_t *cond)
static av_always_inline int pthread_cond_broadcast(pthread_cond_t *cond)
{
while (cond->wait_count > 0) {
DosPostEventSem(cond->event_sem);
cond->wait_count--;
}
while (!__atomic_cmpxchg32(&cond->wait_count, 0, 0))
pthread_cond_signal(cond);
return 0;
}
static av_always_inline int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex)
static av_always_inline int pthread_cond_wait(pthread_cond_t *cond,
pthread_mutex_t *mutex)
{
cond->wait_count++;
__atomic_increment(&cond->wait_count);
pthread_mutex_unlock(mutex);
DosWaitEventSem(cond->event_sem, SEM_INDEFINITE_WAIT);
__atomic_decrement(&cond->wait_count);
DosPostEventSem(cond->ack_sem);
pthread_mutex_lock(mutex);
return 0;
}
#endif /* AVCODEC_OS2PTHREADS_H */
static av_always_inline int pthread_once(pthread_once_t *once_control,
void (*init_routine)(void))
{
if (!once_control->done)
{
_fmutex_request(&once_control->mtx, 0);
if (!once_control->done)
{
init_routine();
once_control->done = 1;
}
_fmutex_release(&once_control->mtx);
}
return 0;
}
#endif /* COMPAT_OS2THREADS_H */

352
compat/solaris/make_sunver.pl Executable file
View File

@ -0,0 +1,352 @@
#!/usr/bin/env perl
# make_sunver.pl
#
# Copyright (C) 2010, 2011, 2012, 2013
# Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# 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; see the file COPYING.GPLv3. If not see
# <http://www.gnu.org/licenses/>.
# This script takes at least two arguments, a GNU style version script and
# a list of object and archive files, and generates a corresponding Sun
# style version script as follows:
#
# Each glob pattern, C++ mangled pattern or literal in the input script is
# matched against all global symbols in the input objects, emitting those
# that matched (or nothing if no match was found).
# A comment with the original pattern and its type is left in the output
# file to make it easy to understand the matches.
#
# It uses elfdump when present (native), GNU readelf otherwise.
# It depends on the GNU version of c++filt, since it must understand the
# GNU mangling style.
use FileHandle;
use IPC::Open2;
# Enforce C locale.
$ENV{'LC_ALL'} = "C";
$ENV{'LANG'} = "C";
# Input version script, GNU style.
my $symvers = shift;
##########
# Get all the symbols from the library, match them, and add them to a hash.
my %sym_hash = ();
# List of objects and archives to process.
my @OBJECTS = ();
# List of shared objects to omit from processing.
my @SHAREDOBJS = ();
# Filter out those input archives that have corresponding shared objects to
# avoid adding all symbols matched in the archive to the output map.
foreach $file (@ARGV) {
if (($so = $file) =~ s/\.a$/.so/ && -e $so) {
printf STDERR "omitted $file -> $so\n";
push (@SHAREDOBJS, $so);
} else {
push (@OBJECTS, $file);
}
}
# We need to detect and ignore hidden symbols. Solaris nm can only detect
# this in the harder to parse default output format, and GNU nm not at all,
# so use elfdump -s in the native case and GNU readelf -s otherwise.
# GNU objdump -t cannot be used since it produces a variable number of
# columns.
# The path to elfdump.
my $elfdump = "/usr/ccs/bin/elfdump";
if (-f $elfdump) {
open ELFDUMP,$elfdump.' -s '.(join ' ',@OBJECTS).'|' or die $!;
my $skip_arsym = 0;
while (<ELFDUMP>) {
chomp;
# Ignore empty lines.
if (/^$/) {
# End of archive symbol table, stop skipping.
$skip_arsym = 0 if $skip_arsym;
next;
}
# Keep skipping until end of archive symbol table.
next if ($skip_arsym);
# Ignore object name header for individual objects and archives.
next if (/:$/);
# Ignore table header lines.
next if (/^Symbol Table Section:/);
next if (/index.*value.*size/);
# Start of archive symbol table: start skipping.
if (/^Symbol Table: \(archive/) {
$skip_arsym = 1;
next;
}
# Split table.
(undef, undef, undef, undef, $bind, $oth, undef, $shndx, $name) = split;
# Error out for unknown input.
die "unknown input line:\n$_" unless defined($bind);
# Ignore local symbols.
next if ($bind eq "LOCL");
# Ignore hidden symbols.
next if ($oth eq "H");
# Ignore undefined symbols.
next if ($shndx eq "UNDEF");
# Error out for unhandled cases.
if ($bind !~ /^(GLOB|WEAK)/ or $oth ne "D") {
die "unhandled symbol:\n$_";
}
# Remember symbol.
$sym_hash{$name}++;
}
close ELFDUMP or die "$elfdump error";
} else {
open READELF, 'readelf -s -W '.(join ' ',@OBJECTS).'|' or die $!;
# Process each symbol.
while (<READELF>) {
chomp;
# Ignore empty lines.
next if (/^$/);
# Ignore object name header.
next if (/^File: .*$/);
# Ignore table header lines.
next if (/^Symbol table.*contains.*:/);
next if (/Num:.*Value.*Size/);
# Split table.
(undef, undef, undef, undef, $bind, $vis, $ndx, $name) = split;
# Error out for unknown input.
die "unknown input line:\n$_" unless defined($bind);
# Ignore local symbols.
next if ($bind eq "LOCAL");
# Ignore hidden symbols.
next if ($vis eq "HIDDEN");
# Ignore undefined symbols.
next if ($ndx eq "UND");
# Error out for unhandled cases.
if ($bind !~ /^(GLOBAL|WEAK)/ or $vis ne "DEFAULT") {
die "unhandled symbol:\n$_";
}
# Remember symbol.
$sym_hash{$name}++;
}
close READELF or die "readelf error";
}
##########
# The various types of glob patterns.
#
# A glob pattern that is to be applied to the demangled name: 'cxx'.
# A glob patterns that applies directly to the name in the .o files: 'glob'.
# This pattern is ignored; used for local variables (usually just '*'): 'ign'.
# The type of the current pattern.
my $glob = 'glob';
# We're currently inside `extern "C++"', which Sun ld doesn't understand.
my $in_extern = 0;
# The c++filt command to use. This *must* be GNU c++filt; the Sun Studio
# c++filt doesn't handle the GNU mangling style.
my $cxxfilt = $ENV{'CXXFILT'} || "c++filt";
# The current version name.
my $current_version = "";
# Was there any attempt to match a symbol to this version?
my $matches_attempted;
# The number of versions which matched this symbol.
my $matched_symbols;
open F,$symvers or die $!;
# Print information about generating this file
print "# This file was generated by make_sunver.pl. DO NOT EDIT!\n";
print "# It was generated by:\n";
printf "# %s %s %s\n", $0, $symvers, (join ' ',@ARGV);
printf "# Omitted archives with corresponding shared libraries: %s\n",
(join ' ', @SHAREDOBJS) if $#SHAREDOBJS >= 0;
print "#\n\n";
print "\$mapfile_version 2\n";
while (<F>) {
# Lines of the form '};'
if (/^([ \t]*)(\}[ \t]*;[ \t]*)$/) {
$glob = 'glob';
if ($in_extern) {
$in_extern--;
print "$1##$2\n";
} else {
print;
}
next;
}
# Lines of the form '} SOME_VERSION_NAME_1.0;'
if (/^[ \t]*\}[ \tA-Z0-9_.a-z]+;[ \t]*$/) {
$glob = 'glob';
# We tried to match symbols agains this version, but none matched.
# Emit dummy hidden symbol to avoid marking this version WEAK.
if ($matches_attempted && $matched_symbols == 0) {
print " hidden:\n";
print " .force_WEAK_off_$current_version = DATA S0x0 V0x0;\n";
}
print; next;
}
# Comment and blank lines
if (/^[ \t]*\#/) { print; next; }
if (/^[ \t]*$/) { print; next; }
# Lines of the form '{'
if (/^([ \t]*){$/) {
if ($in_extern) {
print "$1##{\n";
} else {
print;
}
next;
}
# Lines of the form 'SOME_VERSION_NAME_1.1 {'
if (/^([A-Z0-9_.]+)[ \t]+{$/) {
# Record version name.
$current_version = $1;
# Reset match attempts, #matched symbols for this version.
$matches_attempted = 0;
$matched_symbols = 0;
print "SYMBOL_VERSION $1 {\n";
next;
}
# Ignore 'global:'
if (/^[ \t]*global:$/) { print; next; }
# After 'local:', globs should be ignored, they won't be exported.
if (/^[ \t]*local:$/) {
$glob = 'ign';
print;
next;
}
# After 'extern "C++"', globs are C++ patterns
if (/^([ \t]*)(extern \"C\+\+\"[ \t]*)$/) {
$in_extern++;
$glob = 'cxx';
# Need to comment, Sun ld cannot handle this.
print "$1##$2\n"; next;
}
# Chomp newline now we're done with passing through the input file.
chomp;
# Catch globs. Note that '{}' is not allowed in globs by this script,
# so only '*' and '[]' are available.
if (/^([ \t]*)([^ \t;{}#]+);?[ \t]*$/) {
my $ws = $1;
my $ptn = $2;
# Turn the glob into a regex by replacing '*' with '.*', '?' with '.'.
# Keep $ptn so we can still print the original form.
($pattern = $ptn) =~ s/\*/\.\*/g;
$pattern =~ s/\?/\./g;
if ($glob eq 'ign') {
# We're in a local: * section; just continue.
print "$_\n";
next;
}
# Print the glob commented for human readers.
print "$ws##$ptn ($glob)\n";
# We tried to match a symbol to this version.
$matches_attempted++;
if ($glob eq 'glob') {
my %ptn_syms = ();
# Match ptn against symbols in %sym_hash.
foreach my $sym (keys %sym_hash) {
# Maybe it matches one of the patterns based on the symbol in
# the .o file.
$ptn_syms{$sym}++ if ($sym =~ /^$pattern$/);
}
foreach my $sym (sort keys(%ptn_syms)) {
$matched_symbols++;
print "$ws$sym;\n";
}
} elsif ($glob eq 'cxx') {
my %dem_syms = ();
# Verify that we're actually using GNU c++filt. Other versions
# most likely cannot handle GNU style symbol mangling.
my $cxxout = `$cxxfilt --version 2>&1`;
$cxxout =~ m/GNU/ or die "$0 requires GNU c++filt to function";
# Talk to c++filt through a pair of file descriptors.
# Need to start a fresh instance per pattern, otherwise the
# process grows to 500+ MB.
my $pid = open2(*FILTIN, *FILTOUT, $cxxfilt) or die $!;
# Match ptn against symbols in %sym_hash.
foreach my $sym (keys %sym_hash) {
# No? Well, maybe its demangled form matches one of those
# patterns.
printf FILTOUT "%s\n",$sym;
my $dem = <FILTIN>;
chomp $dem;
$dem_syms{$sym}++ if ($dem =~ /^$pattern$/);
}
close FILTOUT or die "c++filt error";
close FILTIN or die "c++filt error";
# Need to wait for the c++filt process to avoid lots of zombies.
waitpid $pid, 0;
foreach my $sym (sort keys(%dem_syms)) {
$matched_symbols++;
print "$ws$sym;\n";
}
} else {
# No? Well, then ignore it.
}
next;
}
# Important sanity check. This script can't handle lots of formats
# that GNU ld can, so be sure to error out if one is seen!
die "strange line `$_'";
}
close F;

View File

@ -16,8 +16,8 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef FFMPEG_COMPAT_TMS470_MATH_H
#define FFMPEG_COMPAT_TMS470_MATH_H
#ifndef COMPAT_TMS470_MATH_H
#define COMPAT_TMS470_MATH_H
#include_next <math.h>
@ -27,4 +27,4 @@
#define INFINITY (*(const float*)((const unsigned []){ 0x7f800000 }))
#define NAN (*(const float*)((const unsigned []){ 0x7fc00000 }))
#endif /* FFMPEG_COMPAT_TMS470_MATH_H */
#endif /* COMPAT_TMS470_MATH_H */

View File

@ -19,6 +19,9 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef COMPAT_VA_COPY_H
#define COMPAT_VA_COPY_H
#include <stdarg.h>
#if !defined(va_copy) && defined(_MSC_VER)
@ -27,3 +30,5 @@
#if !defined(va_copy) && defined(__GNUC__) && __GNUC__ < 3
#define va_copy(dst, src) __va_copy(dst, src)
#endif
#endif /* COMPAT_VA_COPY_H */

View File

@ -26,8 +26,8 @@
* w32threads to pthreads wrapper
*/
#ifndef FFMPEG_COMPAT_W32PTHREADS_H
#define FFMPEG_COMPAT_W32PTHREADS_H
#ifndef COMPAT_W32PTHREADS_H
#define COMPAT_W32PTHREADS_H
/* Build up a pthread-like API using underlying Windows API. Have only static
* methods so as to not conflict with a potentially linked in pthread-win32
@ -39,6 +39,11 @@
#include <windows.h>
#include <process.h>
#if _WIN32_WINNT < 0x0600 && defined(__MINGW32__)
#undef MemoryBarrier
#define MemoryBarrier __sync_synchronize
#endif
#include "libavutil/attributes.h"
#include "libavutil/common.h"
#include "libavutil/internal.h"
@ -82,19 +87,29 @@ static av_unused int pthread_create(pthread_t *thread, const void *unused_attr,
{
thread->func = start_routine;
thread->arg = arg;
#if HAVE_WINRT
thread->handle = (void*)CreateThread(NULL, 0, win32thread_worker, thread,
0, NULL);
#else
thread->handle = (void*)_beginthreadex(NULL, 0, win32thread_worker, thread,
0, NULL);
#endif
return !thread->handle;
}
static av_unused void pthread_join(pthread_t thread, void **value_ptr)
static av_unused int pthread_join(pthread_t thread, void **value_ptr)
{
DWORD ret = WaitForSingleObject(thread.handle, INFINITE);
if (ret != WAIT_OBJECT_0)
return;
if (ret != WAIT_OBJECT_0) {
if (ret == WAIT_ABANDONED)
return EINVAL;
else
return EDEADLK;
}
if (value_ptr)
*value_ptr = thread.ret;
CloseHandle(thread.handle);
return 0;
}
static inline int pthread_mutex_init(pthread_mutex_t *m, void* attr)
@ -119,6 +134,19 @@ static inline int pthread_mutex_unlock(pthread_mutex_t *m)
}
#if _WIN32_WINNT >= 0x0600
typedef INIT_ONCE pthread_once_t;
#define PTHREAD_ONCE_INIT INIT_ONCE_STATIC_INIT
static av_unused int pthread_once(pthread_once_t *once_control, void (*init_routine)(void))
{
BOOL pending = FALSE;
InitOnceBeginInitialize(once_control, 0, &pending, NULL);
if (pending)
init_routine();
InitOnceComplete(once_control, 0, NULL);
return 0;
}
static inline int pthread_cond_init(pthread_cond_t *cond, const void *unused_attr)
{
InitializeConditionVariable(cond);
@ -126,14 +154,15 @@ static inline int pthread_cond_init(pthread_cond_t *cond, const void *unused_att
}
/* native condition variables do not destroy */
static inline void pthread_cond_destroy(pthread_cond_t *cond)
static inline int pthread_cond_destroy(pthread_cond_t *cond)
{
return;
return 0;
}
static inline void pthread_cond_broadcast(pthread_cond_t *cond)
static inline int pthread_cond_broadcast(pthread_cond_t *cond)
{
WakeAllConditionVariable(cond);
return 0;
}
static inline int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex)
@ -142,14 +171,77 @@ static inline int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex
return 0;
}
static inline void pthread_cond_signal(pthread_cond_t *cond)
static inline int pthread_cond_signal(pthread_cond_t *cond)
{
WakeConditionVariable(cond);
return 0;
}
#else // _WIN32_WINNT < 0x0600
/* atomic init state of dynamically loaded functions */
static LONG w32thread_init_state = 0;
static av_unused void w32thread_init(void);
/* for pre-Windows 6.0 platforms, define INIT_ONCE struct,
* compatible to the one used in the native API */
typedef union pthread_once_t {
void * Ptr; ///< For the Windows 6.0+ native functions
LONG state; ///< For the pre-Windows 6.0 compat code
} pthread_once_t;
#define PTHREAD_ONCE_INIT {0}
/* function pointers to init once API on windows 6.0+ kernels */
static BOOL (WINAPI *initonce_begin)(pthread_once_t *lpInitOnce, DWORD dwFlags, BOOL *fPending, void **lpContext);
static BOOL (WINAPI *initonce_complete)(pthread_once_t *lpInitOnce, DWORD dwFlags, void *lpContext);
/* pre-Windows 6.0 compat using a spin-lock */
static inline void w32thread_once_fallback(LONG volatile *state, void (*init_routine)(void))
{
switch (InterlockedCompareExchange(state, 1, 0)) {
/* Initial run */
case 0:
init_routine();
InterlockedExchange(state, 2);
break;
/* Another thread is running init */
case 1:
while (1) {
MemoryBarrier();
if (*state == 2)
break;
Sleep(0);
}
break;
/* Initialization complete */
case 2:
break;
}
}
static av_unused int pthread_once(pthread_once_t *once_control, void (*init_routine)(void))
{
w32thread_once_fallback(&w32thread_init_state, w32thread_init);
/* Use native functions on Windows 6.0+ */
if (initonce_begin && initonce_complete) {
BOOL pending = FALSE;
initonce_begin(once_control, 0, &pending, NULL);
if (pending)
init_routine();
initonce_complete(once_control, 0, NULL);
return 0;
}
w32thread_once_fallback(&once_control->state, init_routine);
return 0;
}
/* for pre-Windows 6.0 platforms we need to define and use our own condition
* variable and api */
typedef struct win32_cond_t {
pthread_mutex_t mtx_broadcast;
pthread_mutex_t mtx_waiter_count;
@ -169,6 +261,9 @@ static BOOL (WINAPI *cond_wait)(pthread_cond_t *cond, pthread_mutex_t *mutex,
static av_unused int pthread_cond_init(pthread_cond_t *cond, const void *unused_attr)
{
win32_cond_t *win32_cond = NULL;
w32thread_once_fallback(&w32thread_init_state, w32thread_init);
if (cond_init) {
cond_init(cond);
return 0;
@ -191,12 +286,12 @@ static av_unused int pthread_cond_init(pthread_cond_t *cond, const void *unused_
return 0;
}
static av_unused void pthread_cond_destroy(pthread_cond_t *cond)
static av_unused int pthread_cond_destroy(pthread_cond_t *cond)
{
win32_cond_t *win32_cond = cond->Ptr;
/* native condition variables do not destroy */
if (cond_init)
return;
return 0;
/* non native condition variables */
CloseHandle(win32_cond->semaphore);
@ -205,16 +300,17 @@ static av_unused void pthread_cond_destroy(pthread_cond_t *cond)
pthread_mutex_destroy(&win32_cond->mtx_broadcast);
av_freep(&win32_cond);
cond->Ptr = NULL;
return 0;
}
static av_unused void pthread_cond_broadcast(pthread_cond_t *cond)
static av_unused int pthread_cond_broadcast(pthread_cond_t *cond)
{
win32_cond_t *win32_cond = cond->Ptr;
int have_waiter;
if (cond_broadcast) {
cond_broadcast(cond);
return;
return 0;
}
/* non native condition variables */
@ -236,6 +332,7 @@ static av_unused void pthread_cond_broadcast(pthread_cond_t *cond)
} else
pthread_mutex_unlock(&win32_cond->mtx_waiter_count);
pthread_mutex_unlock(&win32_cond->mtx_broadcast);
return 0;
}
static av_unused int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex)
@ -270,13 +367,13 @@ static av_unused int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mu
return pthread_mutex_lock(mutex);
}
static av_unused void pthread_cond_signal(pthread_cond_t *cond)
static av_unused int pthread_cond_signal(pthread_cond_t *cond)
{
win32_cond_t *win32_cond = cond->Ptr;
int have_waiter;
if (cond_signal) {
cond_signal(cond);
return;
return 0;
}
pthread_mutex_lock(&win32_cond->mtx_broadcast);
@ -293,6 +390,7 @@ static av_unused void pthread_cond_signal(pthread_cond_t *cond)
}
pthread_mutex_unlock(&win32_cond->mtx_broadcast);
return 0;
}
#endif
@ -309,8 +407,12 @@ static av_unused void w32thread_init(void)
(void*)GetProcAddress(kernel_dll, "WakeConditionVariable");
cond_wait =
(void*)GetProcAddress(kernel_dll, "SleepConditionVariableCS");
initonce_begin =
(void*)GetProcAddress(kernel_dll, "InitOnceBeginInitialize");
initonce_complete =
(void*)GetProcAddress(kernel_dll, "InitOnceComplete");
#endif
}
#endif /* FFMPEG_COMPAT_W32PTHREADS_H */
#endif /* COMPAT_W32PTHREADS_H */

9
compat/windows/mslink Executable file
View File

@ -0,0 +1,9 @@
#!/bin/sh
LINK_EXE_PATH=$(dirname "$(command -v cl)")/link
if [ -x "$LINK_EXE_PATH" ]; then
"$LINK_EXE_PATH" $@
else
link $@
fi
exit $?

1606
configure vendored

File diff suppressed because it is too large Load Diff

9
doc/.gitignore vendored Normal file
View File

@ -0,0 +1,9 @@
/*.1
/*.3
/*.html
/*.pod
/config.texi
/avoptions_codec.texi
/avoptions_format.texi
/fate.txt
/print_options

View File

@ -2,19 +2,284 @@ Never assume the API of libav* to be stable unless at least 1 month has passed
since the last major version increase or the API was added.
The last version increases were:
libavcodec: 2014-08-09
libavdevice: 2014-08-09
libavfilter: 2014-08-09
libavformat: 2014-08-09
libavresample: 2014-08-09
libpostproc: 2014-08-09
libswresample: 2014-08-09
libswscale: 2014-08-09
libavutil: 2014-08-09
libavcodec: 2015-08-28
libavdevice: 2015-08-28
libavfilter: 2015-08-28
libavformat: 2015-08-28
libavresample: 2015-08-28
libpostproc: 2015-08-28
libswresample: 2015-08-28
libswscale: 2015-08-28
libavutil: 2015-08-28
API changes, most recent first:
2016-07-09 - xxxxxxx / 90f469a - lavc 57.50.100 / 57.20.0 - avcodec.h
Add FF_PROFILE_H264_MULTIVIEW_HIGH and FF_PROFILE_H264_STEREO_HIGH.
2016-06-30 - c1c7e0ab - lavf 57.41.100 - avformat.h
Moved codecpar field from AVStream to the end of the struct, so that
the following private fields are in the same location as in FFmpeg 3.0 (lavf 57.25.100).
2016-06-30 - 042fb69d - lavu 55.28.100 - frame.h
Moved hw_frames_ctx field from AVFrame to the end of the struct, so that
the following private fields are in the same location as in FFmpeg 3.0 (lavu 55.17.103).
2016-06-29 - 1a751455 - lavfi 6.47.100 - avfilter.h
Fix accidental ABI breakage in AVFilterContext.
ABI was broken in 8688d3a, lavfi 6.42.100 and released as ffmpeg 3.1.
Because of this, ffmpeg and ffplay built against lavfi>=6.42.100 will not be
compatible with lavfi>=6.47.100. Potentially also affects other users of
libavfilter if they are using one of the affected fields.
-------- 8< --------- FFmpeg 3.1 was cut here -------- 8< ---------
2016-06-26 - 481f320 / 1c9e861 - lavu 55.27.100 / 55.13.0 - hwcontext.h
Add av_hwdevice_ctx_create().
2016-06-26 - b95534b / e47b8bb - lavc 57.48.101 / 57.19.1 - avcodec.h
Adjust values for JPEG 2000 profiles.
2016-06-23 - 5d75e46 / db7968b - lavf 57.40.100 / 57.7.0 - avio.h
Add AVIODataMarkerType, write_data_type, ignore_boundary_point and
avio_write_marker.
2016-06-23 - abb3cc4 / 0c4468d - lavu 55.26.100 / 55.12.0 - opt.h
Add av_stereo3d_type_name() and av_stereo3d_from_name().
2016-06-22 - 3689efe / c46db38 - lavu 55.25.100 / 55.11.0 - hwcontext_dxva2.h
Add new installed header with DXVA2-specific hwcontext definitions.
2016-04-27 - fb91871 - lavu 55.23.100 - log.h
Add a new function av_log_format_line2() which returns number of bytes
written to the target buffer.
2016-04-21 - 7fc329e - lavc 57.37.100 - avcodec.h
Add a new audio/video encoding and decoding API with decoupled input
and output -- avcodec_send_packet(), avcodec_receive_frame(),
avcodec_send_frame() and avcodec_receive_packet().
2016-04-17 - af9cac1 / 33d1898 - lavc 57.35.100 / 57.15.0 - avcodec.h
Add a new bitstream filtering API working with AVPackets.
Deprecate the old bitstream filtering API.
2016-04-14 - 8688d3a / 07a844f - lavfi 6.42.100 / 6.3.0 - avfilter.h
Add AVFilterContext.hw_device_ctx.
2016-04-14 - 28abb21 / 551c677 - lavu 55.22.100 / 55.9.0 - hwcontext_vaapi.h
Add new installed header with VAAPI-specific hwcontext definitions.
2016-04-14 - afccfaf / b1f01e8 - lavu 55.21.100 / 55.7.0 - hwcontext.h
Add AVHWFramesConstraints and associated API.
2016-04-11 - 6f69f7a / 9200514 - lavf 57.33.100 / 57.5.0 - avformat.h
Add AVStream.codecpar, deprecate AVStream.codec.
2016-04-02 - e8a9b64 - lavu 55.20.100 - base64.h
Add AV_BASE64_DECODE_SIZE(x) macro.
2016-xx-xx - lavc 57.33.100 / 57.14.0 - avcodec.h
f9b1cf1 / 998e1b8 - Add AVCodecParameters and its related API.
e6053b3 / a806834 - Add av_get_audio_frame_duration2().
2016-03-11 - 6d8ab35 - lavf/lavc 57.28.101
Add requirement to bitstream filtering API that returned packets with
size == 0 and side_data_elems == 0 are to be skipped by the caller.
2016-03-04 - 9362973 - lavf 57.28.100
Add protocol blacklisting API
2016-02-28 - 4dd4d53 - lavc 57.27.101
Validate AVFrame returned by get_buffer2 to have required
planes not NULL and unused planes set to NULL as crashes
and buffer overflow are possible with certain streams if
that is not the case.
2016-02-26 - 30e7685 - lavc 57.27.100 - avcodec.h
"flags2" decoding option now allows the flag "ass_ro_flush_noop" preventing
the reset of the ASS ReadOrder field on flush. This affects the content of
AVSubtitles.rects[N]->ass when "sub_text_format" is set to "ass" (see
previous entry).
2016-02-26 - 2941282 - lavc 57.26.100 - avcodec.h
Add a "sub_text_format" subtitles decoding option allowing the values "ass"
(recommended) and "ass_with_timings" (not recommended, deprecated, default).
The default value for this option will change to "ass" at the next major
libavcodec version bump.
The current default is "ass_with_timings" for compatibility. This means that
all subtitles text decoders currently still output ASS with timings printed
as strings in the AVSubtitles.rects[N]->ass fields.
Setting "sub_text_format" to "ass" allows a better timing accuracy (ASS
timing is limited to a 1/100 time base, so this is relevant for any subtitles
format needing a bigger one), ease timing adjustments, and prevents the need
of removing the timing from the decoded string yourself. This form is also
known as "the Matroska form". The timing information (start time, duration)
can be found in the AVSubtitles fields.
2016-02-24 - 7e49cdd / 7b3214d0 - lavc 57.25.100 / 57.13.0 - avcodec.h
Add AVCodecContext.hw_frames_ctx.
2016-02-24 - 1042402 / b3dd30d - lavfi 6.36.100 / 6.2.0 - avfilter.h
avfilter.h - Add AVFilterLink.hw_frames_ctx.
buffersrc.h - Add AVBufferSrcParameters and functions for handling it.
2016-02-23 - 14f7a3d - lavc 57.25.100
Add AV_PKT_DATA_MPEGTS_STREAM_ID for exporting the MPEGTS stream ID.
2016-02-18 - 08acab8 - lavu 55.18.100 - audio_fifo.h
Add av_audio_fifo_peek_at().
2016-xx-xx - lavu 55.18.100 / 55.6.0
26abd51 / 721a4ef buffer.h - Add av_buffer_pool_init2().
1a70878 / 89923e4 hwcontext.h - Add a new installed header hwcontext.h with a new API
for handling hwaccel frames.
6992276 / ad884d1 hwcontext_cuda.h - Add a new installed header hwcontext_cuda.h with
CUDA-specific hwcontext definitions.
d779d8d / a001ce3 hwcontext_vdpau.h - Add a new installed header hwcontext_vdpau.h with
VDPAU-specific hwcontext definitions.
63c3e35 / 7bc780c pixfmt.h - Add AV_PIX_FMT_CUDA.
-------- 8< --------- FFmpeg 3.0 was cut here -------- 8< ---------
2016-02-10 - bc9a596 / 9f61abc - lavf 57.25.100 / 57.3.0 - avformat.h
Add AVFormatContext.opaque, io_open and io_close, allowing custom IO
2016-02-01 - 1dba837 - lavf 57.24.100 - avformat.h, avio.h
Add protocol_whitelist to AVFormatContext, AVIOContext
2016-01-31 - 66e9d2f - lavu 55.17.100 - frame.h
Add AV_FRAME_DATA_GOP_TIMECODE for exporting MPEG1/2 GOP timecodes.
2016-01-01 - 5e8b053 / 2c68113 - lavc 57.21.100 / 57.12.0 - avcodec.h
Add AVCodecDescriptor.profiles and avcodec_profile_name().
2015-12-28 - 1f9139b - lavf 57.21.100 - avformat.h
Add automatic bitstream filtering; add av_apply_bitstream_filters()
2015-12-22 - 39a09e9 - lavfi 6.21.101 - avfilter.h
Deprecate avfilter_link_set_closed().
Applications are not supposed to mess with links,
they should close the sinks.
2015-12-17 - lavc 57.18.100 / 57.11.0 - avcodec.h dirac.h
xxxxxxx - Add av_packet_add_side_data().
xxxxxxx - Add AVCodecContext.coded_side_data.
xxxxxxx - Add AVCPBProperties API.
xxxxxxx - Add a new public header dirac.h containing
av_dirac_parse_sequence_header()
2015-12-11 - 676a93f - lavf 57.20.100 - avformat.h
Add av_program_add_stream_index()
2015-11-29 - 93fb4a4 - lavc 57.16.101 - avcodec.h
Deprecate rtp_callback without replacement, i.e. it won't be possible to
get image slices before the full frame is encoded any more. The libavformat
rtpenc muxer can still be used for RFC-2190 packetization.
2015-11-22 - fe20e34 - lavc 57.16.100 - avcodec.h
Add AV_PKT_DATA_FALLBACK_TRACK for making fallback associations between
streams.
2015-11-22 - ad317c9 - lavf 57.19.100 - avformat.h
Add av_stream_new_side_data().
2015-11-22 - e12f403 - lavu 55.8.100 - xtea.h
Add av_xtea_le_init and av_xtea_le_crypt
2015-11-18 - lavu 55.7.100 - mem.h
Add av_fast_mallocz()
2015-10-29 - lavc 57.12.100 / 57.8.0 - avcodec.h
xxxxxx - Deprecate av_free_packet(). Use av_packet_unref() as replacement,
it resets the packet in a more consistent way.
xxxxxx - Deprecate av_dup_packet(), it is a no-op for most cases.
Use av_packet_ref() to make a non-refcounted AVPacket refcounted.
xxxxxx - Add av_packet_alloc(), av_packet_clone(), av_packet_free().
They match the AVFrame functions with the same name.
2015-10-27 - 1e477a9 - lavu 55.5.100 - cpu.h
Add AV_CPU_FLAG_AESNI.
2015-10-22 - ee573b4 / a17a766 - lavc 57.9.100 / 57.5.0 - avcodec.h
Add data and linesize array to AVSubtitleRect, to be used instead of
the ones from the embedded AVPicture.
2015-10-22 - 866a417 / dc923bc - lavc 57.8.100 / 57.0.0 - qsv.h
Add an API for allocating opaque surfaces.
2015-10-15 - 2c2d162 - lavf 57.4.100
Remove the latm demuxer that was a duplicate of the loas demuxer.
2015-10-14 - b994788 / 11c5f43 - lavu 55.4.100 / 55.2.0 - dict.h
Change return type of av_dict_copy() from void to int, so that a proper
error code can be reported.
2015-09-29 - b01891a / 948f3c1 - lavc 57.3.100 / 57.2.0 - avcodec.h
Change type of AVPacket.duration from int to int64_t.
2015-09-17 - 7c46f24 / e3d4784 - lavc 57.3.100 / 57.2.0 - d3d11va.h
Add av_d3d11va_alloc_context(). This function must from now on be used for
allocating AVD3D11VAContext.
2015-09-15 - lavf 57.2.100 - avformat.h
probesize and max_analyze_duration switched to 64bit, both
are only accessible through AVOptions
2015-09-15 - lavf 57.1.100 - avformat.h
bit_rate was changed to 64bit, make sure you update any
printf() or other type sensitive code
2015-09-15 - lavc 57.2.100 - avcodec.h
bit_rate/rc_max_rate/rc_min_rate were changed to 64bit, make sure you update
any printf() or other type sensitive code
2015-09-07 - lavu 55.0.100 / 55.0.0
c734b34 / b8b5d82 - Change type of AVPixFmtDescriptor.flags from uint8_t to uint64_t.
f53569a / 6b3ef7f - Change type of AVComponentDescriptor fields from uint16_t to int
and drop bit packing.
151aa2e / 2268db2 - Add step, offset, and depth to AVComponentDescriptor to replace
the deprecated step_minus1, offset_plus1, and depth_minus1.
-------- 8< --------- FFmpeg 2.8 was cut here -------- 8< ---------
2015-08-27 - 1dd854e1 - lavc 56.58.100 - vaapi.h
Deprecate old VA-API context (vaapi_context) fields that were only
set and used by libavcodec. They are all managed internally now.
2015-08-19 - 9f8e57ef - lavu 54.31.100 - pixfmt.h
Add a unique pixel format for VA-API (AV_PIX_FMT_VAAPI) that
indicates the nature of the underlying storage: a VA surface. This
yields the same value as AV_PIX_FMT_VAAPI_VLD.
Deprecate old VA-API related pixel formats: AV_PIX_FMT_VAAPI_MOCO,
AV_PIX_FMT_VAAPI_IDCT, AV_PIX_FMT_VAAPI_VLD.
2015-08-02 - lavu 54.30.100 / 54.17.0
9ed59f1 / 7a7df34c - Add av_blowfish_alloc().
a130ec9 / ae365453 - Add av_rc4_alloc().
9ca1997 / 5d8bea3b - Add av_xtea_alloc().
3cf08e9 / d9e8b47e - Add av_des_alloc().
2015-07-27 - lavc 56.56.100 / 56.35.0 - avcodec.h
94d68a4 / 7c6eb0a1 - Rename CODEC_FLAG* defines to AV_CODEC_FLAG*.
444e987 / def97856 - Rename CODEC_CAP_* defines to AV_CODEC_CAP_*.
29d147c / 059a9348 - Rename FF_INPUT_BUFFER_PADDING_SIZE and FF_MIN_BUFFER_SIZE
to AV_INPUT_BUFFER_PADDING_SIZE and AV_INPUT_BUFFER_MIN_SIZE.
2015-07-22 - c40ecff - lavc 56.51.100 - avcodec.h
Add AV_PKT_DATA_QUALITY_STATS to export the quality value, PSNR, and pict_type
of an AVPacket.
2015-07-16 - 8dad213 - lavc 56.49.100
Add av_codec_get_codec_properties(), FF_CODEC_PROPERTY_LOSSLESS
and FF_CODEC_PROPERTY_CLOSED_CAPTIONS
2015-07-03 - d563e13 / 83212943 - lavu 54.28.100 / 56.15.0
Add av_version_info().
-------- 8< --------- FFmpeg 2.7 was cut here -------- 8< ---------
2015-06-04 - cc17b43 - lswr 1.2.100
@ -692,6 +957,9 @@ API changes, most recent first:
av_ripemd_update()
av_ripemd_final()
2013-06-10 - 82ef670 - lavu 52.35.101 - hmac.h
Add AV_HMAC_SHA224, AV_HMAC_SHA256, AV_HMAC_SHA384, AV_HMAC_SHA512
2013-06-04 - 30b491f / fc962d4 - lavu 52.35.100 / 52.13.0 - mem.h
Add av_realloc_array and av_reallocp_array
@ -944,7 +1212,7 @@ lavd 54.4.100 / 54.0.0, lavfi 3.5.0
* base -- is now stored in AVBufferRef
* reference, type, buffer_hints -- are unnecessary in the new API
* hwaccel_picture_private, owner, thread_opaque -- should not
have been acessed from outside of lavc
have been accessed from outside of lavc
* qscale_table, qstride, qscale_type, mbskip_table, motion_val,
mb_type, dct_coeff, ref_index -- mpegvideo-specific tables,
which are not exported anymore.
@ -981,15 +1249,14 @@ lavd 54.4.100 / 54.0.0, lavfi 3.5.0
Add avresample_set_channel_mapping() for input channel reordering,
duplication, and silencing.
2012-12-29 - 2ce43b3 / d8fd06c - lavu 52.13.100 / 52.3.0 - avstring.h
Add av_basename() and av_dirname().
2012-12-29 - lavu 52.13.100 / 52.3.0 - avstring.h
2ce43b3 / d8fd06c - Add av_basename() and av_dirname().
e13d5e9 / c1a02e8 - Add av_pix_fmt_get_chroma_sub_sample and deprecate
avcodec_get_chroma_sub_sample.
2012-11-11 - 03b0787 / 5980f5d - lavu 52.6.100 / 52.2.0 - audioconvert.h
Rename audioconvert.h to channel_layout.h. audioconvert.h is now deprecated.
2012-11-05 - 7d26be6 / dfde8a3 - lavu 52.5.100 / 52.1.0 - intmath.h
Add av_ctz() for trailing zero bit count
2012-10-21 - e3a91c5 / a893655 - lavu 51.77.100 / 51.45.0 - error.h
Add AVERROR_EXPERIMENTAL

File diff suppressed because it is too large Load Diff

View File

@ -36,7 +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_DIR_CMD_EXAMPLE) += avio_dir_cmd
DOC_EXAMPLES-$(CONFIG_AVIO_READING_EXAMPLE) += avio_reading
DOC_EXAMPLES-$(CONFIG_AVCODEC_EXAMPLE) += avcodec
DOC_EXAMPLES-$(CONFIG_DECODING_ENCODING_EXAMPLE) += decoding_encoding
@ -124,11 +124,12 @@ $(DOCS) doc/doxy/html: | doc/
$(DOC_EXAMPLES:%$(EXESUF)=%.o): | doc/examples
OBJDIRS += doc/examples
DOXY_INPUT = $(addprefix $(SRC_PATH)/, $(INSTHEADERS) $(DOC_EXAMPLES:%$(EXESUF)=%.c) $(LIB_EXAMPLES:%$(EXESUF)=%.c))
DOXY_INPUT = $(INSTHEADERS) $(DOC_EXAMPLES:%$(EXESUF)=%.c) $(LIB_EXAMPLES:%$(EXESUF)=%.c)
DOXY_INPUT_DEPS = $(addprefix $(SRC_PATH)/, $(DOXY_INPUT)) config.mak
doc/doxy/html: TAG = DOXY
doc/doxy/html: $(SRC_PATH)/doc/Doxyfile $(SRC_PATH)/doc/doxy-wrapper.sh $(DOXY_INPUT)
$(M)$(SRC_PATH)/doc/doxy-wrapper.sh $(SRC_PATH) $< $(DOXYGEN) $(DOXY_INPUT)
doc/doxy/html: $(SRC_PATH)/doc/Doxyfile $(SRC_PATH)/doc/doxy-wrapper.sh $(DOXY_INPUT_DEPS)
$(M)OUT_DIR=$$PWD/doc/doxy; cd $(SRC_PATH); ./doc/doxy-wrapper.sh $$OUT_DIR $< $(DOXYGEN) $(DOXY_INPUT);
install-doc: install-html install-man

View File

@ -67,6 +67,10 @@ the header stored in extradata to the key packets:
ffmpeg -i INPUT -map 0 -flags:v +global_header -c:v libx264 -bsf:v dump_extra out.ts
@end example
@section dca_core
Extract DCA core from DTS-HD streams.
@section h264_mp4toannexb
Convert an H.264 bitstream from length prefixed mode to start code

View File

@ -9,7 +9,7 @@ V
DBG
Preprocess x86 external assembler files to a .dbg.asm file in the object
directory, which then gets compiled. Helps developping those assembler
directory, which then gets compiled. Helps in developing those assembler
files.
DESTDIR
@ -25,10 +25,10 @@ all
Default target, builds all the libraries and the executables.
fate
Run the fate test suite, note you must have installed it
Run the fate test suite, note that you must have installed it.
fate-list
Will list all fate/regression test targets
List all fate/regression test targets.
install
Install headers, libraries and programs.
@ -39,26 +39,23 @@ examples
libavformat/output-example
Build the libavformat basic example.
libavcodec/api-example
Build the libavcodec basic example.
libswscale/swscale-test
Build the swscale self-test (useful also as example).
Build the swscale self-test (useful also as an example).
config
Reconfigure the project with current configuration.
Reconfigure the project with the current configuration.
Useful standard make commands:
make -t <target>
Touch all files that otherwise would be build, this is useful to reduce
unneeded rebuilding when changing headers, but note you must force rebuilds
Touch all files that otherwise would be built, this is useful to reduce
unneeded rebuilding when changing headers, but note that you must force rebuilds
of files that actually need it by hand then.
make -j<num>
rebuild with multiple jobs at the same time. Faster on multi processor systems
Rebuild with multiple jobs at the same time. Faster on multi processor systems.
make -k
continue build in case of errors, this is useful for the regression tests
sometimes but note it will still not run all reg tests.
Continue build in case of errors, this is useful for the regression tests
sometimes but note that it will still not run all reg tests.

View File

@ -129,7 +129,7 @@ should be @code{1 / frame_rate} and timestamp increments should be
identically 1.
@item g @var{integer} (@emph{encoding,video})
Set the group of picture size. Default value is 12.
Set the group of picture (GOP) size. Default value is 12.
@item ar @var{integer} (@emph{decoding/encoding,audio})
Set audio sampling rate (in Hz).
@ -257,7 +257,7 @@ Specify how strictly to follow the standards.
Possible values:
@table @samp
@item very
strictly conform to a older more strict version of the spec or reference software
strictly conform to an older more strict version of the spec or reference software
@item strict
strictly conform to all the things in the spec no matter what consequences
@item normal
@ -456,6 +456,9 @@ Possible values:
@item aspect @var{rational number} (@emph{encoding,video})
Set sample aspect ratio.
@item sar @var{rational number} (@emph{encoding,video})
Set sample aspect ratio. Alias to @var{aspect}.
@item debug @var{flags} (@emph{decoding/encoding,audio,video,subtitles})
Print specific debug info.
@ -475,6 +478,9 @@ per-block quantization parameter (QP)
motion vector
@item dct_coeff
@item green_metadata
display complexity metadata for the upcoming frame, GoP or for a given duration.
@item skip
@item startcode
@ -814,13 +820,17 @@ for codecs that support it. See also @file{doc/examples/export_mvs.c}.
Deprecated, use mpegvideo private options instead.
@item threads @var{integer} (@emph{decoding/encoding,video})
Set the number of threads to be used, in case the selected codec
implementation supports multi-threading.
Possible values:
@table @samp
@item auto
detect a good number of threads
@item auto, 0
automatically select the number of threads to set
@end table
Default value is @samp{auto}.
@item me_threshold @var{integer} (@emph{encoding,video})
Set motion estimation threshold.
@ -1040,9 +1050,44 @@ Possible values:
@item rc_min_vbv_use @var{float} (@emph{encoding,video})
@item ticks_per_frame @var{integer} (@emph{decoding/encoding,audio,video})
@item color_primaries @var{integer} (@emph{decoding/encoding,video})
@item color_trc @var{integer} (@emph{decoding/encoding,video})
Possible values:
@table @samp
@item bt709
BT.709
@item gamma22
BT.470 M
@item gamma28
BT.470 BG
@item linear
SMPTE 170 M
@item log
SMPTE 240 M
@item log_sqrt
Linear
@item iec61966_2_4
Log
@item bt1361
Log square root
@item iec61966_2_1
IEC 61966-2-4
@item bt2020_10bit
BT.1361
@item bt2020_12bit
IEC 61966-2-1
@item smpte2084
BT.2020 - 10 bit
@item smpte428_1
BT.2020 - 12 bit
@end table
@item colorspace @var{integer} (@emph{decoding/encoding,video})
@item color_range @var{integer} (@emph{decoding/encoding,video})
If used as input parameter, it serves as a hint to the decoder, which
color_range the input has.
@item chroma_sample_location @var{integer} (@emph{decoding/encoding,video})
@item log_level_offset @var{integer}

View File

@ -25,6 +25,13 @@ enabled decoders.
A description of some of the currently available video decoders
follows.
@section hevc
HEVC / H.265 decoder.
Note: the @option{skip_loop_filter} option has effect only at level
@code{all}.
@section rawvideo
Raw video decoder.
@ -95,7 +102,7 @@ This decoder aims to implement the complete FLAC specification from Xiph.
@item -use_buggy_lpc
The lavc FLAC encoder used to produce buggy streams with high lpc values
(like the default value). This option allows to decode such streams
(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
@ -188,6 +195,25 @@ without this library.
@chapter Subtitles Decoders
@c man begin SUBTILES DECODERS
@section dvbsub
@subsection Options
@table @option
@item compute_clut
@table @option
@item -1
Compute clut if no matching CLUT is in the stream.
@item 0
Never compute CLUT
@item 1
Always compute CLUT and override the one provided in the stream.
@end table
@item dvb_substream
Selects the dvb substream, or all substreams if -1 which is default.
@end table
@section dvdsub
This codec decodes the bitmap subtitles used in DVDs; the same subtitles can
@ -253,10 +279,16 @@ present between the subtitle lines because of double-sized teletext charactes.
Default value is 1.
@item txt_duration
Sets the display duration of the decoded teletext pages or subtitles in
miliseconds. Default value is 30000 which is 30 seconds.
milliseconds. Default value is 30000 which is 30 seconds.
@item txt_transparent
Force transparent background of the generated teletext bitmaps. Default value
is 0 which means an opaque (black) background.
is 0 which means an opaque background.
@item txt_opacity
Sets the opacity (0-255) of the teletext background. If
@option{txt_transparent} is not set, it only affects characters between a start
box and an end box, typically subtitles. Default value is 0 if
@option{txt_transparent} is set, 255 otherwise.
@end table
@c man end SUBTILES DECODERS

View File

@ -18,6 +18,12 @@ enabled demuxers.
The description of some of the currently available demuxers follows.
@section aa
Audible Format 2, 3, and 4 demuxer.
This demuxer is used to demux Audible Format 2, 3, and 4 (.aa) files.
@section applehttp
Apple HTTP Live Streaming demuxer.
@ -98,7 +104,7 @@ All subsequent file-related directives apply to that file.
@item @code{ffconcat version 1.0}
Identify the script type and version. It also sets the @option{safe} option
to 1 if it was to its default -1.
to 1 if it was -1.
To make FFmpeg recognize the format automatically, this directive must
appears exactly as is (no extra space or byte-order-mark) on the very first
@ -112,6 +118,47 @@ file is not available or accurate.
If the duration is set for all files, then it is possible to seek in the
whole concatenated video.
@item @code{inpoint @var{timestamp}}
In point of the file. When the demuxer opens the file it instantly seeks to the
specified timestamp. Seeking is done so that all streams can be presented
successfully at In point.
This directive works best with intra frame codecs, because for non-intra frame
ones you will usually get extra packets before the actual In point and the
decoded content will most likely contain frames before In point too.
For each file, packets before the file In point will have timestamps less than
the calculated start timestamp of the file (negative in case of the first
file), and the duration of the files (if not specified by the @code{duration}
directive) will be reduced based on their specified In point.
Because of potential packets before the specified In point, packet timestamps
may overlap between two concatenated files.
@item @code{outpoint @var{timestamp}}
Out point of the file. When the demuxer reaches the specified decoding
timestamp in any of the streams, it handles it as an end of file condition and
skips the current and all the remaining packets from all streams.
Out point is exclusive, which means that the demuxer will not output packets
with a decoding timestamp greater or equal to Out point.
This directive works best with intra frame codecs and formats where all streams
are tightly interleaved. For non-intra frame codecs you will usually get
additional packets with presentation timestamp after Out point therefore the
decoded content will most likely contain frames after Out point too. If your
streams are not tightly interleaved you may not get all the packets from all
streams before Out point and you may only will be able to decode the earliest
stream until Out point.
The duration of the files (if not specified by the @code{duration}
directive) will be reduced based on their specified Out point.
@item @code{file_packet_metadata @var{key=value}}
Metadata of the packets of the file. The specified metadata will be set for
each file packet. You can specify this directive multiple times to add multiple
metadata entries.
@item @code{stream}
Introduce a stream in the virtual file.
All subsequent stream-related directives apply to the last introduced
@ -145,7 +192,9 @@ component.
If set to 0, any file name is accepted.
The default is -1, it is equivalent to 1 if the format was automatically
The default is 1.
-1 is equivalent to 1 if the format was automatically
probed and 0 otherwise.
@item auto_convert
@ -157,8 +206,43 @@ Currently, the only conversion is adding the h264_mp4toannexb bitstream
filter to H.264 streams in MP4 format. This is necessary in particular if
there are resolution changes.
@item segment_time_metadata
If set to 1, every packet will contain the @var{lavf.concat.start_time} and the
@var{lavf.concat.duration} packet metadata values which are the start_time and
the duration of the respective file segments in the concatenated output
expressed in microseconds. The duration metadata is only set if it is known
based on the concat file.
The default is 0.
@end table
@subsection Examples
@itemize
@item
Use absolute filenames and include some comments:
@example
# my first filename
file /mnt/share/file-1.wav
# my second filename including whitespace
file '/mnt/share/file 2.wav'
# my third filename including whitespace plus single quote
file '/mnt/share/file 3'\''.wav'
@end example
@item
Allow for input format auto-probing, use safe filenames and set the duration of
the first file:
@example
ffconcat version 1.0
file file-1.wav
duration 20.0
file subdir/file-2.wav
@end example
@end itemize
@section flv
Adobe Flash Video Format demuxer.
@ -183,17 +267,32 @@ track. Track indexes start at 0. The demuxer exports the number of tracks as
For very large files, the @option{max_size} option may have to be adjusted.
@section libquvi
@section libopenmpt
Play media from Internet services using the quvi project.
libopenmpt based module demuxer
The demuxer accepts a @option{format} option to request a specific quality. It
is by default set to @var{best}.
See @url{https://lib.openmpt.org/libopenmpt/} for more information.
See @url{http://quvi.sourceforge.net/} for more information.
Some files have multiple subsongs (tracks) this can be set with the @option{subsong}
option.
FFmpeg needs to be built with @code{--enable-libquvi} for this demuxer to be
enabled.
It accepts the following options:
@table @option
@item subsong
Set the subsong index. This can be either 'all', 'auto', or the index of the
subsong. Subsong indexes start at 0. The default is 'auto'.
The default value is to let libopenmpt choose.
@item layout
Set the channel layout. Valid values are 1, 2, and 4 channel layouts.
The default value is STEREO.
@item sample_rate
Set the sample rate for libopenmpt to output.
Range is from 1000 to INT_MAX. The value default is 48000.
@end table
@section gif
@ -369,17 +468,62 @@ ffmpeg -framerate 10 -pattern_type glob -i "*.png" out.mkv
@end example
@end itemize
@section mov/mp4/3gp/QuickTime
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.
This demuxer accepts the following options:
@table @option
@item resync_size
Set size limit for looking up a new synchronization. Default value is
65536.
@item fix_teletext_pts
Overrides teletext packet PTS and DTS values with the timestamps calculated
Override teletext packet PTS and DTS values with the timestamps calculated
from the PCR of the first program which the teletext stream is part of and is
not discarded. Default value is 1, set this option to 0 if you want your
teletext packet PTS and DTS values untouched.
@item ts_packetsize
Output option carrying the raw packet size in bytes.
Show the detected raw packet size, cannot be set by the user.
@item scan_all_pmts
Scan and combine all PMTs. The value is an integer with value from -1
to 1 (-1 means automatic setting, 1 means enabled, 0 means
disabled). Default value is -1.
@end table
@section mpjpeg
MJPEG encapsulated in multi-part MIME demuxer.
This demuxer allows reading of MJPEG, where each frame is represented as a part of
multipart/x-mixed-replace stream.
@table @option
@item strict_mime_boundary
Default implementation applies a relaxed standard to multi-part MIME boundary detection,
to prevent regression with numerous existing endpoints not generating a proper MIME
MJPEG stream. Turning this option on by setting it to 1 will result in a stricter check
of the boundary value.
@end table
@section rawvideo

View File

@ -28,14 +28,14 @@ this document.
For more detailed legal information about the use of FFmpeg in
external programs read the @file{LICENSE} file in the source tree and
consult @url{http://ffmpeg.org/legal.html}.
consult @url{https://ffmpeg.org/legal.html}.
@section Contributing
There are 3 ways by which code gets into ffmpeg.
There are 3 ways by which code gets into FFmpeg.
@itemize @bullet
@item Submitting Patches to the main developer mailing list
see @ref{Submitting patches} for details.
@item Submitting patches to the main developer mailing list.
See @ref{Submitting patches} for details.
@item Directly committing changes to the main tree.
@item Committing changes to a git clone, for example on github.com or
gitorious.org. And asking us to merge these changes.
@ -65,6 +65,9 @@ rejected by the git repository.
@item
You should try to limit your code lines to 80 characters; however, do so if
and only if this improves readability.
@item
K&R coding style is used.
@end itemize
The presentation is one inspired by 'indent -i4 -kr -nut'.
@ -124,10 +127,10 @@ the @samp{inline} keyword;
@samp{//} comments;
@item
designated struct initializers (@samp{struct s x = @{ .i = 17 @};})
designated struct initializers (@samp{struct s x = @{ .i = 17 @};});
@item
compound literals (@samp{x = (struct s) @{ 17, 23 @};})
compound literals (@samp{x = (struct s) @{ 17, 23 @};}).
@end itemize
These features are supported by all compilers we care about, so we will not
@ -156,7 +159,7 @@ GCC statement expressions (@samp{(x = (@{ int y = 4; y; @})}).
All names should be composed with underscores (_), not CamelCase. For example,
@samp{avfilter_get_video_buffer} is an acceptable function name and
@samp{AVFilterGetVideo} is not. The exception from this are type names, like
for example structs and enums; they should always be in the CamelCase
for example structs and enums; they should always be in CamelCase.
There are the following conventions for naming variables and functions:
@ -394,12 +397,41 @@ or obfuscates the code.
Make sure that no parts of the codebase that you maintain are missing from the
@file{MAINTAINERS} file. If something that you want to maintain is missing add it with
your name after it.
If at some point you no longer want to maintain some code, then please help
finding a new maintainer and also don't forget updating the @file{MAINTAINERS} file.
If at some point you no longer want to maintain some code, then please help in
finding a new maintainer and also don't forget to update the @file{MAINTAINERS} file.
@end enumerate
We think our rules are not too hard. If you have comments, contact us.
@section Code of conduct
Be friendly and respectful towards others and third parties.
Treat others the way you yourself want to be treated.
Be considerate. Not everyone shares the same viewpoint and priorities as you do.
Different opinions and interpretations help the project.
Looking at issues from a different perspective assists development.
Do not assume malice for things that can be attributed to incompetence. Even if
it is malice, it's rarely good to start with that as initial assumption.
Stay friendly even if someone acts contrarily. Everyone has a bad day
once in a while.
If you yourself have a bad day or are angry then try to take a break and reply
once you are calm and without anger if you have to.
Try to help other team members and cooperate if you can.
The goal of software development is to create technical excellence, not for any
individual to be better and "win" against the others. Large software projects
are only possible and successful through teamwork.
If someone struggles do not put them down. Give them a helping hand
instead and point them in the right direction.
Finally, keep in mind the immortal words of Bill and Ted,
"Be excellent to each other."
@anchor{Submitting patches}
@section Submitting patches
@ -407,7 +439,7 @@ First, read the @ref{Coding Rules} above if you did not yet, in particular
the rules regarding patch submission.
When you submit your patch, please use @code{git format-patch} or
@code{git send-email}. We cannot read other diffs :-)
@code{git send-email}. We cannot read other diffs :-).
Also please do not submit a patch which contains several unrelated changes.
Split it into separate, self-contained pieces. This does not mean splitting
@ -430,7 +462,7 @@ Also please if you send several patches, send each patch as a separate mail,
do not attach several unrelated patches to the same mail.
Patches should be posted to the
@uref{http://lists.ffmpeg.org/mailman/listinfo/ffmpeg-devel, ffmpeg-devel}
@uref{https://lists.ffmpeg.org/mailman/listinfo/ffmpeg-devel, ffmpeg-devel}
mailing list. Use @code{git send-email} when possible since it will properly
send patches without requiring extra care. If you cannot, then send patches
as base64-encoded attachments, so your patch is not trashed during
@ -543,6 +575,10 @@ tools/trasher, the noise bitstream filter, and
should not crash, end in a (near) infinite loop, or allocate ridiculous
amounts of memory when fed damaged data.
@item
Did you test your decoder or demuxer against sample files?
Samples may be obtained at @url{https://samples.ffmpeg.org}.
@item
Does the patch not mix functional and cosmetic changes?
@ -563,7 +599,7 @@ If the patch fixes a bug, did you provide a verbose analysis of the bug?
If the patch fixes a bug, did you provide enough information, including
a sample, so the bug can be reproduced and the fix can be verified?
Note please do not attach samples >100k to mails but rather provide a
URL, you can upload to ftp://upload.ffmpeg.org
URL, you can upload to ftp://upload.ffmpeg.org.
@item
Did you provide a verbose summary about what the patch does change?
@ -592,10 +628,10 @@ Lines with similar content should be aligned vertically when doing so
improves readability.
@item
Consider to add a regression test for your code.
Consider adding a regression test for your code.
@item
If you added YASM code please check that things still work with --disable-yasm
If you added YASM code please check that things still work with --disable-yasm.
@item
Make sure you check the return values of function and return appropriate
@ -633,6 +669,10 @@ not related to the comments received during review. Such patches will
be rejected. Instead, submit significant changes or new features as
separate patches.
Everyone is welcome to review patches. Also if you are waiting for your patch
to be reviewed, please consider helping to review other patches, that is a great
way to get everyone's patches reviewed sooner.
@anchor{Regression tests}
@section Regression tests
@ -656,7 +696,6 @@ Once you have a working fate test and fate sample, provide in the commit
message or introductory message for the patch series that you post to
the ffmpeg-devel mailing list, a direct link to download the sample media.
@subsection Visualizing Test Coverage
The FFmpeg build system allows visualizing the test coverage in an easy
@ -704,7 +743,7 @@ FFmpeg maintains a set of @strong{release branches}, which are the
recommended deliverable for system integrators and distributors (such as
Linux distributions, etc.). At regular times, a @strong{release
manager} prepares, tests and publishes tarballs on the
@url{http://ffmpeg.org} website.
@url{https://ffmpeg.org} website.
There are two kinds of releases:
@ -783,7 +822,7 @@ Prepare the release tarballs in @code{bz2} and @code{gz} formats, and
supplementing files that contain @code{gpg} signatures
@item
Publish the tarballs at @url{http://ffmpeg.org/releases}. Create and
Publish the tarballs at @url{https://ffmpeg.org/releases}. Create and
push an annotated tag in the form @code{nX}, with @code{X}
containing the version number.
@ -795,7 +834,7 @@ with a news entry for the website.
Publish the news entry.
@item
Send announcement to the mailing list.
Send an announcement to the mailing list.
@end enumerate
@bye

View File

@ -1,21 +1,21 @@
#!/bin/sh
SRC_PATH="${1}"
OUT_DIR="${1}"
DOXYFILE="${2}"
DOXYGEN="${3}"
shift 3
if [ -e "$SRC_PATH/VERSION" ]; then
VERSION=`cat "$SRC_PATH/VERSION"`
if [ -e "VERSION" ]; then
VERSION=`cat "VERSION"`
else
VERSION=`cd "$SRC_PATH"; git describe`
VERSION=`git describe`
fi
$DOXYGEN - <<EOF
@INCLUDE = ${DOXYFILE}
INPUT = $@
EXAMPLE_PATH = ${SRC_PATH}/doc/examples
HTML_TIMESTAMP = NO
PROJECT_NUMBER = $VERSION
OUTPUT_DIRECTORY = $OUT_DIR
EOF

1
doc/doxy/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/html/

View File

@ -30,81 +30,119 @@ follows.
Advanced Audio Coding (AAC) encoder.
This encoder is an experimental FFmpeg-native AAC encoder. Currently only the
low complexity (AAC-LC) profile is supported. To use this encoder, you must set
@option{strict} option to @samp{experimental} or lower.
As this encoder is experimental, unexpected behavior may exist from time to
time. For a more stable AAC encoder, see @ref{libvo-aacenc}. However, be warned
that it has a worse quality reported by some users.
@c todo @ref{libaacplus}
See also @ref{libfdk-aac-enc,,libfdk_aac} and @ref{libfaac}.
This encoder is the default AAC encoder, natively implemented into FFmpeg. Its
quality is on par or better than libfdk_aac at the default bitrate of 128kbps.
This encoder also implements more options, profiles and samplerates than
other encoders (with only the AAC-HE profile pending to be implemented) so this
encoder has become the default and is the recommended choice.
@subsection Options
@table @option
@item b
Set bit rate in bits/s. Setting this automatically activates constant bit rate
(CBR) mode.
(CBR) mode. If this option is unspecified it is set to 128kbps.
@item q
Set quality for variable bit rate (VBR) mode. This option is valid only using
the @command{ffmpeg} command-line tool. For library interface users, use
@option{global_quality}.
@item stereo_mode
Set stereo encoding mode. Possible values:
@table @samp
@item auto
Automatically selected by the encoder.
@item ms_off
Disable middle/side encoding. This is the default.
@item ms_force
Force middle/side encoding.
@end table
@item cutoff
Set cutoff frequency. If unspecified will allow the encoder to dynamically
adjust the cutoff to improve clarity on low bitrates.
@item aac_coder
Set AAC encoder coding method. Possible values:
@table @samp
@item faac
FAAC-inspired method.
This method is a simplified reimplementation of the method used in FAAC, which
sets thresholds proportional to the band energies, and then decreases all the
thresholds with quantizer steps to find the appropriate quantization with
distortion below threshold band by band.
The quality of this method is comparable to the two loop searching method
described below, but somewhat a little better and slower.
@item anmr
Average noise to mask ratio (ANMR) trellis-based solution.
This has a theoretic best quality out of all the coding methods, but at the
cost of the slowest speed.
@item twoloop
Two loop searching (TLS) method.
This method first sets quantizers depending on band thresholds and then tries
to find an optimal combination by adding or subtracting a specific value from
all quantizers and adjusting some individual quantizer a little.
Will tune itself based on whether aac_is/aac_ms/aac_pns are enabled.
This is the default choice for a coder.
This method produces similar quality with the FAAC method and is the default.
@item anmr
Average noise to mask ratio (ANMR) trellis-based solution.
This is an experimental coder which currently produces a lower quality, is more
unstable and is slower than the default twoloop coder but has potential.
Currently has no support for the @option{aac_is} or @option{aac_pns} options.
Not currently recommended.
@item fast
Constant quantizer method.
This method sets a constant quantizer for all bands. This is the fastest of all
the methods, yet produces the worst quality.
the methods and has no rate control or support for @option{aac_is} or
@option{aac_pns}.
Not recommended.
@end table
@item aac_ms
Sets mid/side coding mode. The default value of auto will automatically use
M/S with bands which will benefit from such coding. Can be forced for all bands
using the value "enable", which is mainly useful for debugging or disabled using
"disable".
@item aac_is
Sets intensity stereo coding tool usage. By default, it's enabled and will
automatically toggle IS for similar pairs of stereo bands if it's benefitial.
Can be disabled for debugging by setting the value to "disable".
@item aac_pns
Uses perceptual noise substitution to replace low entropy high frequency bands
with imperceivable white noise during the decoding process. By default, it's
enabled, but can be disabled for debugging purposes by using "disable".
@item aac_tns
Enables the use of a multitap FIR filter which spans through the high frequency
bands to hide quantization noise during the encoding process and is reverted
by the decoder. As well as decreasing unpleasant artifacts in the high range
this also reduces the entropy in the high bands and allows for more bits to
be used by the mid-low bands. By default it's enabled but can be disabled for
debugging by setting the option to "disable".
@item aac_ltp
Enables the use of the long term prediction extension which increases coding
efficiency in very low bandwidth situations such as encoding of voice or
solo piano music by extending constant harmonic peaks in bands throughout
frames. This option is implied by profile:a aac_low and is incompatible with
aac_pred. Use in conjunction with @option{-ar} to decrease the samplerate.
@item aac_pred
Enables the use of a more traditional style of prediction where the spectral
coefficients transmitted are replaced by the difference of the current
coefficients minus the previous "predicted" coefficients. In theory and sometimes
in practice this can improve quality for low to mid bitrate audio.
This option implies the aac_main profile and is incompatible with aac_ltp.
@item profile
Sets the encoding profile, possible values:
@table @samp
@item aac_low
The default, AAC "Low-complexity" profile. Is the most compatible and produces
decent quality.
@item mpeg2_aac_low
Equivalent to -profile:a aac_low -aac_pns 0. PNS was introduced with the MPEG4
specifications.
@item aac_ltp
Long term prediction profile, is enabled by and will enable the aac_ltp option.
Introduced in MPEG4.
@item aac_main
Main-type prediction profile, is enabled by and will enable the aac_pred option.
Introduced in MPEG2.
If this option is unspecified it is set to @samp{aac_low}.
@end table
@end table
@section ac3 and ac3_fixed
@ -578,16 +616,14 @@ and slightly improves compression.
libfaac AAC (Advanced Audio Coding) encoder wrapper.
Requires the presence of the libfaac headers and library during
configuration. You need to explicitly configure the build with
This encoder is of much lower quality and is more unstable than any other AAC
encoders, so it's highly recommended to instead use other encoders, like
@ref{aacenc,,the native FFmpeg AAC encoder}.
This encoder also requires the presence of the libfaac headers and library
during configuration. You need to explicitly configure the build with
@code{--enable-libfaac --enable-nonfree}.
This encoder is considered to be of higher quality with respect to the
@ref{aacenc,,the native experimental FFmpeg AAC encoder}.
For more information see the libfaac project at
@url{http://www.audiocoding.com/faac.html/}.
@subsection Options
The following shared FFmpeg codec options are recognized.
@ -694,9 +730,10 @@ configuration. You need to explicitly configure the build with
so if you allow the use of GPL, you should configure with
@code{--enable-gpl --enable-nonfree --enable-libfdk-aac}.
This encoder is considered to be of higher quality with respect to
both @ref{aacenc,,the native experimental FFmpeg AAC encoder} and
@ref{libfaac}.
This encoder is considered to produce output on par or worse at 128kbps to the
@ref{aacenc,,the native FFmpeg AAC encoder} but can often produce better
sounding audio at identical or lower bitrates and has support for the
AAC-HE profiles.
VBR encoding, enabled through the @option{vbr} or @option{flags
+qscale} options, is experimental and only works with some
@ -1038,31 +1075,6 @@ Set MPEG audio original flag when set to 1. The default value is 0
@end table
@anchor{libvo-aacenc}
@section libvo-aacenc
VisualOn AAC encoder.
Requires the presence of the libvo-aacenc headers and library during
configuration. You need to explicitly configure the build with
@code{--enable-libvo-aacenc --enable-version3}.
This encoder is considered to be worse than the
@ref{aacenc,,native experimental FFmpeg AAC encoder}, according to
multiple sources.
@subsection Options
The VisualOn AAC encoder only support encoding AAC-LC and up to 2
channels. It is also CBR-only.
@table @option
@item b
Set bit rate in bits/s.
@end table
@section libvo-amrwbenc
VisualOn Adaptive Multi-Rate Wideband encoder.
@ -1125,7 +1137,7 @@ kilobits/s.
@item vbr (@emph{vbr}, @emph{hard-cbr}, and @emph{cvbr})
Set VBR mode. The FFmpeg @option{vbr} option has the following
valid arguments, with the their @command{opusenc} equivalent options
valid arguments, with the @command{opusenc} equivalent options
in parentheses:
@table @samp
@ -1172,6 +1184,17 @@ following: 4000, 6000, 8000, 12000, or 20000, corresponding to
narrowband, mediumband, wideband, super wideband, and fullband
respectively. The default is 0 (cutoff disabled).
@item mapping_family (@emph{mapping_family})
Set channel mapping family to be used by the encoder. The default value of -1
uses mapping family 0 for mono and stereo inputs, and mapping family 1
otherwise. The default also disables the surround masking and LFE bandwidth
optimzations in libopus, and requires that the input contains 8 channels or
fewer.
Other values include 0 for mono and stereo, 1 for surround sound with masking
and LFE bandwidth optimizations, and 255 for independent streams with an
unspecified channel layout.
@end table
@section libvorbis
@ -1342,6 +1365,96 @@ disabled
A description of some of the currently available video encoders
follows.
@section libopenh264
Cisco libopenh264 H.264/MPEG-4 AVC encoder wrapper.
This encoder requires the presence of the libopenh264 headers and
library during configuration. You need to explicitly configure the
build with @code{--enable-libopenh264}. The library is detected using
@command{pkg-config}.
For more information about the library see
@url{http://www.openh264.org}.
@subsection Options
The following FFmpeg global options affect the configurations of the
libopenh264 encoder.
@table @option
@item b
Set the bitrate (as a number of bits per second).
@item g
Set the GOP size.
@item maxrate
Set the max bitrate (as a number of bits per second).
@item flags +global_header
Set global header in the bitstream.
@item slices
Set the number of slices, used in parallelized encoding. Default value
is 0. This is only used when @option{slice_mode} is set to
@samp{fixed}.
@item slice_mode
Set slice mode. Can assume one of the following possible values:
@table @samp
@item fixed
a fixed number of slices
@item rowmb
one slice per row of macroblocks
@item auto
automatic number of slices according to number of threads
@item dyn
dynamic slicing
@end table
Default value is @samp{auto}.
@item loopfilter
Enable loop filter, if set to 1 (automatically enabled). To disable
set a value of 0.
@item profile
Set profile restrictions. If set to the value of @samp{main} enable
CABAC (set the @code{SEncParamExt.iEntropyCodingModeFlag} flag to 1).
@item max_nal_size
Set maximum NAL size in bytes.
@item allow_skip_frames
Allow skipping frames to hit the target bitrate if set to 1.
@end table
@section jpeg2000
The native jpeg 2000 encoder is lossy by default, the @code{-q:v}
option can be used to set the encoding quality. Lossless encoding
can be selected with @code{-pred 1}.
@subsection Options
@table @option
@item format
Can be set to either @code{j2k} or @code{jp2} (the default) that
makes it possible to store non-rgb pix_fmts.
@end table
@section snow
@subsection Options
@table @option
@item iterative_dia_size
dia size for the iterative motion estimation
@end table
@section libtheora
libtheora Theora encoder wrapper.
@ -1416,113 +1529,159 @@ You need to explicitly configure the build with @code{--enable-libvpx}.
@subsection Options
Mapping from FFmpeg to libvpx options with conversion notes in parentheses.
The following options are supported by the libvpx wrapper. The
@command{vpxenc}-equivalent options or values are listed in parentheses
for easy migration.
To reduce the duplication of documentation, only the private options
and some others requiring special attention are documented here. For
the documentation of the undocumented generic options, see
@ref{codec-options,,the Codec Options chapter}.
To get more documentation of the libvpx options, invoke the command
@command{ffmpeg -h encoder=libvpx}, @command{ffmpeg -h encoder=libvpx-vp9} or
@command{vpxenc --help}. Further information is available in the libvpx API
documentation.
@table @option
@item threads
g_threads
@item b (@emph{target-bitrate})
Set bitrate in bits/s. Note that FFmpeg's @option{b} option is
expressed in bits/s, while @command{vpxenc}'s @option{target-bitrate} is in
kilobits/s.
@item profile
g_profile
@item g (@emph{kf-max-dist})
@item vb
rc_target_bitrate
@item keyint_min (@emph{kf-min-dist})
@item g
kf_max_dist
@item qmin (@emph{min-q})
@item keyint_min
kf_min_dist
@item qmax (@emph{max-q})
@item qmin
rc_min_quantizer
@item bufsize (@emph{buf-sz}, @emph{buf-optimal-sz})
Set ratecontrol buffer size (in bits). Note @command{vpxenc}'s options are
specified in milliseconds, the libvpx wrapper converts this value as follows:
@code{buf-sz = bufsize * 1000 / bitrate},
@code{buf-optimal-sz = bufsize * 1000 / bitrate * 5 / 6}.
@item qmax
rc_max_quantizer
@item rc_init_occupancy (@emph{buf-initial-sz})
Set number of bits which should be loaded into the rc buffer before decoding
starts. Note @command{vpxenc}'s option is specified in milliseconds, the libvpx
wrapper converts this value as follows:
@code{rc_init_occupancy * 1000 / bitrate}.
@item bufsize, vb
rc_buf_sz
@code{(bufsize * 1000 / vb)}
@item undershoot-pct
Set datarate undershoot (min) percentage of the target bitrate.
rc_buf_optimal_sz
@code{(bufsize * 1000 / vb * 5 / 6)}
@item overshoot-pct
Set datarate overshoot (max) percentage of the target bitrate.
@item rc_init_occupancy, vb
rc_buf_initial_sz
@code{(rc_init_occupancy * 1000 / vb)}
@item skip_threshold (@emph{drop-frame})
@item rc_buffer_aggressivity
rc_undershoot_pct
@item qcomp (@emph{bias-pct})
@item skip_threshold
rc_dropframe_thresh
@item maxrate (@emph{maxsection-pct})
Set GOP max bitrate in bits/s. Note @command{vpxenc}'s option is specified as a
percentage of the target bitrate, the libvpx wrapper converts this value as
follows: @code{(maxrate * 100 / bitrate)}.
@item qcomp
rc_2pass_vbr_bias_pct
@item minrate (@emph{minsection-pct})
Set GOP min bitrate in bits/s. Note @command{vpxenc}'s option is specified as a
percentage of the target bitrate, the libvpx wrapper converts this value as
follows: @code{(minrate * 100 / bitrate)}.
@item maxrate, vb
rc_2pass_vbr_maxsection_pct
@code{(maxrate * 100 / vb)}
@item minrate, maxrate, b @emph{end-usage=cbr}
@code{(minrate == maxrate == bitrate)}.
@item minrate, vb
rc_2pass_vbr_minsection_pct
@code{(minrate * 100 / vb)}
@item crf (@emph{end-usage=cq}, @emph{cq-level})
@item minrate, maxrate, vb
@code{VPX_CBR}
@code{(minrate == maxrate == vb)}
@item crf
@code{VPX_CQ}, @code{VP8E_SET_CQ_LEVEL}
@item quality
@table @option
@item @var{best}
@code{VPX_DL_BEST_QUALITY}
@item @var{good}
@code{VPX_DL_GOOD_QUALITY}
@item @var{realtime}
@code{VPX_DL_REALTIME}
@item tune (@emph{tune})
@table @samp
@item psnr (@emph{psnr})
@item ssim (@emph{ssim})
@end table
@item speed
@code{VP8E_SET_CPUUSED}
@item quality, deadline (@emph{deadline})
@table @samp
@item best
Use best quality deadline. Poorly named and quite slow, this option should be
avoided as it may give worse quality output than good.
@item good
Use good quality deadline. This is a good trade-off between speed and quality
when used with the @option{cpu-used} option.
@item realtime
Use realtime quality deadline.
@end table
@item nr
@code{VP8E_SET_NOISE_SENSITIVITY}
@item speed, cpu-used (@emph{cpu-used})
Set quality/speed ratio modifier. Higher values speed up the encode at the cost
of quality.
@item mb_threshold
@code{VP8E_SET_STATIC_THRESHOLD}
@item nr (@emph{noise-sensitivity})
@item slices
@code{VP8E_SET_TOKEN_PARTITIONS}
@item static-thresh
Set a change threshold on blocks below which they will be skipped by the
encoder.
@item slices (@emph{token-parts})
Note that FFmpeg's @option{slices} option gives the total number of partitions,
while @command{vpxenc}'s @option{token-parts} is given as
@code{log2(partitions)}.
@item max-intra-rate
@code{VP8E_SET_MAX_INTRA_BITRATE_PCT}
Set maximum I-frame bitrate as a percentage of the target bitrate. A value of 0
means unlimited.
@item force_key_frames
@code{VPX_EFLAG_FORCE_KF}
@item Alternate reference frame related
@table @option
@item vp8flags altref
@code{VP8E_SET_ENABLEAUTOALTREF}
@item @var{arnr_max_frames}
@code{VP8E_SET_ARNR_MAXFRAMES}
@item @var{arnr_type}
@code{VP8E_SET_ARNR_TYPE}
@item @var{arnr_strength}
@code{VP8E_SET_ARNR_STRENGTH}
@item @var{rc_lookahead}
g_lag_in_frames
@item auto-alt-ref
Enable use of alternate reference frames (2-pass only).
@item arnr-max-frames
Set altref noise reduction max frame count.
@item arnr-type
Set altref noise reduction filter type: backward, forward, centered.
@item arnr-strength
Set altref noise reduction filter strength.
@item rc-lookahead, lag-in-frames (@emph{lag-in-frames})
Set number of frames to look ahead for frametype and ratecontrol.
@end table
@item vp8flags error_resilient
g_error_resilient
@item error-resilient
Enable error resiliency features.
@item aq_mode
@code{VP9E_SET_AQ_MODE}
@item VP9-specific options
@table @option
@item lossless
Enable lossless mode.
@item tile-columns
Set number of tile columns to use. Note this is given as
@code{log2(tile_columns)}. For example, 8 tile columns would be requested by
setting the @option{tile-columns} option to 3.
@item tile-rows
Set number of tile rows to use. Note this is given as @code{log2(tile_rows)}.
For example, 4 tile rows would be requested by setting the @option{tile-rows}
option to 2.
@item frame-parallel
Enable frame parallel decodability features.
@item aq-mode
Set adaptive quantization mode (0: off (default), 1: variance 2: complexity, 3:
cyclic refresh).
@item colorspace @emph{color-space}
Set input color space. The VP9 bitstream supports signaling the following
colorspaces:
@table @option
@item @samp{rgb} @emph{sRGB}
@item @samp{bt709} @emph{bt709}
@item @samp{unspecified} @emph{unknown}
@item @samp{bt470bg} @emph{bt601}
@item @samp{smpte170m} @emph{smpte170}
@item @samp{smpte240m} @emph{smpte240}
@item @samp{bt2020_ncl} @emph{bt2020}
@end table
@end table
@end table
@ -1947,6 +2106,10 @@ For example to specify libx264 encoding options with @command{ffmpeg}:
ffmpeg -i foo.mpg -vcodec libx264 -x264opts keyint=123:min-keyint=20 -an out.mkv
@end example
@item a53cc @var{boolean}
Import closed captions (which must be ATSC compatible format) into output.
Only the mpeg2 and h264 decoders provide these. Default is 0 (off).
@item x264-params (N.A.)
Override the x264 configuration using a :-separated list of key=value
parameters.
@ -2260,6 +2423,180 @@ Setting a higher @option{bits_per_mb} limit will improve the speed.
For the fastest encoding speed set the @option{qscale} parameter (4 is the
recommended value) and do not set a size constraint.
@section libkvazaar
Kvazaar H.265/HEVC encoder.
Requires the presence of the libkvazaar headers and library during
configuration. You need to explicitly configure the build with
@option{--enable-libkvazaar}.
@subsection Options
@table @option
@item b
Set target video bitrate in bit/s and enable rate control.
@item kvazaar-params
Set kvazaar parameters as a list of @var{name}=@var{value} pairs separated
by commas (,). See kvazaar documentation for a list of options.
@end table
@section QSV encoders
The family of Intel QuickSync Video encoders (MPEG-2, H.264 and HEVC)
The ratecontrol method is selected as follows:
@itemize @bullet
@item
When @option{global_quality} is specified, a quality-based mode is used.
Specifically this means either
@itemize @minus
@item
@var{CQP} - constant quantizer scale, when the @option{qscale} codec flag is
also set (the @option{-qscale} ffmpeg option).
@item
@var{LA_ICQ} - intelligent constant quality with lookahead, when the
@option{look_ahead} option is also set.
@item
@var{ICQ} -- intelligent constant quality otherwise.
@end itemize
@item
Otherwise, a bitrate-based mode is used. For all of those, you should specify at
least the desired average bitrate with the @option{b} option.
@itemize @minus
@item
@var{LA} - VBR with lookahead, when the @option{look_ahead} option is specified.
@item
@var{VCM} - video conferencing mode, when the @option{vcm} option is set.
@item
@var{CBR} - constant bitrate, when @option{maxrate} is specified and equal to
the average bitrate.
@item
@var{VBR} - variable bitrate, when @option{maxrate} is specified, but is higher
than the average bitrate.
@item
@var{AVBR} - average VBR mode, when @option{maxrate} is not specified. This mode
is further configured by the @option{avbr_accuracy} and
@option{avbr_convergence} options.
@end itemize
@end itemize
Note that depending on your system, a different mode than the one you specified
may be selected by the encoder. Set the verbosity level to @var{verbose} or
higher to see the actual settings used by the QSV runtime.
Additional libavcodec global options are mapped to MSDK options as follows:
@itemize
@item
@option{g/gop_size} -> @option{GopPicSize}
@item
@option{bf/max_b_frames}+1 -> @option{GopRefDist}
@item
@option{rc_init_occupancy/rc_initial_buffer_occupancy} ->
@option{InitialDelayInKB}
@item
@option{slices} -> @option{NumSlice}
@item
@option{refs} -> @option{NumRefFrame}
@item
@option{b_strategy/b_frame_strategy} -> @option{BRefType}
@item
@option{cgop/CLOSED_GOP} codec flag -> @option{GopOptFlag}
@item
For the @var{CQP} mode, the @option{i_qfactor/i_qoffset} and
@option{b_qfactor/b_qoffset} set the difference between @var{QPP} and @var{QPI},
and @var{QPP} and @var{QPB} respectively.
@item
Setting the @option{coder} option to the value @var{vlc} will make the H.264
encoder use CAVLC instead of CABAC.
@end itemize
@section vc2
SMPTE VC-2 (previously BBC Dirac Pro). This codec was primarily aimed at
professional broadcasting but since it supports yuv420, yuv422 and yuv444 at
8 (limited range or full range), 10 or 12 bits, this makes it suitable for
other tasks which require low overhead and low compression (like screen
recording).
@subsection Options
@table @option
@item b
Sets target video bitrate. Usually that's around 1:6 of the uncompressed
video bitrate (e.g. for 1920x1080 50fps yuv422p10 that's around 400Mbps). Higher
values (close to the uncompressed bitrate) turn on lossless compression mode.
@item field_order
Enables field coding when set (e.g. to tt - top field first) for interlaced
inputs. Should increase compression with interlaced content as it splits the
fields and encodes each separately.
@item wavelet_depth
Sets the total amount of wavelet transforms to apply, between 1 and 5 (default).
Lower values reduce compression and quality. Less capable decoders may not be
able to handle values of @option{wavelet_depth} over 3.
@item wavelet_type
Sets the transform type. Currently only @var{5_3} (LeGall) and @var{9_7}
(Deslauriers-Dubuc)
are implemented, with 9_7 being the one with better compression and thus
is the default.
@item slice_width
@item slice_height
Sets the slice size for each slice. Larger values result in better compression.
For compatibility with other more limited decoders use @option{slice_width} of
32 and @option{slice_height} of 8.
@item tolerance
Sets the undershoot tolerance of the rate control system in percent. This is
to prevent an expensive search from being run.
@item qm
Sets the quantization matrix preset to use by default or when @option{wavelet_depth}
is set to 5
@itemize @minus
@item
@var{default}
Uses the default quantization matrix from the specifications, extended with
values for the fifth level. This provides a good balance between keeping detail
and omitting artifacts.
@item
@var{flat}
Use a completely zeroed out quantization matrix. This increases PSNR but might
reduce perception. Use in bogus benchmarks.
@item
@var{color}
Reduces detail but attempts to preserve color at extremely low bitrates.
@end itemize
@end table
@c man end VIDEO ENCODERS
@chapter Subtitles Encoders

View File

@ -76,7 +76,7 @@ EMFILE POSIX ++++++ Too many open files
EMLINK POSIX ++++++ Too many links
EMSGSIZE POSIX +++..+ Message too long
EMULTIHOP POSIX ++4... Multihop attempted
ENAMETOOLONG POSIX - ++++++ Filen ame too long
ENAMETOOLONG POSIX - ++++++ File name too long
ENAVAIL +..... No XENIX semaphores available
ENEEDAUTH .++... Need authenticator
ENETDOWN POSIX +++..+ Network is down

16
doc/examples/.gitignore vendored Normal file
View File

@ -0,0 +1,16 @@
/avio_dir_cmd
/avio_reading
/decoding_encoding
/demuxing_decoding
/extract_mvs
/filter_audio
/filtering_audio
/filtering_video
/metadata
/muxing
/pc-uninstalled
/remuxing
/resampling_audio
/scaling_video
/transcode_aac
/transcoding

View File

@ -11,13 +11,14 @@ CFLAGS += -Wall -g
CFLAGS := $(shell pkg-config --cflags $(FFMPEG_LIBS)) $(CFLAGS)
LDLIBS := $(shell pkg-config --libs $(FFMPEG_LIBS)) $(LDLIBS)
EXAMPLES= avio_list_dir \
EXAMPLES= avio_dir_cmd \
avio_reading \
decoding_encoding \
demuxing_decoding \
extract_mvs \
filtering_video \
filtering_audio \
http_multiclient \
metadata \
muxing \
remuxing \

View File

@ -54,28 +54,13 @@ static const char *type_string(int type)
return "<UNKNOWN>";
}
int main(int argc, char *argv[])
static int list_op(const char *input_dir)
{
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;
@ -114,6 +99,81 @@ int main(int argc, char *argv[])
fail:
avio_close_dir(&ctx);
return ret;
}
static int del_op(const char *url)
{
int ret = avpriv_io_delete(url);
if (ret < 0)
av_log(NULL, AV_LOG_ERROR, "Cannot delete '%s': %s.\n", url, av_err2str(ret));
return ret;
}
static int move_op(const char *src, const char *dst)
{
int ret = avpriv_io_move(src, dst);
if (ret < 0)
av_log(NULL, AV_LOG_ERROR, "Cannot move '%s' into '%s': %s.\n", src, dst, av_err2str(ret));
return ret;
}
static void usage(const char *program_name)
{
fprintf(stderr, "usage: %s OPERATION entry1 [entry2]\n"
"API example program to show how to manipulate resources "
"accessed through AVIOContext.\n"
"OPERATIONS:\n"
"list list content of the directory\n"
"move rename content in directory\n"
"del delete content in directory\n",
program_name);
}
int main(int argc, char *argv[])
{
const char *op = NULL;
int ret;
av_log_set_level(AV_LOG_DEBUG);
if (argc < 2) {
usage(argv[0]);
return 1;
}
/* register codecs and formats and other lavf/lavc components*/
av_register_all();
avformat_network_init();
op = argv[1];
if (strcmp(op, "list") == 0) {
if (argc < 3) {
av_log(NULL, AV_LOG_INFO, "Missing argument for list operation.\n");
ret = AVERROR(EINVAL);
} else {
ret = list_op(argv[2]);
}
} else if (strcmp(op, "del") == 0) {
if (argc < 3) {
av_log(NULL, AV_LOG_INFO, "Missing argument for del operation.\n");
ret = AVERROR(EINVAL);
} else {
ret = del_op(argv[2]);
}
} else if (strcmp(op, "move") == 0) {
if (argc < 4) {
av_log(NULL, AV_LOG_INFO, "Missing argument for move operation.\n");
ret = AVERROR(EINVAL);
} else {
ret = move_op(argv[2], argv[3]);
}
} else {
av_log(NULL, AV_LOG_INFO, "Invalid operation %s\n", op);
ret = AVERROR(EINVAL);
}
avformat_network_deinit();
return ret < 0 ? 1 : 0;

View File

@ -25,9 +25,9 @@
* libavcodec API use example.
*
* @example decoding_encoding.c
* Note that libavcodec only handles codecs (mpeg, mpeg4, etc...),
* not file formats (avi, vob, mp4, mov, mkv, mxf, flv, mpegts, mpegps, etc...). See library 'libavformat' for the
* format handling
* Note that libavcodec only handles codecs (MPEG, MPEG-4, etc...),
* not file formats (AVI, VOB, MP4, MOV, MKV, MXF, FLV, MPEG-TS, MPEG-PS, etc...).
* See library 'libavformat' for the format handling
*/
#include <math.h>
@ -211,7 +211,7 @@ static void audio_encode_example(const char *filename)
}
if (got_output) {
fwrite(pkt.data, 1, pkt.size, f);
av_free_packet(&pkt);
av_packet_unref(&pkt);
}
}
@ -225,7 +225,7 @@ static void audio_encode_example(const char *filename)
if (got_output) {
fwrite(pkt.data, 1, pkt.size, f);
av_free_packet(&pkt);
av_packet_unref(&pkt);
}
}
fclose(f);
@ -245,7 +245,7 @@ static void audio_decode_example(const char *outfilename, const char *filename)
AVCodecContext *c= NULL;
int len;
FILE *f, *outfile;
uint8_t inbuf[AUDIO_INBUF_SIZE + FF_INPUT_BUFFER_PADDING_SIZE];
uint8_t inbuf[AUDIO_INBUF_SIZE + AV_INPUT_BUFFER_PADDING_SIZE];
AVPacket avpkt;
AVFrame *decoded_frame = NULL;
@ -253,7 +253,7 @@ static void audio_decode_example(const char *outfilename, const char *filename)
printf("Decode audio file %s to %s\n", filename, outfilename);
/* find the mpeg audio decoder */
/* find the MPEG audio decoder */
codec = avcodec_find_decoder(AV_CODEC_ID_MP2);
if (!codec) {
fprintf(stderr, "Codec not found\n");
@ -356,7 +356,7 @@ static void video_encode_example(const char *filename, int codec_id)
printf("Encode video file %s\n", filename);
/* find the mpeg1 video encoder */
/* find the video encoder */
codec = avcodec_find_encoder(codec_id);
if (!codec) {
fprintf(stderr, "Codec not found\n");
@ -454,7 +454,7 @@ static void video_encode_example(const char *filename, int codec_id)
if (got_output) {
printf("Write frame %3d (size=%5d)\n", i, pkt.size);
fwrite(pkt.data, 1, pkt.size, f);
av_free_packet(&pkt);
av_packet_unref(&pkt);
}
}
@ -471,11 +471,11 @@ static void video_encode_example(const char *filename, int codec_id)
if (got_output) {
printf("Write frame %3d (size=%5d)\n", i, pkt.size);
fwrite(pkt.data, 1, pkt.size, f);
av_free_packet(&pkt);
av_packet_unref(&pkt);
}
}
/* add sequence end code to have a real mpeg file */
/* add sequence end code to have a real MPEG file */
fwrite(endcode, 1, sizeof(endcode), f);
fclose(f);
@ -521,7 +521,7 @@ static int decode_write_frame(const char *outfilename, AVCodecContext *avctx,
/* the picture is allocated by the decoder, no need to free it */
snprintf(buf, sizeof(buf), outfilename, *frame_count);
pgm_save(frame->data[0], frame->linesize[0],
avctx->width, avctx->height, buf);
frame->width, frame->height, buf);
(*frame_count)++;
}
if (pkt->data) {
@ -538,17 +538,17 @@ static void video_decode_example(const char *outfilename, const char *filename)
int frame_count;
FILE *f;
AVFrame *frame;
uint8_t inbuf[INBUF_SIZE + FF_INPUT_BUFFER_PADDING_SIZE];
uint8_t inbuf[INBUF_SIZE + AV_INPUT_BUFFER_PADDING_SIZE];
AVPacket avpkt;
av_init_packet(&avpkt);
/* set end of buffer to 0 (this ensures that no overreading happens for damaged mpeg streams) */
memset(inbuf + INBUF_SIZE, 0, FF_INPUT_BUFFER_PADDING_SIZE);
/* set end of buffer to 0 (this ensures that no overreading happens for damaged MPEG streams) */
memset(inbuf + INBUF_SIZE, 0, AV_INPUT_BUFFER_PADDING_SIZE);
printf("Decode video file %s to %s\n", filename, outfilename);
/* find the mpeg1 video decoder */
/* find the MPEG-1 video decoder */
codec = avcodec_find_decoder(AV_CODEC_ID_MPEG1VIDEO);
if (!codec) {
fprintf(stderr, "Codec not found\n");
@ -561,8 +561,8 @@ static void video_decode_example(const char *outfilename, const char *filename)
exit(1);
}
if(codec->capabilities&CODEC_CAP_TRUNCATED)
c->flags|= CODEC_FLAG_TRUNCATED; /* we do not send complete frames */
if (codec->capabilities & AV_CODEC_CAP_TRUNCATED)
c->flags |= AV_CODEC_FLAG_TRUNCATED; // we do not send complete frames
/* For some codecs, such as msmpeg4 and mpeg4, width and height
MUST be initialized there because this information is not
@ -613,9 +613,9 @@ static void video_decode_example(const char *outfilename, const char *filename)
exit(1);
}
/* some codecs, such as MPEG, transmit the I and P frame with a
/* Some codecs, such as MPEG, transmit the I- and P-frame with a
latency of one frame. You must do the following to have a
chance to get the last frame of the video */
chance to get the last frame of the video. */
avpkt.data = NULL;
avpkt.size = 0;
decode_write_frame(outfilename, c, frame, &frame_count, &avpkt, 1);

View File

@ -55,17 +55,11 @@ static AVPacket pkt;
static int video_frame_count = 0;
static int audio_frame_count = 0;
/* The different ways of decoding and managing data memory. You are not
* supposed to support all the modes in your application but pick the one most
* appropriate to your needs. Look for the use of api_mode in this example to
* see what are the differences of API usage between them */
enum {
API_MODE_OLD = 0, /* old method, deprecated */
API_MODE_NEW_API_REF_COUNT = 1, /* new method, using the frame reference counting */
API_MODE_NEW_API_NO_REF_COUNT = 2, /* new method, without reference counting */
};
static int api_mode = API_MODE_OLD;
/* Enable or disable frame reference counting. You are not supposed to support
* both paths in your application but pick the one most appropriate to your
* needs. Look for the use of refcount in this example to see what are the
* differences of API usage between them. */
static int refcount = 0;
static int decode_packet(int *got_frame, int cached)
{
@ -81,22 +75,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,
@ -143,9 +139,9 @@ static int decode_packet(int *got_frame, int cached)
}
}
/* If we use the new API with reference counting, we own the data and need
/* If we use frame reference counting, we own the data and need
* to de-reference it when we don't use it anymore */
if (*got_frame && api_mode == API_MODE_NEW_API_REF_COUNT)
if (*got_frame && refcount)
av_frame_unref(frame);
return decoded;
@ -179,8 +175,7 @@ static int open_codec_context(int *stream_idx,
}
/* Init the decoders, with or without reference counting */
if (api_mode == API_MODE_NEW_API_REF_COUNT)
av_dict_set(&opts, "refcounted_frames", "1", 0);
av_dict_set(&opts, "refcounted_frames", refcount ? "1" : "0", 0);
if ((ret = avcodec_open2(dec_ctx, dec, &opts)) < 0) {
fprintf(stderr, "Failed to open %s codec\n",
av_get_media_type_string(type));
@ -226,28 +221,19 @@ int main (int argc, char **argv)
int ret = 0, got_frame;
if (argc != 4 && argc != 5) {
fprintf(stderr, "usage: %s [-refcount=<old|new_norefcount|new_refcount>] "
"input_file video_output_file audio_output_file\n"
fprintf(stderr, "usage: %s [-refcount] input_file video_output_file audio_output_file\n"
"API example program to show how to read frames from an input file.\n"
"This program reads frames from a file, decodes them, and writes decoded\n"
"video frames to a rawvideo file named video_output_file, and decoded\n"
"audio frames to a rawaudio file named audio_output_file.\n\n"
"If the -refcount option is specified, the program use the\n"
"reference counting frame system which allows keeping a copy of\n"
"the data for longer than one decode call. If unset, it's using\n"
"the classic old method.\n"
"the data for longer than one decode call.\n"
"\n", argv[0]);
exit(1);
}
if (argc == 5) {
const char *mode = argv[1] + strlen("-refcount=");
if (!strcmp(mode, "old")) api_mode = API_MODE_OLD;
else if (!strcmp(mode, "new_norefcount")) api_mode = API_MODE_NEW_API_NO_REF_COUNT;
else if (!strcmp(mode, "new_refcount")) api_mode = API_MODE_NEW_API_REF_COUNT;
else {
fprintf(stderr, "unknow mode '%s'\n", mode);
exit(1);
}
if (argc == 5 && !strcmp(argv[1], "-refcount")) {
refcount = 1;
argv++;
}
src_filename = argv[1];
@ -313,12 +299,7 @@ int main (int argc, char **argv)
goto end;
}
/* When using the new API, you need to use the libavutil/frame.h API, while
* the classic frame management is available in libavcodec */
if (api_mode == API_MODE_OLD)
frame = avcodec_alloc_frame();
else
frame = av_frame_alloc();
frame = av_frame_alloc();
if (!frame) {
fprintf(stderr, "Could not allocate frame\n");
ret = AVERROR(ENOMEM);
@ -345,7 +326,7 @@ int main (int argc, char **argv)
pkt.data += ret;
pkt.size -= ret;
} while (pkt.size > 0);
av_free_packet(&orig_pkt);
av_packet_unref(&orig_pkt);
}
/* flush cached frames */
@ -395,10 +376,7 @@ end:
fclose(video_dst_file);
if (audio_dst_file)
fclose(audio_dst_file);
if (api_mode == API_MODE_OLD)
avcodec_free_frame(&frame);
else
av_frame_free(&frame);
av_frame_free(&frame);
av_free(video_dst_data[0]);
return ret < 0;

View File

@ -167,7 +167,7 @@ int main(int argc, char **argv)
pkt.data += ret;
pkt.size -= ret;
} while (pkt.size > 0);
av_free_packet(&orig_pkt);
av_packet_unref(&orig_pkt);
}
/* flush cached frames */

View File

@ -33,7 +33,6 @@
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
#include <libavfilter/avfiltergraph.h>
#include <libavfilter/avcodec.h>
#include <libavfilter/buffersink.h>
#include <libavfilter/buffersrc.h>
#include <libavutil/opt.h>
@ -66,7 +65,7 @@ static int open_input_file(const char *filename)
/* select the audio stream */
ret = av_find_best_stream(fmt_ctx, AVMEDIA_TYPE_AUDIO, -1, -1, &dec, 0);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Cannot find a audio stream in the input file\n");
av_log(NULL, AV_LOG_ERROR, "Cannot find an audio stream in the input file\n");
return ret;
}
audio_stream_index = ret;
@ -274,10 +273,10 @@ int main(int argc, char **argv)
}
if (packet.size <= 0)
av_free_packet(&packet0);
av_packet_unref(&packet0);
} else {
/* discard non-wanted packets */
av_free_packet(&packet0);
av_packet_unref(&packet0);
}
}
end:

View File

@ -33,12 +33,14 @@
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
#include <libavfilter/avfiltergraph.h>
#include <libavfilter/avcodec.h>
#include <libavfilter/buffersink.h>
#include <libavfilter/buffersrc.h>
#include <libavutil/opt.h>
const char *filter_descr = "scale=78:24";
const char *filter_descr = "scale=78:24,transpose=cclock";
/* other way:
scale=78:24 [scl]; [scl] transpose=cclock // assumes "[in]" and "[out]" to be input output pads respectively
*/
static AVFormatContext *fmt_ctx;
static AVCodecContext *dec_ctx;
@ -260,7 +262,7 @@ int main(int argc, char **argv)
av_frame_unref(frame);
}
}
av_free_packet(&packet);
av_packet_unref(&packet);
}
end:
avfilter_graph_free(&filter_graph);

View File

@ -0,0 +1,155 @@
/*
* Copyright (c) 2015 Stephan Holljes
*
* 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.
*/
/**
* @file
* libavformat multi-client network API usage example.
*
* @example http_multiclient.c
* This example will serve a file without decoding or demuxing it over http.
* Multiple clients can connect and will receive the same file.
*/
#include <libavformat/avformat.h>
#include <libavutil/opt.h>
#include <unistd.h>
void process_client(AVIOContext *client, const char *in_uri)
{
AVIOContext *input = NULL;
uint8_t buf[1024];
int ret, n, reply_code;
char *resource = NULL;
while ((ret = avio_handshake(client)) > 0) {
av_opt_get(client, "resource", AV_OPT_SEARCH_CHILDREN, &resource);
// check for strlen(resource) is necessary, because av_opt_get()
// may return empty string.
if (resource && strlen(resource))
break;
}
if (ret < 0)
goto end;
av_log(client, AV_LOG_TRACE, "resource=%p\n", resource);
if (resource && resource[0] == '/' && !strcmp((resource + 1), in_uri)) {
reply_code = 200;
} else {
reply_code = AVERROR_HTTP_NOT_FOUND;
}
if ((ret = av_opt_set_int(client, "reply_code", reply_code, AV_OPT_SEARCH_CHILDREN)) < 0) {
av_log(client, AV_LOG_ERROR, "Failed to set reply_code: %s.\n", av_err2str(ret));
goto end;
}
av_log(client, AV_LOG_TRACE, "Set reply code to %d\n", reply_code);
while ((ret = avio_handshake(client)) > 0);
if (ret < 0)
goto end;
fprintf(stderr, "Handshake performed.\n");
if (reply_code != 200)
goto end;
fprintf(stderr, "Opening input file.\n");
if ((ret = avio_open2(&input, in_uri, AVIO_FLAG_READ, NULL, NULL)) < 0) {
av_log(input, AV_LOG_ERROR, "Failed to open input: %s: %s.\n", in_uri,
av_err2str(ret));
goto end;
}
for(;;) {
n = avio_read(input, buf, sizeof(buf));
if (n < 0) {
if (n == AVERROR_EOF)
break;
av_log(input, AV_LOG_ERROR, "Error reading from input: %s.\n",
av_err2str(n));
break;
}
avio_write(client, buf, n);
avio_flush(client);
}
end:
fprintf(stderr, "Flushing client\n");
avio_flush(client);
fprintf(stderr, "Closing client\n");
avio_close(client);
fprintf(stderr, "Closing input\n");
avio_close(input);
}
int main(int argc, char **argv)
{
av_log_set_level(AV_LOG_TRACE);
AVDictionary *options = NULL;
AVIOContext *client = NULL, *server = NULL;
const char *in_uri, *out_uri;
int ret, pid;
if (argc < 3) {
printf("usage: %s input http://hostname[:port]\n"
"API example program to serve http to multiple clients.\n"
"\n", argv[0]);
return 1;
}
in_uri = argv[1];
out_uri = argv[2];
av_register_all();
avformat_network_init();
if ((ret = av_dict_set(&options, "listen", "2", 0)) < 0) {
fprintf(stderr, "Failed to set listen mode for server: %s\n", av_err2str(ret));
return ret;
}
if ((ret = avio_open2(&server, out_uri, AVIO_FLAG_WRITE, NULL, &options)) < 0) {
fprintf(stderr, "Failed to open server: %s\n", av_err2str(ret));
return ret;
}
fprintf(stderr, "Entering main loop.\n");
for(;;) {
if ((ret = avio_accept(server, &client)) < 0)
goto end;
fprintf(stderr, "Accepted client, forking process.\n");
// XXX: Since we don't reap our children and don't ignore signals
// this produces zombie processes.
pid = fork();
if (pid < 0) {
perror("Fork failed");
ret = AVERROR(errno);
goto end;
}
if (pid == 0) {
fprintf(stderr, "In child.\n");
process_client(client, in_uri);
avio_close(server);
exit(0);
}
if (pid > 0)
avio_close(client);
}
end:
avio_close(server);
if (ret < 0 && ret != AVERROR_EOF) {
fprintf(stderr, "Some errors occurred: %s\n", av_err2str(ret));
return 1;
}
return 0;
}

View File

@ -52,6 +52,7 @@
// a wrapper around a single output AVStream
typedef struct OutputStream {
AVStream *st;
AVCodecContext *enc;
/* pts of the next frame that will be generated */
int64_t next_pts;
@ -104,13 +105,18 @@ static void add_stream(OutputStream *ost, AVFormatContext *oc,
exit(1);
}
ost->st = avformat_new_stream(oc, *codec);
ost->st = avformat_new_stream(oc, NULL);
if (!ost->st) {
fprintf(stderr, "Could not allocate stream\n");
exit(1);
}
ost->st->id = oc->nb_streams-1;
c = ost->st->codec;
c = avcodec_alloc_context3(*codec);
if (!c) {
fprintf(stderr, "Could not alloc an encoding context\n");
exit(1);
}
ost->enc = c;
switch ((*codec)->type) {
case AVMEDIA_TYPE_AUDIO:
@ -155,7 +161,7 @@ static void add_stream(OutputStream *ost, AVFormatContext *oc,
c->gop_size = 12; /* emit one intra frame every twelve frames at most */
c->pix_fmt = STREAM_PIX_FMT;
if (c->codec_id == AV_CODEC_ID_MPEG2VIDEO) {
/* just for testing, we also add B frames */
/* just for testing, we also add B-frames */
c->max_b_frames = 2;
}
if (c->codec_id == AV_CODEC_ID_MPEG1VIDEO) {
@ -172,7 +178,7 @@ static void add_stream(OutputStream *ost, AVFormatContext *oc,
/* Some formats want stream headers to be separate. */
if (oc->oformat->flags & AVFMT_GLOBALHEADER)
c->flags |= CODEC_FLAG_GLOBAL_HEADER;
c->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
}
/**************************************************************/
@ -213,7 +219,7 @@ static void open_audio(AVFormatContext *oc, AVCodec *codec, OutputStream *ost, A
int ret;
AVDictionary *opt = NULL;
c = ost->st->codec;
c = ost->enc;
/* open it */
av_dict_copy(&opt, opt_arg, 0);
@ -230,7 +236,7 @@ static void open_audio(AVFormatContext *oc, AVCodec *codec, OutputStream *ost, A
/* increment frequency by 110 Hz per second */
ost->tincr2 = 2 * M_PI * 110.0 / c->sample_rate / c->sample_rate;
if (c->codec->capabilities & CODEC_CAP_VARIABLE_FRAME_SIZE)
if (c->codec->capabilities & AV_CODEC_CAP_VARIABLE_FRAME_SIZE)
nb_samples = 10000;
else
nb_samples = c->frame_size;
@ -240,6 +246,13 @@ static void open_audio(AVFormatContext *oc, AVCodec *codec, OutputStream *ost, A
ost->tmp_frame = alloc_audio_frame(AV_SAMPLE_FMT_S16, c->channel_layout,
c->sample_rate, nb_samples);
/* copy the stream parameters to the muxer */
ret = avcodec_parameters_from_context(ost->st->codecpar, c);
if (ret < 0) {
fprintf(stderr, "Could not copy the stream parameters\n");
exit(1);
}
/* create resampler context */
ost->swr_ctx = swr_alloc();
if (!ost->swr_ctx) {
@ -271,13 +284,13 @@ static AVFrame *get_audio_frame(OutputStream *ost)
int16_t *q = (int16_t*)frame->data[0];
/* check if we want to generate more frames */
if (av_compare_ts(ost->next_pts, ost->st->codec->time_base,
if (av_compare_ts(ost->next_pts, ost->enc->time_base,
STREAM_DURATION, (AVRational){ 1, 1 }) >= 0)
return NULL;
for (j = 0; j <frame->nb_samples; j++) {
v = (int)(sin(ost->t) * 10000);
for (i = 0; i < ost->st->codec->channels; i++)
for (i = 0; i < ost->enc->channels; i++)
*q++ = v;
ost->t += ost->tincr;
ost->tincr += ost->tincr2;
@ -303,7 +316,7 @@ static int write_audio_frame(AVFormatContext *oc, OutputStream *ost)
int dst_nb_samples;
av_init_packet(&pkt);
c = ost->st->codec;
c = ost->enc;
frame = get_audio_frame(ost);
@ -383,7 +396,7 @@ static AVFrame *alloc_picture(enum AVPixelFormat pix_fmt, int width, int height)
static void open_video(AVFormatContext *oc, AVCodec *codec, OutputStream *ost, AVDictionary *opt_arg)
{
int ret;
AVCodecContext *c = ost->st->codec;
AVCodecContext *c = ost->enc;
AVDictionary *opt = NULL;
av_dict_copy(&opt, opt_arg, 0);
@ -414,6 +427,13 @@ static void open_video(AVFormatContext *oc, AVCodec *codec, OutputStream *ost, A
exit(1);
}
}
/* copy the stream parameters to the muxer */
ret = avcodec_parameters_from_context(ost->st->codecpar, c);
if (ret < 0) {
fprintf(stderr, "Could not copy the stream parameters\n");
exit(1);
}
}
/* Prepare a dummy image. */
@ -448,10 +468,10 @@ static void fill_yuv_image(AVFrame *pict, int frame_index,
static AVFrame *get_video_frame(OutputStream *ost)
{
AVCodecContext *c = ost->st->codec;
AVCodecContext *c = ost->enc;
/* check if we want to generate more frames */
if (av_compare_ts(ost->next_pts, ost->st->codec->time_base,
if (av_compare_ts(ost->next_pts, c->time_base,
STREAM_DURATION, (AVRational){ 1, 1 }) >= 0)
return NULL;
@ -493,44 +513,25 @@ static int write_video_frame(AVFormatContext *oc, OutputStream *ost)
AVCodecContext *c;
AVFrame *frame;
int got_packet = 0;
AVPacket pkt = { 0 };
c = ost->st->codec;
c = ost->enc;
frame = get_video_frame(ost);
if (oc->oformat->flags & AVFMT_RAWPICTURE) {
/* a hack to avoid data copy with some raw video muxers */
AVPacket pkt;
av_init_packet(&pkt);
av_init_packet(&pkt);
if (!frame)
return 1;
/* encode the image */
ret = avcodec_encode_video2(c, &pkt, frame, &got_packet);
if (ret < 0) {
fprintf(stderr, "Error encoding video frame: %s\n", av_err2str(ret));
exit(1);
}
pkt.flags |= AV_PKT_FLAG_KEY;
pkt.stream_index = ost->st->index;
pkt.data = (uint8_t *)frame;
pkt.size = sizeof(AVPicture);
pkt.pts = pkt.dts = frame->pts;
av_packet_rescale_ts(&pkt, c->time_base, ost->st->time_base);
ret = av_interleaved_write_frame(oc, &pkt);
if (got_packet) {
ret = write_frame(oc, &c->time_base, ost->st, &pkt);
} else {
AVPacket pkt = { 0 };
av_init_packet(&pkt);
/* encode the image */
ret = avcodec_encode_video2(c, &pkt, frame, &got_packet);
if (ret < 0) {
fprintf(stderr, "Error encoding video frame: %s\n", av_err2str(ret));
exit(1);
}
if (got_packet) {
ret = write_frame(oc, &c->time_base, ost->st, &pkt);
} else {
ret = 0;
}
ret = 0;
}
if (ret < 0) {
@ -543,7 +544,7 @@ static int write_video_frame(AVFormatContext *oc, OutputStream *ost)
static void close_stream(AVFormatContext *oc, OutputStream *ost)
{
avcodec_close(ost->st->codec);
avcodec_free_context(&ost->enc);
av_frame_free(&ost->frame);
av_frame_free(&ost->tmp_frame);
sws_freeContext(ost->sws_ctx);
@ -564,6 +565,7 @@ int main(int argc, char **argv)
int have_video = 0, have_audio = 0;
int encode_video = 0, encode_audio = 0;
AVDictionary *opt = NULL;
int i;
/* Initialize libavcodec, and register all codecs and formats. */
av_register_all();
@ -580,8 +582,9 @@ int main(int argc, char **argv)
}
filename = argv[1];
if (argc > 3 && !strcmp(argv[2], "-flags")) {
av_dict_set(&opt, argv[2]+1, argv[3], 0);
for (i = 2; i+1 < argc; i+=2) {
if (!strcmp(argv[i], "-flags") || !strcmp(argv[i], "-fflags"))
av_dict_set(&opt, argv[i]+1, argv[i+1], 0);
}
/* allocate the output media context */
@ -639,8 +642,8 @@ int main(int argc, char **argv)
while (encode_video || encode_audio) {
/* select the stream to encode */
if (encode_video &&
(!encode_audio || av_compare_ts(video_st.next_pts, video_st.st->codec->time_base,
audio_st.next_pts, audio_st.st->codec->time_base) <= 0)) {
(!encode_audio || av_compare_ts(video_st.next_pts, video_st.enc->time_base,
audio_st.next_pts, audio_st.enc->time_base) <= 0)) {
encode_video = !write_video_frame(oc, &video_st);
} else {
encode_audio = !write_audio_frame(oc, &audio_st);

View File

@ -116,15 +116,6 @@ fail:
static mfxStatus frame_free(mfxHDL pthis, mfxFrameAllocResponse *resp)
{
DecodeContext *decode = pthis;
if (decode->surfaces)
vaDestroySurfaces(decode->va_dpy, decode->surfaces, decode->nb_surfaces);
av_freep(&decode->surfaces);
av_freep(&decode->surface_ids);
av_freep(&decode->surface_used);
decode->nb_surfaces = 0;
return MFX_ERR_NONE;
}
@ -144,6 +135,16 @@ static mfxStatus frame_get_hdl(mfxHDL pthis, mfxMemId mid, mfxHDL *hdl)
return MFX_ERR_NONE;
}
static void free_surfaces(DecodeContext *decode)
{
if (decode->surfaces)
vaDestroySurfaces(decode->va_dpy, decode->surfaces, decode->nb_surfaces);
av_freep(&decode->surfaces);
av_freep(&decode->surface_ids);
av_freep(&decode->surface_used);
decode->nb_surfaces = 0;
}
static void free_buffer(void *opaque, uint8_t *data)
{
int *used = opaque;
@ -351,7 +352,7 @@ int main(int argc, char **argv)
for (i = 0; i < input_ctx->nb_streams; i++) {
AVStream *st = input_ctx->streams[i];
if (st->codec->codec_id == AV_CODEC_ID_H264 && !video_st)
if (st->codecpar->codec_id == AV_CODEC_ID_H264 && !video_st)
video_st = st;
else
st->discard = AVDISCARD_ALL;
@ -403,16 +404,16 @@ int main(int argc, char **argv)
goto finish;
}
decoder_ctx->codec_id = AV_CODEC_ID_H264;
if (video_st->codec->extradata_size) {
decoder_ctx->extradata = av_mallocz(video_st->codec->extradata_size +
FF_INPUT_BUFFER_PADDING_SIZE);
if (video_st->codecpar->extradata_size) {
decoder_ctx->extradata = av_mallocz(video_st->codecpar->extradata_size +
AV_INPUT_BUFFER_PADDING_SIZE);
if (!decoder_ctx->extradata) {
ret = AVERROR(ENOMEM);
goto finish;
}
memcpy(decoder_ctx->extradata, video_st->codec->extradata,
video_st->codec->extradata_size);
decoder_ctx->extradata_size = video_st->codec->extradata_size;
memcpy(decoder_ctx->extradata, video_st->codecpar->extradata,
video_st->codecpar->extradata_size);
decoder_ctx->extradata_size = video_st->codecpar->extradata_size;
}
decoder_ctx->refcounted_frames = 1;
@ -467,6 +468,12 @@ finish:
av_frame_free(&frame);
if (decoder_ctx)
av_freep(&decoder_ctx->hwaccel_context);
avcodec_free_context(&decoder_ctx);
free_surfaces(&decode);
if (decode.mfx_session)
MFXClose(decode.mfx_session);
if (decode.va_dpy)
@ -474,10 +481,6 @@ finish:
if (dpy)
XCloseDisplay(dpy);
if (decoder_ctx)
av_freep(&decoder_ctx->hwaccel_context);
avcodec_free_context(&decoder_ctx);
avio_close(output_ctx);
return ret;

View File

@ -101,7 +101,7 @@ int main(int argc, char **argv)
}
out_stream->codec->codec_tag = 0;
if (ofmt_ctx->oformat->flags & AVFMT_GLOBALHEADER)
out_stream->codec->flags |= CODEC_FLAG_GLOBAL_HEADER;
out_stream->codec->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
}
av_dump_format(ofmt_ctx, 0, out_filename, 1);
@ -143,7 +143,7 @@ int main(int argc, char **argv)
fprintf(stderr, "Error muxing packet\n");
break;
}
av_free_packet(&pkt);
av_packet_unref(&pkt);
}
av_write_trailer(ofmt_ctx);

View File

@ -62,6 +62,7 @@ static int open_input_file(const char *filename,
AVFormatContext **input_format_context,
AVCodecContext **input_codec_context)
{
AVCodecContext *avctx;
AVCodec *input_codec;
int error;
@ -91,23 +92,39 @@ static int open_input_file(const char *filename,
}
/** Find a decoder for the audio stream. */
if (!(input_codec = avcodec_find_decoder((*input_format_context)->streams[0]->codec->codec_id))) {
if (!(input_codec = avcodec_find_decoder((*input_format_context)->streams[0]->codecpar->codec_id))) {
fprintf(stderr, "Could not find input codec\n");
avformat_close_input(input_format_context);
return AVERROR_EXIT;
}
/** allocate a new decoding context */
avctx = avcodec_alloc_context3(input_codec);
if (!avctx) {
fprintf(stderr, "Could not allocate a decoding context\n");
avformat_close_input(input_format_context);
return AVERROR(ENOMEM);
}
/** initialize the stream parameters with demuxer information */
error = avcodec_parameters_to_context(avctx, (*input_format_context)->streams[0]->codecpar);
if (error < 0) {
avformat_close_input(input_format_context);
avcodec_free_context(&avctx);
return error;
}
/** Open the decoder for the audio stream to use it later. */
if ((error = avcodec_open2((*input_format_context)->streams[0]->codec,
input_codec, NULL)) < 0) {
if ((error = avcodec_open2(avctx, input_codec, NULL)) < 0) {
fprintf(stderr, "Could not open input codec (error '%s')\n",
get_error_text(error));
avcodec_free_context(&avctx);
avformat_close_input(input_format_context);
return error;
}
/** Save the decoder context for easier access later. */
*input_codec_context = (*input_format_context)->streams[0]->codec;
*input_codec_context = avctx;
return 0;
}
@ -122,6 +139,7 @@ static int open_output_file(const char *filename,
AVFormatContext **output_format_context,
AVCodecContext **output_codec_context)
{
AVCodecContext *avctx = NULL;
AVIOContext *output_io_context = NULL;
AVStream *stream = NULL;
AVCodec *output_codec = NULL;
@ -161,27 +179,31 @@ static int open_output_file(const char *filename,
}
/** Create a new audio stream in the output file container. */
if (!(stream = avformat_new_stream(*output_format_context, output_codec))) {
if (!(stream = avformat_new_stream(*output_format_context, NULL))) {
fprintf(stderr, "Could not create new stream\n");
error = AVERROR(ENOMEM);
goto cleanup;
}
/** Save the encoder context for easier access later. */
*output_codec_context = stream->codec;
avctx = avcodec_alloc_context3(output_codec);
if (!avctx) {
fprintf(stderr, "Could not allocate an encoding context\n");
error = AVERROR(ENOMEM);
goto cleanup;
}
/**
* Set the basic encoder parameters.
* The input file's sample rate is used to avoid a sample rate conversion.
*/
(*output_codec_context)->channels = OUTPUT_CHANNELS;
(*output_codec_context)->channel_layout = av_get_default_channel_layout(OUTPUT_CHANNELS);
(*output_codec_context)->sample_rate = input_codec_context->sample_rate;
(*output_codec_context)->sample_fmt = output_codec->sample_fmts[0];
(*output_codec_context)->bit_rate = OUTPUT_BIT_RATE;
avctx->channels = OUTPUT_CHANNELS;
avctx->channel_layout = av_get_default_channel_layout(OUTPUT_CHANNELS);
avctx->sample_rate = input_codec_context->sample_rate;
avctx->sample_fmt = output_codec->sample_fmts[0];
avctx->bit_rate = OUTPUT_BIT_RATE;
/** Allow the use of the experimental AAC encoder */
(*output_codec_context)->strict_std_compliance = FF_COMPLIANCE_EXPERIMENTAL;
avctx->strict_std_compliance = FF_COMPLIANCE_EXPERIMENTAL;
/** Set the sample rate for the container. */
stream->time_base.den = input_codec_context->sample_rate;
@ -192,18 +214,28 @@ static int open_output_file(const char *filename,
* Mark the encoder so that it behaves accordingly.
*/
if ((*output_format_context)->oformat->flags & AVFMT_GLOBALHEADER)
(*output_codec_context)->flags |= CODEC_FLAG_GLOBAL_HEADER;
avctx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
/** Open the encoder for the audio stream to use it later. */
if ((error = avcodec_open2(*output_codec_context, output_codec, NULL)) < 0) {
if ((error = avcodec_open2(avctx, output_codec, NULL)) < 0) {
fprintf(stderr, "Could not open output codec (error '%s')\n",
get_error_text(error));
goto cleanup;
}
error = avcodec_parameters_from_context(stream->codecpar, avctx);
if (error < 0) {
fprintf(stderr, "Could not initialize stream parameters\n");
goto cleanup;
}
/** Save the encoder context for easier access later. */
*output_codec_context = avctx;
return 0;
cleanup:
avcodec_free_context(&avctx);
avio_closep(&(*output_format_context)->pb);
avformat_free_context(*output_format_context);
*output_format_context = NULL;
@ -332,7 +364,7 @@ static int decode_audio_frame(AVFrame *frame,
data_present, &input_packet)) < 0) {
fprintf(stderr, "Could not decode frame (error '%s')\n",
get_error_text(error));
av_free_packet(&input_packet);
av_packet_unref(&input_packet);
return error;
}
@ -342,7 +374,7 @@ static int decode_audio_frame(AVFrame *frame,
*/
if (*finished && *data_present)
*finished = 0;
av_free_packet(&input_packet);
av_packet_unref(&input_packet);
return 0;
}
@ -571,7 +603,7 @@ static int encode_audio_frame(AVFrame *frame,
frame, data_present)) < 0) {
fprintf(stderr, "Could not encode frame (error '%s')\n",
get_error_text(error));
av_free_packet(&output_packet);
av_packet_unref(&output_packet);
return error;
}
@ -580,11 +612,11 @@ static int encode_audio_frame(AVFrame *frame,
if ((error = av_write_frame(output_format_context, &output_packet)) < 0) {
fprintf(stderr, "Could not write frame (error '%s')\n",
get_error_text(error));
av_free_packet(&output_packet);
av_packet_unref(&output_packet);
return error;
}
av_free_packet(&output_packet);
av_packet_unref(&output_packet);
}
return 0;
@ -756,13 +788,13 @@ cleanup:
av_audio_fifo_free(fifo);
swr_free(&resample_context);
if (output_codec_context)
avcodec_close(output_codec_context);
avcodec_free_context(&output_codec_context);
if (output_format_context) {
avio_closep(&output_format_context->pb);
avformat_free_context(output_format_context);
}
if (input_codec_context)
avcodec_close(input_codec_context);
avcodec_free_context(&input_codec_context);
if (input_format_context)
avformat_close_input(&input_format_context);

View File

@ -31,7 +31,6 @@
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
#include <libavfilter/avfiltergraph.h>
#include <libavfilter/avcodec.h>
#include <libavfilter/buffersink.h>
#include <libavfilter/buffersrc.h>
#include <libavutil/opt.h>
@ -117,7 +116,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;
}
@ -129,7 +128,10 @@ static int open_output_file(const char *filename)
enc_ctx->width = dec_ctx->width;
enc_ctx->sample_aspect_ratio = dec_ctx->sample_aspect_ratio;
/* take first format from list of supported formats */
enc_ctx->pix_fmt = encoder->pix_fmts[0];
if (encoder->pix_fmts)
enc_ctx->pix_fmt = encoder->pix_fmts[0];
else
enc_ctx->pix_fmt = dec_ctx->pix_fmt;
/* video time_base can be set to whatever is handy and supported by encoder */
enc_ctx->time_base = dec_ctx->time_base;
} else {
@ -161,7 +163,7 @@ static int open_output_file(const char *filename)
}
if (ofmt_ctx->oformat->flags & AVFMT_GLOBALHEADER)
enc_ctx->flags |= CODEC_FLAG_GLOBAL_HEADER;
enc_ctx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
}
av_dump_format(ofmt_ctx, 0, filename, 1);
@ -449,7 +451,7 @@ static int flush_encoder(unsigned int stream_index)
int got_frame;
if (!(ofmt_ctx->streams[stream_index]->codec->codec->capabilities &
CODEC_CAP_DELAY))
AV_CODEC_CAP_DELAY))
return 0;
while (1) {
@ -537,7 +539,7 @@ int main(int argc, char **argv)
if (ret < 0)
goto end;
}
av_free_packet(&packet);
av_packet_unref(&packet);
}
/* flush filters and encoders */
@ -561,7 +563,7 @@ int main(int argc, char **argv)
av_write_trailer(ofmt_ctx);
end:
av_free_packet(&packet);
av_packet_unref(&packet);
av_frame_free(&frame);
for (i = 0; i < ifmt_ctx->nb_streams; i++) {
avcodec_close(ifmt_ctx->streams[i]->codec);

View File

@ -147,7 +147,7 @@ exec /usr/bin/pkg-config "$@@"
Try a @code{make distclean} in the ffmpeg source directory before the build.
If this does not help see
(@url{http://ffmpeg.org/bugreports.html}).
(@url{https://ffmpeg.org/bugreports.html}).
@section How do I encode single pictures into movies?
@ -311,18 +311,18 @@ invoking ffmpeg with several @option{-i} options.
For audio, to put all channels together in a single stream (example: two
mono streams into one stereo stream): this is sometimes called to
@emph{merge} them, and can be done using the
@url{http://ffmpeg.org/ffmpeg-filters.html#amerge, @code{amerge}} filter.
@url{https://ffmpeg.org/ffmpeg-filters.html#amerge, @code{amerge}} filter.
@item
For audio, to play one on top of the other: this is called to @emph{mix}
them, and can be done by first merging them into a single stream and then
using the @url{http://ffmpeg.org/ffmpeg-filters.html#pan, @code{pan}} filter to mix
using the @url{https://ffmpeg.org/ffmpeg-filters.html#pan, @code{pan}} filter to mix
the channels at will.
@item
For video, to display both together, side by side or one on top of a part of
the other; it can be done using the
@url{http://ffmpeg.org/ffmpeg-filters.html#overlay, @code{overlay}} video filter.
@url{https://ffmpeg.org/ffmpeg-filters.html#overlay, @code{overlay}} video filter.
@end itemize
@ -333,19 +333,19 @@ There are several solutions, depending on the exact circumstances.
@subsection Concatenating using the concat @emph{filter}
FFmpeg has a @url{http://ffmpeg.org/ffmpeg-filters.html#concat,
FFmpeg has a @url{https://ffmpeg.org/ffmpeg-filters.html#concat,
@code{concat}} filter designed specifically for that, with examples in the
documentation. This operation is recommended if you need to re-encode.
@subsection Concatenating using the concat @emph{demuxer}
FFmpeg has a @url{http://www.ffmpeg.org/ffmpeg-formats.html#concat,
FFmpeg has a @url{https://www.ffmpeg.org/ffmpeg-formats.html#concat,
@code{concat}} demuxer which you can use when you want to avoid a re-encode and
your format doesn't support file level concatenation.
@subsection Concatenating using the concat @emph{protocol} (file level)
FFmpeg has a @url{http://ffmpeg.org/ffmpeg-protocols.html#concat,
FFmpeg has a @url{https://ffmpeg.org/ffmpeg-protocols.html#concat,
@code{concat}} protocol designed specifically for that, with examples in the
documentation.
@ -485,7 +485,7 @@ scaling adjusts the SAR to keep the DAR constant.
If you want to stretch, or “unstretch”, the image, you need to override the
information with the
@url{http://ffmpeg.org/ffmpeg-filters.html#setdar_002c-setsar, @code{setdar or setsar filters}}.
@url{https://ffmpeg.org/ffmpeg-filters.html#setdar_002c-setsar, @code{setdar or setsar filters}}.
Do not forget to examine carefully the original video to check whether the
stretching comes from the image or from the aspect ratio information.
@ -589,7 +589,7 @@ see @file{libavformat/aviobuf.c} in FFmpeg and @file{libmpdemux/demux_lavf.c} in
@section Where is the documentation about ffv1, msmpeg4, asv1, 4xm?
see @url{http://www.ffmpeg.org/~michael/}
see @url{https://www.ffmpeg.org/~michael/}
@section How do I feed H.263-RTP (and other codecs in RTP) to libavcodec?

View File

@ -253,6 +253,10 @@ Overwrite output files without asking.
Do not overwrite output files, and exit immediately if a specified
output file already exists.
@item -stream_loop @var{number} (@emph{input})
Set number of times input stream shall be looped. Loop 0 means no loop,
loop -1 means infinite loop.
@item -c[:@var{stream_specifier}] @var{codec} (@emph{input/output,per-stream})
@itemx -codec[:@var{stream_specifier}] @var{codec} (@emph{input/output,per-stream})
Select an encoder (when used before an output file) or a decoder (when used
@ -280,23 +284,27 @@ data read from the input file.
When used as an output option (before an output filename), stop writing the
output after its duration reaches @var{duration}.
@var{duration} may be a number in seconds, or in @code{hh:mm:ss[.xxx]} form.
@var{duration} must be a time duration specification,
see @ref{time duration syntax,,the Time duration section in the ffmpeg-utils(1) manual,ffmpeg-utils}.
-to and -t are mutually exclusive and -t has priority.
@item -to @var{position} (@emph{output})
Stop writing the output at @var{position}.
@var{position} may be a number in seconds, or in @code{hh:mm:ss[.xxx]} form.
@var{position} must be a time duration specification,
see @ref{time duration syntax,,the Time duration section in the ffmpeg-utils(1) manual,ffmpeg-utils}.
-to and -t are mutually exclusive and -t has priority.
@item -fs @var{limit_size} (@emph{output})
Set the file size limit, expressed in bytes.
Set the file size limit, expressed in bytes. No further chunk of bytes is written
after the limit is exceeded. The size of the output file is slightly more than the
requested file size.
@item -ss @var{position} (@emph{input/output})
When used as an input option (before @code{-i}), seeks in this input file to
@var{position}. Note the in most formats it is not possible to seek exactly, so
@command{ffmpeg} will seek to the closest seek point before @var{position}.
@var{position}. Note that in most formats it is not possible to seek exactly,
so @command{ffmpeg} will seek to the closest seek point before @var{position}.
When transcoding and @option{-accurate_seek} is enabled (the default), this
extra segment between the seek point and @var{position} will be decoded and
discarded. When doing stream copy or when @option{-noaccurate_seek} is used, it
@ -305,7 +313,13 @@ will be preserved.
When used as an output option (before an output filename), decodes but discards
input until the timestamps reach @var{position}.
@var{position} may be either in seconds or in @code{hh:mm:ss[.xxx]} form.
@var{position} must be a time duration specification,
see @ref{time duration syntax,,the Time duration section in the ffmpeg-utils(1) manual,ffmpeg-utils}.
@item -sseof @var{position} (@emph{input/output})
Like the @code{-ss} option but relative to the "end of file". That is negative
values are earlier in the file, 0 is at EOF.
@item -itsoffset @var{offset} (@emph{input})
Set the input time offset.
@ -320,15 +334,15 @@ the time duration specified in @var{offset}.
@item -timestamp @var{date} (@emph{output})
Set the recording timestamp in the container.
@var{date} must be a time duration specification,
@var{date} must be a date specification,
see @ref{date syntax,,the Date section in the ffmpeg-utils(1) manual,ffmpeg-utils}.
@item -metadata[:metadata_specifier] @var{key}=@var{value} (@emph{output,per-metadata})
Set a metadata key/value pair.
An optional @var{metadata_specifier} may be given to set metadata
on streams or chapters. See @code{-map_metadata} documentation for
details.
on streams, chapters or programs. See @code{-map_metadata}
documentation for details.
This option overrides metadata set with @code{-map_metadata}. It is
also possible to delete metadata by using an empty value.
@ -343,6 +357,11 @@ To set the language of the first audio stream:
ffmpeg -i INPUT -metadata:s:a:0 language=eng OUTPUT
@end example
@item -program [title=@var{title}:][program_num=@var{program_num}:]st=@var{stream}[:st=@var{stream}...] (@emph{output})
Creates a program with the specified @var{title}, @var{program_num} and adds the specified
@var{stream}(s) to it.
@item -target @var{type} (@emph{output})
Specify target file type (@code{vcd}, @code{svcd}, @code{dvd}, @code{dv},
@code{dv50}). @var{type} may be prefixed with @code{pal-}, @code{ntsc-} or
@ -663,6 +682,16 @@ Use VDPAU (Video Decode and Presentation API for Unix) hardware acceleration.
@item dxva2
Use DXVA2 (DirectX Video Acceleration) hardware acceleration.
@item qsv
Use the Intel QuickSync Video acceleration for video transcoding.
Unlike most other values, this option does not enable accelerated decoding (that
is used automatically whenever a qsv decoder is selected), but accelerated
transcoding, without copying the frames into the system memory.
For it to work, both the decoder and the encoder must support QSV acceleration
and no filters must be used.
@end table
This option has no effect if the selected hwaccel is not available or not
@ -689,9 +718,27 @@ is not specified, the value of the @var{DISPLAY} environment variable is used
@item dxva2
For DXVA2, this option should contain the number of the display adapter to use.
If this option is not specified, the default adapter is used.
@item qsv
For QSV, this option corresponds to the values of MFX_IMPL_* . Allowed values
are:
@table @option
@item auto
@item sw
@item hw
@item auto_any
@item hw_any
@item hw2
@item hw3
@item hw4
@end table
@end table
@item -hwaccels
List all hardware acceleration methods supported in this build of ffmpeg.
@end table
@section Audio Options
@table @option
@ -1193,9 +1240,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.
@ -1221,6 +1268,14 @@ Discard all frames excepts keyframes.
Discard all frames.
@end table
@item -abort_on @var{flags} (@emph{global})
Stop and abort on various conditions. The following flags are available:
@table @option
@item empty_output
No packets were passed to the muxer, the output is empty.
@end table
@item -xerror (@emph{global})
Stop and exit on error
@ -1299,47 +1354,6 @@ If no such file is found, then ffmpeg will search for a file named
@c man end OPTIONS
@chapter Tips
@c man begin TIPS
@itemize
@item
For streaming at very low bitrates, use a low frame rate
and a small GOP size. This is especially true for RealVideo where
the Linux player does not seem to be very fast, so it can miss
frames. An example is:
@example
ffmpeg -g 3 -r 3 -t 10 -b:v 50k -s qcif -f rv10 /tmp/b.rm
@end example
@item
The parameter 'q' which is displayed while encoding is the current
quantizer. The value 1 indicates that a very good quality could
be achieved. The value 31 indicates the worst quality. If q=31 appears
too often, it means that the encoder cannot compress enough to meet
your bitrate. You must either increase the bitrate, decrease the
frame rate or decrease the frame size.
@item
If your computer is not fast enough, you can speed up the
compression at the expense of the compression ratio. You can use
'-me zero' to speed up motion estimation, and '-g 0' to disable
motion estimation completely (you have only I-frames, which means it
is about as good as JPEG compression).
@item
To have very low audio bitrates, reduce the sampling frequency
(down to 22050 Hz for MPEG audio, 22050 or 11025 for AC-3).
@item
To have a constant quality (but a variable bitrate), use the option
'-qscale n' when 'n' is between 1 (excellent quality) and 31 (worst
quality).
@end itemize
@c man end TIPS
@chapter Examples
@c man begin EXAMPLES

View File

@ -47,9 +47,17 @@ Disable video.
@item -sn
Disable subtitles.
@item -ss @var{pos}
Seek to a given position in seconds.
Seek to @var{pos}. Note that in most formats it is not possible to seek
exactly, so @command{ffplay} will seek to the nearest seek point to
@var{pos}.
@var{pos} must be a time duration specification,
see @ref{time duration syntax,,the Time duration section in the ffmpeg-utils(1) manual,ffmpeg-utils}.
@item -t @var{duration}
play <duration> seconds of audio/video
Play @var{duration} seconds of audio/video.
@var{duration} must be a time duration specification,
see @ref{time duration syntax,,the Time duration section in the ffmpeg-utils(1) manual,ffmpeg-utils}.
@item -bytes
Seek by bytes.
@item -nodisp
@ -189,6 +197,15 @@ Toggle full screen.
@item p, SPC
Pause.
@item m
Toggle mute.
@item 9, 0
Decrease and increase volume respectively.
@item /, *
Decrease and increase volume respectively.
@item a
Cycle audio channel in the current program.
@ -221,9 +238,12 @@ Seek to the previous/next chapter.
or if there are no chapters
Seek backward/forward 10 minutes.
@item mouse click
@item right mouse click
Seek to percentage in file corresponding to fraction of width.
@item left mouse double-click
Toggle full screen.
@end table
@c man end

View File

@ -129,6 +129,7 @@
<xsd:complexType name="frameSideDataType">
<xsd:attribute name="side_data_type" type="xsd:string"/>
<xsd:attribute name="side_data_size" type="xsd:int" />
<xsd:attribute name="timecode" type="xsd:string"/>
</xsd:complexType>
<xsd:complexType name="subtitleType">

View File

@ -36,8 +36,10 @@ Possible forms of stream specifiers are:
Matches the stream with this index. E.g. @code{-threads:1 4} would set the
thread count for the second stream to 4.
@item @var{stream_type}[:@var{stream_index}]
@var{stream_type} is one of following: 'v' for video, 'a' for audio, 's' for subtitle,
'd' for data, and 't' for attachments. If @var{stream_index} is given, then it matches
@var{stream_type} is one of following: 'v' or 'V' for video, 'a' for audio, 's'
for subtitle, 'd' for data, and 't' for attachments. 'v' matches all video
streams, 'V' only matches video streams which are not attached pictures, video
thumbnails or cover arts. If @var{stream_index} is given, then it matches
stream number @var{stream_index} of this type. Otherwise, it matches all
streams of this type.
@item p:@var{program_id}[:@var{stream_index}]

View File

@ -98,7 +98,7 @@ Buffer references ownership and permissions
The AVFilterLink structure has a few AVFilterBufferRef fields. The
cur_buf and out_buf were used with the deprecated
start_frame/draw_slice/end_frame API and should no longer be used.
src_buf, cur_buf_copy and partial_buf are used by libavfilter internally
src_buf and partial_buf are used by libavfilter internally
and must not be accessed by filters.
Reference permissions
@ -232,7 +232,8 @@ Frame scheduling
one of its inputs, repeatedly until at least one frame has been pushed.
Return values:
if request_frame could produce a frame, it should return 0;
if request_frame could produce a frame, or at least make progress
towards producing a frame, it should return 0;
if it could not for temporary reasons, it should return AVERROR(EAGAIN);
if it could not because there are no more frames, it should return
AVERROR_EOF.
@ -244,20 +245,18 @@ Frame scheduling
push_one_frame();
return 0;
}
while (!frame_pushed) {
input = input_where_a_frame_is_most_needed();
ret = ff_request_frame(input);
if (ret == AVERROR_EOF) {
process_eof_on_input();
} else if (ret < 0) {
return ret;
}
input = input_where_a_frame_is_most_needed();
ret = ff_request_frame(input);
if (ret == AVERROR_EOF) {
process_eof_on_input();
} else if (ret < 0) {
return ret;
}
return 0;
Note that, except for filters that can have queued frames, request_frame
does not push frames: it requests them to its input, and as a reaction,
the filter_frame method will be called and do the work.
the filter_frame method possibly will be called and do the work.
Legacy API
==========

File diff suppressed because it is too large Load Diff

View File

@ -147,7 +147,7 @@ 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.
Use wallclock as timestamps if set to 1. Default is 0.
@item avoid_negative_ts @var{integer} (@emph{output})

View File

@ -53,14 +53,6 @@ instructions for installing the libraries.
Then pass @code{--enable-libopencore-amrnb} and/or
@code{--enable-libopencore-amrwb} to configure to enable them.
@subsection VisualOn AAC encoder library
FFmpeg can make use of the VisualOn AACenc library for AAC encoding.
Go to @url{http://sourceforge.net/projects/opencore-amr/} and follow the
instructions for installing the library.
Then pass @code{--enable-libvo-aacenc} to configure to enable it.
@subsection VisualOn AMR-WB encoder library
FFmpeg can make use of the VisualOn AMR-WBenc library for AMR-WB encoding.
@ -111,12 +103,19 @@ enable it.
@section OpenH264
FFmpeg can make use of the OpenH264 library for H.264 encoding.
FFmpeg can make use of the OpenH264 library for H.264 encoding and decoding.
Go to @url{http://www.openh264.org/} and follow the instructions for
installing the library. Then pass @code{--enable-libopenh264} to configure to
enable it.
For decoding, this library is much more limited than the built-in decoder
in libavcodec; currently, this library lacks support for decoding B-frames
and some other main/high profile features. (It currently only supports
constrained baseline profile and CABAC.) Using it is mostly useful for
testing and for taking advantage of Cisco's patent portfolio license
(@url{http://www.openh264.org/BINARY_LICENSE.txt}).
@section x264
FFmpeg can make use of the x264 library for H.264 encoding.
@ -145,6 +144,14 @@ x265 is under the GNU Public License Version 2 or later
details), you must upgrade FFmpeg's license to GPL in order to use it.
@end float
@section kvazaar
FFmpeg can make use of the kvazaar library for HEVC encoding.
Go to @url{https://github.com/ultravideo/kvazaar} and follow the
instructions for installing the library. Then pass
@code{--enable-libkvazaar} to configure to enable it.
@section libilbc
iLBC is a narrowband speech codec that has been made freely available
@ -165,12 +172,6 @@ Go to @url{http://sourceforge.net/projects/zapping/} and follow the instructions
installing the library. Then pass @code{--enable-libzvbi} to configure to
enable it.
@float NOTE
libzvbi is licensed under the GNU General Public License Version 2 or later
(see @url{http://www.gnu.org/licenses/old-licenses/gpl-2.0.html} for details),
you must upgrade FFmpeg's license to GPL in order to use it.
@end float
@section AviSynth
FFmpeg can read AviSynth scripts as input. To enable support, pass
@ -192,6 +193,17 @@ end user having AviSynth or AvxSynth installed - they'll only need to be
installed to use AviSynth scripts (obviously).
@end float
@section Intel QuickSync Video
FFmpeg can use Intel QuickSync Video (QSV) for accelerated encoding and decoding
of multiple codecs. To use QSV, FFmpeg must be linked against the @code{libmfx}
dispatcher, which loads the actual decoding libraries.
The dispatcher is open source and can be downloaded from
@url{https://github.com/lu-zero/mfx_dispatch.git}. FFmpeg needs to be configured
with the @code{--enable-libmfx} option and @code{pkg-config} needs to be able to
locate the dispatcher's @code{.pc} files.
@chapter Supported File Formats, Codecs or Features
@ -204,9 +216,14 @@ library:
@multitable @columnfractions .4 .1 .1 .4
@item Name @tab Encoding @tab Decoding @tab Comments
@item 3dostr @tab @tab X
@item 4xm @tab @tab X
@tab 4X Technologies format, used in some games.
@item 8088flex TMV @tab @tab X
@item AAX @tab @tab X
@tab Audible Enhanced Audio format, used in audiobooks.
@item AA @tab @tab X
@tab Audible Format 2, 3, and 4, used in audiobooks.
@item ACT Voice @tab @tab X
@tab contains G.729 audio
@item Adobe Filmstrip @tab X @tab X
@ -218,10 +235,14 @@ library:
@tab Multimedia format used in game Heart Of Darkness.
@item Apple HTTP Live Streaming @tab @tab X
@item Artworx Data Format @tab @tab X
@item Interplay ACM @tab @tab X
@tab Audio only format used in some Interplay games.
@item ADP @tab @tab X
@tab Audio format used on the Nintendo Gamecube.
@item AFC @tab @tab X
@tab Audio format used on the Nintendo Gamecube.
@item ADS/SS2 @tab @tab X
@tab Audio format used on the PS2.
@item APNG @tab X @tab X
@item ASF @tab X @tab X
@item AST @tab X @tab X
@ -243,6 +264,8 @@ library:
@tab Used in Z and Z95 games.
@item Brute Force & Ignorance @tab @tab X
@tab Used in the game Flash Traffic: City of Angels.
@item BFSTM @tab @tab X
@tab Audio format used on the Nintendo WiiU (based on BRSTM).
@item BRSTM @tab @tab X
@tab Audio format used on the Nintendo Wii.
@item BWF @tab X @tab X
@ -260,6 +283,7 @@ library:
@item CD+G @tab @tab X
@tab Video format used by CD+G karaoke disks
@item Phantom Cine @tab @tab X
@item Cineform HD @tab @tab X
@item Commodore CDXL @tab @tab X
@tab Amiga CD video format
@item Core Audio Format @tab X @tab X
@ -271,8 +295,10 @@ library:
@tab Audio format used in some games by CRYO Interactive Entertainment.
@item D-Cinema audio @tab X @tab X
@item Deluxe Paint Animation @tab @tab X
@item DCSTR @tab @tab X
@item DFA @tab @tab X
@tab This format is used in Chronomaster game
@item DirectDraw Surface @tab @tab X
@item DSD Stream File (DSF) @tab @tab X
@item DV video @tab X @tab X
@item DXA @tab @tab X
@ -296,6 +322,8 @@ library:
@item G.723.1 @tab X @tab X
@item G.729 BIT @tab X @tab X
@item G.729 raw @tab @tab X
@item GENH @tab @tab X
@tab Audio format for various games.
@item GIF Animation @tab X @tab X
@item GXF @tab X @tab X
@tab General eXchange Format SMPTE 360M, used by Thomson Grass Valley
@ -318,6 +346,7 @@ library:
@tab A format generated by IndigoVision 8000 video server.
@item IVF (On2) @tab X @tab X
@tab A format used by libvpx
@item Internet Video Recording @tab @tab X
@item IRCAM @tab X @tab X
@item LATM @tab X @tab X
@item LMLM4 @tab @tab X
@ -354,6 +383,8 @@ library:
@tab also known as DVB Transport Stream
@item MPEG-4 @tab X @tab X
@tab MPEG-4 is a variant of QuickTime.
@item MSF @tab @tab X
@tab Audio format used on the PS3.
@item Mirillis FIC video @tab @tab X
@tab No cursor rendering.
@item MIME multipart JPEG @tab X @tab
@ -437,6 +468,7 @@ library:
@item Redirector @tab @tab X
@item RedSpark @tab @tab X
@item Renderware TeXture Dictionary @tab @tab X
@item Resolume DXV @tab @tab X
@item RL2 @tab @tab X
@tab Audio and video format used in some games by Entertainment Software Partners.
@item RPL/ARMovie @tab @tab X
@ -469,6 +501,8 @@ 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 SVAG @tab @tab X
@tab Audio format used in Konami PS2 games.
@item TDSC @tab @tab X
@item Text files @tab @tab X
@item THP @tab @tab X
@ -476,8 +510,13 @@ library:
@item Tiertex Limited SEQ @tab @tab X
@tab Tiertex .seq files used in the DOS CD-ROM version of the game Flashback.
@item True Audio @tab @tab X
@item VAG @tab @tab X
@tab Audio format used in many Sony PS2 games.
@item VC-1 test bitstream @tab X @tab X
@item Vidvox Hap @tab X @tab X
@item Vivo @tab @tab X
@item VPK @tab @tab X
@tab Audio format used in Sony PS games.
@item WAV @tab X @tab X
@item WavPack @tab X @tab X
@item WebM @tab X @tab X
@ -488,8 +527,12 @@ library:
@tab Multimedia format used in Westwood Studios games.
@item Westwood Studios VQA @tab @tab X
@tab Multimedia format used in Westwood Studios games.
@item Wideband Single-bit Data (WSD) @tab @tab X
@item WVE @tab @tab X
@item XMV @tab @tab X
@tab Microsoft video container used in Xbox games.
@item XVAG @tab @tab X
@tab Audio format used on the PS3.
@item xWMA @tab @tab X
@tab Microsoft audio container used by XAudio 2.
@item eXtended BINary text (XBIN) @tab @tab X
@ -608,6 +651,7 @@ following image formats are supported:
@item Bethesda VID video @tab @tab X
@tab Used in some games from Bethesda Softworks.
@item Bink Video @tab @tab X
@item BitJazz SheerVideo @tab @tab X
@item Bitmap Brothers JV video @tab @tab X
@item y41p Brooktree uncompressed 4:1:1 12-bit @tab X @tab X
@item Brute Force & Ignorance @tab @tab X
@ -642,6 +686,8 @@ following image formats are supported:
@tab fourcc: DUCK
@item Duck TrueMotion 2.0 @tab @tab X
@tab fourcc: TM20
@item Duck TrueMotion 2.0 RT @tab @tab X
@tab fourcc: TR20
@item DV (Digital Video) @tab X @tab X
@item Dxtory capture format @tab @tab X
@item Feeble Files/ScummVM DXA @tab @tab X
@ -663,6 +709,8 @@ following image formats are supported:
@tab Sorenson H.263 used in Flash
@item Forward Uncompressed @tab @tab X
@item Fraps @tab @tab X
@item Go2Meeting @tab @tab X
@tab fourcc: G2M2, G2M3
@item Go2Webinar @tab @tab X
@tab fourcc: G2M4
@item H.261 @tab X @tab X
@ -671,7 +719,7 @@ following image formats are supported:
@item H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 @tab E @tab X
@tab encoding supported through external library libx264 and OpenH264
@item HEVC @tab X @tab X
@tab encoding supported through the external library libx265
@tab encoding supported through external library libx265 and libkvazaar
@item HNM version 4 @tab @tab X
@item HuffYUV @tab X @tab X
@item HuffYUV FFmpeg variant @tab X @tab X
@ -706,6 +754,7 @@ following image formats are supported:
@item LucasArts SANM/Smush @tab @tab X
@tab Used in LucasArts games / SMUSH animations.
@item lossless MJPEG @tab X @tab X
@item MagicYUV Video @tab @tab X
@item Microsoft ATC Screen @tab @tab X
@tab Also known as Microsoft Screen 3.
@item Microsoft Expression Encoder Screen @tab @tab X
@ -770,6 +819,7 @@ following image formats are supported:
@tab Texture dictionaries used by the Renderware Engine.
@item RL2 video @tab @tab X
@tab used in some games by Entertainment Software Partners
@item Screenpresso @tab @tab X
@item Sierra VMD video @tab @tab X
@tab Used in Sierra VMD files.
@item Silicon Graphics Motion Video Compressor 1 (MVC1) @tab @tab X
@ -836,12 +886,13 @@ following image formats are supported:
@item Name @tab Encoding @tab Decoding @tab Comments
@item 8SVX exponential @tab @tab X
@item 8SVX fibonacci @tab @tab X
@item AAC+ @tab E @tab X
@tab encoding supported through external library libaacplus
@item AAC @tab E @tab X
@tab encoding supported through external library libfaac and libvo-aacenc
@item AAC @tab EX @tab X
@tab encoding supported through internal encoder and external libraries libfaac and libfdk-aac
@item AAC+ @tab E @tab IX
@tab encoding supported through external library libfdk-aac
@item AC-3 @tab IX @tab IX
@item ADPCM 4X Movie @tab @tab X
@item APDCM Yamaha AICA @tab @tab X
@item ADPCM CDROM XA @tab @tab X
@item ADPCM Creative Technology @tab @tab X
@tab 16 -> 4, 8 -> 4, 8 -> 3, 8 -> 2
@ -876,7 +927,8 @@ following image formats are supported:
@item ADPCM MS IMA @tab X @tab X
@item ADPCM Nintendo Gamecube AFC @tab @tab X
@item ADPCM Nintendo Gamecube DTK @tab @tab X
@item ADPCM Nintendo Gamecube THP @tab @tab X
@item ADPCM Nintendo THP @tab @tab X
@item APDCM Playstation @tab @tab X
@item ADPCM QT IMA @tab X @tab X
@item ADPCM SEGA CRI ADX @tab X @tab X
@tab Used in Sega Dreamcast games.
@ -884,7 +936,7 @@ following image formats are supported:
@item ADPCM Sound Blaster Pro 2-bit @tab @tab X
@item ADPCM Sound Blaster Pro 2.6-bit @tab @tab X
@item ADPCM Sound Blaster Pro 4-bit @tab @tab X
@item ADPCM VIMA
@item ADPCM VIMA @tab @tab X
@tab Used in LucasArts SMUSH animations.
@item ADPCM Westwood Studios IMA @tab @tab X
@tab Used in Westwood Studios games like Command and Conquer.
@ -910,11 +962,13 @@ 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)
@tab supported extensions: XCh, XXCH, X96, XBR, XLL, LBR (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
@tab Used in various Interplay computer games.
@item DPCM Squareroot-Delta-Exact @tab @tab X
@tab Used in various games.
@item DPCM Sierra Online @tab @tab X
@tab Used in Sierra Online game audio files.
@item DPCM Sol @tab @tab X
@ -925,11 +979,12 @@ following image formats are supported:
@item DSD (Direct Stream Digitial), least significant bit first, planar @tab @tab X
@item DSD (Direct Stream Digitial), most significant bit first, planar @tab @tab X
@item DSP Group TrueSpeech @tab @tab X
@item DST (Direct Stream Transfer) @tab @tab X
@item DV audio @tab @tab X
@item Enhanced AC-3 @tab X @tab X
@item EVRC (Enhanced Variable Rate Codec) @tab @tab X
@item FLAC (Free Lossless Audio Codec) @tab X @tab IX
@item G.723.1 @tab X @tab X
@item G.723.1 @tab X @tab X
@item G.729 @tab @tab X
@item GSM @tab E @tab X
@tab encoding supported through external library libgsm
@ -939,6 +994,7 @@ following image formats are supported:
@item iLBC (Internet Low Bitrate Codec) @tab E @tab E
@tab encoding and decoding supported through external library libilbc
@item IMC (Intel Music Coder) @tab @tab X
@item Interplay ACM @tab @tab X
@item MACE (Macintosh Audio Compression/Expansion) 3:1 @tab @tab X
@item MACE (Macintosh Audio Compression/Expansion) 6:1 @tab @tab X
@item MLP (Meridian Lossless Packing) @tab @tab X
@ -954,8 +1010,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
@ -1023,6 +1079,8 @@ following image formats are supported:
@item Windows Media Audio Lossless @tab @tab X
@item Windows Media Audio Pro @tab @tab X
@item Windows Media Audio Voice @tab @tab X
@item Xbox Media Audio 1 @tab @tab X
@item Xbox Media Audio 2 @tab @tab X
@end multitable
@code{X} means that encoding (resp. decoding) is supported.

View File

@ -1,10 +1,10 @@
\input texinfo @c -*- texinfo -*-
@documentencoding UTF-8
@settitle Using git to develop FFmpeg
@settitle Using Git to develop FFmpeg
@titlepage
@center @titlefont{Using git to develop FFmpeg}
@center @titlefont{Using Git to develop FFmpeg}
@end titlepage
@top
@ -13,9 +13,9 @@
@chapter Introduction
This document aims in giving some quick references on a set of useful git
This document aims in giving some quick references on a set of useful Git
commands. You should always use the extensive and detailed documentation
provided directly by git:
provided directly by Git:
@example
git --help
@ -32,22 +32,21 @@ man git-<command>
shows information about the subcommand <command>.
Additional information could be found on the
@url{http://gitref.org, Git Reference} website
@url{http://gitref.org, Git Reference} website.
For more information about the Git project, visit the
@url{http://git-scm.com/, Git website}
@url{http://git-scm.com/, Git website}.
Consult these resources whenever you have problems, they are quite exhaustive.
What follows now is a basic introduction to Git and some FFmpeg-specific
guidelines to ease the contribution to the project
guidelines to ease the contribution to the project.
@chapter Basics Usage
@section Get GIT
@section Get Git
You can get git from @url{http://git-scm.com/}
You can get Git from @url{http://git-scm.com/}
Most distribution and operating system provide a package for it.
@ -66,6 +65,21 @@ git clone git@@source.ffmpeg.org:ffmpeg <target>
This will put the FFmpeg sources into the directory @var{<target>} and let
you push back your changes to the remote repository.
@example
git clone gil@@ffmpeg.org:ffmpeg-web <target>
@end example
This will put the source of the FFmpeg website into the directory
@var{<target>} and let you push back your changes to the remote repository.
(Note that @var{gil} stands for GItoLite and is not a typo of @var{git}.)
If you don't have write-access to the ffmpeg-web repository, you can
create patches after making a read-only ffmpeg-web clone:
@example
git clone git://ffmpeg.org/ffmpeg-web <target>
@end example
Make sure that you do not have Windows line endings in your checkouts,
otherwise you may experience spurious compilation failures. One way to
achieve this is to run
@ -108,7 +122,7 @@ git add [-A] <filename/dirname>
git rm [-r] <filename/dirname>
@end example
GIT needs to get notified of all changes you make to your working
Git needs to get notified of all changes you make to your working
directory that makes files appear or disappear.
Line moves across files are automatically tracked.
@ -128,8 +142,8 @@ will show all local modifications in your working directory as unified diff.
git log <filename(s)>
@end example
You may also use the graphical tools like gitview or gitk or the web
interface available at http://source.ffmpeg.org/
You may also use the graphical tools like @command{gitview} or @command{gitk}
or the web interface available at @url{http://source.ffmpeg.org/}.
@section Checking source tree status
@ -150,6 +164,7 @@ git diff --check
to double check your changes before committing them to avoid trouble later
on. All experienced developers do this on each and every commit, no matter
how small.
Every one of them has been saved from looking like a fool by this many times.
It's very easy for stray debug output or cosmetic modifications to slip in,
please avoid problems through this extra level of scrutiny.
@ -172,14 +187,14 @@ to make sure you don't have untracked files or deletions.
git add [-i|-p|-A] <filenames/dirnames>
@end example
Make sure you have told git your name and email address
Make sure you have told Git your name and email address
@example
git config --global user.name "My Name"
git config --global user.email my@@email.invalid
@end example
Use @var{--global} to set the global configuration for all your git checkouts.
Use @option{--global} to set the global configuration for all your Git checkouts.
Git will select the changes to the files for commit. Optionally you can use
the interactive or the patch mode to select hunk by hunk what should be
@ -210,7 +225,7 @@ include filenames in log messages, Git provides that information.
Possibly make the commit message have a terse, descriptive first line, an
empty line and then a full description. The first line will be used to name
the patch by git format-patch.
the patch by @command{git format-patch}.
@section Preparing a patchset
@ -326,10 +341,12 @@ faulty commit disappear from the history.
@section Pushing changes to remote trees
@example
git push
git push origin master --dry-run
@end example
Will push the changes to the default remote (@var{origin}).
Will simulate a push of the local master branch to the default remote
(@var{origin}). And list which branches and ranges or commits would have been
pushed.
Git will prevent you from pushing changes if the local and remote trees are
out of sync. Refer to @ref{Updating the source tree to the latest revision}.
@ -350,23 +367,24 @@ branches matching the local ones.
@section Finding a specific svn revision
Since version 1.7.1 git supports @var{:/foo} syntax for specifying commits
Since version 1.7.1 Git supports @samp{:/foo} syntax for specifying commits
based on a regular expression. see man gitrevisions
@example
git show :/'as revision 23456'
@end example
will show the svn changeset @var{r23456}. With older git versions searching in
will show the svn changeset @samp{r23456}. With older Git versions searching in
the @command{git log} output is the easiest option (especially if a pager with
search capabilities is used).
This commit can be checked out with
@example
git checkout -b svn_23456 :/'as revision 23456'
@end example
or for git < 1.7.1 with
or for Git < 1.7.1 with
@example
git checkout -b svn_23456 $SHA1
@ -375,7 +393,7 @@ git checkout -b svn_23456 $SHA1
where @var{$SHA1} is the commit hash from the @command{git log} output.
@chapter pre-push checklist
@chapter Pre-push checklist
Once you have a set of commits that you feel are ready for pushing,
work through the following checklist to doublecheck everything is in
@ -386,21 +404,21 @@ Apply your common sense, but if in doubt, err on the side of caution.
First, make sure that the commits and branches you are going to push
match what you want pushed and that nothing is missing, extraneous or
wrong. You can see what will be pushed by running the git push command
with --dry-run first. And then inspecting the commits listed with
with @option{--dry-run} first. And then inspecting the commits listed with
@command{git log -p 1234567..987654}. The @command{git status} command
may help in finding local changes that have been forgotten to be added.
Next let the code pass through a full run of our testsuite.
Next let the code pass through a full run of our test suite.
@itemize
@item @command{make distclean}
@item @command{/path/to/ffmpeg/configure}
@item @command{make check}
@item @command{make fate}
@item if fate fails due to missing samples run @command{make fate-rsync} and retry
@end itemize
Make sure all your changes have been checked before pushing them, the
testsuite only checks against regressions and that only to some extend. It does
test suite only checks against regressions and that only to some extend. It does
obviously not check newly added features/code to be working unless you have
added a test for that (which is recommended).
@ -413,5 +431,5 @@ recommended.
@chapter Server Issues
Contact the project admins @email{root@@ffmpeg.org} if you have technical
problems with the GIT server.
Contact the project admins at @email{root@@ffmpeg.org} if you have technical
problems with the Git server.

View File

@ -51,6 +51,18 @@ ffmpeg -f alsa -i hw:0 alsaout.wav
For more information see:
@url{http://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html}
@subsection Options
@table @option
@item sample_rate
Set the sample rate in Hz. Default is 48000.
@item channels
Set the number of channels. Default is 2.
@end table
@section avfoundation
AVFoundation input device.
@ -109,11 +121,24 @@ Specify the audio device by its index. Overrides anything given in the input fil
@item -pixel_format <FORMAT>
Request the video device to use a specific pixel format.
If the specified format is not supported, a list of available formats is given
und the first one in this list is used instead. Available pixel formats are:
and the first one in this list is used instead. Available pixel formats are:
@code{monob, rgb555be, rgb555le, rgb565be, rgb565le, rgb24, bgr24, 0rgb, bgr0, 0bgr, rgb0,
bgr48be, uyvy422, yuva444p, yuva444p16le, yuv444p, yuv422p16, yuv422p10, yuv444p10,
yuv420p, nv12, yuyv422, gray}
@item -framerate
Set the grabbing frame rate. Default is @code{ntsc}, corresponding to a
frame rate of @code{30000/1001}.
@item -video_size
Set the video frame size.
@item -capture_cursor
Capture the mouse pointer. Default is 0.
@item -capture_mouse_clicks
Capture the screen mouse clicks. Default is 0.
@end table
@subsection Examples
@ -150,6 +175,36 @@ $ ffmpeg -f avfoundation -pixel_format bgr0 -i "default:none" out.avi
BSD video input device.
@subsection Options
@table @option
@item framerate
Set the frame rate.
@item video_size
Set the video frame size. Default is @code{vga}.
@item standard
Available values are:
@table @samp
@item pal
@item ntsc
@item secam
@item paln
@item palm
@item ntscj
@end table
@end table
@section decklink
The decklink input device provides capture capabilities for Blackmagic
@ -163,7 +218,8 @@ 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.
of channels can be 2, 8 or 16. Note that all audio channels are bundled in one single
audio track.
@subsection Options
@ -181,6 +237,42 @@ Defaults to @option{false}.
If set to @samp{1}, video is captured in 10 bit v210 instead
of uyvy422. Not all Blackmagic devices support this option.
@item teletext_lines
If set to nonzero, an additional teletext stream will be captured from the
vertical ancillary data. This option is a bitmask of the VBI lines checked,
specifically lines 6 to 22, and lines 318 to 335. Line 6 is the LSB in the mask.
Selected lines which do not contain teletext information will be ignored. You
can use the special @option{all} constant to select all possible lines, or
@option{standard} to skip lines 6, 318 and 319, which are not compatible with all
receivers. Capturing teletext only works for SD PAL sources in 8 bit mode.
To use this option, ffmpeg needs to be compiled with @code{--enable-libzvbi}.
@item channels
Defines number of audio channels to capture. Must be @samp{2}, @samp{8} or @samp{16}.
Defaults to @samp{2}.
@item duplex_mode
Sets the decklink device duplex mode. Must be @samp{unset}, @samp{half} or @samp{full}.
Defaults to @samp{unset}.
@item video_input
Sets the video input source. Must be @samp{unset}, @samp{sdi}, @samp{hdmi},
@samp{optical_sdi}, @samp{component}, @samp{composite} or @samp{s_video}.
Defaults to @samp{unset}.
@item audio_input
Sets the audio input source. Must be @samp{unset}, @samp{embedded},
@samp{aes_ebu}, @samp{analog}, @samp{analog_xlr}, @samp{analog_rca} or
@samp{microphone}. Defaults to @samp{unset}.
@item video_pts
Sets the video packet timestamp source. Must be @samp{video}, @samp{audio},
@samp{reference} or @samp{wallclock}. Defaults to @samp{video}.
@item audio_pts
Sets the audio packet timestamp source. Must be @samp{video}, @samp{audio},
@samp{reference} or @samp{wallclock}. Defaults to @samp{audio}.
@end table
@subsection Examples
@ -212,15 +304,9 @@ ffmpeg -bm_v210 1 -f decklink -i 'UltraStudio Mini Recorder@@11' -acodec copy -v
@end example
@item
Capture video clip at 720p50 with 32bit audio:
Capture video clip at 1080i50 with 16 audio channels:
@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
ffmpeg -channels 16 -f decklink -i 'UltraStudio Mini Recorder@@11' -acodec copy -vcodec copy output.avi
@end example
@end itemize
@ -275,11 +361,11 @@ If set to @option{true}, print a list of selected device's options
and exit.
@item video_device_number
Set video device number for devices with same name (starts at 0,
Set video device number for devices with the same name (starts at 0,
defaults to 0).
@item audio_device_number
Set audio device number for devices with same name (starts at 0,
Set audio device number for devices with the same name (starts at 0,
defaults to 0).
@item pixel_format
@ -429,6 +515,27 @@ $ ffmpeg -f dshow -show_video_device_dialog true -crossbar_video_input_pin_numbe
Linux DV 1394 input device.
@subsection Options
@table @option
@item framerate
Set the frame rate. Default is 25.
@item standard
Available values are:
@table @samp
@item pal
@item ntsc
@end table
Default value is @code{ntsc}.
@end table
@section fbdev
Linux framebuffer input device.
@ -441,18 +548,27 @@ console. It is accessed through a file device node, usually
For more detailed information read the file
Documentation/fb/framebuffer.txt included in the Linux source tree.
See also @url{http://linux-fbdev.sourceforge.net/}, and fbset(1).
To record from the framebuffer device @file{/dev/fb0} with
@command{ffmpeg}:
@example
ffmpeg -f fbdev -r 10 -i /dev/fb0 out.avi
ffmpeg -f fbdev -framerate 10 -i /dev/fb0 out.avi
@end example
You can take a single screenshot image with the command:
@example
ffmpeg -f fbdev -frames:v 1 -r 1 -i /dev/fb0 screenshot.jpeg
ffmpeg -f fbdev -framerate 1 -i /dev/fb0 -frames:v 1 screenshot.jpeg
@end example
See also @url{http://linux-fbdev.sourceforge.net/}, and fbset(1).
@subsection Options
@table @option
@item framerate
Set the frame rate. Default is 25.
@end table
@section gdigrab
@ -638,6 +754,15 @@ $ jack_connect metro:120_bpm ffmpeg:input_1
For more information read:
@url{http://jackaudio.org/}
@subsection Options
@table @option
@item channels
Set the number of channels. Default is 2.
@end table
@section lavfi
Libavfilter input virtual device.
@ -678,6 +803,9 @@ Set the filename of the filtergraph to be read and sent to the other
filters. Syntax of the filtergraph is the same as the one specified by
the option @var{graph}.
@item dumpgraph
Dump graph to stderr.
@end table
@subsection Examples
@ -879,6 +1007,19 @@ ffmpeg -f oss -i /dev/dsp /tmp/oss.wav
For more information about OSS see:
@url{http://manuals.opensound.com/usersguide/dsp.html}
@subsection Options
@table @option
@item sample_rate
Set the sample rate in Hz. Default is 48000.
@item channels
Set the number of channels. Default is 2.
@end table
@section pulse
PulseAudio input device.
@ -919,6 +1060,10 @@ Specify the number of bytes per frame, by default it is set to 1024.
@item fragment_size
Specify the minimal buffering fragment in PulseAudio, it will affect the
audio latency. By default it is unset.
@item wallclock
Set the initial PTS using the current time. Default is 1.
@end table
@subsection Examples
@ -954,6 +1099,22 @@ ffmpeg -f qtkit -i "default" out.mpg
ffmpeg -f qtkit -list_devices true -i ""
@end example
@subsection Options
@table @option
@item frame_rate
Set frame rate. Default is 30.
@item list_devices
If set to @code{true}, print a list of devices and exit. Default is
@code{false}.
@item video_device_index
Select the video device by index for devices with the same name (starts at 0).
@end table
@section sndio
sndio input device.
@ -971,6 +1132,18 @@ command:
ffmpeg -f sndio -i /dev/audio0 /tmp/oss.wav
@end example
@subsection Options
@table @option
@item sample_rate
Set the sample rate in Hz. Default is 48000.
@item channels
Set the number of channels. Default is 2.
@end table
@section video4linux2, v4l2
Video4Linux2 input video device.
@ -1093,6 +1266,10 @@ Force conversion from monotonic to absolute timestamps.
@end table
Default value is @code{default}.
@item use_libv4l2
Use libv4l2 (v4l-utils) conversion functions. Default is 0.
@end table
@section vfwcap
@ -1103,6 +1280,19 @@ The filename passed as input is the capture driver number, ranging from
0 to 9. You may use "list" as filename to print a list of drivers. Any
other filename will be interpreted as device number 0.
@subsection Options
@table @option
@item video_size
Set the video frame size.
@item framerate
Set the grabbing frame rate. Default value is @code{ntsc},
corresponding to a frame rate of @code{30000/1001}.
@end table
@section x11grab
X11 video input device.
@ -1205,17 +1395,13 @@ Set the video frame size. Default value is @code{vga}.
Use the MIT-SHM extension for shared memory. Default value is @code{1}.
It may be necessary to disable it for remote displays (legacy x11grab
only).
@item grab_x
@item grab_y
Set the grabbing region coordinates. They are expressed as offset from
the top left corner of the X11 window and correspond to the
@var{x_offset} and @var{y_offset} parameters in the device name. The
default value for both options is 0.
@end table
@subsection @var{grab_x} @var{grab_y} AVOption
The syntax is:
@example
-grab_x @var{x_offset} -grab_y @var{y_offset}
@end example
Set the grabbing region coordinates. They are expressed as offset from the top left
corner of the X11 window. The default value is 0.
@c man end INPUT DEVICES

View File

@ -1,8 +1,6 @@
FFmpeg's bug/feature request tracker manual
=================================================
NOTE: This is a draft.
Overview:
---------
@ -22,9 +20,9 @@ a mail for every change to every issue.
(the above does all work already after light testing)
The subscription URL for the ffmpeg-trac list is:
http(s)://lists.ffmpeg.org/mailman/listinfo/ffmpeg-trac
https://lists.ffmpeg.org/mailman/listinfo/ffmpeg-trac
The URL of the webinterface of the tracker is:
http(s)://trac.ffmpeg.org
https://trac.ffmpeg.org
Type:
-----
@ -42,12 +40,16 @@ feature request / enhancement
where the current implementation cannot be considered wrong.
license violation
ticket to keep track of (L)GPL violations of ffmpeg by others
Ticket to keep track of (L)GPL violations of ffmpeg by others.
sponsoring request
Developer requests for hardware, software, specifications, money,
refunds, etc.
task
A task/reminder such as setting up a FATE client, adding filters to
Trac, etc.
Priority:
---------
critical
@ -66,7 +68,8 @@ important
don't exist in a past revision or another branch.
normal
Default setting. Use this if the bug does not match the other
priorities or if you are unsure of what priority to choose.
minor
Bugs about things like spelling errors, "mp2" instead of
@ -163,14 +166,23 @@ Component:
avcodec
issues in libavcodec/*
avdevice
issues in libavdevice/*
avfilter
issues in libavfilter/*
avformat
issues in libavformat/*
avutil
issues in libavutil/*
regression test
issues in tests/*
build system
issues in or related to configure/Makefile
documentation
issues in or related to doc/*
ffmpeg
issues in or related to ffmpeg.c
@ -184,11 +196,23 @@ ffprobe
ffserver
issues in or related to ffserver.c
build system
issues in or related to configure/Makefile
postproc
issues in libpostproc/*
regression
bugs which were not present in a past revision
swresample
issues in libswresample/*
swscale
issues in libswscale/*
trac
issues related to our issue tracker
undetermined
default component; choose this if unsure
website
issues related to the website
wiki
issues related to the wiki

View File

@ -47,12 +47,16 @@ Files that have MIPS copyright notice in them:
* libavutil/mips/
float_dsp_mips.c
libm_mips.h
softfloat_tables.h
* libavcodec/
fft_fixed_32.c
fft_init_table.c
fft_table.h
mdct_fixed_32.c
* libavcodec/mips/
aacdec_fixed.c
aacsbr_fixed.c
aacsbr_template.c
aaccoder_mips.c
aacpsy_mips.h
ac3dsp_mips.c

View File

@ -54,7 +54,7 @@ thread.
If the codec allocates writable tables in its init(), add an init_thread_copy()
which re-allocates them for other threads.
Add CODEC_CAP_FRAME_THREADS to the codec capabilities. There will be very little
Add AV_CODEC_CAP_FRAME_THREADS to the codec capabilities. There will be very little
speed gain at this point but it should work.
If there are inter-frame dependencies, so the codec calls

View File

@ -37,6 +37,61 @@ ID3v2.3 and ID3v2.4) are supported. The default is version 4.
@end table
@anchor{asf}
@section asf
Advanced Systems Format muxer.
Note that Windows Media Audio (wma) and Windows Media Video (wmv) use this
muxer too.
@subsection Options
It accepts the following options:
@table @option
@item packet_size
Set the muxer packet size. By tuning this setting you may reduce data
fragmentation or muxer overhead depending on your source. Default value is
3200, minimum is 100, maximum is 64k.
@end table
@anchor{chromaprint}
@section chromaprint
Chromaprint fingerprinter
This muxer feeds audio data to the Chromaprint library, which generates
a fingerprint for the provided audio data. It takes a single signed
native-endian 16-bit raw audio stream.
@subsection Options
@table @option
@item silence_threshold
Threshold for detecting silence, ranges from 0 to 32767. -1 for default
(required for use with the AcoustID service).
@item algorithm
Algorithm index to fingerprint with.
@item fp_format
Format to output the fingerprint as. Accepts the following options:
@table @samp
@item raw
Binary raw fingerprint
@item compressed
Binary compressed fingerprint
@item base64
Base64 compressed fingerprint
@end table
@end table
@anchor{crc}
@section crc
@ -119,30 +174,70 @@ ffmpeg -i INPUT -c:a pcm_u8 -c:v mpeg2video -f framecrc -
See also the @ref{crc} muxer.
@anchor{framehash}
@section framehash
Per-packet hash testing format.
This muxer computes and prints a cryptographic hash for each audio
and video packet. This can be used for packet-by-packet equality
checks without having to individually do a binary comparison on each.
By default audio frames are converted to signed 16-bit raw audio and
video frames to raw video before computing the hash, but the output
of explicit conversions to other codecs can also be used. It uses the
SHA-256 cryptographic hash function by default, but supports several
other algorithms.
The output of the muxer consists of a line for each audio and video
packet of the form:
@example
@var{stream_index}, @var{packet_dts}, @var{packet_pts}, @var{packet_duration}, @var{packet_size}, @var{hash}
@end example
@var{hash} is a hexadecimal number representing the computed hash
for the packet.
@table @option
@item hash @var{algorithm}
Use the cryptographic hash function specified by the string @var{algorithm}.
Supported values include @code{MD5}, @code{murmur3}, @code{RIPEMD128},
@code{RIPEMD160}, @code{RIPEMD256}, @code{RIPEMD320}, @code{SHA160},
@code{SHA224}, @code{SHA256} (default), @code{SHA512/224}, @code{SHA512/256},
@code{SHA384}, @code{SHA512}, @code{CRC32} and @code{adler32}.
@end table
@subsection Examples
To compute the SHA-256 hash of the audio and video frames in @file{INPUT},
converted to raw audio and video packets, and store it in the file
@file{out.sha256}:
@example
ffmpeg -i INPUT -f framehash out.sha256
@end example
To print the information to stdout, using the MD5 hash function, use
the command:
@example
ffmpeg -i INPUT -f framehash -hash md5 -
@end example
See also the @ref{hash} muxer.
@anchor{framemd5}
@section framemd5
Per-packet MD5 testing format.
This muxer computes and prints the MD5 hash for each audio
and video packet. By default audio frames are converted to signed
16-bit raw audio and video frames to raw video before computing the
hash.
The output of the muxer consists of a line for each audio and video
packet of the form:
@example
@var{stream_index}, @var{packet_dts}, @var{packet_pts}, @var{packet_duration}, @var{packet_size}, @var{MD5}
@end example
@var{MD5} is a hexadecimal number representing the computed MD5 hash
for the packet.
This is a variant of the @ref{framehash} muxer. Unlike that muxer,
it defaults to using the MD5 hash function.
@subsection Examples
For example to compute the MD5 of the audio and video frames in
@file{INPUT}, converted to raw audio and video packets, and store it
in the file @file{out.md5}:
To compute the MD5 hash of the audio and video frames in @file{INPUT},
converted to raw audio and video packets, and store it in the file
@file{out.md5}:
@example
ffmpeg -i INPUT -f framemd5 out.md5
@end example
@ -152,7 +247,7 @@ To print the information to stdout, use the command:
ffmpeg -i INPUT -f framemd5 -
@end example
See also the @ref{md5} muxer.
See also the @ref{framehash} and @ref{md5} muxers.
@anchor{gif}
@section gif
@ -188,6 +283,51 @@ ffmpeg -i INPUT -c:v gif -f image2 "out%d.gif"
Note 2: the GIF format has a very small time base: the delay between two frames
can not be smaller than one centi second.
@anchor{hash}
@section hash
Hash testing format.
This muxer computes and prints a cryptographic hash of all the input
audio and video frames. This can be used for equality checks without
having to do a complete binary comparison.
By default audio frames are converted to signed 16-bit raw audio and
video frames to raw video before computing the hash, but the output
of explicit conversions to other codecs can also be used. Timestamps
are ignored. It uses the SHA-256 cryptographic hash function by default,
but supports several other algorithms.
The output of the muxer consists of a single line of the form:
@var{algo}=@var{hash}, where @var{algo} is a short string representing
the hash function used, and @var{hash} is a hexadecimal number
representing the computed hash.
@table @option
@item hash @var{algorithm}
Use the cryptographic hash function specified by the string @var{algorithm}.
Supported values include @code{MD5}, @code{murmur3}, @code{RIPEMD128},
@code{RIPEMD160}, @code{RIPEMD256}, @code{RIPEMD320}, @code{SHA160},
@code{SHA224}, @code{SHA256} (default), @code{SHA512/224}, @code{SHA512/256},
@code{SHA384}, @code{SHA512}, @code{CRC32} and @code{adler32}.
@end table
@subsection Examples
To compute the SHA-256 hash of the input converted to raw audio and
video, and store it in the file @file{out.sha256}:
@example
ffmpeg -i INPUT -f hash out.sha256
@end example
To print an MD5 hash to stdout use the command:
@example
ffmpeg -i INPUT -f hash -hash md5 -
@end example
See also the @ref{framehash} muxer.
@anchor{hls}
@section hls
@ -218,7 +358,8 @@ This muxer supports the following options:
@table @option
@item hls_time @var{seconds}
Set the segment length in seconds. Default value is 2.
Set the target segment length in seconds. Default value is 2.
Segment will be cut on the next key frame after this time has passed.
@item hls_list_size @var{size}
Set the maximum number of playlist entries. If set to 0 the list file
@ -255,14 +396,90 @@ which can be cyclic, for example if the @option{wrap} option is
specified.
@item hls_segment_filename @var{filename}
Set the segment filename. Unless hls_flags single_file is set @var{filename}
is used as a string format with the segment number:
Set the segment filename. Unless @code{hls_flags single_file} is set,
@var{filename} is used as a string format with the segment number:
@example
ffmpeg in.nut -hls_segment_filename 'file%03d.ts' out.m3u8
@end example
This example will produce the playlist, @file{out.m3u8}, and segment files:
@file{file000.ts}, @file{file001.ts}, @file{file002.ts}, etc.
@item use_localtime
Use strftime on @var{filename} to expand the segment filename with localtime.
The segment number (%d) is not available in this mode.
@example
ffmpeg in.nut -use_localtime 1 -hls_segment_filename 'file-%Y%m%d-%s.ts' out.m3u8
@end example
This example will produce the playlist, @file{out.m3u8}, and segment files:
@file{file-20160215-1455569023.ts}, @file{file-20160215-1455569024.ts}, etc.
@item use_localtime_mkdir
Used together with -use_localtime, it will create up to one subdirectory which
is expanded in @var{filename}.
@example
ffmpeg in.nut -use_localtime 1 -use_localtime_mkdir 1 -hls_segment_filename '%Y%m%d/file-%Y%m%d-%s.ts' out.m3u8
@end example
This example will create a directory 201560215 (if it does not exist), and then
produce the playlist, @file{out.m3u8}, and segment files:
@file{201560215/file-20160215-1455569023.ts}, @file{201560215/file-20160215-1455569024.ts}, etc.
@item hls_key_info_file @var{key_info_file}
Use the information in @var{key_info_file} for segment encryption. The first
line of @var{key_info_file} specifies the key URI written to the playlist. The
key URL is used to access the encryption key during playback. The second line
specifies the path to the key file used to obtain the key during the encryption
process. The key file is read as a single packed array of 16 octets in binary
format. The optional third line specifies the initialization vector (IV) as a
hexadecimal string to be used instead of the segment sequence number (default)
for encryption. Changes to @var{key_info_file} will result in segment
encryption with the new key/IV and an entry in the playlist for the new key
URI/IV.
Key info file format:
@example
@var{key URI}
@var{key file path}
@var{IV} (optional)
@end example
Example key URIs:
@example
http://server/file.key
/path/to/file.key
file.key
@end example
Example key file paths:
@example
file.key
/path/to/file.key
@end example
Example IV:
@example
0123456789ABCDEF0123456789ABCDEF
@end example
Key info file example:
@example
http://server/file.key
/path/to/file.key
0123456789ABCDEF0123456789ABCDEF
@end example
Example shell script:
@example
#!/bin/sh
BASE_URL=$@{1:-'.'@}
openssl rand 16 > file.key
echo $BASE_URL/file.key > file.keyinfo
echo file.key >> file.keyinfo
echo $(openssl rand -hex 16) >> file.keyinfo
ffmpeg -f lavfi -re -i testsrc -c:v h264 -hls_flags delete_segments \
-hls_key_info_file file.keyinfo out.m3u8
@end example
@item hls_flags single_file
If this flag is set, the muxer will store all segments in a single MPEG-TS
file, and will use byte ranges in the playlist. HLS playlists generated with
@ -277,6 +494,42 @@ Will produce the playlist, @file{out.m3u8}, and a single segment file,
@item hls_flags delete_segments
Segment files removed from the playlist are deleted after a period of time
equal to the duration of the segment plus the duration of the playlist.
@item hls_flags round_durations
Round the duration info in the playlist file segment info to integer
values, instead of using floating point.
@item hls_flags discont_starts
Add the @code{#EXT-X-DISCONTINUITY} tag to the playlist, before the
first segment's information.
@item hls_flags omit_endlist
Do not append the @code{EXT-X-ENDLIST} tag at the end of the playlist.
@item hls_flags split_by_time
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. This flag should be used with the @code{hls_time} option.
@item hls_playlist_type event
Emit @code{#EXT-X-PLAYLIST-TYPE:EVENT} in the m3u8 header. Forces
@option{hls_list_size} to 0; the playlist can only be appended to.
@item hls_playlist_type vod
Emit @code{#EXT-X-PLAYLIST-TYPE:VOD} in the m3u8 header. Forces
@option{hls_list_size} to 0; the playlist must not change.
@item method
Use the given HTTP method to create the hls files.
@example
ffmpeg -re -i in.ts -f hls -method PUT http://example.com/live/out.m3u8
@end example
This example will upload all the mpegts segment files to the HTTP
server using the HTTP PUT method, and update the m3u8 files every
@code{refresh} times using the same method.
Note that the HTTP server must support the given method for uploading
files.
@end table
@anchor{ico}
@ -490,16 +743,12 @@ have no effect if it is not.
MD5 testing format.
This muxer computes and prints the MD5 hash of all the input audio
and video frames. By default audio frames are converted to signed
16-bit raw audio and video frames to raw video before computing the
hash.
This is a variant of the @ref{hash} muxer. Unlike that muxer, it
defaults to using the MD5 hash function.
The output of the muxer consists of a single line of the form:
MD5=@var{MD5}, where @var{MD5} is a hexadecimal number representing
the computed MD5 hash.
@subsection Examples
For example to compute the MD5 hash of the input converted to raw
To compute the MD5 hash of the input converted to raw
audio and video, and store it in the file @file{out.md5}:
@example
ffmpeg -i INPUT -f md5 out.md5
@ -510,7 +759,7 @@ You can print the MD5 to stdout with the command:
ffmpeg -i INPUT -f md5 -
@end example
See also the @ref{framemd5} muxer.
See also the @ref{hash} and @ref{framemd5} muxers.
@section mov, mp4, ismv
@ -611,6 +860,13 @@ point on IIS with this muxer. Example:
ffmpeg -re @var{<normal input/transcoding options>} -movflags isml+frag_keyframe -f ismv http://server/publishingpoint.isml/Streams(Encoder1)
@end example
@subsection Audible AAX
Audible AAX files are encrypted M4B files, and they can be decrypted by specifying a 4 byte activation secret.
@example
ffmpeg -activation_bytes 1CEB00DA -i test.aax -vn -c:a copy output.mp4
@end example
@section mp3
The MP3 muxer writes a raw MP3 stream with the following optional features:
@ -680,37 +936,41 @@ and @code{service_name}. If they are not set the default for
The muxer options are:
@table @option
@item -mpegts_original_network_id @var{number}
@item mpegts_original_network_id @var{number}
Set the original_network_id (default 0x0001). This is unique identifier
of a network in DVB. Its main use is in the unique identification of a
service through the path Original_Network_ID, Transport_Stream_ID.
@item -mpegts_transport_stream_id @var{number}
@item mpegts_transport_stream_id @var{number}
Set the transport_stream_id (default 0x0001). This identifies a
transponder in DVB.
@item -mpegts_service_id @var{number}
@item mpegts_service_id @var{number}
Set the service_id (default 0x0001) also known as program in DVB.
@item -mpegts_service_type @var{number}
@item mpegts_service_type @var{number}
Set the program service_type (default @var{digital_tv}), see below
a list of pre defined values.
@item -mpegts_pmt_start_pid @var{number}
@item mpegts_pmt_start_pid @var{number}
Set the first PID for PMT (default 0x1000, max 0x1f00).
@item -mpegts_start_pid @var{number}
@item mpegts_start_pid @var{number}
Set the first PID for data packets (default 0x0100, max 0x0f00).
@item -mpegts_m2ts_mode @var{number}
@item mpegts_m2ts_mode @var{number}
Enable m2ts mode if set to 1. Default value is -1 which disables m2ts mode.
@item -muxrate @var{number}
@item muxrate @var{number}
Set a constant muxrate (default VBR).
@item -pcr_period @var{numer}
@item pcr_period @var{numer}
Override the default PCR retransmission time (default 20ms), ignored
if variable muxrate is selected.
@item -pes_payload_size @var{number}
@item pat_period @var{number}
Maximal time in seconds between PAT/PMT tables.
@item sdt_period @var{number}
Maximal time in seconds between SDT tables.
@item pes_payload_size @var{number}
Set minimum PES packet payload in bytes.
@item -mpegts_flags @var{flags}
@item mpegts_flags @var{flags}
Set flags (see below).
@item -mpegts_copyts @var{number}
@item mpegts_copyts @var{number}
Preserve original timestamps, if value is set to 1. Default value is -1, which
results in shifting timestamps so that they start from 0.
@item -tables_version @var{number}
@item tables_version @var{number}
Set PAT, PMT and SDT version (default 0, valid values are from 0 to 31, inclusively).
This option allows updating stream structure so that standard consumer may
detect the change. To do so, reopen output AVFormatContext (in case of API
@ -726,7 +986,7 @@ ffmpeg -i source2.ts -codec copy -f mpegts -tables_version 1 udp://1.1.1.1:1111
@end example
@end table
Option mpegts_service_type accepts the following values:
Option @option{mpegts_service_type} accepts the following values:
@table @option
@item hex_value
@ -747,13 +1007,17 @@ Advanced Codec Digital SDTV service.
Advanced Codec Digital HDTV service.
@end table
Option mpegts_flags may take a set of such flags:
Option @option{mpegts_flags} may take a set of such flags:
@table @option
@item resend_headers
Reemit PAT/PMT before writing the next packet.
@item latm
Use LATM packetization for AAC.
@item pat_pmt_at_frames
Reemit PAT and PMT at each video frame.
@item system_b
Conform to System B (DVB) instead of System A (ATSC).
@end table
@subsection Example
@ -770,6 +1034,21 @@ ffmpeg -i file.mpg -c copy \
-y out.ts
@end example
@section mxf, mxf_d10
MXF muxer.
@subsection Options
The muxer options are:
@table @option
@item store_user_comments @var{bool}
Set if user comments should be stored if available or never.
IRT D-10 does not allow user comments. The default is thus to write them for
mxf but not for mxf_d10
@end table
@section null
Null muxer.
@ -876,6 +1155,12 @@ implementation for HLS segmentation.
The segment muxer supports the following options:
@table @option
@item increment_tc @var{1|0}
if set to @code{1}, increment timecode between each segment
If this is selected, the input need to have
a timecode in the first video stream. Default value is
@code{0}.
@item reference_stream @var{specifier}
Set the reference stream, as specified by the string @var{specifier}.
If @var{specifier} is set to @code{auto}, the reference is chosen
@ -908,13 +1193,6 @@ Allow caching (only affects M3U8 list files).
Allow live-friendly file generation.
@end table
@item segment_list_type @var{type}
Select the listing format.
@table @option
@item @var{flat} use a simple flat list of entries.
@item @var{hls} use a m3u8-like structure.
@end table
@item segment_list_size @var{size}
Update the list file so that it contains at most @var{size}
segments. If 0 the list file will contain all the segments. Default
@ -924,6 +1202,9 @@ value is 0.
Prepend @var{prefix} to each entry. Useful to generate absolute paths.
By default no prefix is applied.
@item segment_list_type @var{type}
Select the listing format.
The following values are recognized:
@table @samp
@item flat
@ -983,6 +1264,28 @@ to create files at 12:00 o'clock, 12:15, 12:30, etc.
Default value is "0".
@item segment_clocktime_offset @var{duration}
Delay the segment splitting times with the specified duration when using
@option{segment_atclocktime}.
For example with @option{segment_time} set to "900" and
@option{segment_clocktime_offset} set to "300" this makes it possible to
create files at 12:05, 12:20, 12:35, etc.
Default value is "0".
@item segment_clocktime_wrap_duration @var{duration}
Force the segmenter to only start a new segment if a packet reaches the muxer
within the specified duration after the segmenting clock time. This way you
can make the segmenter more resilient to backward local time jumps, such as
leap seconds or transition to standard time from daylight savings time.
Assuming that the delay between the packets of your source is less than 0.5
second you can detect a leap second by specifying 0.5 as the duration.
Default is the maximum possible duration which means starting a new segment
regardless of the elapsed time since the last clock time.
@item segment_time_delta @var{delta}
Specify the accuracy time when selecting the start time for a
segment, expressed as a duration specification. Default value is "0".
@ -1045,6 +1348,11 @@ muxers/codecs. It is set to @code{0} by default.
@item initial_offset @var{offset}
Specify timestamp offset to apply to the output packet timestamps. The
argument must be a time duration specification, and defaults to 0.
@item write_empty_segments @var{1|0}
If enabled, write an empty segment if there are no packets during the period a
segment would usually span. Otherwise, the segment will be filled with the next
packet written. Defaults to @code{0}.
@end table
@subsection Examples
@ -1172,7 +1480,14 @@ Several bitstream filters can be specified, separated by ",".
@item select
Select the streams that should be mapped to the slave output,
specified by a stream specifier. If not specified, this defaults to
all the input streams.
all the input streams. You may use multiple stream specifiers
separated by commas (@code{,}) e.g.: @code{a:0,v}
@item onfail
Specify behaviour on output failure. This can be set to either @code{abort} (which is
default) or @code{ignore}. @code{abort} will cause whole process to fail in case of failure
on this slave output. @code{ignore} will ignore failure on this output, so other outputs
will continue without being affected.
@end table
@subsection Examples
@ -1186,6 +1501,14 @@ ffmpeg -i ... -c:v libx264 -c:a mp2 -f tee -map 0:v -map 0:a
"archive-20121107.mkv|[f=mpegts]udp://10.0.1.255:1234/"
@end example
@item
As above, but continue streaming even if output to local file fails
(for example local drive fills up):
@example
ffmpeg -i ... -c:v libx264 -c:a mp2 -f tee -map 0:v -map 0:a
"[onfail=ignore]archive-20121107.mkv|[f=mpegts]udp://10.0.1.255:1234/"
@end example
@item
Use @command{ffmpeg} to encode the input, and send the output
to three different destinations. The @code{dump_extra} bitstream

View File

@ -34,7 +34,7 @@ NUT has some variants signaled by using the flags field in its main header.
The BROADCAST variant provides a secondary time reference to facilitate
detecting endpoint latency and network delays.
It assumes all the endpoint clocks are syncronized.
It assumes all the endpoint clocks are synchronized.
To be used in real-time scenarios.
@section PIPE

View File

@ -7,7 +7,7 @@ If you plan to do non-x86 architecture specific optimizations (SIMD normally),
then take a look in the x86/ directory, as most important functions are
already optimized for MMX.
If you want to do x86 optimizations then you can either try to finetune the
If you want to do x86 optimizations then you can either try to fine-tune the
stuff in the x86 directory or find some other functions in the C source to
optimize, but there aren't many left.
@ -163,7 +163,7 @@ general x86 registers (e.g. eax) as well as XMM registers. This last one is
particularly important on Win64, where xmm6-15 are callee-save, and not
restoring their contents leads to undefined results. In external asm (e.g.
yasm), you do this by using:
cglobal functon_name, num_args, num_regs, num_xmm_regs
cglobal function_name, num_args, num_regs, num_xmm_regs
In inline asm, you specify clobbered registers at the end of your asm:
__asm__(".." ::: "%eax").
If gcc is not set to support sse (-msse) it will not accept xmm registers

View File

@ -63,7 +63,7 @@ bash ./configure
@section Darwin (Mac OS X, iPhone)
The toolchain provided with Xcode is sufficient to build the basic
unacelerated code.
unaccelerated code.
Mac OS X on PowerPC or ARM (iPhone) requires a preprocessor from
@url{https://github.com/FFmpeg/gas-preprocessor} or
@ -107,8 +107,13 @@ Notes:
@itemize
@item Building natively using MSYS2 can be sped up by disabling implicit rules
in the Makefile by calling @code{make -r} instead of plain @code{make}. This
@item Building for the MSYS environment is discouraged, MSYS2 provides a full
MinGW-w64 environment through @file{mingw64_shell.bat} or
@file{mingw32_shell.bat} that should be used instead of the environment
provided by @file{msys2_shell.bat}.
@item Building using MSYS2 can be sped up by disabling implicit rules in the
Makefile by calling @code{make -r} instead of plain @code{make}. This
speed up is close to non-existent for normal one-off builds and is only
noticeable when running make for a second time (for example during
@code{make install}).
@ -122,6 +127,25 @@ libavformat) as DLLs.
@end itemize
@subsection Native Windows compilation using MSYS2
The MSYS2 MinGW-w64 environment provides ready to use toolchains and dependencies
through @command{pacman}.
Make sure to use @file{mingw64_shell.bat} or @file{mingw32_shell.bat} to have
the correct MinGW-w64 environment. The default install provides shortcuts to
them under @command{MinGW-w64 Win64 Shell} and @command{MinGW-w64 Win32 Shell}.
@example
# normal msys2 packages
pacman -S make pkgconf diffutils
# mingw-w64 packages and toolchains
pacman -S mingw-w64-x86_64-yasm mingw-w64-x86_64-gcc mingw-w64-x86_64-SDL
@end example
To target 32 bits replace @code{x86_64} with @code{i686} in the command above.
@section Microsoft Visual C++ or Intel C++ Compiler for Windows
FFmpeg can be built with MSVC 2012 or earlier using a C99-to-C89 conversion utility
@ -175,12 +199,6 @@ Notes:
@itemize
@item It is possible that coreutils' @code{link.exe} conflicts with MSVC's linker.
You can find out by running @code{which link} to see which @code{link.exe} you
are using. If it is located at @code{/bin/link.exe}, then you have the wrong one
in your @code{PATH}. Either move or remove that copy, or make sure MSVC's
@code{link.exe} takes precedence in your @code{PATH} over coreutils'.
@item If you wish to build with zlib support, you will have to grab a compatible
zlib binary from somewhere, with an MSVC import lib, or if you wish to link
statically, you can follow the instructions below to build a compatible
@ -296,7 +314,7 @@ These library packages are only available from
@uref{http://sourceware.org/cygwinports/, Cygwin Ports}:
@example
yasm, libSDL-devel, libfaac-devel, libaacplus-devel, libgsm-devel, libmp3lame-devel,
yasm, libSDL-devel, libfaac-devel, libgsm-devel, libmp3lame-devel,
libschroedinger1.0-devel, speex-devel, libtheora-devel, libxvidcore-devel
@end example

View File

@ -1,3 +1,22 @@
@chapter Protocol Options
@c man begin PROTOCOL OPTIONS
The libavformat library provides some generic global options, which
can be set on all the protocols. In addition each protocol may support
so-called private options, which are specific for that component.
The list of supported options follows:
@table @option
@item protocol_whitelist @var{list} (@emph{input})
Set a ","-separated list of allowed protocols. "ALL" matches all protocols. Protocols
prefixed by "-" are disabled.
All protocols are allowed by default but protocols used by an another
protocol (nested protocols) are restricted to a per protocol subset.
@end table
@c man end PROTOCOL OPTIONS
@chapter Protocols
@c man begin PROTOCOLS
@ -17,8 +36,28 @@ particular protocol using the option
The option "-protocols" of the ff* tools will display the list of
supported protocols.
All protocols accept the following options:
@table @option
@item rw_timeout
Maximum time to wait for (network) read/write operations to complete,
in microseconds.
@end table
A description of the currently available protocols follows.
@section async
Asynchronous data filling wrapper for input stream.
Fill data in a background thread, to decouple I/O operation from demux thread.
@example
async:@var{URL}
async:http://host/resource
async:cache:http://host/resource
@end example
@section bluray
Read BluRay playlist.
@ -185,6 +224,17 @@ it, unless special care is taken (tests, customized server configuration
etc.). Different FTP servers behave in different way during seek
operation. ff* tools may produce incomplete content due to server limitations.
This protocol accepts the following options:
@table @option
@item follow
If set to 1, the protocol will retry reading at the end of the file, allowing
reading files that still are being written. In order for this to terminate,
you either need to use the rw_timeout option, or use the interrupt callback
(for API users).
@end table
@section gopher
Gopher protocol.
@ -228,6 +278,9 @@ If set to 1 use chunked Transfer-Encoding for posts, default is 1.
@item content_type
Set a specific content type for the POST messages.
@item http_proxy
set HTTP proxy to tunnel through e.g. http://example.com:1234
@item headers
Set custom HTTP headers, can override built in default headers. The
value must be a string encoding the headers.
@ -248,6 +301,16 @@ Set timeout in microseconds of socket I/O operations used by the underlying low
operation. By default it is set to -1, which means that the timeout is
not specified.
@item reconnect_at_eof
If set then eof is treated like an error and causes reconnection, this is useful
for live / endless streams.
@item reconnect_streamed
If set then even streamed/non seekable streams will be reconnected on errors.
@item reconnect_delay_max
Sets the maximum delay in seconds after which to give up reconnecting
@item mime_type
Export the MIME type.
@ -292,6 +355,8 @@ autodetection in the future.
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.
If set to 2 enables experimental mutli-client HTTP server. This is not yet implemented
in ffmpeg.c or ffserver.c and thus must not be used as a command line option.
@example
# Server side (sending):
ffmpeg -i somefile.ogg -c copy -listen 1 -f ogg http://@var{server}:@var{port}
@ -630,7 +695,7 @@ This protocol accepts the following options.
@table @option
@item timeout
Set timeout in miliseconds of socket I/O operations used by the underlying
Set timeout in milliseconds of socket I/O operations used by the underlying
low level operation. By default it is set to -1, which means that the timeout
is not specified.
@ -1094,6 +1159,15 @@ Play an AVI file directly from a TAR archive:
subfile,,start,183241728,end,366490624,,:archive.tar
@end example
@section tee
Writes the output to multiple protocols. The individual outputs are separated
by |
@example
tee:file://path/to/local/this.avi|file://path/to/local/that.avi
@end example
@section tcp
Transmission Control Protocol.
@ -1120,6 +1194,12 @@ than this time interval, raise error.
@item listen_timeout=@var{milliseconds}
Set listen timeout, expressed in milliseconds.
@item recv_buffer_size=@var{bytes}
Set receive buffer size, expressed bytes.
@item send_buffer_size=@var{bytes}
Set send buffer size, expressed bytes.
@end table
The following example shows how to setup a listening TCP connection
@ -1214,6 +1294,14 @@ Set the UDP maximum socket buffer size in bytes. This is used to set either
the receive or send buffer size, depending on what the socket is used for.
Default is 64KB. See also @var{fifo_size}.
@item bitrate=@var{bitrate}
If set to nonzero, the output will have the specified constant bitrate if the
input has enough packets to sustain it.
@item burst_bits=@var{bits}
When using @var{bitrate} this specifies the maximum number of bits in
packet bursts.
@item localport=@var{port}
Override the local UDP port to bind with.

View File

@ -66,8 +66,8 @@ Set rematrix volume. Default value is 1.0.
@item rematrix_maxval
Set maximum output value for rematrixing.
This can be used to prevent clipping vs. preventing volumn reduction
A value of 1.0 prevents cliping.
This can be used to prevent clipping vs. preventing volume reduction.
A value of 1.0 prevents clipping.
@item flags, swr_flags
Set flags used by the converter. Default value is 0.
@ -94,13 +94,13 @@ select triangular dither
@item triangular_hp
select triangular dither with high pass
@item lipshitz
select lipshitz noise shaping dither
select Lipshitz noise shaping dither.
@item shibata
select shibata noise shaping dither
select Shibata noise shaping dither.
@item low_shibata
select low shibata noise shaping dither
select low Shibata noise shaping dither.
@item high_shibata
select high shibata noise shaping dither
select high Shibata noise shaping dither.
@item f_weighted
select f-weighted noise shaping dither
@item modified_e_weighted
@ -120,8 +120,8 @@ select the native SW Resampler; filter options precision and cheby are not
applicable in this case.
@item soxr
select the SoX Resampler (where available); compensation, and filter options
filter_size, phase_shift, filter_type & kaiser_beta, are not applicable in this
case.
filter_size, phase_shift, exact_rational, filter_type & kaiser_beta, are not
applicable in this case.
@end table
@item filter_size
@ -132,7 +132,12 @@ For swr only, set resampling phase shift, default value is 10, and must be in
the interval [0,30].
@item linear_interp
Use Linear Interpolation if set to 1, default value is 0.
Use linear interpolation if set to 1, default value is 0.
@item exact_rational
For swr only, when enabled, try to use exact phase_count based on input and
output sample rate. However, if it is larger than @code{1 << phase_shift},
the phase_count will be @code{1 << phase_shift} as fallback. Default is disabled.
@item cutoff
Set cutoff frequency (swr: 6dB point; soxr: 0dB point) ratio; must be a float
@ -214,13 +219,13 @@ It accepts the following values:
@item cubic
select cubic
@item blackman_nuttall
select Blackman Nuttall Windowed Sinc
select Blackman Nuttall windowed sinc
@item kaiser
select Kaiser Windowed Sinc
select Kaiser windowed sinc
@end table
@item kaiser_beta
For swr only, set Kaiser Window Beta value. Must be an integer in the
For swr only, set Kaiser window beta value. Must be a double float value in the
interval [2,16], default value is 9.
@item output_sample_bits

View File

@ -46,7 +46,7 @@ Select Gaussian rescaling algorithm.
Select sinc rescaling algorithm.
@item lanczos
Select lanczos rescaling algorithm.
Select Lanczos rescaling algorithm.
@item spline
Select natural bicubic spline rescaling algorithm.
@ -91,6 +91,7 @@ Select source range.
@item dst_range
Select destination range.
@anchor{sws_params}
@item param0, param1
Set scaling algorithm parameters. The specified values are specific of
some scaling algorithms and ignored by others. The specified values
@ -122,6 +123,22 @@ a_dither).
@end table
@item alphablend
Set the alpha blending to use when the input has alpha but the output does not.
Default value is @samp{none}.
@table @samp
@item uniform_color
Blend onto a uniform background color
@item checkerboard
Blend onto a checkerboard
@item none
No blending
@end table
@end table
@c man end SCALER OPTIONS

View File

@ -527,7 +527,7 @@ Wavelet Transform:
==================
Snow supports 2 wavelet transforms, the symmetric biorthogonal 5/3 integer
transform and a integer approximation of the symmetric biorthogonal 9/7
transform and an integer approximation of the symmetric biorthogonal 9/7
daubechies wavelet.
2D IDWT (inverse discrete wavelet transform)

View File

@ -10,12 +10,12 @@ Current (simplified) Architecture:
/ \
special converter [Input to YUV converter]
| |
| (8bit YUV 4:4:4 / 4:2:2 / 4:2:0 / 4:0:0 )
| (8-bit YUV 4:4:4 / 4:2:2 / 4:2:0 / 4:0:0 )
| |
| v
| Horizontal scaler
| |
| (15bit YUV 4:4:4 / 4:2:2 / 4:2:0 / 4:1:1 / 4:0:0 )
| (15-bit YUV 4:4:4 / 4:2:2 / 4:2:0 / 4:1:1 / 4:0:0 )
| |
| v
| Vertical scaler and output converter

View File

@ -384,7 +384,7 @@ sub postprocess
# @* is also impossible in .pod; we discard it and any newline that
# follows it. Similarly, our macro @gol must be discarded.
s/\@anchor{(?:[^\}]*)\}//g;
s/\@anchor\{(?:[^\}]*)\}//g;
s/\(?\@xref\{(?:[^\}]*)\}(?:[^.<]|(?:<[^<>]*>))*\.\)?//g;
s/\s+\(\@pxref\{(?:[^\}]*)\}\)//g;
s/;\s+\@pxref\{(?:[^\}]*)\}//g;

View File

@ -238,6 +238,14 @@ The following abbreviations are recognized:
480x320
@item qhd
960x540
@item 2kdci
2048x1080
@item 4kdci
4096x2160
@item uhd2160
3840x2160
@item uhd4320
7680x4320
@end table
@anchor{video rate syntax}
@ -861,7 +869,7 @@ Return 1 if @var{x} is lesser than or equal to @var{y}, 0 otherwise.
Return the maximum between @var{x} and @var{y}.
@item min(x, y)
Return the maximum between @var{x} and @var{y}.
Return the minimum between @var{x} and @var{y}.
@item mod(x, y)
Compute the remainder of division of @var{x} by @var{y}.

View File

@ -3,8 +3,8 @@ libavfilter.
Foreword: just like everything else in FFmpeg, libavfilter is monolithic, which
means that it is highly recommended that you submit your filters to the FFmpeg
development mailing-list and make sure it is applied. Otherwise, your filter is
likely to have a very short lifetime due to more a less regular internal API
development mailing-list and make sure that they are applied. Otherwise, your filters
are likely to have a very short lifetime due to more or less regular internal API
changes, and a limited distribution, review, and testing.
Bootstrap
@ -64,7 +64,7 @@ filter, so you can update the boilerplate with your credits.
Doxy
----
Next chunk is the Doxygen about the file. See http://ffmpeg.org/doxygen/trunk/.
Next chunk is the Doxygen about the file. See https://ffmpeg.org/doxygen/trunk/.
Detail here what the filter is, does, and add some references if you feel like
it.
@ -73,11 +73,11 @@ Context
Skip the headers and scroll down to the definition of FoobarContext. This is
your local state context. It is already filled with 0 when you get it so do not
worry about uninitialized read into this context. This is where you put every
"global" information you need, typically the variable storing the user options.
worry about uninitialized reads into this context. This is where you put all
"global" information that you need; typically the variables storing the user options.
You'll notice the first field "const AVClass *class"; it's the only field you
need to keep assuming you have a context. There are some magic you don't care
about around this field, just let it be (in first position) for now.
need to keep assuming you have a context. There is some magic you don't need to
care about around this field, just let it be (in the first position) for now.
Options
-------
@ -87,7 +87,7 @@ options. For example, -vf foobar=mode=colormix:high=0.4:low=0.1. Most options
have the following pattern:
name, description, offset, type, default value, minimum value, maximum value, flags
- name is the option name, keep it simple, lowercase
- name is the option name, keep it simple and lowercase
- description are short, in lowercase, without period, and describe what they
do, for example "set the foo of the bar"
- offset is the offset of the field in your local context, see the OFFSET()
@ -99,7 +99,7 @@ have the following pattern:
- min and max values define the range of available values, inclusive
- flags are AVOption generic flags. See AV_OPT_FLAG_* definitions
In doubt, just look at the other AVOption definitions all around the codebase,
When in doubt, just look at the other AVOption definitions all around the codebase,
there are tons of examples.
Class
@ -146,14 +146,14 @@ we won't cover this here since vf_foobar is just a simple 1:1 filter.
uninit()
~~~~~~~~
Similarly, there is the uninit() callback, doing what the name suggest. Free
Similarly, there is the uninit() callback, doing what the name suggests. Free
everything you allocated here.
query_formats()
~~~~~~~~~~~~~~~
This is following the init() and is used for the format negotiation, basically
where you say what pixel format(s) (gray, rgb 32, yuv 4:2:0, ...) you accept
This follows the init() and is used for the format negotiation. Basically
you specify here what pixel format(s) (gray, rgb 32, yuv 4:2:0, ...) you accept
for your inputs, and what you can output. All pixel formats are defined in
libavutil/pixfmt.h. If you don't change the pixel format between the input and
the output, you just have to define a pixel formats array and call
@ -182,7 +182,7 @@ will update outlink->w and outlink->h.
filter_frame()
~~~~~~~~~~~~~~
This is the callback you are waiting from the beginning: it is where you
This is the callback you are waiting for from the beginning: it is where you
process the received frames. Along with the frame, you get the input link from
where the frame comes from.
@ -317,7 +317,7 @@ Adding timeline support
feature to add. In the most simple case, you just have to add
AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC to the AVFilter.flags. You can typically
do this when your filter does not need to save the previous context frames, or
basically if your filter just alter whatever goes in and doesn't need
basically if your filter just alters whatever goes in and doesn't need
previous/future information. See for instance commit 86cb986ce that adds
timeline support to the fieldorder filter.

917
ffmpeg.c

File diff suppressed because it is too large Load Diff

View File

@ -63,6 +63,10 @@ enum HWAccelID {
HWACCEL_VDPAU,
HWACCEL_DXVA2,
HWACCEL_VDA,
HWACCEL_VIDEOTOOLBOX,
HWACCEL_QSV,
HWACCEL_VAAPI,
HWACCEL_CUVID,
};
typedef struct HWAccel {
@ -92,6 +96,7 @@ typedef struct OptionsContext {
/* input/output options */
int64_t start_time;
int64_t start_time_eof;
int seek_timestamp;
const char *format;
@ -110,6 +115,7 @@ typedef struct OptionsContext {
/* input options */
int64_t input_ts_offset;
int loop;
int rate_emu;
int accurate_seek;
int thread_queue_size;
@ -122,6 +128,8 @@ typedef struct OptionsContext {
int nb_hwaccels;
SpecifierOpt *hwaccel_devices;
int nb_hwaccel_devices;
SpecifierOpt *hwaccel_output_formats;
int nb_hwaccel_output_formats;
SpecifierOpt *autorotate;
int nb_autorotate;
@ -212,6 +220,8 @@ typedef struct OptionsContext {
int nb_discard;
SpecifierOpt *disposition;
int nb_disposition;
SpecifierOpt *program;
int nb_program;
} OptionsContext;
typedef struct InputFilter {
@ -229,6 +239,7 @@ typedef struct OutputFilter {
/* temporary storage until stream maps are processed */
AVFilterInOut *out_tmp;
enum AVMediaType type;
} OutputFilter;
typedef struct FilterGraph {
@ -270,6 +281,10 @@ typedef struct InputStream {
int64_t filter_in_rescale_delta_last;
int64_t min_pts; /* pts with the smallest value in a current stream */
int64_t max_pts; /* pts with the higher value in a current stream */
int64_t nb_samples; /* number of samples in the last decoded audio frame before looping */
double ts_scale;
int saw_first_ts;
int showed_multi_packet_warning;
@ -314,6 +329,7 @@ typedef struct InputStream {
/* hwaccel options */
enum HWAccelID hwaccel_id;
char *hwaccel_device;
enum AVPixelFormat hwaccel_output_format;
/* hwaccel context */
enum HWAccelID active_hwaccel_id;
@ -323,6 +339,7 @@ typedef struct InputStream {
int (*hwaccel_retrieve_data)(AVCodecContext *s, AVFrame *frame);
enum AVPixelFormat hwaccel_pix_fmt;
enum AVPixelFormat hwaccel_retrieved_pix_fmt;
AVBufferRef *hw_frames_ctx;
/* stats */
// combined size of all the packets read
@ -339,7 +356,12 @@ typedef struct InputFile {
int eof_reached; /* true if eof reached */
int eagain; /* true if last read attempt returned EAGAIN */
int ist_index; /* index of first stream in input_streams */
int loop; /* set number of times input stream should be looped */
int64_t duration; /* actual duration of the longest stream in a file
at the moment when looping happens */
AVRational time_base; /* time base of the duration */
int64_t input_ts_offset;
int64_t ts_offset;
int64_t last_ts;
int64_t start_time; /* user-specified start time in AV_TIME_BASE or AV_NOPTS_VALUE */
@ -369,6 +391,8 @@ enum forced_keyframes_const {
FKF_NB
};
#define ABORT_ON_FLAG_EMPTY_OUTPUT (1 << 0)
extern const char *const forced_keyframes_const_names[];
typedef enum {
@ -398,11 +422,14 @@ typedef struct OutputStream {
int64_t max_frames;
AVFrame *filtered_frame;
AVFrame *last_frame;
int last_droped;
int last_dropped;
int last_nb0_frames[3];
void *hwaccel_ctx;
/* video only */
AVRational frame_rate;
int is_cfr;
int force_fps;
int top_field_first;
int rotate_overridden;
@ -429,11 +456,10 @@ typedef struct OutputStream {
char *filters; ///< filtergraph associated to the -filter option
char *filters_script; ///< filtergraph script associated to the -filter_script option
int64_t sws_flags;
AVDictionary *encoder_opts;
AVDictionary *sws_dict;
AVDictionary *swr_opts;
AVDictionary *resample_opts;
AVDictionary *bsf_args;
char *apad;
OSTFinished finished; /* no more packets should be written for this stream */
int unavailable; /* true if the steram is unavailable (possibly temporarily) */
@ -455,6 +481,15 @@ typedef struct OutputStream {
// number of frames/samples sent to the encoder
uint64_t frames_encoded;
uint64_t samples_encoded;
/* packet quality factor */
int quality;
/* packet picture type */
int pict_type;
/* frame encode sum of squared error values */
int64_t error[4];
} OutputStream;
typedef struct OutputFile {
@ -502,18 +537,21 @@ extern int start_at_zero;
extern int copy_tb;
extern int debug_ts;
extern int exit_on_error;
extern int abort_on_flags;
extern int print_stats;
extern int qp_hist;
extern int stdin_interaction;
extern int frame_bits_per_raw_sample;
extern AVIOContext *progress_avio;
extern float max_error_rate;
extern int vdpau_api_ver;
extern char *videotoolbox_pixfmt;
extern const AVIOInterruptCB int_cb;
extern const OptionDef options[];
extern const HWAccel hwaccels[];
extern int hwaccel_lax_profile_check;
extern AVBufferRef *hw_device_ctx;
void term_init(void);
@ -536,11 +574,19 @@ int configure_filtergraph(FilterGraph *fg);
int configure_output_filter(FilterGraph *fg, OutputFilter *ofilter, AVFilterInOut *out);
int ist_in_filtergraph(FilterGraph *fg, InputStream *ist);
FilterGraph *init_simple_filtergraph(InputStream *ist, OutputStream *ost);
int init_complex_filtergraph(FilterGraph *fg);
int ffmpeg_parse_options(int argc, char **argv);
int vdpau_init(AVCodecContext *s);
int dxva2_init(AVCodecContext *s);
int vda_init(AVCodecContext *s);
int videotoolbox_init(AVCodecContext *s);
int qsv_init(AVCodecContext *s);
int qsv_transcode_init(OutputStream *ost);
int vaapi_decode_init(AVCodecContext *avctx);
int vaapi_device_init(const char *device);
int cuvid_init(AVCodecContext *s);
int cuvid_transcode_init(OutputStream *ost);
#endif /* FFMPEG_H */

237
ffmpeg_cuvid.c Normal file
View File

@ -0,0 +1,237 @@
/*
* This file is part of FFmpeg.
*
* FFmpeg is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* FFmpeg is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "libavutil/hwcontext.h"
#include "libavutil/hwcontext_cuda.h"
#include "ffmpeg.h"
#include <cuda.h>
#include <nvcuvid.h>
typedef struct CUVIDContext {
AVBufferRef *hw_frames_ctx;
} CUVIDContext;
static void cuvid_uninit(AVCodecContext *avctx)
{
InputStream *ist = avctx->opaque;
CUVIDContext *ctx = ist->hwaccel_ctx;
if (ctx) {
av_buffer_unref(&ctx->hw_frames_ctx);
av_freep(&ctx);
}
av_buffer_unref(&ist->hw_frames_ctx);
ist->hwaccel_ctx = 0;
ist->hwaccel_uninit = 0;
}
int cuvid_init(AVCodecContext *avctx)
{
InputStream *ist = avctx->opaque;
CUVIDContext *ctx = ist->hwaccel_ctx;
av_log(NULL, AV_LOG_TRACE, "Initializing cuvid hwaccel\n");
if (!ctx) {
av_log(NULL, AV_LOG_ERROR, "CUVID transcoding is not initialized. "
"-hwaccel cuvid should only be used for one-to-one CUVID transcoding "
"with no (software) filters.\n");
return AVERROR(EINVAL);
}
return 0;
}
static void cuvid_ctx_free(AVHWDeviceContext *ctx)
{
AVCUDADeviceContext *hwctx = ctx->hwctx;
cuCtxDestroy(hwctx->cuda_ctx);
}
int cuvid_transcode_init(OutputStream *ost)
{
InputStream *ist;
const enum AVPixelFormat *pix_fmt;
AVCUDADeviceContext *device_hwctx;
AVHWDeviceContext *device_ctx;
AVHWFramesContext *hwframe_ctx;
CUVIDContext *ctx = NULL;
CUdevice device;
CUcontext cuda_ctx = NULL;
CUcontext dummy;
CUresult err;
int ret = 0;
av_log(NULL, AV_LOG_TRACE, "Initializing cuvid transcoding\n");
if (ost->source_index < 0)
return 0;
ist = input_streams[ost->source_index];
/* check if the encoder supports CUVID */
if (!ost->enc->pix_fmts)
goto cancel;
for (pix_fmt = ost->enc->pix_fmts; *pix_fmt != AV_PIX_FMT_NONE; pix_fmt++)
if (*pix_fmt == AV_PIX_FMT_CUDA)
break;
if (*pix_fmt == AV_PIX_FMT_NONE)
goto cancel;
/* check if the decoder supports CUVID */
if (ist->hwaccel_id != HWACCEL_CUVID || !ist->dec || !ist->dec->pix_fmts)
goto cancel;
for (pix_fmt = ist->dec->pix_fmts; *pix_fmt != AV_PIX_FMT_NONE; pix_fmt++)
if (*pix_fmt == AV_PIX_FMT_CUDA)
break;
if (*pix_fmt == AV_PIX_FMT_NONE)
goto cancel;
av_log(NULL, AV_LOG_VERBOSE, "Setting up CUVID transcoding\n");
if (ist->hwaccel_ctx) {
ctx = ist->hwaccel_ctx;
} else {
ctx = av_mallocz(sizeof(*ctx));
if (!ctx) {
ret = AVERROR(ENOMEM);
goto error;
}
}
if (!hw_device_ctx) {
hw_device_ctx = av_hwdevice_ctx_alloc(AV_HWDEVICE_TYPE_CUDA);
if (!hw_device_ctx) {
av_log(NULL, AV_LOG_ERROR, "av_hwdevice_ctx_alloc(AV_HWDEVICE_TYPE_CUDA) failed\n");
ret = AVERROR(ENOMEM);
goto error;
}
err = cuInit(0);
if (err != CUDA_SUCCESS) {
av_log(NULL, AV_LOG_ERROR, "Could not initialize the CUDA driver API\n");
ret = AVERROR_UNKNOWN;
goto error;
}
err = cuDeviceGet(&device, 0); ///TODO: Make device index configurable
if (err != CUDA_SUCCESS) {
av_log(NULL, AV_LOG_ERROR, "Could not get the device number %d\n", 0);
ret = AVERROR_UNKNOWN;
goto error;
}
err = cuCtxCreate(&cuda_ctx, CU_CTX_SCHED_BLOCKING_SYNC, device);
if (err != CUDA_SUCCESS) {
av_log(NULL, AV_LOG_ERROR, "Error creating a CUDA context\n");
ret = AVERROR_UNKNOWN;
goto error;
}
device_ctx = (AVHWDeviceContext*)hw_device_ctx->data;
device_ctx->free = cuvid_ctx_free;
device_hwctx = device_ctx->hwctx;
device_hwctx->cuda_ctx = cuda_ctx;
err = cuCtxPopCurrent(&dummy);
if (err != CUDA_SUCCESS) {
av_log(NULL, AV_LOG_ERROR, "cuCtxPopCurrent failed\n");
ret = AVERROR_UNKNOWN;
goto error;
}
ret = av_hwdevice_ctx_init(hw_device_ctx);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "av_hwdevice_ctx_init failed\n");
goto error;
}
} else {
device_ctx = (AVHWDeviceContext*)hw_device_ctx->data;
device_hwctx = device_ctx->hwctx;
cuda_ctx = device_hwctx->cuda_ctx;
}
if (device_ctx->type != AV_HWDEVICE_TYPE_CUDA) {
av_log(NULL, AV_LOG_ERROR, "Hardware device context is already initialized for a diffrent hwaccel.\n");
ret = AVERROR(EINVAL);
goto error;
}
if (!ctx->hw_frames_ctx) {
ctx->hw_frames_ctx = av_hwframe_ctx_alloc(hw_device_ctx);
if (!ctx->hw_frames_ctx) {
av_log(NULL, AV_LOG_ERROR, "av_hwframe_ctx_alloc failed\n");
ret = AVERROR(ENOMEM);
goto error;
}
}
/* This is a bit hacky, av_hwframe_ctx_init is called by the cuvid decoder
* once it has probed the neccesary format information. But as filters/nvenc
* need to know the format/sw_format, set them here so they are happy.
* This is fine as long as CUVID doesn't add another supported pix_fmt.
*/
hwframe_ctx = (AVHWFramesContext*)ctx->hw_frames_ctx->data;
hwframe_ctx->format = AV_PIX_FMT_CUDA;
hwframe_ctx->sw_format = AV_PIX_FMT_NV12;
ost->hwaccel_ctx = ctx;
ost->enc_ctx->hw_frames_ctx = av_buffer_ref(ctx->hw_frames_ctx);
ost->enc_ctx->pix_fmt = AV_PIX_FMT_CUDA;
if (!ost->enc_ctx->hw_frames_ctx) {
av_log(NULL, AV_LOG_ERROR, "av_buffer_ref failed\n");
ret = AVERROR(ENOMEM);
goto error;
}
if (!ist->hwaccel_ctx) {
ist->hwaccel_ctx = ctx;
ist->hw_frames_ctx = av_buffer_ref(ctx->hw_frames_ctx);
ist->dec_ctx->hw_frames_ctx = av_buffer_ref(ctx->hw_frames_ctx);
ist->dec_ctx->pix_fmt = AV_PIX_FMT_CUDA;
ist->resample_pix_fmt = AV_PIX_FMT_CUDA;
ist->hwaccel_uninit = cuvid_uninit;
if (!ist->hw_frames_ctx || !ist->dec_ctx->hw_frames_ctx) {
av_log(NULL, AV_LOG_ERROR, "av_buffer_ref failed\n");
ret = AVERROR(ENOMEM);
goto error;
}
}
return 0;
error:
av_freep(&ctx);
return ret;
cancel:
if (ist->hwaccel_id == HWACCEL_CUVID) {
av_log(NULL, AV_LOG_ERROR, "CUVID hwaccel requested, but impossible to achive.\n");
return AVERROR(EINVAL);
}
return 0;
}

View File

@ -40,6 +40,9 @@
#include "libavutil/imgutils.h"
#include "libavutil/pixfmt.h"
#include "libavutil/hwcontext.h"
#include "libavutil/hwcontext_dxva2.h"
/* define all the GUIDs used directly here,
to avoid problems with inconsistent dxva2api.h versions in mingw-w64 and different MSVC version */
#include <initguid.h>
@ -53,12 +56,11 @@ DEFINE_GUID(DXVADDI_Intel_ModeH264_E, 0x604F8E68, 0x4951,0x4C54,0x88,0xFE,0xAB,0
DEFINE_GUID(DXVA2_ModeVC1_D, 0x1b81beA3, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
DEFINE_GUID(DXVA2_ModeVC1_D2010, 0x1b81beA4, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
DEFINE_GUID(DXVA2_ModeHEVC_VLD_Main, 0x5b11d51b, 0x2f4c,0x4452,0xbc,0xc3,0x09,0xf2,0xa1,0x16,0x0c,0xc0);
DEFINE_GUID(DXVA2_ModeHEVC_VLD_Main10,0x107af0e0, 0xef1a,0x4d19,0xab,0xa8,0x67,0xa1,0x63,0x07,0x3d,0x13);
DEFINE_GUID(DXVA2_ModeVP9_VLD_Profile0, 0x463707f8, 0xa1d0,0x4585,0x87,0x6d,0x83,0xaa,0x6d,0x60,0xb8,0x9e);
DEFINE_GUID(DXVA2_NoEncrypt, 0x1b81beD0, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
DEFINE_GUID(GUID_NULL, 0x00000000, 0x0000,0x0000,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00);
typedef IDirect3D9* WINAPI pDirect3DCreate9(UINT);
typedef HRESULT WINAPI pCreateDeviceManager9(UINT *, IDirect3DDeviceManager9 **);
typedef struct dxva2_mode {
const GUID *guid;
enum AVCodecID codec;
@ -83,67 +85,27 @@ static const dxva2_mode dxva2_modes[] = {
/* HEVC/H.265 */
{ &DXVA2_ModeHEVC_VLD_Main, AV_CODEC_ID_HEVC },
{ &DXVA2_ModeHEVC_VLD_Main10,AV_CODEC_ID_HEVC },
/* VP8/9 */
{ &DXVA2_ModeVP9_VLD_Profile0, AV_CODEC_ID_VP9 },
{ NULL, 0 },
};
typedef struct surface_info {
int used;
uint64_t age;
} surface_info;
typedef struct DXVA2Context {
HMODULE d3dlib;
HMODULE dxva2lib;
HANDLE deviceHandle;
IDirect3D9 *d3d9;
IDirect3DDevice9 *d3d9device;
IDirect3DDeviceManager9 *d3d9devmgr;
IDirectXVideoDecoderService *decoder_service;
IDirectXVideoDecoder *decoder;
GUID decoder_guid;
DXVA2_ConfigPictureDecode decoder_config;
LPDIRECT3DSURFACE9 *surfaces;
surface_info *surface_infos;
uint32_t num_surfaces;
uint64_t surface_age;
IDirectXVideoDecoderService *decoder_service;
AVFrame *tmp_frame;
AVBufferRef *hw_device_ctx;
AVBufferRef *hw_frames_ctx;
} DXVA2Context;
typedef struct DXVA2SurfaceWrapper {
DXVA2Context *ctx;
LPDIRECT3DSURFACE9 surface;
IDirectXVideoDecoder *decoder;
} DXVA2SurfaceWrapper;
static void dxva2_destroy_decoder(AVCodecContext *s)
{
InputStream *ist = s->opaque;
DXVA2Context *ctx = ist->hwaccel_ctx;
int i;
if (ctx->surfaces) {
for (i = 0; i < ctx->num_surfaces; i++) {
if (ctx->surfaces[i])
IDirect3DSurface9_Release(ctx->surfaces[i]);
}
}
av_freep(&ctx->surfaces);
av_freep(&ctx->surface_infos);
ctx->num_surfaces = 0;
ctx->surface_age = 0;
if (ctx->decoder) {
IDirectXVideoDecoder_Release(ctx->decoder);
ctx->decoder = NULL;
}
}
static void dxva2_uninit(AVCodecContext *s)
{
InputStream *ist = s->opaque;
@ -153,29 +115,11 @@ static void dxva2_uninit(AVCodecContext *s)
ist->hwaccel_get_buffer = NULL;
ist->hwaccel_retrieve_data = NULL;
if (ctx->decoder)
dxva2_destroy_decoder(s);
if (ctx->decoder_service)
IDirectXVideoDecoderService_Release(ctx->decoder_service);
if (ctx->d3d9devmgr && ctx->deviceHandle != INVALID_HANDLE_VALUE)
IDirect3DDeviceManager9_CloseDeviceHandle(ctx->d3d9devmgr, ctx->deviceHandle);
if (ctx->d3d9devmgr)
IDirect3DDeviceManager9_Release(ctx->d3d9devmgr);
if (ctx->d3d9device)
IDirect3DDevice9_Release(ctx->d3d9device);
if (ctx->d3d9)
IDirect3D9_Release(ctx->d3d9);
if (ctx->d3dlib)
FreeLibrary(ctx->d3dlib);
if (ctx->dxva2lib)
FreeLibrary(ctx->dxva2lib);
av_buffer_unref(&ctx->hw_frames_ctx);
av_buffer_unref(&ctx->hw_device_ctx);
av_frame_free(&ctx->tmp_frame);
@ -183,119 +127,34 @@ static void dxva2_uninit(AVCodecContext *s)
av_freep(&s->hwaccel_context);
}
static void dxva2_release_buffer(void *opaque, uint8_t *data)
{
DXVA2SurfaceWrapper *w = opaque;
DXVA2Context *ctx = w->ctx;
int i;
for (i = 0; i < ctx->num_surfaces; i++) {
if (ctx->surfaces[i] == w->surface) {
ctx->surface_infos[i].used = 0;
break;
}
}
IDirect3DSurface9_Release(w->surface);
IDirectXVideoDecoder_Release(w->decoder);
av_free(w);
}
static int dxva2_get_buffer(AVCodecContext *s, AVFrame *frame, int flags)
{
InputStream *ist = s->opaque;
DXVA2Context *ctx = ist->hwaccel_ctx;
int i, old_unused = -1;
LPDIRECT3DSURFACE9 surface;
DXVA2SurfaceWrapper *w = NULL;
av_assert0(frame->format == AV_PIX_FMT_DXVA2_VLD);
for (i = 0; i < ctx->num_surfaces; i++) {
surface_info *info = &ctx->surface_infos[i];
if (!info->used && (old_unused == -1 || info->age < ctx->surface_infos[old_unused].age))
old_unused = i;
}
if (old_unused == -1) {
av_log(NULL, AV_LOG_ERROR, "No free DXVA2 surface!\n");
return AVERROR(ENOMEM);
}
i = old_unused;
surface = ctx->surfaces[i];
w = av_mallocz(sizeof(*w));
if (!w)
return AVERROR(ENOMEM);
frame->buf[0] = av_buffer_create((uint8_t*)surface, 0,
dxva2_release_buffer, w,
AV_BUFFER_FLAG_READONLY);
if (!frame->buf[0]) {
av_free(w);
return AVERROR(ENOMEM);
}
w->ctx = ctx;
w->surface = surface;
IDirect3DSurface9_AddRef(w->surface);
w->decoder = ctx->decoder;
IDirectXVideoDecoder_AddRef(w->decoder);
ctx->surface_infos[i].used = 1;
ctx->surface_infos[i].age = ctx->surface_age++;
frame->data[3] = (uint8_t *)surface;
return 0;
return av_hwframe_get_buffer(ctx->hw_frames_ctx, frame, 0);
}
static int dxva2_retrieve_data(AVCodecContext *s, AVFrame *frame)
{
LPDIRECT3DSURFACE9 surface = (LPDIRECT3DSURFACE9)frame->data[3];
InputStream *ist = s->opaque;
DXVA2Context *ctx = ist->hwaccel_ctx;
D3DSURFACE_DESC surfaceDesc;
D3DLOCKED_RECT LockedRect;
HRESULT hr;
int ret;
IDirect3DSurface9_GetDesc(surface, &surfaceDesc);
ctx->tmp_frame->width = frame->width;
ctx->tmp_frame->height = frame->height;
ctx->tmp_frame->format = AV_PIX_FMT_NV12;
ret = av_frame_get_buffer(ctx->tmp_frame, 32);
ret = av_hwframe_transfer_data(ctx->tmp_frame, frame, 0);
if (ret < 0)
return ret;
hr = IDirect3DSurface9_LockRect(surface, &LockedRect, NULL, D3DLOCK_READONLY);
if (FAILED(hr)) {
av_log(NULL, AV_LOG_ERROR, "Unable to lock DXVA2 surface\n");
return AVERROR_UNKNOWN;
}
av_image_copy_plane(ctx->tmp_frame->data[0], ctx->tmp_frame->linesize[0],
(uint8_t*)LockedRect.pBits,
LockedRect.Pitch, frame->width, frame->height);
av_image_copy_plane(ctx->tmp_frame->data[1], ctx->tmp_frame->linesize[1],
(uint8_t*)LockedRect.pBits + LockedRect.Pitch * surfaceDesc.Height,
LockedRect.Pitch, frame->width, frame->height / 2);
IDirect3DSurface9_UnlockRect(surface);
ret = av_frame_copy_props(ctx->tmp_frame, frame);
if (ret < 0)
goto fail;
if (ret < 0) {
av_frame_unref(ctx->tmp_frame);
return ret;
}
av_frame_unref(frame);
av_frame_move_ref(frame, ctx->tmp_frame);
return 0;
fail:
av_frame_unref(ctx->tmp_frame);
return ret;
}
static int dxva2_alloc(AVCodecContext *s)
@ -303,94 +162,40 @@ static int dxva2_alloc(AVCodecContext *s)
InputStream *ist = s->opaque;
int loglevel = (ist->hwaccel_id == HWACCEL_AUTO) ? AV_LOG_VERBOSE : AV_LOG_ERROR;
DXVA2Context *ctx;
pDirect3DCreate9 *createD3D = NULL;
pCreateDeviceManager9 *createDeviceManager = NULL;
HANDLE device_handle;
HRESULT hr;
D3DPRESENT_PARAMETERS d3dpp = {0};
D3DDISPLAYMODE d3ddm;
unsigned resetToken = 0;
UINT adapter = D3DADAPTER_DEFAULT;
AVHWDeviceContext *device_ctx;
AVDXVA2DeviceContext *device_hwctx;
int ret;
ctx = av_mallocz(sizeof(*ctx));
if (!ctx)
return AVERROR(ENOMEM);
ctx->deviceHandle = INVALID_HANDLE_VALUE;
ist->hwaccel_ctx = ctx;
ist->hwaccel_uninit = dxva2_uninit;
ist->hwaccel_get_buffer = dxva2_get_buffer;
ist->hwaccel_retrieve_data = dxva2_retrieve_data;
ctx->d3dlib = LoadLibrary("d3d9.dll");
if (!ctx->d3dlib) {
av_log(NULL, loglevel, "Failed to load D3D9 library\n");
ret = av_hwdevice_ctx_create(&ctx->hw_device_ctx, AV_HWDEVICE_TYPE_DXVA2,
ist->hwaccel_device, NULL, 0);
if (ret < 0)
goto fail;
}
ctx->dxva2lib = LoadLibrary("dxva2.dll");
if (!ctx->dxva2lib) {
av_log(NULL, loglevel, "Failed to load DXVA2 library\n");
goto fail;
}
device_ctx = (AVHWDeviceContext*)ctx->hw_device_ctx->data;
device_hwctx = device_ctx->hwctx;
createD3D = (pDirect3DCreate9 *)GetProcAddress(ctx->d3dlib, "Direct3DCreate9");
if (!createD3D) {
av_log(NULL, loglevel, "Failed to locate Direct3DCreate9\n");
goto fail;
}
createDeviceManager = (pCreateDeviceManager9 *)GetProcAddress(ctx->dxva2lib, "DXVA2CreateDirect3DDeviceManager9");
if (!createDeviceManager) {
av_log(NULL, loglevel, "Failed to locate DXVA2CreateDirect3DDeviceManager9\n");
goto fail;
}
ctx->d3d9 = createD3D(D3D_SDK_VERSION);
if (!ctx->d3d9) {
av_log(NULL, loglevel, "Failed to create IDirect3D object\n");
goto fail;
}
if (ist->hwaccel_device) {
adapter = atoi(ist->hwaccel_device);
av_log(NULL, AV_LOG_INFO, "Using HWAccel device %d\n", adapter);
}
IDirect3D9_GetAdapterDisplayMode(ctx->d3d9, adapter, &d3ddm);
d3dpp.Windowed = TRUE;
d3dpp.BackBufferWidth = 640;
d3dpp.BackBufferHeight = 480;
d3dpp.BackBufferCount = 0;
d3dpp.BackBufferFormat = d3ddm.Format;
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.Flags = D3DPRESENTFLAG_VIDEO;
hr = IDirect3D9_CreateDevice(ctx->d3d9, adapter, D3DDEVTYPE_HAL, GetDesktopWindow(),
D3DCREATE_SOFTWARE_VERTEXPROCESSING | D3DCREATE_MULTITHREADED | D3DCREATE_FPU_PRESERVE,
&d3dpp, &ctx->d3d9device);
hr = IDirect3DDeviceManager9_OpenDeviceHandle(device_hwctx->devmgr,
&device_handle);
if (FAILED(hr)) {
av_log(NULL, loglevel, "Failed to create Direct3D device\n");
av_log(NULL, loglevel, "Failed to open a device handle\n");
goto fail;
}
hr = createDeviceManager(&resetToken, &ctx->d3d9devmgr);
if (FAILED(hr)) {
av_log(NULL, loglevel, "Failed to create Direct3D device manager\n");
goto fail;
}
hr = IDirect3DDeviceManager9_ResetDevice(ctx->d3d9devmgr, ctx->d3d9device, resetToken);
if (FAILED(hr)) {
av_log(NULL, loglevel, "Failed to bind Direct3D device to device manager\n");
goto fail;
}
hr = IDirect3DDeviceManager9_OpenDeviceHandle(ctx->d3d9devmgr, &ctx->deviceHandle);
if (FAILED(hr)) {
av_log(NULL, loglevel, "Failed to open device handle\n");
goto fail;
}
hr = IDirect3DDeviceManager9_GetVideoService(ctx->d3d9devmgr, ctx->deviceHandle, &IID_IDirectXVideoDecoderService, (void **)&ctx->decoder_service);
hr = IDirect3DDeviceManager9_GetVideoService(device_hwctx->devmgr, device_handle,
&IID_IDirectXVideoDecoderService,
(void **)&ctx->decoder_service);
IDirect3DDeviceManager9_CloseDeviceHandle(device_hwctx->devmgr, device_handle);
if (FAILED(hr)) {
av_log(NULL, loglevel, "Failed to create IDirectXVideoDecoderService\n");
goto fail;
@ -466,13 +271,17 @@ static int dxva2_create_decoder(AVCodecContext *s)
GUID *guid_list = NULL;
unsigned guid_count = 0, i, j;
GUID device_guid = GUID_NULL;
const D3DFORMAT surface_format = (s->sw_pix_fmt == AV_PIX_FMT_YUV420P10) ? MKTAG('P','0','1','0') : MKTAG('N','V','1','2');
D3DFORMAT target_format = 0;
DXVA2_VideoDesc desc = { 0 };
DXVA2_ConfigPictureDecode config;
HRESULT hr;
int surface_alignment;
int surface_alignment, num_surfaces;
int ret;
AVDXVA2FramesContext *frames_hwctx;
AVHWFramesContext *frames_ctx;
hr = IDirectXVideoDecoderService_GetDecoderDeviceGuids(ctx->decoder_service, &guid_count, &guid_list);
if (FAILED(hr)) {
av_log(NULL, loglevel, "Failed to retrieve decoder device GUIDs\n");
@ -499,7 +308,7 @@ static int dxva2_create_decoder(AVCodecContext *s)
}
for (j = 0; j < target_count; j++) {
const D3DFORMAT format = target_list[j];
if (format == MKTAG('N','V','1','2')) {
if (format == surface_format) {
target_format = format;
break;
}
@ -538,41 +347,43 @@ static int dxva2_create_decoder(AVCodecContext *s)
surface_alignment = 16;
/* 4 base work surfaces */
ctx->num_surfaces = 4;
num_surfaces = 4;
/* add surfaces based on number of possible refs */
if (s->codec_id == AV_CODEC_ID_H264 || s->codec_id == AV_CODEC_ID_HEVC)
ctx->num_surfaces += 16;
num_surfaces += 16;
else if (s->codec_id == AV_CODEC_ID_VP9)
num_surfaces += 8;
else
ctx->num_surfaces += 2;
num_surfaces += 2;
/* add extra surfaces for frame threading */
if (s->active_thread_type & FF_THREAD_FRAME)
ctx->num_surfaces += s->thread_count;
num_surfaces += s->thread_count;
ctx->surfaces = av_mallocz(ctx->num_surfaces * sizeof(*ctx->surfaces));
ctx->surface_infos = av_mallocz(ctx->num_surfaces * sizeof(*ctx->surface_infos));
if (!ctx->surfaces || !ctx->surface_infos) {
av_log(NULL, loglevel, "Unable to allocate surface arrays\n");
ctx->hw_frames_ctx = av_hwframe_ctx_alloc(ctx->hw_device_ctx);
if (!ctx->hw_frames_ctx)
goto fail;
}
frames_ctx = (AVHWFramesContext*)ctx->hw_frames_ctx->data;
frames_hwctx = frames_ctx->hwctx;
hr = IDirectXVideoDecoderService_CreateSurface(ctx->decoder_service,
FFALIGN(s->coded_width, surface_alignment),
FFALIGN(s->coded_height, surface_alignment),
ctx->num_surfaces - 1,
target_format, D3DPOOL_DEFAULT, 0,
DXVA2_VideoDecoderRenderTarget,
ctx->surfaces, NULL);
if (FAILED(hr)) {
av_log(NULL, loglevel, "Failed to create %d video surfaces\n", ctx->num_surfaces);
frames_ctx->format = AV_PIX_FMT_DXVA2_VLD;
frames_ctx->sw_format = (target_format == MKTAG('P','0','1','0') ? AV_PIX_FMT_P010 : AV_PIX_FMT_NV12);
frames_ctx->width = FFALIGN(s->coded_width, surface_alignment);
frames_ctx->height = FFALIGN(s->coded_height, surface_alignment);
frames_ctx->initial_pool_size = num_surfaces;
frames_hwctx->surface_type = DXVA2_VideoDecoderRenderTarget;
ret = av_hwframe_ctx_init(ctx->hw_frames_ctx);
if (ret < 0) {
av_log(NULL, loglevel, "Failed to initialize the HW frames context\n");
goto fail;
}
hr = IDirectXVideoDecoderService_CreateVideoDecoder(ctx->decoder_service, &device_guid,
&desc, &config, ctx->surfaces,
ctx->num_surfaces, &ctx->decoder);
&desc, &config, frames_hwctx->surfaces,
frames_hwctx->nb_surfaces, &frames_hwctx->decoder_to_release);
if (FAILED(hr)) {
av_log(NULL, loglevel, "Failed to create DXVA2 video decoder\n");
goto fail;
@ -582,16 +393,16 @@ static int dxva2_create_decoder(AVCodecContext *s)
ctx->decoder_config = config;
dxva_ctx->cfg = &ctx->decoder_config;
dxva_ctx->decoder = ctx->decoder;
dxva_ctx->surface = ctx->surfaces;
dxva_ctx->surface_count = ctx->num_surfaces;
dxva_ctx->decoder = frames_hwctx->decoder_to_release;
dxva_ctx->surface = frames_hwctx->surfaces;
dxva_ctx->surface_count = frames_hwctx->nb_surfaces;
if (IsEqualGUID(&ctx->decoder_guid, &DXVADDI_Intel_ModeH264_E))
dxva_ctx->workaround |= FF_DXVA2_WORKAROUND_INTEL_CLEARVIDEO;
return 0;
fail:
dxva2_destroy_decoder(s);
av_buffer_unref(&ctx->hw_frames_ctx);
return AVERROR(EINVAL);
}
@ -615,8 +426,13 @@ int dxva2_init(AVCodecContext *s)
return AVERROR(EINVAL);
}
if (ctx->decoder)
dxva2_destroy_decoder(s);
if (s->codec_id == AV_CODEC_ID_HEVC &&
s->profile != FF_PROFILE_HEVC_MAIN && s->profile != FF_PROFILE_HEVC_MAIN_10) {
av_log(NULL, loglevel, "Unsupported HEVC profile for DXVA2 HWAccel: %d\n", s->profile);
return AVERROR(EINVAL);
}
av_buffer_unref(&ctx->hw_frames_ctx);
ret = dxva2_create_decoder(s);
if (ret < 0) {

View File

@ -24,6 +24,7 @@
#include "libavfilter/avfilter.h"
#include "libavfilter/buffersink.h"
#include "libavfilter/buffersrc.h"
#include "libavresample/avresample.h"
@ -38,6 +39,27 @@
#include "libavutil/imgutils.h"
#include "libavutil/samplefmt.h"
static const enum AVPixelFormat *get_compliance_unofficial_pix_fmts(enum AVCodecID codec_id, const enum AVPixelFormat default_formats[])
{
static const enum AVPixelFormat mjpeg_formats[] =
{ AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ444P,
AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P,
AV_PIX_FMT_NONE };
static const enum AVPixelFormat ljpeg_formats[] =
{ AV_PIX_FMT_BGR24 , AV_PIX_FMT_BGRA , AV_PIX_FMT_BGR0,
AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ422P,
AV_PIX_FMT_YUV420P , AV_PIX_FMT_YUV444P , AV_PIX_FMT_YUV422P,
AV_PIX_FMT_NONE};
if (codec_id == AV_CODEC_ID_MJPEG) {
return mjpeg_formats;
} else if (codec_id == AV_CODEC_ID_LJPEG) {
return ljpeg_formats;
} else {
return default_formats;
}
}
enum AVPixelFormat choose_pixel_fmt(AVStream *st, AVCodecContext *enc_ctx, AVCodec *codec, enum AVPixelFormat target)
{
if (codec && codec->pix_fmts) {
@ -45,18 +67,9 @@ enum AVPixelFormat choose_pixel_fmt(AVStream *st, AVCodecContext *enc_ctx, AVCod
const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(target);
int has_alpha = desc ? desc->nb_components % 2 == 0 : 0;
enum AVPixelFormat best= AV_PIX_FMT_NONE;
static const enum AVPixelFormat mjpeg_formats[] =
{ AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_NONE };
static const enum AVPixelFormat ljpeg_formats[] =
{ AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUV420P,
AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_BGRA, AV_PIX_FMT_NONE };
if (enc_ctx->strict_std_compliance <= FF_COMPLIANCE_UNOFFICIAL) {
if (enc_ctx->codec_id == AV_CODEC_ID_MJPEG) {
p = mjpeg_formats;
} else if (enc_ctx->codec_id == AV_CODEC_ID_LJPEG) {
p =ljpeg_formats;
}
p = get_compliance_unofficial_pix_fmts(enc_ctx->codec_id, p);
}
for (; *p != AV_PIX_FMT_NONE; p++) {
best= avcodec_find_best_pix_fmt_of_2(best, *p, target, has_alpha, NULL);
@ -85,7 +98,7 @@ void choose_sample_fmt(AVStream *st, AVCodec *codec)
break;
}
if (*p == -1) {
if((codec->capabilities & CODEC_CAP_LOSSLESS) && av_get_sample_fmt_name(st->codec->sample_fmt) > av_get_sample_fmt_name(codec->sample_fmts[0]))
if((codec->capabilities & AV_CODEC_CAP_LOSSLESS) && av_get_sample_fmt_name(st->codec->sample_fmt) > av_get_sample_fmt_name(codec->sample_fmts[0]))
av_log(NULL, AV_LOG_ERROR, "Conversion will not be lossless.\n");
if(av_get_sample_fmt_name(st->codec->sample_fmt))
av_log(NULL, AV_LOG_WARNING,
@ -126,12 +139,7 @@ static char *choose_pix_fmts(OutputStream *ost)
p = ost->enc->pix_fmts;
if (ost->enc_ctx->strict_std_compliance <= FF_COMPLIANCE_UNOFFICIAL) {
if (ost->enc_ctx->codec_id == AV_CODEC_ID_MJPEG) {
p = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_NONE };
} else if (ost->enc_ctx->codec_id == AV_CODEC_ID_LJPEG) {
p = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUV420P,
AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_BGRA, AV_PIX_FMT_NONE };
}
p = get_compliance_unofficial_pix_fmts(ost->enc_ctx->codec_id, p);
}
for (; *p != AV_PIX_FMT_NONE; p++) {
@ -289,6 +297,45 @@ static void init_input_filter(FilterGraph *fg, AVFilterInOut *in)
ist->filters[ist->nb_filters - 1] = fg->inputs[fg->nb_inputs - 1];
}
int init_complex_filtergraph(FilterGraph *fg)
{
AVFilterInOut *inputs, *outputs, *cur;
AVFilterGraph *graph;
int ret = 0;
/* this graph is only used for determining the kinds of inputs
* and outputs we have, and is discarded on exit from this function */
graph = avfilter_graph_alloc();
if (!graph)
return AVERROR(ENOMEM);
ret = avfilter_graph_parse2(graph, fg->graph_desc, &inputs, &outputs);
if (ret < 0)
goto fail;
for (cur = inputs; cur; cur = cur->next)
init_input_filter(fg, cur);
for (cur = outputs; cur;) {
GROW_ARRAY(fg->outputs, fg->nb_outputs);
fg->outputs[fg->nb_outputs - 1] = av_mallocz(sizeof(*fg->outputs[0]));
if (!fg->outputs[fg->nb_outputs - 1])
exit_program(1);
fg->outputs[fg->nb_outputs - 1]->graph = fg;
fg->outputs[fg->nb_outputs - 1]->out_tmp = cur;
fg->outputs[fg->nb_outputs - 1]->type = avfilter_pad_get_type(cur->filter_ctx->output_pads,
cur->pad_idx);
cur = cur->next;
fg->outputs[fg->nb_outputs - 1]->out_tmp->next = NULL;
}
fail:
avfilter_inout_free(&inputs);
avfilter_graph_free(&graph);
return ret;
}
static int insert_trim(int64_t start_time, int64_t duration,
AVFilterContext **last_filter, int *pad_idx,
const char *filter_name)
@ -381,14 +428,20 @@ static int configure_output_video_filter(FilterGraph *fg, OutputFilter *ofilter,
if (ret < 0)
return ret;
if (codec->width || codec->height) {
if (!hw_device_ctx && (codec->width || codec->height)) {
char args[255];
AVFilterContext *filter;
AVDictionaryEntry *e = NULL;
snprintf(args, sizeof(args), "%d:%d:0x%X",
snprintf(args, sizeof(args), "%d:%d",
codec->width,
codec->height,
(unsigned)ost->sws_flags);
codec->height);
while ((e = av_dict_get(ost->sws_dict, "", e,
AV_DICT_IGNORE_SUFFIX))) {
av_strlcatf(args, sizeof(args), ":%s=%s", e->key, e->value);
}
snprintf(name, sizeof(name), "scaler for output stream %d:%d",
ost->file_index, ost->index);
if ((ret = avfilter_graph_create_filter(&filter, avfilter_get_by_name("scale"),
@ -499,7 +552,7 @@ static int configure_output_audio_filter(FilterGraph *fg, OutputFilter *ofilter,
av_get_default_channel_layout(ost->audio_channels_mapped));
for (i = 0; i < ost->audio_channels_mapped; i++)
if (ost->audio_channels_map[i] != -1)
av_bprintf(&pan_buf, ":c%d=c%d", i, ost->audio_channels_map[i]);
av_bprintf(&pan_buf, "|c%d=c%d", i, ost->audio_channels_map[i]);
AUTO_INSERT_FILTER("-map_channel", "pan", pan_buf.str);
av_bprint_finalize(&pan_buf, NULL);
@ -602,6 +655,11 @@ int configure_output_filter(FilterGraph *fg, OutputFilter *ofilter, AVFilterInOu
av_freep(&ofilter->name);
DESCRIBE_FILTER_LINK(ofilter, out, 0);
if (!ofilter->ost) {
av_log(NULL, AV_LOG_FATAL, "Filter %s has an unconnected output\n", ofilter->name);
exit_program(1);
}
switch (avfilter_pad_get_type(out->filter_ctx->output_pads, out->pad_idx)) {
case AVMEDIA_TYPE_VIDEO: return configure_output_video_filter(fg, ofilter, out);
case AVMEDIA_TYPE_AUDIO: return configure_output_audio_filter(fg, ofilter, out);
@ -632,8 +690,8 @@ static int sub2video_prepare(InputStream *ist)
}
av_log(avf, AV_LOG_INFO, "sub2video: using %dx%d canvas\n", w, h);
}
ist->sub2video.w = ist->dec_ctx->width = ist->resample_width = w;
ist->sub2video.h = ist->dec_ctx->height = ist->resample_height = h;
ist->sub2video.w = ist->resample_width = w;
ist->sub2video.h = ist->resample_height = h;
/* rectangles are AV_PIX_FMT_PAL8, but we have no guarantee that the
palettes for all rectangles are identical or compatible */
@ -661,10 +719,17 @@ static int configure_input_video_filter(FilterGraph *fg, InputFilter *ifilter,
char name[255];
int ret, pad_idx = 0;
int64_t tsoffset = 0;
AVBufferSrcParameters *par = av_buffersrc_parameters_alloc();
if (!par)
return AVERROR(ENOMEM);
memset(par, 0, sizeof(*par));
par->format = AV_PIX_FMT_NONE;
if (ist->dec_ctx->codec_type == AVMEDIA_TYPE_AUDIO) {
av_log(NULL, AV_LOG_ERROR, "Cannot connect video filter to audio input\n");
return AVERROR(EINVAL);
ret = AVERROR(EINVAL);
goto fail;
}
if (!fr.num)
@ -673,7 +738,7 @@ static int configure_input_video_filter(FilterGraph *fg, InputFilter *ifilter,
if (ist->dec_ctx->codec_type == AVMEDIA_TYPE_SUBTITLE) {
ret = sub2video_prepare(ist);
if (ret < 0)
return ret;
goto fail;
}
sar = ist->st->sample_aspect_ratio.num ?
@ -688,15 +753,21 @@ static int configure_input_video_filter(FilterGraph *fg, InputFilter *ifilter,
ist->resample_height,
ist->hwaccel_retrieve_data ? ist->hwaccel_retrieved_pix_fmt : ist->resample_pix_fmt,
tb.num, tb.den, sar.num, sar.den,
SWS_BILINEAR + ((ist->dec_ctx->flags&CODEC_FLAG_BITEXACT) ? SWS_BITEXACT:0));
SWS_BILINEAR + ((ist->dec_ctx->flags&AV_CODEC_FLAG_BITEXACT) ? SWS_BITEXACT:0));
if (fr.num && fr.den)
av_bprintf(&args, ":frame_rate=%d/%d", fr.num, fr.den);
snprintf(name, sizeof(name), "graph %d input from stream %d:%d", fg->index,
ist->file_index, ist->st->index);
if ((ret = avfilter_graph_create_filter(&ifilter->filter, buffer_filt, name,
args.str, NULL, fg->graph)) < 0)
return ret;
goto fail;
par->hw_frames_ctx = ist->hw_frames_ctx;
ret = av_buffersrc_parameters_set(ifilter->filter, par);
if (ret < 0)
goto fail;
av_freep(&par);
last_filter = ifilter->filter;
if (ist->autorotate) {
@ -770,6 +841,10 @@ static int configure_input_video_filter(FilterGraph *fg, InputFilter *ifilter,
if ((ret = avfilter_link(last_filter, 0, in->filter_ctx, in->pad_idx)) < 0)
return ret;
return 0;
fail:
av_freep(&par);
return ret;
}
static int configure_input_audio_filter(FilterGraph *fg, InputFilter *ifilter,
@ -904,7 +979,7 @@ static int configure_input_filter(FilterGraph *fg, InputFilter *ifilter,
int configure_filtergraph(FilterGraph *fg)
{
AVFilterInOut *inputs, *outputs, *cur;
int ret, i, init = !fg->graph, simple = !fg->graph_desc;
int ret, i, simple = !fg->graph_desc;
const char *graph_desc = simple ? fg->outputs[0]->ost->avfilter :
fg->graph_desc;
@ -917,7 +992,13 @@ int configure_filtergraph(FilterGraph *fg)
char args[512];
AVDictionaryEntry *e = NULL;
snprintf(args, sizeof(args), "flags=0x%X", (unsigned)ost->sws_flags);
args[0] = 0;
while ((e = av_dict_get(ost->sws_dict, "", e,
AV_DICT_IGNORE_SUFFIX))) {
av_strlcatf(args, sizeof(args), "%s=%s:", e->key, e->value);
}
if (strlen(args))
args[strlen(args)-1] = 0;
fg->graph->scale_sws_opts = av_strdup(args);
args[0] = 0;
@ -946,14 +1027,36 @@ int configure_filtergraph(FilterGraph *fg)
if ((ret = avfilter_graph_parse2(fg->graph, graph_desc, &inputs, &outputs)) < 0)
return ret;
if (simple && (!inputs || inputs->next || !outputs || outputs->next)) {
av_log(NULL, AV_LOG_ERROR, "Simple filtergraph '%s' does not have "
"exactly one input and output.\n", graph_desc);
return AVERROR(EINVAL);
if (hw_device_ctx) {
for (i = 0; i < fg->graph->nb_filters; i++) {
fg->graph->filters[i]->hw_device_ctx = av_buffer_ref(hw_device_ctx);
}
}
for (cur = inputs; !simple && init && cur; cur = cur->next)
init_input_filter(fg, cur);
if (simple && (!inputs || inputs->next || !outputs || outputs->next)) {
const char *num_inputs;
const char *num_outputs;
if (!outputs) {
num_outputs = "0";
} else if (outputs->next) {
num_outputs = ">1";
} else {
num_outputs = "1";
}
if (!inputs) {
num_inputs = "0";
} else if (inputs->next) {
num_inputs = ">1";
} else {
num_inputs = "1";
}
av_log(NULL, AV_LOG_ERROR, "Simple filtergraph '%s' was expected "
"to have exactly 1 input and 1 output."
" However, it had %s input(s) and %s output(s)."
" Please adjust, or use a complex filtergraph (-filter_complex) instead.\n",
graph_desc, num_inputs, num_outputs);
return AVERROR(EINVAL);
}
for (cur = inputs, i = 0; cur; cur = cur->next, i++)
if ((ret = configure_input_filter(fg, fg->inputs[i], cur)) < 0) {
@ -963,35 +1066,26 @@ int configure_filtergraph(FilterGraph *fg)
}
avfilter_inout_free(&inputs);
if (!init || simple) {
/* we already know the mappings between lavfi outputs and output streams,
* so we can finish the setup */
for (cur = outputs, i = 0; cur; cur = cur->next, i++)
configure_output_filter(fg, fg->outputs[i], cur);
avfilter_inout_free(&outputs);
for (cur = outputs, i = 0; cur; cur = cur->next, i++)
configure_output_filter(fg, fg->outputs[i], cur);
avfilter_inout_free(&outputs);
if ((ret = avfilter_graph_config(fg->graph, NULL)) < 0)
return ret;
} else {
/* wait until output mappings are processed */
for (cur = outputs; cur;) {
GROW_ARRAY(fg->outputs, fg->nb_outputs);
if (!(fg->outputs[fg->nb_outputs - 1] = av_mallocz(sizeof(*fg->outputs[0]))))
exit_program(1);
fg->outputs[fg->nb_outputs - 1]->graph = fg;
fg->outputs[fg->nb_outputs - 1]->out_tmp = cur;
cur = cur->next;
fg->outputs[fg->nb_outputs - 1]->out_tmp->next = NULL;
}
}
if ((ret = avfilter_graph_config(fg->graph, NULL)) < 0)
return ret;
fg->reconfiguration = 1;
for (i = 0; i < fg->nb_outputs; i++) {
OutputStream *ost = fg->outputs[i]->ost;
if (ost &&
ost->enc->type == AVMEDIA_TYPE_AUDIO &&
!(ost->enc->capabilities & CODEC_CAP_VARIABLE_FRAME_SIZE))
if (!ost->enc) {
/* identical to the same check in ffmpeg.c, needed because
complex filter graphs are initialized earlier */
av_log(NULL, AV_LOG_ERROR, "Encoder (codec %s) not found for output stream #%d:%d\n",
avcodec_get_name(ost->st->codec->codec_id), ost->file_index, ost->index);
return AVERROR(EINVAL);
}
if (ost->enc->type == AVMEDIA_TYPE_AUDIO &&
!(ost->enc->capabilities & AV_CODEC_CAP_VARIABLE_FRAME_SIZE))
av_buffersink_set_frame_size(ost->filter->filter,
ost->enc_ctx->frame_size);
}

View File

@ -41,6 +41,8 @@
#include "libavutil/pixdesc.h"
#include "libavutil/pixfmt.h"
#define DEFAULT_PASS_LOGFILENAME_PREFIX "ffmpeg2pass"
#define MATCH_PER_STREAM_OPT(name, type, outvar, fmtctx, st)\
{\
int i, ret;\
@ -71,10 +73,24 @@ const HWAccel hwaccels[] = {
{ "dxva2", dxva2_init, HWACCEL_DXVA2, AV_PIX_FMT_DXVA2_VLD },
#endif
#if CONFIG_VDA
{ "vda", vda_init, HWACCEL_VDA, AV_PIX_FMT_VDA },
{ "vda", videotoolbox_init, HWACCEL_VDA, AV_PIX_FMT_VDA },
#endif
#if CONFIG_VIDEOTOOLBOX
{ "videotoolbox", videotoolbox_init, HWACCEL_VIDEOTOOLBOX, AV_PIX_FMT_VIDEOTOOLBOX },
#endif
#if CONFIG_LIBMFX
{ "qsv", qsv_init, HWACCEL_QSV, AV_PIX_FMT_QSV },
#endif
#if CONFIG_VAAPI
{ "vaapi", vaapi_decode_init, HWACCEL_VAAPI, AV_PIX_FMT_VAAPI },
#endif
#if CONFIG_CUVID
{ "cuvid", cuvid_init, HWACCEL_CUVID, AV_PIX_FMT_CUDA },
#endif
{ 0 },
};
int hwaccel_lax_profile_check = 0;
AVBufferRef *hw_device_ctx;
char *vstats_filename;
char *sdp_filename;
@ -97,6 +113,7 @@ int start_at_zero = 0;
int copy_tb = -1;
int debug_ts = 0;
int exit_on_error = 0;
int abort_on_flags = 0;
int print_stats = -1;
int qp_hist = 0;
int stdin_interaction = 1;
@ -153,12 +170,25 @@ static void init_options(OptionsContext *o)
o->stop_time = INT64_MAX;
o->mux_max_delay = 0.7;
o->start_time = AV_NOPTS_VALUE;
o->start_time_eof = AV_NOPTS_VALUE;
o->recording_time = INT64_MAX;
o->limit_filesize = UINT64_MAX;
o->chapters_input_file = INT_MAX;
o->accurate_seek = 1;
}
static int show_hwaccels(void *optctx, const char *opt, const char *arg)
{
int i;
printf("Hardware acceleration methods:\n");
for (i = 0; i < FF_ARRAY_ELEMS(hwaccels) - 1; i++) {
printf("%s\n", hwaccels[i].name);
}
printf("\n");
return 0;
}
/* return a copy of the input with the stream specifiers removed from the keys */
static AVDictionary *strip_specifiers(AVDictionary *dict)
{
@ -177,6 +207,24 @@ static AVDictionary *strip_specifiers(AVDictionary *dict)
return ret;
}
static int opt_abort_on(void *optctx, const char *opt, const char *arg)
{
static const AVOption opts[] = {
{ "abort_on" , NULL, 0, AV_OPT_TYPE_FLAGS, { .i64 = 0 }, INT64_MIN, INT64_MAX, .unit = "flags" },
{ "empty_output" , NULL, 0, AV_OPT_TYPE_CONST, { .i64 = ABORT_ON_FLAG_EMPTY_OUTPUT }, .unit = "flags" },
{ NULL },
};
static const AVClass class = {
.class_name = "",
.item_name = av_default_item_name,
.option = opts,
.version = LIBAVUTIL_VERSION_INT,
};
const AVClass *pclass = &class;
return av_opt_eval_flags(&pclass, &opts[0], arg, &abort_on_flags);
}
static int opt_sameq(void *optctx, const char *opt, const char *arg)
{
av_log(NULL, AV_LOG_ERROR, "Option '%s' was removed. "
@ -230,6 +278,7 @@ static int opt_map(void *optctx, const char *opt, const char *arg)
int sync_file_idx = -1, sync_stream_idx = 0;
char *p, *sync;
char *map;
char *allow_unused;
if (*arg == '-') {
negative = 1;
@ -274,6 +323,8 @@ static int opt_map(void *optctx, const char *opt, const char *arg)
exit_program(1);
}
} else {
if (allow_unused = strchr(map, '?'))
*allow_unused = 0;
file_idx = strtol(map, &p, 0);
if (file_idx >= nb_input_files || file_idx < 0) {
av_log(NULL, AV_LOG_FATAL, "Invalid input file index: %d.\n", file_idx);
@ -311,8 +362,13 @@ static int opt_map(void *optctx, const char *opt, const char *arg)
}
if (!m) {
av_log(NULL, AV_LOG_FATAL, "Stream map '%s' matches no streams.\n", arg);
exit_program(1);
if (allow_unused) {
av_log(NULL, AV_LOG_VERBOSE, "Stream map '%s' matches no streams; ignoring.\n", arg);
} else {
av_log(NULL, AV_LOG_FATAL, "Stream map '%s' matches no streams.\n"
"To ignore this, add a trailing '?' to the map.\n", arg);
exit_program(1);
}
}
av_freep(&map);
@ -393,6 +449,17 @@ static int opt_sdp_file(void *optctx, const char *opt, const char *arg)
return 0;
}
#if CONFIG_VAAPI
static int opt_vaapi_device(void *optctx, const char *opt, const char *arg)
{
int err;
err = vaapi_device_init(arg);
if (err < 0)
exit_program(1);
return 0;
}
#endif
/**
* Parse a metadata specifier passed as 'arg' parameter.
* @param arg metadata string to parse
@ -585,6 +652,7 @@ static void add_input_streams(OptionsContext *o, AVFormatContext *ic)
AVCodecContext *dec = st->codec;
InputStream *ist = av_mallocz(sizeof(*ist));
char *framerate = NULL, *hwaccel = NULL, *hwaccel_device = NULL;
char *hwaccel_output_format = NULL;
char *codec_tag = NULL;
char *next;
char *discard_str = NULL;
@ -600,6 +668,9 @@ static void add_input_streams(OptionsContext *o, AVFormatContext *ic)
ist->file_index = nb_input_files;
ist->discard = 1;
st->discard = AVDISCARD_ALL;
ist->nb_samples = 0;
ist->min_pts = INT64_MAX;
ist->max_pts = INT64_MIN;
ist->ts_scale = 1.0;
MATCH_PER_STREAM_OPT(ts_scale, dbl, ist->ts_scale, ic, st);
@ -647,9 +718,11 @@ static void add_input_streams(OptionsContext *o, AVFormatContext *ic)
case AVMEDIA_TYPE_VIDEO:
if(!ist->dec)
ist->dec = avcodec_find_decoder(dec->codec_id);
#if FF_API_EMU_EDGE
if (av_codec_get_lowres(dec)) {
dec->flags |= CODEC_FLAG_EMU_EDGE;
}
#endif
ist->resample_height = ist->dec_ctx->height;
ist->resample_width = ist->dec_ctx->width;
@ -699,6 +772,19 @@ static void add_input_streams(OptionsContext *o, AVFormatContext *ic)
if (!ist->hwaccel_device)
exit_program(1);
}
MATCH_PER_STREAM_OPT(hwaccel_output_formats, str,
hwaccel_output_format, ic, st);
if (hwaccel_output_format) {
ist->hwaccel_output_format = av_get_pix_fmt(hwaccel_output_format);
if (ist->hwaccel_output_format == AV_PIX_FMT_NONE) {
av_log(NULL, AV_LOG_FATAL, "Unrecognised hwaccel output "
"format: %s", hwaccel_output_format);
}
} else {
ist->hwaccel_output_format = AV_PIX_FMT_NONE;
}
ist->hwaccel_pix_fmt = AV_PIX_FMT_NONE;
break;
@ -922,6 +1008,12 @@ static int open_input_file(OptionsContext *o, const char *filename)
}
}
if (o->start_time_eof != AV_NOPTS_VALUE) {
if (ic->duration>0) {
o->start_time = o->start_time_eof + ic->duration;
} else
av_log(NULL, AV_LOG_WARNING, "Cannot use -sseof, duration of %s not known\n", filename);
}
timestamp = (o->start_time == AV_NOPTS_VALUE) ? 0 : o->start_time;
/* add the stream start time */
if (!o->seek_timestamp && ic->start_time != AV_NOPTS_VALUE)
@ -970,6 +1062,9 @@ static int open_input_file(OptionsContext *o, const char *filename)
f->nb_streams = ic->nb_streams;
f->rate_emu = o->rate_emu;
f->accurate_seek = o->accurate_seek;
f->loop = o->loop;
f->duration = 0;
f->time_base = (AVRational){ 1, 1 };
#if HAVE_PTHREADS
f->thread_queue_size = o->thread_queue_size > 0 ? o->thread_queue_size : 8;
#endif
@ -1192,7 +1287,11 @@ static OutputStream *new_output_stream(OptionsContext *o, AVFormatContext *oc, e
bsfc_prev->next = bsfc;
else
ost->bitstream_filters = bsfc;
av_dict_set(&ost->bsf_args, bsfc->filter->name, arg, 0);
if (arg)
if (!(bsfc->args = av_strdup(arg))) {
av_log(NULL, AV_LOG_FATAL, "Bitstream filter memory allocation failed\n");
exit_program(1);
}
bsfc_prev = bsfc;
bsf = next;
@ -1203,12 +1302,13 @@ 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;
}
MATCH_PER_STREAM_OPT(qscale, dbl, qscale, oc, st);
if (qscale >= 0) {
ost->enc_ctx->flags |= CODEC_FLAG_QSCALE;
ost->enc_ctx->flags |= AV_CODEC_FLAG_QSCALE;
ost->enc_ctx->global_quality = FF_QP2LAMBDA * qscale;
}
@ -1216,9 +1316,9 @@ static OutputStream *new_output_stream(OptionsContext *o, AVFormatContext *oc, e
ost->disposition = av_strdup(ost->disposition);
if (oc->oformat->flags & AVFMT_GLOBALHEADER)
ost->enc_ctx->flags |= CODEC_FLAG_GLOBAL_HEADER;
ost->enc_ctx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
av_opt_get_int(o->g->sws_opts, "sws_flags", 0, &ost->sws_flags);
av_dict_copy(&ost->sws_dict, o->g->sws_dict, 0);
av_dict_copy(&ost->swr_opts, o->g->swr_opts, 0);
if (ost->enc && av_get_exact_bits_per_sample(ost->enc->id) == 24)
@ -1438,17 +1538,17 @@ static OutputStream *new_video_stream(OptionsContext *o, AVFormatContext *oc, in
video_enc->rc_override_count = i;
if (do_psnr)
video_enc->flags|= CODEC_FLAG_PSNR;
video_enc->flags|= AV_CODEC_FLAG_PSNR;
/* two pass mode */
MATCH_PER_STREAM_OPT(pass, i, do_pass, oc, st);
if (do_pass) {
if (do_pass & 1) {
video_enc->flags |= CODEC_FLAG_PASS1;
video_enc->flags |= AV_CODEC_FLAG_PASS1;
av_dict_set(&ost->encoder_opts, "flags", "+pass1", AV_DICT_APPEND);
}
if (do_pass & 2) {
video_enc->flags |= CODEC_FLAG_PASS2;
video_enc->flags |= AV_CODEC_FLAG_PASS2;
av_dict_set(&ost->encoder_opts, "flags", "+pass2", AV_DICT_APPEND);
}
}
@ -1458,6 +1558,40 @@ static OutputStream *new_video_stream(OptionsContext *o, AVFormatContext *oc, in
!(ost->logfile_prefix = av_strdup(ost->logfile_prefix)))
exit_program(1);
if (do_pass) {
char logfilename[1024];
FILE *f;
snprintf(logfilename, sizeof(logfilename), "%s-%d.log",
ost->logfile_prefix ? ost->logfile_prefix :
DEFAULT_PASS_LOGFILENAME_PREFIX,
i);
if (!strcmp(ost->enc->name, "libx264")) {
av_dict_set(&ost->encoder_opts, "stats", logfilename, AV_DICT_DONT_OVERWRITE);
} else {
if (video_enc->flags & AV_CODEC_FLAG_PASS2) {
char *logbuffer = read_file(logfilename);
if (!logbuffer) {
av_log(NULL, AV_LOG_FATAL, "Error reading log file '%s' for pass-2 encoding\n",
logfilename);
exit_program(1);
}
video_enc->stats_in = logbuffer;
}
if (video_enc->flags & AV_CODEC_FLAG_PASS1) {
f = av_fopen_utf8(logfilename, "wb");
if (!f) {
av_log(NULL, AV_LOG_FATAL,
"Cannot write log file '%s' for pass-1 encoding: %s\n",
logfilename, strerror(errno));
exit_program(1);
}
ost->logfile = f;
}
}
}
MATCH_PER_STREAM_OPT(forced_key_frames, str, ost->forced_keyframes, oc, st);
if (ost->forced_keyframes)
ost->forced_keyframes = av_strdup(ost->forced_keyframes);
@ -1736,8 +1870,7 @@ static void init_output_filter(OutputFilter *ofilter, OptionsContext *o,
{
OutputStream *ost;
switch (avfilter_pad_get_type(ofilter->out_tmp->filter_ctx->output_pads,
ofilter->out_tmp->pad_idx)) {
switch (ofilter->type) {
case AVMEDIA_TYPE_VIDEO: ost = new_video_stream(o, oc, -1); break;
case AVMEDIA_TYPE_AUDIO: ost = new_audio_stream(o, oc, -1); break;
default:
@ -1770,13 +1903,21 @@ static void init_output_filter(OutputFilter *ofilter, OptionsContext *o,
exit_program(1);
}
if (configure_output_filter(ofilter->graph, ofilter, ofilter->out_tmp) < 0) {
av_log(NULL, AV_LOG_FATAL, "Error configuring filter.\n");
exit_program(1);
}
avfilter_inout_free(&ofilter->out_tmp);
}
static int init_complex_filters(void)
{
int i, ret = 0;
for (i = 0; i < nb_filtergraphs; i++) {
ret = init_complex_filtergraph(filtergraphs[i]);
if (ret < 0)
return ret;
}
return 0;
}
static int configure_complex_filters(void)
{
int i, ret = 0;
@ -1799,10 +1940,6 @@ static int open_output_file(OptionsContext *o, const char *filename)
AVDictionary *unused_opts = NULL;
AVDictionaryEntry *e = NULL;
if (configure_complex_filters() < 0) {
av_log(NULL, AV_LOG_FATAL, "Error configuring filters.\n");
exit_program(1);
}
if (o->stop_time != INT64_MAX && o->recording_time != INT64_MAX) {
o->stop_time = INT64_MAX;
@ -1857,8 +1994,7 @@ static int open_output_file(OptionsContext *o, const char *filename)
if (!ofilter->out_tmp || ofilter->out_tmp->name)
continue;
switch (avfilter_pad_get_type(ofilter->out_tmp->filter_ctx->output_pads,
ofilter->out_tmp->pad_idx)) {
switch (ofilter->type) {
case AVMEDIA_TYPE_VIDEO: o->video_disable = 1; break;
case AVMEDIA_TYPE_AUDIO: o->audio_disable = 1; break;
case AVMEDIA_TYPE_SUBTITLE: o->subtitle_disable = 1; break;
@ -1917,7 +2053,7 @@ static int open_output_file(OptionsContext *o, const char *filename)
for (i = 0; i < nb_input_streams; i++) {
int new_area;
ist = input_streams[i];
new_area = ist->st->codec->width * ist->st->codec->height;
new_area = ist->st->codec->width * ist->st->codec->height + 100000000*!!ist->st->codec_info_nb_frames;
if((qcr!=MKTAG('A', 'P', 'I', 'C')) && (ist->st->disposition & AV_DISPOSITION_ATTACHED_PIC))
new_area = 1;
if (ist->st->codec->codec_type == AVMEDIA_TYPE_VIDEO &&
@ -1934,12 +2070,14 @@ static int open_output_file(OptionsContext *o, const char *filename)
/* audio: most channels */
if (!o->audio_disable && av_guess_codec(oc->oformat, NULL, filename, NULL, AVMEDIA_TYPE_AUDIO) != AV_CODEC_ID_NONE) {
int channels = 0, idx = -1;
int best_score = 0, idx = -1;
for (i = 0; i < nb_input_streams; i++) {
int score;
ist = input_streams[i];
score = ist->st->codec->channels + 100000000*!!ist->st->codec_info_nb_frames;
if (ist->st->codec->codec_type == AVMEDIA_TYPE_AUDIO &&
ist->st->codec->channels > channels) {
channels = ist->st->codec->channels;
score > best_score) {
best_score = score;
idx = i;
}
}
@ -2026,6 +2164,7 @@ loop_end:
if(o-> data_disable && ist->st->codec->codec_type == AVMEDIA_TYPE_DATA)
continue;
ost = NULL;
switch (ist->st->codec->codec_type) {
case AVMEDIA_TYPE_VIDEO: ost = new_video_stream (o, oc, src_idx); break;
case AVMEDIA_TYPE_AUDIO: ost = new_audio_stream (o, oc, src_idx); break;
@ -2049,6 +2188,9 @@ loop_end:
exit_program(1);
}
}
if (ost)
ost->sync_ist = input_streams[ input_files[map->sync_file_index]->ist_index
+ map->sync_stream_index];
}
}
}
@ -2078,7 +2220,7 @@ loop_end:
avio_read(pb, attachment, len);
ost = new_attachment_stream(o, oc, -1);
ost->stream_copy = 0;
ost->stream_copy = 1;
ost->attachment_filename = o->attachments[i];
ost->finished = 1;
ost->st->codec->extradata = attachment;
@ -2100,6 +2242,12 @@ loop_end:
exit_program(1);
}
if (!oc->nb_streams && !(oc->oformat->flags & AVFMT_NOSTREAMS)) {
av_dump_format(oc, nb_output_files - 1, oc->filename, 1);
av_log(NULL, AV_LOG_ERROR, "Output file #%d does not contain any stream\n", nb_output_files - 1);
exit_program(1);
}
/* check if all codec options have been used */
unused_opts = strip_specifiers(o->g->codec_opts);
for (i = of->ost_index; i < nb_output_streams; i++) {
@ -2142,6 +2290,17 @@ loop_end:
}
av_dict_free(&unused_opts);
/* set the encoding/decoding_needed flags */
for (i = of->ost_index; i < nb_output_streams; i++) {
OutputStream *ost = output_streams[i];
ost->encoding_needed = !ost->stream_copy;
if (ost->encoding_needed && ost->source_index >= 0) {
InputStream *ist = input_streams[ost->source_index];
ist->decoding_needed |= DECODING_FOR_OST;
}
}
/* check filename in case of an image number is expected */
if (oc->oformat->flags & AVFMT_NEEDNUMBER) {
if (!av_filename_number_test(oc->filename)) {
@ -2231,6 +2390,72 @@ loop_end:
}
}
/* process manually set programs */
for (i = 0; i < o->nb_program; i++) {
const char *p = o->program[i].u.str;
int progid = i+1;
AVProgram *program;
while(*p) {
const char *p2 = av_get_token(&p, ":");
const char *to_dealloc = p2;
char *key;
if (!p2)
break;
if(*p) p++;
key = av_get_token(&p2, "=");
if (!key || !*p2) {
av_freep(&to_dealloc);
av_freep(&key);
break;
}
p2++;
if (!strcmp(key, "program_num"))
progid = strtol(p2, NULL, 0);
av_freep(&to_dealloc);
av_freep(&key);
}
program = av_new_program(oc, progid);
p = o->program[i].u.str;
while(*p) {
const char *p2 = av_get_token(&p, ":");
const char *to_dealloc = p2;
char *key;
if (!p2)
break;
if(*p) p++;
key = av_get_token(&p2, "=");
if (!key) {
av_log(NULL, AV_LOG_FATAL,
"No '=' character in program string %s.\n",
p2);
exit_program(1);
}
if (!*p2)
exit_program(1);
p2++;
if (!strcmp(key, "title")) {
av_dict_set(&program->metadata, "title", p2, 0);
} else if (!strcmp(key, "program_num")) {
} else if (!strcmp(key, "st")) {
int st_num = strtol(p2, NULL, 0);
av_program_add_stream_index(oc, progid, st_num);
} else {
av_log(NULL, AV_LOG_FATAL, "Unknown program key %s.\n", key);
exit_program(1);
}
av_freep(&to_dealloc);
av_freep(&key);
}
}
/* process manually set metadata */
for (i = 0; i < o->nb_metadata; i++) {
AVDictionary **m;
@ -2271,6 +2496,13 @@ loop_end:
}
m = &oc->chapters[index]->metadata;
break;
case 'p':
if (index < 0 || index >= oc->nb_programs) {
av_log(NULL, AV_LOG_FATAL, "Invalid program index %d in metadata specifier.\n", index);
exit_program(1);
}
m = &oc->programs[index]->metadata;
break;
default:
av_log(NULL, AV_LOG_FATAL, "Invalid metadata specifier %s.\n", o->metadata[i].specifier);
exit_program(1);
@ -2438,6 +2670,11 @@ static int opt_vstats(void *optctx, const char *opt, const char *arg)
time_t today2 = time(NULL);
struct tm *today = localtime(&today2);
if (!today) { // maybe tomorrow
av_log(NULL, AV_LOG_FATAL, "Unable to get current time: %s\n", strerror(errno));
exit_program(1);
}
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);
@ -2711,6 +2948,7 @@ void show_help_default(const char *opt, const char *arg)
" -h -- print basic options\n"
" -h long -- print more options\n"
" -h full -- print all options (including all format and codec specific options, very long)\n"
" -h type=name -- print all options for the named decoder/encoder/demuxer/muxer/filter\n"
" See man %s for detailed description of the options.\n"
"\n", program_name);
@ -2838,6 +3076,13 @@ int ffmpeg_parse_options(int argc, char **argv)
goto fail;
}
/* create the complex filtergraphs */
ret = init_complex_filters();
if (ret < 0) {
av_log(NULL, AV_LOG_FATAL, "Error initializing complex filters.\n");
goto fail;
}
/* open output files */
ret = open_files(&octx.groups[GROUP_OUTFILE], "output", open_output_file);
if (ret < 0) {
@ -2845,6 +3090,13 @@ int ffmpeg_parse_options(int argc, char **argv)
goto fail;
}
/* configure the complex filtergraphs */
ret = configure_complex_filters();
if (ret < 0) {
av_log(NULL, AV_LOG_FATAL, "Error configuring complex filters.\n");
goto fail;
}
fail:
uninit_parse_context(&octx);
if (ret < 0) {
@ -2919,6 +3171,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" },
{ "sseof", HAS_ARG | OPT_TIME | OPT_OFFSET |
OPT_INPUT | OPT_OUTPUT, { .off = OFFSET(start_time_eof) },
"set the start time offset relative to EOF", "time_off" },
{ "seek_timestamp", HAS_ARG | OPT_INT | OPT_OFFSET |
OPT_INPUT, { .off = OFFSET(seek_timestamp) },
"enable/disable seeking by timestamp with -ss" },
@ -2935,6 +3190,8 @@ const OptionDef options[] = {
"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" },
{ "program", HAS_ARG | OPT_STRING | OPT_SPEC | OPT_OUTPUT, { .off = OFFSET(program) },
"add program with specified streams", "title=string:st=number..." },
{ "dframes", HAS_ARG | OPT_PERFILE | OPT_EXPERT |
OPT_OUTPUT, { .func_arg = opt_data_frames },
"set the number of data frames to output", "number" },
@ -2956,9 +3213,9 @@ const OptionDef options[] = {
OPT_INPUT, { .off = OFFSET(rate_emu) },
"read input at native frame rate", "" },
{ "target", HAS_ARG | OPT_PERFILE | OPT_OUTPUT, { .func_arg = opt_target },
"specify target file type (\"vcd\", \"svcd\", \"dvd\","
" \"dv\", \"dv50\", \"pal-vcd\", \"ntsc-svcd\", ...)", "type" },
{ "vsync", HAS_ARG | OPT_EXPERT, { opt_vsync },
"specify target file type (\"vcd\", \"svcd\", \"dvd\", \"dv\" or \"dv50\" "
"with optional prefixes \"pal-\", \"ntsc-\" or \"film-\")", "type" },
{ "vsync", HAS_ARG | OPT_EXPERT, { .func_arg = opt_vsync },
"video sync method", "" },
{ "frame_drop_threshold", HAS_ARG | OPT_FLOAT | OPT_EXPERT, { &frame_drop_threshold },
"frame drop threshold", "" },
@ -2984,6 +3241,8 @@ const OptionDef options[] = {
"timestamp error delta threshold", "threshold" },
{ "xerror", OPT_BOOL | OPT_EXPERT, { &exit_on_error },
"exit on error", "error" },
{ "abort_on", HAS_ARG | OPT_EXPERT, { .func_arg = opt_abort_on },
"abort on the specified condition flags", "flags" },
{ "copyinkf", OPT_BOOL | OPT_EXPERT | OPT_SPEC |
OPT_OUTPUT, { .off = OFFSET(copy_initial_nonkeyframes) },
"copy initial non-keyframes" },
@ -3022,6 +3281,8 @@ const OptionDef options[] = {
{ "dump_attachment", HAS_ARG | OPT_STRING | OPT_SPEC |
OPT_EXPERT | OPT_INPUT, { .off = OFFSET(dump_attachment) },
"extract an attachment into a file", "filename" },
{ "stream_loop", OPT_INT | HAS_ARG | OPT_EXPERT | OPT_INPUT |
OPT_OFFSET, { .off = OFFSET(loop) }, "set number of times input stream shall be looped", "loop count" },
{ "debug_ts", OPT_BOOL | OPT_EXPERT, { &debug_ts },
"print timestamp debugging info" },
{ "max_error_rate", HAS_ARG | OPT_FLOAT, { &max_error_rate },
@ -3078,9 +3339,9 @@ const OptionDef options[] = {
"this option is deprecated, use the yadif filter instead" },
{ "psnr", OPT_VIDEO | OPT_BOOL | OPT_EXPERT, { &do_psnr },
"calculate PSNR of compressed frames" },
{ "vstats", OPT_VIDEO | OPT_EXPERT , { &opt_vstats },
{ "vstats", OPT_VIDEO | OPT_EXPERT , { .func_arg = opt_vstats },
"dump video coding statistics to file" },
{ "vstats_file", OPT_VIDEO | HAS_ARG | OPT_EXPERT , { opt_vstats_file },
{ "vstats_file", OPT_VIDEO | HAS_ARG | OPT_EXPERT , { .func_arg = opt_vstats_file },
"dump video coding statistics to file", "file" },
{ "vf", OPT_VIDEO | HAS_ARG | OPT_PERFILE | OPT_OUTPUT, { .func_arg = opt_video_filters },
"set video filters", "filter_graph" },
@ -3119,13 +3380,20 @@ const OptionDef options[] = {
"use HW accelerated decoding", "hwaccel name" },
{ "hwaccel_device", OPT_VIDEO | OPT_STRING | HAS_ARG | OPT_EXPERT |
OPT_SPEC | OPT_INPUT, { .off = OFFSET(hwaccel_devices) },
"select a device for HW acceleration" "devicename" },
#if HAVE_VDPAU_X11
{ "vdpau_api_ver", HAS_ARG | OPT_INT | OPT_EXPERT, { &vdpau_api_ver }, "" },
"select a device for HW acceleration", "devicename" },
{ "hwaccel_output_format", OPT_VIDEO | OPT_STRING | HAS_ARG | OPT_EXPERT |
OPT_SPEC | OPT_INPUT, { .off = OFFSET(hwaccel_output_formats) },
"select output format used with HW accelerated decoding", "format" },
#if CONFIG_VDA || CONFIG_VIDEOTOOLBOX
{ "videotoolbox_pixfmt", HAS_ARG | OPT_STRING | OPT_EXPERT, { &videotoolbox_pixfmt}, "" },
#endif
{ "hwaccels", OPT_EXIT, { .func_arg = show_hwaccels },
"show available HW acceleration methods" },
{ "autorotate", HAS_ARG | OPT_BOOL | OPT_SPEC |
OPT_EXPERT | OPT_INPUT, { .off = OFFSET(autorotate) },
"automatically insert correct rotate filters" },
{ "hwaccel_lax_profile_check", OPT_BOOL | OPT_EXPERT, { &hwaccel_lax_profile_check},
"attempt to decode anyway if HW accelerated decoder's supported profiles do not exactly match the stream" },
/* audio options */
{ "aframes", OPT_AUDIO | HAS_ARG | OPT_PERFILE | OPT_OUTPUT, { .func_arg = opt_audio_frames },
@ -3185,7 +3453,7 @@ const OptionDef options[] = {
"set the initial demux-decode delay", "seconds" },
{ "override_ffserver", OPT_BOOL | OPT_EXPERT | OPT_OUTPUT, { &override_ffserver },
"override the options from ffserver", "" },
{ "sdp_file", HAS_ARG | OPT_EXPERT | OPT_OUTPUT, { opt_sdp_file },
{ "sdp_file", HAS_ARG | OPT_EXPERT | OPT_OUTPUT, { .func_arg = opt_sdp_file },
"specify a file in which to print sdp information", "file" },
{ "bsf", HAS_ARG | OPT_STRING | OPT_SPEC | OPT_EXPERT | OPT_OUTPUT, { .off = OFFSET(bitstream_filters) },
@ -3209,5 +3477,10 @@ const OptionDef options[] = {
{ "dn", OPT_BOOL | OPT_VIDEO | OPT_OFFSET | OPT_INPUT | OPT_OUTPUT, { .off = OFFSET(data_disable) },
"disable data" },
#if CONFIG_VAAPI
{ "vaapi_device", HAS_ARG | OPT_EXPERT, { .func_arg = opt_vaapi_device },
"set VAAPI hardware device (DRM path or X11 display name)", "device" },
#endif
{ NULL, },
};

268
ffmpeg_qsv.c Normal file
View File

@ -0,0 +1,268 @@
/*
* This file is part of FFmpeg.
*
* FFmpeg is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* FFmpeg is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include <mfx/mfxvideo.h>
#include <stdlib.h>
#include "libavutil/dict.h"
#include "libavutil/mem.h"
#include "libavutil/opt.h"
#include "libavcodec/qsv.h"
#include "ffmpeg.h"
typedef struct QSVContext {
OutputStream *ost;
mfxSession session;
mfxExtOpaqueSurfaceAlloc opaque_alloc;
AVBufferRef *opaque_surfaces_buf;
uint8_t *surface_used;
mfxFrameSurface1 **surface_ptrs;
int nb_surfaces;
mfxExtBuffer *ext_buffers[1];
} QSVContext;
static void buffer_release(void *opaque, uint8_t *data)
{
*(uint8_t*)opaque = 0;
}
static int qsv_get_buffer(AVCodecContext *s, AVFrame *frame, int flags)
{
InputStream *ist = s->opaque;
QSVContext *qsv = ist->hwaccel_ctx;
int i;
for (i = 0; i < qsv->nb_surfaces; i++) {
if (qsv->surface_used[i])
continue;
frame->buf[0] = av_buffer_create((uint8_t*)qsv->surface_ptrs[i], sizeof(*qsv->surface_ptrs[i]),
buffer_release, &qsv->surface_used[i], 0);
if (!frame->buf[0])
return AVERROR(ENOMEM);
frame->data[3] = (uint8_t*)qsv->surface_ptrs[i];
qsv->surface_used[i] = 1;
return 0;
}
return AVERROR(ENOMEM);
}
static int init_opaque_surf(QSVContext *qsv)
{
AVQSVContext *hwctx_enc = qsv->ost->enc_ctx->hwaccel_context;
mfxFrameSurface1 *surfaces;
int i;
qsv->nb_surfaces = hwctx_enc->nb_opaque_surfaces;
qsv->opaque_surfaces_buf = av_buffer_ref(hwctx_enc->opaque_surfaces);
qsv->surface_ptrs = av_mallocz_array(qsv->nb_surfaces, sizeof(*qsv->surface_ptrs));
qsv->surface_used = av_mallocz_array(qsv->nb_surfaces, sizeof(*qsv->surface_used));
if (!qsv->opaque_surfaces_buf || !qsv->surface_ptrs || !qsv->surface_used)
return AVERROR(ENOMEM);
surfaces = (mfxFrameSurface1*)qsv->opaque_surfaces_buf->data;
for (i = 0; i < qsv->nb_surfaces; i++)
qsv->surface_ptrs[i] = surfaces + i;
qsv->opaque_alloc.Out.Surfaces = qsv->surface_ptrs;
qsv->opaque_alloc.Out.NumSurface = qsv->nb_surfaces;
qsv->opaque_alloc.Out.Type = hwctx_enc->opaque_alloc_type;
qsv->opaque_alloc.Header.BufferId = MFX_EXTBUFF_OPAQUE_SURFACE_ALLOCATION;
qsv->opaque_alloc.Header.BufferSz = sizeof(qsv->opaque_alloc);
qsv->ext_buffers[0] = (mfxExtBuffer*)&qsv->opaque_alloc;
return 0;
}
static void qsv_uninit(AVCodecContext *s)
{
InputStream *ist = s->opaque;
QSVContext *qsv = ist->hwaccel_ctx;
av_freep(&qsv->ost->enc_ctx->hwaccel_context);
av_freep(&s->hwaccel_context);
av_buffer_unref(&qsv->opaque_surfaces_buf);
av_freep(&qsv->surface_used);
av_freep(&qsv->surface_ptrs);
av_freep(&qsv);
}
int qsv_init(AVCodecContext *s)
{
InputStream *ist = s->opaque;
QSVContext *qsv = ist->hwaccel_ctx;
AVQSVContext *hwctx_dec;
int ret;
if (!qsv) {
av_log(NULL, AV_LOG_ERROR, "QSV transcoding is not initialized. "
"-hwaccel qsv should only be used for one-to-one QSV transcoding "
"with no filters.\n");
return AVERROR_BUG;
}
ret = init_opaque_surf(qsv);
if (ret < 0)
return ret;
hwctx_dec = av_qsv_alloc_context();
if (!hwctx_dec)
return AVERROR(ENOMEM);
hwctx_dec->session = qsv->session;
hwctx_dec->iopattern = MFX_IOPATTERN_OUT_OPAQUE_MEMORY;
hwctx_dec->ext_buffers = qsv->ext_buffers;
hwctx_dec->nb_ext_buffers = FF_ARRAY_ELEMS(qsv->ext_buffers);
av_freep(&s->hwaccel_context);
s->hwaccel_context = hwctx_dec;
ist->hwaccel_get_buffer = qsv_get_buffer;
ist->hwaccel_uninit = qsv_uninit;
return 0;
}
static mfxIMPL choose_implementation(const InputStream *ist)
{
static const struct {
const char *name;
mfxIMPL impl;
} impl_map[] = {
{ "auto", MFX_IMPL_AUTO },
{ "sw", MFX_IMPL_SOFTWARE },
{ "hw", MFX_IMPL_HARDWARE },
{ "auto_any", MFX_IMPL_AUTO_ANY },
{ "hw_any", MFX_IMPL_HARDWARE_ANY },
{ "hw2", MFX_IMPL_HARDWARE2 },
{ "hw3", MFX_IMPL_HARDWARE3 },
{ "hw4", MFX_IMPL_HARDWARE4 },
};
mfxIMPL impl = MFX_IMPL_AUTO_ANY;
int i;
if (ist->hwaccel_device) {
for (i = 0; i < FF_ARRAY_ELEMS(impl_map); i++)
if (!strcmp(ist->hwaccel_device, impl_map[i].name)) {
impl = impl_map[i].impl;
break;
}
if (i == FF_ARRAY_ELEMS(impl_map))
impl = strtol(ist->hwaccel_device, NULL, 0);
}
return impl;
}
int qsv_transcode_init(OutputStream *ost)
{
InputStream *ist;
const enum AVPixelFormat *pix_fmt;
AVDictionaryEntry *e;
const AVOption *opt;
int flags = 0;
int err, i;
QSVContext *qsv = NULL;
AVQSVContext *hwctx = NULL;
mfxIMPL impl;
mfxVersion ver = { { 3, 1 } };
/* check if the encoder supports QSV */
if (!ost->enc->pix_fmts)
return 0;
for (pix_fmt = ost->enc->pix_fmts; *pix_fmt != AV_PIX_FMT_NONE; pix_fmt++)
if (*pix_fmt == AV_PIX_FMT_QSV)
break;
if (*pix_fmt == AV_PIX_FMT_NONE)
return 0;
if (strcmp(ost->avfilter, "null") || ost->source_index < 0)
return 0;
/* check if the decoder supports QSV and the output only goes to this stream */
ist = input_streams[ost->source_index];
if (ist->nb_filters || ist->hwaccel_id != HWACCEL_QSV ||
!ist->dec || !ist->dec->pix_fmts)
return 0;
for (pix_fmt = ist->dec->pix_fmts; *pix_fmt != AV_PIX_FMT_NONE; pix_fmt++)
if (*pix_fmt == AV_PIX_FMT_QSV)
break;
if (*pix_fmt == AV_PIX_FMT_NONE)
return 0;
for (i = 0; i < nb_output_streams; i++)
if (output_streams[i] != ost &&
output_streams[i]->source_index == ost->source_index)
return 0;
av_log(NULL, AV_LOG_VERBOSE, "Setting up QSV transcoding\n");
qsv = av_mallocz(sizeof(*qsv));
hwctx = av_qsv_alloc_context();
if (!qsv || !hwctx)
goto fail;
impl = choose_implementation(ist);
err = MFXInit(impl, &ver, &qsv->session);
if (err != MFX_ERR_NONE) {
av_log(NULL, AV_LOG_ERROR, "Error initializing an MFX session: %d\n", err);
goto fail;
}
e = av_dict_get(ost->encoder_opts, "flags", NULL, 0);
opt = av_opt_find(ost->enc_ctx, "flags", NULL, 0, 0);
if (e && opt)
av_opt_eval_flags(ost->enc_ctx, opt, e->value, &flags);
qsv->ost = ost;
hwctx->session = qsv->session;
hwctx->iopattern = MFX_IOPATTERN_IN_OPAQUE_MEMORY;
hwctx->opaque_alloc = 1;
hwctx->nb_opaque_surfaces = 16;
ost->hwaccel_ctx = qsv;
ost->enc_ctx->hwaccel_context = hwctx;
ost->enc_ctx->pix_fmt = AV_PIX_FMT_QSV;
ist->hwaccel_ctx = qsv;
ist->dec_ctx->pix_fmt = AV_PIX_FMT_QSV;
ist->resample_pix_fmt = AV_PIX_FMT_QSV;
return 0;
fail:
av_freep(&hwctx);
av_freep(&qsv);
return AVERROR_UNKNOWN;
}

538
ffmpeg_vaapi.c Normal file
View File

@ -0,0 +1,538 @@
/*
* This file is part of FFmpeg.
*
* FFmpeg is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* FFmpeg is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "config.h"
#include <fcntl.h>
#include <unistd.h>
#include <va/va.h>
#if HAVE_VAAPI_X11
# include <va/va_x11.h>
#endif
#if HAVE_VAAPI_DRM
# include <va/va_drm.h>
#endif
#include "libavutil/avassert.h"
#include "libavutil/avconfig.h"
#include "libavutil/buffer.h"
#include "libavutil/frame.h"
#include "libavutil/hwcontext.h"
#include "libavutil/hwcontext_vaapi.h"
#include "libavutil/imgutils.h"
#include "libavutil/opt.h"
#include "libavutil/pixfmt.h"
#include "libavcodec/vaapi.h"
#include "ffmpeg.h"
static AVClass vaapi_class = {
.class_name = "vaapi",
.item_name = av_default_item_name,
.version = LIBAVUTIL_VERSION_INT,
};
#define DEFAULT_SURFACES 20
typedef struct VAAPIDecoderContext {
const AVClass *class;
AVBufferRef *device_ref;
AVHWDeviceContext *device;
AVBufferRef *frames_ref;
AVHWFramesContext *frames;
VAProfile va_profile;
VAEntrypoint va_entrypoint;
VAConfigID va_config;
VAContextID va_context;
enum AVPixelFormat decode_format;
int decode_width;
int decode_height;
int decode_surfaces;
// The output need not have the same format, width and height as the
// decoded frames - the copy for non-direct-mapped access is actually
// a whole vpp instance which can do arbitrary scaling and format
// conversion.
enum AVPixelFormat output_format;
struct vaapi_context decoder_vaapi_context;
} VAAPIDecoderContext;
static int vaapi_get_buffer(AVCodecContext *avctx, AVFrame *frame, int flags)
{
InputStream *ist = avctx->opaque;
VAAPIDecoderContext *ctx = ist->hwaccel_ctx;
int err;
err = av_hwframe_get_buffer(ctx->frames_ref, frame, 0);
if (err < 0) {
av_log(ctx, AV_LOG_ERROR, "Failed to allocate decoder surface.\n");
} else {
av_log(ctx, AV_LOG_DEBUG, "Decoder given surface %#x.\n",
(unsigned int)(uintptr_t)frame->data[3]);
}
return err;
}
static int vaapi_retrieve_data(AVCodecContext *avctx, AVFrame *input)
{
InputStream *ist = avctx->opaque;
VAAPIDecoderContext *ctx = ist->hwaccel_ctx;
AVFrame *output = 0;
int err;
av_assert0(input->format == AV_PIX_FMT_VAAPI);
if (ctx->output_format == AV_PIX_FMT_VAAPI) {
// Nothing to do.
return 0;
}
av_log(ctx, AV_LOG_DEBUG, "Retrieve data from surface %#x.\n",
(unsigned int)(uintptr_t)input->data[3]);
output = av_frame_alloc();
if (!output)
return AVERROR(ENOMEM);
output->format = ctx->output_format;
err = av_hwframe_transfer_data(output, input, 0);
if (err < 0) {
av_log(ctx, AV_LOG_ERROR, "Failed to transfer data to "
"output frame: %d.\n", err);
goto fail;
}
err = av_frame_copy_props(output, input);
if (err < 0) {
av_frame_unref(output);
goto fail;
}
av_frame_unref(input);
av_frame_move_ref(input, output);
av_frame_free(&output);
return 0;
fail:
if (output)
av_frame_free(&output);
return err;
}
static const struct {
enum AVCodecID codec_id;
int codec_profile;
VAProfile va_profile;
} vaapi_profile_map[] = {
#define MAP(c, p, v) { AV_CODEC_ID_ ## c, FF_PROFILE_ ## p, VAProfile ## v }
MAP(MPEG2VIDEO, MPEG2_SIMPLE, MPEG2Simple ),
MAP(MPEG2VIDEO, MPEG2_MAIN, MPEG2Main ),
MAP(H263, UNKNOWN, H263Baseline),
MAP(MPEG4, MPEG4_SIMPLE, MPEG4Simple ),
MAP(MPEG4, MPEG4_ADVANCED_SIMPLE,
MPEG4AdvancedSimple),
MAP(MPEG4, MPEG4_MAIN, MPEG4Main ),
MAP(H264, H264_CONSTRAINED_BASELINE,
H264ConstrainedBaseline),
MAP(H264, H264_BASELINE, H264Baseline),
MAP(H264, H264_MAIN, H264Main ),
MAP(H264, H264_HIGH, H264High ),
#if VA_CHECK_VERSION(0, 37, 0)
MAP(HEVC, HEVC_MAIN, HEVCMain ),
#endif
MAP(WMV3, VC1_SIMPLE, VC1Simple ),
MAP(WMV3, VC1_MAIN, VC1Main ),
MAP(WMV3, VC1_COMPLEX, VC1Advanced ),
MAP(WMV3, VC1_ADVANCED, VC1Advanced ),
MAP(VC1, VC1_SIMPLE, VC1Simple ),
MAP(VC1, VC1_MAIN, VC1Main ),
MAP(VC1, VC1_COMPLEX, VC1Advanced ),
MAP(VC1, VC1_ADVANCED, VC1Advanced ),
#if VA_CHECK_VERSION(0, 35, 0)
MAP(VP8, UNKNOWN, VP8Version0_3 ),
#endif
#if VA_CHECK_VERSION(0, 37, 1)
MAP(VP9, VP9_0, VP9Profile0 ),
#endif
#undef MAP
};
static int vaapi_build_decoder_config(VAAPIDecoderContext *ctx,
AVCodecContext *avctx,
int fallback_allowed)
{
AVVAAPIDeviceContext *hwctx = ctx->device->hwctx;
AVVAAPIHWConfig *hwconfig = NULL;
AVHWFramesConstraints *constraints = NULL;
VAStatus vas;
int err, i, j;
int loglevel = fallback_allowed ? AV_LOG_VERBOSE : AV_LOG_ERROR;
const AVCodecDescriptor *codec_desc;
const AVPixFmtDescriptor *pix_desc;
enum AVPixelFormat pix_fmt;
VAProfile profile, *profile_list = NULL;
int profile_count, exact_match, alt_profile;
codec_desc = avcodec_descriptor_get(avctx->codec_id);
if (!codec_desc) {
err = AVERROR(EINVAL);
goto fail;
}
profile_count = vaMaxNumProfiles(hwctx->display);
profile_list = av_malloc(profile_count * sizeof(VAProfile));
if (!profile_list) {
err = AVERROR(ENOMEM);
goto fail;
}
vas = vaQueryConfigProfiles(hwctx->display,
profile_list, &profile_count);
if (vas != VA_STATUS_SUCCESS) {
av_log(ctx, loglevel, "Failed to query profiles: %d (%s).\n",
vas, vaErrorStr(vas));
err = AVERROR(EIO);
goto fail;
}
profile = VAProfileNone;
exact_match = 0;
for (i = 0; i < FF_ARRAY_ELEMS(vaapi_profile_map); i++) {
int profile_match = 0;
if (avctx->codec_id != vaapi_profile_map[i].codec_id)
continue;
if (avctx->profile == vaapi_profile_map[i].codec_profile)
profile_match = 1;
profile = vaapi_profile_map[i].va_profile;
for (j = 0; j < profile_count; j++) {
if (profile == profile_list[j]) {
exact_match = profile_match;
break;
}
}
if (j < profile_count) {
if (exact_match)
break;
alt_profile = vaapi_profile_map[i].codec_profile;
}
}
av_freep(&profile_list);
if (profile == VAProfileNone) {
av_log(ctx, loglevel, "No VAAPI support for codec %s.\n",
codec_desc->name);
err = AVERROR(ENOSYS);
goto fail;
}
if (!exact_match) {
if (fallback_allowed || !hwaccel_lax_profile_check) {
av_log(ctx, loglevel, "No VAAPI support for codec %s "
"profile %d.\n", codec_desc->name, avctx->profile);
if (!fallback_allowed) {
av_log(ctx, AV_LOG_WARNING, "If you want attempt decoding "
"anyway with a possibly-incompatible profile, add "
"the option -hwaccel_lax_profile_check.\n");
}
err = AVERROR(EINVAL);
goto fail;
} else {
av_log(ctx, AV_LOG_WARNING, "No VAAPI support for codec %s "
"profile %d: trying instead with profile %d.\n",
codec_desc->name, avctx->profile, alt_profile);
av_log(ctx, AV_LOG_WARNING, "This may fail or give "
"incorrect results, depending on your hardware.\n");
}
}
ctx->va_profile = profile;
ctx->va_entrypoint = VAEntrypointVLD;
vas = vaCreateConfig(hwctx->display, ctx->va_profile,
ctx->va_entrypoint, 0, 0, &ctx->va_config);
if (vas != VA_STATUS_SUCCESS) {
av_log(ctx, AV_LOG_ERROR, "Failed to create decode pipeline "
"configuration: %d (%s).\n", vas, vaErrorStr(vas));
err = AVERROR(EIO);
goto fail;
}
hwconfig = av_hwdevice_hwconfig_alloc(ctx->device_ref);
if (!hwconfig) {
err = AVERROR(ENOMEM);
goto fail;
}
hwconfig->config_id = ctx->va_config;
constraints = av_hwdevice_get_hwframe_constraints(ctx->device_ref,
hwconfig);
if (!constraints)
goto fail;
// Decide on the decoder target format.
// If the user specified something with -hwaccel_output_format then
// try to use that to minimise conversions later.
ctx->decode_format = AV_PIX_FMT_NONE;
if (ctx->output_format != AV_PIX_FMT_NONE &&
ctx->output_format != AV_PIX_FMT_VAAPI) {
for (i = 0; constraints->valid_sw_formats[i] != AV_PIX_FMT_NONE; i++) {
if (constraints->valid_sw_formats[i] == ctx->decode_format) {
ctx->decode_format = ctx->output_format;
av_log(ctx, AV_LOG_DEBUG, "Using decode format %s (output "
"format).\n", av_get_pix_fmt_name(ctx->decode_format));
break;
}
}
}
// Otherwise, we would like to try to choose something which matches the
// decoder output, but there isn't enough information available here to
// do so. Assume for now that we are always dealing with YUV 4:2:0, so
// pick a format which does that.
if (ctx->decode_format == AV_PIX_FMT_NONE) {
for (i = 0; constraints->valid_sw_formats[i] != AV_PIX_FMT_NONE; i++) {
pix_fmt = constraints->valid_sw_formats[i];
pix_desc = av_pix_fmt_desc_get(pix_fmt);
if (pix_desc->nb_components == 3 &&
pix_desc->log2_chroma_w == 1 &&
pix_desc->log2_chroma_h == 1) {
ctx->decode_format = pix_fmt;
av_log(ctx, AV_LOG_DEBUG, "Using decode format %s (format "
"matched).\n", av_get_pix_fmt_name(ctx->decode_format));
break;
}
}
}
// Otherwise pick the first in the list and hope for the best.
if (ctx->decode_format == AV_PIX_FMT_NONE) {
ctx->decode_format = constraints->valid_sw_formats[0];
av_log(ctx, AV_LOG_DEBUG, "Using decode format %s (first in list).\n",
av_get_pix_fmt_name(ctx->decode_format));
if (i > 1) {
// There was a choice, and we picked randomly. Warn the user
// that they might want to choose intelligently instead.
av_log(ctx, AV_LOG_WARNING, "Using randomly chosen decode "
"format %s.\n", av_get_pix_fmt_name(ctx->decode_format));
}
}
// Ensure the picture size is supported by the hardware.
ctx->decode_width = avctx->coded_width;
ctx->decode_height = avctx->coded_height;
if (ctx->decode_width < constraints->min_width ||
ctx->decode_height < constraints->min_height ||
ctx->decode_width > constraints->max_width ||
ctx->decode_height >constraints->max_height) {
av_log(ctx, AV_LOG_ERROR, "VAAPI hardware does not support image "
"size %dx%d (constraints: width %d-%d height %d-%d).\n",
ctx->decode_width, ctx->decode_height,
constraints->min_width, constraints->max_width,
constraints->min_height, constraints->max_height);
err = AVERROR(EINVAL);
goto fail;
}
av_hwframe_constraints_free(&constraints);
av_freep(&hwconfig);
// Decide how many reference frames we need. This might be doable more
// nicely based on the codec and input stream?
ctx->decode_surfaces = DEFAULT_SURFACES;
// For frame-threaded decoding, one additional surfaces is needed for
// each thread.
if (avctx->active_thread_type & FF_THREAD_FRAME)
ctx->decode_surfaces += avctx->thread_count;
return 0;
fail:
av_hwframe_constraints_free(&constraints);
av_freep(&hwconfig);
vaDestroyConfig(hwctx->display, ctx->va_config);
av_freep(&profile_list);
return err;
}
static void vaapi_decode_uninit(AVCodecContext *avctx)
{
InputStream *ist = avctx->opaque;
VAAPIDecoderContext *ctx = ist->hwaccel_ctx;
if (ctx) {
AVVAAPIDeviceContext *hwctx = ctx->device->hwctx;
if (ctx->va_context != VA_INVALID_ID) {
vaDestroyContext(hwctx->display, ctx->va_context);
ctx->va_context = VA_INVALID_ID;
}
if (ctx->va_config != VA_INVALID_ID) {
vaDestroyConfig(hwctx->display, ctx->va_config);
ctx->va_config = VA_INVALID_ID;
}
av_buffer_unref(&ctx->frames_ref);
av_buffer_unref(&ctx->device_ref);
av_free(ctx);
}
av_buffer_unref(&ist->hw_frames_ctx);
ist->hwaccel_ctx = 0;
ist->hwaccel_uninit = 0;
ist->hwaccel_get_buffer = 0;
ist->hwaccel_retrieve_data = 0;
}
int vaapi_decode_init(AVCodecContext *avctx)
{
InputStream *ist = avctx->opaque;
AVVAAPIDeviceContext *hwctx;
AVVAAPIFramesContext *avfc;
VAAPIDecoderContext *ctx;
VAStatus vas;
int err;
int loglevel = (ist->hwaccel_id != HWACCEL_VAAPI ? AV_LOG_VERBOSE
: AV_LOG_ERROR);
if (ist->hwaccel_ctx)
vaapi_decode_uninit(avctx);
// We have -hwaccel without -vaapi_device, so just initialise here with
// the device passed as -hwaccel_device (if -vaapi_device was passed, it
// will always have been called before now).
if (!hw_device_ctx) {
err = vaapi_device_init(ist->hwaccel_device);
if (err < 0)
return err;
}
ctx = av_mallocz(sizeof(*ctx));
if (!ctx)
return AVERROR(ENOMEM);
ctx->class = &vaapi_class;
ctx->device_ref = av_buffer_ref(hw_device_ctx);
ctx->device = (AVHWDeviceContext*)ctx->device_ref->data;
ctx->va_config = VA_INVALID_ID;
ctx->va_context = VA_INVALID_ID;
hwctx = ctx->device->hwctx;
ctx->output_format = ist->hwaccel_output_format;
err = vaapi_build_decoder_config(ctx, avctx,
ist->hwaccel_id != HWACCEL_VAAPI);
if (err < 0) {
av_log(ctx, loglevel, "No supported configuration for this codec.");
goto fail;
}
avctx->pix_fmt = ctx->output_format;
ctx->frames_ref = av_hwframe_ctx_alloc(ctx->device_ref);
if (!ctx->frames_ref) {
av_log(ctx, loglevel, "Failed to create VAAPI frame context.\n");
err = AVERROR(ENOMEM);
goto fail;
}
ctx->frames = (AVHWFramesContext*)ctx->frames_ref->data;
ctx->frames->format = AV_PIX_FMT_VAAPI;
ctx->frames->sw_format = ctx->decode_format;
ctx->frames->width = ctx->decode_width;
ctx->frames->height = ctx->decode_height;
ctx->frames->initial_pool_size = ctx->decode_surfaces;
err = av_hwframe_ctx_init(ctx->frames_ref);
if (err < 0) {
av_log(ctx, loglevel, "Failed to initialise VAAPI frame "
"context: %d\n", err);
goto fail;
}
avfc = ctx->frames->hwctx;
vas = vaCreateContext(hwctx->display, ctx->va_config,
ctx->decode_width, ctx->decode_height,
VA_PROGRESSIVE,
avfc->surface_ids, avfc->nb_surfaces,
&ctx->va_context);
if (vas != VA_STATUS_SUCCESS) {
av_log(ctx, AV_LOG_ERROR, "Failed to create decode pipeline "
"context: %d (%s).\n", vas, vaErrorStr(vas));
err = AVERROR(EINVAL);
goto fail;
}
av_log(ctx, AV_LOG_DEBUG, "VAAPI decoder (re)init complete.\n");
// We would like to set this on the AVCodecContext for use by whoever gets
// the frames from the decoder, but unfortunately the AVCodecContext we
// have here need not be the "real" one (H.264 makes many copies for
// threading purposes). To avoid the problem, we instead store it in the
// InputStream and propagate it from there.
ist->hw_frames_ctx = av_buffer_ref(ctx->frames_ref);
if (!ist->hw_frames_ctx) {
err = AVERROR(ENOMEM);
goto fail;
}
ist->hwaccel_ctx = ctx;
ist->hwaccel_uninit = vaapi_decode_uninit;
ist->hwaccel_get_buffer = vaapi_get_buffer;
ist->hwaccel_retrieve_data = vaapi_retrieve_data;
ctx->decoder_vaapi_context.display = hwctx->display;
ctx->decoder_vaapi_context.config_id = ctx->va_config;
ctx->decoder_vaapi_context.context_id = ctx->va_context;
avctx->hwaccel_context = &ctx->decoder_vaapi_context;
return 0;
fail:
vaapi_decode_uninit(avctx);
return err;
}
static AVClass *vaapi_log = &vaapi_class;
av_cold int vaapi_device_init(const char *device)
{
int err;
err = av_hwdevice_ctx_create(&hw_device_ctx, AV_HWDEVICE_TYPE_VAAPI,
device, NULL, 0);
if (err < 0) {
av_log(&vaapi_log, AV_LOG_ERROR, "Failed to create a VAAPI device\n");
return err;
}
return 0;
}

View File

@ -1,134 +0,0 @@
/*
* This file is part of FFmpeg.
*
* FFmpeg is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* FFmpeg is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "libavcodec/avcodec.h"
#include "libavcodec/vda.h"
#include "libavutil/imgutils.h"
#include "ffmpeg.h"
typedef struct VDAContext {
AVFrame *tmp_frame;
} VDAContext;
static int vda_retrieve_data(AVCodecContext *s, AVFrame *frame)
{
InputStream *ist = s->opaque;
VDAContext *vda = ist->hwaccel_ctx;
CVPixelBufferRef pixbuf = (CVPixelBufferRef)frame->data[3];
OSType pixel_format = CVPixelBufferGetPixelFormatType(pixbuf);
CVReturn err;
uint8_t *data[4] = { 0 };
int linesize[4] = { 0 };
int planes, ret, i;
av_frame_unref(vda->tmp_frame);
switch (pixel_format) {
case kCVPixelFormatType_420YpCbCr8Planar: vda->tmp_frame->format = AV_PIX_FMT_YUV420P; break;
case kCVPixelFormatType_422YpCbCr8: vda->tmp_frame->format = AV_PIX_FMT_UYVY422; break;
default:
av_log(NULL, AV_LOG_ERROR,
"Unsupported pixel format: %u\n", pixel_format);
return AVERROR(ENOSYS);
}
vda->tmp_frame->width = frame->width;
vda->tmp_frame->height = frame->height;
ret = av_frame_get_buffer(vda->tmp_frame, 32);
if (ret < 0)
return ret;
err = CVPixelBufferLockBaseAddress(pixbuf, kCVPixelBufferLock_ReadOnly);
if (err != kCVReturnSuccess) {
av_log(NULL, AV_LOG_ERROR, "Error locking the pixel buffer.\n");
return AVERROR_UNKNOWN;
}
if (CVPixelBufferIsPlanar(pixbuf)) {
planes = CVPixelBufferGetPlaneCount(pixbuf);
for (i = 0; i < planes; i++) {
data[i] = CVPixelBufferGetBaseAddressOfPlane(pixbuf, i);
linesize[i] = CVPixelBufferGetBytesPerRowOfPlane(pixbuf, i);
}
} else {
data[0] = CVPixelBufferGetBaseAddress(pixbuf);
linesize[0] = CVPixelBufferGetBytesPerRow(pixbuf);
}
av_image_copy(vda->tmp_frame->data, vda->tmp_frame->linesize,
(const uint8_t **)data, linesize, vda->tmp_frame->format,
frame->width, frame->height);
ret = av_frame_copy_props(vda->tmp_frame, frame);
if (ret < 0)
return ret;
av_frame_unref(frame);
av_frame_move_ref(frame, vda->tmp_frame);
return 0;
}
static void vda_uninit(AVCodecContext *s)
{
InputStream *ist = s->opaque;
VDAContext *vda = ist->hwaccel_ctx;
ist->hwaccel_uninit = NULL;
ist->hwaccel_retrieve_data = NULL;
av_frame_free(&vda->tmp_frame);
av_vda_default_free(s);
av_freep(&ist->hwaccel_ctx);
}
int vda_init(AVCodecContext *s)
{
InputStream *ist = s->opaque;
int loglevel = (ist->hwaccel_id == HWACCEL_AUTO) ? AV_LOG_VERBOSE : AV_LOG_ERROR;
VDAContext *vda;
int ret;
vda = av_mallocz(sizeof(*vda));
if (!vda)
return AVERROR(ENOMEM);
ist->hwaccel_ctx = vda;
ist->hwaccel_uninit = vda_uninit;
ist->hwaccel_retrieve_data = vda_retrieve_data;
vda->tmp_frame = av_frame_alloc();
if (!vda->tmp_frame) {
ret = AVERROR(ENOMEM);
goto fail;
}
ret = av_vda_default_init(s);
if (ret < 0) {
av_log(NULL, loglevel, "Error creating VDA decoder.\n");
goto fail;
}
return 0;
fail:
vda_uninit(s);
return ret;
}

View File

@ -18,49 +18,21 @@
#include <stdint.h>
#include <vdpau/vdpau.h>
#include <vdpau/vdpau_x11.h>
#include <X11/Xlib.h>
#include "ffmpeg.h"
#include "libavcodec/vdpau.h"
#include "libavutil/avassert.h"
#include "libavutil/buffer.h"
#include "libavutil/frame.h"
#include "libavutil/hwcontext.h"
#include "libavutil/hwcontext_vdpau.h"
#include "libavutil/pixfmt.h"
typedef struct VDPAUContext {
Display *dpy;
VdpDevice device;
VdpDecoder decoder;
VdpGetProcAddress *get_proc_address;
VdpGetErrorString *get_error_string;
VdpGetInformationString *get_information_string;
VdpDeviceDestroy *device_destroy;
#if 1 // for ffmpegs older vdpau API, not the oldest though
VdpDecoderCreate *decoder_create;
VdpDecoderDestroy *decoder_destroy;
VdpDecoderRender *decoder_render;
#endif
VdpVideoSurfaceCreate *video_surface_create;
VdpVideoSurfaceDestroy *video_surface_destroy;
VdpVideoSurfaceGetBitsYCbCr *video_surface_get_bits;
VdpVideoSurfaceGetParameters *video_surface_get_parameters;
VdpVideoSurfaceQueryGetPutBitsYCbCrCapabilities *video_surface_query;
AVBufferRef *hw_frames_ctx;
AVFrame *tmp_frame;
enum AVPixelFormat pix_fmt;
VdpYCbCrFormat vdpau_format;
} VDPAUContext;
int vdpau_api_ver = 2;
static void vdpau_uninit(AVCodecContext *s)
{
InputStream *ist = s->opaque;
@ -70,140 +42,54 @@ static void vdpau_uninit(AVCodecContext *s)
ist->hwaccel_get_buffer = NULL;
ist->hwaccel_retrieve_data = NULL;
if (ctx->decoder_destroy)
ctx->decoder_destroy(ctx->decoder);
if (ctx->device_destroy)
ctx->device_destroy(ctx->device);
if (ctx->dpy)
XCloseDisplay(ctx->dpy);
av_buffer_unref(&ctx->hw_frames_ctx);
av_frame_free(&ctx->tmp_frame);
av_freep(&ist->hwaccel_ctx);
av_freep(&s->hwaccel_context);
}
static void vdpau_release_buffer(void *opaque, uint8_t *data)
{
VdpVideoSurface surface = *(VdpVideoSurface*)data;
VDPAUContext *ctx = opaque;
ctx->video_surface_destroy(surface);
av_freep(&data);
}
static int vdpau_get_buffer(AVCodecContext *s, AVFrame *frame, int flags)
{
InputStream *ist = s->opaque;
VDPAUContext *ctx = ist->hwaccel_ctx;
VdpVideoSurface *surface;
VdpStatus err;
VdpChromaType chroma;
uint32_t width, height;
av_assert0(frame->format == AV_PIX_FMT_VDPAU);
if (av_vdpau_get_surface_parameters(s, &chroma, &width, &height))
return AVERROR(ENOSYS);
surface = av_malloc(sizeof(*surface));
if (!surface)
return AVERROR(ENOMEM);
frame->buf[0] = av_buffer_create((uint8_t*)surface, sizeof(*surface),
vdpau_release_buffer, ctx,
AV_BUFFER_FLAG_READONLY);
if (!frame->buf[0]) {
av_freep(&surface);
return AVERROR(ENOMEM);
}
// properly we should keep a pool of surfaces instead of creating
// them anew for each frame, but since we don't care about speed
// much in this code, we don't bother
err = ctx->video_surface_create(ctx->device, chroma, width, height,
surface);
if (err != VDP_STATUS_OK) {
av_log(NULL, AV_LOG_ERROR, "Error allocating a VDPAU video surface: %s\n",
ctx->get_error_string(err));
av_buffer_unref(&frame->buf[0]);
return AVERROR_UNKNOWN;
}
frame->data[3] = (uint8_t*)(uintptr_t)*surface;
return 0;
return av_hwframe_get_buffer(ctx->hw_frames_ctx, frame, 0);
}
static int vdpau_retrieve_data(AVCodecContext *s, AVFrame *frame)
{
VdpVideoSurface surface = (VdpVideoSurface)(uintptr_t)frame->data[3];
InputStream *ist = s->opaque;
VDPAUContext *ctx = ist->hwaccel_ctx;
VdpStatus err;
int ret, chroma_type;
int ret;
err = ctx->video_surface_get_parameters(surface, &chroma_type,
&ctx->tmp_frame->width,
&ctx->tmp_frame->height);
if (err != VDP_STATUS_OK) {
av_log(NULL, AV_LOG_ERROR, "Error getting surface parameters: %s\n",
ctx->get_error_string(err));
return AVERROR_UNKNOWN;
}
ctx->tmp_frame->format = ctx->pix_fmt;
ret = av_frame_get_buffer(ctx->tmp_frame, 32);
ret = av_hwframe_transfer_data(ctx->tmp_frame, frame, 0);
if (ret < 0)
return ret;
ctx->tmp_frame->width = frame->width;
ctx->tmp_frame->height = frame->height;
err = ctx->video_surface_get_bits(surface, ctx->vdpau_format,
(void * const *)ctx->tmp_frame->data,
ctx->tmp_frame->linesize);
if (err != VDP_STATUS_OK) {
av_log(NULL, AV_LOG_ERROR, "Error retrieving frame data from VDPAU: %s\n",
ctx->get_error_string(err));
ret = AVERROR_UNKNOWN;
goto fail;
}
if (ctx->vdpau_format == VDP_YCBCR_FORMAT_YV12)
FFSWAP(uint8_t*, ctx->tmp_frame->data[1], ctx->tmp_frame->data[2]);
ret = av_frame_copy_props(ctx->tmp_frame, frame);
if (ret < 0)
goto fail;
if (ret < 0) {
av_frame_unref(ctx->tmp_frame);
return ret;
}
av_frame_unref(frame);
av_frame_move_ref(frame, ctx->tmp_frame);
return 0;
fail:
av_frame_unref(ctx->tmp_frame);
return ret;
}
static const int vdpau_formats[][2] = {
{ VDP_YCBCR_FORMAT_YV12, AV_PIX_FMT_YUV420P },
{ VDP_YCBCR_FORMAT_NV12, AV_PIX_FMT_NV12 },
{ VDP_YCBCR_FORMAT_YUYV, AV_PIX_FMT_YUYV422 },
{ VDP_YCBCR_FORMAT_UYVY, AV_PIX_FMT_UYVY422 },
};
static int vdpau_alloc(AVCodecContext *s)
{
InputStream *ist = s->opaque;
int loglevel = (ist->hwaccel_id == HWACCEL_AUTO) ? AV_LOG_VERBOSE : AV_LOG_ERROR;
AVVDPAUContext *vdpau_ctx;
VDPAUContext *ctx;
const char *display, *vendor;
VdpStatus err;
int i;
int ret;
AVBufferRef *device_ref = NULL;
AVHWDeviceContext *device_ctx;
AVVDPAUDeviceContext *device_hwctx;
AVHWFramesContext *frames_ctx;
ctx = av_mallocz(sizeof(*ctx));
if (!ctx)
@ -218,144 +104,48 @@ static int vdpau_alloc(AVCodecContext *s)
if (!ctx->tmp_frame)
goto fail;
ctx->dpy = XOpenDisplay(ist->hwaccel_device);
if (!ctx->dpy) {
av_log(NULL, loglevel, "Cannot open the X11 display %s.\n",
XDisplayName(ist->hwaccel_device));
ret = av_hwdevice_ctx_create(&device_ref, AV_HWDEVICE_TYPE_VDPAU,
ist->hwaccel_device, NULL, 0);
if (ret < 0)
goto fail;
}
display = XDisplayString(ctx->dpy);
device_ctx = (AVHWDeviceContext*)device_ref->data;
device_hwctx = device_ctx->hwctx;
err = vdp_device_create_x11(ctx->dpy, XDefaultScreen(ctx->dpy), &ctx->device,
&ctx->get_proc_address);
if (err != VDP_STATUS_OK) {
av_log(NULL, loglevel, "VDPAU device creation on X11 display %s failed.\n",
display);
ctx->hw_frames_ctx = av_hwframe_ctx_alloc(device_ref);
if (!ctx->hw_frames_ctx)
goto fail;
}
av_buffer_unref(&device_ref);
#define GET_CALLBACK(id, result) \
do { \
void *tmp; \
err = ctx->get_proc_address(ctx->device, id, &tmp); \
if (err != VDP_STATUS_OK) { \
av_log(NULL, loglevel, "Error getting the " #id " callback.\n"); \
goto fail; \
} \
ctx->result = tmp; \
} while (0)
frames_ctx = (AVHWFramesContext*)ctx->hw_frames_ctx->data;
frames_ctx->format = AV_PIX_FMT_VDPAU;
frames_ctx->sw_format = s->sw_pix_fmt;
frames_ctx->width = s->coded_width;
frames_ctx->height = s->coded_height;
GET_CALLBACK(VDP_FUNC_ID_GET_ERROR_STRING, get_error_string);
GET_CALLBACK(VDP_FUNC_ID_GET_INFORMATION_STRING, get_information_string);
GET_CALLBACK(VDP_FUNC_ID_DEVICE_DESTROY, device_destroy);
if (vdpau_api_ver == 1) {
GET_CALLBACK(VDP_FUNC_ID_DECODER_CREATE, decoder_create);
GET_CALLBACK(VDP_FUNC_ID_DECODER_DESTROY, decoder_destroy);
GET_CALLBACK(VDP_FUNC_ID_DECODER_RENDER, decoder_render);
}
GET_CALLBACK(VDP_FUNC_ID_VIDEO_SURFACE_CREATE, video_surface_create);
GET_CALLBACK(VDP_FUNC_ID_VIDEO_SURFACE_DESTROY, video_surface_destroy);
GET_CALLBACK(VDP_FUNC_ID_VIDEO_SURFACE_GET_BITS_Y_CB_CR, video_surface_get_bits);
GET_CALLBACK(VDP_FUNC_ID_VIDEO_SURFACE_GET_PARAMETERS, video_surface_get_parameters);
GET_CALLBACK(VDP_FUNC_ID_VIDEO_SURFACE_QUERY_GET_PUT_BITS_Y_CB_CR_CAPABILITIES,
video_surface_query);
for (i = 0; i < FF_ARRAY_ELEMS(vdpau_formats); i++) {
VdpBool supported;
err = ctx->video_surface_query(ctx->device, VDP_CHROMA_TYPE_420,
vdpau_formats[i][0], &supported);
if (err != VDP_STATUS_OK) {
av_log(NULL, loglevel,
"Error querying VDPAU surface capabilities: %s\n",
ctx->get_error_string(err));
goto fail;
}
if (supported)
break;
}
if (i == FF_ARRAY_ELEMS(vdpau_formats)) {
av_log(NULL, loglevel,
"No supported VDPAU format for retrieving the data.\n");
return AVERROR(EINVAL);
}
ctx->vdpau_format = vdpau_formats[i][0];
ctx->pix_fmt = vdpau_formats[i][1];
if (vdpau_api_ver == 1) {
vdpau_ctx = av_vdpau_alloc_context();
if (!vdpau_ctx)
goto fail;
vdpau_ctx->render = ctx->decoder_render;
s->hwaccel_context = vdpau_ctx;
} else
if (av_vdpau_bind_context(s, ctx->device, ctx->get_proc_address, 0))
ret = av_hwframe_ctx_init(ctx->hw_frames_ctx);
if (ret < 0)
goto fail;
ctx->get_information_string(&vendor);
av_log(NULL, AV_LOG_VERBOSE, "Using VDPAU -- %s -- on X11 display %s, "
"to decode input stream #%d:%d.\n", vendor,
display, ist->file_index, ist->st->index);
if (av_vdpau_bind_context(s, device_hwctx->device, device_hwctx->get_proc_address, 0))
goto fail;
av_log(NULL, AV_LOG_VERBOSE, "Using VDPAU to decode input stream #%d:%d.\n",
ist->file_index, ist->st->index);
return 0;
fail:
av_log(NULL, loglevel, "VDPAU init failed for stream #%d:%d.\n",
ist->file_index, ist->st->index);
av_buffer_unref(&device_ref);
vdpau_uninit(s);
return AVERROR(EINVAL);
}
static int vdpau_old_init(AVCodecContext *s)
{
InputStream *ist = s->opaque;
int loglevel = (ist->hwaccel_id == HWACCEL_AUTO) ? AV_LOG_VERBOSE : AV_LOG_ERROR;
AVVDPAUContext *vdpau_ctx;
VDPAUContext *ctx;
VdpStatus err;
int profile, ret;
if (!ist->hwaccel_ctx) {
ret = vdpau_alloc(s);
if (ret < 0)
return ret;
}
ctx = ist->hwaccel_ctx;
vdpau_ctx = s->hwaccel_context;
ret = av_vdpau_get_profile(s, &profile);
if (ret < 0) {
av_log(NULL, loglevel, "No known VDPAU decoder profile for this stream.\n");
return AVERROR(EINVAL);
}
if (ctx->decoder)
ctx->decoder_destroy(ctx->decoder);
err = ctx->decoder_create(ctx->device, profile,
s->coded_width, s->coded_height,
16, &ctx->decoder);
if (err != VDP_STATUS_OK) {
av_log(NULL, loglevel, "Error creating the VDPAU decoder: %s\n",
ctx->get_error_string(err));
return AVERROR_UNKNOWN;
}
vdpau_ctx->decoder = ctx->decoder;
ist->hwaccel_get_buffer = vdpau_get_buffer;
ist->hwaccel_retrieve_data = vdpau_retrieve_data;
return 0;
}
int vdpau_init(AVCodecContext *s)
{
InputStream *ist = s->opaque;
if (vdpau_api_ver == 1)
return vdpau_old_init(s);
if (!ist->hwaccel_ctx) {
int ret = vdpau_alloc(s);
if (ret < 0)

202
ffmpeg_videotoolbox.c Normal file
View File

@ -0,0 +1,202 @@
/*
* This file is part of FFmpeg.
*
* FFmpeg is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* FFmpeg is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "config.h"
#if HAVE_UTGETOSTYPEFROMSTRING
#include <CoreServices/CoreServices.h>
#endif
#include "libavcodec/avcodec.h"
#if CONFIG_VDA
# include "libavcodec/vda.h"
#endif
#if CONFIG_VIDEOTOOLBOX
# include "libavcodec/videotoolbox.h"
#endif
#include "libavutil/imgutils.h"
#include "ffmpeg.h"
typedef struct VTContext {
AVFrame *tmp_frame;
} VTContext;
char *videotoolbox_pixfmt;
static int videotoolbox_retrieve_data(AVCodecContext *s, AVFrame *frame)
{
InputStream *ist = s->opaque;
VTContext *vt = ist->hwaccel_ctx;
CVPixelBufferRef pixbuf = (CVPixelBufferRef)frame->data[3];
OSType pixel_format = CVPixelBufferGetPixelFormatType(pixbuf);
CVReturn err;
uint8_t *data[4] = { 0 };
int linesize[4] = { 0 };
int planes, ret, i;
char codec_str[32];
av_frame_unref(vt->tmp_frame);
switch (pixel_format) {
case kCVPixelFormatType_420YpCbCr8Planar: vt->tmp_frame->format = AV_PIX_FMT_YUV420P; break;
case kCVPixelFormatType_422YpCbCr8: vt->tmp_frame->format = AV_PIX_FMT_UYVY422; break;
case kCVPixelFormatType_32BGRA: vt->tmp_frame->format = AV_PIX_FMT_BGRA; break;
#ifdef kCFCoreFoundationVersionNumber10_7
case kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange: vt->tmp_frame->format = AV_PIX_FMT_NV12; break;
#endif
default:
av_get_codec_tag_string(codec_str, sizeof(codec_str), s->codec_tag);
av_log(NULL, AV_LOG_ERROR,
"%s: Unsupported pixel format: %s\n", codec_str, videotoolbox_pixfmt);
return AVERROR(ENOSYS);
}
vt->tmp_frame->width = frame->width;
vt->tmp_frame->height = frame->height;
ret = av_frame_get_buffer(vt->tmp_frame, 32);
if (ret < 0)
return ret;
err = CVPixelBufferLockBaseAddress(pixbuf, kCVPixelBufferLock_ReadOnly);
if (err != kCVReturnSuccess) {
av_log(NULL, AV_LOG_ERROR, "Error locking the pixel buffer.\n");
return AVERROR_UNKNOWN;
}
if (CVPixelBufferIsPlanar(pixbuf)) {
planes = CVPixelBufferGetPlaneCount(pixbuf);
for (i = 0; i < planes; i++) {
data[i] = CVPixelBufferGetBaseAddressOfPlane(pixbuf, i);
linesize[i] = CVPixelBufferGetBytesPerRowOfPlane(pixbuf, i);
}
} else {
data[0] = CVPixelBufferGetBaseAddress(pixbuf);
linesize[0] = CVPixelBufferGetBytesPerRow(pixbuf);
}
av_image_copy(vt->tmp_frame->data, vt->tmp_frame->linesize,
(const uint8_t **)data, linesize, vt->tmp_frame->format,
frame->width, frame->height);
ret = av_frame_copy_props(vt->tmp_frame, frame);
CVPixelBufferUnlockBaseAddress(pixbuf, kCVPixelBufferLock_ReadOnly);
if (ret < 0)
return ret;
av_frame_unref(frame);
av_frame_move_ref(frame, vt->tmp_frame);
return 0;
}
static void videotoolbox_uninit(AVCodecContext *s)
{
InputStream *ist = s->opaque;
VTContext *vt = ist->hwaccel_ctx;
ist->hwaccel_uninit = NULL;
ist->hwaccel_retrieve_data = NULL;
av_frame_free(&vt->tmp_frame);
if (ist->hwaccel_id == HWACCEL_VIDEOTOOLBOX) {
#if CONFIG_VIDEOTOOLBOX
av_videotoolbox_default_free(s);
#endif
} else {
#if CONFIG_VDA
av_vda_default_free(s);
#endif
}
av_freep(&ist->hwaccel_ctx);
}
int videotoolbox_init(AVCodecContext *s)
{
InputStream *ist = s->opaque;
int loglevel = (ist->hwaccel_id == HWACCEL_AUTO) ? AV_LOG_VERBOSE : AV_LOG_ERROR;
int ret = 0;
VTContext *vt;
vt = av_mallocz(sizeof(*vt));
if (!vt)
return AVERROR(ENOMEM);
ist->hwaccel_ctx = vt;
ist->hwaccel_uninit = videotoolbox_uninit;
ist->hwaccel_retrieve_data = videotoolbox_retrieve_data;
vt->tmp_frame = av_frame_alloc();
if (!vt->tmp_frame) {
ret = AVERROR(ENOMEM);
goto fail;
}
if (ist->hwaccel_id == HWACCEL_VIDEOTOOLBOX) {
#if CONFIG_VIDEOTOOLBOX
if (!videotoolbox_pixfmt) {
ret = av_videotoolbox_default_init(s);
} else {
AVVideotoolboxContext *vtctx = av_videotoolbox_alloc_context();
CFStringRef pixfmt_str = CFStringCreateWithCString(kCFAllocatorDefault,
videotoolbox_pixfmt,
kCFStringEncodingUTF8);
#if HAVE_UTGETOSTYPEFROMSTRING
vtctx->cv_pix_fmt_type = UTGetOSTypeFromString(pixfmt_str);
#else
av_log(s, loglevel, "UTGetOSTypeFromString() is not available "
"on this platform, %s pixel format can not be honored from "
"the command line\n", videotoolbox_pixfmt);
#endif
ret = av_videotoolbox_default_init2(s, vtctx);
CFRelease(pixfmt_str);
}
#endif
} else {
#if CONFIG_VDA
if (!videotoolbox_pixfmt) {
ret = av_vda_default_init(s);
} else {
AVVDAContext *vdactx = av_vda_alloc_context();
CFStringRef pixfmt_str = CFStringCreateWithCString(kCFAllocatorDefault,
videotoolbox_pixfmt,
kCFStringEncodingUTF8);
#if HAVE_UTGETOSTYPEFROMSTRING
vdactx->cv_pix_fmt_type = UTGetOSTypeFromString(pixfmt_str);
#else
av_log(s, loglevel, "UTGetOSTypeFromString() is not available "
"on this platform, %s pixel format can not be honored from "
"the command line\n", videotoolbox_pixfmt);
#endif
ret = av_vda_default_init2(s, vdactx);
CFRelease(pixfmt_str);
}
#endif
}
if (ret < 0) {
av_log(NULL, loglevel,
"Error creating %s decoder.\n", ist->hwaccel_id == HWACCEL_VIDEOTOOLBOX ? "Videotoolbox" : "VDA");
goto fail;
}
return 0;
fail:
videotoolbox_uninit(s);
return ret;
}

792
ffplay.c

File diff suppressed because it is too large Load Diff

648
ffprobe.c

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -42,8 +42,8 @@ static void report_config_error(const char *filename, int line_num,
int log_level, int *errors, const char *fmt,
...);
#define ERROR(...) report_config_error(config->filename, config->line_num,\
AV_LOG_ERROR, &config->errors, __VA_ARGS__)
#define ERROR(...) report_config_error(config->filename, config->line_num,\
AV_LOG_ERROR, &config->errors, __VA_ARGS__)
#define WARNING(...) report_config_error(config->filename, config->line_num,\
AV_LOG_WARNING, &config->warnings, __VA_ARGS__)
@ -116,7 +116,8 @@ void ffserver_parse_acl_row(FFServerStream *stream, FFServerStream* feed,
{
char arg[1024];
FFServerIPAddressACL acl;
int errors = 0;
FFServerIPAddressACL *nacl;
FFServerIPAddressACL **naclp;
ffserver_get_arg(arg, sizeof(arg), &p);
if (av_strcasecmp(arg, "allow") == 0)
@ -126,7 +127,7 @@ void ffserver_parse_acl_row(FFServerStream *stream, FFServerStream* feed,
else {
fprintf(stderr, "%s:%d: ACL action '%s' should be ALLOW or DENY.\n",
filename, line_num, arg);
errors++;
goto bail;
}
ffserver_get_arg(arg, sizeof(arg), &p);
@ -135,9 +136,10 @@ void ffserver_parse_acl_row(FFServerStream *stream, FFServerStream* feed,
fprintf(stderr,
"%s:%d: ACL refers to invalid host or IP address '%s'\n",
filename, line_num, arg);
errors++;
} else
acl.last = acl.first;
goto bail;
}
acl.last = acl.first;
ffserver_get_arg(arg, sizeof(arg), &p);
@ -146,37 +148,37 @@ void ffserver_parse_acl_row(FFServerStream *stream, FFServerStream* feed,
fprintf(stderr,
"%s:%d: ACL refers to invalid host or IP address '%s'\n",
filename, line_num, arg);
errors++;
goto bail;
}
}
if (!errors) {
FFServerIPAddressACL *nacl = av_mallocz(sizeof(*nacl));
FFServerIPAddressACL **naclp = 0;
nacl = av_mallocz(sizeof(*nacl));
naclp = 0;
acl.next = 0;
*nacl = acl;
acl.next = 0;
*nacl = acl;
if (stream)
naclp = &stream->acl;
else if (feed)
naclp = &feed->acl;
else if (ext_acl)
naclp = &ext_acl;
else {
fprintf(stderr, "%s:%d: ACL found not in <Stream> or <Feed>\n",
filename, line_num);
errors++;
}
if (stream)
naclp = &stream->acl;
else if (feed)
naclp = &feed->acl;
else if (ext_acl)
naclp = &ext_acl;
else
fprintf(stderr, "%s:%d: ACL found not in <Stream> or <Feed>\n",
filename, line_num);
if (naclp) {
while (*naclp)
naclp = &(*naclp)->next;
if (naclp) {
while (*naclp)
naclp = &(*naclp)->next;
*naclp = nacl;
} else
av_free(nacl);
bail:
return;
*naclp = nacl;
} else
av_free(nacl);
}
}
/* add a codec and set the default parameters */
@ -230,9 +232,9 @@ static void add_codec(FFServerStream *stream, AVCodecContext *av,
/* compute default parameters */
switch(av->codec_type) {
case AVMEDIA_TYPE_AUDIO:
if (!av_dict_get(recommended, "ab", NULL, 0)) {
if (!av_dict_get(recommended, "b", NULL, 0)) {
av->bit_rate = 64000;
av_dict_set_int(&recommended, "ab", av->bit_rate, 0);
av_dict_set_int(&recommended, "b", av->bit_rate, 0);
WARNING("Setting default value for audio bit rate = %d. "
"Use NoDefaults to disable it.\n",
av->bit_rate);
@ -458,7 +460,7 @@ static int ffserver_set_int_param(int *dest, const char *value, int factor,
if (tmp < min || tmp > max)
goto error;
if (factor) {
if (FFABS(tmp) > INT_MAX / FFABS(factor))
if (tmp == INT_MIN || FFABS(tmp) > INT_MAX / FFABS(factor))
goto error;
tmp *= factor;
}
@ -683,8 +685,8 @@ static int ffserver_parse_config_global(FFServerConfig *config, const char *cmd,
return 0;
}
static int ffserver_parse_config_feed(FFServerConfig *config, const char *cmd, const char **p,
FFServerStream **pfeed)
static int ffserver_parse_config_feed(FFServerConfig *config, const char *cmd,
const char **p, FFServerStream **pfeed)
{
FFServerStream *feed;
char arg[1024];
@ -791,7 +793,8 @@ static int ffserver_parse_config_feed(FFServerConfig *config, const char *cmd, c
return 0;
}
static int ffserver_parse_config_stream(FFServerConfig *config, const char *cmd, const char **p,
static int ffserver_parse_config_stream(FFServerConfig *config, const char *cmd,
const char **p,
FFServerStream **pstream)
{
char arg[1024], arg2[1024];
@ -923,7 +926,7 @@ static int ffserver_parse_config_stream(FFServerConfig *config, const char *cmd,
ffserver_get_arg(arg, sizeof(arg), p);
ffserver_set_float_param(&f, arg, 1000, -FLT_MAX, FLT_MAX, config,
"Invalid %s: '%s'\n", cmd, arg);
if (ffserver_save_avoption_int("ab", (int64_t)lrintf(f),
if (ffserver_save_avoption_int("b", (int64_t)lrintf(f),
AV_OPT_FLAG_AUDIO_PARAM, config) < 0)
goto nomem;
} else if (!av_strcasecmp(cmd, "AudioChannels")) {
@ -1135,6 +1138,8 @@ static int ffserver_parse_config_stream(FFServerConfig *config, const char *cmd,
av_dict_free(&config->audio_opts);
avcodec_free_context(&config->dummy_vctx);
avcodec_free_context(&config->dummy_actx);
config->no_video = 0;
config->no_audio = 0;
*pstream = NULL;
} else if (!av_strcasecmp(cmd, "File") ||
!av_strcasecmp(cmd, "ReadOnlyFile")) {

4
libavcodec/.gitignore vendored Normal file
View File

@ -0,0 +1,4 @@
/*_tablegen
/*_tables.c
/*_tables.h
/bsf_list.c

View File

@ -151,5 +151,5 @@ AVCodec ff_zero12v_decoder = {
.id = AV_CODEC_ID_012V,
.init = zero12v_decode_init,
.decode = zero12v_decode_frame,
.capabilities = CODEC_CAP_DR1,
.capabilities = AV_CODEC_CAP_DR1,
};

View File

@ -559,7 +559,7 @@ static inline void idct_put(FourXContext *f, int x, int y)
idct(block[i]);
}
if (!(f->avctx->flags & CODEC_FLAG_GRAY)) {
if (!(f->avctx->flags & AV_CODEC_FLAG_GRAY)) {
for (i = 4; i < 6; i++)
idct(block[i]);
}
@ -883,11 +883,11 @@ static int decode_frame(AVCodecContext *avctx, void *data,
}
cfrm = &f->cfrm[i];
if (data_size > UINT_MAX - cfrm->size - FF_INPUT_BUFFER_PADDING_SIZE)
if (data_size > UINT_MAX - cfrm->size - AV_INPUT_BUFFER_PADDING_SIZE)
return AVERROR_INVALIDDATA;
cfrm->data = av_fast_realloc(cfrm->data, &cfrm->allocated_size,
cfrm->size + data_size + FF_INPUT_BUFFER_PADDING_SIZE);
cfrm->size + data_size + AV_INPUT_BUFFER_PADDING_SIZE);
// explicit check needed as memcpy below might not catch a NULL
if (!cfrm->data) {
av_log(f->avctx, AV_LOG_ERROR, "realloc failure\n");
@ -1026,5 +1026,5 @@ AVCodec ff_fourxm_decoder = {
.init = decode_init,
.close = decode_end,
.decode = decode_frame,
.capabilities = CODEC_CAP_DR1,
.capabilities = AV_CODEC_CAP_DR1,
};

View File

@ -28,7 +28,6 @@
* Supports: PAL8 (RGB 8bpp, paletted)
* : BGR24 (RGB 24bpp) (can also output it as RGB32)
* : RGB32 (RGB 32bpp, 4th plane is alpha)
*
*/
#include <stdio.h>
@ -184,5 +183,5 @@ AVCodec ff_eightbps_decoder = {
.priv_data_size = sizeof(EightBpsContext),
.init = decode_init,
.decode = decode_frame,
.capabilities = CODEC_CAP_DR1,
.capabilities = AV_CODEC_CAP_DR1,
};

View File

@ -194,7 +194,7 @@ AVCodec ff_eightsvx_fib_decoder = {
.init = eightsvx_decode_init,
.decode = eightsvx_decode_frame,
.close = eightsvx_decode_close,
.capabilities = CODEC_CAP_DR1,
.capabilities = AV_CODEC_CAP_DR1,
.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_U8P,
AV_SAMPLE_FMT_NONE },
};
@ -209,7 +209,7 @@ AVCodec ff_eightsvx_exp_decoder = {
.init = eightsvx_decode_init,
.decode = eightsvx_decode_frame,
.close = eightsvx_decode_close,
.capabilities = CODEC_CAP_DR1,
.capabilities = AV_CODEC_CAP_DR1,
.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_U8P,
AV_SAMPLE_FMT_NONE },
};

View File

@ -3,16 +3,20 @@ include $(SUBDIR)../config.mak
NAME = avcodec
HEADERS = avcodec.h \
avdct.h \
avfft.h \
dv_profile.h \
d3d11va.h \
dirac.h \
dv_profile.h \
dxva2.h \
old_codec_ids.h \
jni.h \
mediacodec.h \
qsv.h \
vaapi.h \
vda.h \
vdpau.h \
version.h \
videotoolbox.h \
vorbis_parser.h \
xvmc.h \
@ -23,12 +27,19 @@ OBJS = allcodecs.o \
avpicture.o \
bitstream.o \
bitstream_filter.o \
bitstream_filters.o \
bsf.o \
codec_desc.o \
d3d11va.o \
dirac.o \
dv_profile.o \
imgconvert.o \
jni.o \
mathtables.o \
mediacodec.o \
options.o \
parser.o \
profiles.o \
qsv_api.o \
raw.o \
resample.o \
@ -56,6 +67,7 @@ FFT-OBJS-$(CONFIG_HARDCODED_TABLES) += cos_tables.o cos_fixed_tables.o
OBJS-$(CONFIG_FFT) += avfft.o fft_fixed.o fft_float.o \
fft_fixed_32.o fft_init_table.o \
$(FFT-OBJS-yes)
OBJS-$(CONFIG_FLACDSP) += flacdsp.o
OBJS-$(CONFIG_FMTCONVERT) += fmtconvert.o
OBJS-$(CONFIG_GOLOMB) += golomb.o
OBJS-$(CONFIG_H263DSP) += h263dsp.o
@ -71,14 +83,18 @@ 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_IVIDSP) += ivi_dsp.o
OBJS-$(CONFIG_JNI) += ffjni.o jni.o
OBJS-$(CONFIG_JPEGTABLES) += jpegtables.o
OBJS-$(CONFIG_LIBXVID) += libxvid_rc.o
OBJS-$(CONFIG_LLAUDDSP) += lossless_audiodsp.o
OBJS-$(CONFIG_LLVIDDSP) += lossless_videodsp.o
OBJS-$(CONFIG_LPC) += lpc.o
OBJS-$(CONFIG_LSP) += lsp.o
OBJS-$(CONFIG_LZF) += lzf.o
OBJS-$(CONFIG_MDCT) += mdct_fixed.o mdct_float.o mdct_fixed_32.o
OBJS-$(CONFIG_ME_CMP) += me_cmp.o
OBJS-$(CONFIG_MEDIACODEC) += mediacodecdec.o mediacodec_surface.o mediacodec_wrapper.o mediacodec_sw_buffer.o
OBJS-$(CONFIG_MPEG_ER) += mpeg_er.o
OBJS-$(CONFIG_MPEGAUDIO) += mpegaudio.o mpegaudiodata.o \
mpegaudiodecheader.o
@ -88,10 +104,11 @@ OBJS-$(CONFIG_MPEGAUDIODSP) += mpegaudiodsp.o \
mpegaudiodsp_float.o
OBJS-$(CONFIG_MPEGVIDEO) += mpegvideo.o mpegvideodsp.o rl.o \
mpegvideo_motion.o mpegutils.o \
mpegvideodata.o
mpegvideodata.o mpegpicture.o
OBJS-$(CONFIG_MPEGVIDEOENC) += mpegvideo_enc.o mpeg12data.o \
motion_est.o ratecontrol.o \
mpegvideoencdsp.o
OBJS-$(CONFIG_MSS34DSP) += mss34dsp.o
OBJS-$(CONFIG_NVENC) += nvenc.o
OBJS-$(CONFIG_PIXBLOCKDSP) += pixblockdsp.o
OBJS-$(CONFIG_QPELDSP) += qpeldsp.o
@ -101,24 +118,40 @@ 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)
OBJS-$(CONFIG_SHARED) += log2_tab.o
OBJS-$(CONFIG_SINEWIN) += sinewin.o
OBJS-$(CONFIG_RV34DSP) += rv34dsp.o
OBJS-$(CONFIG_SHARED) += log2_tab.o reverse.o
OBJS-$(CONFIG_SINEWIN) += sinewin.o sinewin_fixed.o
OBJS-$(CONFIG_SNAPPY) += snappy.o
OBJS-$(CONFIG_STARTCODE) += startcode.o
OBJS-$(CONFIG_TEXTUREDSP) += texturedsp.o
OBJS-$(CONFIG_TEXTUREDSPENC) += texturedspenc.o
OBJS-$(CONFIG_TPELDSP) += tpeldsp.o
OBJS-$(CONFIG_VAAPI_ENCODE) += vaapi_encode.o
OBJS-$(CONFIG_VC1DSP) += vc1dsp.o
OBJS-$(CONFIG_VIDEODSP) += videodsp.o
OBJS-$(CONFIG_VP3DSP) += vp3dsp.o
OBJS-$(CONFIG_VP56DSP) += vp56dsp.o
OBJS-$(CONFIG_VP8DSP) += vp8dsp.o
OBJS-$(CONFIG_WMA_FREQS) += wma_freqs.o
OBJS-$(CONFIG_WMV2DSP) += wmv2dsp.o
# decoders/encoders
OBJS-$(CONFIG_ZERO12V_DECODER) += 012v.o
OBJS-$(CONFIG_A64MULTI_ENCODER) += a64multienc.o elbg.o
OBJS-$(CONFIG_A64MULTI5_ENCODER) += a64multienc.o elbg.o
OBJS-$(CONFIG_AAC_DECODER) += aacdec.o aactab.o aacsbr.o aacps.o \
OBJS-$(CONFIG_AAC_DECODER) += aacdec.o aactab.o aacsbr.o aacps_float.o \
aacadtsdec.o mpeg4audio.o kbdwin.o \
sbrdsp.o aacpsdsp.o
OBJS-$(CONFIG_AAC_ENCODER) += aacenc.o aaccoder.o \
sbrdsp.o aacpsdsp_float.o cbrt_data.o
OBJS-$(CONFIG_AAC_FIXED_DECODER) += aacdec_fixed.o aactab.o aacsbr_fixed.o aacps_fixed.o \
aacadtsdec.o mpeg4audio.o kbdwin.o \
sbrdsp_fixed.o aacpsdsp_fixed.o cbrt_data_fixed.o
OBJS-$(CONFIG_AAC_ENCODER) += aacenc.o aaccoder.o aacenctab.o \
aacpsy.o aactab.o \
psymodel.o mpeg4audio.o kbdwin.o
aacenc_is.o \
aacenc_tns.o \
aacenc_ltp.o \
aacenc_pred.o \
psymodel.o mpeg4audio.o kbdwin.o cbrt_data.o
OBJS-$(CONFIG_AASC_DECODER) += aasc.o msrledec.o
OBJS-$(CONFIG_AC3_DECODER) += ac3dec_float.o ac3dec_data.o ac3.o kbdwin.o
OBJS-$(CONFIG_AC3_FIXED_DECODER) += ac3dec_fixed.o ac3dec_data.o ac3.o kbdwin.o
@ -126,7 +159,7 @@ OBJS-$(CONFIG_AC3_ENCODER) += ac3enc_float.o ac3enc.o ac3tab.o \
ac3.o kbdwin.o
OBJS-$(CONFIG_AC3_FIXED_ENCODER) += ac3enc_fixed.o ac3enc.o ac3tab.o ac3.o
OBJS-$(CONFIG_AIC_DECODER) += aic.o
OBJS-$(CONFIG_ALAC_DECODER) += alac.o alac_data.o
OBJS-$(CONFIG_ALAC_DECODER) += alac.o alac_data.o alacdsp.o
OBJS-$(CONFIG_ALAC_ENCODER) += alacenc.o alac_data.o
OBJS-$(CONFIG_ALIAS_PIX_DECODER) += aliaspixdec.o
OBJS-$(CONFIG_ALIAS_PIX_ENCODER) += aliaspixenc.o
@ -148,9 +181,9 @@ 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_DECODER) += assdec.o ass.o
OBJS-$(CONFIG_SSA_ENCODER) += assenc.o ass.o
OBJS-$(CONFIG_ASS_DECODER) += assdec.o ass.o ass_split.o
OBJS-$(CONFIG_ASS_DECODER) += assdec.o ass.o
OBJS-$(CONFIG_ASS_ENCODER) += assenc.o ass.o
OBJS-$(CONFIG_ASV1_DECODER) += asvdec.o asv.o mpeg12data.o
OBJS-$(CONFIG_ASV1_ENCODER) += asvenc.o asv.o mpeg12data.o
@ -187,43 +220,49 @@ OBJS-$(CONFIG_CAVS_DECODER) += cavs.o cavsdec.o cavsdsp.o \
OBJS-$(CONFIG_CCAPTION_DECODER) += ccaption_dec.o
OBJS-$(CONFIG_CDGRAPHICS_DECODER) += cdgraphics.o
OBJS-$(CONFIG_CDXL_DECODER) += cdxl.o
OBJS-$(CONFIG_CFHD_DECODER) += cfhd.o cfhddata.o
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 canopus.o
OBJS-$(CONFIG_COOK_DECODER) += cook.o
OBJS-$(CONFIG_COMFORTNOISE_DECODER) += cngdec.o celp_filters.o
OBJS-$(CONFIG_COMFORTNOISE_ENCODER) += cngenc.o
OBJS-$(CONFIG_COOK_DECODER) += cook.o
OBJS-$(CONFIG_CPIA_DECODER) += cpia.o
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 \
dca_xll.o synth_filter.o
OBJS-$(CONFIG_DCA_DECODER) += dcadec.o dca.o dcadata.o dcahuff.o \
dca_core.o dca_exss.o dca_xll.o dca_lbr.o \
dcadsp.o dcadct.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
OBJS-$(CONFIG_DDS_DECODER) += dds.o
OBJS-$(CONFIG_DIRAC_DECODER) += diracdec.o dirac.o diracdsp.o diractab.o \
dirac_arith.o mpeg12data.o dirac_dwt.o \
dirac_vlc.o
OBJS-$(CONFIG_DFA_DECODER) += dfa.o
OBJS-$(CONFIG_DNXHD_DECODER) += dnxhddec.o dnxhddata.o
OBJS-$(CONFIG_DNXHD_ENCODER) += dnxhdenc.o dnxhddata.o
OBJS-$(CONFIG_DPX_DECODER) += dpx.o
OBJS-$(CONFIG_DPX_ENCODER) += dpxenc.o
OBJS-$(CONFIG_DSD_LSBF_DECODER) += dsddec.o
OBJS-$(CONFIG_DSD_MSBF_DECODER) += dsddec.o
OBJS-$(CONFIG_DSD_LSBF_PLANAR_DECODER) += dsddec.o
OBJS-$(CONFIG_DSD_MSBF_PLANAR_DECODER) += dsddec.o
OBJS-$(CONFIG_DSD_LSBF_DECODER) += dsddec.o dsd.o
OBJS-$(CONFIG_DSD_MSBF_DECODER) += dsddec.o dsd.o
OBJS-$(CONFIG_DSD_LSBF_PLANAR_DECODER) += dsddec.o dsd.o
OBJS-$(CONFIG_DSD_MSBF_PLANAR_DECODER) += dsddec.o dsd.o
OBJS-$(CONFIG_DSICINAUDIO_DECODER) += dsicinaudio.o
OBJS-$(CONFIG_DSICINVIDEO_DECODER) += dsicinvideo.o
OBJS-$(CONFIG_DSS_SP_DECODER) += dss_sp.o
OBJS-$(CONFIG_DST_DECODER) += dstdec.o dsd.o
OBJS-$(CONFIG_DVBSUB_DECODER) += dvbsubdec.o
OBJS-$(CONFIG_DVBSUB_ENCODER) += dvbsub.o
OBJS-$(CONFIG_DVDSUB_DECODER) += dvdsubdec.o
OBJS-$(CONFIG_DVDSUB_ENCODER) += dvdsubenc.o
OBJS-$(CONFIG_DVAUDIO_DECODER) += dvaudiodec.o
OBJS-$(CONFIG_DVVIDEO_DECODER) += dvdec.o dv.o dvdata.o
OBJS-$(CONFIG_DVVIDEO_ENCODER) += dvenc.o dv.o dvdata.o
OBJS-$(CONFIG_DXA_DECODER) += dxa.o
OBJS-$(CONFIG_DXTORY_DECODER) += dxtory.o
OBJS-$(CONFIG_DXV_DECODER) += dxv.o
OBJS-$(CONFIG_EAC3_DECODER) += eac3_data.o
OBJS-$(CONFIG_EAC3_ENCODER) += eac3enc.o eac3_data.o
OBJS-$(CONFIG_EACMV_DECODER) += eacmv.o
@ -231,7 +270,7 @@ OBJS-$(CONFIG_EAMAD_DECODER) += eamad.o eaidct.o mpeg12.o \
mpeg12data.o
OBJS-$(CONFIG_EATGQ_DECODER) += eatgq.o eaidct.o
OBJS-$(CONFIG_EATGV_DECODER) += eatgv.o
OBJS-$(CONFIG_EATQI_DECODER) += eatqi.o eaidct.o
OBJS-$(CONFIG_EATQI_DECODER) += eatqi.o eaidct.o mpeg12.o mpeg12data.o mpegvideodata.o rl.o
OBJS-$(CONFIG_EIGHTBPS_DECODER) += 8bps.o
OBJS-$(CONFIG_EIGHTSVX_EXP_DECODER) += 8svx.o
OBJS-$(CONFIG_EIGHTSVX_FIB_DECODER) += 8svx.o
@ -243,8 +282,8 @@ OBJS-$(CONFIG_FFV1_DECODER) += ffv1dec.o ffv1.o
OBJS-$(CONFIG_FFV1_ENCODER) += ffv1enc.o ffv1.o
OBJS-$(CONFIG_FFWAVESYNTH_DECODER) += ffwavesynth.o
OBJS-$(CONFIG_FIC_DECODER) += fic.o
OBJS-$(CONFIG_FLAC_DECODER) += flacdec.o flacdata.o flac.o flacdsp.o
OBJS-$(CONFIG_FLAC_ENCODER) += flacenc.o flacdata.o flac.o flacdsp.o vorbis_data.o
OBJS-$(CONFIG_FLAC_DECODER) += flacdec.o flacdata.o flac.o
OBJS-$(CONFIG_FLAC_ENCODER) += flacenc.o flacdata.o flac.o vorbis_data.o
OBJS-$(CONFIG_FLASHSV_DECODER) += flashsv.o
OBJS-$(CONFIG_FLASHSV_ENCODER) += flashsvenc.o
OBJS-$(CONFIG_FLASHSV2_ENCODER) += flashsv2enc.o
@ -253,10 +292,11 @@ 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
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
OBJS-$(CONFIG_G2M_DECODER) += g2meet.o elsdec.o
OBJS-$(CONFIG_G723_1_DECODER) += g723_1dec.o g723_1.o \
acelp_vectors.o celp_filters.o celp_math.o
OBJS-$(CONFIG_G723_1_ENCODER) += g723_1enc.o g723_1.o \
acelp_vectors.o celp_filters.o celp_math.o
OBJS-$(CONFIG_G729_DECODER) += g729dec.o lsp.o celp_math.o acelp_filters.o acelp_pitch_delay.o acelp_vectors.o g729postfilter.o
OBJS-$(CONFIG_GIF_DECODER) += gifdec.o lzw.o
OBJS-$(CONFIG_GIF_ENCODER) += gif.o lzwenc.o
@ -266,20 +306,38 @@ OBJS-$(CONFIG_H261_DECODER) += h261dec.o h261data.o h261.o
OBJS-$(CONFIG_H261_ENCODER) += h261enc.o h261data.o h261.o
OBJS-$(CONFIG_H263_DECODER) += h263dec.o h263.o ituh263dec.o \
mpeg4video.o mpeg4videodec.o flvdec.o\
intelh263dec.o
intelh263dec.o h263data.o
OBJS-$(CONFIG_H263_ENCODER) += mpeg4videoenc.o mpeg4video.o \
h263.o ituh263enc.o flvenc.o
OBJS-$(CONFIG_H264_DECODER) += h264.o h264_cabac.o h264_cavlc.o \
h263.o ituh263enc.o flvenc.o h263data.o
OBJS-$(CONFIG_H264_DECODER) += h264dec.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
h264_refs.o h264_sei.o \
h264_slice.o h264data.o h264_parse.o \
h2645_parse.o
OBJS-$(CONFIG_H264_CUVID_DECODER) += cuvid.o
OBJS-$(CONFIG_H264_MEDIACODEC_DECODER) += mediacodecdec_h264.o
OBJS-$(CONFIG_H264_MMAL_DECODER) += mmaldec.o
OBJS-$(CONFIG_H264_NVENC_ENCODER) += nvenc_h264.o
OBJS-$(CONFIG_NVENC_ENCODER) += nvenc_h264.o
OBJS-$(CONFIG_NVENC_H264_ENCODER) += nvenc_h264.o
OBJS-$(CONFIG_H264_VDA_DECODER) += vda_h264_dec.o
OBJS-$(CONFIG_H264_QSV_DECODER) += qsvdec_h264.o
OBJS-$(CONFIG_H264_OMX_ENCODER) += omx.o
OBJS-$(CONFIG_H264_QSV_DECODER) += qsvdec_h2645.o
OBJS-$(CONFIG_H264_QSV_ENCODER) += qsvenc_h264.o
OBJS-$(CONFIG_H264_VAAPI_ENCODER) += vaapi_encode_h264.o vaapi_encode_h26x.o
OBJS-$(CONFIG_H264_VIDEOTOOLBOX_ENCODER) += videotoolboxenc.o
OBJS-$(CONFIG_HAP_DECODER) += hapdec.o hap.o
OBJS-$(CONFIG_HAP_ENCODER) += hapenc.o hap.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
hevcdsp.o hevc_filter.o h2645_parse.o hevc_data.o
OBJS-$(CONFIG_HEVC_CUVID_DECODER) += cuvid.o
OBJS-$(CONFIG_HEVC_NVENC_ENCODER) += nvenc_hevc.o
OBJS-$(CONFIG_NVENC_HEVC_ENCODER) += nvenc_hevc.o
OBJS-$(CONFIG_HEVC_QSV_DECODER) += qsvdec_h2645.o
OBJS-$(CONFIG_HEVC_QSV_ENCODER) += qsvenc_hevc.o hevc_ps_enc.o h2645_parse.o
OBJS-$(CONFIG_HEVC_VAAPI_ENCODER) += vaapi_encode_h265.o vaapi_encode_h26x.o
OBJS-$(CONFIG_HNM4_VIDEO_DECODER) += hnm4video.o
OBJS-$(CONFIG_HQ_HQA_DECODER) += hq_hqa.o hq_hqadata.o hq_hqadsp.o \
canopus.o
@ -288,13 +346,13 @@ OBJS-$(CONFIG_HUFFYUV_DECODER) += huffyuv.o huffyuvdec.o
OBJS-$(CONFIG_HUFFYUV_ENCODER) += huffyuv.o huffyuvenc.o
OBJS-$(CONFIG_IDCIN_DECODER) += idcinvideo.o
OBJS-$(CONFIG_IDF_DECODER) += bintext.o cga_data.o
OBJS-$(CONFIG_IFF_BYTERUN1_DECODER) += iff.o
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.o ivi_dsp.o
OBJS-$(CONFIG_INDEO5_DECODER) += indeo5.o ivi.o ivi_dsp.o
OBJS-$(CONFIG_INDEO4_DECODER) += indeo4.o ivi.o
OBJS-$(CONFIG_INDEO5_DECODER) += indeo5.o ivi.o
OBJS-$(CONFIG_INTERPLAY_ACM_DECODER) += interplayacm.o
OBJS-$(CONFIG_INTERPLAY_DPCM_DECODER) += dpcm.o
OBJS-$(CONFIG_INTERPLAY_VIDEO_DECODER) += interplayvideo.o
OBJS-$(CONFIG_JACOSUB_DECODER) += jacosubdec.o ass.o
@ -310,8 +368,10 @@ OBJS-$(CONFIG_KMVC_DECODER) += kmvc.o
OBJS-$(CONFIG_LAGARITH_DECODER) += lagarith.o lagarithrac.o
OBJS-$(CONFIG_LJPEG_ENCODER) += ljpegenc.o mjpegenc_common.o
OBJS-$(CONFIG_LOCO_DECODER) += loco.o
OBJS-$(CONFIG_M101_DECODER) += m101.o
OBJS-$(CONFIG_MACE3_DECODER) += mace.o
OBJS-$(CONFIG_MACE6_DECODER) += mace.o
OBJS-$(CONFIG_MAGICYUV_DECODER) += magicyuv.o
OBJS-$(CONFIG_MDEC_DECODER) += mdec.o mpeg12.o mpeg12data.o
OBJS-$(CONFIG_METASOUND_DECODER) += metasound.o metasound_data.o \
twinvq.o
@ -320,6 +380,7 @@ OBJS-$(CONFIG_MIMIC_DECODER) += mimic.o
OBJS-$(CONFIG_MJPEG_DECODER) += mjpegdec.o
OBJS-$(CONFIG_MJPEG_ENCODER) += mjpegenc.o mjpegenc_common.o
OBJS-$(CONFIG_MJPEGB_DECODER) += mjpegbdec.o
OBJS-$(CONFIG_MJPEG_VAAPI_ENCODER) += vaapi_encode_mjpeg.o
OBJS-$(CONFIG_MLP_DECODER) += mlpdec.o mlpdsp.o
OBJS-$(CONFIG_MMVIDEO_DECODER) += mmvideo.o
OBJS-$(CONFIG_MOTIONPIXELS_DECODER) += motionpixels.o
@ -344,23 +405,27 @@ OBJS-$(CONFIG_MPC8_DECODER) += mpc8.o mpc.o
OBJS-$(CONFIG_MPEGVIDEO_DECODER) += mpeg12dec.o mpeg12.o mpeg12data.o
OBJS-$(CONFIG_MPEG1VIDEO_DECODER) += mpeg12dec.o mpeg12.o mpeg12data.o
OBJS-$(CONFIG_MPEG1VIDEO_ENCODER) += mpeg12enc.o mpeg12.o
OBJS-$(CONFIG_MPEG2_MMAL_DECODER) += mmaldec.o
OBJS-$(CONFIG_MPEG2_QSV_DECODER) += qsvdec_mpeg2.o
OBJS-$(CONFIG_MPEG2_QSV_ENCODER) += qsvenc_mpeg2.o
OBJS-$(CONFIG_MPEG2VIDEO_DECODER) += mpeg12dec.o mpeg12.o mpeg12data.o
OBJS-$(CONFIG_MPEG2VIDEO_ENCODER) += mpeg12enc.o mpeg12.o
OBJS-$(CONFIG_MPEG4_DECODER) += xvididct.o
OBJS-$(CONFIG_MPEG4_OMX_ENCODER) += omx.o
OBJS-$(CONFIG_MPL2_DECODER) += mpl2dec.o ass.o
OBJS-$(CONFIG_MSA1_DECODER) += mss3.o
OBJS-$(CONFIG_MSMPEG4V1_DECODER) += msmpeg4dec.o msmpeg4.o msmpeg4data.o
OBJS-$(CONFIG_MSMPEG4V2_DECODER) += msmpeg4dec.o msmpeg4.o msmpeg4data.o
OBJS-$(CONFIG_MSMPEG4V2_ENCODER) += msmpeg4enc.o msmpeg4.o msmpeg4data.o
OBJS-$(CONFIG_MSMPEG4V3_DECODER) += msmpeg4dec.o msmpeg4.o msmpeg4data.o
OBJS-$(CONFIG_MSMPEG4V3_ENCODER) += msmpeg4enc.o msmpeg4.o msmpeg4data.o
OBJS-$(CONFIG_MSRLE_DECODER) += msrle.o msrledec.o
OBJS-$(CONFIG_MSA1_DECODER) += mss3.o mss34dsp.o
OBJS-$(CONFIG_MSS1_DECODER) += mss1.o mss12.o
OBJS-$(CONFIG_MSS2_DECODER) += mss2.o mss12.o mss2dsp.o
OBJS-$(CONFIG_MSS2_DECODER) += mss2.o mss12.o mss2dsp.o wmv2data.o
OBJS-$(CONFIG_MSVIDEO1_DECODER) += msvideo1.o
OBJS-$(CONFIG_MSVIDEO1_ENCODER) += msvideo1enc.o elbg.o
OBJS-$(CONFIG_MSZH_DECODER) += lcldec.o
OBJS-$(CONFIG_MTS2_DECODER) += mss4.o mss34dsp.o
OBJS-$(CONFIG_MTS2_DECODER) += mss4.o
OBJS-$(CONFIG_MVC1_DECODER) += mvcdec.o
OBJS-$(CONFIG_MVC2_DECODER) += mvcdec.o
OBJS-$(CONFIG_MXPEG_DECODER) += mxpegdec.o
@ -420,19 +485,23 @@ OBJS-$(CONFIG_ROQ_ENCODER) += roqvideoenc.o roqvideo.o elbg.o
OBJS-$(CONFIG_ROQ_DPCM_DECODER) += dpcm.o
OBJS-$(CONFIG_ROQ_DPCM_ENCODER) += roqaudioenc.o
OBJS-$(CONFIG_RPZA_DECODER) += rpza.o
OBJS-$(CONFIG_RSCC_DECODER) += rscc.o
OBJS-$(CONFIG_RV10_DECODER) += rv10.o
OBJS-$(CONFIG_RV10_ENCODER) += rv10enc.o
OBJS-$(CONFIG_RV20_DECODER) += rv10.o
OBJS-$(CONFIG_RV20_ENCODER) += rv20enc.o
OBJS-$(CONFIG_RV30_DECODER) += rv30.o rv34.o rv30dsp.o rv34dsp.o
OBJS-$(CONFIG_RV40_DECODER) += rv40.o rv34.o rv34dsp.o rv40dsp.o
OBJS-$(CONFIG_SAMI_DECODER) += samidec.o ass.o
OBJS-$(CONFIG_RV30_DECODER) += rv30.o rv34.o rv30dsp.o
OBJS-$(CONFIG_RV40_DECODER) += rv40.o rv34.o rv40dsp.o
OBJS-$(CONFIG_SAMI_DECODER) += samidec.o ass.o htmlsubtitles.o
OBJS-$(CONFIG_S302M_DECODER) += s302m.o
OBJS-$(CONFIG_S302M_ENCODER) += s302menc.o
OBJS-$(CONFIG_SANM_DECODER) += sanm.o
OBJS-$(CONFIG_SCREENPRESSO_DECODER) += screenpresso.o
OBJS-$(CONFIG_SDX2_DPCM_DECODER) += dpcm.o
OBJS-$(CONFIG_SGI_DECODER) += sgidec.o
OBJS-$(CONFIG_SGI_ENCODER) += sgienc.o rle.o
OBJS-$(CONFIG_SGIRLE_DECODER) += sgirledec.o
OBJS-$(CONFIG_SHEERVIDEO_DECODER) += sheervideo.o
OBJS-$(CONFIG_SHORTEN_DECODER) += shorten.o
OBJS-$(CONFIG_SIPR_DECODER) += sipr.o acelp_pitch_delay.o \
celp_math.o acelp_vectors.o \
@ -450,21 +519,23 @@ OBJS-$(CONFIG_SONIC_DECODER) += sonic.o
OBJS-$(CONFIG_SONIC_ENCODER) += sonic.o
OBJS-$(CONFIG_SONIC_LS_ENCODER) += sonic.o
OBJS-$(CONFIG_SP5X_DECODER) += sp5xdec.o
OBJS-$(CONFIG_SRT_DECODER) += srtdec.o ass.o
OBJS-$(CONFIG_SRT_DECODER) += srtdec.o ass.o htmlsubtitles.o
OBJS-$(CONFIG_SRT_ENCODER) += srtenc.o ass_split.o
OBJS-$(CONFIG_STL_DECODER) += textdec.o ass.o
OBJS-$(CONFIG_SUBRIP_DECODER) += srtdec.o ass.o
OBJS-$(CONFIG_SUBRIP_DECODER) += srtdec.o ass.o htmlsubtitles.o
OBJS-$(CONFIG_SUBRIP_ENCODER) += srtenc.o ass_split.o
OBJS-$(CONFIG_SUBVIEWER1_DECODER) += textdec.o ass.o
OBJS-$(CONFIG_SUBVIEWER_DECODER) += subviewerdec.o ass.o
OBJS-$(CONFIG_SUNRAST_DECODER) += sunrast.o
OBJS-$(CONFIG_SUNRAST_ENCODER) += sunrastenc.o
OBJS-$(CONFIG_SVQ1_DECODER) += svq1dec.o svq1.o svq13.o h263.o
OBJS-$(CONFIG_SVQ1_ENCODER) += svq1enc.o svq1.o \
OBJS-$(CONFIG_SVQ1_DECODER) += svq1dec.o svq1.o svq13.o h263data.o
OBJS-$(CONFIG_SVQ1_ENCODER) += svq1enc.o svq1.o h263data.o \
h263.o ituh263enc.o
OBJS-$(CONFIG_SVQ3_DECODER) += svq3.o svq13.o mpegutils.o
OBJS-$(CONFIG_SVQ3_DECODER) += svq3.o svq13.o mpegutils.o \
h264_parse.o h264data.o h264_ps.o h2645_parse.o
OBJS-$(CONFIG_TEXT_DECODER) += textdec.o ass.o
OBJS-$(CONFIG_TAK_DECODER) += takdec.o tak.o
OBJS-$(CONFIG_TEXT_ENCODER) += srtenc.o ass_split.o
OBJS-$(CONFIG_TAK_DECODER) += takdec.o tak.o takdsp.o
OBJS-$(CONFIG_TARGA_DECODER) += targa.o
OBJS-$(CONFIG_TARGA_ENCODER) += targaenc.o rle.o
OBJS-$(CONFIG_TARGA_Y216_DECODER) += targa_y216dec.o
@ -476,32 +547,36 @@ OBJS-$(CONFIG_TMV_DECODER) += tmv.o cga_data.o
OBJS-$(CONFIG_TRUEHD_DECODER) += mlpdec.o mlpdsp.o
OBJS-$(CONFIG_TRUEMOTION1_DECODER) += truemotion1.o
OBJS-$(CONFIG_TRUEMOTION2_DECODER) += truemotion2.o
OBJS-$(CONFIG_TRUEMOTION2RT_DECODER) += truemotion2rt.o
OBJS-$(CONFIG_TRUESPEECH_DECODER) += truespeech.o
OBJS-$(CONFIG_TSCC_DECODER) += tscc.o msrledec.o
OBJS-$(CONFIG_TSCC2_DECODER) += tscc2.o
OBJS-$(CONFIG_TTA_DECODER) += tta.o ttadata.o ttadsp.o
OBJS-$(CONFIG_TTA_ENCODER) += ttaenc.o ttadata.o
OBJS-$(CONFIG_TTA_ENCODER) += ttaenc.o ttaencdsp.o ttadata.o
OBJS-$(CONFIG_TWINVQ_DECODER) += twinvqdec.o twinvq.o
OBJS-$(CONFIG_TXD_DECODER) += txd.o s3tc.o
OBJS-$(CONFIG_TXD_DECODER) += txd.o
OBJS-$(CONFIG_ULTI_DECODER) += ulti.o
OBJS-$(CONFIG_UTVIDEO_DECODER) += utvideodec.o utvideo.o
OBJS-$(CONFIG_UTVIDEO_ENCODER) += utvideoenc.o utvideo.o
OBJS-$(CONFIG_V210_DECODER) += v210dec.o
OBJS-$(CONFIG_V210_ENCODER) += v210enc.o
OBJS-$(CONFIG_V210X_DECODER) += v210x.o
OBJS-$(CONFIG_V308_DECODER) += v308dec.o
OBJS-$(CONFIG_V308_ENCODER) += v308enc.o
OBJS-$(CONFIG_V408_DECODER) += v408dec.o
OBJS-$(CONFIG_V408_ENCODER) += v408enc.o
OBJS-$(CONFIG_V410_DECODER) += v410dec.o
OBJS-$(CONFIG_V410_ENCODER) += v410enc.o
OBJS-$(CONFIG_V210X_DECODER) += v210x.o
OBJS-$(CONFIG_VB_DECODER) += vb.o
OBJS-$(CONFIG_VBLE_DECODER) += vble.o
OBJS-$(CONFIG_VC1_DECODER) += vc1dec.o vc1_block.o vc1_loopfilter.o \
vc1_mc.o vc1_pred.o vc1.o vc1data.o \
vc1dsp.o \
msmpeg4dec.o msmpeg4.o msmpeg4data.o \
wmv2dsp.o
wmv2dsp.o wmv2data.o
OBJS-$(CONFIG_VC1_CUVID_DECODER) += cuvid.o
OBJS-$(CONFIG_VC1_MMAL_DECODER) += mmaldec.o
OBJS-$(CONFIG_VC1_QSV_DECODER) += qsvdec_vc1.o
OBJS-$(CONFIG_VC2_ENCODER) += vc2enc.o vc2enc_dwt.o diractab.o
OBJS-$(CONFIG_VCR1_DECODER) += vcr1.o
OBJS-$(CONFIG_VMDAUDIO_DECODER) += vmdaudio.o
OBJS-$(CONFIG_VMDVIDEO_DECODER) += vmdvideo.o
@ -511,20 +586,20 @@ OBJS-$(CONFIG_VORBIS_DECODER) += vorbisdec.o vorbisdsp.o vorbis.o \
OBJS-$(CONFIG_VORBIS_ENCODER) += vorbisenc.o vorbis.o \
vorbis_data.o
OBJS-$(CONFIG_VP3_DECODER) += vp3.o
OBJS-$(CONFIG_VP5_DECODER) += vp5.o vp56.o vp56data.o vp56dsp.o \
vp56rac.o
OBJS-$(CONFIG_VP6_DECODER) += vp6.o vp56.o vp56data.o vp56dsp.o \
OBJS-$(CONFIG_VP5_DECODER) += vp5.o vp56.o vp56data.o vp56rac.o
OBJS-$(CONFIG_VP6_DECODER) += vp6.o vp56.o vp56data.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_VP7_DECODER) += vp8.o vp56rac.o
OBJS-$(CONFIG_VP8_DECODER) += vp8.o vp56rac.o
OBJS-$(CONFIG_VP8_CUVID_DECODER) += cuvid.o
OBJS-$(CONFIG_VP9_DECODER) += vp9.o vp9dsp.o vp56rac.o vp9dsp_8bpp.o \
vp9dsp_10bpp.o vp9dsp_12bpp.o
OBJS-$(CONFIG_VP9_CUVID_DECODER) += cuvid.o
OBJS-$(CONFIG_VPLAYER_DECODER) += textdec.o ass.o
OBJS-$(CONFIG_VQA_DECODER) += vqavideo.o
OBJS-$(CONFIG_WAVPACK_DECODER) += wavpack.o
OBJS-$(CONFIG_WAVPACK_ENCODER) += wavpackenc.o
OBJS-$(CONFIG_WEBP_DECODER) += vp8.o vp8dsp.o vp56rac.o
OBJS-$(CONFIG_WEBP_DECODER) += webp.o exif.o tiff_common.o
OBJS-$(CONFIG_WEBP_DECODER) += webp.o
OBJS-$(CONFIG_WEBVTT_DECODER) += webvttdec.o ass.o
OBJS-$(CONFIG_WEBVTT_ENCODER) += webvttenc.o ass_split.o
OBJS-$(CONFIG_WMALOSSLESS_DECODER) += wmalosslessdec.o wma_common.o
@ -538,11 +613,12 @@ OBJS-$(CONFIG_WMAVOICE_DECODER) += wmavoice.o \
acelp_vectors.o acelp_filters.o
OBJS-$(CONFIG_WMV1_DECODER) += msmpeg4dec.o msmpeg4.o msmpeg4data.o
OBJS-$(CONFIG_WMV1_ENCODER) += msmpeg4enc.o
OBJS-$(CONFIG_WMV2_DECODER) += wmv2dec.o wmv2.o wmv2dsp.o \
OBJS-$(CONFIG_WMV2_DECODER) += wmv2dec.o wmv2.o wmv2data.o \
msmpeg4dec.o msmpeg4.o msmpeg4data.o
OBJS-$(CONFIG_WMV2_ENCODER) += wmv2enc.o wmv2.o wmv2dsp.o \
OBJS-$(CONFIG_WMV2_ENCODER) += wmv2enc.o wmv2.o wmv2data.o \
msmpeg4.o msmpeg4enc.o msmpeg4data.o
OBJS-$(CONFIG_WNV1_DECODER) += wnv1.o
OBJS-$(CONFIG_WRAPPED_AVFRAME_ENCODER) += wrapped_avframe.o
OBJS-$(CONFIG_WS_SND1_DECODER) += ws-snd1.o
OBJS-$(CONFIG_XAN_DPCM_DECODER) += dpcm.o
OBJS-$(CONFIG_XAN_WC3_DECODER) += xan.o
@ -553,12 +629,15 @@ OBJS-$(CONFIG_XBM_ENCODER) += xbmenc.o
OBJS-$(CONFIG_XFACE_DECODER) += xfacedec.o xface.o
OBJS-$(CONFIG_XFACE_ENCODER) += xfaceenc.o xface.o
OBJS-$(CONFIG_XL_DECODER) += xl.o
OBJS-$(CONFIG_XMA1_DECODER) += wmaprodec.o wma.o wma_common.o
OBJS-$(CONFIG_XMA2_DECODER) += wmaprodec.o wma.o wma_common.o
OBJS-$(CONFIG_XSUB_DECODER) += xsubdec.o
OBJS-$(CONFIG_XSUB_ENCODER) += xsubenc.o
OBJS-$(CONFIG_XWD_DECODER) += xwddec.o
OBJS-$(CONFIG_XWD_ENCODER) += xwdenc.o
OBJS-$(CONFIG_Y41P_DECODER) += y41pdec.o
OBJS-$(CONFIG_Y41P_ENCODER) += y41penc.o
OBJS-$(CONFIG_YLC_DECODER) += ylc.o
OBJS-$(CONFIG_YOP_DECODER) += yop.o
OBJS-$(CONFIG_YUV4_DECODER) += yuv4dec.o
OBJS-$(CONFIG_YUV4_ENCODER) += yuv4enc.o
@ -630,6 +709,7 @@ OBJS-$(CONFIG_ADPCM_4XM_DECODER) += adpcm.o adpcm_data.o
OBJS-$(CONFIG_ADPCM_ADX_DECODER) += adxdec.o adx.o
OBJS-$(CONFIG_ADPCM_ADX_ENCODER) += adxenc.o adx.o
OBJS-$(CONFIG_ADPCM_AFC_DECODER) += adpcm.o adpcm_data.o
OBJS-$(CONFIG_ADPCM_AICA_DECODER) += adpcm.o adpcm_data.o
OBJS-$(CONFIG_ADPCM_CT_DECODER) += adpcm.o adpcm_data.o
OBJS-$(CONFIG_ADPCM_DTK_DECODER) += adpcm.o adpcm_data.o
OBJS-$(CONFIG_ADPCM_EA_DECODER) += adpcm.o adpcm_data.o
@ -645,6 +725,7 @@ OBJS-$(CONFIG_ADPCM_G726_ENCODER) += g726.o
OBJS-$(CONFIG_ADPCM_G726LE_DECODER) += g726.o
OBJS-$(CONFIG_ADPCM_IMA_AMV_DECODER) += adpcm.o adpcm_data.o
OBJS-$(CONFIG_ADPCM_IMA_APC_DECODER) += adpcm.o adpcm_data.o
OBJS-$(CONFIG_ADPCM_IMA_DAT4_DECODER) += adpcm.o adpcm_data.o
OBJS-$(CONFIG_ADPCM_IMA_DK3_DECODER) += adpcm.o adpcm_data.o
OBJS-$(CONFIG_ADPCM_IMA_DK4_DECODER) += adpcm.o adpcm_data.o
OBJS-$(CONFIG_ADPCM_IMA_EA_EACS_DECODER) += adpcm.o adpcm_data.o
@ -660,6 +741,8 @@ OBJS-$(CONFIG_ADPCM_IMA_WAV_ENCODER) += adpcmenc.o adpcm_data.o
OBJS-$(CONFIG_ADPCM_IMA_WS_DECODER) += adpcm.o adpcm_data.o
OBJS-$(CONFIG_ADPCM_MS_DECODER) += adpcm.o adpcm_data.o
OBJS-$(CONFIG_ADPCM_MS_ENCODER) += adpcmenc.o adpcm_data.o
OBJS-$(CONFIG_ADPCM_MTAF_DECODER) += adpcm.o adpcm_data.o
OBJS-$(CONFIG_ADPCM_PSX_DECODER) += adpcm.o adpcm_data.o
OBJS-$(CONFIG_ADPCM_SBPRO_2_DECODER) += adpcm.o adpcm_data.o
OBJS-$(CONFIG_ADPCM_SBPRO_3_DECODER) += adpcm.o adpcm_data.o
OBJS-$(CONFIG_ADPCM_SBPRO_4_DECODER) += adpcm.o adpcm_data.o
@ -670,60 +753,66 @@ OBJS-$(CONFIG_ADPCM_VIMA_DECODER) += vima.o adpcm_data.o
OBJS-$(CONFIG_ADPCM_XA_DECODER) += adpcm.o adpcm_data.o
OBJS-$(CONFIG_ADPCM_YAMAHA_DECODER) += adpcm.o adpcm_data.o
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
OBJS-$(CONFIG_VDA) += vda.o videotoolbox.o
OBJS-$(CONFIG_VIDEOTOOLBOX) += videotoolbox.o
OBJS-$(CONFIG_VDPAU) += vdpau.o
OBJS-$(CONFIG_H263_VAAPI_HWACCEL) += vaapi_mpeg4.o
OBJS-$(CONFIG_H263_VDPAU_HWACCEL) += vdpau_mpeg4.o
OBJS-$(CONFIG_H263_VIDEOTOOLBOX_HWACCEL) += videotoolbox.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_H264_VIDEOTOOLBOX_HWACCEL) += videotoolbox.o
OBJS-$(CONFIG_HEVC_D3D11VA_HWACCEL) += dxva2_hevc.o
OBJS-$(CONFIG_HEVC_DXVA2_HWACCEL) += dxva2_hevc.o
OBJS-$(CONFIG_HEVC_VAAPI_HWACCEL) += vaapi_hevc.o
OBJS-$(CONFIG_HEVC_VDPAU_HWACCEL) += vdpau_hevc.o
OBJS-$(CONFIG_MPEG1_VDPAU_HWACCEL) += vdpau_mpeg12.o
OBJS-$(CONFIG_MPEG1_VIDEOTOOLBOX_HWACCEL) += videotoolbox.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_VIDEOTOOLBOX_HWACCEL) += videotoolbox.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_MPEG4_VIDEOTOOLBOX_HWACCEL) += videotoolbox.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
OBJS-$(CONFIG_VP9_D3D11VA_HWACCEL) += dxva2_vp9.o
OBJS-$(CONFIG_VP9_DXVA2_HWACCEL) += dxva2_vp9.o
OBJS-$(CONFIG_VP9_VAAPI_HWACCEL) += vaapi_vp9.o
# libavformat dependencies
OBJS-$(CONFIG_ISO_MEDIA) += mpeg4audio.o mpegaudiodata.o
OBJS-$(CONFIG_ADTS_MUXER) += mpeg4audio.o
OBJS-$(CONFIG_CAF_DEMUXER) += mpeg4audio.o mpegaudiodata.o \
ac3tab.o
OBJS-$(CONFIG_CAF_DEMUXER) += ac3tab.o
OBJS-$(CONFIG_DNXHD_DEMUXER) += dnxhddata.o
OBJS-$(CONFIG_FLAC_DEMUXER) += flac.o flacdata.o vorbis_data.o
OBJS-$(CONFIG_FLAC_MUXER) += flac.o flacdata.o vorbis_data.o
OBJS-$(CONFIG_FLV_DEMUXER) += mpeg4audio.o
OBJS-$(CONFIG_GXF_DEMUXER) += mpeg12data.o
OBJS-$(CONFIG_IFF_DEMUXER) += iff.o
OBJS-$(CONFIG_ISMV_MUXER) += mpeg4audio.o mpegaudiodata.o
OBJS-$(CONFIG_LATM_MUXER) += mpeg4audio.o
OBJS-$(CONFIG_MATROSKA_AUDIO_MUXER) += mpeg4audio.o vorbis_data.o \
flac.o flacdata.o
OBJS-$(CONFIG_MATROSKA_DEMUXER) += mpeg4audio.o mpegaudiodata.o
OBJS-$(CONFIG_MATROSKA_MUXER) += mpeg4audio.o mpegaudiodata.o \
flac.o flacdata.o vorbis_data.o
OBJS-$(CONFIG_MATROSKA_MUXER) += flac.o flacdata.o vorbis_data.o
OBJS-$(CONFIG_MOV_DEMUXER) += ac3tab.o
OBJS-$(CONFIG_MP2_MUXER) += mpegaudiodata.o mpegaudiodecheader.o
OBJS-$(CONFIG_MP3_MUXER) += mpegaudiodata.o mpegaudiodecheader.o
OBJS-$(CONFIG_MOV_DEMUXER) += mpeg4audio.o mpegaudiodata.o ac3tab.o
OBJS-$(CONFIG_MOV_MUXER) += mpeg4audio.o mpegaudiodata.o
OBJS-$(CONFIG_MPEGTS_MUXER) += mpeg4audio.o
OBJS-$(CONFIG_MPEGTS_DEMUXER) += mpeg4audio.o mpegaudiodata.o
OBJS-$(CONFIG_MXF_MUXER) += dnxhddata.o
OBJS-$(CONFIG_NUT_MUXER) += mpegaudiodata.o
OBJS-$(CONFIG_NUT_DEMUXER) += mpegaudiodata.o mpeg4audio.o
@ -739,15 +828,32 @@ OBJS-$(CONFIG_TAK_DEMUXER) += tak.o
OBJS-$(CONFIG_WEBM_MUXER) += mpeg4audio.o mpegaudiodata.o \
flac.o flacdata.o \
vorbis_data.o
OBJS-$(CONFIG_WTV_DEMUXER) += mpeg4audio.o mpegaudiodata.o
# libavfilter dependencies
OBJS-$(CONFIG_ELBG_FILTER) += elbg.o
# external codec libraries
OBJS-$(CONFIG_LIBAACPLUS_ENCODER) += libaacplus.o
OBJS-$(CONFIG_AAC_AT_DECODER) += audiotoolboxdec.o
OBJS-$(CONFIG_AC3_AT_DECODER) += audiotoolboxdec.o
OBJS-$(CONFIG_ADPCM_IMA_QT_AT_DECODER) += audiotoolboxdec.o
OBJS-$(CONFIG_ALAC_AT_DECODER) += audiotoolboxdec.o
OBJS-$(CONFIG_AMR_NB_AT_DECODER) += audiotoolboxdec.o
OBJS-$(CONFIG_EAC3_AT_DECODER) += audiotoolboxdec.o
OBJS-$(CONFIG_GSM_MS_AT_DECODER) += audiotoolboxdec.o
OBJS-$(CONFIG_ILBC_AT_DECODER) += audiotoolboxdec.o
OBJS-$(CONFIG_MP1_AT_DECODER) += audiotoolboxdec.o mpegaudiodata.o mpegaudiodecheader.o
OBJS-$(CONFIG_MP2_AT_DECODER) += audiotoolboxdec.o mpegaudiodata.o mpegaudiodecheader.o
OBJS-$(CONFIG_MP3_AT_DECODER) += audiotoolboxdec.o mpegaudiodata.o mpegaudiodecheader.o
OBJS-$(CONFIG_PCM_MULAW_AT_DECODER) += audiotoolboxdec.o
OBJS-$(CONFIG_PCM_ALAW_AT_DECODER) += audiotoolboxdec.o
OBJS-$(CONFIG_QDMC_AT_DECODER) += audiotoolboxdec.o
OBJS-$(CONFIG_QDM2_AT_DECODER) += audiotoolboxdec.o
OBJS-$(CONFIG_AAC_AT_ENCODER) += audiotoolboxenc.o
OBJS-$(CONFIG_ALAC_AT_ENCODER) += audiotoolboxenc.o
OBJS-$(CONFIG_ILBC_AT_ENCODER) += audiotoolboxenc.o
OBJS-$(CONFIG_PCM_ALAW_AT_ENCODER) += audiotoolboxenc.o
OBJS-$(CONFIG_PCM_MULAW_AT_ENCODER) += audiotoolboxenc.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
@ -757,11 +863,13 @@ OBJS-$(CONFIG_LIBGSM_MS_DECODER) += libgsmdec.o
OBJS-$(CONFIG_LIBGSM_MS_ENCODER) += libgsmenc.o
OBJS-$(CONFIG_LIBILBC_DECODER) += libilbc.o
OBJS-$(CONFIG_LIBILBC_ENCODER) += libilbc.o
OBJS-$(CONFIG_LIBMP3LAME_ENCODER) += libmp3lame.o mpegaudiodecheader.o
OBJS-$(CONFIG_LIBKVAZAAR_ENCODER) += libkvazaar.o
OBJS-$(CONFIG_LIBMP3LAME_ENCODER) += libmp3lame.o mpegaudiodata.o mpegaudiodecheader.o
OBJS-$(CONFIG_LIBOPENCORE_AMRNB_DECODER) += libopencore-amr.o
OBJS-$(CONFIG_LIBOPENCORE_AMRNB_ENCODER) += libopencore-amr.o
OBJS-$(CONFIG_LIBOPENCORE_AMRWB_DECODER) += libopencore-amr.o
OBJS-$(CONFIG_LIBOPENH264_ENCODER) += libopenh264enc.o
OBJS-$(CONFIG_LIBOPENH264_DECODER) += libopenh264dec.o libopenh264.o
OBJS-$(CONFIG_LIBOPENH264_ENCODER) += libopenh264enc.o libopenh264.o
OBJS-$(CONFIG_LIBOPENJPEG_DECODER) += libopenjpegdec.o
OBJS-$(CONFIG_LIBOPENJPEG_ENCODER) += libopenjpegenc.o
OBJS-$(CONFIG_LIBOPUS_DECODER) += libopusdec.o libopus.o \
@ -775,12 +883,8 @@ OBJS-$(CONFIG_LIBSCHROEDINGER_ENCODER) += libschroedingerenc.o \
OBJS-$(CONFIG_LIBSHINE_ENCODER) += libshine.o
OBJS-$(CONFIG_LIBSPEEX_DECODER) += libspeexdec.o
OBJS-$(CONFIG_LIBSPEEX_ENCODER) += libspeexenc.o
OBJS-$(CONFIG_LIBSTAGEFRIGHT_H264_DECODER)+= libstagefright.o
OBJS-$(CONFIG_LIBTHEORA_ENCODER) += libtheoraenc.o
OBJS-$(CONFIG_LIBTWOLAME_ENCODER) += libtwolame.o
OBJS-$(CONFIG_LIBUTVIDEO_DECODER) += libutvideodec.o
OBJS-$(CONFIG_LIBUTVIDEO_ENCODER) += libutvideoenc.o
OBJS-$(CONFIG_LIBVO_AACENC_ENCODER) += libvo-aacenc.o mpeg4audio.o
OBJS-$(CONFIG_LIBVO_AMRWBENC_ENCODER) += libvo-amrwbenc.o
OBJS-$(CONFIG_LIBVORBIS_DECODER) += libvorbisdec.o
OBJS-$(CONFIG_LIBVORBIS_ENCODER) += libvorbisenc.o \
@ -792,6 +896,7 @@ OBJS-$(CONFIG_LIBVPX_VP9_ENCODER) += libvpxenc.o libvpx.o
OBJS-$(CONFIG_LIBWAVPACK_ENCODER) += libwavpackenc.o
OBJS-$(CONFIG_LIBWEBP_ENCODER) += libwebpenc_common.o libwebpenc.o
OBJS-$(CONFIG_LIBWEBP_ANIM_ENCODER) += libwebpenc_common.o libwebpenc_animencoder.o
OBJS-$(CONFIG_LIBX262_ENCODER) += libx264.o
OBJS-$(CONFIG_LIBX264_ENCODER) += libx264.o
OBJS-$(CONFIG_LIBX265_ENCODER) += libx265.o
OBJS-$(CONFIG_LIBXAVS_ENCODER) += libxavs.o
@ -799,34 +904,37 @@ OBJS-$(CONFIG_LIBXVID_ENCODER) += libxvid.o
OBJS-$(CONFIG_LIBZVBI_TELETEXT_DECODER) += libzvbi-teletextdec.o
# parsers
OBJS-$(CONFIG_AAC_LATM_PARSER) += latm_parser.o
OBJS-$(CONFIG_AAC_PARSER) += aac_parser.o aac_ac3_parser.o \
aacadtsdec.o mpeg4audio.o
OBJS-$(CONFIG_AAC_LATM_PARSER) += latm_parser.o
OBJS-$(CONFIG_AC3_PARSER) += ac3_parser.o ac3tab.o \
aac_ac3_parser.o
OBJS-$(CONFIG_ADX_PARSER) += adx_parser.o adx.o
OBJS-$(CONFIG_BMP_PARSER) += bmp_parser.o
OBJS-$(CONFIG_CAVSVIDEO_PARSER) += cavs_parser.o
OBJS-$(CONFIG_COOK_PARSER) += cook_parser.o
OBJS-$(CONFIG_DCA_PARSER) += dca_parser.o dca.o
OBJS-$(CONFIG_DCA_PARSER) += dca_parser.o dca_exss.o dca.o
OBJS-$(CONFIG_DIRAC_PARSER) += dirac_parser.o
OBJS-$(CONFIG_DNXHD_PARSER) += dnxhd_parser.o
OBJS-$(CONFIG_DPX_PARSER) += dpx_parser.o
OBJS-$(CONFIG_DVAUDIO_PARSER) += dvaudio_parser.o
OBJS-$(CONFIG_DVBSUB_PARSER) += dvbsub_parser.o
OBJS-$(CONFIG_DVD_NAV_PARSER) += dvd_nav_parser.o
OBJS-$(CONFIG_DVDSUB_PARSER) += dvdsub_parser.o
OBJS-$(CONFIG_FLAC_PARSER) += flac_parser.o flacdata.o flac.o \
vorbis_data.o
OBJS-$(CONFIG_G729_PARSER) += g729_parser.o
OBJS-$(CONFIG_GSM_PARSER) += gsm_parser.o
OBJS-$(CONFIG_H261_PARSER) += h261_parser.o
OBJS-$(CONFIG_H263_PARSER) += h263_parser.o
OBJS-$(CONFIG_H264_PARSER) += h264_parser.o
OBJS-$(CONFIG_HEVC_PARSER) += hevc_parser.o
OBJS-$(CONFIG_H264_PARSER) += h264_parser.o h264_parse.o h2645_parse.o \
h264_ps.o h264_sei.o h264data.o
OBJS-$(CONFIG_HEVC_PARSER) += hevc_parser.o h2645_parse.o hevc_ps.o hevc_data.o
OBJS-$(CONFIG_MJPEG_PARSER) += mjpeg_parser.o
OBJS-$(CONFIG_MLP_PARSER) += mlp_parser.o mlp.o
OBJS-$(CONFIG_MPEG4VIDEO_PARSER) += mpeg4video_parser.o h263.o \
mpeg4videodec.o mpeg4video.o \
ituh263dec.o h263dec.o
ituh263dec.o h263dec.o h263data.o
OBJS-$(CONFIG_PNG_PARSER) += png_parser.o
OBJS-$(CONFIG_MPEGAUDIO_PARSER) += mpegaudio_parser.o \
mpegaudiodecheader.o mpegaudiodata.o
@ -838,7 +946,8 @@ OBJS-$(CONFIG_PNM_PARSER) += pnm_parser.o pnm.o
OBJS-$(CONFIG_RV30_PARSER) += rv34_parser.o
OBJS-$(CONFIG_RV40_PARSER) += rv34_parser.o
OBJS-$(CONFIG_TAK_PARSER) += tak_parser.o tak.o
OBJS-$(CONFIG_VC1_PARSER) += vc1_parser.o
OBJS-$(CONFIG_VC1_PARSER) += vc1_parser.o vc1.o vc1data.o \
simple_idct.o wmv2data.o
OBJS-$(CONFIG_VP3_PARSER) += vp3_parser.o
OBJS-$(CONFIG_VP8_PARSER) += vp8_parser.o
OBJS-$(CONFIG_VP9_PARSER) += vp9_parser.o
@ -848,7 +957,9 @@ OBJS-$(CONFIG_AAC_ADTSTOASC_BSF) += aac_adtstoasc_bsf.o aacadtsdec.o \
mpeg4audio.o
OBJS-$(CONFIG_CHOMP_BSF) += chomp_bsf.o
OBJS-$(CONFIG_DUMP_EXTRADATA_BSF) += dump_extradata_bsf.o
OBJS-$(CONFIG_DCA_CORE_BSF) += dca_core_bsf.o
OBJS-$(CONFIG_H264_MP4TOANNEXB_BSF) += h264_mp4toannexb_bsf.o
OBJS-$(CONFIG_HEVC_MP4TOANNEXB_BSF) += hevc_mp4toannexb_bsf.o
OBJS-$(CONFIG_IMX_DUMP_HEADER_BSF) += imx_dump_header_bsf.o
OBJS-$(CONFIG_MJPEG2JPEG_BSF) += mjpeg2jpeg_bsf.o
OBJS-$(CONFIG_MJPEGA_DUMP_HEADER_BSF) += mjpega_dump_header_bsf.o
@ -859,6 +970,7 @@ OBJS-$(CONFIG_MP3_HEADER_DECOMPRESS_BSF) += mp3_header_decompress_bsf.o \
OBJS-$(CONFIG_NOISE_BSF) += noise_bsf.o
OBJS-$(CONFIG_REMOVE_EXTRADATA_BSF) += remove_extradata_bsf.o
OBJS-$(CONFIG_TEXT2MOVSUB_BSF) += movsub_bsf.o
OBJS-$(CONFIG_VP9_SUPERFRAME_BSF) += vp9_superframe_bsf.o
# thread libraries
OBJS-$(HAVE_LIBC_MSVCRT) += file_open.o
@ -871,39 +983,45 @@ SLIBOBJS-$(HAVE_GNU_WINDRES) += avcodecres.o
SKIPHEADERS += %_tablegen.h \
%_tables.h \
aac_tablegen_decl.h \
fft-internal.h \
libutvideo.h \
old_codec_ids.h \
tableprint.h \
tableprint_vlc.h \
aaccoder_twoloop.h \
aaccoder_trellis.h \
aacenc_quantization.h \
aacenc_quantization_misc.h \
$(ARCH)/vp56_arith.h \
SKIPHEADERS-$(CONFIG_D3D11VA) += d3d11va.h dxva2_internal.h
SKIPHEADERS-$(CONFIG_DXVA2) += dxva2.h dxva2_internal.h
SKIPHEADERS-$(CONFIG_JNI) += ffjni.h
SKIPHEADERS-$(CONFIG_LIBSCHROEDINGER) += libschroedinger.h
SKIPHEADERS-$(CONFIG_LIBUTVIDEO) += libutvideo.h
SKIPHEADERS-$(CONFIG_LIBVPX) += libvpx.h
SKIPHEADERS-$(CONFIG_LIBWEBP_ENCODER) += libwebpenc_common.h
SKIPHEADERS-$(CONFIG_MEDIACODEC) += mediacodecdec.h mediacodec_surface.h mediacodec_wrapper.h mediacodec_sw_buffer.h
SKIPHEADERS-$(CONFIG_NVENC) += nvenc.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_VAAPI) += vaapi_encode.h vaapi_internal.h
SKIPHEADERS-$(CONFIG_VDA) += vda.h vda_vt_internal.h
SKIPHEADERS-$(CONFIG_VDPAU) += vdpau.h vdpau_internal.h
SKIPHEADERS-$(CONFIG_VIDEOTOOLBOX) += videotoolbox.h vda_vt_internal.h
TESTPROGS = imgconvert \
jpeg2000dwt \
mathops \
options \
avfft \
TESTPROGS += api-flac
utils \
TESTPROGS-$(CONFIG_CABAC) += cabac
TESTPROGS-$(CONFIG_DCT) += avfft
TESTPROGS-$(CONFIG_FFT) += fft fft-fixed fft-fixed32
TESTPROGS-$(CONFIG_GOLOMB) += golomb
TESTPROGS-$(CONFIG_IDCTDSP) += dct
TESTPROGS-$(CONFIG_IIRFILTER) += iirfilter
TESTPROGS-$(HAVE_MMX) += motion
TESTPROGS-$(CONFIG_GOLOMB) += golomb
TESTPROGS-$(CONFIG_RANGECODER) += rangecoder
TESTPROGS-$(CONFIG_SNOW_ENCODER) += snowenc
@ -911,23 +1029,22 @@ TESTOBJS = dctref.o
TOOLS = fourcc2pixfmt
HOSTPROGS = aac_tablegen \
aacps_tablegen \
aacsbr_tablegen \
cabac_tablegen \
HOSTPROGS = aacps_tablegen \
aacps_fixed_tablegen \
cbrt_tablegen \
cbrt_fixed_tablegen \
cos_tablegen \
dsd_tablegen \
dv_tablegen \
motionpixels_tablegen \
mpegaudio_tablegen \
pcm_tablegen \
qdm2_tablegen \
sinewin_tablegen \
sinewin_fixed_tablegen \
CLEANFILES = *_tables.c *_tables.h *_tablegen$(HOSTEXESUF)
$(SUBDIR)dct-test$(EXESUF): $(SUBDIR)dctref.o $(SUBDIR)aandcttab.o
$(SUBDIR)tests/dct$(EXESUF): $(SUBDIR)dctref.o $(SUBDIR)aandcttab.o
$(SUBDIR)dv_tablegen$(HOSTEXESUF): $(SUBDIR)dvdata_host.o
TRIG_TABLES = cos cos_fixed sin
@ -942,8 +1059,9 @@ else
$(SUBDIR)%_tablegen$(HOSTEXESUF): HOSTCFLAGS += -DCONFIG_SMALL=0
endif
GEN_HEADERS = cabac_tables.h cbrt_tables.h aacps_tables.h aacsbr_tables.h aac_tables.h dsd_tables.h dv_tables.h \
sinewin_tables.h mpegaudio_tables.h motionpixels_tables.h \
GEN_HEADERS = cbrt_tables.h cbrt_fixed_tables.h aacps_tables.h aacps_fixed_tables.h \
dv_tables.h \
sinewin_tables.h sinewin_fixed_tables.h mpegaudio_tables.h motionpixels_tables.h \
pcm_tables.h qdm2_tables.h
GEN_HEADERS := $(addprefix $(SUBDIR), $(GEN_HEADERS))
@ -951,17 +1069,17 @@ $(GEN_HEADERS): $(SUBDIR)%_tables.h: $(SUBDIR)%_tablegen$(HOSTEXESUF)
$(M)./$< > $@
ifdef CONFIG_HARDCODED_TABLES
$(SUBDIR)aacdec.o: $(SUBDIR)cbrt_tables.h
$(SUBDIR)aacps.o: $(SUBDIR)aacps_tables.h
$(SUBDIR)aacsbr.o: $(SUBDIR)aacsbr_tables.h
$(SUBDIR)aactab.o: $(SUBDIR)aac_tables.h
$(SUBDIR)cabac.o: $(SUBDIR)cabac_tables.h
$(SUBDIR)dsddec.o: $(SUBDIR)dsd_tables.h
$(SUBDIR)cbrt_data.o: $(SUBDIR)cbrt_tables.h
$(SUBDIR)cbrt_data_fixed.o: $(SUBDIR)cbrt_fixed_tables.h
$(SUBDIR)aacps_float.o: $(SUBDIR)aacps_tables.h
$(SUBDIR)aacps_fixed.o: $(SUBDIR)aacps_fixed_tables.h
$(SUBDIR)aactab_fixed.o: $(SUBDIR)aac_fixed_tables.h
$(SUBDIR)dvenc.o: $(SUBDIR)dv_tables.h
$(SUBDIR)sinewin.o: $(SUBDIR)sinewin_tables.h
$(SUBDIR)motionpixels.o: $(SUBDIR)motionpixels_tables.h
$(SUBDIR)mpegaudiodec_fixed.o: $(SUBDIR)mpegaudio_tables.h
$(SUBDIR)mpegaudiodec_float.o: $(SUBDIR)mpegaudio_tables.h
$(SUBDIR)motionpixels.o: $(SUBDIR)motionpixels_tables.h
$(SUBDIR)pcm.o: $(SUBDIR)pcm_tables.h
$(SUBDIR)qdm2.o: $(SUBDIR)qdm2_tables.h
$(SUBDIR)sinewin.o: $(SUBDIR)sinewin_tables.h
$(SUBDIR)sinewin_fixed.o: $(SUBDIR)sinewin_fixed_tables.h
endif

View File

@ -66,7 +66,8 @@ static const int mc_colors[5]={0x0,0xb,0xc,0xf,0x1};
//static const int mc_colors[5]={0x0,0x8,0xa,0xf,0x7};
//static const int mc_colors[5]={0x0,0x9,0x8,0xa,0x3};
static void to_meta_with_crop(AVCodecContext *avctx, const AVFrame *p, int *dest)
static void to_meta_with_crop(AVCodecContext *avctx,
const AVFrame *p, int *dest)
{
int blockx, blocky, x, y;
int luma = 0;
@ -234,7 +235,7 @@ static av_cold int a64multi_encode_init(AVCodecContext *avctx)
}
/* set up extradata */
if (!(avctx->extradata = av_mallocz(8 * 4 + FF_INPUT_BUFFER_PADDING_SIZE))) {
if (!(avctx->extradata = av_mallocz(8 * 4 + AV_INPUT_BUFFER_PADDING_SIZE))) {
av_log(avctx, AV_LOG_ERROR, "Failed to allocate memory for extradata.\n");
return AVERROR(ENOMEM);
}
@ -327,7 +328,7 @@ static int a64multi_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
/* any frames to encode? */
if (c->mc_lifetime) {
int alloc_size = charset_size + c->mc_lifetime*(screen_size + colram_size);
if ((ret = ff_alloc_packet2(avctx, pkt, alloc_size)) < 0)
if ((ret = ff_alloc_packet2(avctx, pkt, alloc_size, 0)) < 0)
return ret;
buf = pkt->data;
@ -405,7 +406,7 @@ AVCodec ff_a64multi_encoder = {
.encode2 = a64multi_encode_frame,
.close = a64multi_close_encoder,
.pix_fmts = (const enum AVPixelFormat[]) {AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE},
.capabilities = CODEC_CAP_DELAY,
.capabilities = AV_CODEC_CAP_DELAY,
};
#endif
#if CONFIG_A64MULTI5_ENCODER
@ -419,6 +420,6 @@ AVCodec ff_a64multi5_encoder = {
.encode2 = a64multi_encode_frame,
.close = a64multi_close_encoder,
.pix_fmts = (const enum AVPixelFormat[]) {AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE},
.capabilities = CODEC_CAP_DELAY,
.capabilities = AV_CODEC_CAP_DELAY,
};
#endif

View File

@ -30,9 +30,14 @@
#ifndef AVCODEC_AAC_H
#define AVCODEC_AAC_H
#include "aac_defines.h"
#include "libavutil/float_dsp.h"
#include "libavutil/fixed_dsp.h"
#include "avcodec.h"
#if !USE_FIXED
#include "imdct15.h"
#endif
#include "fft.h"
#include "mpeg4audio.h"
#include "sbr.h"
@ -45,6 +50,8 @@
#define TNS_MAX_ORDER 20
#define MAX_LTP_LONG_SFB 40
#define CLIP_AVOIDANCE_FACTOR 0.95f
enum RawDataBlockType {
TYPE_SCE,
TYPE_CPE,
@ -76,9 +83,10 @@ enum BandType {
ZERO_BT = 0, ///< Scalefactors and spectral data are all zero.
FIRST_PAIR_BT = 5, ///< This and later band types encode two values (rather than four) with one code word.
ESC_BT = 11, ///< Spectral data are coded with an escape sequence.
RESERVED_BT = 12, ///< Band types following are encoded differently from others.
NOISE_BT = 13, ///< Spectral data are scaled white noise not coded in the bitstream.
INTENSITY_BT2 = 14, ///< Scalefactor data are intensity stereo positions.
INTENSITY_BT = 15, ///< Scalefactor data are intensity stereo positions.
INTENSITY_BT2 = 14, ///< Scalefactor data are intensity stereo positions (out of phase).
INTENSITY_BT = 15, ///< Scalefactor data are intensity stereo positions (in phase).
};
#define IS_CODEBOOK_UNSIGNED(x) (((x) - 1) & 10)
@ -125,12 +133,14 @@ typedef struct OutputConfiguration {
* Predictor State
*/
typedef struct PredictorState {
float cor0;
float cor1;
float var0;
float var1;
float r0;
float r1;
AAC_FLOAT cor0;
AAC_FLOAT cor1;
AAC_FLOAT var0;
AAC_FLOAT var1;
AAC_FLOAT r0;
AAC_FLOAT r1;
AAC_FLOAT k1;
AAC_FLOAT x_est;
} PredictorState;
#define MAX_PREDICTORS 672
@ -141,6 +151,8 @@ 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 POW_SF2_ZERO 200 ///< ff_aac_pow2sf_tab index corresponding to pow(2, 0);
#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
@ -151,7 +163,8 @@ typedef struct PredictorState {
typedef struct LongTermPrediction {
int8_t present;
int16_t lag;
float coef;
int coef_idx;
INTFLOAT coef;
int8_t used[MAX_LTP_LONG_SFB];
} LongTermPrediction;
@ -173,7 +186,10 @@ typedef struct IndividualChannelStream {
int predictor_present;
int predictor_initialized;
int predictor_reset_group;
int predictor_reset_count[31]; ///< used by encoder to count prediction resets
uint8_t prediction_used[41];
uint8_t window_clipping[8]; ///< set if a certain window is near clipping
float clip_avoidance_factor; ///< set if any window is near clipping to the necessary atennuation factor to avoid it
} IndividualChannelStream;
/**
@ -185,7 +201,8 @@ typedef struct TemporalNoiseShaping {
int length[8][4];
int direction[8][4];
int order[8][4];
float coef[8][4][TNS_MAX_ORDER];
int coef_idx[8][4][TNS_MAX_ORDER];
INTFLOAT coef[8][4][TNS_MAX_ORDER];
} TemporalNoiseShaping;
/**
@ -222,7 +239,7 @@ typedef struct ChannelCoupling {
int ch_select[8]; /**< [0] shared list of gains; [1] list of gains for right channel;
* [2] list of gains for left channel; [3] lists of gains for both channels
*/
float gain[16][120];
INTFLOAT gain[16][120];
} ChannelCoupling;
/**
@ -233,17 +250,23 @@ typedef struct SingleChannelElement {
TemporalNoiseShaping tns;
Pulse pulse;
enum BandType band_type[128]; ///< band types
enum BandType band_alt[128]; ///< alternative band type (used by encoder)
int band_type_run_end[120]; ///< band type run end points
float sf[120]; ///< scalefactors
INTFLOAT sf[120]; ///< scalefactors
int sf_idx[128]; ///< scalefactor indices (used by encoder)
uint8_t zeroes[128]; ///< band is not coded (used by encoder)
DECLARE_ALIGNED(32, float, pcoeffs)[1024]; ///< coefficients for IMDCT, pristine
DECLARE_ALIGNED(32, float, coeffs)[1024]; ///< coefficients for IMDCT, maybe processed
DECLARE_ALIGNED(32, float, saved)[1536]; ///< overlap
DECLARE_ALIGNED(32, float, ret_buf)[2048]; ///< PCM output buffer
DECLARE_ALIGNED(16, float, ltp_state)[3072]; ///< time signal for LTP
uint8_t can_pns[128]; ///< band is allowed to PNS (informative)
float is_ener[128]; ///< Intensity stereo pos (used by encoder)
float pns_ener[128]; ///< Noise energy values (used by encoder)
DECLARE_ALIGNED(32, INTFLOAT, pcoeffs)[1024]; ///< coefficients for IMDCT, pristine
DECLARE_ALIGNED(32, INTFLOAT, coeffs)[1024]; ///< coefficients for IMDCT, maybe processed
DECLARE_ALIGNED(32, INTFLOAT, saved)[1536]; ///< overlap
DECLARE_ALIGNED(32, INTFLOAT, ret_buf)[2048]; ///< PCM output buffer
DECLARE_ALIGNED(16, INTFLOAT, ltp_state)[3072]; ///< time signal for LTP
DECLARE_ALIGNED(32, AAC_FLOAT, lcoeffs)[1024]; ///< MDCT of LTP coefficients (used by encoder)
DECLARE_ALIGNED(32, AAC_FLOAT, prcoeffs)[1024]; ///< Main prediction coefs (used by encoder)
PredictorState predictor_state[MAX_PREDICTORS];
float *ret; ///< PCM output
INTFLOAT *ret; ///< PCM output
} SingleChannelElement;
/**
@ -254,7 +277,9 @@ typedef struct ChannelElement {
// CPE specific
int common_window; ///< Set if channels share a common 'IndividualChannelStream' in bitstream.
int ms_mode; ///< Signals mid/side stereo flags coding mode (used by encoder)
uint8_t is_mode; ///< Set if any bands have been encoded using intensity stereo (used by encoder)
uint8_t ms_mask[128]; ///< Set if mid/side stereo is used for each scalefactor window band
uint8_t is_mask[128]; ///< Set if intensity stereo is used (used by encoder)
// shared
SingleChannelElement ch[2];
// CCE specific
@ -288,7 +313,7 @@ struct AACContext {
* (We do not want to have these on the stack.)
* @{
*/
DECLARE_ALIGNED(32, float, buf_mdct)[1024];
DECLARE_ALIGNED(32, INTFLOAT, buf_mdct)[1024];
/** @} */
/**
@ -299,8 +324,12 @@ struct AACContext {
FFTContext mdct_small;
FFTContext mdct_ld;
FFTContext mdct_ltp;
#if USE_FIXED
AVFixedDSPContext *fdsp;
#else
IMDCT15Context *mdct480;
AVFloatDSPContext *fdsp;
#endif /* USE_FIXED */
int random_state;
/** @} */
@ -320,7 +349,7 @@ struct AACContext {
int dmono_mode; ///< 0->not dmono, 1->use first channel, 2->use second channel
/** @} */
DECLARE_ALIGNED(32, float, temp)[128];
DECLARE_ALIGNED(32, INTFLOAT, temp)[128];
OutputConfiguration oc[2];
int warned_num_aac_frames;
@ -328,11 +357,13 @@ struct AACContext {
/* aacdec functions pointers */
void (*imdct_and_windowing)(AACContext *ac, SingleChannelElement *sce);
void (*apply_ltp)(AACContext *ac, SingleChannelElement *sce);
void (*apply_tns)(float coef[1024], TemporalNoiseShaping *tns,
void (*apply_tns)(INTFLOAT coef[1024], TemporalNoiseShaping *tns,
IndividualChannelStream *ics, int decode);
void (*windowing_and_mdct_ltp)(AACContext *ac, float *out,
float *in, IndividualChannelStream *ics);
void (*windowing_and_mdct_ltp)(AACContext *ac, INTFLOAT *out,
INTFLOAT *in, IndividualChannelStream *ics);
void (*update_ltp)(AACContext *ac, SingleChannelElement *sce);
void (*vector_pow43)(int *coefs, int len);
void (*subband_scale)(int *dst, int *src, int scale, int offset, int len);
};

Some files were not shown because too many files have changed in this diff Show More