OSDN Git Service

android-x86/external-ffmpeg.git
7 years agomss2: only use error correction for matching block counts
Andreas Cadhalpun [Thu, 24 Nov 2016 22:57:46 +0000 (23:57 +0100)]
mss2: only use error correction for matching block counts

This fixes a heap-buffer-overflow in ff_er_frame_end when decoding mss2
with coded_width/coded_height larger than width/height.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
7 years agoavcodec/nvenc: Remove aspect-ratio decompensation logic
Philip Langdale [Wed, 23 Nov 2016 22:05:18 +0000 (14:05 -0800)]
avcodec/nvenc: Remove aspect-ratio decompensation logic

This dubious behaviour in nvenc was finally removed by nvidia, and
as we refuse to run on anything older than 7.0, we don't need to
keep it around for old versions.

7 years agoavcodec/mpeg4audio: correctly propagate meaningful error values
James Almer [Fri, 25 Nov 2016 13:40:59 +0000 (10:40 -0300)]
avcodec/mpeg4audio: correctly propagate meaningful error values

Signed-off-by: James Almer <jamrial@gmail.com>
7 years agolavf/flvdec: Set avg_frame_rate for video streams.
Carl Eugen Hoyos [Fri, 25 Nov 2016 10:06:14 +0000 (11:06 +0100)]
lavf/flvdec: Set avg_frame_rate for video streams.

Requested-by: qw, applemax82 at 163 dot com
Reviewed-by: Steven Liu
7 years agoMAINTAINERS: Add Vittorio to "Developers with git write access who are currently...
Michael Niedermayer [Wed, 23 Nov 2016 11:04:27 +0000 (12:04 +0100)]
MAINTAINERS: Add Vittorio to "Developers with git write access who are currently not maintaining any specific part"

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agoMAINTAINERS: Add developers who have git write access but are otherwise not listed
Michael Niedermayer [Mon, 21 Nov 2016 17:22:03 +0000 (18:22 +0100)]
MAINTAINERS: Add developers who have git write access but are otherwise not listed

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agosoftfloat: decrease MIN_EXP to cover full float range
Andreas Cadhalpun [Thu, 24 Nov 2016 23:26:51 +0000 (00:26 +0100)]
softfloat: decrease MIN_EXP to cover full float range

floats are not necessarily normalized, so a normalized softfloat needs
MIN_EXP lowered by 23 to cover that range.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
7 years agofate/exr: add test for pxr24 with half and uint32 channel
Martin Vignali [Thu, 17 Nov 2016 20:25:19 +0000 (21:25 +0100)]
fate/exr: add test for pxr24 with half and uint32 channel

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
7 years agolibavcodec/exr: add support for uint32 channel decoding with pxr24
Martin Vignali [Thu, 17 Nov 2016 20:24:42 +0000 (21:24 +0100)]
libavcodec/exr: add support for uint32 channel decoding with pxr24

Doesn't decode the uint32 layer, but decodes the half part of the file.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
7 years agolibopusdec: default to stereo for invalid number of channels
Andreas Cadhalpun [Mon, 14 Nov 2016 20:41:45 +0000 (21:41 +0100)]
libopusdec: default to stereo for invalid number of channels

This fixes an out-of-bounds read if avc->channels is 0.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
7 years agoflvdec: require need_context_update when changing codec id
Andreas Cadhalpun [Fri, 4 Nov 2016 20:37:13 +0000 (21:37 +0100)]
flvdec: require need_context_update when changing codec id

Otherwise the codec context and codecpar might disagree on the codec id,
triggering asserts in av_parser_parse2.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
7 years agoswresample/resample: optimize exact_rational=on:linear_interp=on case
Muhammad Faiz [Thu, 24 Nov 2016 08:02:07 +0000 (15:02 +0700)]
swresample/resample: optimize exact_rational=on:linear_interp=on case

separate dsp.resample to dsp.resample_common and dsp.resample_linear
and choose to call faster resample_common even when linear_interp=on
when c->frac and c->dst_incr_mod are both zero

speed up resampling when exact_rational and linear_interp are both
enabled because exact_rational force c->frac and c->dst_incr_mod to
be zero when soft compensation does not happen

benchmark on exact_rational=on:linear_interp=on
        old     new
real    8.432s  5.097s
user    7.679s  4.989s
sys     0.125s  0.107s

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
7 years agofate/swresample: add resample exact_lin and exact_lin_async test
Muhammad Faiz [Wed, 23 Nov 2016 20:30:25 +0000 (03:30 +0700)]
fate/swresample: add resample exact_lin and exact_lin_async test

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
7 years agoavutil/tests: add cpu_init to .gitignore and tests/fate
Wan-Teh Chang [Wed, 23 Nov 2016 23:08:20 +0000 (15:08 -0800)]
avutil/tests: add cpu_init to .gitignore and tests/fate

