]> git.sesse.net Git - ffmpeg/log
ffmpeg
6 years agoavformat/mpegts: reindent after last change
Aman Gupta [Wed, 9 May 2018 21:31:30 +0000 (14:31 -0700)]
avformat/mpegts: reindent after last change

Signed-off-by: Aman Gupta <aman@tmm1.net>
6 years agoavformat/mpegts: parse sections with multiple tables
Aman Gupta [Wed, 9 May 2018 21:20:48 +0000 (14:20 -0700)]
avformat/mpegts: parse sections with multiple tables

Fixes PMT parsing in some mpegts streams which contain
multiple tables within the PMT pid. Previously, the parser
assumed only one table was present in each packet, and discarded
the rest of the section data after attempting to parse the first
table.

A similar issue was documented in the BeyondTV software[1], which
helped me diagnose the same bug in the ffmpeg mpegts demuxer. I also
tried DVBInspector, libdvbpsi's dvbinfo, and tstools' tsinfo to
help debug. The former two properly read PMTs with multiple tables,
whereas the last has the same bug as ffmpeg.

I've created a minimal sample[2] which contains the combined PMT.
Here's what ffmpeg probe shows before and after this patch:

Before:

    Input #0, mpegts, from 'combined-pmt-tids.ts':
      Duration: 00:00:01.08, start: 4932.966167, bitrate: 741 kb/s
      Program 1
      No Program
        Stream #0:0[0xf9d]: Audio: ac3, 48000 Hz, mono, fltp, 96 kb/s
        Stream #0:1[0xf9b]: Audio: mp3, 0 channels, fltp
        Stream #0:2[0xf9c]: Unknown: none

After:

    Input #0, mpegts, from 'combined-pmt-tids.ts':
      Duration: 00:00:01.11, start: 4932.966167, bitrate: 718 kb/s
      Program 1
        Stream #0:0[0xf9b]: Video: mpeg2video ([2][0][0][0] / 0x0002), none(tv, top first), 29.97 fps, 29.97 tbr, 90k tbn, 90k tbc
        Stream #0:1[0xf9c](eng): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, 5.1(side), fltp, 384 kb/s
        Stream #0:2[0xf9d](spa): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, mono, fltp, 96 kb/s

With the patch, the PMT is parsed correctly so the streams are
created in the correct order, are associated with "Program 1",
and their codecs are set correctly.

[1] http://forums.snapstream.com/vb/showpost.php?p=343816&postcount=201
[2] https://s3.amazonaws.com/tmm1/combined-pmt-tids.ts

Signed-off-by: Aman Gupta <aman@tmm1.net>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agoavformat/hlsenc: set AVFMT_NODIMENSIONS
Aman Gupta [Thu, 10 May 2018 02:22:33 +0000 (19:22 -0700)]
avformat/hlsenc: set AVFMT_NODIMENSIONS

Same as previous commit but for mpegts inside HLS.

Signed-off-by: Aman Gupta <aman@tmm1.net>
6 years agoavformat/mpegtsenc: set AVFMT_NODIMENSIONS
Aman Gupta [Thu, 10 May 2018 02:21:10 +0000 (19:21 -0700)]
avformat/mpegtsenc: set AVFMT_NODIMENSIONS

This allows remuxing streams from one mpegts container to another,
without requiring avformat_find_stream_info() (or using `ffmpeg
-probesize 32` on the cli).

Signed-off-by: Aman Gupta <aman@tmm1.net>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agoavfilter/vf_maskedmerge: add slice threading
Paul B Mahol [Sat, 12 May 2018 13:46:28 +0000 (15:46 +0200)]
avfilter/vf_maskedmerge: add slice threading

Signed-off-by: Paul B Mahol <onemda@gmail.com>
6 years agoavfilter/vf_deblock: add timeline support
Paul B Mahol [Sat, 12 May 2018 10:34:02 +0000 (12:34 +0200)]
avfilter/vf_deblock: add timeline support

Signed-off-by: Paul B Mahol <onemda@gmail.com>
6 years agoavformat/mxfenc: Set color siting to 0 for D10-MXF
Michael Niedermayer [Fri, 6 Apr 2018 16:09:54 +0000 (18:09 +0200)]
avformat/mxfenc: Set color siting to 0 for D10-MXF

