Compare commits

...

2794 Commits
n3.0 ... 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
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
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
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
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
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
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
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
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
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
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
Luca Barbato
a38a4f44b5 configure: Support MSYS2 mingw-w64 64bit 2016-02-06 12:07:47 +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
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
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
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
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
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
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
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
3168 changed files with 130263 additions and 45168 deletions

64
.gitignore vendored
View File

@ -18,8 +18,6 @@
*.so.*
*.swp
*.ver
*-example
*-test
*_g
\#*
.\#*
@ -32,66 +30,6 @@
/config.*
/coverage.info
/avversion.h
/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_dir_cmd
/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
/lcov/
/libavcodec/*_tablegen
/libavcodec/*_tables.c
/libavcodec/*_tables.h
/libavutil/avconfig.h
/libavutil/ffversion.h
/src
/tests/audiogen
/tests/base64
/tests/checkasm/checkasm
/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
/mapfile

View File

@ -2,6 +2,63 @@ 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:
@ -70,6 +127,8 @@ version 3.0:
- 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:
@ -872,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
@ -1166,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,16 +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`
- `libavfilter/x86/vf_removegrain.asm`
- 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`
@ -47,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`
@ -73,20 +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
- librubberband
- libutvideo
- libvidstab
- libx264
- libx265
@ -101,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 and FAAC 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

@ -43,8 +43,7 @@ Miscellaneous Areas
===================
documentation Stefano Sabatini, Mike Melanson, Timothy Gu, Lou Logan
build system (configure, makefiles) Diego Biurrun, Mans Rullgard
project server Árpád Gereöffy, Michael Niedermayer, Reimar Doeffinger, Alexander Strasser, 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
@ -56,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
@ -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:
@ -139,47 +135,35 @@ Codecs:
8bps.c Roberto Togni
8svx.c Jaikrishnan Menon
aacenc*, aaccoder.c Rostislav Pehlivanov
aasc.c Kostya Shishkov
ac3* Justin Ruggles
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
@ -190,16 +174,10 @@ Codecs:
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
@ -208,40 +186,31 @@ Codecs:
libopenjpeg.c Jaikrishnan Menon
libopenjpegenc.c Michael Bradshaw
libschroedinger* David Conrad
libspeexdec.c Justin Ruggles
libtheoraenc.c David Conrad
libutvideo* Carl Eugen Hoyos
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
@ -250,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
@ -262,54 +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* Hendrik Leppkes, Laurent Aimar
mediacodec* Matthieu Bouron
vaapi* Gwenole Beauchesne
vda* Sebastien Zwickert
vaapi_encode* Mark Thompson
vdpau* Philip Langdale, Carl Eugen Hoyos
videotoolbox* Sebastien Zwickert
videotoolbox* Rick Kern
libavdevice
@ -353,7 +307,10 @@ Filters:
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
@ -366,6 +323,7 @@ Filters:
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 <jdelvare@suse.com>)
@ -380,6 +338,7 @@ Filters:
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
@ -399,6 +358,7 @@ Generic parts:
libavformat/avformat.h Michael Niedermayer
Utility Code:
libavformat/utils.c Michael Niedermayer
Text Subtitles Clément Bœsch
Muxers/Demuxers:
@ -408,7 +368,6 @@ Muxers/Demuxers:
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
@ -422,14 +381,12 @@ 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
@ -443,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
@ -458,10 +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
movenccenc.c Eran Kornblau
mpc.c Kostya Shishkov
mpeg.c Michael Niedermayer
mpegenc.c Michael Niedermayer
mpegts.c Marton Balint
@ -487,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
@ -496,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
@ -519,7 +472,6 @@ Muxers/Demuxers:
webvtt* Matthew J Heaney
westwood.c Mike Melanson
wtv.c Peter Ross
wv.c Kostya Shishkov
wvenc.c Paul B Mahol
Protocols:
@ -550,20 +502,17 @@ 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, Hendrik Leppkes
Windows ICL Matthew Oliver
ADI/Blackfin DSP Marc Hoffman
Sparc Roman Shaposhnik
x86 Michael Niedermayer
OS/2 KO Myung-Hun
Releases
@ -573,7 +522,6 @@ Releases
2.7 Michael Niedermayer
2.6 Michael Niedermayer
2.5 Michael Niedermayer
2.4 Michael Niedermayer
If you want to maintain an older release, please contact us
@ -583,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
@ -591,18 +538,16 @@ 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

View File

@ -30,16 +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-$(HAVE_DXVA2_LIB) += ffmpeg_dxva2.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_VIDEOTOOLBOX) += ffmpeg_videotoolbox.o
OBJS-ffmpeg-$(CONFIG_LIBMFX) += ffmpeg_qsv.o
OBJS-ffmpeg-$(CONFIG_CUVID) += ffmpeg_cuvid.o
OBJS-ffmpeg-$(HAVE_DXVA2_LIB) += ffmpeg_dxva2.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
@ -59,7 +61,8 @@ 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
@ -181,7 +184,7 @@ clean::
distclean::
$(RM) $(DISTCLEANSUFFIXES)
$(RM) config.* .config libavutil/avconfig.h .version avversion.h 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

View File

@ -1 +1 @@
2.8.git
3.0.git

View File

@ -39,7 +39,7 @@ 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)
@ -83,12 +83,7 @@ COMPILE_HOSTC = $(call COMPILE,HOSTCC)
%.h.c:
$(Q)echo '#include "$*.h"' >$@
%.ver: %.v
$(Q)sed 's/$$MAJOR/$($(basename $(@F))_VERSION_MAJOR)/' $^ | sed -e 's/:/:\
/' -e 's/; /;\
/g' > $@
%.c %.h: TAG = GEN
%.c %.h %.ver: TAG = GEN
# Dummy rule to stop make trying to rebuild removed or renamed headers
%.h:
@ -114,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)
@ -152,15 +147,13 @@ $(TOOLOBJS): | tools
OBJDIRS := $(OBJDIRS) $(dir $(OBJS) $(HOBJS) $(HOSTOBJS) $(SLIBOBJS) $(TESTOBJS))
CLEANSUFFIXES = *.d *.o *~ *.h.c *.map *.ver *.ver-sol2 *.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

@ -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 */

868
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

@ -15,6 +15,134 @@ 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
@ -1084,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.

File diff suppressed because it is too large Load Diff

View File

@ -125,7 +125,7 @@ $(DOC_EXAMPLES:%$(EXESUF)=%.o): | doc/examples
OBJDIRS += doc/examples
DOXY_INPUT = $(INSTHEADERS) $(DOC_EXAMPLES:%$(EXESUF)=%.c) $(LIB_EXAMPLES:%$(EXESUF)=%.c)
DOXY_INPUT_DEPS = $(addprefix $(SRC_PATH)/, $(DOXY_INPUT))
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_DEPS)

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

@ -39,9 +39,6 @@ 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 an example).

View File

@ -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.
@ -1047,7 +1050,38 @@ 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})

View File

@ -279,7 +279,7 @@ 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 background.

View File

@ -104,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
@ -192,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
@ -265,6 +267,33 @@ 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 libopenmpt
libopenmpt based module demuxer
See @url{https://lib.openmpt.org/libopenmpt/} for more information.
Some files have multiple subsongs (tracks) this can be set with the @option{subsong}
option.
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
Animated GIF demuxer.
@ -439,9 +468,9 @@ ffmpeg -framerate 10 -pattern_type glob -i "*.png" out.mkv
@end example
@end itemize
@section mov/mp4/3gp/Quicktme
@section mov/mp4/3gp/QuickTime
Quicktime / MP4 demuxer.
QuickTime / MP4 demuxer.
This demuxer accepts the following options:
@table @option

View File

@ -403,6 +403,35 @@ finding a new maintainer and also don't forget to update the @file{MAINTAINERS}
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

1
doc/doxy/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/html/

View File

@ -1184,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
@ -1390,7 +1401,7 @@ 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 follwing possible values:
Set slice mode. Can assume one of the following possible values:
@table @samp
@item fixed

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

@ -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>
@ -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");
@ -475,7 +475,7 @@ static void video_encode_example(const char *filename, int codec_id)
}
}
/* 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);
@ -543,12 +543,12 @@ static void video_decode_example(const char *outfilename, const char *filename)
av_init_packet(&avpkt);
/* set end of buffer to 0 (this ensures that no overreading happens for damaged mpeg streams) */
/* 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");
@ -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

@ -65,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;

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) {
@ -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);
@ -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;
@ -495,7 +515,7 @@ static int write_video_frame(AVFormatContext *oc, OutputStream *ost)
int got_packet = 0;
AVPacket pkt = { 0 };
c = ost->st->codec;
c = ost->enc;
frame = get_video_frame(ost);
@ -524,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);
@ -545,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();
@ -561,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 */
@ -620,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

@ -352,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;
@ -404,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 +
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;

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 |= AV_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;
@ -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

@ -128,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 {

View File

@ -720,7 +720,7 @@ 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 valus of MFX_IMPL_* . Allowed values
For QSV, this option corresponds to the values of MFX_IMPL_* . Allowed values
are:
@table @option
@item auto

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">

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

@ -103,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.
@ -520,6 +527,7 @@ 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.
@ -643,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
@ -677,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
@ -743,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
@ -950,7 +962,7 @@ following image formats are supported:
@item COOK @tab @tab X
@tab All versions except 5.1 are supported.
@item DCA (DTS Coherent Acoustics) @tab X @tab X
@tab supported extensions: XCh, XLL (partially)
@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
@ -967,6 +979,7 @@ 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

View File

@ -408,7 +408,7 @@ 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}
@ -418,7 +418,7 @@ Next let the code pass through a full run of our testsuite.
@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).

View File

@ -251,6 +251,28 @@ To use this option, ffmpeg needs to be compiled with @code{--enable-libzvbi}.
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

View File

@ -174,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
@ -207,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
@ -243,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
@ -273,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
@ -310,14 +396,34 @@ 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
@ -388,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}
@ -601,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. Timestamps are ignored.
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
@ -621,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
@ -798,41 +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 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}
@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
@ -848,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
@ -869,7 +1007,7 @@ 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
@ -1017,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
@ -1204,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
@ -1333,6 +1482,12 @@ 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. 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
@ -1346,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
@ -144,7 +144,7 @@ pacman -S make pkgconf diffutils
pacman -S mingw-w64-x86_64-yasm mingw-w64-x86_64-gcc mingw-w64-x86_64-SDL
@end example
To target 32bit replace the @code{x86_64} with @code{i686} in the command above.
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

View File

@ -36,6 +36,14 @@ 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
@ -216,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.
@ -676,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.
@ -1140,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.
@ -1266,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

@ -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
@ -134,6 +134,11 @@ the interval [0,30].
@item linear_interp
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
value between 0 and 1. Default value is 0.97 with swr, and 0.91 with soxr

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

@ -869,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

