]> git.sesse.net Git - ffmpeg/log
ffmpeg
3 years agoavformat/hlsenc: increase initial program date time precision
Marton Balint [Sat, 18 Jul 2020 21:57:42 +0000 (23:57 +0200)]
avformat/hlsenc: increase initial program date time precision

Also query time only once, not for every variant stream, otherwise variant
streams might get a slightly different initial program date time. And we can
set this unconditionally because HLS_PROGRAM_DATE_TIME flag is checked
elsewhere.

Signed-off-by: Marton Balint <cus@passwd.hu>
3 years agofftools/ffmpeg: make specifying thread_queue_size turn on threaded input
Marton Balint [Sat, 4 Jul 2020 21:43:12 +0000 (23:43 +0200)]
fftools/ffmpeg: make specifying thread_queue_size turn on threaded input

Threaded input can increase smoothness of e.g. x11grab significantly. Before
this patch, in order to activate threaded input the user had to specify a
"dummy" additional input, with this change it is no longer required.

Signed-off-by: Marton Balint <cus@passwd.hu>
3 years agoavcodec/libsvt_av1: remove forced-idr option
Lynne [Wed, 29 Jul 2020 20:38:44 +0000 (22:38 +0200)]
avcodec/libsvt_av1: remove forced-idr option

This option is directly copy-pasted from the SVT1-HEVC wrapper and has
no place in the options for an AV1 encoder.

AV1 has no H.264/5 IDR frames nor anything like them.
All this option does is change all real keyframes to an intra-only
AV1 frame, which is not seekable. Hence, any streams encoded with
this option enabled will not be seekable.

3 years agoavcodec: Add an SVT-AV1 encoder wrapper
Daryl Seah [Fri, 18 Jan 2019 02:11:38 +0000 (02:11 +0000)]
avcodec: Add an SVT-AV1 encoder wrapper

Signed-off-by: Daryl Seah <daryl.seah@intel.com>
Signed-off-by: Jing SUN <jing.a.sun@intel.com>
Signed-off-by: ZhiZhen Tang <zhizhen.tang@intel.com>
Signed-off-by: Zhong Li <zhong.li@intel.com>
Signed-off-by: Xu Guangxin <guangxin.xu@intel.com>
Signed-off-by: James Almer <jamrial@gmail.com>
3 years agoavcodec/cavsdec, h264*, hevc_parser: Use get_ue_golomb_31 where possible
Andreas Rheinhardt [Tue, 14 Jul 2020 13:20:09 +0000 (15:20 +0200)]
avcodec/cavsdec, h264*, hevc_parser: Use get_ue_golomb_31 where possible

instead of get_ue_golomb(). The difference between the two is that the
latter also has to take into account the case in which the read code is
more than 9 bits (four preceding zeroes + at most five value bits) long,
leading to more code.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavcodec/golomb: Document return value of get_ue_golomb_31 on error
Andreas Rheinhardt [Tue, 14 Jul 2020 12:59:47 +0000 (14:59 +0200)]
avcodec/golomb: Document return value of get_ue_golomb_31 on error

get_ue_golomb_31() reads nine bits and an array with 512 entries to
parse golomb codes. The longest golomb codes that fit into 9 bits use
four leading zeroes and five value bits and can encode numbers in the
0..30 range. 31 meanwhile is encoded on 11 bits and if the nine bits
read coincide with the first nine bits of the encoding of 31,
get_ue_golomb_31() returns 31 (and skips 11 bits).

But looking at the first nine bits only makes it impossible to distinguish
31 from 32..34. Therefore the documentation of get_ue_golomb_31() simply
states that the return value is undefined if the value of the encountered
exp golomb code was outside the 0..31 range.

But actually get_ue_golomb_31() does not behave that bad: If the returned
value is in the range of 0..30, then this is the actually encountered value,
so that this function can be used without any problems to parse and validate
parameters whose legal values are a subset of the 0..30 range.

This commit documents this fact.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavcodec/golomb: Prevent shift by negative number
Andreas Rheinhardt [Fri, 10 Jul 2020 13:12:26 +0000 (15:12 +0200)]
avcodec/golomb: Prevent shift by negative number

This happened in get_ue_golomb() if the cached bitstream reader was in
use, because there was no check to handle the case of the read value
not being in the supported range.
For consistency with the uncached bitstream reader and for compliance
with the documentation, every value not in the 0-8190 range is treated as
error although the cached bitstream reader could actually read values in
the range 0..65534 without problems.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agolibavcodec/jpeg2000dec: Support for PPM marker
Gautam Ramakrishnan [Sat, 25 Jul 2020 14:16:34 +0000 (19:46 +0530)]
libavcodec/jpeg2000dec: Support for PPM marker

This patch adds support for PPM marker for JPEG2000
decoder. It allows the samples p1_03.j2k and p1_05.j2k
to be decoded.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoavcodec/jpeg2000dec: Move reslevelno check before use in case JPEG2000_PGOD_RPCL
Michael Niedermayer [Sun, 26 Jul 2020 17:41:30 +0000 (19:41 +0200)]
avcodec/jpeg2000dec: Move reslevelno check before use in case JPEG2000_PGOD_RPCL

Fixes: division by zero
Fixes: 24201/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_JPEG2000_fuzzer-5665813827420160
Fixes: 24245/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_JPEG2000_fuzzer-6285831682392064
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Gautam Ramakrishnan <gautamramk@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agolavc/libxavs2.c: mark key-frame packets
hwren [Mon, 27 Jul 2020 06:21:35 +0000 (14:21 +0800)]
lavc/libxavs2.c: mark key-frame packets

Signed-off-by: hwren <hwrenx@126.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoavcodec/nvenc: fix B-Ref-Mode support check for recent HEVC
Timo Rothenpieler [Tue, 28 Jul 2020 19:44:11 +0000 (21:44 +0200)]
avcodec/nvenc: fix B-Ref-Mode support check for recent HEVC