This is a follow-up to commit d84a21207ea83055dc9b6dc1cd6a379f2ea756e7,
which added the libavutil/tests/cpu_init.c.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agoavfilter/tests/.gitignore: add integral
Wan-Teh Chang [Wed, 23 Nov 2016 23:08:20 +0000 (15:08 -0800)]
avfilter/tests/.gitignore: add integral

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agocuda: check for cuda.h when enabled
James Almer [Thu, 24 Nov 2016 16:39:13 +0000 (13:39 -0300)]
cuda: check for cuda.h when enabled

Fixes make checkheaders on systems without the Cuda Toolkit, which
was broken after the dynlink changes.

Signed-off-by: James Almer <jamrial@gmail.com>
7 years agoffmpeg_filter: fix several logic failures
Paul B Mahol [Thu, 24 Nov 2016 15:14:27 +0000 (16:14 +0100)]
ffmpeg_filter: fix several logic failures

Move global thread variables to better place.
Use correct variable for simple and complex filtergraphs.

This makes number of threads set per filter work again.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
7 years agopgssubdec: only set w/h/linesize when allocating data
Andreas Cadhalpun [Wed, 9 Nov 2016 22:23:16 +0000 (23:23 +0100)]
pgssubdec: only set w/h/linesize when allocating data

Rects with positive w/h/linesize but no data are invalid.

Reviewed-by: Petri Hintukainen <phintuka@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
7 years agolavfi/pan: allow negative gain parameters also for other inputs than the first named
Moritz Barsnick [Fri, 28 Oct 2016 12:13:25 +0000 (14:13 +0200)]
lavfi/pan: allow negative gain parameters also for other inputs than the first named

Expands the parser to also accept the separator '-' in addition to
'+', and take the negative sign into consideration.

The optional sign for the first factor in the expression is already
covered by parsing for an integer.

Signed-off-by: Moritz Barsnick <barsnick@gmx.net>
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agolavc/vaapi_hevc: fix scaling list duplicate transfer issue.
Jun Zhao [Tue, 22 Nov 2016 07:58:50 +0000 (15:58 +0800)]
lavc/vaapi_hevc: fix scaling list duplicate transfer issue.

scaling list is already transfered to raster scan during head parsing,
so no need to transfer it again.

And after this fix, FATE test SLIST_A_Sony_4/SLIST_B_Sony_8/
SLIST_C_Sony_3/SLIST_D_Sony_9 will pass in i965/Skylake.

Signed-off-by: Wang, Yi A <yi.a.wamg@intel.com>
Signed-off-by: Jun Zhao <jun.zhao@intel.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
7 years agoavutil/tests: Add cpu_init.c to check whether the one-time initialization in av_get_c...
Wan-Teh Chang [Wed, 23 Nov 2016 19:21:56 +0000 (11:21 -0800)]
avutil/tests: Add cpu_init.c to check whether the one-time initialization in av_get_cpu_flags() has data races.

Co-author: Dmitry Vyukov of Google

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agoavutil/cpu: remove the |checked| static variable
Wan-Teh Chang [Wed, 23 Nov 2016 19:21:56 +0000 (11:21 -0800)]
avutil/cpu: remove the |checked| static variable

Remove the |checked| variable because the invalid value of -1 for
|flags| can be used to indicate the same condition. Also rename |flags|
to |cpu_flags| because there are a local variable and a function
parameter named |flags| in the same file.

Co-author: Dmitry Vyukov of Google

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agoavcodec/cuvid: Restore initialization of pixel format in init()
Philip Langdale [Wed, 23 Nov 2016 20:10:32 +0000 (12:10 -0800)]
avcodec/cuvid: Restore initialization of pixel format in init()

I moved this into the handle_video_sequence callback because that's
the earliest time you can make an accurate decision as to what the
format should be.

However, transcoding requires that the decision between using
the accelerated PIX_FMT_CUDA vs a normal pix format happen at init()
time. There is enough information available to make that decision
and things work out with the underlying format only being discovered
in the sequence callback.

7 years agoavfilter/vf_zscale: add support for some recent new additions
Paul B Mahol [Wed, 23 Nov 2016 15:43:59 +0000 (16:43 +0100)]
avfilter/vf_zscale: add support for some recent new additions

Signed-off-by: Paul B Mahol <onemda@gmail.com>
7 years agofate: update fate-source ref file
James Almer [Wed, 23 Nov 2016 03:54:57 +0000 (00:54 -0300)]
fate: update fate-source ref file

Signed-off-by: James Almer <jamrial@gmail.com>
7 years agodoc/examples/muxing: Fix av_frame_make_writable usage
Sam Hocevar [Sun, 23 Oct 2016 22:12:00 +0000 (00:12 +0200)]
doc/examples/muxing: Fix av_frame_make_writable usage

This patch moves the av_frame_make_writable() call from fill_yuv_image
to get_video_frame so that its argument can be the actual frame that
will be sent to the encoder.

This fixes data corruption issues in codecs that keep references on
one or several previous frames.