SMPTE 386M (D-10) lists 4 as value to be used
SMPTE 377-1-2009 says
    "The definitions of 00h (coSiting) and 04h (Rec 601) are equivalent. The value of 04h is deprecated. New
     MXF encoders shall use the value of 00h instead."

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agoavformat/mxfenc: Add Sample width/height/x offset/y offset, Display x offset and...
Michael Niedermayer [Sat, 17 Mar 2018 22:06:13 +0000 (23:06 +0100)]
avformat/mxfenc: Add Sample width/height/x offset/y offset, Display x offset and F2 offset

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agofate: add more tests for hue video filter
Tobias Rapp [Wed, 9 May 2018 09:30:40 +0000 (11:30 +0200)]
fate: add more tests for hue video filter

Adds tests for the hue angle and brightness filter parameters.
Renames the existing saturation parameter test for consistency.

Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com>
6 years agofate/cbs: Add an SEI test
Mark Thompson [Mon, 7 May 2018 22:55:20 +0000 (23:55 +0100)]
fate/cbs: Add an SEI test

The artificial sample file sei-1.h264 contains five frames (IDR P B I B)
and the following SEI message types:
* Buffering period
* Picture timing
* Pan-scan rectangle (display as 4:3)
* User data registered, containing A/53 closed captions (captions match
  frame content, including reordering)
* Recovery point (at the I frame)
* Display orientation (identity transformation)
* Mastering display (with arbitrary contents)
* Undefined SEI type 1234 (containing ascending bytes)

6 years agocbs_h264: Add support for mastering display SEI messages
Mark Thompson [Mon, 7 May 2018 22:33:36 +0000 (23:33 +0100)]
cbs_h264: Add support for mastering display SEI messages

6 years agocbs_h264: Add support for pan-scan rectangle SEI messages
Mark Thompson [Mon, 7 May 2018 22:33:08 +0000 (23:33 +0100)]
cbs_h264: Add support for pan-scan rectangle SEI messages

6 years agoh264_metadata: Fix AUD writing
Mark Thompson [Mon, 7 May 2018 22:12:28 +0000 (23:12 +0100)]
h264_metadata: Fix AUD writing

The aud structure exists on the stack, so the variable was previously
out-of-scope when the unit is written.

6 years agoh264_metadata: Remove redundant setting of SEI payload size
Mark Thompson [Mon, 7 May 2018 22:01:48 +0000 (23:01 +0100)]
h264_metadata: Remove redundant setting of SEI payload size

This should be derived from the data length rather than set explicitly.

6 years agocbs_h264: Fix handling of unknown SEI
Mark Thompson [Mon, 7 May 2018 22:05:52 +0000 (23:05 +0100)]
cbs_h264: Fix handling of unknown SEI

The user should only interact directly with the data length, not the
payload size.

6 years agolavc/qdrw: Read PixMap palette.
Carl Eugen Hoyos [Sat, 5 May 2018 00:24:15 +0000 (02:24 +0200)]
lavc/qdrw: Read PixMap palette.

Fixes ticket #6195.

6 years agolavd/v4l2: Add ARGB and XRGB packed pixel formats
Anton Leontiev [Thu, 10 May 2018 15:31:20 +0000 (18:31 +0300)]
lavd/v4l2: Add ARGB and XRGB packed pixel formats

Formats ARGB32, XRGB32, ABGR32, and XBGR32 were added to V4L2 instead
of ill-defined deprecated RGB32/BGR32 pixel formats.

When pixel format is not specified explicitly FFmpeg tries formats in
order in which they are stored in the table. Therefore formats are
sorted as follows: BGR is preferred over RGB and XBGR is preferred
over ARGB, because it could give better performance by ignoring alpha
component.

6 years agovaapi_encode_h265: Insert content light level information
Haihao Xiang [Thu, 10 May 2018 05:47:47 +0000 (13:47 +0800)]
vaapi_encode_h265: Insert content light level information

Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
6 years agocbs_h265: read/write content light level information SEI message
Haihao Xiang [Thu, 10 May 2018 05:47:46 +0000 (13:47 +0800)]
cbs_h265: read/write content light level information SEI message

Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
6 years agovaapi_encode_h265: Insert mastering display colour volume
Haihao Xiang [Thu, 10 May 2018 05:47:45 +0000 (13:47 +0800)]
vaapi_encode_h265: Insert mastering display colour volume

'-sei xxx' is added to control SEI insertion, so far only mastering
display colour volume is available for testing.

Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
6 years agocbs_h265: read/write HEVC PREFIX SEI
Haihao Xiang [Thu, 10 May 2018 05:47:44 +0000 (13:47 +0800)]
cbs_h265: read/write HEVC PREFIX SEI