3 years agoavcodec/golomb: Don't emit error message in get_ue_golomb
Andreas Rheinhardt [Fri, 10 Jul 2020 15:48:06 +0000 (17:48 +0200)]
avcodec/golomb: Don't emit error message in get_ue_golomb

Said error message is not very informative and lacked a proper logging
context; furthermore, many callers already provided more descriptive
error messages of their own. So just drop this one.

Suggested-by: James Almer <jamrial@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavformat/smacker: Don't return packets for streams with AVDISCARD_ALL
Andreas Rheinhardt [Fri, 26 Jun 2020 07:09:01 +0000 (09:09 +0200)]
avformat/smacker: Don't return packets for streams with AVDISCARD_ALL

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavformat/smacker: Fix duration for PCM audio
Andreas Rheinhardt [Fri, 24 Jul 2020 07:43:02 +0000 (09:43 +0200)]
avformat/smacker: Fix duration for PCM audio

For non-PCM audio, a Smacker frame contains the size of the decoded
audio in the first four bytes of the audio packet data; for PCM data,
said information would be redundant and according to [1] this field does
not exist. Therefore this commit sets the duration and timestamps
properly for PCM audio.

[1]: https://wiki.multimedia.cx/index.php/Smacker#Audio_Track_Chunk

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavformat/smacker: Set audio duration
Andreas Rheinhardt [Fri, 24 Jul 2020 07:33:31 +0000 (09:33 +0200)]
avformat/smacker: Set audio duration

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavformat/smacker: Support seeking to first frame
Timotej Lazar [Wed, 17 Jun 2020 19:45:39 +0000 (21:45 +0200)]
avformat/smacker: Support seeking to first frame

Add .read_seek function to the smacker demuxer for the special case of
seeking to ts=0. This is useful because smacker – like bink, with a
similar implementation – was mostly used to encode clips in video
games, where random seeks are rare but looping media are common.

Signed-off-by: Timotej Lazar <timotej.lazar@araneo.si>
3 years agolavf/srt: fix build fail when used the libsrt 1.4.1
Jun Zhao [Sun, 12 Jul 2020 05:48:48 +0000 (13:48 +0800)]
lavf/srt: fix build fail when used the libsrt 1.4.1

libsrt changed the:
SRTO_SMOOTHER   -> SRTO_CONGESTION
SRTO_STRICTENC  -> SRTO_ENFORCEDENCRYPTION
and removed the front of deprecated options (SRTO_SMOOTHER/SRTO_STRICTENC)
in the header, it's lead to build fail

fix #8760

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
3 years agoRevert "lavc/vaapi_encode: add EQUAL_MULTI_ROWS support for slice structure"
Mark Thompson [Mon, 27 Jul 2020 21:27:14 +0000 (22:27 +0100)]
Revert "lavc/vaapi_encode: add EQUAL_MULTI_ROWS support for slice structure"

This reverts commit 489c5db0791f39518775b12eef6d48276c17f96f.

Treating EQUAL_MULTI_ROWS in the same way as the arbitrary-size cases is
just wrong.  Consider 9 rows, 4 slices - we pick 4 slices with sizes
{ 3, 2, 2, 2 }, which EQUAL_MULTI_ROWS does not allow.  It isn't possible
to split the frame into 4 slices at all with the EQUAL_MULTI_ROWS
structure - the closest options are 3 slices with sizes { 3, 3, 3 } or 5
slices with sizes { 2, 2, 2, 2, 1 }.

3 years agohwcontext_vaapi: remove duplicate formats from sw_format list
Haihao Xiang [Fri, 24 Jul 2020 02:39:09 +0000 (10:39 +0800)]
hwcontext_vaapi: remove duplicate formats from sw_format list

hwcontext_vaapi maps different VA fourcc to the same pix_fmt for U/V
plane swap cases, however duplicate formats are not expected in sw_format
list when merging formats.

For example:
ffmpeg -loglevel debug -init_hw_device vaapi -filter_hw_device vaapi0 \
-f lavfi -i smptebars -vf \
"hwupload=derive_device=vaapi,scale_vaapi,hwdownload,format=yuv420p" \
-vframes 1 -f null -

Without this fix, an auto scaler is required for the above command
   Duplicate formats in ff_merge_formats detected
   [auto_scaler_0 @ 0x560df58f4550] Setting 'flags' to value 'bicubic'
   [auto_scaler_0 @ 0x560df58f4550] w:iw h:ih flags:'bicubic' interl:0
   [Parsed_hwupload_0 @ 0x560df58f0ec0] auto-inserting filter
   'auto_scaler_0' between the filter 'graph 0 input from stream 0:0' and
   the filter 'Parsed_hwupload_0'

Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
3 years agohwcontext_vaapi: avoid fd leak in vaapi_device_derive
Haihao Xiang [Fri, 24 Jul 2020 07:29:03 +0000 (15:29 +0800)]
hwcontext_vaapi: avoid fd leak in vaapi_device_derive

3 years agoavutil/imgutils: always zero data pointers in av_image_fill_pointers()
James Almer [Mon, 27 Jul 2020 00:50:25 +0000 (21:50 -0300)]
avutil/imgutils: always zero data pointers in av_image_fill_pointers()

This restores the relevant behavior of the function as it was before
3a8e927176.

Signed-off-by: James Almer <jamrial@gmail.com>
3 years agoavutil/imgutils: don't fill data pointers for missing planes
James Almer [Fri, 24 Jul 2020 18:04:05 +0000 (15:04 -0300)]
avutil/imgutils: don't fill data pointers for missing planes

The size for a previous plane doesn't signal the presence of another after it.
If the plane is present, av_image_fill_plane_sizes() will have returned a size
for it.