@ -197,15 +197,15 @@ static void sub2video_copy_rect(uint8_t *dst, int dst_linesize, int w, int h,
}
dst += r->y * dst_linesize + r->x * 4;
src = r->pict.data[0];
pal = (uint32_t *)r->pict.data[1];
src = r->data[0];
pal = (uint32_t *)r->data[1];
for (y = 0; y < r->h; y++) {
dst2 = (uint32_t *)dst;
src2 = src;
for (x = 0; x < r->w; x++)
*(dst2++) = pal[*(src2++)];
dst += dst_linesize;
src += r->pict.linesize[0];
src += r->linesize[0];
}
}
@ -694,6 +694,17 @@ static void write_frame(AVFormatContext *s, AVPacket *pkt, OutputStream *ost)
if (exit_on_error)
exit_program(1);
}
if (pkt->size == 0 && pkt->side_data_elems == 0)
return;
if (!ost->st->codecpar->extradata && avctx->extradata) {
ost->st->codecpar->extradata = av_malloc(avctx->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE);
if (!ost->st->codecpar->extradata) {
av_log(NULL, AV_LOG_ERROR, "Could not allocate extradata buffer to copy parser data.\n");
exit_program(1);
}
ost->st->codecpar->extradata_size = avctx->extradata_size;
memcpy(ost->st->codecpar->extradata, avctx->extradata, avctx->extradata_size);
}
if (!(s->oformat->flags & AVFMT_NOTIMESTAMPS)) {
if (pkt->dts != AV_NOPTS_VALUE &&
@ -710,6 +721,7 @@ static void write_frame(AVFormatContext *s, AVPacket *pkt, OutputStream *ost)
if(
(avctx->codec_type == AVMEDIA_TYPE_AUDIO || avctx->codec_type == AVMEDIA_TYPE_VIDEO) &&
pkt->dts != AV_NOPTS_VALUE &&
!(avctx->codec_id == AV_CODEC_ID_VP9 && ost->stream_copy) &&
ost->last_mux_dts != AV_NOPTS_VALUE) {
int64_t max = ost->last_mux_dts + !(s->oformat->flags & AVFMT_TS_NONSTRICT);
if (pkt->dts < max) {
@ -1910,7 +1922,7 @@ int guess_input_channel_layout(InputStream *ist)
return 0;
av_get_channel_layout_string(layout_name, sizeof(layout_name),
dec->channels, dec->channel_layout);
av_log(NULL, AV_LOG_WARNING, "Guessed Channel Layout for Input Stream "
av_log(NULL, AV_LOG_WARNING, "Guessed Channel Layout for Input Stream "
"#%d.%d : %s\n", ist->file_index, ist->st->index, layout_name);
}
return 1;
@ -2123,8 +2135,12 @@ static int decode_video(InputStream *ist, AVPacket *pkt, int *got_output)
ist->hwaccel_retrieved_pix_fmt = decoded_frame->format;
best_effort_timestamp= av_frame_get_best_effort_timestamp(decoded_frame);
if(best_effort_timestamp != AV_NOPTS_VALUE)
ist->next_pts = ist->pts = av_rescale_q(decoded_frame->pts = best_effort_timestamp, ist->st->time_base, AV_TIME_BASE_Q);
if(best_effort_timestamp != AV_NOPTS_VALUE) {
int64_t ts = av_rescale_q(decoded_frame->pts = best_effort_timestamp, ist->st->time_base, AV_TIME_BASE_Q);
if (ts != AV_NOPTS_VALUE)
ist->next_pts = ist->pts = ts;
}
if (debug_ts) {
av_log(NULL, AV_LOG_INFO, "decoder -> ist_index:%d type:video "
@ -2543,6 +2559,8 @@ static int init_input_stream(int ist_index, char *error, int error_len)
av_log(NULL, AV_LOG_WARNING, "Warning using DVB subtitles for filtering and output at the same time is not fully supported, also see -compute_edt [0|1]\n");
}
av_dict_set(&ist->decoder_opts, "sub_text_format", "ass", AV_DICT_DONT_OVERWRITE);
if (!av_dict_get(ist->decoder_opts, "threads", NULL, 0))
av_dict_set(&ist->decoder_opts, "threads", "auto", 0);
if ((ret = avcodec_open2(ist->dec_ctx, codec, &ist->decoder_opts)) < 0) {
@ -2603,6 +2621,12 @@ static int init_output_stream(OutputStream *ost, char *error, int error_len)
!av_dict_get(ost->encoder_opts, "ab", NULL, 0))
av_dict_set(&ost->encoder_opts, "b", "128000", 0);
if (ost->filter && ost->filter->filter->inputs[0]->hw_frames_ctx) {
ost->enc_ctx->hw_frames_ctx = av_buffer_ref(ost->filter->filter->inputs[0]->hw_frames_ctx);
if (!ost->enc_ctx->hw_frames_ctx)
return AVERROR(ENOMEM);
}
if ((ret = avcodec_open2(ost->enc_ctx, codec, &ost->encoder_opts)) < 0) {
if (ret == AVERROR_EXPERIMENTAL)
abort_codec_experimental(codec, 1);
@ -2654,7 +2678,7 @@ static int init_output_stream(OutputStream *ost, char *error, int error_len)
ost->st->time_base = av_add_q(ost->enc_ctx->time_base, (AVRational){0, 1});
ost->st->codec->codec= ost->enc_ctx->codec;
} else {
ret = av_opt_set_dict(ost->enc_ctx, &ost->encoder_opts);
ret = av_opt_set_dict(ost->st->codec, &ost->encoder_opts);
if (ret < 0) {
av_log(NULL, AV_LOG_FATAL,
"Error setting up codec context options.\n");
@ -2893,7 +2917,8 @@ static int transcode_init(void)
* overhead
*/
if(!strcmp(oc->oformat->name, "avi")) {
if ( copy_tb<0 && av_q2d(ist->st->r_frame_rate) >= av_q2d(ist->st->avg_frame_rate)
if ( copy_tb<0 && ist->st->r_frame_rate.num
&& av_q2d(ist->st->r_frame_rate) >= av_q2d(ist->st->avg_frame_rate)
&& 0.5/av_q2d(ist->st->r_frame_rate) > av_q2d(ist->st->time_base)
&& 0.5/av_q2d(ist->st->r_frame_rate) > av_q2d(dec_ctx->time_base)
&& av_q2d(ist->st->time_base) < 1.0/500 && av_q2d(dec_ctx->time_base) < 1.0/500
@ -2987,9 +3012,14 @@ static int transcode_init(void)
break;
case AVMEDIA_TYPE_VIDEO:
enc_ctx->pix_fmt = dec_ctx->pix_fmt;
enc_ctx->colorspace = dec_ctx->colorspace;
enc_ctx->color_range = dec_ctx->color_range;
enc_ctx->color_primaries = dec_ctx->color_primaries;
enc_ctx->color_trc = dec_ctx->color_trc;
enc_ctx->width = dec_ctx->width;
enc_ctx->height = dec_ctx->height;
enc_ctx->has_b_frames = dec_ctx->has_b_frames;
enc_ctx->profile = dec_ctx->profile;
if (ost->frame_aspect_ratio.num) { // overridden by the -aspect cli option
sar =
av_mul_q(ost->frame_aspect_ratio,
@ -3034,6 +3064,11 @@ static int transcode_init(void)
exit_program(1);
#endif
#if CONFIG_CUVID
if (cuvid_transcode_init(ost))
exit_program(1);
#endif
if (!ost->filter &&
(enc_ctx->codec_type == AVMEDIA_TYPE_VIDEO ||
enc_ctx->codec_type == AVMEDIA_TYPE_AUDIO)) {
@ -3194,13 +3229,6 @@ static int transcode_init(void)
}
}
/* open each encoder */
for (i = 0; i < nb_output_streams; i++) {
ret = init_output_stream(output_streams[i], error, sizeof(error));
if (ret < 0)
goto dump_format;
}
/* init input streams */
for (i = 0; i < nb_input_streams; i++)
if ((ret = init_input_stream(i, error, sizeof(error))) < 0) {
@ -3211,6 +3239,13 @@ static int transcode_init(void)
goto dump_format;
}
/* open each encoder */
for (i = 0; i < nb_output_streams; i++) {
ret = init_output_stream(output_streams[i], error, sizeof(error));
if (ret < 0)
goto dump_format;
}
/* discard unused programs */
for (i = 0; i < nb_input_files; i++) {
InputFile *ifile = input_files[i];
@ -3465,12 +3500,12 @@ static int check_keyboard_interaction(int64_t cur_time)
key == 'c' ? AVFILTER_CMD_FLAG_ONE : 0);
fprintf(stderr, "Command reply for stream %d: ret:%d res:\n%s", i, ret, buf);
} else if (key == 'c') {
fprintf(stderr, "Queing commands only on filters supporting the specific command is unsupported\n");
fprintf(stderr, "Queuing commands only on filters supporting the specific command is unsupported\n");
ret = AVERROR_PATCHWELCOME;
} else {
ret = avfilter_graph_queue_command(fg->graph, target, command, arg, 0, time);
if (ret < 0)
fprintf(stderr, "Queing command failed with error %s\n", av_err2str(ret));
fprintf(stderr, "Queuing command failed with error %s\n", av_err2str(ret));
}
}
}
@ -4189,6 +4224,8 @@ static int transcode(void)
}
}
av_buffer_unref(&hw_device_ctx);
/* finished ! */
ret = 0;

View File

@ -65,6 +65,8 @@ enum HWAccelID {
HWACCEL_VDA,
HWACCEL_VIDEOTOOLBOX,
HWACCEL_QSV,
HWACCEL_VAAPI,
HWACCEL_CUVID,
};
typedef struct HWAccel {
@ -126,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;
@ -325,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;
@ -334,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
@ -538,13 +544,14 @@ 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);
@ -577,5 +584,9 @@ 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,13 +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;
@ -84,6 +85,7 @@ 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 },
@ -91,63 +93,19 @@ static const dxva2_mode dxva2_modes[] = {
{ 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;
@ -157,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);
@ -187,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)
@ -307,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;
@ -470,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");
@ -503,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;
}
@ -542,43 +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)
ctx->num_surfaces += 8;
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;
@ -588,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);
}
@ -621,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,7 +39,6 @@
#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[] =
@ -428,7 +428,7 @@ 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;
@ -656,7 +656,7 @@ int configure_output_filter(FilterGraph *fg, OutputFilter *ofilter, AVFilterInOu
DESCRIBE_FILTER_LINK(ofilter, out, 0);
if (!ofilter->ost) {
av_log(NULL, AV_LOG_FATAL, "Filter %s has a unconnected output\n", ofilter->name);
av_log(NULL, AV_LOG_FATAL, "Filter %s has an unconnected output\n", ofilter->name);
exit_program(1);
}
@ -719,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)
@ -731,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 ?
@ -752,9 +759,15 @@ static int configure_input_video_filter(FilterGraph *fg, InputFilter *ifilter,
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) {
@ -828,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,
@ -1010,6 +1027,12 @@ int configure_filtergraph(FilterGraph *fg)
if ((ret = avfilter_graph_parse2(fg->graph, graph_desc, &inputs, &outputs)) < 0)
return ret;
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);
}
}
if (simple && (!inputs || inputs->next || !outputs || outputs->next)) {
const char *num_inputs;
const char *num_outputs;

View File

@ -40,7 +40,6 @@
#include "libavutil/parseutils.h"
#include "libavutil/pixdesc.h"
#include "libavutil/pixfmt.h"
#include "libavutil/time_internal.h"
#define DEFAULT_PASS_LOGFILENAME_PREFIX "ffmpeg2pass"
@ -81,9 +80,17 @@ const HWAccel hwaccels[] = {
#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;
@ -442,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
@ -634,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;
@ -753,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;
@ -2430,7 +2462,6 @@ loop_end:
char type, *val;
const char *stream_spec;
int index = 0, j, ret = 0;
char now_time[256];
val = strchr(o->metadata[i].u.str, '=');
if (!val) {
@ -2440,17 +2471,6 @@ loop_end:
}
*val++ = 0;
if (!strcmp(o->metadata[i].u.str, "creation_time") &&
!strcmp(val, "now")) {
time_t now = time(0);
struct tm *ptm, tmbuf;
ptm = localtime_r(&now, &tmbuf);
if (ptm) {
if (strftime(now_time, sizeof(now_time), "%Y-%m-%d %H:%M:%S", ptm))
val = now_time;
}
}
parse_meta_type(o->metadata[i].specifier, &type, &index, &stream_spec);
if (type == 's') {
for (j = 0; j < oc->nb_streams; j++) {
@ -3361,9 +3381,9 @@ const OptionDef options[] = {
{ "hwaccel_device", OPT_VIDEO | OPT_STRING | HAS_ARG | OPT_EXPERT |
OPT_SPEC | OPT_INPUT, { .off = OFFSET(hwaccel_devices) },
"select a device for HW acceleration", "devicename" },
#if HAVE_VDPAU_X11
{ "vdpau_api_ver", HAS_ARG | OPT_INT | OPT_EXPERT, { &vdpau_api_ver }, "" },
#endif
{ "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
@ -3372,6 +3392,8 @@ const OptionDef options[] = {
{ "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 },
@ -3455,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, },
};

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

@ -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,145 +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,
AV_HWACCEL_FLAG_IGNORE_LEVEL))
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)

143
ffplay.c
View File

@ -117,6 +117,7 @@ typedef struct PacketQueue {
MyAVPacketList *first_pkt, *last_pkt;
int nb_packets;
int size;
int64_t duration;
int abort_request;
int serial;
SDL_mutex *mutex;
@ -243,7 +244,6 @@ typedef struct VideoState {
AVStream *audio_st;
PacketQueue audioq;
int audio_hw_buf_size;
uint8_t silence_buf[SDL_AUDIO_MIN_BUFFER_SIZE];
uint8_t *audio_buf;
uint8_t *audio_buf1;
unsigned int audio_buf_size; /* in bytes */
@ -418,6 +418,7 @@ static int packet_queue_put_private(PacketQueue *q, AVPacket *pkt)
q->last_pkt = pkt1;
q->nb_packets++;
q->size += pkt1->pkt.size + sizeof(*pkt1);
q->duration += pkt1->pkt.duration;
/* XXX: should duplicate packet data in DV case */
SDL_CondSignal(q->cond);
return 0;
@ -479,6 +480,7 @@ static void packet_queue_flush(PacketQueue *q)
q->first_pkt = NULL;
q->nb_packets = 0;
q->size = 0;
q->duration = 0;
SDL_UnlockMutex(q->mutex);
}
@ -529,6 +531,7 @@ static int packet_queue_get(PacketQueue *q, AVPacket *pkt, int block, int *seria
q->last_pkt = NULL;
q->nb_packets--;
q->size -= pkt1->pkt.size + sizeof(*pkt1);
q->duration -= pkt1->pkt.duration;
*pkt = pkt1->pkt;
if (serial)
*serial = pkt1->serial;
@ -642,6 +645,7 @@ static int decoder_decode_frame(Decoder *d, AVFrame *frame, AVSubtitle *sub) {
static void decoder_destroy(Decoder *d) {
av_packet_unref(&d->pkt);
avcodec_free_context(&d->avctx);
}
static void frame_queue_unref_item(Frame *vp)
@ -769,14 +773,6 @@ static void frame_queue_next(FrameQueue *f)
SDL_UnlockMutex(f->mutex);
}
/* jump back to the previous frame if available by resetting rindex_shown */
static int frame_queue_prev(FrameQueue *f)
{
int ret = f->rindex_shown;
f->rindex_shown = 0;
return ret;
}
/* return the number of undisplayed frames in the queue */
static int frame_queue_nb_remaining(FrameQueue *f)
{
@ -947,7 +943,7 @@ static void video_image_display(VideoState *is)
SDL_Rect rect;
int i;
vp = frame_queue_peek(&is->pictq);
vp = frame_queue_peek_last(&is->pictq);
if (vp->bmp) {
if (is->subtitle_st) {
if (frame_queue_nb_remaining(&is->subpq) > 0) {
@ -1140,13 +1136,13 @@ static void video_audio_display(VideoState *s)
static void stream_component_close(VideoState *is, int stream_index)
{
AVFormatContext *ic = is->ic;
AVCodecContext *avctx;
AVCodecParameters *codecpar;
if (stream_index < 0 || stream_index >= ic->nb_streams)
return;
avctx = ic->streams[stream_index]->codec;
codecpar = ic->streams[stream_index]->codecpar;
switch (avctx->codec_type) {
switch (codecpar->codec_type) {
case AVMEDIA_TYPE_AUDIO:
decoder_abort(&is->auddec, &is->sampq);
SDL_CloseAudio();
@ -1176,8 +1172,7 @@ static void stream_component_close(VideoState *is, int stream_index)
}
ic->streams[stream_index]->discard = AVDISCARD_ALL;
avcodec_close(avctx);
switch (avctx->codec_type) {
switch (codecpar->codec_type) {
case AVMEDIA_TYPE_AUDIO:
is->audio_st = NULL;
is->audio_stream = -1;
@ -1528,9 +1523,6 @@ static void video_refresh(void *opaque, double *remaining_time)
}
if (is->video_st) {
int redisplay = 0;
if (is->force_refresh)
redisplay = frame_queue_prev(&is->pictq);
retry:
if (frame_queue_nb_remaining(&is->pictq) == 0) {
// nothing to do, no picture to display in the queue
@ -1544,11 +1536,10 @@ retry:
if (vp->serial != is->videoq.serial) {
frame_queue_next(&is->pictq);
redisplay = 0;
goto retry;
}
if (lastvp->serial != vp->serial && !redisplay)
if (lastvp->serial != vp->serial)
is->frame_timer = av_gettime_relative() / 1000000.0;
if (is->paused)
@ -1556,15 +1547,12 @@ retry:
/* compute nominal last_duration */
last_duration = vp_duration(is, lastvp, vp);
if (redisplay)
delay = 0.0;
else
delay = compute_target_delay(last_duration, is);
delay = compute_target_delay(last_duration, is);
time= av_gettime_relative()/1000000.0;
if (time < is->frame_timer + delay && !redisplay) {
if (time < is->frame_timer + delay) {
*remaining_time = FFMIN(is->frame_timer + delay - time, *remaining_time);
return;
goto display;
}
is->frame_timer += delay;
@ -1572,18 +1560,16 @@ retry:
is->frame_timer = time;
SDL_LockMutex(is->pictq.mutex);
if (!redisplay && !isnan(vp->pts))
if (!isnan(vp->pts))
update_video_pts(is, vp->pts, vp->pos, vp->serial);
SDL_UnlockMutex(is->pictq.mutex);
if (frame_queue_nb_remaining(&is->pictq) > 1) {
Frame *nextvp = frame_queue_peek_next(&is->pictq);
duration = vp_duration(is, vp, nextvp);
if(!is->step && (redisplay || framedrop>0 || (framedrop && get_master_sync_type(is) != AV_SYNC_VIDEO_MASTER)) && time > is->frame_timer + duration){
if (!redisplay)
is->frame_drops_late++;
if(!is->step && (framedrop>0 || (framedrop && get_master_sync_type(is) != AV_SYNC_VIDEO_MASTER)) && time > is->frame_timer + duration){
is->frame_drops_late++;
frame_queue_next(&is->pictq);
redisplay = 0;
goto retry;
}
}
@ -1608,16 +1594,16 @@ retry:
}
}
display:
/* display picture */
if (!display_disable && is->show_mode == SHOW_MODE_VIDEO)
video_display(is);
frame_queue_next(&is->pictq);
is->force_refresh = 1;
if (is->step && !is->paused)
stream_toggle_pause(is);
}
display:
/* display picture */
if (!display_disable && is->force_refresh && is->show_mode == SHOW_MODE_VIDEO && is->pictq.rindex_shown)
video_display(is);
}
is->force_refresh = 0;
if (show_status) {
@ -1653,8 +1639,8 @@ display:
aqsize / 1024,
vqsize / 1024,
sqsize,
is->video_st ? is->video_st->codec->pts_correction_num_faulty_dts : 0,
is->video_st ? is->video_st->codec->pts_correction_num_faulty_pts : 0);
is->video_st ? is->viddec.avctx->pts_correction_num_faulty_dts : 0,
is->video_st ? is->viddec.avctx->pts_correction_num_faulty_pts : 0);
fflush(stdout);
last_time = cur_time;
}
@ -1716,7 +1702,7 @@ static int queue_picture(VideoState *is, AVFrame *src_frame, double pts, double
{
Frame *vp;
#if defined(DEBUG_SYNC) && 0
#if defined(DEBUG_SYNC)
printf("frame_type=%c pts=%0.3f\n",
av_get_picture_type_char(src_frame->pict_type), pts);
#endif
@ -1906,7 +1892,7 @@ static int configure_video_filters(AVFilterGraph *graph, VideoState *is, const c
char buffersrc_args[256];
int ret;
AVFilterContext *filt_src = NULL, *filt_out = NULL, *last_filter = NULL;
AVCodecContext *codec = is->video_st->codec;
AVCodecParameters *codecpar = is->video_st->codecpar;
AVRational fr = av_guess_frame_rate(is->ic, is->video_st, NULL);
AVDictionaryEntry *e = NULL;
@ -1925,7 +1911,7 @@ static int configure_video_filters(AVFilterGraph *graph, VideoState *is, const c
"video_size=%dx%d:pix_fmt=%d:time_base=%d/%d:pixel_aspect=%d/%d",
frame->width, frame->height, frame->format,
is->video_st->time_base.num, is->video_st->time_base.den,
codec->sample_aspect_ratio.num, FFMAX(codec->sample_aspect_ratio.den, 1));
codecpar->sample_aspect_ratio.num, FFMAX(codecpar->sample_aspect_ratio.den, 1));
if (fr.num && fr.den)
av_strlcatf(buffersrc_args, sizeof(buffersrc_args), ":frame_rate=%d/%d", fr.num, fr.den);
@ -2541,8 +2527,8 @@ static void sdl_audio_callback(void *opaque, Uint8 *stream, int len)
audio_size = audio_decode_frame(is);
if (audio_size < 0) {
/* if error, just output silence */
is->audio_buf = is->silence_buf;
is->audio_buf_size = sizeof(is->silence_buf) / is->audio_tgt.frame_size * is->audio_tgt.frame_size;
is->audio_buf = NULL;
is->audio_buf_size = SDL_AUDIO_MIN_BUFFER_SIZE / is->audio_tgt.frame_size * is->audio_tgt.frame_size;
} else {
if (is->show_mode != SHOW_MODE_VIDEO)
update_sample_display(is, (int16_t *)is->audio_buf, audio_size);
@ -2553,11 +2539,11 @@ static void sdl_audio_callback(void *opaque, Uint8 *stream, int len)
len1 = is->audio_buf_size - is->audio_buf_index;
if (len1 > len)
len1 = len;
if (!is->muted && is->audio_volume == SDL_MIX_MAXVOLUME)
if (!is->muted && is->audio_buf && is->audio_volume == SDL_MIX_MAXVOLUME)
memcpy(stream, (uint8_t *)is->audio_buf + is->audio_buf_index, len1);
else {
memset(stream, is->silence_buf[0], len1);
if (!is->muted)
memset(stream, 0, len1);
if (!is->muted && is->audio_buf)
SDL_MixAudio(stream, (uint8_t *)is->audio_buf + is->audio_buf_index, len1, is->audio_volume);
}
len -= len1;
@ -2652,7 +2638,7 @@ static int stream_component_open(VideoState *is, int stream_index)
AVCodecContext *avctx;
AVCodec *codec;
const char *forced_codec_name = NULL;
AVDictionary *opts;
AVDictionary *opts = NULL;
AVDictionaryEntry *t = NULL;
int sample_rate, nb_channels;
int64_t channel_layout;
@ -2661,7 +2647,15 @@ static int stream_component_open(VideoState *is, int stream_index)
if (stream_index < 0 || stream_index >= ic->nb_streams)
return -1;
avctx = ic->streams[stream_index]->codec;
avctx = avcodec_alloc_context3(NULL);
if (!avctx)
return AVERROR(ENOMEM);
ret = avcodec_parameters_to_context(avctx, ic->streams[stream_index]->codecpar);
if (ret < 0)
goto fail;
av_codec_set_pkt_timebase(avctx, ic->streams[stream_index]->time_base);
codec = avcodec_find_decoder(avctx->codec_id);
@ -2677,7 +2671,8 @@ static int stream_component_open(VideoState *is, int stream_index)
"No codec could be found with name '%s'\n", forced_codec_name);
else av_log(NULL, AV_LOG_WARNING,
"No codec could be found with id %d\n", avctx->codec_id);
return -1;
ret = AVERROR(EINVAL);
goto fail;
}
avctx->codec_id = codec->id;
@ -2730,7 +2725,7 @@ static int stream_component_open(VideoState *is, int stream_index)
goto fail;
link = is->out_audio_filter->inputs[0];
sample_rate = link->sample_rate;
nb_channels = link->channels;
nb_channels = avfilter_link_get_channels(link);
channel_layout = link->channel_layout;
}
#else
@ -2750,7 +2745,7 @@ static int stream_component_open(VideoState *is, int stream_index)
/* init averaging filter */
is->audio_diff_avg_coef = exp(log(0.01) / AUDIO_DIFF_AVG_NB);
is->audio_diff_avg_count = 0;
/* since we do not have a precise anough audio fifo fullness,
/* since we do not have a precise anough audio FIFO fullness,
we correct audio sync only if larger than this threshold */
is->audio_diff_threshold = (double)(is->audio_hw_buf_size) / is->audio_tgt.bytes_per_sec;
@ -2763,7 +2758,7 @@ static int stream_component_open(VideoState *is, int stream_index)
is->auddec.start_pts_tb = is->audio_st->time_base;
}
if ((ret = decoder_start(&is->auddec, audio_thread, is)) < 0)
goto fail;
goto out;
SDL_PauseAudio(0);
break;
case AVMEDIA_TYPE_VIDEO:
@ -2775,7 +2770,7 @@ static int stream_component_open(VideoState *is, int stream_index)
decoder_init(&is->viddec, avctx, &is->videoq, is->continue_read_thread);
if ((ret = decoder_start(&is->viddec, video_thread, is)) < 0)
goto fail;
goto out;
is->queue_attachments_req = 1;
break;
case AVMEDIA_TYPE_SUBTITLE:
@ -2784,13 +2779,16 @@ static int stream_component_open(VideoState *is, int stream_index)
decoder_init(&is->subdec, avctx, &is->subtitleq, is->continue_read_thread);
if ((ret = decoder_start(&is->subdec, subtitle_thread, is)) < 0)
goto fail;
goto out;
break;
default:
break;
}
goto out;
fail:
avcodec_free_context(&avctx);
out:
av_dict_free(&opts);
return ret;
@ -2802,6 +2800,13 @@ static int decode_interrupt_cb(void *ctx)
return is->abort_request;
}
static int stream_has_enough_packets(AVStream *st, int stream_id, PacketQueue *queue) {
return stream_id < 0 ||
queue->abort_request ||
(st->disposition & AV_DISPOSITION_ATTACHED_PIC) ||
queue->nb_packets > MIN_FRAMES && (!queue->duration || av_q2d(st->time_base) * queue->duration > 1.0);
}
static int is_realtime(AVFormatContext *s)
{
if( !strcmp(s->iformat->name, "rtp")
@ -2929,9 +2934,9 @@ static int read_thread(void *arg)
for (i = 0; i < ic->nb_streams; i++) {
AVStream *st = ic->streams[i];
enum AVMediaType type = st->codec->codec_type;
enum AVMediaType type = st->codecpar->codec_type;
st->discard = AVDISCARD_ALL;
if (wanted_stream_spec[type] && st_index[type] == -1)
if (type >= 0 && wanted_stream_spec[type] && st_index[type] == -1)
if (avformat_match_stream_specifier(ic, st, wanted_stream_spec[type]) > 0)
st_index[type] = i;
}
@ -2964,10 +2969,10 @@ static int read_thread(void *arg)
is->show_mode = show_mode;
if (st_index[AVMEDIA_TYPE_VIDEO] >= 0) {
AVStream *st = ic->streams[st_index[AVMEDIA_TYPE_VIDEO]];
AVCodecContext *avctx = st->codec;
AVCodecParameters *codecpar = st->codecpar;
AVRational sar = av_guess_sample_aspect_ratio(ic, st, NULL);
if (avctx->width)
set_default_window_size(avctx->width, avctx->height, sar);
if (codecpar->width)
set_default_window_size(codecpar->width, codecpar->height, sar);
}
/* open the streams */
@ -3066,10 +3071,9 @@ static int read_thread(void *arg)
/* if the queue are full, no need to read more */
if (infinite_buffer<1 &&
(is->audioq.size + is->videoq.size + is->subtitleq.size > MAX_QUEUE_SIZE
|| ( (is->audioq .nb_packets > MIN_FRAMES || is->audio_stream < 0 || is->audioq.abort_request)
&& (is->videoq .nb_packets > MIN_FRAMES || is->video_stream < 0 || is->videoq.abort_request
|| (is->video_st->disposition & AV_DISPOSITION_ATTACHED_PIC))
&& (is->subtitleq.nb_packets > MIN_FRAMES || is->subtitle_stream < 0 || is->subtitleq.abort_request)))) {
|| (stream_has_enough_packets(is->audio_st, is->audio_stream, &is->audioq) &&
stream_has_enough_packets(is->video_st, is->video_stream, &is->videoq) &&
stream_has_enough_packets(is->subtitle_st, is->subtitle_stream, &is->subtitleq)))) {
/* wait 10 ms */
SDL_LockMutex(wait_mutex);
SDL_CondWaitTimeout(is->continue_read_thread, wait_mutex, 10);
@ -3241,12 +3245,12 @@ static void stream_cycle_channel(VideoState *is, int codec_type)
if (stream_index == start_index)
return;
st = is->ic->streams[p ? p->stream_index[stream_index] : stream_index];
if (st->codec->codec_type == codec_type) {
if (st->codecpar->codec_type == codec_type) {
/* check that parameters are OK */
switch (codec_type) {
case AVMEDIA_TYPE_AUDIO:
if (st->codec->sample_rate != 0 &&
st->codec->channels != 0)
if (st->codecpar->sample_rate != 0 &&
st->codecpar->channels != 0)
goto the_end;
break;
case AVMEDIA_TYPE_VIDEO:
@ -3770,6 +3774,7 @@ int main(int argc, char **argv)
int flags;
VideoState *is;
char dummy_videodriver[] = "SDL_VIDEODRIVER=dummy";
char alsa_bufsize[] = "SDL_AUDIO_ALSA_SET_BUFFER_SIZE=1";
av_log_set_flags(AV_LOG_SKIP_REPEATED);
parse_loglevel(argc, argv, options);
@ -3807,6 +3812,12 @@ int main(int argc, char **argv)
flags = SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_TIMER;
if (audio_disable)
flags &= ~SDL_INIT_AUDIO;
else {
/* Try to work around an occasional ALSA buffer underflow issue when the
* period size is NPOT due to ALSA resampling by forcing the buffer size. */
if (!SDL_getenv("SDL_AUDIO_ALSA_SET_BUFFER_SIZE"))
SDL_putenv(alsa_bufsize);
}
if (display_disable)
SDL_putenv(dummy_videodriver); /* For the event queue, we always need a video driver. */
#if !defined(_WIN32) && !defined(__APPLE__)

536
ffprobe.c
View File

@ -37,6 +37,7 @@
#include "libavutil/hash.h"
#include "libavutil/opt.h"
#include "libavutil/pixdesc.h"
#include "libavutil/stereo3d.h"
#include "libavutil/dict.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/libm.h"
@ -49,6 +50,19 @@
#include "libpostproc/postprocess.h"
#include "cmdutils.h"
typedef struct InputStream {
AVStream *st;
AVCodecContext *dec_ctx;
} InputStream;
typedef struct InputFile {
AVFormatContext *fmt_ctx;
InputStream *streams;
int nb_streams;
} InputFile;
const char program_name[] = "ffprobe";
const int program_birth_year = 2007;
@ -1746,10 +1760,39 @@ static inline int show_tags(WriterContext *w, AVDictionary *tags, int section_id
return ret;
}
static void show_packet(WriterContext *w, AVFormatContext *fmt_ctx, AVPacket *pkt, int packet_idx)
static void print_pkt_side_data(WriterContext *w,
const AVPacketSideData *side_data,
int nb_side_data,
SectionID id_data_list,
SectionID id_data)
{
int i;
writer_print_section_header(w, SECTION_ID_STREAM_SIDE_DATA_LIST);
for (i = 0; i < nb_side_data; i++) {
const AVPacketSideData *sd = &side_data[i];
const char *name = av_packet_side_data_name(sd->type);
writer_print_section_header(w, SECTION_ID_STREAM_SIDE_DATA);
print_str("side_data_type", name ? name : "unknown");
print_int("side_data_size", sd->size);
if (sd->type == AV_PKT_DATA_DISPLAYMATRIX && sd->size >= 9*4) {
writer_print_integers(w, "displaymatrix", sd->data, 9, " %11d", 3, 4, 1);
print_int("rotation", av_display_rotation_get((int32_t *)sd->data));
} else if (sd->type == AV_PKT_DATA_STEREO3D) {
const AVStereo3D *stereo = (AVStereo3D *)sd->data;
print_str("type", av_stereo3d_type_name(stereo->type));
print_int("inverted", !!(stereo->flags & AV_STEREO3D_FLAG_INVERT));
}
writer_print_section_footer(w);
}
writer_print_section_footer(w);
}
static void show_packet(WriterContext *w, InputFile *ifile, AVPacket *pkt, int packet_idx)
{
char val_str[128];
AVStream *st = fmt_ctx->streams[pkt->stream_index];
AVStream *st = ifile->streams[pkt->stream_index].st;
AVBPrint pbuf;
const char *s;
@ -1757,7 +1800,7 @@ static void show_packet(WriterContext *w, AVFormatContext *fmt_ctx, AVPacket *pk
writer_print_section_header(w, SECTION_ID_PACKET);
s = av_get_media_type_string(st->codec->codec_type);
s = av_get_media_type_string(st->codecpar->codec_type);
if (s) print_str ("codec_type", s);
else print_str_opt("codec_type", "unknown");
print_int("stream_index", pkt->stream_index);
@ -1775,7 +1818,6 @@ static void show_packet(WriterContext *w, AVFormatContext *fmt_ctx, AVPacket *pk
print_fmt("flags", "%c", pkt->flags & AV_PKT_FLAG_KEY ? 'K' : '_');
if (pkt->side_data_elems) {
int i;
int size;
const uint8_t *side_metadata;
@ -1786,20 +1828,10 @@ static void show_packet(WriterContext *w, AVFormatContext *fmt_ctx, AVPacket *pk
show_tags(w, dict, SECTION_ID_PACKET_TAGS);
av_dict_free(&dict);
}
writer_print_section_header(w, SECTION_ID_PACKET_SIDE_DATA_LIST);
for (i = 0; i < pkt->side_data_elems; i++) {
AVPacketSideData *sd = &pkt->side_data[i];
const char *name = av_packet_side_data_name(sd->type);
writer_print_section_header(w, SECTION_ID_PACKET_SIDE_DATA);
print_str("side_data_type", name ? name : "unknown");
print_int("side_data_size", sd->size);
if (sd->type == AV_PKT_DATA_DISPLAYMATRIX && sd->size >= 9*4) {
writer_print_integers(w, "displaymatrix", sd->data, 9, " %11d", 3, 4, 1);
print_int("rotation", av_display_rotation_get((int32_t *)sd->data));
}
writer_print_section_footer(w);
}
writer_print_section_footer(w);
print_pkt_side_data(w, pkt->side_data, pkt->side_data_elems,
SECTION_ID_PACKET_SIDE_DATA_LIST,
SECTION_ID_PACKET_SIDE_DATA);
}
if (do_show_data)
@ -1846,7 +1878,7 @@ static void show_frame(WriterContext *w, AVFrame *frame, AVStream *stream,
writer_print_section_header(w, SECTION_ID_FRAME);
s = av_get_media_type_string(stream->codec->codec_type);
s = av_get_media_type_string(stream->codecpar->codec_type);
if (s) print_str ("media_type", s);
else print_str_opt("media_type", "unknown");
print_int("stream_index", stream->index);
@ -1864,7 +1896,7 @@ static void show_frame(WriterContext *w, AVFrame *frame, AVStream *stream,
if (av_frame_get_pkt_size(frame) != -1) print_val ("pkt_size", av_frame_get_pkt_size(frame), unit_byte_str);
else print_str_opt("pkt_size", "N/A");
switch (stream->codec->codec_type) {
switch (stream->codecpar->codec_type) {
AVRational sar;
case AVMEDIA_TYPE_VIDEO:
@ -1934,15 +1966,17 @@ static void show_frame(WriterContext *w, AVFrame *frame, AVStream *stream,
}
static av_always_inline int process_frame(WriterContext *w,
AVFormatContext *fmt_ctx,
InputFile *ifile,
AVFrame *frame, AVPacket *pkt)
{
AVCodecContext *dec_ctx = fmt_ctx->streams[pkt->stream_index]->codec;
AVFormatContext *fmt_ctx = ifile->fmt_ctx;
AVCodecContext *dec_ctx = ifile->streams[pkt->stream_index].dec_ctx;
AVCodecParameters *par = ifile->streams[pkt->stream_index].st->codecpar;
AVSubtitle sub;
int ret = 0, got_frame = 0;
if (dec_ctx->codec) {
switch (dec_ctx->codec_type) {
if (dec_ctx && dec_ctx->codec) {
switch (par->codec_type) {
case AVMEDIA_TYPE_VIDEO:
ret = avcodec_decode_video2(dec_ctx, frame, &got_frame, pkt);
break;
@ -1963,13 +1997,13 @@ static av_always_inline int process_frame(WriterContext *w,
pkt->data += ret;
pkt->size -= ret;
if (got_frame) {
int is_sub = (dec_ctx->codec_type == AVMEDIA_TYPE_SUBTITLE);
int is_sub = (par->codec_type == AVMEDIA_TYPE_SUBTITLE);
nb_streams_frames[pkt->stream_index]++;
if (do_show_frames)
if (is_sub)
show_subtitle(w, &sub, fmt_ctx->streams[pkt->stream_index], fmt_ctx);
show_subtitle(w, &sub, ifile->streams[pkt->stream_index].st, fmt_ctx);
else
show_frame(w, frame, fmt_ctx->streams[pkt->stream_index], fmt_ctx);
show_frame(w, frame, ifile->streams[pkt->stream_index].st, fmt_ctx);
if (is_sub)
avsubtitle_free(&sub);
}
@ -2000,9 +2034,10 @@ static void log_read_interval(const ReadInterval *interval, void *log_ctx, int l
av_log(log_ctx, log_level, "\n");
}
static int read_interval_packets(WriterContext *w, AVFormatContext *fmt_ctx,
static int read_interval_packets(WriterContext *w, InputFile *ifile,
const ReadInterval *interval, int64_t *cur_ts)
{
AVFormatContext *fmt_ctx = ifile->fmt_ctx;
AVPacket pkt, pkt1;
AVFrame *frame = NULL;
int ret = 0, i = 0, frame_count = 0;
@ -2044,14 +2079,14 @@ static int read_interval_packets(WriterContext *w, AVFormatContext *fmt_ctx,
goto end;
}
while (!av_read_frame(fmt_ctx, &pkt)) {
if (fmt_ctx->nb_streams > nb_streams) {
if (ifile->nb_streams > nb_streams) {
REALLOCZ_ARRAY_STREAM(nb_streams_frames, nb_streams, fmt_ctx->nb_streams);
REALLOCZ_ARRAY_STREAM(nb_streams_packets, nb_streams, fmt_ctx->nb_streams);
REALLOCZ_ARRAY_STREAM(selected_streams, nb_streams, fmt_ctx->nb_streams);
nb_streams = fmt_ctx->nb_streams;
nb_streams = ifile->nb_streams;
}
if (selected_streams[pkt.stream_index]) {
AVRational tb = fmt_ctx->streams[pkt.stream_index]->time_base;
AVRational tb = ifile->streams[pkt.stream_index].st->time_base;
if (pkt.pts != AV_NOPTS_VALUE)
*cur_ts = av_rescale_q(pkt.pts, tb, AV_TIME_BASE_Q);
@ -2076,12 +2111,12 @@ static int read_interval_packets(WriterContext *w, AVFormatContext *fmt_ctx,
frame_count++;
if (do_read_packets) {
if (do_show_packets)
show_packet(w, fmt_ctx, &pkt, i++);
show_packet(w, ifile, &pkt, i++);
nb_streams_packets[pkt.stream_index]++;
}
if (do_read_frames) {
pkt1 = pkt;
while (pkt1.size && process_frame(w, fmt_ctx, frame, &pkt1) > 0);
while (pkt1.size && process_frame(w, ifile, frame, &pkt1) > 0);
}
}
av_packet_unref(&pkt);
@ -2093,7 +2128,7 @@ static int read_interval_packets(WriterContext *w, AVFormatContext *fmt_ctx,
for (i = 0; i < fmt_ctx->nb_streams; i++) {
pkt.stream_index = i;
if (do_read_frames)
while (process_frame(w, fmt_ctx, frame, &pkt) > 0);
while (process_frame(w, ifile, frame, &pkt) > 0);
}
end:
@ -2105,17 +2140,18 @@ end:
return ret;
}
static int read_packets(WriterContext *w, AVFormatContext *fmt_ctx)
static int read_packets(WriterContext *w, InputFile *ifile)
{
AVFormatContext *fmt_ctx = ifile->fmt_ctx;
int i, ret = 0;
int64_t cur_ts = fmt_ctx->start_time;
if (read_intervals_nb == 0) {
ReadInterval interval = (ReadInterval) { .has_start = 0, .has_end = 0 };
ret = read_interval_packets(w, fmt_ctx, &interval, &cur_ts);
ret = read_interval_packets(w, ifile, &interval, &cur_ts);
} else {
for (i = 0; i < read_intervals_nb; i++) {
ret = read_interval_packets(w, fmt_ctx, &read_intervals[i], &cur_ts);
ret = read_interval_packets(w, ifile, &read_intervals[i], &cur_ts);
if (ret < 0)
break;
}
@ -2124,17 +2160,18 @@ static int read_packets(WriterContext *w, AVFormatContext *fmt_ctx)
return ret;
}
static int show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_idx, int in_program)
static int show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_idx, InputStream *ist, int in_program)
{
AVStream *stream = fmt_ctx->streams[stream_idx];
AVStream *stream = ist->st;
AVCodecParameters *par;
AVCodecContext *dec_ctx;
const AVCodec *dec;
char val_str[128];
const char *s;
AVRational sar, dar;
AVBPrint pbuf;
const AVCodecDescriptor *cd;
int ret = 0;
const char *profile = NULL;
av_bprint_init(&pbuf, 1, AV_BPRINT_SIZE_UNLIMITED);
@ -2142,140 +2179,138 @@ static int show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_id
print_int("index", stream->index);
if ((dec_ctx = stream->codec)) {
const char *profile = NULL;
dec = dec_ctx->codec;
if (dec) {
print_str("codec_name", dec->name);
if (!do_bitexact) {
if (dec->long_name) print_str ("codec_long_name", dec->long_name);
else print_str_opt("codec_long_name", "unknown");
}
} else if ((cd = avcodec_descriptor_get(stream->codec->codec_id))) {
print_str_opt("codec_name", cd->name);
if (!do_bitexact) {
print_str_opt("codec_long_name",
cd->long_name ? cd->long_name : "unknown");
}
} else {
print_str_opt("codec_name", "unknown");
if (!do_bitexact) {
print_str_opt("codec_long_name", "unknown");
}
}
if (!do_bitexact && dec && (profile = av_get_profile_name(dec, dec_ctx->profile)))
print_str("profile", profile);
else {
if (dec_ctx->profile != FF_PROFILE_UNKNOWN) {
char profile_num[12];
snprintf(profile_num, sizeof(profile_num), "%d", dec_ctx->profile);
print_str("profile", profile_num);
} else
print_str_opt("profile", "unknown");
}
s = av_get_media_type_string(dec_ctx->codec_type);
if (s) print_str ("codec_type", s);
else print_str_opt("codec_type", "unknown");
print_q("codec_time_base", dec_ctx->time_base, '/');
/* print AVI/FourCC tag */
av_get_codec_tag_string(val_str, sizeof(val_str), dec_ctx->codec_tag);
print_str("codec_tag_string", val_str);
print_fmt("codec_tag", "0x%04x", dec_ctx->codec_tag);
switch (dec_ctx->codec_type) {
case AVMEDIA_TYPE_VIDEO:
print_int("width", dec_ctx->width);
print_int("height", dec_ctx->height);
print_int("coded_width", dec_ctx->coded_width);
print_int("coded_height", dec_ctx->coded_height);
print_int("has_b_frames", dec_ctx->has_b_frames);
sar = av_guess_sample_aspect_ratio(fmt_ctx, stream, NULL);
if (sar.den) {
print_q("sample_aspect_ratio", sar, ':');
av_reduce(&dar.num, &dar.den,
dec_ctx->width * sar.num,
dec_ctx->height * sar.den,
1024*1024);
print_q("display_aspect_ratio", dar, ':');
} else {
print_str_opt("sample_aspect_ratio", "N/A");
print_str_opt("display_aspect_ratio", "N/A");
}
s = av_get_pix_fmt_name(dec_ctx->pix_fmt);
if (s) print_str ("pix_fmt", s);
else print_str_opt("pix_fmt", "unknown");
print_int("level", dec_ctx->level);
if (dec_ctx->color_range != AVCOL_RANGE_UNSPECIFIED)
print_str ("color_range", av_color_range_name(dec_ctx->color_range));
else
print_str_opt("color_range", "N/A");
s = av_get_colorspace_name(dec_ctx->colorspace);
if (s) print_str ("color_space", s);
else print_str_opt("color_space", "unknown");
if (dec_ctx->color_trc != AVCOL_TRC_UNSPECIFIED)
print_str("color_transfer", av_color_transfer_name(dec_ctx->color_trc));
else
print_str_opt("color_transfer", av_color_transfer_name(dec_ctx->color_trc));
if (dec_ctx->color_primaries != AVCOL_PRI_UNSPECIFIED)
print_str("color_primaries", av_color_primaries_name(dec_ctx->color_primaries));
else
print_str_opt("color_primaries", av_color_primaries_name(dec_ctx->color_primaries));
if (dec_ctx->chroma_sample_location != AVCHROMA_LOC_UNSPECIFIED)
print_str("chroma_location", av_chroma_location_name(dec_ctx->chroma_sample_location));
else
print_str_opt("chroma_location", av_chroma_location_name(dec_ctx->chroma_sample_location));
#if FF_API_PRIVATE_OPT
if (dec_ctx->timecode_frame_start >= 0) {
char tcbuf[AV_TIMECODE_STR_SIZE];
av_timecode_make_mpeg_tc_string(tcbuf, dec_ctx->timecode_frame_start);
print_str("timecode", tcbuf);
} else {
print_str_opt("timecode", "N/A");
}
#endif
print_int("refs", dec_ctx->refs);
break;
case AVMEDIA_TYPE_AUDIO:
s = av_get_sample_fmt_name(dec_ctx->sample_fmt);
if (s) print_str ("sample_fmt", s);
else print_str_opt("sample_fmt", "unknown");
print_val("sample_rate", dec_ctx->sample_rate, unit_hertz_str);
print_int("channels", dec_ctx->channels);
if (dec_ctx->channel_layout) {
av_bprint_clear(&pbuf);
av_bprint_channel_layout(&pbuf, dec_ctx->channels, dec_ctx->channel_layout);
print_str ("channel_layout", pbuf.str);
} else {
print_str_opt("channel_layout", "unknown");
}
print_int("bits_per_sample", av_get_bits_per_sample(dec_ctx->codec_id));
break;
case AVMEDIA_TYPE_SUBTITLE:
if (dec_ctx->width)
print_int("width", dec_ctx->width);
else
print_str_opt("width", "N/A");
if (dec_ctx->height)
print_int("height", dec_ctx->height);
else
print_str_opt("height", "N/A");
break;
par = stream->codecpar;
dec_ctx = ist->dec_ctx;
if (cd = avcodec_descriptor_get(par->codec_id)) {
print_str("codec_name", cd->name);
if (!do_bitexact) {
print_str("codec_long_name",
cd->long_name ? cd->long_name : "unknown");
}
} else {
print_str_opt("codec_type", "unknown");
print_str_opt("codec_name", "unknown");
if (!do_bitexact) {
print_str_opt("codec_long_name", "unknown");
}
}
if (dec_ctx->codec && dec_ctx->codec->priv_class && show_private_data) {
if (!do_bitexact && (profile = avcodec_profile_name(par->codec_id, par->profile)))
print_str("profile", profile);
else {
if (par->profile != FF_PROFILE_UNKNOWN) {
char profile_num[12];
snprintf(profile_num, sizeof(profile_num), "%d", par->profile);
print_str("profile", profile_num);
} else
print_str_opt("profile", "unknown");
}
s = av_get_media_type_string(par->codec_type);
if (s) print_str ("codec_type", s);
else print_str_opt("codec_type", "unknown");
#if FF_API_LAVF_AVCTX
if (dec_ctx)
print_q("codec_time_base", dec_ctx->time_base, '/');
#endif
/* print AVI/FourCC tag */
av_get_codec_tag_string(val_str, sizeof(val_str), par->codec_tag);
print_str("codec_tag_string", val_str);
print_fmt("codec_tag", "0x%04x", par->codec_tag);
switch (par->codec_type) {
case AVMEDIA_TYPE_VIDEO:
print_int("width", par->width);
print_int("height", par->height);
if (dec_ctx) {
print_int("coded_width", dec_ctx->coded_width);
print_int("coded_height", dec_ctx->coded_height);
}
print_int("has_b_frames", par->video_delay);
sar = av_guess_sample_aspect_ratio(fmt_ctx, stream, NULL);
if (sar.den) {
print_q("sample_aspect_ratio", sar, ':');
av_reduce(&dar.num, &dar.den,
par->width * sar.num,
par->height * sar.den,
1024*1024);
print_q("display_aspect_ratio", dar, ':');
} else {
print_str_opt("sample_aspect_ratio", "N/A");
print_str_opt("display_aspect_ratio", "N/A");
}
s = av_get_pix_fmt_name(par->format);
if (s) print_str ("pix_fmt", s);
else print_str_opt("pix_fmt", "unknown");
print_int("level", par->level);
if (par->color_range != AVCOL_RANGE_UNSPECIFIED)
print_str ("color_range", av_color_range_name(par->color_range));
else
print_str_opt("color_range", "N/A");
s = av_get_colorspace_name(par->color_space);
if (s) print_str ("color_space", s);
else print_str_opt("color_space", "unknown");
if (par->color_trc != AVCOL_TRC_UNSPECIFIED)
print_str("color_transfer", av_color_transfer_name(par->color_trc));
else
print_str_opt("color_transfer", av_color_transfer_name(par->color_trc));
if (par->color_primaries != AVCOL_PRI_UNSPECIFIED)
print_str("color_primaries", av_color_primaries_name(par->color_primaries));
else
print_str_opt("color_primaries", av_color_primaries_name(par->color_primaries));
if (par->chroma_location != AVCHROMA_LOC_UNSPECIFIED)
print_str("chroma_location", av_chroma_location_name(par->chroma_location));
else
print_str_opt("chroma_location", av_chroma_location_name(par->chroma_location));
#if FF_API_PRIVATE_OPT
if (dec_ctx && dec_ctx->timecode_frame_start >= 0) {
char tcbuf[AV_TIMECODE_STR_SIZE];
av_timecode_make_mpeg_tc_string(tcbuf, dec_ctx->timecode_frame_start);
print_str("timecode", tcbuf);
} else {
print_str_opt("timecode", "N/A");
}
#endif
if (dec_ctx)
print_int("refs", dec_ctx->refs);
break;
case AVMEDIA_TYPE_AUDIO:
s = av_get_sample_fmt_name(par->format);
if (s) print_str ("sample_fmt", s);
else print_str_opt("sample_fmt", "unknown");
print_val("sample_rate", par->sample_rate, unit_hertz_str);
print_int("channels", par->channels);
if (par->channel_layout) {
av_bprint_clear(&pbuf);
av_bprint_channel_layout(&pbuf, par->channels, par->channel_layout);
print_str ("channel_layout", pbuf.str);
} else {
print_str_opt("channel_layout", "unknown");
}
print_int("bits_per_sample", av_get_bits_per_sample(par->codec_id));
break;
case AVMEDIA_TYPE_SUBTITLE:
if (par->width)
print_int("width", par->width);
else
print_str_opt("width", "N/A");
if (par->height)
print_int("height", par->height);
else
print_str_opt("height", "N/A");
break;
}
if (dec_ctx && dec_ctx->codec && dec_ctx->codec->priv_class && show_private_data) {
const AVOption *opt = NULL;
while (opt = av_opt_next(dec_ctx->priv_data,opt)) {
uint8_t *str;
@ -2296,12 +2331,14 @@ static int show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_id
print_time("start_time", stream->start_time, &stream->time_base);
print_ts ("duration_ts", stream->duration);
print_time("duration", stream->duration, &stream->time_base);
if (dec_ctx->bit_rate > 0) print_val ("bit_rate", dec_ctx->bit_rate, unit_bit_per_second_str);
if (par->bit_rate > 0) print_val ("bit_rate", par->bit_rate, unit_bit_per_second_str);
else print_str_opt("bit_rate", "N/A");
if (dec_ctx->rc_max_rate > 0) print_val ("max_bit_rate", dec_ctx->rc_max_rate, unit_bit_per_second_str);
else print_str_opt("max_bit_rate", "N/A");
if (dec_ctx->bits_per_raw_sample > 0) print_fmt("bits_per_raw_sample", "%d", dec_ctx->bits_per_raw_sample);
else print_str_opt("bits_per_raw_sample", "N/A");
#if FF_API_LAVF_AVCTX
if (stream->codec->rc_max_rate > 0) print_val ("max_bit_rate", stream->codec->rc_max_rate, unit_bit_per_second_str);
else print_str_opt("max_bit_rate", "N/A");
#endif
if (dec_ctx && dec_ctx->bits_per_raw_sample > 0) print_fmt("bits_per_raw_sample", "%d", dec_ctx->bits_per_raw_sample);
else print_str_opt("bits_per_raw_sample", "N/A");
if (stream->nb_frames) print_fmt ("nb_frames", "%"PRId64, stream->nb_frames);
else print_str_opt("nb_frames", "N/A");
if (nb_streams_frames[stream_idx]) print_fmt ("nb_read_frames", "%"PRIu64, nb_streams_frames[stream_idx]);
@ -2309,10 +2346,10 @@ static int show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_id
if (nb_streams_packets[stream_idx]) print_fmt ("nb_read_packets", "%"PRIu64, nb_streams_packets[stream_idx]);
else print_str_opt("nb_read_packets", "N/A");
if (do_show_data)
writer_print_data(w, "extradata", dec_ctx->extradata,
dec_ctx->extradata_size);
writer_print_data_hash(w, "extradata_hash", dec_ctx->extradata,
dec_ctx->extradata_size);
writer_print_data(w, "extradata", par->extradata,
par->extradata_size);
writer_print_data_hash(w, "extradata_hash", par->extradata,
par->extradata_size);
/* Print disposition information */
#define PRINT_DISPOSITION(flagname, name) do { \
@ -2339,22 +2376,9 @@ static int show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_id
ret = show_tags(w, stream->metadata, in_program ? SECTION_ID_PROGRAM_STREAM_TAGS : SECTION_ID_STREAM_TAGS);
if (stream->nb_side_data) {
int i;
writer_print_section_header(w, SECTION_ID_STREAM_SIDE_DATA_LIST);
for (i = 0; i < stream->nb_side_data; i++) {
AVPacketSideData *sd = &stream->side_data[i];
const char *name = av_packet_side_data_name(sd->type);
writer_print_section_header(w, SECTION_ID_STREAM_SIDE_DATA);
print_str("side_data_type", name ? name : "unknown");
print_int("side_data_size", sd->size);
if (sd->type == AV_PKT_DATA_DISPLAYMATRIX && sd->size >= 9*4) {
writer_print_integers(w, "displaymatrix", sd->data, 9, " %11d", 3, 4, 1);
print_int("rotation", av_display_rotation_get((int32_t *)sd->data));
}
writer_print_section_footer(w);
}
writer_print_section_footer(w);
print_pkt_side_data(w, stream->side_data, stream->nb_side_data,
SECTION_ID_STREAM_SIDE_DATA_LIST,
SECTION_ID_STREAM_SIDE_DATA);
}
writer_print_section_footer(w);
@ -2364,14 +2388,15 @@ static int show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_id
return ret;
}
static int show_streams(WriterContext *w, AVFormatContext *fmt_ctx)
static int show_streams(WriterContext *w, InputFile *ifile)
{
AVFormatContext *fmt_ctx = ifile->fmt_ctx;
int i, ret = 0;
writer_print_section_header(w, SECTION_ID_STREAMS);
for (i = 0; i < fmt_ctx->nb_streams; i++)
for (i = 0; i < ifile->nb_streams; i++)
if (selected_streams[i]) {
ret = show_stream(w, fmt_ctx, i, 0);
ret = show_stream(w, fmt_ctx, i, &ifile->streams[i], 0);
if (ret < 0)
break;
}
@ -2380,8 +2405,9 @@ static int show_streams(WriterContext *w, AVFormatContext *fmt_ctx)
return ret;
}
static int show_program(WriterContext *w, AVFormatContext *fmt_ctx, AVProgram *program)
static int show_program(WriterContext *w, InputFile *ifile, AVProgram *program)
{
AVFormatContext *fmt_ctx = ifile->fmt_ctx;
int i, ret = 0;
writer_print_section_header(w, SECTION_ID_PROGRAM);
@ -2402,7 +2428,7 @@ static int show_program(WriterContext *w, AVFormatContext *fmt_ctx, AVProgram *p
writer_print_section_header(w, SECTION_ID_PROGRAM_STREAMS);
for (i = 0; i < program->nb_stream_indexes; i++) {
if (selected_streams[program->stream_index[i]]) {
ret = show_stream(w, fmt_ctx, program->stream_index[i], 1);
ret = show_stream(w, fmt_ctx, program->stream_index[i], &ifile->streams[program->stream_index[i]], 1);
if (ret < 0)
break;
}
@ -2414,8 +2440,9 @@ end:
return ret;
}
static int show_programs(WriterContext *w, AVFormatContext *fmt_ctx)
static int show_programs(WriterContext *w, InputFile *ifile)
{
AVFormatContext *fmt_ctx = ifile->fmt_ctx;
int i, ret = 0;
writer_print_section_header(w, SECTION_ID_PROGRAMS);
@ -2423,7 +2450,7 @@ static int show_programs(WriterContext *w, AVFormatContext *fmt_ctx)
AVProgram *program = fmt_ctx->programs[i];
if (!program)
continue;
ret = show_program(w, fmt_ctx, program);
ret = show_program(w, ifile, program);
if (ret < 0)
break;
}
@ -2431,8 +2458,9 @@ static int show_programs(WriterContext *w, AVFormatContext *fmt_ctx)
return ret;
}
static int show_chapters(WriterContext *w, AVFormatContext *fmt_ctx)
static int show_chapters(WriterContext *w, InputFile *ifile)
{
AVFormatContext *fmt_ctx = ifile->fmt_ctx;
int i, ret = 0;
writer_print_section_header(w, SECTION_ID_CHAPTERS);
@ -2455,8 +2483,9 @@ static int show_chapters(WriterContext *w, AVFormatContext *fmt_ctx)
return ret;
}
static int show_format(WriterContext *w, AVFormatContext *fmt_ctx)
static int show_format(WriterContext *w, InputFile *ifile)
{
AVFormatContext *fmt_ctx = ifile->fmt_ctx;
char val_str[128];
int64_t size = fmt_ctx->pb ? avio_size(fmt_ctx->pb) : -1;
int ret = 0;
@ -2499,7 +2528,7 @@ static void show_error(WriterContext *w, int err)
writer_print_section_footer(w);
}
static int open_input_file(AVFormatContext **fmt_ctx_ptr, const char *filename)
static int open_input_file(InputFile *ifile, const char *filename)
{
int err, i, orig_nb_streams;
AVFormatContext *fmt_ctx = NULL;
@ -2516,7 +2545,7 @@ static int open_input_file(AVFormatContext **fmt_ctx_ptr, const char *filename)
print_error(filename, err);
return err;
}
*fmt_ctx_ptr = fmt_ctx;
ifile->fmt_ctx = fmt_ctx;
if (scan_all_pmts_set)
av_dict_set(&format_opts, "scan_all_pmts", NULL, AV_DICT_MATCH_CASE);
if ((t = av_dict_get(format_opts, "", NULL, AV_DICT_IGNORE_SUFFIX))) {
@ -2541,26 +2570,58 @@ static int open_input_file(AVFormatContext **fmt_ctx_ptr, const char *filename)
av_dump_format(fmt_ctx, 0, filename, 0);
ifile->streams = av_mallocz_array(fmt_ctx->nb_streams,
sizeof(*ifile->streams));
if (!ifile->streams)
exit(1);
ifile->nb_streams = fmt_ctx->nb_streams;
/* bind a decoder to each input stream */
for (i = 0; i < fmt_ctx->nb_streams; i++) {
InputStream *ist = &ifile->streams[i];
AVStream *stream = fmt_ctx->streams[i];
AVCodec *codec;
if (stream->codec->codec_id == AV_CODEC_ID_PROBE) {
ist->st = stream;
if (stream->codecpar->codec_id == AV_CODEC_ID_PROBE) {
av_log(NULL, AV_LOG_WARNING,
"Failed to probe codec for input stream %d\n",
stream->index);
} else if (!(codec = avcodec_find_decoder(stream->codec->codec_id))) {
continue;
}
codec = avcodec_find_decoder(stream->codecpar->codec_id);
if (!codec) {
av_log(NULL, AV_LOG_WARNING,
"Unsupported codec with id %d for input stream %d\n",
stream->codec->codec_id, stream->index);
} else {
AVDictionary *opts = filter_codec_opts(codec_opts, stream->codec->codec_id,
stream->codecpar->codec_id, stream->index);
continue;
}
{
AVDictionary *opts = filter_codec_opts(codec_opts, stream->codecpar->codec_id,
fmt_ctx, stream, codec);
if (avcodec_open2(stream->codec, codec, &opts) < 0) {
ist->dec_ctx = avcodec_alloc_context3(codec);
if (!ist->dec_ctx)
exit(1);
err = avcodec_parameters_to_context(ist->dec_ctx, stream->codecpar);
if (err < 0)
exit(1);
ist->dec_ctx->pkt_timebase = stream->time_base;
#if FF_API_LAVF_AVCTX
ist->dec_ctx->time_base = stream->codec->time_base;
ist->dec_ctx->framerate = stream->codec->framerate;
#endif
if (avcodec_open2(ist->dec_ctx, codec, &opts) < 0) {
av_log(NULL, AV_LOG_WARNING, "Could not open codec for input stream %d\n",
stream->index);
exit(1);
}
if ((t = av_dict_get(opts, "", NULL, AV_DICT_IGNORE_SUFFIX))) {
av_log(NULL, AV_LOG_ERROR, "Option %s for input stream %d not found\n",
t->key, stream->index);
@ -2569,47 +2630,49 @@ static int open_input_file(AVFormatContext **fmt_ctx_ptr, const char *filename)
}
}
*fmt_ctx_ptr = fmt_ctx;
ifile->fmt_ctx = fmt_ctx;
return 0;
}
static void close_input_file(AVFormatContext **ctx_ptr)
static void close_input_file(InputFile *ifile)
{
int i;
AVFormatContext *fmt_ctx = *ctx_ptr;
/* close decoder for each stream */
for (i = 0; i < fmt_ctx->nb_streams; i++)
if (fmt_ctx->streams[i]->codec->codec_id != AV_CODEC_ID_NONE)
avcodec_close(fmt_ctx->streams[i]->codec);
for (i = 0; i < ifile->nb_streams; i++)
if (ifile->streams[i].st->codecpar->codec_id != AV_CODEC_ID_NONE)
avcodec_free_context(&ifile->streams[i].dec_ctx);
avformat_close_input(ctx_ptr);
av_freep(&ifile->streams);
ifile->nb_streams = 0;
avformat_close_input(&ifile->fmt_ctx);
}
static int probe_file(WriterContext *wctx, const char *filename)
{
AVFormatContext *fmt_ctx = NULL;
InputFile ifile = { 0 };
int ret, i;
int section_id;
do_read_frames = do_show_frames || do_count_frames;
do_read_packets = do_show_packets || do_count_packets;
ret = open_input_file(&fmt_ctx, filename);
ret = open_input_file(&ifile, filename);
if (ret < 0)
goto end;
#define CHECK_END if (ret < 0) goto end
nb_streams = fmt_ctx->nb_streams;
REALLOCZ_ARRAY_STREAM(nb_streams_frames,0,fmt_ctx->nb_streams);
REALLOCZ_ARRAY_STREAM(nb_streams_packets,0,fmt_ctx->nb_streams);
REALLOCZ_ARRAY_STREAM(selected_streams,0,fmt_ctx->nb_streams);
nb_streams = ifile.fmt_ctx->nb_streams;
REALLOCZ_ARRAY_STREAM(nb_streams_frames,0,ifile.fmt_ctx->nb_streams);
REALLOCZ_ARRAY_STREAM(nb_streams_packets,0,ifile.fmt_ctx->nb_streams);
REALLOCZ_ARRAY_STREAM(selected_streams,0,ifile.fmt_ctx->nb_streams);
for (i = 0; i < fmt_ctx->nb_streams; i++) {
for (i = 0; i < ifile.fmt_ctx->nb_streams; i++) {
if (stream_specifier) {
ret = avformat_match_stream_specifier(fmt_ctx,
fmt_ctx->streams[i],
ret = avformat_match_stream_specifier(ifile.fmt_ctx,
ifile.fmt_ctx->streams[i],
stream_specifier);
CHECK_END;
else
@ -2630,33 +2693,33 @@ static int probe_file(WriterContext *wctx, const char *filename)
section_id = SECTION_ID_FRAMES;
if (do_show_frames || do_show_packets)
writer_print_section_header(wctx, section_id);
ret = read_packets(wctx, fmt_ctx);
ret = read_packets(wctx, &ifile);
if (do_show_frames || do_show_packets)
writer_print_section_footer(wctx);
CHECK_END;
}
if (do_show_programs) {
ret = show_programs(wctx, fmt_ctx);
ret = show_programs(wctx, &ifile);
CHECK_END;
}
if (do_show_streams) {
ret = show_streams(wctx, fmt_ctx);
ret = show_streams(wctx, &ifile);
CHECK_END;
}
if (do_show_chapters) {
ret = show_chapters(wctx, fmt_ctx);
ret = show_chapters(wctx, &ifile);
CHECK_END;
}
if (do_show_format) {
ret = show_format(wctx, fmt_ctx);
ret = show_format(wctx, &ifile);
CHECK_END;
}
end:
if (fmt_ctx)
close_input_file(&fmt_ctx);
if (ifile.fmt_ctx)
close_input_file(&ifile);
av_freep(&nb_streams_frames);
av_freep(&nb_streams_packets);
av_freep(&selected_streams);
@ -3214,6 +3277,7 @@ int main(int argc, char **argv)
SET_DO_SHOW(FRAME_TAGS, frame_tags);
SET_DO_SHOW(PROGRAM_TAGS, program_tags);
SET_DO_SHOW(STREAM_TAGS, stream_tags);
SET_DO_SHOW(PROGRAM_STREAM_TAGS, stream_tags);
SET_DO_SHOW(PACKET_TAGS, packet_tags);
if (do_bitexact && (do_show_program_version || do_show_library_versions)) {

View File

@ -373,8 +373,8 @@ static void ffm_set_write_index(AVFormatContext *s, int64_t pos,
int64_t file_size)
{
av_opt_set_int(s, "server_attached", 1, AV_OPT_SEARCH_CHILDREN);
av_opt_set_int(s, "write_index", pos, AV_OPT_SEARCH_CHILDREN);
av_opt_set_int(s, "file_size", file_size, AV_OPT_SEARCH_CHILDREN);
av_opt_set_int(s, "ffm_write_index", pos, AV_OPT_SEARCH_CHILDREN);
av_opt_set_int(s, "ffm_file_size", file_size, AV_OPT_SEARCH_CHILDREN);
}
static char *ctime1(char *buf2, size_t buf_size)
@ -2622,6 +2622,7 @@ static int http_start_receive_data(HTTPContext *c)
{
int fd;
int ret;
int64_t ret64;
if (c->stream->feed_opened) {
http_log("Stream feed '%s' was not opened\n",
@ -2657,13 +2658,13 @@ static int http_start_receive_data(HTTPContext *c)
return ret;
}
} else {
ret = ffm_read_write_index(fd);
if (ret < 0) {
ret64 = ffm_read_write_index(fd);
if (ret64 < 0) {
http_log("Error reading write index from feed file '%s': %s\n",
c->stream->feed_filename, strerror(errno));
return ret;
return ret64;
}
c->stream->feed_write_index = ret;
c->stream->feed_write_index = ret64;
}
c->stream->feed_write_index = FFMAX(ffm_read_write_index(fd),
@ -2995,6 +2996,8 @@ static int prepare_sdp_description(FFServerStream *stream, uint8_t **pbuffer,
for(i = 0; i < stream->nb_streams; i++) {
avc->streams[i] = &avs[i];
avc->streams[i]->codec = stream->streams[i]->codec;
avcodec_parameters_from_context(stream->streams[i]->codecpar, stream->streams[i]->codec);
avc->streams[i]->codecpar = stream->streams[i]->codecpar;
}
*pbuffer = av_mallocz(2048);
if (!*pbuffer)
@ -3535,6 +3538,8 @@ static AVStream *add_av_stream1(FFServerStream *stream,
fst->priv_data = av_mallocz(sizeof(FeedData));
fst->internal = av_mallocz(sizeof(*fst->internal));
fst->internal->avctx = avcodec_alloc_context3(NULL);
fst->codecpar = avcodec_parameters_alloc();
fst->index = stream->nb_streams;
avpriv_set_pts_info(fst, 33, 1, 90000);
fst->sample_aspect_ratio = codec->sample_aspect_ratio;
@ -3858,6 +3863,8 @@ drop:
if (avformat_write_header(s, NULL) < 0) {
http_log("Container doesn't support the required parameters\n");
avio_closep(&s->pb);
s->streams = NULL;
s->nb_streams = 0;
avformat_free_context(s);
goto bail;
}

View File

@ -1138,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

@ -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>

View File

@ -5,10 +5,12 @@ NAME = avcodec
HEADERS = avcodec.h \
avdct.h \
avfft.h \
dv_profile.h \
d3d11va.h \
dirac.h \
dv_profile.h \
dxva2.h \
jni.h \
mediacodec.h \
qsv.h \
vaapi.h \
vda.h \
@ -25,12 +27,16 @@ 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 \
@ -78,6 +84,7 @@ 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
@ -87,6 +94,7 @@ 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
@ -118,6 +126,8 @@ 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
@ -131,17 +141,17 @@ 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_float.o \
aacadtsdec.o mpeg4audio.o kbdwin.o \
sbrdsp.o aacpsdsp_float.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
sbrdsp_fixed.o aacpsdsp_fixed.o cbrt_data_fixed.o
OBJS-$(CONFIG_AAC_ENCODER) += aacenc.o aaccoder.o aacenctab.o \
aacpsy.o aactab.o \
aacenc_is.o \
aacenc_tns.o \
aacenc_ltp.o \
aacenc_pred.o \
psymodel.o mpeg4audio.o kbdwin.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
@ -171,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
@ -216,31 +226,33 @@ 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 dcadata.o \
dca_core.o dca_exss.o dca_xll.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_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_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
@ -258,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
@ -296,22 +308,36 @@ OBJS-$(CONFIG_H263_DECODER) += h263dec.o h263.o ituh263dec.o \
mpeg4video.o mpeg4videodec.o flvdec.o\
intelh263dec.o h263data.o
OBJS-$(CONFIG_H263_ENCODER) += mpeg4videoenc.o mpeg4video.o \
h263.o h263data.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_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 hevc_parse.o hevc_data.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 hevc_parse.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
@ -342,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
@ -352,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
@ -376,22 +405,23 @@ 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_MPEG2VIDEO_DECODER) += mpeg12dec.o mpeg12.o mpeg12data.o
OBJS-$(CONFIG_MPEG2VIDEO_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
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
@ -471,6 +501,7 @@ 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 \
@ -497,10 +528,11 @@ 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_TEXT_ENCODER) += srtenc.o ass_split.o
OBJS-$(CONFIG_TAK_DECODER) += takdec.o tak.o takdsp.o
@ -515,11 +547,12 @@ 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
OBJS-$(CONFIG_ULTI_DECODER) += ulti.o
@ -527,20 +560,20 @@ 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
@ -558,8 +591,10 @@ OBJS-$(CONFIG_VP6_DECODER) += vp6.o vp56.o vp56data.o \
vp6dsp.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
@ -578,13 +613,13 @@ 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 \
OBJS-$(CONFIG_WMV2_DECODER) += wmv2dec.o wmv2.o wmv2data.o \
msmpeg4dec.o msmpeg4.o msmpeg4data.o
OBJS-$(CONFIG_WMV2_ENCODER) += wmv2enc.o wmv2.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_WS_SND1_DECODER) += ws-snd1.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
OBJS-$(CONFIG_XAN_WC4_DECODER) += xxan.o
@ -602,6 +637,7 @@ 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
@ -689,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
@ -704,6 +741,7 @@ 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
@ -757,28 +795,24 @@ 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_AVI_DEMUXER) += mpeg4audio.o mpegaudiodata.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
@ -794,14 +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_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
@ -812,11 +864,12 @@ OBJS-$(CONFIG_LIBGSM_MS_ENCODER) += libgsmenc.o
OBJS-$(CONFIG_LIBILBC_DECODER) += libilbc.o
OBJS-$(CONFIG_LIBILBC_ENCODER) += libilbc.o
OBJS-$(CONFIG_LIBKVAZAAR_ENCODER) += libkvazaar.o
OBJS-$(CONFIG_LIBMP3LAME_ENCODER) += libmp3lame.o mpegaudiodecheader.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 \
@ -832,8 +885,6 @@ OBJS-$(CONFIG_LIBSPEEX_DECODER) += libspeexdec.o
OBJS-$(CONFIG_LIBSPEEX_ENCODER) += libspeexenc.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_AMRWBENC_ENCODER) += libvo-amrwbenc.o
OBJS-$(CONFIG_LIBVORBIS_DECODER) += libvorbisdec.o
OBJS-$(CONFIG_LIBVORBIS_ENCODER) += libvorbisenc.o \
@ -853,16 +904,16 @@ 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
@ -876,8 +927,9 @@ 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 hevc_parse.o hevc_ps.o hevc_data.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 \
@ -894,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
@ -904,6 +957,7 @@ 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
@ -916,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
@ -939,15 +994,17 @@ SKIPHEADERS += %_tablegen.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_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
@ -956,14 +1013,15 @@ TESTPROGS = imgconvert \
jpeg2000dwt \
mathops \
options \
avfft \
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
@ -986,7 +1044,7 @@ HOSTPROGS = aacps_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
@ -1011,17 +1069,17 @@ $(GEN_HEADERS): $(SUBDIR)%_tables.h: $(SUBDIR)%_tablegen$(HOSTEXESUF)
$(M)./$< > $@
ifdef CONFIG_HARDCODED_TABLES
$(SUBDIR)aacdec.o: $(SUBDIR)cbrt_tables.h
$(SUBDIR)aacdec_fixed.o: $(SUBDIR)cbrt_fixed_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)sinewin_fixed.o: $(SUBDIR)sinewin_fixed_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

@ -34,6 +34,7 @@ int ff_aac_ac3_parse(AVCodecParserContext *s1,
ParseContext *pc = &s->pc;
int len, i;
int new_frame_start;
int got_frame = 0;
get_next:
i=END_NOT_FOUND;
@ -51,6 +52,7 @@ get_next:
if(len<=0){
i=END_NOT_FOUND;
}else{
got_frame = 1;
s->state=0;
i-= s->header_size -1;
s->remaining_size = len;
@ -76,31 +78,34 @@ get_next:
if(s->codec_id)
avctx->codec_id = s->codec_id;
/* Due to backwards compatible HE-AAC the sample rate, channel count,
and total number of samples found in an AAC ADTS header are not
reliable. Bit rate is still accurate because the total frame duration in
seconds is still correct (as is the number of bits in the frame). */
if (avctx->codec_id != AV_CODEC_ID_AAC) {
avctx->sample_rate = s->sample_rate;
if (got_frame) {
/* Due to backwards compatible HE-AAC the sample rate, channel count,
and total number of samples found in an AAC ADTS header are not
reliable. Bit rate is still accurate because the total frame
duration in seconds is still correct (as is the number of bits in
the frame). */
if (avctx->codec_id != AV_CODEC_ID_AAC) {
avctx->sample_rate = s->sample_rate;
/* (E-)AC-3: allow downmixing to stereo or mono */
if (s->channels > 1 &&
avctx->request_channel_layout == AV_CH_LAYOUT_MONO) {
avctx->channels = 1;
avctx->channel_layout = AV_CH_LAYOUT_MONO;
} else if (s->channels > 2 &&
avctx->request_channel_layout == AV_CH_LAYOUT_STEREO) {
avctx->channels = 2;
avctx->channel_layout = AV_CH_LAYOUT_STEREO;
} else {
avctx->channels = s->channels;
avctx->channel_layout = s->channel_layout;
/* (E-)AC-3: allow downmixing to stereo or mono */
if (s->channels > 1 &&
avctx->request_channel_layout == AV_CH_LAYOUT_MONO) {
avctx->channels = 1;
avctx->channel_layout = AV_CH_LAYOUT_MONO;
} else if (s->channels > 2 &&
avctx->request_channel_layout == AV_CH_LAYOUT_STEREO) {
avctx->channels = 2;
avctx->channel_layout = AV_CH_LAYOUT_STEREO;
} else {
avctx->channels = s->channels;
avctx->channel_layout = s->channel_layout;
}
s1->duration = s->samples;
avctx->audio_service_type = s->service_type;
}
s1->duration = s->samples;
avctx->audio_service_type = s->service_type;
}
avctx->bit_rate = s->bit_rate;
avctx->bit_rate = s->bit_rate;
}
return i;
}

View File

@ -21,6 +21,7 @@
#include "avcodec.h"
#include "aacadtsdec.h"
#include "bsf.h"
#include "put_bits.h"
#include "get_bits.h"
#include "mpeg4audio.h"
@ -34,68 +35,75 @@ typedef struct AACBSFContext {
* This filter creates an MPEG-4 AudioSpecificConfig from an MPEG-2/4
* ADTS header and removes the ADTS header.
*/
static int aac_adtstoasc_filter(AVBitStreamFilterContext *bsfc,
AVCodecContext *avctx, const char *args,
uint8_t **poutbuf, int *poutbuf_size,
const uint8_t *buf, int buf_size,
int keyframe)
static int aac_adtstoasc_filter(AVBSFContext *bsfc, AVPacket *out)
{
AACBSFContext *ctx = bsfc->priv_data;
GetBitContext gb;
PutBitContext pb;
AACADTSHeaderInfo hdr;
AVPacket *in;
int ret;
AACBSFContext *ctx = bsfc->priv_data;
ret = ff_bsf_get_packet(bsfc, &in);
if (ret < 0)
return ret;
init_get_bits(&gb, buf, AAC_ADTS_HEADER_SIZE*8);
if (in->size < AAC_ADTS_HEADER_SIZE)
goto packet_too_small;
*poutbuf = (uint8_t*) buf;
*poutbuf_size = buf_size;
init_get_bits(&gb, in->data, AAC_ADTS_HEADER_SIZE * 8);
if (avctx->extradata)
if (show_bits(&gb, 12) != 0xfff)
return 0;
if (bsfc->par_in->extradata && show_bits(&gb, 12) != 0xfff)
goto finish;
if (avpriv_aac_parse_header(&gb, &hdr) < 0) {
av_log(avctx, AV_LOG_ERROR, "Error parsing ADTS frame header!\n");
return AVERROR_INVALIDDATA;
av_log(bsfc, AV_LOG_ERROR, "Error parsing ADTS frame header!\n");
ret = AVERROR_INVALIDDATA;
goto fail;
}
if (!hdr.crc_absent && hdr.num_aac_frames > 1) {
avpriv_report_missing_feature(avctx,
avpriv_report_missing_feature(bsfc,
"Multiple RDBs per frame with CRC");
return AVERROR_PATCHWELCOME;
ret = AVERROR_PATCHWELCOME;
goto fail;
}
buf += AAC_ADTS_HEADER_SIZE + 2*!hdr.crc_absent;
buf_size -= AAC_ADTS_HEADER_SIZE + 2*!hdr.crc_absent;
in->size -= AAC_ADTS_HEADER_SIZE + 2 * !hdr.crc_absent;
if (in->size <= 0)
goto packet_too_small;
in->data += AAC_ADTS_HEADER_SIZE + 2 * !hdr.crc_absent;
if (!ctx->first_frame_done) {
int pce_size = 0;
uint8_t pce_data[MAX_PCE_SIZE];
uint8_t *extradata;
if (!hdr.chan_config) {
init_get_bits(&gb, buf, buf_size * 8);
init_get_bits(&gb, in->data, in->size * 8);
if (get_bits(&gb, 3) != 5) {
avpriv_report_missing_feature(avctx,
avpriv_report_missing_feature(bsfc,
"PCE-based channel configuration "
"without PCE as first syntax "
"element");
return AVERROR_PATCHWELCOME;
ret = AVERROR_PATCHWELCOME;
goto fail;
}
init_put_bits(&pb, pce_data, MAX_PCE_SIZE);
pce_size = avpriv_copy_pce_data(&pb, &gb)/8;
flush_put_bits(&pb);
buf_size -= get_bits_count(&gb)/8;
buf += get_bits_count(&gb)/8;
}
av_free(avctx->extradata);
avctx->extradata_size = 2 + pce_size;
avctx->extradata = av_mallocz(avctx->extradata_size + AV_INPUT_BUFFER_PADDING_SIZE);
if (!avctx->extradata) {
avctx->extradata_size = 0;
return AVERROR(ENOMEM);
in->size -= get_bits_count(&gb)/8;
in->data += get_bits_count(&gb)/8;
}
init_put_bits(&pb, avctx->extradata, avctx->extradata_size);
extradata = av_mallocz(2 + pce_size + AV_INPUT_BUFFER_PADDING_SIZE);
if (!extradata) {
ret = AVERROR(ENOMEM);
goto fail;
}
init_put_bits(&pb, extradata, 2 + pce_size);
put_bits(&pb, 5, hdr.object_type);
put_bits(&pb, 4, hdr.sampling_index);
put_bits(&pb, 4, hdr.chan_config);
@ -104,20 +112,44 @@ static int aac_adtstoasc_filter(AVBitStreamFilterContext *bsfc,
put_bits(&pb, 1, 0); //is not extension
flush_put_bits(&pb);
if (pce_size) {
memcpy(avctx->extradata + 2, pce_data, pce_size);
memcpy(extradata + 2, pce_data, pce_size);
}
bsfc->par_out->extradata = extradata;
bsfc->par_out->extradata_size = 2 + pce_size;
ctx->first_frame_done = 1;
}
*poutbuf = (uint8_t*) buf;
*poutbuf_size = buf_size;
finish:
av_packet_move_ref(out, in);
av_packet_free(&in);
return 0;
packet_too_small:
av_log(bsfc, AV_LOG_ERROR, "Input packet too small\n");
ret = AVERROR_INVALIDDATA;
fail:
av_packet_free(&in);
return ret;
}
static int aac_adtstoasc_init(AVBSFContext *ctx)
{
av_freep(&ctx->par_out->extradata);
ctx->par_out->extradata_size = 0;
return 0;
}
AVBitStreamFilter ff_aac_adtstoasc_bsf = {
static const enum AVCodecID codec_ids[] = {
AV_CODEC_ID_AAC, AV_CODEC_ID_NONE,
};
const AVBitStreamFilter ff_aac_adtstoasc_bsf = {
.name = "aac_adtstoasc",
.priv_data_size = sizeof(AACBSFContext),
.init = aac_adtstoasc_init,
.filter = aac_adtstoasc_filter,
.codec_ids = codec_ids,
};

View File

@ -89,9 +89,9 @@ typedef float AAC_FLOAT;
typedef unsigned AAC_SIGNE;
#define FIXR(x) ((float)(x))
#define FIXR10(x) ((float)(x))
#define Q23(x) x
#define Q30(x) x
#define Q31(x) x
#define Q23(x) ((float)(x))
#define Q30(x) ((float)(x))
#define Q31(x) ((float)(x))
#define RANGE15(x) (32768.0 * (x))
#define GET_GAIN(x, y) powf((x), -(y))
#define AAC_MUL16(x, y) ((x) * (y))

View File

@ -77,7 +77,7 @@ static void search_for_quantizers_twoloop(AVCodecContext *avctx,
int toomanybits, toofewbits;
char nzs[128];
uint8_t nextband[128];
int maxsf[128];
int maxsf[128], minsf[128];
float dists[128] = { 0 }, qenergies[128] = { 0 }, uplims[128], euplims[128], energies[128];
float maxvals[128], spread_thr_r[128];
float min_spread_thr_r, max_spread_thr_r;
@ -294,11 +294,19 @@ static void search_for_quantizers_twoloop(AVCodecContext *avctx,
abs_pow34_v(s->scoefs, sce->coeffs, 1024);
ff_quantize_band_cost_cache_init(s);
for (i = 0; i < sizeof(minsf) / sizeof(minsf[0]); ++i)
minsf[i] = 0;
for (w = 0; w < sce->ics.num_windows; w += sce->ics.group_len[w]) {
start = w*128;
for (g = 0; g < sce->ics.num_swb; g++) {
const float *scaled = s->scoefs + start;
int minsfidx;
maxvals[w*16+g] = find_max_val(sce->ics.group_len[w], sce->ics.swb_sizes[g], scaled);
if (maxvals[w*16+g] > 0) {
minsfidx = coef2minsf(maxvals[w*16+g]);
for (w2 = 0; w2 < sce->ics.group_len[w]; w2++)
minsf[(w+w2)*16+g] = minsfidx;
}
start += sce->ics.swb_sizes[g];
}
}
@ -425,7 +433,7 @@ static void search_for_quantizers_twoloop(AVCodecContext *avctx,
recomprd = 1;
for (i = 0; i < 128; i++) {
if (sce->sf_idx[i] > SCALE_ONE_POS) {
int new_sf = FFMAX(SCALE_ONE_POS, sce->sf_idx[i] - qstep);
int new_sf = FFMAX3(minsf[i], SCALE_ONE_POS, sce->sf_idx[i] - qstep);
if (new_sf != sce->sf_idx[i]) {
sce->sf_idx[i] = new_sf;
changed = 1;
@ -595,7 +603,7 @@ static void search_for_quantizers_twoloop(AVCodecContext *avctx,
int cmb = find_min_book(maxvals[w*16+g], sce->sf_idx[w*16+g]);
int mindeltasf = FFMAX(0, prev - SCALE_MAX_DIFF);
int maxdeltasf = FFMIN(SCALE_MAX_POS - SCALE_DIV_512, prev + SCALE_MAX_DIFF);
if ((!cmb || dists[w*16+g] > uplims[w*16+g]) && sce->sf_idx[w*16+g] > mindeltasf) {
if ((!cmb || dists[w*16+g] > uplims[w*16+g]) && sce->sf_idx[w*16+g] > FFMAX(mindeltasf, minsf[w*16+g])) {
/* Try to make sure there is some energy in every nonzero band
* NOTE: This algorithm must be forcibly imbalanced, pushing harder
* on holes or more distorted bands at first, otherwise there's

View File

@ -50,7 +50,7 @@
#include "aac.h"
#include "aactab.h"
#include "aacdectab.h"
#include "cbrt_tablegen.h"
#include "cbrt_data.h"
#include "sbr.h"
#include "aacsbr.h"
#include "mpeg4audio.h"

View File

@ -75,7 +75,7 @@
#include "aac.h"
#include "aactab.h"
#include "aacdectab.h"
#include "cbrt_tablegen.h"
#include "cbrt_data.h"
#include "sbr.h"
#include "aacsbr.h"
#include "mpeg4audio.h"
@ -155,9 +155,9 @@ static void vector_pow43(int *coefs, int len)
for (i=0; i<len; i++) {
coef = coefs[i];
if (coef < 0)
coef = -(int)cbrt_tab[-coef];
coef = -(int)ff_cbrt_tab_fixed[-coef];
else
coef = (int)cbrt_tab[coef];
coef = (int)ff_cbrt_tab_fixed[coef];
coefs[i] = coef;
}
}

View File

@ -1104,7 +1104,7 @@ static av_cold void aac_static_table_init(void)
AAC_RENAME(ff_init_ff_sine_windows)( 9);
AAC_RENAME(ff_init_ff_sine_windows)( 7);
AAC_RENAME(cbrt_tableinit)();
AAC_RENAME(ff_cbrt_tableinit)();
}
static AVOnce aac_table_init = AV_ONCE_INIT;
@ -1795,7 +1795,7 @@ static int decode_spectrum_and_dequant(AACContext *ac, INTFLOAT coef[1024],
v = -v;
*icf++ = v;
#else
*icf++ = cbrt_tab[n] | (bits & 1U<<31);
*icf++ = ff_cbrt_tab[n] | (bits & 1U<<31);
#endif /* USE_FIXED */
bits <<= 1;
} else {

View File

@ -78,11 +78,10 @@ static void put_audio_specific_config(AVCodecContext *avctx)
void ff_quantize_band_cost_cache_init(struct AACEncContext *s)
{
int sf, g;
for (sf = 0; sf < 256; sf++) {
for (g = 0; g < 128; g++) {
s->quantize_band_cost_cache[sf][g].bits = -1;
}
++s->quantize_band_cost_cache_generation;
if (s->quantize_band_cost_cache_generation == 0) {
memset(s->quantize_band_cost_cache, 0, sizeof(s->quantize_band_cost_cache));
s->quantize_band_cost_cache_generation = 1;
}
}
@ -555,10 +554,11 @@ static int aac_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
if (!frame)
la = NULL;
if (tag == TYPE_LFE) {
wi[ch].window_type[0] = ONLY_LONG_SEQUENCE;
wi[ch].window_type[0] = wi[ch].window_type[1] = ONLY_LONG_SEQUENCE;
wi[ch].window_shape = 0;
wi[ch].num_windows = 1;
wi[ch].grouping[0] = 1;
wi[ch].clipping[0] = 0;
/* Only the lowest 12 coefficients are used in a LFE channel.
* The expression below results in only the bottom 8 coefficients
@ -583,9 +583,22 @@ static int aac_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
ics->tns_max_bands = wi[ch].window_type[0] == EIGHT_SHORT_SEQUENCE ?
ff_tns_max_bands_128 [s->samplerate_index]:
ff_tns_max_bands_1024[s->samplerate_index];
clip_avoidance_factor = 0.0f;
for (w = 0; w < ics->num_windows; w++)
ics->group_len[w] = wi[ch].grouping[w];
/* Calculate input sample maximums and evaluate clipping risk */
clip_avoidance_factor = 0.0f;
for (w = 0; w < ics->num_windows; w++) {
const float *wbuf = overlap + w * 128;
const int wlen = 2048 / ics->num_windows;
float max = 0;
int j;
/* mdct input is 2 * output */
for (j = 0; j < wlen; j++)
max = FFMAX(max, fabsf(wbuf[j]));
wi[ch].clipping[w] = max;
}
for (w = 0; w < ics->num_windows; w++) {
if (wi[ch].clipping[w] > CLIP_AVOIDANCE_FACTOR) {
ics->window_clipping[w] = 1;

View File

@ -84,10 +84,10 @@ extern AACCoefficientsEncoder ff_aac_coders[];
typedef struct AACQuantizeBandCostCacheEntry {
float rd;
float energy;
int bits; ///< -1 means uninitialized entry
int bits;
char cb;
char rtz;
char padding[2]; ///< Keeps the entry size a multiple of 32 bits
uint16_t generation;
} AACQuantizeBandCostCacheEntry;
/**
@ -126,6 +126,7 @@ typedef struct AACEncContext {
DECLARE_ALIGNED(16, int, qcoefs)[96]; ///< quantized coefficients
DECLARE_ALIGNED(32, float, scoefs)[1024]; ///< scaled coefficients
uint16_t quantize_band_cost_cache_generation;
AACQuantizeBandCostCacheEntry quantize_band_cost_cache[256][128]; ///< memoization area for quantize_band_cost
struct {

View File

@ -36,11 +36,12 @@ static inline float quantize_band_cost_cached(struct AACEncContext *s, int w, in
AACQuantizeBandCostCacheEntry *entry;
av_assert1(scale_idx >= 0 && scale_idx < 256);
entry = &s->quantize_band_cost_cache[scale_idx][w*16+g];
if (entry->bits < 0 || entry->cb != cb || entry->rtz != rtz) {
if (entry->generation != s->quantize_band_cost_cache_generation || entry->cb != cb || entry->rtz != rtz) {
entry->rd = quantize_band_cost(s, in, scaled, size, scale_idx,
cb, lambda, uplim, &entry->bits, &entry->energy, rtz);
entry->cb = cb;
entry->rtz = rtz;
entry->generation = s->quantize_band_cost_cache_generation;
}
if (bits)
*bits = entry->bits;

View File

@ -28,6 +28,7 @@
#ifndef AVCODEC_AACENC_UTILS_H
#define AVCODEC_AACENC_UTILS_H
#include "libavutil/ffmath.h"
#include "aac.h"
#include "aacenctab.h"
#include "aactab.h"
@ -66,13 +67,13 @@ static inline void quantize_bands(int *out, const float *in, const float *scaled
const float rounding)
{
int i;
double qc;
for (i = 0; i < size; i++) {
qc = scaled[i] * Q34;
out[i] = (int)FFMIN(qc + rounding, (double)maxval);
float qc = scaled[i] * Q34;
int tmp = (int)FFMIN(qc + rounding, (float)maxval);
if (is_signed && in[i] < 0.0f) {
out[i] = -out[i];
tmp = -tmp;
}
out[i] = tmp;
}
}
@ -90,8 +91,7 @@ static inline float find_max_val(int group_len, int swb_size, const float *scale
static inline int find_min_book(float maxval, int sf)
{
float Q = ff_aac_pow2sf_tab[POW_SF2_ZERO - sf + SCALE_ONE_POS - SCALE_DIV_512];
float Q34 = sqrtf(Q * sqrtf(Q));
float Q34 = ff_aac_pow34sf_tab[POW_SF2_ZERO - sf + SCALE_ONE_POS - SCALE_DIV_512];
int qmaxval, cb;
qmaxval = maxval * Q34 + C_QUANT;
if (qmaxval >= (FF_ARRAY_ELEMS(aac_maxval_cb)))
@ -123,7 +123,10 @@ static inline float find_form_factor(int group_len, int swb_size, float thresh,
if (s >= ethresh) {
nzl += 1.0f;
} else {
nzl += powf(s / ethresh, nzslope);
if (nzslope == 2.f)
nzl += (s / ethresh) * (s / ethresh);
else
nzl += ff_fast_powf(s / ethresh, nzslope);
}
}
if (e2 > thresh) {

View File

@ -25,8 +25,7 @@
*/
#include "libavutil/attributes.h"
#include "libavutil/internal.h"
#include "libavutil/libm.h"
#include "libavutil/ffmath.h"
#include "avcodec.h"
#include "aactab.h"
@ -686,7 +685,7 @@ static void psy_3gpp_analyze_channel(FFPsyContext *ctx, int channel,
band->thr_quiet = band->thr = FFMAX(band->thr, coeffs[g].ath);
//5.4.2.5 "Pre-echo control"
if (!(wi->window_type[0] == LONG_STOP_SEQUENCE || (wi->window_type[1] == LONG_START_SEQUENCE && !w)))
if (!(wi->window_type[0] == LONG_STOP_SEQUENCE || (!w && wi->window_type[1] == LONG_START_SEQUENCE)))
band->thr = FFMAX(PSY_3GPP_RPEMIN*band->thr, FFMIN(band->thr,
PSY_3GPP_RPELEV*pch->prev_band[w+g].thr_quiet));
@ -886,13 +885,12 @@ static FFPsyWindowInfo psy_lame_window(FFPsyContext *ctx, const float *audio,
int grouping = 0;
int uselongblock = 1;
int attacks[AAC_NUM_BLOCKS_SHORT + 1] = { 0 };
float clippings[AAC_NUM_BLOCKS_SHORT];
int i;
FFPsyWindowInfo wi = { { 0 } };
if (la) {
float hpfsmpl[AAC_BLOCK_SIZE_LONG];
float const *pf = hpfsmpl;
const float *pf = hpfsmpl;
float attack_intensity[(AAC_NUM_BLOCKS_SHORT + 1) * PSY_LAME_NUM_SUBBLOCKS];
float energy_subshort[(AAC_NUM_BLOCKS_SHORT + 1) * PSY_LAME_NUM_SUBBLOCKS];
float energy_short[AAC_NUM_BLOCKS_SHORT + 1] = { 0 };
@ -911,7 +909,7 @@ static FFPsyWindowInfo psy_lame_window(FFPsyContext *ctx, const float *audio,
}
for (i = 0; i < AAC_NUM_BLOCKS_SHORT * PSY_LAME_NUM_SUBBLOCKS; i++) {
float const *const pfe = pf + AAC_BLOCK_SIZE_LONG / (AAC_NUM_BLOCKS_SHORT * PSY_LAME_NUM_SUBBLOCKS);
const float *const pfe = pf + AAC_BLOCK_SIZE_LONG / (AAC_NUM_BLOCKS_SHORT * PSY_LAME_NUM_SUBBLOCKS);
float p = 1.0f;
for (; pf < pfe; pf++)
p = FFMAX(p, fabsf(*pf));
@ -944,9 +942,9 @@ static FFPsyWindowInfo psy_lame_window(FFPsyContext *ctx, const float *audio,
/* GB: tuned (1) to avoid too many short blocks for test sample TRUMPET */
/* RH: tuned (2) to let enough short blocks through for test sample FSOL and SNAPS */
for (i = 1; i < AAC_NUM_BLOCKS_SHORT + 1; i++) {
float const u = energy_short[i - 1];
float const v = energy_short[i];
float const m = FFMAX(u, v);
const float u = energy_short[i - 1];
const float v = energy_short[i];
const float m = FFMAX(u, v);
if (m < 40000) { /* (2) */
if (u < 1.7f * v && v < 1.7f * u) { /* (1) */
if (i == 1 && attacks[0] < attacks[i])
@ -976,24 +974,8 @@ static FFPsyWindowInfo psy_lame_window(FFPsyContext *ctx, const float *audio,
lame_apply_block_type(pch, &wi, uselongblock);
/* Calculate input sample maximums and evaluate clipping risk */
if (audio) {
for (i = 0; i < AAC_NUM_BLOCKS_SHORT; i++) {
const float *wbuf = audio + i * AAC_BLOCK_SIZE_SHORT;
float max = 0;
int j;
for (j = 0; j < AAC_BLOCK_SIZE_SHORT; j++)
max = FFMAX(max, fabsf(wbuf[j]));
clippings[i] = max;
}
} else {
for (i = 0; i < 8; i++)
clippings[i] = 0;
}
wi.window_type[1] = prev_type;
if (wi.window_type[0] != EIGHT_SHORT_SEQUENCE) {
float clipping = 0.0f;
wi.num_windows = 1;
wi.grouping[0] = 1;
@ -1002,9 +984,6 @@ static FFPsyWindowInfo psy_lame_window(FFPsyContext *ctx, const float *audio,
else
wi.window_shape = 1;
for (i = 0; i < 8; i++)
clipping = FFMAX(clipping, clippings[i]);
wi.clipping[0] = clipping;
} else {
int lastgrp = 0;
@ -1015,14 +994,6 @@ static FFPsyWindowInfo psy_lame_window(FFPsyContext *ctx, const float *audio,
lastgrp = i;
wi.grouping[lastgrp]++;
}
for (i = 0; i < 8; i += wi.grouping[i]) {
int w;
float clipping = 0.0f;
for (w = 0; w < wi.grouping[i] && !clipping; w++)
clipping = FFMAX(clipping, clippings[i+w]);
wi.clipping[i] = clipping;
}
}
/* Determine grouping, based on the location of the first attack, and save for

View File

@ -1473,7 +1473,7 @@ void AAC_RENAME(ff_sbr_apply)(AACContext *ac, SpectralBandReplication *sbr, int
int err;
if (id_aac != sbr->id_aac) {
av_log(ac->avctx, AV_LOG_ERROR,
av_log(ac->avctx, id_aac == TYPE_LFE ? AV_LOG_VERBOSE : AV_LOG_WARNING,
"element type mismatch %d != %d\n", id_aac, sbr->id_aac);
sbr_turnoff(sbr);
}

View File

@ -92,8 +92,8 @@ static inline void ff_aac_tableinit(void)
* Table of the LTP coefficients
*/
static const INTFLOAT ltp_coef[8] = {
Q30(0.570829f), Q30(0.696616f), Q30(0.813004f), Q30(0.911304f),
Q30(0.984900f), Q30(1.067894f), Q30(1.194601f), Q30(1.369533f),
Q30(0.570829), Q30(0.696616), Q30(0.813004), Q30(0.911304),
Q30(0.984900), Q30(1.067894), Q30(1.194601), Q30(1.369533),
};
/* @name tns_tmp2_map
@ -103,24 +103,24 @@ static const INTFLOAT ltp_coef[8] = {
* @{
*/
static const INTFLOAT tns_tmp2_map_1_3[4] = {
Q31(0.00000000f), Q31(-0.43388373f), Q31(0.64278758f), Q31(0.34202015f),
Q31(0.00000000), Q31(-0.43388373), Q31(0.64278758), Q31(0.34202015),
};
static const INTFLOAT tns_tmp2_map_0_3[8] = {
Q31(0.00000000f), Q31(-0.43388373f), Q31(-0.78183150f), Q31(-0.97492790f),
Q31(0.98480773f), Q31( 0.86602539f), Q31( 0.64278758f), Q31( 0.34202015f),
Q31(0.00000000), Q31(-0.43388373), Q31(-0.78183150), Q31(-0.97492790),
Q31(0.98480773), Q31( 0.86602539), Q31( 0.64278758), Q31( 0.34202015),
};
static const INTFLOAT tns_tmp2_map_1_4[8] = {
Q31(0.00000000f), Q31(-0.20791170f), Q31(-0.40673664f), Q31(-0.58778524f),
Q31(0.67369562f), Q31( 0.52643216f), Q31( 0.36124167f), Q31( 0.18374951f),
Q31(0.00000000), Q31(-0.20791170), Q31(-0.40673664), Q31(-0.58778524),
Q31(0.67369562), Q31( 0.52643216), Q31( 0.36124167), Q31( 0.18374951),
};
static const INTFLOAT tns_tmp2_map_0_4[16] = {
Q31( 0.00000000f), Q31(-0.20791170f), Q31(-0.40673664f), Q31(-0.58778524f),
Q31(-0.74314481f), Q31(-0.86602539f), Q31(-0.95105654f), Q31(-0.99452192f),
Q31( 0.99573416f), Q31( 0.96182561f), Q31( 0.89516330f), Q31( 0.79801720f),
Q31( 0.67369562f), Q31( 0.52643216f), Q31( 0.36124167f), Q31( 0.18374951f),
Q31( 0.00000000), Q31(-0.20791170), Q31(-0.40673664), Q31(-0.58778524),
Q31(-0.74314481), Q31(-0.86602539), Q31(-0.95105654), Q31(-0.99452192),
Q31( 0.99573416), Q31( 0.96182561), Q31( 0.89516330), Q31( 0.79801720),
Q31( 0.67369562), Q31( 0.52643216), Q31( 0.36124167), Q31( 0.18374951),
};
static const INTFLOAT * const tns_tmp2_map[4] = {

View File

@ -1,4 +1,4 @@
OBJS-$(CONFIG_DCA_DECODER) += aarch64/synth_filter_init.o
# subsystems
OBJS-$(CONFIG_FFT) += aarch64/fft_init_aarch64.o
OBJS-$(CONFIG_FMTCONVERT) += aarch64/fmtconvert_init.o
OBJS-$(CONFIG_H264CHROMA) += aarch64/h264chroma_init_aarch64.o
@ -11,13 +11,20 @@ OBJS-$(CONFIG_MPEGAUDIODSP) += aarch64/mpegaudiodsp_init.o
OBJS-$(CONFIG_NEON_CLOBBER_TEST) += aarch64/neontest.o
OBJS-$(CONFIG_VIDEODSP) += aarch64/videodsp_init.o
# decoders/encoders
OBJS-$(CONFIG_DCA_DECODER) += aarch64/synth_filter_init.o
OBJS-$(CONFIG_RV40_DECODER) += aarch64/rv40dsp_init_aarch64.o
OBJS-$(CONFIG_VC1_DECODER) += aarch64/vc1dsp_init_aarch64.o
OBJS-$(CONFIG_VORBIS_DECODER) += aarch64/vorbisdsp_init.o
# ARMv8 optimizations
# subsystems
ARMV8-OBJS-$(CONFIG_VIDEODSP) += aarch64/videodsp.o
NEON-OBJS-$(CONFIG_DCA_DECODER) += aarch64/synth_filter_neon.o
# NEON optimizations
# subsystems
NEON-OBJS-$(CONFIG_FFT) += aarch64/fft_neon.o
NEON-OBJS-$(CONFIG_FMTCONVERT) += aarch64/fmtconvert_neon.o
NEON-OBJS-$(CONFIG_H264CHROMA) += aarch64/h264cmc_neon.o
@ -28,7 +35,9 @@ NEON-OBJS-$(CONFIG_H264QPEL) += aarch64/h264qpel_neon.o \
aarch64/hpeldsp_neon.o
NEON-OBJS-$(CONFIG_HPELDSP) += aarch64/hpeldsp_neon.o
NEON-OBJS-$(CONFIG_IMDCT15) += aarch64/imdct15_neon.o
NEON-OBJS-$(CONFIG_MPEGAUDIODSP) += aarch64/mpegaudiodsp_neon.o
NEON-OBJS-$(CONFIG_MDCT) += aarch64/mdct_neon.o
NEON-OBJS-$(CONFIG_MPEGAUDIODSP) += aarch64/mpegaudiodsp_neon.o
# decoders/encoders
NEON-OBJS-$(CONFIG_DCA_DECODER) += aarch64/synth_filter_neon.o
NEON-OBJS-$(CONFIG_VORBIS_DECODER) += aarch64/vorbisdsp_neon.o

View File

@ -20,7 +20,10 @@
#include "config.h"
#include "libavutil/attributes.h"
#include "libavutil/cpu.h"
#include "libavutil/aarch64/cpu.h"
#include "libavcodec/fft.h"
void ff_fft_permute_neon(FFTContext *s, FFTComplex *z);

View File

@ -33,25 +33,25 @@ function ff_h264_idct_add_neon, export=1
sshr v17.4H, v3.4H, #1
st1 {v30.8H}, [x1], #16
sub v5.4H, v0.4H, v2.4H
add v6.4H, v1.4H, v17.4H
sub v7.4H, v16.4H, v3.4H
add v0.4H, v4.4H, v6.4H
add v1.4H, v5.4H, v7.4H
sub v3.4H, v4.4H, v6.4H
sub v2.4H, v5.4H, v7.4H
sub v6.4H, v16.4H, v3.4H
add v7.4H, v1.4H, v17.4H
add v0.4H, v4.4H, v7.4H
add v1.4H, v5.4H, v6.4H
sub v2.4H, v5.4H, v6.4H
sub v3.4H, v4.4H, v7.4H
transpose_4x4H v0, v1, v2, v3, v4, v5, v6, v7
add v4.4H, v0.4H, v3.4H
add v4.4H, v0.4H, v2.4H
ld1 {v18.S}[0], [x0], x2
sshr v16.4H, v2.4H, #1
sshr v16.4H, v3.4H, #1
sshr v17.4H, v1.4H, #1
ld1 {v19.S}[1], [x0], x2
sub v5.4H, v0.4H, v3.4H
ld1 {v18.S}[1], [x0], x2
sub v5.4H, v0.4H, v2.4H
ld1 {v19.S}[1], [x0], x2
add v6.4H, v16.4H, v1.4H
ins v4.D[1], v5.D[0]
sub v7.4H, v2.4H, v17.4H
sub v7.4H, v17.4H, v3.4H
ld1 {v19.S}[0], [x0], x2
ins v6.D[1], v7.D[0]
sub x0, x0, x2, lsl #2
@ -68,8 +68,8 @@ function ff_h264_idct_add_neon, export=1
sqxtun v1.8B, v1.8H
st1 {v0.S}[0], [x0], x2
st1 {v1.S}[1], [x0], x2
st1 {v0.S}[1], [x0], x2
st1 {v1.S}[1], [x0], x2
st1 {v1.S}[0], [x0], x2
sub x1, x1, #32

View File

@ -142,7 +142,7 @@ function ff_mpadsp_apply_window_\type\()_neon, export=1
sub x10, x10, #4<<2
b.gt 1b
// comuting samples[16]
// computing samples[16]
add x6, x1, #32<<2
ld1 {v0.2s}, [x6], x9
ld1 {v1.2s}, [x0], x9

View File

@ -107,12 +107,12 @@
.macro transpose_4x4H r0, r1, r2, r3, r4, r5, r6, r7
trn1 \r4\().4H, \r0\().4H, \r1\().4H
trn2 \r5\().4H, \r0\().4H, \r1\().4H
trn1 \r7\().4H, \r2\().4H, \r3\().4H
trn2 \r6\().4H, \r2\().4H, \r3\().4H
trn1 \r0\().2S, \r4\().2S, \r7\().2S
trn2 \r3\().2S, \r4\().2S, \r7\().2S
trn1 \r1\().2S, \r5\().2S, \r6\().2S
trn2 \r2\().2S, \r5\().2S, \r6\().2S
trn1 \r6\().4H, \r2\().4H, \r3\().4H
trn2 \r7\().4H, \r2\().4H, \r3\().4H
trn1 \r0\().2S, \r4\().2S, \r6\().2S
trn2 \r2\().2S, \r4\().2S, \r6\().2S
trn1 \r1\().2S, \r5\().2S, \r7\().2S
trn2 \r3\().2S, \r5\().2S, \r7\().2S
.endm
.macro transpose_8x8H r0, r1, r2, r3, r4, r5, r6, r7, r8, r9

View File

@ -23,7 +23,7 @@
#include "libavutil/aarch64/neontest.h"
wrap(avcodec_open2(AVCodecContext *avctx,
AVCodec *codec,
const AVCodec *codec,
AVDictionary **options))
{
testneonclobbers(avcodec_open2, avctx, codec, options);
@ -77,3 +77,13 @@ wrap(avcodec_encode_video2(AVCodecContext *avctx, AVPacket *avpkt,
{
testneonclobbers(avcodec_encode_video2, avctx, avpkt, frame, got_packet_ptr);
}
wrap(avcodec_send_packet(AVCodecContext *avctx, const AVPacket *avpkt))
{
testneonclobbers(avcodec_send_packet, avctx, avpkt);
}
wrap(avcodec_receive_frame(AVCodecContext *avctx, AVFrame *frame))
{
testneonclobbers(avcodec_receive_frame, avctx, frame);
}

View File

@ -1,6 +1,6 @@
/*
* Autodesk RLE Decoder
* Copyright (c) 2005 The FFmpeg Project
* Copyright (C) 2005 The FFmpeg project
*
* This file is part of FFmpeg.
*

View File

@ -24,9 +24,10 @@
* Common code between the AC-3 encoder and decoder.
*/
#include "libavutil/common.h"
#include "avcodec.h"
#include "ac3.h"
#include "get_bits.h"
/**
* Starting frequency coefficient bin for each critical band.

View File

@ -895,11 +895,13 @@ static int decode_audio_block(AC3DecodeContext *s, int blk)
ff_eac3_default_spx_band_struct,
&s->num_spx_bands,
s->spx_band_sizes);
} else {
for (ch = 1; ch <= fbw_channels; ch++) {
s->channel_uses_spx[ch] = 0;
s->first_spx_coords[ch] = 1;
}
}
}
if (!s->eac3 || !s->spx_in_use) {
s->spx_in_use = 0;
for (ch = 1; ch <= fbw_channels; ch++) {
s->channel_uses_spx[ch] = 0;
s->first_spx_coords[ch] = 1;
}
}
@ -1443,8 +1445,9 @@ static int ac3_decode_frame(AVCodecContext * avctx, void *data,
/* skip frame if CRC is ok. otherwise use error concealment. */
/* TODO: add support for substreams and dependent frames */
if (s->frame_type == EAC3_FRAME_TYPE_DEPENDENT || s->substreamid) {
av_log(avctx, AV_LOG_WARNING, "unsupported frame type : "
"skipping frame\n");
av_log(avctx, AV_LOG_DEBUG,
"unsupported frame type %d: skipping frame\n",
s->frame_type);
*got_frame_ptr = 0;
return buf_size;
} else {

View File

@ -96,6 +96,8 @@ typedef struct AC3DecodeContext {
int lfe_mix_level_exists; ///< indicates if lfemixlevcod is specified (lfemixlevcode)
int lfe_mix_level; ///< LFE mix level index (lfemixlevcod)
int eac3; ///< indicates if current frame is E-AC-3
int eac3_frame_dependent_found; ///< bitstream has E-AC-3 dependent frame(s)
int eac3_subsbtreamid_found; ///< bitstream has E-AC-3 additional substream(s)
int dolby_surround_mode; ///< dolby surround mode (dsurmod)
int dolby_surround_ex_mode; ///< dolby surround ex mode (dsurexmod)
int dolby_headphone_mode; ///< dolby headphone mode (dheadphonmod)

View File

@ -19,7 +19,6 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "libavutil/avassert.h"
#include "avcodec.h"
#include "ac3.h"
#include "ac3dsp.h"

View File

@ -82,7 +82,6 @@ extern const int16_t ff_acelp_interp_filter[61];
* filter_coeffs contains coefficients of the right half of the symmetric
* interpolation filter. filter_coeffs[0] should the central (unpaired) coefficient.
* See ff_acelp_interp_filter for an example.
*
*/
void ff_acelp_interpolate(int16_t* out, const int16_t* in,
const int16_t* filter_coeffs, int precision,

View File

@ -21,9 +21,8 @@
*/
#include "libavutil/common.h"
#include "libavutil/ffmath.h"
#include "libavutil/float_dsp.h"
#include "libavutil/internal.h"
#include "libavutil/libm.h"
#include "libavutil/mathematics.h"
#include "avcodec.h"
#include "acelp_pitch_delay.h"

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2001-2003 The FFmpeg Project
* Copyright (c) 2001-2003 The FFmpeg project
*
* first version by Francois Revol (revol@free.fr)
* fringe ADPCM codecs (e.g., DK3, DK4, Westwood)
@ -107,9 +107,14 @@ static av_cold int adpcm_decode_init(AVCodecContext * avctx)
case AV_CODEC_ID_ADPCM_EA_XAS:
max_channels = 6;
break;
case AV_CODEC_ID_ADPCM_MTAF:
min_channels = 2;
max_channels = 8;
break;
case AV_CODEC_ID_ADPCM_PSX:
max_channels = 8;
break;
case AV_CODEC_ID_ADPCM_IMA_DAT4:
case AV_CODEC_ID_ADPCM_THP:
case AV_CODEC_ID_ADPCM_THP_LE:
max_channels = 14;
@ -144,6 +149,7 @@ static av_cold int adpcm_decode_init(AVCodecContext * avctx)
switch(avctx->codec->id) {
case AV_CODEC_ID_ADPCM_AICA:
case AV_CODEC_ID_ADPCM_IMA_DAT4:
case AV_CODEC_ID_ADPCM_IMA_QT:
case AV_CODEC_ID_ADPCM_IMA_WAV:
case AV_CODEC_ID_ADPCM_4XM:
@ -157,6 +163,7 @@ static av_cold int adpcm_decode_init(AVCodecContext * avctx)
case AV_CODEC_ID_ADPCM_AFC:
case AV_CODEC_ID_ADPCM_DTK:
case AV_CODEC_ID_ADPCM_PSX:
case AV_CODEC_ID_ADPCM_MTAF:
avctx->sample_fmt = AV_SAMPLE_FMT_S16P;
break;
case AV_CODEC_ID_ADPCM_IMA_WS:
@ -170,7 +177,7 @@ static av_cold int adpcm_decode_init(AVCodecContext * avctx)
return 0;
}
static inline short adpcm_ima_expand_nibble(ADPCMChannelStatus *c, char nibble, int shift)
static inline int16_t adpcm_ima_expand_nibble(ADPCMChannelStatus *c, int8_t nibble, int shift)
{
int step_index;
int predictor;
@ -193,7 +200,7 @@ static inline short adpcm_ima_expand_nibble(ADPCMChannelStatus *c, char nibble,
c->predictor = av_clip_int16(predictor);
c->step_index = step_index;
return (short)c->predictor;
return (int16_t)c->predictor;
}
static inline int16_t adpcm_ima_wav_expand_nibble(ADPCMChannelStatus *c, GetBitContext *gb, int bps)
@ -245,7 +252,7 @@ static inline int adpcm_ima_qt_expand_nibble(ADPCMChannelStatus *c, int nibble,
return c->predictor;
}
static inline short adpcm_ms_expand_nibble(ADPCMChannelStatus *c, int nibble)
static inline int16_t adpcm_ms_expand_nibble(ADPCMChannelStatus *c, int nibble)
{
int predictor;
@ -264,7 +271,7 @@ static inline short adpcm_ms_expand_nibble(ADPCMChannelStatus *c, int nibble)
return c->sample1;
}
static inline short adpcm_ima_oki_expand_nibble(ADPCMChannelStatus *c, int nibble)
static inline int16_t adpcm_ima_oki_expand_nibble(ADPCMChannelStatus *c, int nibble)
{
int step_index, predictor, sign, delta, diff, step;
@ -285,7 +292,7 @@ static inline short adpcm_ima_oki_expand_nibble(ADPCMChannelStatus *c, int nibbl
return c->predictor << 4;
}
static inline short adpcm_ct_expand_nibble(ADPCMChannelStatus *c, char nibble)
static inline int16_t adpcm_ct_expand_nibble(ADPCMChannelStatus *c, int8_t nibble)
{
int sign, delta, diff;
int new_step;
@ -303,10 +310,10 @@ static inline short adpcm_ct_expand_nibble(ADPCMChannelStatus *c, char nibble)
new_step = (ff_adpcm_AdaptationTable[nibble & 7] * c->step) >> 8;
c->step = av_clip(new_step, 511, 32767);
return (short)c->predictor;
return (int16_t)c->predictor;
}
static inline short adpcm_sbpro_expand_nibble(ADPCMChannelStatus *c, char nibble, int size, int shift)
static inline int16_t adpcm_sbpro_expand_nibble(ADPCMChannelStatus *c, int8_t nibble, int size, int shift)
{
int sign, delta, diff;
@ -323,10 +330,10 @@ static inline short adpcm_sbpro_expand_nibble(ADPCMChannelStatus *c, char nibble
else if (delta == 0 && c->step > 0)
c->step--;
return (short) c->predictor;
return (int16_t) c->predictor;
}
static inline short adpcm_yamaha_expand_nibble(ADPCMChannelStatus *c, unsigned char nibble)
static inline int16_t adpcm_yamaha_expand_nibble(ADPCMChannelStatus *c, uint8_t nibble)
{
if(!c->step) {
c->predictor = 0;
@ -340,6 +347,15 @@ static inline short adpcm_yamaha_expand_nibble(ADPCMChannelStatus *c, unsigned c
return c->predictor;
}
static inline int16_t adpcm_mtaf_expand_nibble(ADPCMChannelStatus *c, uint8_t nibble)
{
c->predictor += ff_adpcm_mtaf_stepsize[c->step][nibble];
c->predictor = av_clip_int16(c->predictor);
c->step += ff_adpcm_index_table[nibble];
c->step = av_clip_uintp2(c->step, 5);
return c->predictor;
}
static int xa_decode(AVCodecContext *avctx, int16_t *out0, int16_t *out1,
const uint8_t *in, ADPCMChannelStatus *left,
ADPCMChannelStatus *right, int channels, int sample_offset)
@ -450,7 +466,7 @@ static void adpcm_swf_decode(AVCodecContext *avctx, const uint8_t *buf, int buf_
// similar to IMA adpcm
int delta = get_bits(&gb, nb_bits);
int step = ff_adpcm_step_table[c->status[i].step_index];
long vpdiff = 0; // vpdiff = (delta+0.5)*step/4
int vpdiff = 0; // vpdiff = (delta+0.5)*step/4
int k = k0;
do {
@ -533,6 +549,7 @@ static int get_nb_samples(AVCodecContext *avctx, GetByteContext *gb,
header_size = 0;
switch (avctx->codec->id) {
case AV_CODEC_ID_ADPCM_4XM:
case AV_CODEC_ID_ADPCM_IMA_DAT4:
case AV_CODEC_ID_ADPCM_IMA_ISS: header_size = 4 * ch; break;
case AV_CODEC_ID_ADPCM_IMA_AMV: header_size = 8; break;
case AV_CODEC_ID_ADPCM_IMA_SMJPEG: header_size = 4 * ch; break;
@ -614,6 +631,11 @@ static int get_nb_samples(AVCodecContext *avctx, GetByteContext *gb,
buf_size = FFMIN(buf_size, avctx->block_align);
nb_samples = (buf_size - 6 * ch) * 2 / ch;
break;
case AV_CODEC_ID_ADPCM_MTAF:
if (avctx->block_align > 0)
buf_size = FFMIN(buf_size, avctx->block_align);
nb_samples = (buf_size - 16 * (ch / 2)) * 2 / ch;
break;
case AV_CODEC_ID_ADPCM_SBPRO_2:
case AV_CODEC_ID_ADPCM_SBPRO_3:
case AV_CODEC_ID_ADPCM_SBPRO_4:
@ -692,7 +714,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data,
ADPCMDecodeContext *c = avctx->priv_data;
ADPCMChannelStatus *cs;
int n, m, channel, i;
short *samples;
int16_t *samples;
int16_t **samples_p;
int st; /* stereo */
int count1, count2;
@ -710,7 +732,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data,
frame->nb_samples = nb_samples;
if ((ret = ff_get_buffer(avctx, frame, 0)) < 0)
return ret;
samples = (short *)frame->data[0];
samples = (int16_t *)frame->data[0];
samples_p = (int16_t **)frame->extended_data;
/* use coded_samples when applicable */
@ -780,15 +802,23 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data,
if (avctx->bits_per_coded_sample != 4) {
int samples_per_block = ff_adpcm_ima_block_samples[avctx->bits_per_coded_sample - 2];
int block_size = ff_adpcm_ima_block_sizes[avctx->bits_per_coded_sample - 2];
uint8_t temp[20] = { 0 };
GetBitContext g;
ret = init_get_bits8(&g, gb.buffer, bytestream2_get_bytes_left(&gb));
if (ret < 0)
return ret;
for (n = 0; n < (nb_samples - 1) / samples_per_block; n++) {
for (i = 0; i < avctx->channels; i++) {
int j;
cs = &c->status[i];
samples = &samples_p[i][1 + n * samples_per_block];
for (j = 0; j < block_size; j++) {
temp[j] = buf[4 * avctx->channels + block_size * n * avctx->channels +
(j % 4) + (j / 4) * (avctx->channels * 4) + i * 4];
}
ret = init_get_bits8(&g, (const uint8_t *)&temp, block_size);
if (ret < 0)
return ret;
for (m = 0; m < samples_per_block; m++) {
samples[m] = adpcm_ima_wav_expand_nibble(cs, &g,
avctx->bits_per_coded_sample);
@ -876,6 +906,27 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data,
}
break;
}
case AV_CODEC_ID_ADPCM_MTAF:
for (channel = 0; channel < avctx->channels; channel+=2) {
bytestream2_skipu(&gb, 4);
c->status[channel ].step = bytestream2_get_le16u(&gb);
c->status[channel + 1].step = bytestream2_get_le16u(&gb);
c->status[channel ].predictor = sign_extend(bytestream2_get_le16u(&gb), 16);
bytestream2_skipu(&gb, 2);
c->status[channel + 1].predictor = sign_extend(bytestream2_get_le16u(&gb), 16);
bytestream2_skipu(&gb, 2);
for (n = 0; n < nb_samples; n+=2) {
int v = bytestream2_get_byteu(&gb);
samples_p[channel][n ] = adpcm_mtaf_expand_nibble(&c->status[channel], v & 0x0F);
samples_p[channel][n + 1] = adpcm_mtaf_expand_nibble(&c->status[channel], v >> 4 );
}
for (n = 0; n < nb_samples; n+=2) {
int v = bytestream2_get_byteu(&gb);
samples_p[channel + 1][n ] = adpcm_mtaf_expand_nibble(&c->status[channel + 1], v & 0x0F);
samples_p[channel + 1][n + 1] = adpcm_mtaf_expand_nibble(&c->status[channel + 1], v >> 4 );
}
}
break;
case AV_CODEC_ID_ADPCM_IMA_DK4:
for (channel = 0; channel < avctx->channels; channel++) {
cs = &c->status[channel];
@ -984,6 +1035,18 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data,
*samples++ = adpcm_ima_expand_nibble(&c->status[st], v2, 3);
}
break;
case AV_CODEC_ID_ADPCM_IMA_DAT4:
for (channel = 0; channel < avctx->channels; channel++) {
cs = &c->status[channel];
samples = samples_p[channel];
bytestream2_skip(&gb, 4);
for (n = 0; n < nb_samples; n += 2) {
int v = bytestream2_get_byteu(&gb);
*samples++ = adpcm_ima_expand_nibble(cs, v >> 4 , 3);
*samples++ = adpcm_ima_expand_nibble(cs, v & 0x0F, 3);
}
}
break;
case AV_CODEC_ID_ADPCM_IMA_APC:
while (bytestream2_get_bytes_left(&gb) > 0) {
int v = bytestream2_get_byteu(&gb);
@ -1287,8 +1350,8 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data,
break;
case AV_CODEC_ID_ADPCM_IMA_AMV:
c->status[0].predictor = sign_extend(bytestream2_get_le16u(&gb), 16);
c->status[0].step_index = bytestream2_get_le16u(&gb);
bytestream2_skipu(&gb, 4);
c->status[0].step_index = bytestream2_get_byteu(&gb);
bytestream2_skipu(&gb, 5);
if (c->status[0].step_index > 88u) {
av_log(avctx, AV_LOG_ERROR, "ERROR: step_index = %i\n",
c->status[0].step_index);
@ -1670,6 +1733,7 @@ ADPCM_DECODER(AV_CODEC_ID_ADPCM_EA_R3, sample_fmts_s16p, adpcm_ea_r3,
ADPCM_DECODER(AV_CODEC_ID_ADPCM_EA_XAS, sample_fmts_s16p, adpcm_ea_xas, "ADPCM Electronic Arts XAS");
ADPCM_DECODER(AV_CODEC_ID_ADPCM_IMA_AMV, sample_fmts_s16, adpcm_ima_amv, "ADPCM IMA AMV");
ADPCM_DECODER(AV_CODEC_ID_ADPCM_IMA_APC, sample_fmts_s16, adpcm_ima_apc, "ADPCM IMA CRYO APC");
ADPCM_DECODER(AV_CODEC_ID_ADPCM_IMA_DAT4, sample_fmts_s16, adpcm_ima_dat4, "ADPCM IMA Eurocom DAT4");
ADPCM_DECODER(AV_CODEC_ID_ADPCM_IMA_DK3, sample_fmts_s16, adpcm_ima_dk3, "ADPCM IMA Duck DK3");
ADPCM_DECODER(AV_CODEC_ID_ADPCM_IMA_DK4, sample_fmts_s16, adpcm_ima_dk4, "ADPCM IMA Duck DK4");
ADPCM_DECODER(AV_CODEC_ID_ADPCM_IMA_EA_EACS, sample_fmts_s16, adpcm_ima_ea_eacs, "ADPCM IMA Electronic Arts EACS");
@ -1682,6 +1746,7 @@ ADPCM_DECODER(AV_CODEC_ID_ADPCM_IMA_SMJPEG, sample_fmts_s16, adpcm_ima_smjpeg,
ADPCM_DECODER(AV_CODEC_ID_ADPCM_IMA_WAV, sample_fmts_s16p, adpcm_ima_wav, "ADPCM IMA WAV");
ADPCM_DECODER(AV_CODEC_ID_ADPCM_IMA_WS, sample_fmts_both, adpcm_ima_ws, "ADPCM IMA Westwood");
ADPCM_DECODER(AV_CODEC_ID_ADPCM_MS, sample_fmts_s16, adpcm_ms, "ADPCM Microsoft");
ADPCM_DECODER(AV_CODEC_ID_ADPCM_MTAF, sample_fmts_s16p, adpcm_mtaf, "ADPCM MTAF");
ADPCM_DECODER(AV_CODEC_ID_ADPCM_PSX, sample_fmts_s16p, adpcm_psx, "ADPCM Playstation");
ADPCM_DECODER(AV_CODEC_ID_ADPCM_SBPRO_2, sample_fmts_s16, adpcm_sbpro_2, "ADPCM Sound Blaster Pro 2-bit");
ADPCM_DECODER(AV_CODEC_ID_ADPCM_SBPRO_3, sample_fmts_s16, adpcm_sbpro_3, "ADPCM Sound Blaster Pro 2.6-bit");

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2001-2003 The FFmpeg Project
* Copyright (c) 2001-2003 The FFmpeg project
*
* This file is part of FFmpeg.
*

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2001-2003 The FFmpeg Project
* Copyright (c) 2001-2003 The FFmpeg project
*
* This file is part of FFmpeg.
*
@ -110,3 +110,70 @@ const int16_t ff_adpcm_afc_coeffs[2][16] = {
{ 0, 2048, 0, 1024, 4096, 3584, 3072, 4608, 4200, 4800, 5120, 2048, 1024, 64512, 64512, 63488 },
{ 0, 0, 2048, 1024, 63488, 64000, 64512, 62976, 63288, 63236, 62464, 63488, 64512, 1024, 0, 0 }
};
const int16_t ff_adpcm_mtaf_stepsize[32][16] = {
{ 1, 5, 9, 13, 16, 20, 24, 28,
-1, -5, -9, -13, -16, -20, -24, -28, },
{ 2, 6, 11, 15, 20, 24, 29, 33,
-2, -6, -11, -15, -20, -24, -29, -33, },
{ 2, 7, 13, 18, 23, 28, 34, 39,
-2, -7, -13, -18, -23, -28, -34, -39, },
{ 3, 9, 15, 21, 28, 34, 40, 46,
-3, -9, -15, -21, -28, -34, -40, -46, },
{ 3, 11, 18, 26, 33, 41, 48, 56,
-3, -11, -18, -26, -33, -41, -48, -56, },
{ 4, 13, 22, 31, 40, 49, 58, 67,
-4, -13, -22, -31, -40, -49, -58, -67, },
{ 5, 16, 26, 37, 48, 59, 69, 80,
-5, -16, -26, -37, -48, -59, -69, -80, },
{ 6, 19, 31, 44, 57, 70, 82, 95,
-6, -19, -31, -44, -57, -70, -82, -95, },
{ 7, 22, 38, 53, 68, 83, 99, 114,
-7, -22, -38, -53, -68, -83, -99, -114, },
{ 9, 27, 45, 63, 81, 99, 117, 135,
-9, -27, -45, -63, -81, -99, -117, -135, },
{ 10, 32, 53, 75, 96, 118, 139, 161,
-10, -32, -53, -75, -96, -118, -139, -161, },
{ 12, 38, 64, 90, 115, 141, 167, 193,
-12, -38, -64, -90, -115, -141, -167, -193, },
{ 15, 45, 76, 106, 137, 167, 198, 228,
-15, -45, -76, -106, -137, -167, -198, -228, },
{ 18, 54, 91, 127, 164, 200, 237, 273,
-18, -54, -91, -127, -164, -200, -237, -273, },
{ 21, 65, 108, 152, 195, 239, 282, 326,
-21, -65, -108, -152, -195, -239, -282, -326, },
{ 25, 77, 129, 181, 232, 284, 336, 388,
-25, -77, -129, -181, -232, -284, -336, -388, },
{ 30, 92, 153, 215, 276, 338, 399, 461,
-30, -92, -153, -215, -276, -338, -399, -461, },
{ 36, 109, 183, 256, 329, 402, 476, 549,
-36, -109, -183, -256, -329, -402, -476, -549, },
{ 43, 130, 218, 305, 392, 479, 567, 654,
-43, -130, -218, -305, -392, -479, -567, -654, },
{ 52, 156, 260, 364, 468, 572, 676, 780,
-52, -156, -260, -364, -468, -572, -676, -780, },
{ 62, 186, 310, 434, 558, 682, 806, 930,
-62, -186, -310, -434, -558, -682, -806, -930, },
{ 73, 221, 368, 516, 663, 811, 958, 1106,
-73, -221, -368, -516, -663, -811, -958, -1106, },
{ 87, 263, 439, 615, 790, 966, 1142, 1318,
-87, -263, -439, -615, -790, -966, -1142, -1318, },
{ 104, 314, 523, 733, 942, 1152, 1361, 1571,
-104, -314, -523, -733, -942, -1152, -1361, -1571, },
{ 124, 374, 623, 873, 1122, 1372, 1621, 1871,
-124, -374, -623, -873, -1122, -1372, -1621, -1871, },
{ 148, 445, 743, 1040, 1337, 1634, 1932, 2229,
-148, -445, -743, -1040, -1337, -1634, -1932, -2229, },
{ 177, 531, 885, 1239, 1593, 1947, 2301, 2655,
-177, -531, -885, -1239, -1593, -1947, -2301, -2655, },
{ 210, 632, 1053, 1475, 1896, 2318, 2739, 3161,
-210, -632, -1053, -1475, -1896, -2318, -2739, -3161, },
{ 251, 753, 1255, 1757, 2260, 2762, 3264, 3766,
-251, -753, -1255, -1757, -2260, -2762, -3264, -3766, },
{ 299, 897, 1495, 2093, 2692, 3290, 3888, 4486,
-299, -897, -1495, -2093, -2692, -3290, -3888, -4486, },
{ 356, 1068, 1781, 2493, 3206, 3918, 4631, 5343,
-356, -1068, -1781, -2493, -3206, -3918, -4631, -5343, },
{ 424, 1273, 2121, 2970, 3819, 4668, 5516, 6365,
-424, -1273, -2121, -2970, -3819, -4668, -5516, -6365, },
};

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2001-2003 The FFmpeg Project
* Copyright (c) 2001-2003 The FFmpeg project
*
* This file is part of FFmpeg.
*
@ -41,5 +41,6 @@ extern const int8_t ff_adpcm_AdaptCoeff2[];
extern const int16_t ff_adpcm_yamaha_indexscale[];
extern const int8_t ff_adpcm_yamaha_difflookup[];
extern const int16_t ff_adpcm_afc_coeffs[2][16];
extern const int16_t ff_adpcm_mtaf_stepsize[32][16];
#endif /* AVCODEC_ADPCM_DATA_H */

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2001-2003 The FFmpeg Project
* Copyright (c) 2001-2003 The FFmpeg project
*
* first version by Francois Revol (revol@free.fr)
* fringe ADPCM codecs (e.g., DK3, DK4, Westwood)

View File

@ -28,6 +28,7 @@
#include "get_bits.h"
#include "golomb.h"
#include "idctdsp.h"
#include "thread.h"
#include "unary.h"
#define AIC_HDR_SIZE 24
@ -375,6 +376,7 @@ static int aic_decode_frame(AVCodecContext *avctx, void *data, int *got_frame,
uint32_t off;
int x, y, ret;
int slice_size;
ThreadFrame frame = { .f = data };
ctx->frame = data;
ctx->frame->pict_type = AV_PICTURE_TYPE_I;
@ -393,7 +395,7 @@ static int aic_decode_frame(AVCodecContext *avctx, void *data, int *got_frame,
return ret;
}
if ((ret = ff_get_buffer(avctx, ctx->frame, 0)) < 0)
if ((ret = ff_thread_get_buffer(avctx, &frame, 0)) < 0)
return ret;
bytestream2_init(&gb, buf + AIC_HDR_SIZE,
@ -488,5 +490,6 @@ AVCodec ff_aic_decoder = {
.init = aic_decode_init,
.close = aic_decode_close,
.decode = aic_decode_frame,
.capabilities = AV_CODEC_CAP_DR1,
.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_FRAME_THREADS,
.init_thread_copy = ONLY_IF_THREADS_ENABLED(aic_decode_init),
};

View File

@ -29,20 +29,20 @@
* passed through the extradata[_size] fields. This atom is tacked onto
* the end of an 'alac' stsd atom and has the following format:
*
* 32bit atom size
* 32bit tag ("alac")
* 32bit tag version (0)
* 32bit samples per frame (used when not set explicitly in the frames)
* 8bit compatible version (0)
* 8bit sample size
* 8bit history mult (40)
* 8bit initial history (10)
* 8bit rice param limit (14)
* 8bit channels
* 16bit maxRun (255)
* 32bit max coded frame size (0 means unknown)
* 32bit average bitrate (0 means unknown)
* 32bit samplerate
* 32 bits atom size
* 32 bits tag ("alac")
* 32 bits tag version (0)
* 32 bits samples per frame (used when not set explicitly in the frames)
* 8 bits compatible version (0)
* 8 bits sample size
* 8 bits history mult (40)
* 8 bits initial history (10)
* 8 bits rice param limit (14)
* 8 bits channels
* 16 bits maxRun (255)
* 32 bits max coded frame size (0 means unknown)
* 32 bits average bitrate (0 means unknown)
* 32 bits samplerate
*/
#include <inttypes.h>
@ -391,6 +391,12 @@ static int decode_element(AVCodecContext *avctx, AVFrame *frame, int ch_index,
*outbuffer++ = alac->output_samples_buffer[ch][i];
}}
break;
case 20: {
for (ch = 0; ch < channels; ch++) {
for (i = 0; i < alac->nb_samples; i++)
alac->output_samples_buffer[ch][i] <<= 12;
}}
break;
case 24: {
for (ch = 0; ch < channels; ch++) {
for (i = 0; i < alac->nb_samples; i++)
@ -556,6 +562,7 @@ static av_cold int alac_decode_init(AVCodecContext * avctx)
switch (alac->sample_size) {
case 16: avctx->sample_fmt = AV_SAMPLE_FMT_S16P;
break;
case 20:
case 24:
case 32: avctx->sample_fmt = AV_SAMPLE_FMT_S32P;
break;

View File

@ -81,7 +81,7 @@ typedef struct AlacEncodeContext {
static void init_sample_buffers(AlacEncodeContext *s, int channels,
uint8_t const *samples[2])
const uint8_t *samples[2])
{
int ch, i;
int shift = av_get_bytes_per_sample(s->avctx->sample_fmt) * 8 -
@ -364,7 +364,7 @@ static void write_element(AlacEncodeContext *s,
enum AlacRawDataBlockType element, int instance,
const uint8_t *samples0, const uint8_t *samples1)
{
uint8_t const *samples[2] = { samples0, samples1 };
const uint8_t *samples[2] = { samples0, samples1 };
int i, j, channels;
int prediction_type = 0;
PutBitContext *pb = &s->pbctx;
@ -376,14 +376,14 @@ static void write_element(AlacEncodeContext *s,
/* samples are channel-interleaved in verbatim mode */
if (s->avctx->sample_fmt == AV_SAMPLE_FMT_S32P) {
int shift = 32 - s->avctx->bits_per_raw_sample;
int32_t const *samples_s32[2] = { (const int32_t *)samples0,
const int32_t *samples_s32[2] = { (const int32_t *)samples0,
(const int32_t *)samples1 };
for (i = 0; i < s->frame_size; i++)
for (j = 0; j < channels; j++)
put_sbits(pb, s->avctx->bits_per_raw_sample,
samples_s32[j][i] >> shift);
} else {
int16_t const *samples_s16[2] = { (const int16_t *)samples0,
const int16_t *samples_s16[2] = { (const int16_t *)samples0,
(const int16_t *)samples1 };
for (i = 0; i < s->frame_size; i++)
for (j = 0; j < channels; j++)
@ -623,7 +623,7 @@ static int alac_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
else
max_frame_size = s->max_coded_frame_size;
if ((ret = ff_alloc_packet2(avctx, avpkt, 2 * max_frame_size, 0)) < 0)
if ((ret = ff_alloc_packet2(avctx, avpkt, 4 * max_frame_size, 0)) < 0)
return ret;
/* use verbatim mode for compression_level 0 */

View File

@ -58,13 +58,6 @@
av_register_codec_parser(&ff_##x##_parser); \
}
#define REGISTER_BSF(X, x) \
{ \
extern AVBitStreamFilter ff_##x##_bsf; \
if (CONFIG_##X##_BSF) \
av_register_bitstream_filter(&ff_##x##_bsf); \
}
void avcodec_register_all(void)
{
static int initialized;
@ -76,8 +69,10 @@ void avcodec_register_all(void)
/* hardware accelerators */
REGISTER_HWACCEL(H263_VAAPI, h263_vaapi);
REGISTER_HWACCEL(H263_VIDEOTOOLBOX, h263_videotoolbox);
REGISTER_HWACCEL(H264_CUVID, h264_cuvid);
REGISTER_HWACCEL(H264_D3D11VA, h264_d3d11va);
REGISTER_HWACCEL(H264_DXVA2, h264_dxva2);
REGISTER_HWACCEL(H264_MEDIACODEC, h264_mediacodec);
REGISTER_HWACCEL(H264_MMAL, h264_mmal);
REGISTER_HWACCEL(H264_QSV, h264_qsv);
REGISTER_HWACCEL(H264_VAAPI, h264_vaapi);
@ -85,6 +80,7 @@ void avcodec_register_all(void)
REGISTER_HWACCEL(H264_VDA_OLD, h264_vda_old);
REGISTER_HWACCEL(H264_VDPAU, h264_vdpau);
REGISTER_HWACCEL(H264_VIDEOTOOLBOX, h264_videotoolbox);
REGISTER_HWACCEL(HEVC_CUVID, hevc_cuvid);
REGISTER_HWACCEL(HEVC_D3D11VA, hevc_d3d11va);
REGISTER_HWACCEL(HEVC_DXVA2, hevc_dxva2);
REGISTER_HWACCEL(HEVC_QSV, hevc_qsv);
@ -105,12 +101,15 @@ void avcodec_register_all(void)
REGISTER_HWACCEL(MPEG4_VAAPI, mpeg4_vaapi);
REGISTER_HWACCEL(MPEG4_VDPAU, mpeg4_vdpau);
REGISTER_HWACCEL(MPEG4_VIDEOTOOLBOX, mpeg4_videotoolbox);
REGISTER_HWACCEL(VC1_CUVID, vc1_cuvid);
REGISTER_HWACCEL(VC1_D3D11VA, vc1_d3d11va);
REGISTER_HWACCEL(VC1_DXVA2, vc1_dxva2);
REGISTER_HWACCEL(VC1_VAAPI, vc1_vaapi);
REGISTER_HWACCEL(VC1_VDPAU, vc1_vdpau);
REGISTER_HWACCEL(VC1_MMAL, vc1_mmal);
REGISTER_HWACCEL(VC1_QSV, vc1_qsv);
REGISTER_HWACCEL(VP8_CUVID, vp8_cuvid);
REGISTER_HWACCEL(VP9_CUVID, vp9_cuvid);
REGISTER_HWACCEL(VP9_D3D11VA, vp9_d3d11va);
REGISTER_HWACCEL(VP9_DXVA2, vp9_dxva2);
REGISTER_HWACCEL(VP9_VAAPI, vp9_vaapi);
@ -196,6 +195,7 @@ void avcodec_register_all(void)
REGISTER_ENCDEC (H263P, h263p);
REGISTER_DECODER(H264, h264);
REGISTER_DECODER(H264_CRYSTALHD, h264_crystalhd);
REGISTER_DECODER(H264_MEDIACODEC, h264_mediacodec);
REGISTER_DECODER(H264_MMAL, h264_mmal);
REGISTER_DECODER(H264_QSV, h264_qsv);
REGISTER_DECODER(H264_VDA, h264_vda);
@ -224,6 +224,8 @@ void avcodec_register_all(void)
REGISTER_DECODER(LAGARITH, lagarith);
REGISTER_ENCODER(LJPEG, ljpeg);
REGISTER_DECODER(LOCO, loco);
REGISTER_DECODER(M101, m101);
REGISTER_DECODER(MAGICYUV, magicyuv);
REGISTER_DECODER(MDEC, mdec);
REGISTER_DECODER(MIMIC, mimic);
REGISTER_ENCDEC (MJPEG, mjpeg);
@ -298,6 +300,7 @@ void avcodec_register_all(void)
REGISTER_DECODER(SDX2_DPCM, sdx2_dpcm);
REGISTER_ENCDEC (SGI, sgi);
REGISTER_DECODER(SGIRLE, sgirle);
REGISTER_DECODER(SHEERVIDEO, sheervideo);
REGISTER_DECODER(SMACKER, smacker);
REGISTER_DECODER(SMC, smc);
REGISTER_DECODER(SMVJPEG, smvjpeg);
@ -316,6 +319,7 @@ void avcodec_register_all(void)
REGISTER_DECODER(TMV, tmv);
REGISTER_DECODER(TRUEMOTION1, truemotion1);
REGISTER_DECODER(TRUEMOTION2, truemotion2);
REGISTER_DECODER(TRUEMOTION2RT, truemotion2rt);
REGISTER_DECODER(TSCC, tscc);
REGISTER_DECODER(TSCC2, tscc2);
REGISTER_DECODER(TXD, txd);
@ -367,6 +371,7 @@ void avcodec_register_all(void)
REGISTER_DECODER(XL, xl);
REGISTER_ENCDEC (XWD, xwd);
REGISTER_ENCDEC (Y41P, y41p);
REGISTER_DECODER(YLC, ylc);
REGISTER_DECODER(YOP, yop);
REGISTER_ENCDEC (YUV4, yuv4);
REGISTER_DECODER(ZERO12V, zero12v);
@ -399,6 +404,7 @@ void avcodec_register_all(void)
REGISTER_DECODER(DSD_MSBF_PLANAR, dsd_msbf_planar);
REGISTER_DECODER(DSICINAUDIO, dsicinaudio);
REGISTER_DECODER(DSS_SP, dss_sp);
REGISTER_DECODER(DST, dst);
REGISTER_ENCDEC (EAC3, eac3);
REGISTER_DECODER(EVRC, evrc);
REGISTER_DECODER(FFWAVESYNTH, ffwavesynth);
@ -514,6 +520,7 @@ void avcodec_register_all(void)
REGISTER_DECODER(ADPCM_G726LE, adpcm_g726le);
REGISTER_DECODER(ADPCM_IMA_AMV, adpcm_ima_amv);
REGISTER_DECODER(ADPCM_IMA_APC, adpcm_ima_apc);
REGISTER_DECODER(ADPCM_IMA_DAT4, adpcm_ima_dat4);
REGISTER_DECODER(ADPCM_IMA_DK3, adpcm_ima_dk3);
REGISTER_DECODER(ADPCM_IMA_DK4, adpcm_ima_dk4);
REGISTER_DECODER(ADPCM_IMA_EA_EACS, adpcm_ima_ea_eacs);
@ -526,6 +533,7 @@ void avcodec_register_all(void)
REGISTER_ENCDEC (ADPCM_IMA_WAV, adpcm_ima_wav);
REGISTER_DECODER(ADPCM_IMA_WS, adpcm_ima_ws);
REGISTER_ENCDEC (ADPCM_MS, adpcm_ms);
REGISTER_DECODER(ADPCM_MTAF, adpcm_mtaf);
REGISTER_DECODER(ADPCM_PSX, adpcm_psx);
REGISTER_DECODER(ADPCM_SBPRO_2, adpcm_sbpro_2);
REGISTER_DECODER(ADPCM_SBPRO_3, adpcm_sbpro_3);
@ -562,8 +570,22 @@ void avcodec_register_all(void)
REGISTER_ENCDEC (XSUB, xsub);
/* external libraries */
REGISTER_ENCDEC (AAC_AT, aac_at);
REGISTER_DECODER(AC3_AT, ac3_at);
REGISTER_DECODER(ADPCM_IMA_QT_AT, adpcm_ima_qt_at);
REGISTER_ENCDEC (ALAC_AT, alac_at);
REGISTER_DECODER(AMR_NB_AT, amr_nb_at);
REGISTER_DECODER(EAC3_AT, eac3_at);
REGISTER_DECODER(GSM_MS_AT, gsm_ms_at);
REGISTER_ENCDEC (ILBC_AT, ilbc_at);
REGISTER_DECODER(MP1_AT, mp1_at);
REGISTER_DECODER(MP2_AT, mp2_at);
REGISTER_DECODER(MP3_AT, mp3_at);
REGISTER_ENCDEC (PCM_ALAW_AT, pcm_alaw_at);
REGISTER_ENCDEC (PCM_MULAW_AT, pcm_mulaw_at);
REGISTER_DECODER(QDMC_AT, qdmc_at);
REGISTER_DECODER(QDM2_AT, qdm2_at);
REGISTER_DECODER(LIBCELT, libcelt);
REGISTER_DECODER(LIBDCADEC, libdcadec)
REGISTER_ENCODER(LIBFAAC, libfaac);
REGISTER_ENCDEC (LIBFDK_AAC, libfdk_aac);
REGISTER_ENCDEC (LIBGSM, libgsm);
@ -579,7 +601,6 @@ void avcodec_register_all(void)
REGISTER_ENCDEC (LIBSPEEX, libspeex);
REGISTER_ENCODER(LIBTHEORA, libtheora);
REGISTER_ENCODER(LIBTWOLAME, libtwolame);
REGISTER_ENCDEC (LIBUTVIDEO, libutvideo);
REGISTER_ENCODER(LIBVO_AMRWBENC, libvo_amrwbenc);
REGISTER_ENCDEC (LIBVORBIS, libvorbis);
REGISTER_ENCDEC (LIBVPX_VP8, libvpx_vp8);
@ -602,14 +623,28 @@ void avcodec_register_all(void)
/* external libraries, that shouldn't be used by default if one of the
* above is available */
REGISTER_ENCODER(LIBOPENH264, libopenh264);
REGISTER_ENCDEC (LIBOPENH264, libopenh264);
REGISTER_DECODER(H264_CUVID, h264_cuvid);
REGISTER_ENCODER(H264_NVENC, h264_nvenc);
REGISTER_ENCODER(H264_OMX, h264_omx);
REGISTER_ENCODER(H264_QSV, h264_qsv);
REGISTER_ENCODER(H264_VAAPI, h264_vaapi);
REGISTER_ENCODER(H264_VIDEOTOOLBOX, h264_videotoolbox);
#if FF_API_NVENC_OLD_NAME
REGISTER_ENCODER(NVENC, nvenc);
REGISTER_ENCODER(NVENC_H264, nvenc_h264);
REGISTER_ENCODER(NVENC_HEVC, nvenc_hevc);
#endif
REGISTER_DECODER(HEVC_CUVID, hevc_cuvid);
REGISTER_ENCODER(HEVC_NVENC, hevc_nvenc);
REGISTER_ENCODER(HEVC_QSV, hevc_qsv);
REGISTER_ENCODER(HEVC_VAAPI, hevc_vaapi);
REGISTER_ENCODER(LIBKVAZAAR, libkvazaar);
REGISTER_ENCODER(MJPEG_VAAPI, mjpeg_vaapi);
REGISTER_ENCODER(MPEG2_QSV, mpeg2_qsv);
REGISTER_DECODER(VC1_CUVID, vc1_cuvid);
REGISTER_DECODER(VP8_CUVID, vp8_cuvid);
REGISTER_DECODER(VP9_CUVID, vp9_cuvid);
/* parsers */
REGISTER_PARSER(AAC, aac);
@ -650,20 +685,4 @@ void avcodec_register_all(void)
REGISTER_PARSER(VP3, vp3);
REGISTER_PARSER(VP8, vp8);
REGISTER_PARSER(VP9, vp9);
/* bitstream filters */
REGISTER_BSF(AAC_ADTSTOASC, aac_adtstoasc);
REGISTER_BSF(CHOMP, chomp);
REGISTER_BSF(DUMP_EXTRADATA, dump_extradata);
REGISTER_BSF(H264_MP4TOANNEXB, h264_mp4toannexb);
REGISTER_BSF(HEVC_MP4TOANNEXB, hevc_mp4toannexb);
REGISTER_BSF(IMX_DUMP_HEADER, imx_dump_header);
REGISTER_BSF(MJPEG2JPEG, mjpeg2jpeg);
REGISTER_BSF(MJPEGA_DUMP_HEADER, mjpega_dump_header);
REGISTER_BSF(MP3_HEADER_DECOMPRESS, mp3_header_decompress);
REGISTER_BSF(MPEG4_UNPACK_BFRAMES, mpeg4_unpack_bframes);
REGISTER_BSF(MOV2TEXTSUB, mov2textsub);
REGISTER_BSF(NOISE, noise);
REGISTER_BSF(REMOVE_EXTRADATA, remove_extradata);
REGISTER_BSF(TEXT2MOVSUB, text2movsub);
}

View File

@ -729,7 +729,7 @@ static int read_var_block_data(ALSDecContext *ctx, ALSBlockData *bd)
quant_cof[k] = decode_rice(gb, rice_param) + offset;
if (quant_cof[k] < -64 || quant_cof[k] > 63) {
av_log(avctx, AV_LOG_ERROR,
"quant_cof %"PRIu32" is out of range.\n",
"quant_cof %"PRId32" is out of range.\n",
quant_cof[k]);
return AVERROR_INVALIDDATA;
}
@ -765,8 +765,13 @@ static int read_var_block_data(ALSDecContext *ctx, ALSBlockData *bd)
bd->ltp_gain[0] = decode_rice(gb, 1) << 3;
bd->ltp_gain[1] = decode_rice(gb, 2) << 3;
r = get_unary(gb, 0, 3);
r = get_unary(gb, 0, 4);
c = get_bits(gb, 2);
if (r >= 4) {
av_log(avctx, AV_LOG_ERROR, "r overflow\n");
return AVERROR_INVALIDDATA;
}
bd->ltp_gain[2] = ltp_gain_values[r][c];
bd->ltp_gain[3] = decode_rice(gb, 2) << 3;
@ -867,9 +872,6 @@ static int read_var_block_data(ALSDecContext *ctx, ALSBlockData *bd)
*current_res++ = decode_rice(gb, s[sb]);
}
if (!sconf->mc_coding || ctx->js_switch)
align_get_bits(gb);
return 0;
}
@ -989,6 +991,7 @@ static int read_block(ALSDecContext *ctx, ALSBlockData *bd)
{
int ret;
GetBitContext *gb = &ctx->gb;
ALSSpecificConfig *sconf = &ctx->sconf;
*bd->shift_lsbs = 0;
// read block type flag and read the samples accordingly
@ -998,6 +1001,9 @@ static int read_block(ALSDecContext *ctx, ALSBlockData *bd)
ret = read_const_block_data(ctx, bd);
}
if (!sconf->mc_coding || ctx->js_switch)
align_get_bits(gb);
return ret;
}
@ -1292,13 +1298,13 @@ static int revert_channel_correlation(ALSDecContext *ctx, ALSBlockData *bd,
if (ch[dep].time_diff_sign) {
t = -t;
if (begin < t) {
av_log(ctx->avctx, AV_LOG_ERROR, "begin %td smaller than time diff index %d.\n", begin, t);
av_log(ctx->avctx, AV_LOG_ERROR, "begin %"PTRDIFF_SPECIFIER" smaller than time diff index %d.\n", begin, t);
return AVERROR_INVALIDDATA;
}
begin -= t;
} else {
if (end < t) {
av_log(ctx->avctx, AV_LOG_ERROR, "end %td smaller than time diff index %d.\n", end, t);
av_log(ctx->avctx, AV_LOG_ERROR, "end %"PTRDIFF_SPECIFIER" smaller than time diff index %d.\n", end, t);
return AVERROR_INVALIDDATA;
}
end -= t;

View File

@ -547,13 +547,13 @@ static void decode_fixed_sparse(AMRFixed *fixed_sparse, const uint16_t *pulses,
* @param p the context
* @param subframe unpacked amr subframe
* @param mode mode of the current frame
* @param fixed_sparse sparse respresentation of the fixed vector
* @param fixed_sparse sparse representation of the fixed vector
*/
static void pitch_sharpening(AMRContext *p, int subframe, enum Mode mode,
AMRFixed *fixed_sparse)
{
// The spec suggests the current pitch gain is always used, but in other
// modes the pitch and codebook gains are joinly quantized (sec 5.8.2)
// modes the pitch and codebook gains are jointly quantized (sec 5.8.2)
// so the codebook gain cannot depend on the quantized pitch gain.
if (mode == MODE_12k2)
p->beta = FFMIN(p->pitch_gain[4], 1.0);

View File

@ -38,7 +38,7 @@
#define MIN_ISF_SPACING (128.0 / 32768.0) ///< minimum isf gap
#define PRED_FACTOR (1.0 / 3.0)
#define MIN_ENERGY -14.0 ///< initial innnovation energy (dB)
#define MIN_ENERGY -14.0 ///< initial innovation energy (dB)
#define ENERGY_MEAN 30.0 ///< mean innovation energy (dB) in all modes
#define PREEMPH_FAC 0.68 ///< factor used to de-emphasize synthesis

View File

@ -151,7 +151,6 @@ static int decode_mime_header(AMRWBContext *ctx, const uint8_t *buf)
*
* @param[in] ind Array of 5 indexes
* @param[out] isf_q Buffer for isf_q[LP_ORDER]
*
*/
static void decode_isf_indices_36b(uint16_t *ind, float *isf_q)
{
@ -178,7 +177,6 @@ static void decode_isf_indices_36b(uint16_t *ind, float *isf_q)
*
* @param[in] ind Array of 7 indexes
* @param[out] isf_q Buffer for isf_q[LP_ORDER]
*
*/
static void decode_isf_indices_46b(uint16_t *ind, float *isf_q)
{
@ -212,7 +210,6 @@ static void decode_isf_indices_46b(uint16_t *ind, float *isf_q)
*
* @param[in,out] isf_q Current quantized ISF
* @param[in,out] isf_past Past quantized ISF
*
*/
static void isf_add_mean_and_past(float *isf_q, float *isf_past)
{

View File

@ -206,7 +206,7 @@ static int execute_code(AVCodecContext * avctx, int c)
s->y = s->nb_args > 0 ? av_clip((s->args[0] - 1)*s->font_height, 0, avctx->height - s->font_height) : 0;
s->x = s->nb_args > 1 ? av_clip((s->args[1] - 1)*FONT_WIDTH, 0, avctx->width - FONT_WIDTH) : 0;
break;
case 'h': //set creen mode
case 'h': //set screen mode
case 'l': //reset screen mode
if (s->nb_args < 2)
s->args[0] = DEFAULT_SCREEN_MODE;

Some files were not shown because too many files have changed in this diff Show More