Similar to H264, cbs_h265_{read, write}_nal_unit() can handle HEVC
prefix SEI NAL units. Currently mastering display colour volume SEI
message is added only, we may add more SEI message if needed later

Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
6 years agohwcontext_vaapi: Add an assert in vaapi_map_from_drm()
Haihao Xiang [Thu, 10 May 2018 03:08:23 +0000 (11:08 +0800)]
hwcontext_vaapi: Add an assert in vaapi_map_from_drm()

Every fourcc in vaapi_drm_format_map should be in
vaapi_format_map, so add an assert to ensure we have the right maps.

Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
6 years agovaapi_encode: Add an assert in vaapi_encode_truncate_gop()
Haihao Xiang [Thu, 10 May 2018 03:08:22 +0000 (11:08 +0800)]
vaapi_encode: Add an assert in vaapi_encode_truncate_gop()

The flag of input_available must be set when pic_start is not NULL, so
add an assert to ensure it is true. In addition, the assert on last_pic
is unnecessary now, so remove this assert.

Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
6 years agoavcodec/nvdec_hevc: fix scaling lists
Philip Langdale [Thu, 10 May 2018 01:48:59 +0000 (18:48 -0700)]
avcodec/nvdec_hevc: fix scaling lists

The main issue here was the use of [i] instead of [i * 3] for the 32x32
matrix. As part of fixing this, I changed the code to match that used
in vdpau_hevc, which I spent a lot of time verifying.

I also changed to calculating NumPocTotalCurr using the existing helper,
which is what vdpau does.

Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
6 years agoavcodec/hevcdec: make ff_hevc_frame_nb_refs take a const pointer
Timo Rothenpieler [Thu, 10 May 2018 10:22:34 +0000 (12:22 +0200)]
avcodec/hevcdec: make ff_hevc_frame_nb_refs take a const pointer

6 years agoavfilter: add fftdnoiz filter
Paul B Mahol [Sun, 6 May 2018 09:50:52 +0000 (11:50 +0200)]
avfilter: add fftdnoiz filter

Signed-off-by: Paul B Mahol <onemda@gmail.com>
6 years agolavfi/tests/filtfmts: fix the build warning.
Jun Zhao [Sun, 6 May 2018 01:33:28 +0000 (09:33 +0800)]
lavfi/tests/filtfmts: fix the build warning.

fix the build warning: ignoring return value.

Signed-off-by: Jun Zhao <mypopydev@gmail.com>
6 years agocheckasm/sw_rgb: fix the function declaration warning
Jun Zhao [Sun, 6 May 2018 01:33:27 +0000 (09:33 +0800)]
checkasm/sw_rgb: fix the function declaration warning

fix the warning: "function declaration isn’t a prototype", in C
int foo() and int foo(void) are different functions. int foo()
accepts an arbitrary number of arguments, while int foo(void) accepts 0
arguments.

Signed-off-by: Jun Zhao <mypopydev@gmail.com>
6 years agolavf/network: fix doxygen comments.
Jun Zhao [Sun, 6 May 2018 11:53:19 +0000 (19:53 +0800)]
lavf/network: fix doxygen comments.

Signed-off-by: Jun Zhao <mypopydev@gmail.com>
6 years agoavformat/mxfenc: add h264 profiles
Thomas Mundt [Sun, 6 May 2018 19:05:47 +0000 (21:05 +0200)]
avformat/mxfenc: add h264 profiles

Signed-off-by: Thomas Mundt <tmundt75@gmail.com>
Reviewed-by: Tomas Härdin <tjoppen@acc.umu.se>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agoavfilter/vf_hwupload_cuda: update supported pix_fmts
Timo Rothenpieler [Wed, 9 May 2018 20:30:34 +0000 (22:30 +0200)]
avfilter/vf_hwupload_cuda: update supported pix_fmts

6 years agoavutil/hwcontext_cuda: use generic size and pointer assignment functions
Timo Rothenpieler [Wed, 9 May 2018 19:18:15 +0000 (21:18 +0200)]
avutil/hwcontext_cuda: use generic size and pointer assignment functions

6 years agoavutil/hwcontext_cuda: add support for nvenc rgb formats
Timo Rothenpieler [Wed, 9 May 2018 16:59:05 +0000 (18:59 +0200)]
avutil/hwcontext_cuda: add support for nvenc rgb formats

6 years agoavcodec/cuviddec: explicitly synchronize cuMemcpy calls
Timo Rothenpieler [Tue, 8 May 2018 11:56:51 +0000 (13:56 +0200)]
avcodec/cuviddec: explicitly synchronize cuMemcpy calls

