Anton Khirnov
d6649d9a3b
sws: move initializing dither_error higher up
...
It does not interact in any way with the code setting up the image
pointers/strides, so it should not be intermixed with it.
2021-07-03 16:13:10 +02:00
Anton Khirnov
e188985598
sws: move the early return for zero-sized slices higher up
...
Place it right after the input parameter validation. There is no point
in performing any setup if the sws_scale() call won't do anything.
2021-07-03 16:09:43 +02:00
Anton Khirnov
a91e6c927e
sws: simplify setting sliceDir
2021-07-03 16:09:21 +02:00
Anton Khirnov
ff753f41dd
sws: merge handling frame start into a single block
...
Also, return an error code on failure rather than 0.
2021-07-03 16:09:07 +02:00
Anton Khirnov
1b11a324fe
sws: make checking for the start of a new frame more explicit
2021-07-03 16:07:22 +02:00
Anton Khirnov
0fb014b7bb
sws: reset sliceDir at the end of sws_scale()
...
Makes it more clear that resetting it does not interact with the scaling
code that it is currently intermixed with.
2021-07-03 16:05:39 +02:00
Anton Khirnov
1f80789bf7
sws: rename SwsContext.swscale to convert_unscaled
...
That function pointer is now used only for unscaled conversion.
2021-07-03 15:57:53 +02:00
Anton Khirnov
fe490ec165
sws: separate the calls to scaled vs unscaled conversion
...
Call the scaler function directly rather than through a function
pointer. Drop the now-unused return value from ff_getSwsFunc() and
rename the function to reflect its new role.
This will be useful in the following commits, where it will become
important that the amount of output is different for scaled vs unscaled
case.
2021-07-03 15:57:13 +02:00
Anton Khirnov
0f8e0957d2
sws: do not reallocate scratch buffers for each slice
2021-07-03 15:56:16 +02:00
Anton Khirnov
2730639259
sws: group the parameters validity checks together
...
Also, fail with an error code rather than 0.
2021-07-03 15:31:18 +02:00
Anton Khirnov
c05cab34a9
sws: initialize {src,dst}Stride2 consistently with {src,dst}2
2021-07-03 15:31:08 +02:00
Anton Khirnov
d3d8e09640
sws: cosmetics
...
Reindent after previous commit, rewrap long lines.
2021-07-03 15:30:56 +02:00
Anton Khirnov
f136493d03
sws: factor out cascaded scaling
2021-07-03 15:30:34 +02:00
Anton Khirnov
a2254aedc9
sws: cosmetics
...
Reindent after previous commit, split long lines.
2021-07-03 15:30:20 +02:00
Anton Khirnov
44f12718bf
sws: factor out gamma-correct scaling
2021-07-03 15:29:50 +02:00
Anton Khirnov
e355af9be9
sws: return an error code on invalid parameters to sws_scale()
2021-07-03 15:29:35 +02:00
Anton Khirnov
21a4e48f88
sws: reindent after previous commit
2021-07-03 15:29:22 +02:00
Anton Khirnov
27acca1af0
sws: factor out updating the palette
2021-07-03 15:28:46 +02:00
Anton Khirnov
f8c21ccbfc
sws: remove unnecessary braces
...
There used to be more code inside them, but it was removed in
6de58b4903
.
2021-07-03 15:28:36 +02:00
Haihao Xiang
9583e66ea0
qsvenc_hevc: allow user set more coding options
...
The SDK supports NalHrdConformance, RecoveryPointSEI and AUDelimiter for
hevc encoder, so we may allow user to set these coding options like as
what we did for h264_qsv encoder.
Signed-off-by: Haihao Xiang <haihao.xiang@intel.com >
Signed-off-by: Zhong Li <zhongli_dev@126.com >
2021-07-02 23:38:36 +08:00
James Almer
8c2c0135e5
avformat: add a concat protocol that takes a line break delimited list of resources
...
Suggested-by: ffmpeg@fb.com
Reviewed-by: Nicolas George <george@nsup.org >
Signed-off-by: James Almer <jamrial@gmail.com >
2021-07-02 10:21:06 -03:00
Peter Lundblad
da0abbbb01
libswscale: Make sws_init_context thread safe.
...
Call ff_sws_rgb2rgb_init via ff_thread_once instead of checking one of the
variables it updates.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2021-07-01 23:49:41 +02:00
Gyan Doshi
de8e6e67e7
doc/muxers: note atomic_writing in image2
...
Fixes #9308
2021-06-30 09:34:09 +05:30
James Almer
91004ed3ec
doc: remove duplicate @end command
...
Fixes regression since e11fd47f8d
Signed-off-by: James Almer <jamrial@gmail.com >
2021-06-29 22:27:15 -03:00
Paul B Mahol
e11fd47f8d
avfilter/vf_v360: add cylindrical equal area format
2021-06-30 00:12:41 +02:00
Michael Niedermayer
cea05864e6
avcodec/cpia: Fix missing src_size update
...
Fixes: out of array read
Fixes: 35210/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_CPIA_fuzzer-5669199688105984
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2021-06-29 19:36:36 +02:00
Michael Niedermayer
18b0dd0738
avcodec/exr: Better size checks
...
Fixes: signed integer overflow: 3530839700044513368 + 8386093932303352321 cannot be represented in type 'long long'
Fixes: 35182/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_EXR_fuzzer-5398383270428672
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2021-06-29 19:36:36 +02:00
Michael Niedermayer
11fac9613e
avcodec/clearvideo: Check tile_size to be not too large
...
Fixes: left shift of 1 by 31 places cannot be represented in type 'int'
Fixes: 35023/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_CLEARVIDEO_fuzzer-6740166587842560
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2021-06-29 19:36:36 +02:00
Michael Niedermayer
00ae9b77ef
avcodec/utils: Use 64bit for intermediate in AV_CODEC_ID_ADPCM_THP* duration calculation
...
Fixes: signed integer overflow: 486539264 * 14 cannot be represented in type 'int'
Fixes: 35281/clusterfuzz-testcase-minimized-ffmpeg_dem_RSD_fuzzer-6068262742917120
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2021-06-29 19:36:36 +02:00
Derek Buitenhuis
d70dde2712
avcodec/h264_metadata_bsf: Allow zeroing constraint_set4_flag and constraint_set5_flag
...
These bits are reserved in earlier versions of the H.264 spec, and
some poor hardware decoders require they are zero. Thus, it is useful
to be able to zero these on streams that may have them set. The result
is still a valid H.264 bitstream.
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com >
2021-06-29 15:31:06 +01:00
Vadym Bezdushnyi
b74beba9a9
avformat/movenc: Support encryption of H.265 stream in AnnexB format
...
Steps to test:
1. Create h265 test files - mp4 and h265 AnnexB streams:
ffmpeg -f lavfi -i testsrc=duration=10:size=640x480:rate=30 -c:v hevc input_h265.mp4
ffmpeg -f lavfi -i testsrc=duration=10:size=640x480:rate=30 -c:v hevc -bsf:v hevc_mp4toannexb input_h265.h265
2. Encrypt and decrypt files. Put appropriate input file name here: input_h265.mp4 or input_h265.h265
ffmpeg -i input_h265.h265 -vcodec copy -acodec copy -encryption_scheme cenc-aes-ctr \
-encryption_key 00000000000000000000000000000000 -encryption_kid 00000000000000000000000000000000 \
encrypted_h265.mp4
ffplay -i encrypted_h265.mp4 -decryption_key 00000000000000000000000000000000
Signed-off-by: Vadym Bezdushnyi <vadim.bezdush@gmail.com >
2021-06-29 18:20:17 +05:30
Xuewei Meng
9ca88b3bef
avfilter/vf_guided: support single input
...
Support single input for guided filter by adding guidance mode.
If the guidance mode is off, single input is required. And
edge-preserving smoothing is conducted. If the mode is on, two
inputs are needed. The second input serves as the guidance. For
this mode, more tasks are supported, such as detail enhancement,
dehazing and so on.
Signed-off-by: Xuewei Meng <xwmeng96@gmail.com >
Reviewed-by: Steven Liu <lq@chinaffmpeg.org >
2021-06-29 16:05:31 +08:00
Gyan Doshi
49e3a8165c
doc/filters: mention availability of mcdeint, uspp
...
Filters are present in tree of master and in docs but were
hard-disabled in 95054bfa48
.
They remain available in v4.4 or earlier.
2021-06-27 15:40:37 +05:30
Robert Bengtsson-Ölund
ad06929d8d
avformat/http: Stop cookie_dict leaking on errors.
...
This solves the memory leak reported in https://trac.ffmpeg.org/ticket/9273
Signed-off-by: Robert Bengtsson-Ölund <robert.bengtsson-olund@intinor.se >
2021-06-26 20:17:57 +02:00
Anton Khirnov
296dc876ec
lavc: fix and extend AVCodecContext.get_format doxy
...
Remove some incorrect (or at least misleading) statements, such as the
formats being ordered by quality, or the first format being the native
one. Neither of those are true for hardware acceleration, which is the
main use of this callback.
2021-06-26 19:33:42 +02:00
Limin Wang
81bad080cd
avcodec/libx264: Separate headers not supported in AVC-Intra mode
...
Signed-off-by: Limin Wang <lance.lmwang@gmail.com >
2021-06-25 09:27:52 +08:00
Limin Wang
93da0869e6
avcodec/libx264: Add support for Sony XAVC Class 300 and 480
...
Reviewed-by: James Almer <jamrial@gmail.com >
Signed-off-by: Limin Wang <lance.lmwang@gmail.com >
2021-06-25 09:27:52 +08:00
Timo Rothenpieler
62dc5df941
avfilter/scale_cuda: add support for pixel format conversion
2021-06-25 01:44:30 +02:00
Timo Rothenpieler
b0e2e938c3
avfilter/scale_cuda: combine separate CUDA sources
2021-06-24 20:58:47 +02:00
Timo Rothenpieler
91a41a3439
avfilter/cuda: fix ptx inflation with large payloads
2021-06-24 20:58:47 +02:00
Mohammad Izadi
aca923b365
avcodec: Pass HDR10+ metadata to packet side data in VP9 encoder
...
HDR10+ metadata is stored in the bit stream for HEVC. The story is
different for VP9 and cannot store the metadata in the bit stream.
HDR10+ should be passed to packet side data an stored in the container
(mkv) for VP9.
This CL is taking HDR10+ from AVFrame side data in libvpxenc and is
passing it to the AVPacket side data.
Reviewed-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
Signed-off-by: James Zern <jzern@google.com >
2021-06-24 10:29:17 -07:00
Martin Storsjö
947122f111
libavfilter: Fix fate-source after 072788c46e
...
Signed-off-by: Martin Storsjö <martin@martin.st >
2021-06-23 09:21:07 +03:00
Timo Rothenpieler
072788c46e
avfilter: compress CUDA PTX code if possible
2021-06-22 14:05:44 +02:00
Timo Rothenpieler
abe150c9de
configure: msys also has .exe suffix
2021-06-22 14:04:50 +02:00
James Almer
ec8e95296e
avcodec/crystalhd: signal that the decoder sets all output frame properties
...
Signed-off-by: James Almer <jamrial@gmail.com >
2021-06-21 15:26:44 -03:00
James Almer
6b4805686c
avcodec/cuviddec: signal that the decoder sets all output frame properties
...
Fixes memleaks described in ticket #9082 .
Signed-off-by: James Almer <jamrial@gmail.com >
2021-06-21 15:21:51 -03:00
James Almer
854a9d8c6e
avcodec/cuviddec: remove unused AVCodec.decode() callback
...
The AVCodec.receive_frame() callback takes precedence.
Signed-off-by: James Almer <jamrial@gmail.com >
2021-06-21 15:05:20 -03:00
James Almer
b4c2ff3e41
avcodec/decode: reindent after the previous commit
...
Signed-off-by: James Almer <jamrial@gmail.com >
2021-06-21 15:05:11 -03:00
James Almer
7b9610ebd8
avcodec/decode: add an internal codec flag to signal a decoder sets all output frame properties
...
Decoders like cuviddec ignore and overwrite all the properties set by the generic
code as derived from AVCodecInternal.last_pkt_props. This flag ensures libavcodec
will not store and potentially queue input packets that ultimately will not be used.
Signed-off-by: James Almer <jamrial@gmail.com >
2021-06-21 15:03:52 -03:00
James Almer
a4fb03563a
avcodec/decode: fetch packets from the pkt_props FIFO on every frame returned
...
Fixes memleaks on decoders that don't call ff_decode_frame_props(), like
libdav1d.
Signed-off-by: James Almer <jamrial@gmail.com >
2021-06-21 14:59:54 -03:00