Signed-off-by: Sam Hocevar <sam@hocevar.net>
Reviewed-by: wm4
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agoavcodec/options_table: make channel_layouts uint64
Michael Niedermayer [Sun, 20 Nov 2016 11:22:08 +0000 (12:22 +0100)]
avcodec/options_table: make channel_layouts uint64

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agoavutil/opt: Add AV_OPT_TYPE_UINT64
Michael Niedermayer [Sun, 20 Nov 2016 11:57:43 +0000 (12:57 +0100)]
avutil/opt: Add AV_OPT_TYPE_UINT64

Requested-by: wm4 ([FFmpeg-devel] [PATCH] avutil/opt: Support max > INT64_MAX in write_number() with AV_OPT_TYPE_INT64)
Requested-by: ronald ([FFmpeg-devel] [PATCH] avutil/opt: Support max > INT64_MAX in write_number() with AV_OPT_TYPE_INT64)
Reviewed-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agosbgdec: prevent NULL pointer access
Andreas Cadhalpun [Thu, 10 Nov 2016 21:21:20 +0000 (22:21 +0100)]
sbgdec: prevent NULL pointer access

Reviewed-by: Josh de Kock <josh@itanimul.li>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
7 years agormdec: validate block alignment
Andreas Cadhalpun [Thu, 17 Nov 2016 21:46:40 +0000 (22:46 +0100)]
rmdec: validate block alignment

This fixes division by zero crashes.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
7 years agosmacker: limit recursion depth of smacker_decode_bigtree
Andreas Cadhalpun [Sat, 19 Nov 2016 13:21:11 +0000 (14:21 +0100)]
smacker: limit recursion depth of smacker_decode_bigtree

This fixes segmentation faults due to stack-overflow caused by too deep
recursion.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
7 years agoavformat/mpeg: Adjust vid probe threshold to correct mis-detection
Michael Niedermayer [Tue, 15 Nov 2016 19:06:42 +0000 (20:06 +0100)]
avformat/mpeg: Adjust vid probe threshold to correct mis-detection

Fixes: _ij.mp3

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agomxfdec: fix NULL pointer dereference in mxf_read_packet_old
Andreas Cadhalpun [Thu, 17 Nov 2016 21:53:51 +0000 (22:53 +0100)]
mxfdec: fix NULL pointer dereference in mxf_read_packet_old

Metadata streams have priv_data set to NULL.

Reviewed-by: Josh de Kock <josh@itanimul.li>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
7 years agolibvpxenc: Support targeting a VP9 level
Alex Converse [Fri, 18 Nov 2016 21:55:45 +0000 (13:55 -0800)]
libvpxenc: Support targeting a VP9 level

Levels are specified at https://www.webmproject.org/vp9/levels/

7 years agoavcodec/cuvid: Add support for P010/P016 as an output surface format
Philip Langdale [Tue, 22 Nov 2016 16:20:37 +0000 (08:20 -0800)]
avcodec/cuvid: Add support for P010/P016 as an output surface format

The nvidia 375.xx driver introduces support for P016 output surfaces,
for 10bit and 12bit HEVC content (it's also the first driver to support
hardware decoding of 12bit content).