6 years agoavutil/hwcontext_cuda: explicitly synchronize cuMemcpy calls
Timo Rothenpieler [Tue, 8 May 2018 10:12:01 +0000 (12:12 +0200)]
avutil/hwcontext_cuda: explicitly synchronize cuMemcpy calls

6 years agoavcodec/nvdec: pass CUstream in vpp parameters
Timo Rothenpieler [Mon, 7 May 2018 22:07:31 +0000 (00:07 +0200)]
avcodec/nvdec: pass CUstream in vpp parameters

6 years agoavutil/hwcontext_cuda: add CUstream in cuda hwctx
Timo Rothenpieler [Mon, 7 May 2018 13:01:22 +0000 (15:01 +0200)]
avutil/hwcontext_cuda: add CUstream in cuda hwctx

6 years agoavcodec/nvdec: avoid needless copy of output frame
Timo Rothenpieler [Mon, 7 May 2018 16:23:38 +0000 (18:23 +0200)]
avcodec/nvdec: avoid needless copy of output frame

Replaces the data pointers with the mapped cuvid ones.
Adds buffer_refs to the frame to ensure the needed contexts stay alive
and the cuvid idx stays allocated.
Adds another buffer_ref to unmap the frame when it's unreferenced itself.

6 years agoRevert "avcodec/nvenc: make hw_frames_ctx fully optional"
Timo Rothenpieler [Mon, 7 May 2018 20:39:20 +0000 (22:39 +0200)]
Revert "avcodec/nvenc: make hw_frames_ctx fully optional"

This reverts commit 7d4e1f7cfb667585514bfa0a4d0fee2f717a93ed.

Accidentially pushed this with a batch of other patches, and it didn't
seem to break anything, so I went with it.
Except it does, so reverting it it is.

6 years agoavformat/mpegts: clean up whitespace
Aman Gupta [Wed, 9 May 2018 19:43:38 +0000 (12:43 -0700)]
avformat/mpegts: clean up whitespace

Signed-off-by: Aman Gupta <aman@tmm1.net>
6 years agoavformat/mpegts: use MAX_SECTION_SIZE instead of hardcoded value
Aman Gupta [Wed, 9 May 2018 19:42:14 +0000 (12:42 -0700)]
avformat/mpegts: use MAX_SECTION_SIZE instead of hardcoded value

Signed-off-by: Aman Gupta <aman@tmm1.net>
6 years agoavformat/mpegts: skip non-PMT tids earlier
Aman Gupta [Tue, 8 May 2018 22:07:35 +0000 (15:07 -0700)]
avformat/mpegts: skip non-PMT tids earlier

This mimics the logic flow in all the other callbacks
(pat_cb, sdt_cb, m4sl_cb), and avoids calling skip_identical()
for non PMT_TID packets.

Since skip_identical modifies internal state like
MpegTSSectionFilter.last_ver, this change prevents unnecessary
reprocessing on some streams which contain multiple tables in
the PMT pid. This can be observed with streams from certain US
cable providers, which include both tid=0x2 and another unspecified
tid=0xc0.

Signed-off-by: Aman Gupta <aman@tmm1.net>
6 years agoffprobe: fix SEGV when new streams are added
Aman Gupta [Tue, 8 May 2018 19:46:12 +0000 (12:46 -0700)]
ffprobe: fix SEGV when new streams are added

Signed-off-by: Aman Gupta <aman@tmm1.net>
6 years agoavcodec/hevc: remove videotoolbox hack
Aman Gupta [Fri, 4 May 2018 21:57:50 +0000 (14:57 -0700)]
avcodec/hevc: remove videotoolbox hack

No longer required since 63d875772d. The equivalent hack
for h264 was removed in that commit, but this one was missed.

Signed-off-by: Aman Gupta <aman@tmm1.net>
6 years agoavcodec/videotoolbox: split h264/hevc callbacks
Aman Gupta [Fri, 4 May 2018 21:58:08 +0000 (14:58 -0700)]
avcodec/videotoolbox: split h264/hevc callbacks

Previously the shared callbacks were trying to interpret
avctx->priv_data as H264Context*

Signed-off-by: Aman Gupta <aman@tmm1.net>
6 years agoavcodec/videotoolbox: cleanups
Aman Gupta [Fri, 4 May 2018 21:57:32 +0000 (14:57 -0700)]
avcodec/videotoolbox: cleanups

No functional changes.

Signed-off-by: Aman Gupta <aman@tmm1.net>
6 years agoavcodec/cbs_h2645: use AVBufferRef to store list of active parameter sets
James Almer [Tue, 8 May 2018 23:09:28 +0000 (20:09 -0300)]
avcodec/cbs_h2645: use AVBufferRef to store list of active parameter sets