Fixes a regression since 3a8e927176.

Reported-by: Imad R. Faiad <irfaiad@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
3 years agoavformat/ape: Error out in case of EOF in the header
Michael Niedermayer [Fri, 24 Jul 2020 21:51:11 +0000 (23:51 +0200)]
avformat/ape: Error out in case of EOF in the header

Fixes: OOM
Fixes: 24375/clusterfuzz-testcase-minimized-ffmpeg_DEMUXER_fuzzer-6216862443241472
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoavformat/segafilmenc: Avoid seek when writing header
Andreas Rheinhardt [Fri, 17 Jul 2020 10:04:03 +0000 (12:04 +0200)]
avformat/segafilmenc: Avoid seek when writing header

Up until now, the Sega FILM muxer would first write all the packet data,
then shift the data (in the muxer's write_trailer function) by the amount
necessary to write the header at the front (which entails a seek to the
front), then seek back to the beginning and actually write the header.

This commit changes this: The dynamic buffer that is used to write the
sample table (containing information about each sample in the file) is
now used to write the complete header. This is possible because the size
of everything in the header except the sample table is known in advance.
Said buffer can then be used as one of the two temporary buffers used
for shifting which also reduces the amount one has to allocate for this.
Thereby the header will be written when shifting, so that the second
seek to the beginning is unnecessary.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavformat/segafilmenc: Don't store packet info in linked list
Andreas Rheinhardt [Fri, 17 Jul 2020 07:25:24 +0000 (09:25 +0200)]
avformat/segafilmenc: Don't store packet info in linked list

Up until now, the Sega FILM muxer would store some information about
each packet in a linked list. When writing the trailer, the information
in said linked list would be used to write a table in the file header.
Each entry in said table is 16 bytes long, but each entry of the linked
list is 32 bytes long (assuming 64 bit pointer and no padding).
Therefore it makes sense to remove the linked list and write the array
entries directly into a dynamic buffer while writing the packet (this is
possible because the table entries don't depend on any information not
available when writing the packet (the offset is not relative to the
beginning of the file, but to the end of the table). This also
simplifies writing the array at the end (there is no need to traverse a
linked list).

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavformat/segafilmenc: Simplify writing two bytes
Andreas Rheinhardt [Fri, 17 Jul 2020 07:11:53 +0000 (09:11 +0200)]
avformat/segafilmenc: Simplify writing two bytes

Use avio_wb16() instead of avio_write() to write two zero bytes.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavformat/segafilmenc: Remove write-only variable
Andreas Rheinhardt [Fri, 17 Jul 2020 06:06:15 +0000 (08:06 +0200)]
avformat/segafilmenc: Remove write-only variable

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavformat/segafilm: Reorder elements of struct to make it smaller
Andreas Rheinhardt [Fri, 17 Jul 2020 05:47:44 +0000 (07:47 +0200)]
avformat/segafilm: Reorder elements of struct to make it smaller

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavformat/daudenc: Return proper error codes instead if -1
Andreas Rheinhardt [Fri, 17 Jul 2020 05:38:52 +0000 (07:38 +0200)]
avformat/daudenc: Return proper error codes instead if -1

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavformat/daudenc: Turn write_header function into init function
Andreas Rheinhardt [Fri, 17 Jul 2020 05:36:11 +0000 (07:36 +0200)]
avformat/daudenc: Turn write_header function into init function

daud_write_header() doesn't write anything.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavformat/webmdashenc: Cosmetics
Andreas Rheinhardt [Fri, 17 Jul 2020 05:32:52 +0000 (07:32 +0200)]
avformat/webmdashenc: Cosmetics

Mostly using intermediate pointers for accesses (i.e. storing s->pb in a
variable pb and then using pb for writing instead of s->pb) to improve
readability. Furthermore, the opening brace '{' of a function has been
moved into a line of its own in instances where it wasn't before.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavformat/webmdashenc: Only check for existence of metadata if it is used
Andreas Rheinhardt [Fri, 17 Jul 2020 04:17:44 +0000 (06:17 +0200)]
avformat/webmdashenc: Only check for existence of metadata if it is used

Also return proper error codes when it is absent: AVERROR(EINVAL)
instead of AVERROR_INVALIDDATA.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavformat/webmdashenc: Avoid allocations, fix memleak
Andreas Rheinhardt [Tue, 14 Jul 2020 22:06:10 +0000 (00:06 +0200)]
avformat/webmdashenc: Avoid allocations, fix memleak

When using the WebM DASH Manifest muxer, every stream of each adaptation
set has to contain a metadata entry containing the filename of the
source file. In case of live stream manifests, said filename has to
conform to a pattern of
<file_description>_<representation_id>.<extension>. These pieces are
used to create the other strings that are actually output. Up until now,
these other strings would be allocated, used once and then freed
directly after usage. This commit changes this: The function that
allocated and assembled these strings now returns pointers to the '_'
and '.' delimiters and so that the caller can easily pick substrings
from it without needing to copy the string.

Avoiding allocations also fixes a memleak: One of the allocated strings
would leak upon a subsequent allocation failure.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavformat/webmdashenc: Fix segfault when no filename is given when live
Andreas Rheinhardt [Tue, 14 Jul 2020 20:49:15 +0000 (22:49 +0200)]
avformat/webmdashenc: Fix segfault when no filename is given when live

by checking a bit earlier.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavformat/riffenc: correct calculation for extradata size
Gyan Doshi [Sat, 25 Jul 2020 05:09:32 +0000 (10:39 +0530)]
avformat/riffenc: correct calculation for extradata size

In 1ec2b3de5a, the extradata size was affected when the raster was
signaled as flipped due to user-set option rather than via extradata.
This resulted in a wrong header size being written. Fixed.

3 years agoswscale/yuv2rgb: cosmetics
Limin Wang [Tue, 21 Jul 2020 16:07:50 +0000 (00:07 +0800)]
swscale/yuv2rgb: cosmetics

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
3 years agoavformat/mpegtsenc: use local variable store st->codecpar->codec_id
Limin Wang [Wed, 8 Jul 2020 03:19:13 +0000 (11:19 +0800)]
avformat/mpegtsenc: use local variable store st->codecpar->codec_id

Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
3 years agoavformat/mpegtsenc: reindent the last commit
Limin Wang [Wed, 8 Jul 2020 02:40:33 +0000 (10:40 +0800)]
avformat/mpegtsenc: reindent the last commit

Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
3 years agoavformat/mpegtsenc: simplify code for condition checks
Limin Wang [Wed, 8 Jul 2020 02:40:10 +0000 (10:40 +0800)]
avformat/mpegtsenc: simplify code for condition checks

Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
3 years agolibavcodec/libaomenc.c: Add command-line options for inter-coding tools
Wang Cao [Wed, 22 Jul 2020 23:11:12 +0000 (16:11 -0700)]
libavcodec/libaomenc.c: Add command-line options for inter-coding tools

Signed-off-by: Wang Cao <wangcao@google.com>
Signed-off-by: James Zern <jzern@google.com>
3 years agolibavcodec/libaomenc.c: Add command-line options for tx tools.
Wang Cao [Wed, 22 Jul 2020 23:12:01 +0000 (16:12 -0700)]
libavcodec/libaomenc.c: Add command-line options for tx tools.

Signed-off-by: Wang Cao <wangcao@google.com>
Signed-off-by: James Zern <jzern@google.com>
3 years agolibavcodec/jpeg2000dec: Fix codeblock decode check
Gautam Ramakrishnan [Thu, 23 Jul 2020 17:11:10 +0000 (22:41 +0530)]
libavcodec/jpeg2000dec: Fix codeblock decode check

The codeblock decoder checks whether the mqc decoder
has decoded the right number of bytes. However, this
check does not account for the fact that the mqc encoder's
flush routine adds 2 bytes of data which does not have to be
read by the decoder. The check is modified to account for
this. This patch solves issue #4827

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoavcodec/alac: Check decorr_shift to avoid invalid shift
Michael Niedermayer [Thu, 23 Jul 2020 21:41:27 +0000 (23:41 +0200)]
avcodec/alac: Check decorr_shift to avoid invalid shift

Later the decorrelate_stereo call is guarded by channels == 2
and non-zero decorr_left_weight. Make sure decorr_shift is in
the expected shift range for that case.

Fixes: shift exponent 128 is too large for 32-bit type 'int'
Fixes: 23860/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_ALAC_fuzzer-5751138914402304
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Alexander Strasser <eclipse7@gmx.net>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agolavc/vaapi_encode: Add render target support for 422 10-bit
Linjie Fu [Mon, 22 Jun 2020 07:41:35 +0000 (15:41 +0800)]
lavc/vaapi_encode: Add render target support for 422 10-bit

This enables VAAPI encoding support for 422 10-bit(Y210).

Signed-off-by: Linjie Fu <linjie.justin.fu@gmail.com>
3 years agovaapi_encode_h265: Enable 4:2:2 support
Mark Thompson [Thu, 5 Mar 2020 00:25:28 +0000 (00:25 +0000)]
vaapi_encode_h265: Enable 4:2:2 support

3 years agoavformat/matroskadec: Slightly simplify version check
Andreas Rheinhardt [Mon, 20 Jul 2020 17:14:38 +0000 (19:14 +0200)]
avformat/matroskadec: Slightly simplify version check

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavformat/matroskadec: Avoid undefined pointer arithmetic
Andreas Rheinhardt [Sun, 19 Jul 2020 08:16:33 +0000 (10:16 +0200)]
avformat/matroskadec: Avoid undefined pointer arithmetic

The Matroska demuxer currently always opens a GetByteContext to read the
content of the projection's private data buffer; it does this even if
there is no private data buffer in which case opening the GetByteContext
will lead to a NULL + 0 which is undefined behaviour.
Furthermore, in this case the code relied both on the implicit checks
of the bytestream2 API as well as on the fact that it returns zero
if there is not enough data available.

Both of these issues have been addressed by not using the bytestream API
any more; instead the data is simply read directly by using AV_RB. This
is possible because the offsets are constants.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavformat/mxfdec: Fix memleak upon repeating tags
Andreas Rheinhardt [Mon, 20 Jul 2020 05:24:53 +0000 (07:24 +0200)]
avformat/mxfdec: Fix memleak upon repeating tags

When parsing MXF encountering some tags leads to allocations. And when
these tags were encountered repeatedly, this could lead to memleaks,
because the pointer to the old data got simply overwritten with a
pointer to the new data (or to NULL on allocation failure). This has
been fixed.

Reviewed-by: Tomas Härdin <tjoppen@acc.umu.se>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavformat/mxfdec: Fix memleak when parsing tag fails
Andreas Rheinhardt [Mon, 20 Jul 2020 04:20:29 +0000 (06:20 +0200)]
avformat/mxfdec: Fix memleak when parsing tag fails

The MXF demuxer uses an array of pointers to different structures of
metadata (all containing a common initial sequence containing a type
field to distinguish them) and some of these structures contain pointers
to separately allocated subelements. If an error happens while reading
and creating the tags, the semi-finished new tag is freed using the
function to free these tags. But this function doesn't free the already
allocated subelements, because the type has not been set yet. This commit
changes this.

Reviewed-by: Tomas Härdin <tjoppen@acc.umu.se>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavformat/mxfdec: Fix memleak when adding element to array fails
Andreas Rheinhardt [Mon, 20 Jul 2020 00:46:09 +0000 (02:46 +0200)]
avformat/mxfdec: Fix memleak when adding element to array fails

Said array contains pointers to other structs and both the designated
new element as well as other stuff contained in it (e.g. strings) leak
if the new element can't be added to the array.

Reviewed-by: Tomas Härdin <tjoppen@acc.umu.se>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavutil: bump version after addition of MIPS cpu flags
James Almer [Thu, 23 Jul 2020 17:00:31 +0000 (14:00 -0300)]
avutil: bump version after addition of MIPS cpu flags

And add the missing doc/APIchanges entry.

Signed-off-by: James Almer <jamrial@gmail.com>
3 years agolibavcodec: MIPS: MMI: Move sp out of the clobber list
Jiaxun Yang [Sat, 18 Jul 2020 15:35:42 +0000 (23:35 +0800)]
libavcodec: MIPS: MMI: Move sp out of the clobber list

GCC complains:
warning: listing the stack pointer register ‘$29’ in a clobber
list is deprecated [-Wdeprecated]

Actually stack pointer was restored at the end of the inline assembly
so there is no reason to add it to the clobber list.

Also use $sp insted of $29 to make our intention much more clear.

Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Reviewed-by: Shiyou Yin <yinshiyou-hf@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agolibavcodec: MIPS: MMI: Fix type mismatches
Jiaxun Yang [Sat, 18 Jul 2020 15:35:41 +0000 (23:35 +0800)]
libavcodec: MIPS: MMI: Fix type mismatches

GCC complains about them.

Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Reviewed-by: Shiyou Yin <yinshiyou-hf@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agolibavcodec: Enable runtime detection for MIPS MMI & MSA
Jiaxun Yang [Sat, 18 Jul 2020 15:35:40 +0000 (23:35 +0800)]
libavcodec: Enable runtime detection for MIPS MMI & MSA

Apply optimized functions according to cpuflags.
MSA is usually put after MMI as it's generally faster than MMI.

Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Reviewed-by: Shiyou Yin <yinshiyou-hf@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agolibavutil: Detect MMI and MSA flags for MIPS
Jiaxun Yang [Sat, 18 Jul 2020 15:35:39 +0000 (23:35 +0800)]
libavutil: Detect MMI and MSA flags for MIPS

Add MMI & MSA runtime detection for MIPS.

Basically there are two code pathes. For systems that
natively support CPUCFG instruction or kernel emulated
that instruction, we'll sense this feature from HWCAP and
report the flags according to values grab from CPUCFG. For
systems that have no CPUCFG (or not export it in HWCAP),
we'll parse /proc/cpuinfo instead.

Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Reviewed-by: Shiyou Yin <yinshiyou-hf@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agolibavutils: Add parse_r helper for MIPS
Jiaxun Yang [Sat, 18 Jul 2020 15:35:38 +0000 (23:35 +0800)]
libavutils: Add parse_r helper for MIPS

That helper grab from kernel code can allow us to inline
newer instructions (not implemented by the assembler) in
a elegant manner.

Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Reviewed-by: Shiyou Yin <yinshiyou-hf@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoffbuild: Refine MIPS handling
Jiaxun Yang [Sat, 18 Jul 2020 15:35:37 +0000 (23:35 +0800)]
ffbuild: Refine MIPS handling

To enable runtime detection for MIPS, we need to refine ffbuild
part to support buildding these feature together.

Firstly, we fixed configure, let it probe native ability of toolchain
to decide wether a feature can to be enabled, also clearly marked
the conflictions between loongson2 & loongson3 and Release 6 & rest.

Secondly, we compile MMI and MSA C sources with their own flags to ensure
their flags won't pollute the whole program and generate illegal code.

Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Reviewed-by: Shiyou Yin <yinshiyou-hf@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agolibavcodec/jpeg2000dec: Add check when done with main header markers
Gautam Ramakrishnan [Tue, 21 Jul 2020 18:07:14 +0000 (23:37 +0530)]
libavcodec/jpeg2000dec: Add check when done with main header markers

This patch sets a flag when the processing of the
main header is complete.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoavcodec/libdav1d: use av_image_get_buffer_size() to calculate frame size
James Almer [Fri, 17 Jul 2020 00:49:04 +0000 (21:49 -0300)]
avcodec/libdav1d: use av_image_get_buffer_size() to calculate frame size

Calling av_image_fill_arrays() with NULL as src argument may result in UB.

Signed-off-by: James Almer <jamrial@gmail.com>
3 years agolibavcodec/decode: avoid UB when getting plane sizes
Brian Kim [Mon, 13 Jul 2020 17:09:39 +0000 (10:09 -0700)]
libavcodec/decode: avoid UB when getting plane sizes

This uses av_image_fill_plane_sizes instead of av_image_fill_pointers
when we are getting plane sizes to avoid UB from adding offsets to NULL.

Signed-off-by: Brian Kim <bkkim@google.com>
Signed-off-by: James Almer <jamrial@gmail.com>
3 years agolibavutil/frame: avoid UB when getting plane sizes
Brian Kim [Mon, 13 Jul 2020 17:09:38 +0000 (10:09 -0700)]
libavutil/frame: avoid UB when getting plane sizes

This uses av_image_fill_plane_sizes instead of av_image_fill_pointers
when we are getting plane sizes to avoid UB from adding offsets to NULL.

Signed-off-by: Brian Kim <bkkim@google.com>
Signed-off-by: James Almer <jamrial@gmail.com>
3 years agoavutil/imgutils: add utility to get plane sizes
Brian Kim [Mon, 13 Jul 2020 17:09:37 +0000 (10:09 -0700)]
avutil/imgutils: add utility to get plane sizes

This utility helps avoid undefined behavior when doing things like
checking how much memory we need to allocate for an image before we have
allocated a buffer.

Signed-off-by: Brian Kim <bkkim@google.com>
Signed-off-by: James Almer <jamrial@gmail.com>
3 years agoavcodec/libvpxenc: use pix_fmt descriptors where useful
James Zern [Mon, 20 Jul 2020 17:43:47 +0000 (10:43 -0700)]
avcodec/libvpxenc: use pix_fmt descriptors where useful

similar to:
36e51c190b avcodec/libaomenc: use pix_fmt descriptors where useful

Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: James Zern <jzern@google.com>
3 years agoavfilter/vf_xfade: add hblur transition
Paul B Mahol [Tue, 21 Jul 2020 21:27:00 +0000 (23:27 +0200)]
avfilter/vf_xfade: add hblur transition

3 years agoavcodec/adpcmenc: cleanup trellis checks
Zane van Iperen [Wed, 10 Jun 2020 23:07:49 +0000 (09:07 +1000)]
avcodec/adpcmenc: cleanup trellis checks

Signed-off-by: Zane van Iperen <zane@zanevaniperen.com>
3 years agofate: add adpcm_ima_apm encoding test
Zane van Iperen [Mon, 8 Jun 2020 12:35:48 +0000 (22:35 +1000)]
fate: add adpcm_ima_apm encoding test

Signed-off-by: Zane van Iperen <zane@zanevaniperen.com>
3 years agoavformat: add apm muxer
Zane van Iperen [Wed, 10 Jun 2020 23:07:46 +0000 (09:07 +1000)]
avformat: add apm muxer

Signed-off-by: Zane van Iperen <zane@zanevaniperen.com>
3 years agoavcodec: add adpcm_ima_apm encoder
Zane van Iperen [Tue, 26 May 2020 14:17:59 +0000 (00:17 +1000)]
avcodec: add adpcm_ima_apm encoder

Signed-off-by: Zane van Iperen <zane@zanevaniperen.com>
3 years agoavcodec/apm: fix sample_rate check
Zane van Iperen [Mon, 20 Jul 2020 03:35:26 +0000 (13:35 +1000)]
avcodec/apm: fix sample_rate check

Signed-off-by: Zane van Iperen <zane@zanevaniperen.com>
3 years agoavcodec/tdsc: Fix tile checks
Michael Niedermayer [Wed, 15 Jul 2020 20:47:50 +0000 (22:47 +0200)]
avcodec/tdsc: Fix tile checks

Fixes: out of array access
Fixes: crash.asf
Found-by: anton listov <greyfarn7@yandex.ru>
Reviewed-by: anton listov <greyfarn7@yandex.ru>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoswscale/yuv2rgb: consider x2rgb10le on big endian hardware
Fei Wang [Mon, 20 Jul 2020 01:34:07 +0000 (09:34 +0800)]
swscale/yuv2rgb: consider x2rgb10le on big endian hardware

This fixed FATE fail report by filter-pixfmts* for x2rgb10le on big
endian hardware.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoavformat/sbgdec: Check for overflow in parse_timestamp()
Michael Niedermayer [Sun, 19 Jul 2020 14:20:52 +0000 (16:20 +0200)]
avformat/sbgdec: Check for overflow in parse_timestamp()

Fixes: signed integer overflow: 33986707200000000 + 9195561788997000192 cannot be represented in type 'long'
Fixes: 23790/clusterfuzz-testcase-minimized-ffmpeg_DEMUXER_fuzzer-6554232198266880
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoavcodec/put_bits: Fix LZW warning
Steinar H. Gunderson [Sun, 19 Jul 2020 18:29:29 +0000 (20:29 +0200)]
avcodec/put_bits: Fix LZW warning

lzwenc stores a function pointer to either put_bits or put_bits_le;
however, after the recent change, the function pointer's prototype
would depend on BitBuf. BitBuf is defined in put_bits.h, whose
definition depends on whether BITSTREAM_WRITER_LE is #defined or not.
For safety, we set a boolean flag for little/big endian instead,
which also allows the definition to be inlined.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoavfilter/vf_yaepblur: fix naming of filter class
Paul B Mahol [Mon, 20 Jul 2020 14:12:56 +0000 (16:12 +0200)]
avfilter/vf_yaepblur: fix naming of filter class

3 years agolavf/dashdec: enable custom interrup callback in sub-demuxer
Jun Zhao [Sat, 18 Jul 2020 11:45:55 +0000 (19:45 +0800)]
lavf/dashdec: enable custom interrup callback in sub-demuxer

Enable the custom callback in sub-demuxer

Reviewed-by: Steven Liu <lq@chinaffmpeg.org>
Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
3 years agolavf/hls: enable custom interrup callback in sub-demuxer
Jun Zhao [Sat, 18 Jul 2020 11:44:35 +0000 (19:44 +0800)]
lavf/hls: enable custom interrup callback in sub-demuxer

Enable the custom callback in sub-demuxer

Reviewed-by: Steven Liu <lq@chinaffmpeg.org>
Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
3 years agolavc/vaapi_encode_h265: add h265 tile encoding support
Linjie Fu [Tue, 12 May 2020 13:47:13 +0000 (21:47 +0800)]
lavc/vaapi_encode_h265: add h265 tile encoding support

Default to enable uniform_spacing_flag. Guess level by the tile
rows/cols. Supported for ICL+ platforms.

Also add documentations.

To encode with 4 rows 2 columns:
    ffmpeg ... -c:v hevc_vaapi -tiles 4x2 ...
    ffmpeg ... -c:v hevc_vaapi -tile_rows 4 -tile_cols 2 ...

Suggested-by: Jun Zhao <mypopydev@gmail.com>
Signed-off-by: Linjie Fu <linjie.justin.fu@gmail.com>
3 years agolavc/vaapi_encode: add tile slice encoding support
Linjie Fu [Tue, 12 May 2020 13:47:12 +0000 (21:47 +0800)]
lavc/vaapi_encode: add tile slice encoding support

Add functions to initialize tile slice structure and make tile slice:
 - vaapi_encode_init_tile_slice_structure
 - vaapi_encode_make_tile_slice

Tile slice is not allowed to cross the boundary of a tile due to
the constraints of media-driver. Currently adding support for one
slice per tile.

N x N tile encoding is supposed to be supported with the the
capability of ARBITRARY_MACROBLOCKS slice structures.

N X 1 tile encoding should also work in ARBITRARY_ROWS slice
structure.

Signed-off-by: Linjie Fu <linjie.justin.fu@gmail.com>
3 years agolavc/vaapi_encode: wrap slice codes into row slice functions
Linjie Fu [Tue, 12 May 2020 13:47:11 +0000 (21:47 +0800)]
lavc/vaapi_encode: wrap slice codes into row slice functions

Wrap current whole-row slice codes into following functions:
 - vaapi_encode_make_row_slice()
 - vaapi_encode_init_row_slice_structure()

Signed-off-by: Linjie Fu <linjie.justin.fu@gmail.com>
3 years agoavformat/crypto.c: remove unnecessary code
Steven Liu [Tue, 14 Jul 2020 06:18:25 +0000 (14:18 +0800)]
avformat/crypto.c: remove unnecessary code

Because the newpos variable is set value before use it.
The newpos variable declared at the head partition of crypto_seek.
Make the code clean.

Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
3 years agolavc/sgienc: Fix default 16bit encoding.
Carl Eugen Hoyos [Sun, 19 Jul 2020 19:57:41 +0000 (21:57 +0200)]
lavc/sgienc: Fix default 16bit encoding.

Broken since 7c56b879

3 years agoavcodec/mips: fix type mismatch in h264dsp_msa.c
Shiyou Yin [Sat, 18 Jul 2020 07:30:49 +0000 (15:30 +0800)]
avcodec/mips: fix type mismatch in h264dsp_msa.c

gcc warning: assignment from incompatible pointer type.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoavcodec/put_bits: Make bit buffers 64-bit
Steinar H. Gunderson [Sat, 18 Jul 2020 14:53:03 +0000 (16:53 +0200)]
avcodec/put_bits: Make bit buffers 64-bit

Change BitBuf into uint64_t on 64-bit x86. This means we need to flush the
buffer less often, which is a significant speed win. All other platforms,
including all 32-bit ones, are unchanged. Output bitstream is the same.

All API constraints are kept in place, e.g., you still cannot put_bits()
more than 31 bits at a time. This is so that codecs cannot accidentally
become 64-bit-only or similar.

Benchmarking on transcoding to various formats shows consistently
positive results:

  dnxhd                 25.60 fps ->  26.26 fps ( +2.6%)
  dvvideo               24.88 fps ->  25.17 fps ( +1.2%)
  ffv1                  14.32 fps ->  14.58 fps ( +1.8%)
  huffyuv               58.75 fps ->  63.27 fps ( +7.7%)
  jpegls                 6.22 fps ->   6.34 fps ( +1.8%)
  magicyuv              57.10 fps ->  63.29 fps (+10.8%)
  mjpeg                 48.65 fps ->  49.01 fps ( +0.7%)
  mpeg1video            76.41 fps ->  77.01 fps ( +0.8%)
  mpeg2video            75.99 fps ->  77.43 fps ( +1.9%)
  mpeg4                 80.66 fps ->  81.37 fps ( +0.9%)
  prores                12.35 fps ->  12.88 fps ( +4.3%)
  prores_ks             16.20 fps ->  16.80 fps ( +3.7%)
  rv20                  62.80 fps ->  62.99 fps ( +0.3%)
  utvideo               68.41 fps ->  76.32 fps (+11.6%)

Note that this includes video decoding and all other encoding work,
such as DCTs. If you isolate the actual bit-writing routines, it is
likely to be much more.

Benchmark details: Transcoding the first 30 seconds of Big Buck Bunny
in 1080p, Haswell 2.1 GHz, GCC 8.3, generally quantizer locked to
5.0. (Exceptions: DNxHD needs fixed bitrate, and JPEG-LS is so slow
that I only took the first 10 seconds, not 30.) All runs were done
ten times and single-threaded, top and bottom two results discarded to
get rid of outliers, arithmetic mean between the remaining six.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoavcodec/put_bits: Parametrize bit buffer type
Steinar H. Gunderson [Sat, 18 Jul 2020 14:53:02 +0000 (16:53 +0200)]
avcodec/put_bits: Parametrize bit buffer type

Preparatory patch for making the bit buffer different size on different
platforms; make a typedef and make all the hardcoded sizes into expressions
deriving from this size.

No functional change; generated assembler is near-identical.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agolibavcodec/jpeg2000dec: Support for Parameterless Markers
Gautam Ramakrishnan [Sat, 18 Jul 2020 13:16:21 +0000 (18:46 +0530)]
libavcodec/jpeg2000dec: Support for Parameterless Markers

The JPEG2000 standard reserves marker values 0xFF30
to 0xFF3F to be used as parameterless markers. This
patch adds support to decode codestream with such
markers. This allows decoding of p0_02.j2k.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agolavc/vaapi_encode: add EQUAL_MULTI_ROWS support for slice structure
Linjie Fu [Mon, 11 May 2020 06:32:42 +0000 (14:32 +0800)]
lavc/vaapi_encode: add EQUAL_MULTI_ROWS support for slice structure

VA_ENC_SLICE_STRUCTURE_EQUAL_MULTI_ROWS is added to in the latest
libva (1.8.0) which matches the hardware behaviour:

/** \brief Driver supports any number of rows per slice but they must
*    be the same for all slices except for the last one, which must be
*    equal or smaller to the previous slices.
*/

And VA_ENC_SLICE_STRUCTURE_EQUAL_ROWS is kind of deprecated for iHD
since it's somehow introduced in [1] which is misleading from what we
actually handles.

[1]<https://github.com/intel/libva/commit/0e6d5441f19bdc674b4da3169d614d10fd644778>

Signed-off-by: Linjie Fu <linjie.justin.fu@gmail.com>
3 years agoavformat/apm: fix variable/structure names and cosmetics
Zane van Iperen [Mon, 6 Jul 2020 08:50:52 +0000 (18:50 +1000)]
avformat/apm: fix variable/structure names and cosmetics

3 years agoavformat/apm: use the entire APMState structure as extradata
Zane van Iperen [Tue, 7 Jul 2020 14:42:09 +0000 (00:42 +1000)]
avformat/apm: use the entire APMState structure as extradata

Is the "actual" codec extradata instead of the hand-crafted one
from the previous revision.

3 years agoavformat/apm: read header correctly
Zane van Iperen [Tue, 30 Jun 2020 00:44:39 +0000 (10:44 +1000)]
avformat/apm: read header correctly

The leading WAVEFORMATEX in .APM files is malformed:
* The nAvgBytesPerSec field is wrong, and
* sizeof(cbSize) is 4 instead of 2.

3 years agodoc/http: Update HTTP protocol options
Jun Zhao [Fri, 17 Jul 2020 02:59:05 +0000 (10:59 +0800)]
doc/http: Update HTTP protocol options

remove the timeout option docs part for HTTP protocol and add
auth_type option part.

Reviewed-by: Gyan Doshi <ffmpeg@gyani.pro>
Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
3 years agoavformat/au: Avoid allocation for metadata string
Andreas Rheinhardt [Mon, 13 Jul 2020 17:31:46 +0000 (19:31 +0200)]
avformat/au: Avoid allocation for metadata string

When there are potentially annotation (i.e. metadata) fields to write,
au_get_annotations() is called to produce a string with them. To do so,
it uses an AVBPrint which is finalized to create the string. This is
wasteful, because it always leads to an allocation even if the string
actually fits into the internal buffer of the AVBPrint. This commit
changes this by making au_get_annotations() modify an AVBPrint that
resides on the stack of the caller (i.e. of au_write_header()).

Furthermore, the AVBPrint is now checked for truncation; limiting
the allocations implicit in the AVBPrint allowed to offload the overflow
checks. Notice that these were not correct before: The size parameter of
avio_write() is an int, yet the string in the AVBPrint was allowed to
grow bigger than INT_MAX. And if the length of the string was so near
UINT_MAX that the length + 32 overflowed, the old code would write the
first eight bytes of the string and nothing more, leading to an invalid
file.

Finally, the special case in which the metadata dictionary of the
AVFormatContext is empty (in which case one still has to write eight
binary zeroes) is now no longer treated specially, because this case
no longer incurs any allocation.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavformat/au: Simplify writing string into AVBPrint
Andreas Rheinhardt [Mon, 13 Jul 2020 18:04:26 +0000 (20:04 +0200)]
avformat/au: Simplify writing string into AVBPrint

by using av_bprintf() instead of several av_bprint_append().

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavformat/au: Remove redundant av_freep()
Andreas Rheinhardt [Mon, 13 Jul 2020 15:18:48 +0000 (17:18 +0200)]
avformat/au: Remove redundant av_freep()

This av_freep(&key) in conjunction with the fact that the loop condition
checks for key != NULL was equivalent to a av_freep(&key) + a break
immediately thereafter. But given that there is an av_freep(&key)
directly after the loop, the av_freep(&key) is unnecessary and the break
can also be added explicitly.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavformat/au: Store strings instead of pointers to strings in array
Andreas Rheinhardt [Mon, 13 Jul 2020 15:13:51 +0000 (17:13 +0200)]
avformat/au: Store strings instead of pointers to strings in array

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavfilter/vf_bilateral: simplify code a little
Paul B Mahol [Fri, 17 Jul 2020 18:29:48 +0000 (20:29 +0200)]
avfilter/vf_bilateral: simplify code a little

Make alpha_ calculation faster.

3 years agoavcodec/libaomenc: use pix_fmt descriptors where useful
James Almer [Fri, 17 Jul 2020 20:46:32 +0000 (17:46 -0300)]
avcodec/libaomenc: use pix_fmt descriptors where useful

Reviewed-by: Lynne <dev@lynne.ee>
Signed-off-by: James Almer <jamrial@gmail.com>
3 years agolibaomenc: enable 8, 10 and 12 bit RGB encoding
Lynne [Thu, 16 Jul 2020 10:39:05 +0000 (11:39 +0100)]
libaomenc: enable 8, 10 and 12 bit RGB encoding

RGB pixel formats are one occasion where by pixel format we mean
pixel format, primaries, transfer characteristic, and matrix coeffs,
so we have to manually set them as they're set to unspecified by
default, despite there only being a single possible combination.

3 years agoMAINTAINERS: add myself and gpg fingerprint
Zane van Iperen [Tue, 7 Jul 2020 15:26:38 +0000 (15:26 +0000)]
MAINTAINERS: add myself and gpg fingerprint

Signed-off-by: Zane van Iperen <zane@zanevaniperen.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoavcodec/libx264: call x264_param_cleanup() if available
James Almer [Fri, 10 Jul 2020 20:47:57 +0000 (17:47 -0300)]
avcodec/libx264: call x264_param_cleanup() if available

The documentation states it should be used to free any memory allocated
by x264_param_parse().

Signed-off-by: James Almer <jamrial@gmail.com>
3 years agoavcodec/libx264: check for param allocation failure error code
James Almer [Fri, 10 Jul 2020 20:16:49 +0000 (17:16 -0300)]
avcodec/libx264: check for param allocation failure error code

And return the proper AVERROR value.

Signed-off-by: James Almer <jamrial@gmail.com>