The cuvid api, as far as I can tell, only declares one output format
that they appear to refer to as P016 in the driver strings. Of course,
10bit content in P016 is identical to P010, and it is useful for
compatibility purposes to declare the format to be P010 to work with
other components that only know how to consume P010 (and to avoid
triggering swscale conversions that are lossy when they shouldn't be).

For simplicity, this change does not maintain the previous ability
to output dithered NV12 for 10/12 bit input video - the user will need
to update their driver to decode such videos.

7 years agolibavutil/hwcontext_cuda: Support P010 and P016 formats
Philip Langdale [Tue, 22 Nov 2016 16:18:31 +0000 (08:18 -0800)]
libavutil/hwcontext_cuda: Support P010 and P016 formats

CUVID is now capable of returning 10bit and 12bit decoded content
in P010/P016. Let's support transfering those formats.

7 years agoavutil: add P016 pixel format
Philip Langdale [Sun, 20 Nov 2016 21:55:49 +0000 (13:55 -0800)]
avutil: add P016 pixel format

P016 is the 16-bit variant of NV12 (planar luma, packed chroma), using
two bytes per component.

It may, and in fact is most likely to, be used in situations where
there are less than 16 bits of data. It is the responsibility of
the writer to zero out any unused LSBs.

7 years agoavcodec/libx264: fix forced_idr logic
Timo Rothenpieler [Wed, 12 Oct 2016 19:54:52 +0000 (21:54 +0200)]
avcodec/libx264: fix forced_idr logic

Currently, it forces IDR frames for both true and false.
Not entirely sure what the original idea behind the tri-state bool
option is.

Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
7 years agoavcodec/cuvid: allow setting number of used surfaces
Miroslav Slugen [Mon, 21 Nov 2016 12:16:39 +0000 (13:16 +0100)]
avcodec/cuvid: allow setting number of used surfaces

Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
7 years agoavcodec/nvenc: better surface allocation alghoritm, fix rc_lookahead
Miroslav Slugeň [Mon, 21 Nov 2016 11:17:43 +0000 (12:17 +0100)]
avcodec/nvenc: better surface allocation alghoritm, fix rc_lookahead

User selectable surfaces are not working correctly, if you set number of
surfaces on cmdline, it will always use minimum 32 or 48 depends on
selected resolution, but in nvenc it is not necessary to use so many
surfaces.

So from now you can define as low as 1 surface and nvenc will still
work, it will ofcourse lower GPU memory usage by 95% and async_delay to zero

That was the easy part, now littlebit more...

Next part of this patch is to always prefer rc_lookahead to be more
important for number of surfaces, than user defined surfaces value.
Maximum rc_lookahead from nvidia documentation is 32, but could increase
in future generations so there is no limit for this yet. Value
async_depth is still accepted and prefered over rc_lookahead.

There were also bug when you request more than rc_lookahead > 31, it
will always set maximum 31, because surface numbers recalculation was
after setting lookahead, which is now fixed.

Results:
If you set -rc_lookahead 32 and -bf 3 it will now use only 40 surfaces
and lower GPU memory usage by 20%, also it will now increase PSNR by 0.012dB

Two more comments:

1. from my internal test, i don't understand addition of 4 more surfaces
when lookahead is calculated, i didn't used this and everything works as
with those 4 more extra surfaces, does anybody know what is going on
there? I looks like it was used for B frames which are calculated
separately, because B frames maximum is 4.

2. rc_lookahead is defined default to -1, but in test condition if
(ctx->rc_lookahead) which sets lookahead it will be always true, i don't
know if this is intended behavior, so in default behavior is lookahead
always on!

This is default condition when rc_lokkahead is -1 (not defined on
cmdline), whis is maybe something that is not intended:
ctx->encode_config.rcParams.enableLookahead = 1;
ctx->encode_config.rcParams.lookaheadDepth  = 0;
ctx->encode_config.rcParams.disableIadapt   = 0;
ctx->encode_config.rcParams.disableBadapt   = 0;

Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
7 years agoavcodec/nvenc: maximum usable surfaces are limited to maximum registered frames
Miroslav Slugeň [Mon, 21 Nov 2016 10:07:09 +0000 (11:07 +0100)]
avcodec/nvenc: maximum usable surfaces are limited to maximum registered frames

Maximum usable surfaces is limited to MAX_REGISTERED_FRAMES constant in
nvenc.h

Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
7 years agoconfigure: cuda is no longer nonfree, enable and autodetect by default
Timo Rothenpieler [Mon, 10 Oct 2016 10:58:26 +0000 (12:58 +0200)]
configure: cuda is no longer nonfree, enable and autodetect by default

7 years agoavfilter/vf_hwupload_cuda: check ff_formats_ref for errors
Timo Rothenpieler [Mon, 10 Oct 2016 10:57:29 +0000 (12:57 +0200)]
avfilter/vf_hwupload_cuda: check ff_formats_ref for errors

7 years agoavfilter/vf_hwupload_cuda: use new hwdevice allocation API
Timo Rothenpieler [Mon, 10 Oct 2016 10:56:55 +0000 (12:56 +0200)]
avfilter/vf_hwupload_cuda: use new hwdevice allocation API

7 years agoavcodec/nvenc: use dynamically loaded CUDA
Timo Rothenpieler [Mon, 10 Oct 2016 10:55:59 +0000 (12:55 +0200)]
avcodec/nvenc: use dynamically loaded CUDA

7 years agoavfilter/vf_scale_npp: use dynamically loaded CUDA
Timo Rothenpieler [Mon, 10 Oct 2016 10:54:42 +0000 (12:54 +0200)]
avfilter/vf_scale_npp: use dynamically loaded CUDA

7 years agoavcodec/cuvid: use dynamically loaded CUDA/CUVID
Timo Rothenpieler [Mon, 10 Oct 2016 10:53:49 +0000 (12:53 +0200)]
avcodec/cuvid: use dynamically loaded CUDA/CUVID

And remove the now obsolete compat headers.

7 years agoavutil/hwcontext_cuda: use dynamically loaded CUDA
Timo Rothenpieler [Mon, 10 Oct 2016 10:52:40 +0000 (12:52 +0200)]
avutil/hwcontext_cuda: use dynamically loaded CUDA

7 years agocompat/cuda: add dynamic loader
Timo Rothenpieler [Mon, 10 Oct 2016 10:47:15 +0000 (12:47 +0200)]
compat/cuda: add dynamic loader

7 years agoavformat/flvenc: add no_metadata to flvflags
Steven Liu [Mon, 21 Nov 2016 12:26:11 +0000 (20:26 +0800)]
avformat/flvenc: add no_metadata to flvflags

some flv have no metadata,
ffmpeg will same with the source flv stream.

Signed-off-by: Steven Liu <lingjiujianke@gmail.com>
7 years agoavformat/utils: add missing brackets around arguments in av_realloc() call
James Almer [Tue, 22 Nov 2016 02:01:48 +0000 (23:01 -0300)]
avformat/utils: add missing brackets around arguments in av_realloc() call

Found-by: Neil Birkbeck <neil.birkbeck@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
7 years agovaapi_encode: Fix format specifier for bitrate logging
Mark Thompson [Mon, 21 Nov 2016 22:59:58 +0000 (22:59 +0000)]
vaapi_encode: Fix format specifier for bitrate logging

Same as e0df56f25d09b14f5315799338be246806c46806.  This was accidentally
reintroduced while merging c8241e730f116f1c9cfc0b34110aa7f052e05332.

7 years agolavc/vaapi_encode_h264: fix poc incorrect issue after meeting idr frame.
Jun Zhao [Fri, 11 Nov 2016 06:53:49 +0000 (14:53 +0800)]
lavc/vaapi_encode_h264: fix poc incorrect issue after meeting idr frame.

when meeting IDR frame, vaapi_encode_h264 poc number don't reset, now fix
this issue based on h264 spec. Some decoder don't care this case, but this
fix will enhance the encoder action. Before this fix, poc number is
negative in some case.

Reviewed-by: Jun Zhao <jun.zhao@intel.com>
Signed-off-by: Wang, Yi A <yi.a.wang@intel.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
7 years agovaapi_h265: Fix buffering parameters
Mark Thompson [Fri, 30 Sep 2016 15:47:19 +0000 (17:47 +0200)]
vaapi_h265: Fix buffering parameters

A decoder may need this to be set correctly to output frames in the
right order.

(cherry picked from commit b8cac1e83066aa87e8402c146c81b77a11b5eec3)

7 years agovaapi_h265: Fix slice header writing
Mark Thompson [Fri, 30 Sep 2016 15:31:49 +0000 (17:31 +0200)]
vaapi_h265: Fix slice header writing

This was not observed earlier because the only syntax element which
it normally misses with the current setup is slice_qp_delta, but that
is always going to be zero (in IDR frames QP isn't varied on the
slice) which will always exp-golomb code as a single 1 bit.  The
immediately following part is the byte alignment, which is always a 1
bit followed by 0s which are ignored, so as long as the bitstream is
never aligned at that point we will never notice because the only
difference is that an ignored bit is a 1 instead of a 0.

(cherry picked from commit fc30a90898e419cee7c7cb496976da6337d0bf3e)

7 years agovaapi_h264: Write bitstream restriction fields
Mark Thompson [Sat, 1 Oct 2016 10:01:08 +0000 (11:01 +0100)]
vaapi_h264: Write bitstream restriction fields

(cherry picked from commit ec17ab381ede4f31c4bdd2767d8f62d24aaf430a)

7 years agovaapi_h264: Fix CFR mode with frame_rate set in AVCodecContext
Mark Thompson [Sat, 1 Oct 2016 08:48:44 +0000 (10:48 +0200)]
vaapi_h264: Fix CFR mode with frame_rate set in AVCodecContext

(cherry picked from commit 17a0f9481cf07af0feb3838ca315b970117e8000)

7 years agovaapi_encode: Decide on GOP setup before initialising sequence parameters
Mark Thompson [Fri, 30 Sep 2016 15:27:58 +0000 (17:27 +0200)]
vaapi_encode: Decide on GOP setup before initialising sequence parameters

This was always too late; several fields related to it have been incorrectly
zero since the encoder was added.

(cherry picked from commit 314b421dd8910ebed7a8d419a0dbea239a00044e)

7 years agovaapi_h264: Set max_num_ref_frames to 1 when not using B frames
Mark Thompson [Tue, 27 Sep 2016 18:08:42 +0000 (19:08 +0100)]
vaapi_h264: Set max_num_ref_frames to 1 when not using B frames

(cherry picked from commit 956a54129db522998a5abae869568dae2c9774cb)

7 years agovaapi_encode: Sync to input surface rather than output
Mark Thompson [Sun, 18 Sep 2016 15:06:55 +0000 (16:06 +0100)]
vaapi_encode: Sync to input surface rather than output

While outwardly bizarre, this change makes the behaviour consistent
with other VAAPI encoders which sync to the encode /input/ picture in
order to wait for /output/ from the encoder.  It is not harmful on
i965 (because synchronisation already happens in vaRenderPicture(),
so it has no effect there), and it allows the encoder to work on
mesa/gallium which assumes this behaviour.

(cherry picked from commit 086e4b58b59ea3993107aa24d92bb962ec69667c)

7 years agovaapi_encode: Check packed header capabilities
Mark Thompson [Sun, 18 Sep 2016 13:59:59 +0000 (14:59 +0100)]
vaapi_encode: Check packed header capabilities

This improves behaviour with drivers which do not support packed
headers, such as AMD VCE on mesa/gallium.

(cherry picked from commit 892bbbcdc171ff0d08d69636a240ffb95f54243c)

7 years agovaapi_encode: Refactor initialisation
Mark Thompson [Sun, 18 Sep 2016 13:55:26 +0000 (14:55 +0100)]
vaapi_encode: Refactor initialisation

This allows better checking of capabilities and will make it easier
to add more functionality later.

It also commonises some duplicated code around rate control setup
and adds more comments explaining the internals.

(cherry picked from commit 80a5d05108cb218e8cd2e25c6621a3bfef0a832e)

7 years agovaapi_h264: Fix HRD bit_rate/cpb_size scaling
Mark Thompson [Mon, 12 Sep 2016 23:25:07 +0000 (00:25 +0100)]
vaapi_h264: Fix HRD bit_rate/cpb_size scaling

There should be an extra offset of 6 on bit_rate_scale and of 4 on
cpb_size_scale which were not accounted for here.

(cherry picked from commit 3a9662af6c741f8354b1ca97642f78f5c02e2e8f)

7 years agoavformat/movenc: Restrict experimental VP9 support to MODE_MP4.
Matthew Gregan [Fri, 18 Nov 2016 03:29:42 +0000 (16:29 +1300)]
avformat/movenc: Restrict experimental VP9 support to MODE_MP4.

Signed-off-by: Matthew Gregan <kinetik@flim.org>
Signed-off-by: James Almer <jamrial@gmail.com>
7 years agoAdd experimental demuxing support for FLAC in ISO BMFF (MP4).
Matthew Gregan [Fri, 21 Oct 2016 03:10:43 +0000 (16:10 +1300)]
Add experimental demuxing support for FLAC in ISO BMFF (MP4).

Based on the draft spec at https://git.xiph.org/?p=flac.git;a=blob;f=doc/isoflac.txt

Signed-off-by: Matthew Gregan <kinetik@flim.org>
Signed-off-by: James Almer <jamrial@gmail.com>
7 years agoAdd experimental muxing support for FLAC in ISO BMFF (MP4).
Matthew Gregan [Thu, 20 Oct 2016 04:28:11 +0000 (17:28 +1300)]
Add experimental muxing support for FLAC in ISO BMFF (MP4).

Based on the draft spec at https://git.xiph.org/?p=flac.git;a=blob;f=doc/isoflac.txt

'-strict experimental' is required to create files in this format.

Signed-off-by: Matthew Gregan <kinetik@flim.org>
Signed-off-by: James Almer <jamrial@gmail.com>
7 years agoMAINTAINERS: add myself as an API tests maintainer
Ludmila Glinskih [Mon, 24 Aug 2015 00:37:42 +0000 (03:37 +0300)]
MAINTAINERS: add myself as an API tests maintainer

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agoffplay: allow fallback to software renderer
Marton Balint [Thu, 17 Nov 2016 21:10:34 +0000 (22:10 +0100)]
ffplay: allow fallback to software renderer

Signed-off-by: Marton Balint <cus@passwd.hu>
7 years agoffplay: add support for negative RGBA linesize
Marton Balint [Mon, 14 Nov 2016 23:38:12 +0000 (00:38 +0100)]
ffplay: add support for negative RGBA linesize

This fixes the crash reported in ticket #5947.

Signed-off-by: Marton Balint <cus@passwd.hu>
7 years agoavformat/matroskaenc: write updated STREAMINFO metadata for FLAC streams if available
James Almer [Mon, 31 Oct 2016 23:04:46 +0000 (20:04 -0300)]
avformat/matroskaenc: write updated STREAMINFO metadata for FLAC streams if available

FLAC streams originating from the FLAC encoder send updated and more
complete STREAMINFO metadata as part of the last packet, so write that
to CodecPrivate instead of the incomplete one available in extradata
during init.

Signed-off-by: James Almer <jamrial@gmail.com>
7 years agoavformat/matroskaenc: postpone writing the Tracks master
James Almer [Sun, 30 Oct 2016 19:39:03 +0000 (16:39 -0300)]
avformat/matroskaenc: postpone writing the Tracks master

This will allow us to write updated stream information not available
during write_header().

Signed-off-by: James Almer <jamrial@gmail.com>
7 years agoavutil/opt: Fix setting int64 to its maximum
Michael Niedermayer [Sun, 20 Nov 2016 11:57:42 +0000 (12:57 +0100)]
avutil/opt: Fix setting int64 to its maximum

Found-by: Andreas
Reviewed-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agolavc/ffv1: Support YUV4xxP12 and GRAY12.
Carl Eugen Hoyos [Thu, 17 Nov 2016 12:08:27 +0000 (13:08 +0100)]
lavc/ffv1: Support YUV4xxP12 and GRAY12.

7 years agoffmdec: validate codec parameters
Andreas Cadhalpun [Wed, 16 Nov 2016 23:04:57 +0000 (00:04 +0100)]
ffmdec: validate codec parameters

A negative extradata size for example gets passed to memcpy in
avcodec_parameters_from_context causing a segmentation fault.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
7 years agoswscale/options: Use AV_OPT_TYPE_PIXEL_FMT
Michael Niedermayer [Sat, 19 Nov 2016 01:23:26 +0000 (02:23 +0100)]
swscale/options: Use AV_OPT_TYPE_PIXEL_FMT

Found-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agoavcodec/avpacket: fix leak on realloc in av_packet_add_side_data()
James Almer [Sat, 19 Nov 2016 15:38:44 +0000 (12:38 -0300)]
avcodec/avpacket: fix leak on realloc in av_packet_add_side_data()

If realloc fails, the pointer is overwritten and the previously allocated
buffer is leaked, which goes against the expected behavior of keeping the
packet unchanged in case of error.

Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
7 years agoavformat/utils: check for overflow before reallocating side data
James Almer [Sat, 19 Nov 2016 17:33:10 +0000 (14:33 -0300)]
avformat/utils: check for overflow before reallocating side data

This makes av_stream_add_side_data() consistent with av_packet_add_side_data().

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
7 years agoavformat/matroska: use av_stream_add_side_data() for stereo3d side data
James Almer [Thu, 17 Nov 2016 05:19:38 +0000 (02:19 -0300)]
avformat/matroska: use av_stream_add_side_data() for stereo3d side data

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
7 years agoavformat/mov: reuse existing err variable
James Almer [Sat, 19 Nov 2016 03:54:58 +0000 (00:54 -0300)]
avformat/mov: reuse existing err variable

Signed-off-by: James Almer <jamrial@gmail.com>
7 years agoavformat/mov: use av_stream_add_side_data() for displaymatrix side data
James Almer [Thu, 17 Nov 2016 05:19:19 +0000 (02:19 -0300)]
avformat/mov: use av_stream_add_side_data() for displaymatrix side data

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
7 years agoavformat/utils: add av_stream_add_side_data()
James Almer [Thu, 17 Nov 2016 05:02:41 +0000 (02:02 -0300)]
avformat/utils: add av_stream_add_side_data()

Functionally similar to av_packet_add_side_data(). Allows the use of an
already allocated buffer as stream side data.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
7 years agoavformat/flvdec: add debug message to list keyframes index metadata
Steven Liu [Fri, 4 Nov 2016 11:54:48 +0000 (19:54 +0800)]
avformat/flvdec: add debug message to list keyframes index metadata

when parsing keyframe index metadata, list the message by trace log

Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agooptions_table: limit codec parameters to sane values
Andreas Cadhalpun [Thu, 17 Nov 2016 18:25:50 +0000 (19:25 +0100)]
options_table: limit codec parameters to sane values

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
7 years agox86/vp9itxfm: add missing AVX2 guards
James Almer [Fri, 18 Nov 2016 19:58:35 +0000 (16:58 -0300)]
x86/vp9itxfm: add missing AVX2 guards

Fixes compilation with Yasm 1.1.0 and older.

Signed-off-by: James Almer <jamrial@gmail.com>
7 years agoffmpeg: factor out sending frame to filters
Clément Bœsch [Mon, 24 Oct 2016 21:01:23 +0000 (23:01 +0200)]
ffmpeg: factor out sending frame to filters

Video doesn't exit ffmpeg on error anymore, and audio now prints an
error.

7 years agoffmpeg: remove dead code out of the video filter loop
Clément Bœsch [Mon, 24 Oct 2016 20:54:03 +0000 (22:54 +0200)]
ffmpeg: remove dead code out of the video filter loop

It makes no sense for this code to be inside the video filter loop, and
the frame sample aspect ratio is even set unconditionally a few lines
above.

7 years agoavcodec/ffv1dec: Set packed_at_lsb for 16bit YUV
Michael Niedermayer [Thu, 17 Nov 2016 22:29:00 +0000 (23:29 +0100)]
avcodec/ffv1dec: Set packed_at_lsb for 16bit YUV

This avoids unneeded computations

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agoavcodec/ffv1dec: Support gray 10/12/16 explicitly avoid shifts
Michael Niedermayer [Thu, 17 Nov 2016 22:21:37 +0000 (23:21 +0100)]
avcodec/ffv1dec: Support gray 10/12/16 explicitly avoid shifts

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agoavformat/apngenc: use the stream parameters extradata if available
James Almer [Fri, 18 Nov 2016 15:21:54 +0000 (12:21 -0300)]
avformat/apngenc: use the stream parameters extradata if available

Fixes remuxing apng streams coming from the apng demuxer, which sends extradata
during init.

Signed-off-by: James Almer <jamrial@gmail.com>
7 years agoRevert "apngdec: use side data to pass extradata to the decoder"
James Almer [Fri, 18 Nov 2016 15:08:54 +0000 (12:08 -0300)]
Revert "apngdec: use side data to pass extradata to the decoder"

This reverts commit e0c6b32046f4bab7d34be77dd2f03b2a80c86d39.

Said commit changed the behavior of the demuxer and decoder in a non
backwards compatible way.
Demuxers should make extradata available at init if possible, and send
new extradata as side data within a packet if needed.

A better fix for the remuxing crash will follow.

Signed-off-by: James Almer <jamrial@gmail.com>
7 years agoMerge commit '8d07e941b04d63fc4443dd986e3dc7b69cdcca43'
Hendrik Leppkes [Fri, 18 Nov 2016 10:32:10 +0000 (11:32 +0100)]
Merge commit '8d07e941b04d63fc4443dd986e3dc7b69cdcca43'

* commit '8d07e941b04d63fc4443dd986e3dc7b69cdcca43':
  FATE: add a test of H.264 SEI recovery in an intra refresh stream

Our H264 decoder drops 3 frames from the beginning of the stream, but
all frames after those match, hence the difference in the fate test.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
7 years agoMerge commit '46278ec90ac5ad1dab5e85991f176afe49003fee'
Hendrik Leppkes [Fri, 18 Nov 2016 09:48:40 +0000 (10:48 +0100)]
Merge commit '46278ec90ac5ad1dab5e85991f176afe49003fee'

* commit '46278ec90ac5ad1dab5e85991f176afe49003fee':
  mp3enc: write trailing padding

Noop, we have our own implementation for mp3 gapless.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
7 years agoMerge commit 'd60c2d5216930ef98c7d4d6837d6229b37e0dcb3'
Hendrik Leppkes [Fri, 18 Nov 2016 09:48:04 +0000 (10:48 +0100)]
Merge commit 'd60c2d5216930ef98c7d4d6837d6229b37e0dcb3'

* commit 'd60c2d5216930ef98c7d4d6837d6229b37e0dcb3':
  mp3dec: read the initial/trailing padding from the LAME tag

Noop, we have our own implementation for mp3 gapless tags.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
7 years agoMerge commit '7a76371437f9562c3414f985523f883489e3936a'
Hendrik Leppkes [Fri, 18 Nov 2016 09:47:08 +0000 (10:47 +0100)]
Merge commit '7a76371437f9562c3414f985523f883489e3936a'

* commit '7a76371437f9562c3414f985523f883489e3936a':
  libopenh264enc: Simplify init by setting FF_CODEC_CAP_INIT_CLEANUP

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
7 years agoMerge commit '2d097c16b833c532ac974a7f1fd05c0a1f3b7675'
Hendrik Leppkes [Fri, 18 Nov 2016 09:46:02 +0000 (10:46 +0100)]
Merge commit '2d097c16b833c532ac974a7f1fd05c0a1f3b7675'

* commit '2d097c16b833c532ac974a7f1fd05c0a1f3b7675':
  libopenh264enc: Return a more sensible error code in some init failure paths

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
7 years agoMerge commit '36b380dcd52ef47d7ba0559ed51192c88d82a9bd'
Hendrik Leppkes [Fri, 18 Nov 2016 09:45:08 +0000 (10:45 +0100)]
Merge commit '36b380dcd52ef47d7ba0559ed51192c88d82a9bd'

* commit '36b380dcd52ef47d7ba0559ed51192c88d82a9bd':
  libopenh264dec: Simplify the init thanks to FF_CODEC_CAP_INIT_CLEANUP being set

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
7 years agoMerge commit 'd0b1e6049b06eeeeca146ece4d2f199c5dba1565'
Hendrik Leppkes [Fri, 18 Nov 2016 09:44:37 +0000 (10:44 +0100)]
Merge commit 'd0b1e6049b06eeeeca146ece4d2f199c5dba1565'

* commit 'd0b1e6049b06eeeeca146ece4d2f199c5dba1565':
  libopenh264dec: Fix cleanup if the init failed early

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
7 years agoMerge commit '61cb9fac47498a38dfe7623f66aa1f3696e9158c'
Hendrik Leppkes [Fri, 18 Nov 2016 09:44:21 +0000 (10:44 +0100)]
Merge commit '61cb9fac47498a38dfe7623f66aa1f3696e9158c'

* commit '61cb9fac47498a38dfe7623f66aa1f3696e9158c':
  mov: fix stream extradata_size allocation

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
7 years agoMerge commit '0b1bd1b2057d41fd0ccba7317911c484a50f9207'
Hendrik Leppkes [Fri, 18 Nov 2016 09:20:14 +0000 (10:20 +0100)]
Merge commit '0b1bd1b2057d41fd0ccba7317911c484a50f9207'

* commit '0b1bd1b2057d41fd0ccba7317911c484a50f9207':
  lavd: Drop unneeded av_init_packet()s

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
7 years agoMerge commit '390b95b88b2b896b63f257f69e434dfc0111e076'
Hendrik Leppkes [Fri, 18 Nov 2016 09:16:54 +0000 (10:16 +0100)]
Merge commit '390b95b88b2b896b63f257f69e434dfc0111e076'

* commit '390b95b88b2b896b63f257f69e434dfc0111e076':
  fate: Add a mixed NAL coding sample

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>