Removes unnecessary data copies, and partially fixes potential issues
with dangling references held in said lists.

Reviewed-by: Mark Thompson <sw@jkqxz.net>
Signed-off-by: James Almer <jamrial@gmail.com>
6 years agoavformat/mxfenc: Write transfer characteristic
Michael Niedermayer [Wed, 21 Mar 2018 20:34:20 +0000 (21:34 +0100)]
avformat/mxfenc: Write transfer characteristic

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agoavformat/mxfenc: Add Stored F2 Offset / Image Start/End Offset for D10
Michael Niedermayer [Tue, 17 Apr 2018 22:09:00 +0000 (00:09 +0200)]
avformat/mxfenc: Add Stored F2 Offset / Image Start/End Offset for D10

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agoavformat/mxfenc: Write Audio Ref Level for D10
Michael Niedermayer [Fri, 6 Apr 2018 19:44:23 +0000 (21:44 +0200)]
avformat/mxfenc: Write Audio Ref Level for D10

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agoavformat/mxfenc: Add Padding Bits
Michael Niedermayer [Thu, 5 Apr 2018 21:30:37 +0000 (23:30 +0200)]
avformat/mxfenc: Add Padding Bits

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agoavformat/mxfenc: add white/black ref /color range
Michael Niedermayer [Thu, 5 Apr 2018 20:53:22 +0000 (22:53 +0200)]
avformat/mxfenc: add white/black ref /color range

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agoavformat/mxfenc: Add vertical subsampling support
Michael Niedermayer [Wed, 21 Mar 2018 18:32:32 +0000 (19:32 +0100)]
avformat/mxfenc: Add vertical subsampling support

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agoavformat/mxfenc: Fix stored width
Michael Niedermayer [Sat, 17 Mar 2018 22:04:50 +0000 (23:04 +0100)]
avformat/mxfenc: Fix stored width

This fixes the width to have computations matching the height

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agoavformat/mxfenc: Add object model version
Michael Niedermayer [Sat, 17 Mar 2018 20:16:26 +0000 (21:16 +0100)]
avformat/mxfenc: Add object model version

Other tools (XFConvert at least) write this as well.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agoavformat/mxfenc: Add Product Version, Toolkit version and Platform
Michael Niedermayer [Sat, 17 Mar 2018 15:01:15 +0000 (16:01 +0100)]
avformat/mxfenc: Add Product Version, Toolkit version and Platform

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agoavformat/mxfenc: Bump minor versions for S377-1-2009
Michael Niedermayer [Tue, 8 May 2018 19:24:15 +0000 (21:24 +0200)]
avformat/mxfenc: Bump minor versions for S377-1-2009

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agoavformat/mxfenc: Correct KAG alignment of preface
Michael Niedermayer [Mon, 30 Apr 2018 00:26:37 +0000 (02:26 +0200)]
avformat/mxfenc: Correct KAG alignment of preface

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agolavfi/vf_srcnn: use avio_check instead of access
Hendrik Leppkes [Tue, 8 May 2018 15:25:26 +0000 (17:25 +0200)]
lavfi/vf_srcnn: use avio_check instead of access

The filter uses avio for file access already, and avio_check is
portable.

Fixes trac #7192.

6 years agolavc/cfhd: use AV_CEIL_RSHIFT instead of deprecated FF_CEIL_RSHIFT
Clément Bœsch [Tue, 8 May 2018 10:45:11 +0000 (12:45 +0200)]
lavc/cfhd: use AV_CEIL_RSHIFT instead of deprecated FF_CEIL_RSHIFT

6 years agolavfi/swaprect: use AV_CEIL_RSHIFT instead of deprecated FF_CEIL_RSHIFT
Clément Bœsch [Tue, 8 May 2018 10:44:57 +0000 (12:44 +0200)]
lavfi/swaprect: use AV_CEIL_RSHIFT instead of deprecated FF_CEIL_RSHIFT

6 years agolavfi/nlmeans: use AV_CEIL_RSHIFT instead of deprecated FF_CEIL_RSHIFT
Clément Bœsch [Tue, 8 May 2018 10:44:48 +0000 (12:44 +0200)]
lavfi/nlmeans: use AV_CEIL_RSHIFT instead of deprecated FF_CEIL_RSHIFT

6 years agofate/hapenc : remove tests due to inconsistent result
Martin Vignali [Tue, 8 May 2018 09:41:52 +0000 (11:41 +0200)]
fate/hapenc : remove tests due to inconsistent result

6 years agolavfi/nlmeans: inline integral patch value function
Clément Bœsch [Mon, 7 May 2018 21:28:08 +0000 (23:28 +0200)]
lavfi/nlmeans: inline integral patch value function

This prevents redundant position computation and make the code faster
(1.1x faster overall).

6 years agolavfi/nlmeans: use unsigned for the integral patch value
Clément Bœsch [Mon, 7 May 2018 16:45:52 +0000 (18:45 +0200)]
lavfi/nlmeans: use unsigned for the integral patch value

This value can not be negative.

6 years agolavfi/nlmeans: reorder memory accesses in get_integral_patch_value
Clément Bœsch [Sun, 6 May 2018 11:31:32 +0000 (13:31 +0200)]
lavfi/nlmeans: reorder memory accesses in get_integral_patch_value

This doesn't seem to make much of a difference but it can't hurt.

6 years agolavfi/nlmeans: move final weighted averaging out of nlmeans_plane
Clément Bœsch [Sun, 6 May 2018 11:26:45 +0000 (13:26 +0200)]
lavfi/nlmeans: move final weighted averaging out of nlmeans_plane

This helps figuring out where the filter is slow:

  70.53%  ffmpeg_g  ffmpeg_g          [.] nlmeans_slice
  25.73%  ffmpeg_g  ffmpeg_g          [.] compute_safe_ssd_integral_image_c
   1.74%  ffmpeg_g  ffmpeg_g          [.] compute_unsafe_ssd_integral_image
   0.82%  ffmpeg_g  ffmpeg_g          [.] ff_mjpeg_decode_sos
   0.51%  ffmpeg_g  [unknown]         [k] 0xffffffff91800a80
   0.24%  ffmpeg_g  ffmpeg_g          [.] weight_averages

(Tested with a large image that takes several seconds to process)

Since this function is irrelevant speed wise, the file's TODO is
updated.

6 years agolavfi/nlmeans: switch from double to float
Clément Bœsch [Sun, 6 May 2018 10:55:23 +0000 (12:55 +0200)]
lavfi/nlmeans: switch from double to float

Overall speed appears to be 1.1x faster with no noticeable quality
impact.

6 years agolavfi/nlmeans: make compute_safe_ssd_integral_image_c faster
Clément Bœsch [Sun, 6 May 2018 10:34:54 +0000 (12:34 +0200)]
lavfi/nlmeans: make compute_safe_ssd_integral_image_c faster

before:  ssd_integral_image_c: 49204.6
after:   ssd_integral_image_c: 44272.8

Unrolling by 4 made the biggest difference on odroid-c2 (aarch64);
unrolling by 2 or 8 both raised 46k cycles vs 44k for 4.

Additionally, this is a much better reference when writing SIMD (SIMD
vectorization will just target 16 instead of 4).

6 years agocheckasm: add vf_nlmeans test for ssd_integral_image
Clément Bœsch [Sun, 6 May 2018 08:57:23 +0000 (10:57 +0200)]
checkasm: add vf_nlmeans test for ssd_integral_image

6 years agolavfi/nlmeans: add AArch64 SIMD for compute_safe_ssd_integral_image
Clément Bœsch [Sun, 6 May 2018 08:54:49 +0000 (10:54 +0200)]
lavfi/nlmeans: add AArch64 SIMD for compute_safe_ssd_integral_image

ssd_integral_image_c: 49204.6
ssd_integral_image_neon: 28346.8

6 years agolavfi/nlmeans: use ptrdiff_t for linesizes
Clément Bœsch [Sun, 6 May 2018 08:43:04 +0000 (10:43 +0200)]
lavfi/nlmeans: use ptrdiff_t for linesizes

Similarly to previous commit, this will help writing SIMD code by not
having manual zero-extension in SIMD code

6 years agolavfi/nlmeans: add SIMD-friendly assumptions for compute_safe_ssd_integral_image
Clément Bœsch [Sun, 6 May 2018 08:38:30 +0000 (10:38 +0200)]
lavfi/nlmeans: add SIMD-friendly assumptions for compute_safe_ssd_integral_image

SIMD code will not have to deal with padding itself. Overwriting in that
function may have been possible but involve large overreading of the
sources. Instead, we simply make sure the width to process is always a
multiple of 16. Additionally, there must be some actual area to process
so the SIMD code can have its boundary checks after processing the first
pixels.

6 years agolavfi/nlmeans: random code shuffling to help compiler
Clément Bœsch [Sat, 5 May 2018 22:06:19 +0000 (00:06 +0200)]
lavfi/nlmeans: random code shuffling to help compiler

This makes nlmeans_slice() slightly faster at least on GCC 7.3.

6 years agoavformat/segafilmenc - set keyframe bit correctly
Gyan Doshi [Sat, 5 May 2018 11:34:53 +0000 (17:04 +0530)]
avformat/segafilmenc - set keyframe bit correctly

As per
https://web.archive.org/web/20020803104640/http://www.pcisys.net:80/~melanson/codecs/film-format.txt,

the top bit of the info1 chunk is set as 1 for inter-coded frames and 0
otherwise.

6 years agomdct15: simplify x86 exptab permutation
Rostislav Pehlivanov [Mon, 7 May 2018 22:16:37 +0000 (23:16 +0100)]
mdct15: simplify x86 exptab permutation

Removes an unneeded copy and does the 5-point permute in-place.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
6 years agomdct15: simplify the fft15 x86 SIMD
Rostislav Pehlivanov [Sun, 6 May 2018 22:15:08 +0000 (23:15 +0100)]
mdct15: simplify the fft15 x86 SIMD

Saves 1 gpr and 2 instructions and simplifies the macros a bit.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
6 years agovaapi_encode_vp8: memset the the structure to 0
Haihao Xiang [Fri, 4 May 2018 14:41:07 +0000 (22:41 +0800)]
vaapi_encode_vp8: memset the the structure to 0

The structure has reserved bytes, it is required to set the reserved
bytes to 0 for future use.

Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
6 years agocbs_h264: Need [] in the name when subscript is required
Haihao Xiang [Fri, 4 May 2018 04:33:39 +0000 (12:33 +0800)]
cbs_h264: Need [] in the name when subscript is required

Otherwise it will hit an assert in the function
ff_cbs_trace_syntax_element() in cbs.c, line 400.

Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
6 years agolavc/qsvenc: set corret maximum value of look_ahead_downsampling
Zhong Li [Wed, 2 May 2018 08:42:35 +0000 (16:42 +0800)]
lavc/qsvenc: set corret maximum value of look_ahead_downsampling

Option "4x(MFX_LOOKAHEAD_DS_4x)" is provided but can't be set due to
wrong maximum value.

Signed-off-by: Zhong Li <zhong.li@intel.com>
6 years agoconfigure: fix and simplify xlib check
James Almer [Sun, 6 May 2018 23:45:53 +0000 (20:45 -0300)]
configure: fix and simplify xlib check

Signed-off-by: James Almer <jamrial@gmail.com>
6 years agoconfigure: add missing dependencies to vf_srcnn
James Almer [Sun, 6 May 2018 20:15:54 +0000 (17:15 -0300)]
configure: add missing dependencies to vf_srcnn

The access dependecy is temporary and should fix compilation with
msvc until a proper fix is committed.

Signed-off-by: James Almer <jamrial@gmail.com>
6 years agoavcodec/libzvbi-teletextdec: remove DEBUG code
Marton Balint [Sat, 28 Apr 2018 19:46:18 +0000 (21:46 +0200)]
avcodec/libzvbi-teletextdec: remove DEBUG code

Signed-off-by: Marton Balint <cus@passwd.hu>
6 years agoavcodec/libzvbi-teletextdec: allow -1 subtitle duration and make it the default
Marton Balint [Sat, 28 Apr 2018 17:17:31 +0000 (19:17 +0200)]
avcodec/libzvbi-teletextdec: allow -1 subtitle duration and make it the default

Most decoders (pgssubdec, ccaption_dec) are using -1 or UINT32_MAX for a
subtitle event which should be cleared at the next event.

Signed-off-by: Marton Balint <cus@passwd.hu>
6 years agoavcodec/jpeg2000dec: Fix undefined shift in the jpeg2000_decode_packets_po_iteration...
Michael Niedermayer [Fri, 4 May 2018 17:18:25 +0000 (19:18 +0200)]
avcodec/jpeg2000dec: Fix undefined shift in the jpeg2000_decode_packets_po_iteration() CPRL case

Fixes: shift exponent 47 is too large for 32-bit type 'int'
Fixes: 7955/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_JPEG2000_fuzzer-6016721977606144
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agoavcodec/jpeg2000dec: Skip init for component in CPRL if nothing is to be done
Michael Niedermayer [Fri, 4 May 2018 17:11:36 +0000 (19:11 +0200)]
avcodec/jpeg2000dec: Skip init for component in CPRL if nothing is to be done

Fixes: assertion failure
Fixes: 7949/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_JPEG2000_fuzzer-4819602782552064
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agoavcodec/jpeg2000dec: Reduce the number of tile parts allocated
Michael Niedermayer [Fri, 4 May 2018 16:28:07 +0000 (18:28 +0200)]
avcodec/jpeg2000dec: Reduce the number of tile parts allocated

This is large enough for all jpeg2000 files i tested. If some need more then this
should be changed to dynamic allocation. Dynamic allocation would need to be done
carefully as these are many relatively small arrays so repeatly reallocating them
would not be good.
The decrease is a clean and simple solution assuming it works for all files.

Fixes: OOM
Fixes: 6534/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_JPEG2000_fuzzer-4821490731057152
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agoavcodec/g2meet: Change order of operations to avoid undefined behavior
Michael Niedermayer [Fri, 4 May 2018 16:16:08 +0000 (18:16 +0200)]
avcodec/g2meet: Change order of operations to avoid undefined behavior

Fixes: signed integer overflow: 65280 * 196032 cannot be represented in type 'int'
Fixes: 7279/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_G2M_fuzzer-5977332473921536
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agoconfigure: add pkg-config check for zlib
Jan Ekström [Sat, 5 May 2018 18:57:44 +0000 (21:57 +0300)]
configure: add pkg-config check for zlib

It exists, so why not use it? Helps one get rid of additional
search path related flags in addition to PKG_CONFIG_{PATH,LIBDIR}
when utilizing a cross-prefix separate from the sysroot.

6 years agolavf/bluray: translate a read of 0 to EOF
Jan Ekström [Sun, 6 May 2018 14:15:52 +0000 (17:15 +0300)]
lavf/bluray: translate a read of 0 to EOF

Yet another case of forgotten 0 =! EOF translation. The libbluray
documentation specifically mentions that a read of 0 is EOF.

Reported by Fyr on IRC.

6 years agolavf/format: Remove the dead code in av_probe_input_buffer2.
Jun Zhao [Sun, 8 Apr 2018 00:09:13 +0000 (08:09 +0800)]
lavf/format: Remove the dead code in av_probe_input_buffer2.

Remove the dead code in av_probe_input_buffer2

Signed-off-by: Jun Zhao <mypopydev@gmail.com>
6 years agoavformat/avio: make the logic simple
Jun Zhao [Sun, 8 Apr 2018 00:05:08 +0000 (08:05 +0800)]
avformat/avio: make the logic simple

remove the "ret" to make the code simple and generic.

Signed-off-by: Jun Zhao <mypopydev@gmail.com>
6 years agofate: update fate-sws-pixdesc-query reference file
James Almer [Sat, 5 May 2018 22:20:29 +0000 (19:20 -0300)]
fate: update fate-sws-pixdesc-query reference file

Signed-off-by: James Almer <jamrial@gmail.com>
6 years agofate: update pad pixfmt test
Paul B Mahol [Sat, 5 May 2018 20:05:07 +0000 (22:05 +0200)]
fate: update pad pixfmt test

Signed-off-by: Paul B Mahol <onemda@gmail.com>
6 years agoavfilter/drawutils: support gray14
Paul B Mahol [Sat, 5 May 2018 19:50:22 +0000 (21:50 +0200)]
avfilter/drawutils: support gray14

Signed-off-by: Paul B Mahol <onemda@gmail.com>
6 years agoavfilter/vf_extractplanes: add support for extracting planes with 14 depth
Paul B Mahol [Thu, 3 May 2018 20:48:16 +0000 (22:48 +0200)]
avfilter/vf_extractplanes: add support for extracting planes with 14 depth

Signed-off-by: Paul B Mahol <onemda@gmail.com>
6 years agoswscale: add gray14 support
Paul B Mahol [Thu, 3 May 2018 20:19:38 +0000 (22:19 +0200)]
swscale: add gray14 support

Signed-off-by: Paul B Mahol <onemda@gmail.com>
6 years agoavutil: add gray14 pixel format
Paul B Mahol [Thu, 3 May 2018 20:15:53 +0000 (22:15 +0200)]
avutil: add gray14 pixel format

Signed-off-by: Paul B Mahol <onemda@gmail.com>
6 years agoavfilter: forward status back in some filters that missed it
Paul B Mahol [Sat, 5 May 2018 19:24:41 +0000 (21:24 +0200)]
avfilter: forward status back in some filters that missed it

Signed-off-by: Paul B Mahol <onemda@gmail.com>
6 years agoavfilter/af_amerge: port to activate API
Paul B Mahol [Fri, 4 May 2018 09:48:35 +0000 (11:48 +0200)]
avfilter/af_amerge: port to activate API

Signed-off-by: Paul B Mahol <onemda@gmail.com>