]> git.sesse.net Git - ffmpeg/log
ffmpeg
4 years agoavcodec/bsf: simplify the code
Limin Wang [Sat, 18 Apr 2020 04:17:16 +0000 (12:17 +0800)]
avcodec/bsf: simplify the code

Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
4 years agoavfilter/f_interleave: no need to check for inlink eof if non-empty queue
Paul B Mahol [Sat, 25 Apr 2020 11:35:22 +0000 (13:35 +0200)]
avfilter/f_interleave: no need to check for inlink eof if non-empty queue

Also set state to ready if there is any inlink with queued frame.

4 years agoavfilter/f_interleave: make sure that all frames in inlink queue are used
Paul B Mahol [Sat, 25 Apr 2020 11:07:13 +0000 (13:07 +0200)]
avfilter/f_interleave: make sure that all frames in inlink queue are used

4 years agoavfilter/f_interleave: add duration option
Paul B Mahol [Sat, 25 Apr 2020 10:35:22 +0000 (12:35 +0200)]
avfilter/f_interleave: add duration option

4 years agoffplay: set stream_index to -1 earlier to prevent segfault
Peter Ross [Sat, 25 Apr 2020 01:25:15 +0000 (11:25 +1000)]
ffplay: set stream_index to -1 earlier to prevent segfault

Signed-off-by: Peter Ross <pross@xvid.org>
Reviewed-by: Marton Balint <cus@passwd.hu>
4 years agoavcodec/vp9: prevent null pointer use on init_frames() failure
Peter Ross [Sat, 25 Apr 2020 01:25:15 +0000 (11:25 +1000)]
avcodec/vp9: prevent null pointer use on init_frames() failure

Signed-off-by: Peter Ross <pross@xvid.org>
Reviewed-by: James Almer <jamrial@gmail.com>
4 years agolavu/version: bump minor version for DOVI sidedata
Jun Zhao [Thu, 23 Apr 2020 11:02:03 +0000 (19:02 +0800)]
lavu/version: bump minor version for DOVI sidedata

bump minor version for DOVI sidedata, because added the dovi_meta.h
as lavu API part. Also update APIchanges.

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
4 years agoavcodec: add support for Cunning Developments' ADPCM
Zane van Iperen [Sat, 18 Apr 2020 00:20:39 +0000 (00:20 +0000)]
avcodec: add support for Cunning Developments' ADPCM

Signed-off-by: Zane van Iperen <zane@zanevaniperen.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 years agodnn-layer-mathbinary-test: Fix tests for cases with extra intermediate precision
Martin Storsjö [Thu, 23 Apr 2020 06:19:25 +0000 (09:19 +0300)]
dnn-layer-mathbinary-test: Fix tests for cases with extra intermediate precision

This fixes tests on 32 bit x86 mingw with clang, which uses x87
fpu by default.

In this setup, while the get_expected function is declared to
return float, the compiler is (especially given the optimization
flags set) free to keep the intermediate values (in this case,
the return value from the inlined function) in higher precision.

This results in the situation where 7.28 (which actually, as
a float, ends up as 7.2800002098), multiplied by 100, is
728.000000 when really forced into a 32 bit float, but 728.000021
when kept with higher intermediate precision.

For the multiplication case, a more suitable epsilon would e.g.
be 2*FLT_EPSILON*fabs(expected_output), but just increase the
current hardcoded threshold for now.

Signed-off-by: Martin Storsjö <martin@martin.st>
4 years agoavcodec/mjpeg2jpeg_bsf: Remove unnecessary header
Andreas Rheinhardt [Tue, 21 Apr 2020 02:19:07 +0000 (04:19 +0200)]
avcodec/mjpeg2jpeg_bsf: Remove unnecessary header

libavutil/mem.h is unneeded since 33d18982fa03feb061c8f744a4f0a9175c1f63ab,
the commit that introduced the new packet-based bsf API, because with
this switch the allocations were no longer performed directly, but by
av_new_packet().

Reviewed-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
4 years agoavcodec/noise_bsf: Remove unnecessary headers
Andreas Rheinhardt [Tue, 21 Apr 2020 02:09:20 +0000 (04:09 +0200)]
avcodec/noise_bsf: Remove unnecessary headers

With 33d18982fa03feb061c8f744a4f0a9175c1f63ab, the commit introducing
the new packet-based bsf API, a new buffer was no longer allocated
directly, but via av_new_packet(), so that libavutil/mem.h was no longer
needed.

Moreover since commit dc99ee6b08e54de13b4c82ff265609b6ab83e3d8
av_packet_make_writable() is employed which copies the data in case it
is unavoidable so that string.h is no longer used (it was used for
memcpy()).

Reviewed-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
4 years agoavcodec/dump_extradata_bsf: Remove unnecessary header
Andreas Rheinhardt [Tue, 21 Apr 2020 01:51:57 +0000 (03:51 +0200)]
avcodec/dump_extradata_bsf: Remove unnecessary header

Since 33d18982fa03feb061c8f744a4f0a9175c1f63ab (the commit that
introduced the new bsf API) allocating an enlarged buffer in case
extradata needs to be added to a packet is done via av_new_packet(),
so that libavutil/mem.h is no longer needed.

Reviewed-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
4 years agoavcodec/dca_core_bsf: Remove unnecessary header
Andreas Rheinhardt [Tue, 21 Apr 2020 01:49:42 +0000 (03:49 +0200)]
avcodec/dca_core_bsf: Remove unnecessary header

This bsf never needed libavutil/mem.h.

Reviewed-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
4 years agoavcodec/chomp_bsf: Remove unnecessary header
Andreas Rheinhardt [Tue, 21 Apr 2020 01:47:01 +0000 (03:47 +0200)]
avcodec/chomp_bsf: Remove unnecessary header

This bsf never needed internal.h.

Reviewed-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
4 years agoavcodec/vp9_raw_reorder_bsf: Remove unnecessary header
Andreas Rheinhardt [Tue, 21 Apr 2020 01:39:06 +0000 (03:39 +0200)]
avcodec/vp9_raw_reorder_bsf: Remove unnecessary header

This bsf doesn't have any options, so including libavutil/opt.h is
unnecessary.

Reviewed-by: Peter Ross <pross@xvid.org>
Reviewed-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
4 years agoavformat/mux: Remove unnecessary headers
Andreas Rheinhardt [Tue, 21 Apr 2020 00:57:25 +0000 (02:57 +0200)]
avformat/mux: Remove unnecessary headers

mux.c was split from utils.c in 55f9037f38bc3beacb2f5a17408c1d24c077d7fd
and during this split all headers were simply copied without checking if
they were only needed in the part that stayed in utils.c (or whether
these haeders were needed at all). As a result quite a lot of headers
in mux.c are unnecessary. This commit removes them.

Reviewed-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
4 years agoavformat/utils: Remove superfluous headers
Andreas Rheinhardt [Mon, 20 Apr 2020 23:09:19 +0000 (01:09 +0200)]
avformat/utils: Remove superfluous headers

stdarg.h has been included in 780d7897a9c9295b43f1f0e9b49a11f99cd402c3
for ff_url_join(). This header became unnecessary when this function was
moved into a separate file in df9f22d42b0905385629a9d368bb5a1eef2b45ef.

libavutil/pixdesc.h has been included for av_get_pix_fmt_name() in
603b8bc2a109978c8499b06d2556f1433306eca7 and is unused since commit
2fb7501938b7103624c9bef740ca498258cacdab that removed the stuff belonging
to FF_API_FORMAT_PARAMETERS. Notice that this file still uses
AV_PIX_FMT_NONE and that therefore the header libavutil/pixfmt.h has
been included (this header is included in pixdesc.h as well as also in
libavutil/internal.h which is also included).

libavutil/time_internal.h has been included for gmtime_r() in commit
e7dd97b5d8cd6ea150446591f37a5946e8ab7cfb; it is unused since commit
b72a7b96f84e5f16dd93b60668aecfda99442c71 which basically moved the code
making use of gmtime_r() to libavutil/dict.c to use in
avpriv_dict_set_timestamp().

audiointerleave.h has been added in c26e58e32cf430f060209e0d6088181f4426b3ce
because of ff_interleave_compare_dts() (at that time the muxing code
was not split from utils.c yet); said function became static in commit
101e1f6ff90c3365bfde05469ae26d2ee7f71f3e, making this header redundant.

metadata.h has been mostly included for what now resides in
libavutil/dict.h. The stuff that now resides in metadata.h has only been
used briefly: From commits ed7694d8cf4633da444237f4df7efc48936419d2 to
d60a9f52eb42dc76dea9996c8ba3567ae98a9a04.

riff.h has been added in 45da8124a09d0ac5f9d8174884584c5f80309d0c
because riff.h once contained declarations for (ff_)codec_get_tag().
This was changed in bfe5454cd238b16e7977085f880205229103eccb.

Reviewed-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
4 years agoavformat/webvttdec: Remove write-only variable
Andreas Rheinhardt [Fri, 17 Apr 2020 01:47:25 +0000 (03:47 +0200)]
avformat/webvttdec: Remove write-only variable

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
4 years agoavformat/r3d: Remove write-only array
Andreas Rheinhardt [Sun, 22 Mar 2020 04:24:19 +0000 (05:24 +0100)]
avformat/r3d: Remove write-only array

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
4 years agolibavcodec/avpacket: Don't simply forward return value of av_dict_set()
Andreas Rheinhardt [Fri, 17 Apr 2020 13:55:57 +0000 (15:55 +0200)]
libavcodec/avpacket: Don't simply forward return value of av_dict_set()

The documentation of av_dict_set() states that values >= 0 indicate
success, whereas av_packet_unpack_dictionary() implies that return
values > 0 are impossible. So only forward the return value of
av_dict_set() in av_packet_unpack_dictionary() on error.

(Btw: av_dict_set() does currently not return values > 0.)

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
4 years agoavcodec/hevc_mp4toannexb_bsf: Check nalu_size
Michael Niedermayer [Sun, 19 Apr 2020 16:24:55 +0000 (18:24 +0200)]
avcodec/hevc_mp4toannexb_bsf: Check nalu_size

Fixes: Timeout (29sec -> 5ms)
Fixes: 20237/clusterfuzz-testcase-minimized-ffmpeg_BSF_HEVC_MP4TOANNEXB_fuzzer-5165615044362240
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 years agolibavcodec/jpeg2000dec.c: ROI marker support
Gautam Ramakrishnan [Thu, 23 Apr 2020 04:06:07 +0000 (09:36 +0530)]
libavcodec/jpeg2000dec.c: ROI marker support

This patch adds support for decoding images
with a Region of Interest. Allows decoding
samples such as p0_03.j2k. This patch should
fix ticket #4681.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 years agoscale_vulkan: take frame cropping parameters in account when scaling
Lynne [Thu, 23 Apr 2020 17:09:00 +0000 (18:09 +0100)]
scale_vulkan: take frame cropping parameters in account when scaling

Then sample_aspect_ratio line at the bottom was cargo-culted from the vaapi
scaling filter, but its unnecesary.

4 years agooverlay_vulkan: add support for overlaying images with an alpha channel
Lynne [Thu, 23 Apr 2020 17:08:14 +0000 (18:08 +0100)]
overlay_vulkan: add support for overlaying images with an alpha channel

4 years agoconfigure: enable ffnvcodec, nvenc, nvdec for aarch64
ManojGuptaBonda [Thu, 23 Apr 2020 04:03:35 +0000 (09:33 +0530)]
configure: enable ffnvcodec, nvenc, nvdec for aarch64

Adding the support to build FFMPEG with HW accelerated decode(nvdec) and
encode on aarch64 architecture.

Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
4 years agoavformat/mpegtsenc: use av_log_once for data stream warning
Gyan Doshi [Wed, 22 Apr 2020 11:23:51 +0000 (16:53 +0530)]
avformat/mpegtsenc: use av_log_once for data stream warning

4 years agodoc/APIChanges: add AV_PKT_DATA_DOVI_CONF entry
Jun Zhao [Wed, 22 Apr 2020 11:47:32 +0000 (19:47 +0800)]
doc/APIChanges: add AV_PKT_DATA_DOVI_CONF entry

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
4 years agolavc/version: bump minor version for DOVI sidedata
Jun Zhao [Wed, 22 Apr 2020 11:22:56 +0000 (19:22 +0800)]
lavc/version: bump minor version for DOVI sidedata

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
4 years agolavf/movenc: enable dvcC/dvvC box support from DOVI sidedata
Jun Zhao [Sat, 11 Apr 2020 13:11:11 +0000 (21:11 +0800)]
lavf/movenc: enable dvcC/dvvC box support from DOVI sidedata

enable dvcC/dvvC box support from DOVI sidedata.

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
4 years agofftools/ffprobe: support DOVI sidedata
Jun Zhao [Sat, 11 Apr 2020 13:10:00 +0000 (21:10 +0800)]
fftools/ffprobe: support DOVI sidedata

support DOVI sidedata.

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
4 years agolavf/dump: dump DOVI side data
Jun Zhao [Sat, 11 Apr 2020 13:09:03 +0000 (21:09 +0800)]
lavf/dump: dump DOVI side data

dump DOVI side data.

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
4 years agolavf/mov: support dvcC/dvvC box for DOVI
vacingfang [Sat, 11 Apr 2020 13:00:50 +0000 (21:00 +0800)]
lavf/mov: support dvcC/dvvC box for DOVI

support dvcC/dvcC box from spec Dolby Vision Streams Within the
ISO Base MediaFile Format Version 2.1.2
(https://www.dolby.com/in/en/technologies/dolby-vision/dolby-vision\
-bitstreams-within-the-iso-base-media-file-format-v2.1.2.pdf)

export the DOVI information to sidedata.

Signed-off-by: vacingfang <vacingfang@tencent.com>
4 years agolavf/mpegts: support DOVI Video Stream Descriptor
vacingfang [Sat, 11 Apr 2020 12:57:40 +0000 (20:57 +0800)]
lavf/mpegts: support DOVI Video Stream Descriptor

support DOVI Video Stream Descriptor from Dolby Vision Streams
Within the MPEG-2 Transport Stream Format V1.2

From the spec: https://www.dolby.com/us/en/technologies/\
dolby-vision/dolby-vision-bitstreams-in-mpeg-2-transport-\
stream-multiplex-v1.2.pdf.

export the DOVI information with sidedata.

Signed-off-by: vacingfang <vacingfang@tencent.com>
4 years agolavutil: add DOVI related header
vacingfang [Sat, 11 Apr 2020 12:54:11 +0000 (20:54 +0800)]
lavutil: add DOVI related header

add DOVI related struct

Signed-off-by: vacingfang <vacingfang@tencent.com>
4 years agolavc: add a new sidedata type for DOVI
Jun Zhao [Sat, 11 Apr 2020 13:07:15 +0000 (21:07 +0800)]
lavc: add a new sidedata type for DOVI

add a new sidedata type for DOVI.

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
4 years agompeg4videoenc: Don't crash with -fsanitize=bounds
Vitaly Buka [Wed, 22 Apr 2020 04:34:19 +0000 (21:34 -0700)]
mpeg4videoenc: Don't crash with -fsanitize=bounds

Also the patch makes this code consistent with mpeg4videodec.c

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 years agolibavcodec/jpeg2000dec.c: Support for CRG marker
Gautam Ramakrishnan [Wed, 22 Apr 2020 18:34:39 +0000 (00:04 +0530)]
libavcodec/jpeg2000dec.c: Support for CRG marker

This patch adds support to skip the CRG marker.
The CRG marker, is an informational marker.
Allows samples such as p0_03.j2k to be decoded.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 years agoavcodec/iff: Check length before memcpy() in decode_deep_rle32()
Michael Niedermayer [Mon, 20 Apr 2020 22:03:40 +0000 (00:03 +0200)]
avcodec/iff: Check length before memcpy() in decode_deep_rle32()

Fixes: out of array read
Fixes: 20796/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_IFF_ILBM_fuzzer-5111364702175232.fuzz
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 years agoavcodec/iff: Fix invalid pointer intermediates in decode_deep_rle32()
Michael Niedermayer [Mon, 20 Apr 2020 22:03:39 +0000 (00:03 +0200)]
avcodec/iff: Fix invalid pointer intermediates in decode_deep_rle32()

Reviewed-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 years agolavd/avfoundation.m: Do not use transport controls for screen capture devices.
Thilo Borgmann [Sat, 4 Apr 2020 11:51:17 +0000 (13:51 +0200)]
lavd/avfoundation.m: Do not use transport controls for screen capture devices.

4 years agolavd/avfoundation.m: Remove transport controls for iOS.
Thilo Borgmann [Sat, 4 Apr 2020 11:49:46 +0000 (13:49 +0200)]
lavd/avfoundation.m: Remove transport controls for iOS.

4 years agoavformat/mpegtsenc: don't print warning for DVB text streams
Gyan Doshi [Mon, 20 Apr 2020 17:14:59 +0000 (22:44 +0530)]
avformat/mpegtsenc: don't print warning for DVB text streams

They can be demuxed by ffmpeg.

4 years agodnn-layer-mathbinary-test: add unit test for divide
Guo, Yejun [Sat, 11 Apr 2020 05:50:32 +0000 (13:50 +0800)]
dnn-layer-mathbinary-test: add unit test for divide

Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
4 years agodnn/native: add native support for divide
Guo, Yejun [Sat, 11 Apr 2020 05:46:47 +0000 (13:46 +0800)]
dnn/native: add native support for divide

it can be tested with model file generated with below python script:
import tensorflow as tf
import numpy as np
import imageio

in_img = imageio.imread('input.jpg')
in_img = in_img.astype(np.float32)/255.0
in_data = in_img[np.newaxis, :]

x = tf.placeholder(tf.float32, shape=[1, None, None, 3], name='dnn_in')
z1 = 2 / x
z2 = 1 / z1
z3 = z2 / 0.25 + 0.3
z4 = z3 - x * 1.5 - 0.3
y = tf.identity(z4, name='dnn_out')

sess=tf.Session()
sess.run(tf.global_variables_initializer())

graph_def = tf.graph_util.convert_variables_to_constants(sess, sess.graph_def, ['dnn_out'])
tf.train.write_graph(graph_def, '.', 'image_process.pb', as_text=False)

print("image_process.pb generated, please use \
path_to_ffmpeg/tools/python/convert.py to generate image_process.model\n")

output = sess.run(y, feed_dict={x: in_data})
imageio.imsave("out.jpg", np.squeeze(output))

Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
4 years agodnn-layer-mathbinary-test: add unit test for 'mul'
Guo, Yejun [Sat, 11 Apr 2020 05:24:36 +0000 (13:24 +0800)]
dnn-layer-mathbinary-test: add unit test for 'mul'

Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
4 years agodnn/native: add native support for 'mul'
Guo, Yejun [Sat, 11 Apr 2020 05:22:24 +0000 (13:22 +0800)]
dnn/native: add native support for 'mul'

it can be tested with model file generated from above python script:

import tensorflow as tf
import numpy as np
import imageio

in_img = imageio.imread('input.jpg')
in_img = in_img.astype(np.float32)/255.0
in_data = in_img[np.newaxis, :]

x = tf.placeholder(tf.float32, shape=[1, None, None, 3], name='dnn_in')
z1 = 0.5 + 0.3 * x
z2 = z1 * 4
z3 = z2 - x - 2.0
y = tf.identity(z3, name='dnn_out')

sess=tf.Session()
sess.run(tf.global_variables_initializer())

graph_def = tf.graph_util.convert_variables_to_constants(sess, sess.graph_def, ['dnn_out'])
tf.train.write_graph(graph_def, '.', 'image_process.pb', as_text=False)

print("image_process.pb generated, please use \
path_to_ffmpeg/tools/python/convert.py to generate image_process.model\n")

output = sess.run(y, feed_dict={x: in_data})
imageio.imsave("out.jpg", np.squeeze(output))

Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
4 years agodnn-layer-mathbinary-test: add unit test for add
Guo, Yejun [Fri, 10 Apr 2020 14:32:02 +0000 (22:32 +0800)]
dnn-layer-mathbinary-test: add unit test for add

Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
4 years agodnn/native: add native support for 'add'
Guo, Yejun [Fri, 10 Apr 2020 13:35:11 +0000 (21:35 +0800)]
dnn/native: add native support for 'add'

It can be tested with the model file generated with below python script:

import tensorflow as tf
import numpy as np
import imageio

in_img = imageio.imread('input.jpg')
in_img = in_img.astype(np.float32)/255.0
in_data = in_img[np.newaxis, :]

x = tf.placeholder(tf.float32, shape=[1, None, None, 3], name='dnn_in')
z1 = 0.039 + x
z2 = x + 0.042
z3 = z1 + z2
z4 = z3 - 0.381
z5 = z4 - x
y = tf.math.maximum(z5, 0.0, name='dnn_out')

sess=tf.Session()
sess.run(tf.global_variables_initializer())

graph_def = tf.graph_util.convert_variables_to_constants(sess, sess.graph_def, ['dnn_out'])
tf.train.write_graph(graph_def, '.', 'image_process.pb', as_text=False)

print("image_process.pb generated, please use \
path_to_ffmpeg/tools/python/convert.py to generate image_process.model\n")

output = sess.run(y, feed_dict={x: in_data})
imageio.imsave("out.jpg", np.squeeze(output))

Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
4 years agolavf/tls_mbedtls: fix resource leak
Jun Zhao [Mon, 20 Apr 2020 06:45:16 +0000 (14:45 +0800)]
lavf/tls_mbedtls: fix resource leak

fix resource leak in mbedtls part.

fix #8614

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
4 years agoavformat/matroskaenc: Use comparison instead of assignment
Andreas Rheinhardt [Wed, 22 Apr 2020 01:42:00 +0000 (03:42 +0200)]
avformat/matroskaenc: Use comparison instead of assignment

This bug was introduced in 3589b3f2e217e78d16a92b372d95ce4a3f7df896.
Fixes Coverity ID 1462425.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
4 years agoswscale: aarch64: Don't clobber callee-saved registers v8-v15
Martin Storsjö [Sun, 19 Apr 2020 17:46:15 +0000 (20:46 +0300)]
swscale: aarch64: Don't clobber callee-saved registers v8-v15

Signed-off-by: Martin Storsjö <martin@martin.st>
4 years agoavformat/mpegtsenc: use the correct stream_types and write HDMV descriptors for m2ts
Marton Balint [Tue, 10 Dec 2019 23:58:05 +0000 (00:58 +0100)]
avformat/mpegtsenc: use the correct stream_types and write HDMV descriptors for m2ts

Fixes ticket #2622.

Signed-off-by: Marton Balint <cus@passwd.hu>
4 years agoavformat/mpegtsenc: factorize determining stream_type
Marton Balint [Tue, 10 Dec 2019 22:54:06 +0000 (23:54 +0100)]
avformat/mpegtsenc: factorize determining stream_type

Signed-off-by: Marton Balint <cus@passwd.hu>
4 years agoavformat/mpegtsenc: only allow one program in m2ts mode
Marton Balint [Tue, 10 Dec 2019 22:24:27 +0000 (23:24 +0100)]
avformat/mpegtsenc: only allow one program in m2ts mode

The standard does not allow more.

Signed-off-by: Marton Balint <cus@passwd.hu>
4 years agoavformat/mpegtsenc: use standard pids for m2ts
Marton Balint [Sun, 10 Nov 2019 23:06:01 +0000 (00:06 +0100)]
avformat/mpegtsenc: use standard pids for m2ts

Signed-off-by: Marton Balint <cus@passwd.hu>
4 years agolavf/tls_gnutls: check for interrupt inside handshake loop
Błażej Szczygieł [Fri, 16 Aug 2019 08:38:46 +0000 (10:38 +0200)]
lavf/tls_gnutls: check for interrupt inside handshake loop

fixes #8080

Signed-off-by: Błażej Szczygieł <spaz16@wp.pl>
4 years agohwcontext_vulkan: correctly download and upload flipped images
Lynne [Tue, 21 Apr 2020 17:55:24 +0000 (18:55 +0100)]
hwcontext_vulkan: correctly download and upload flipped images

We derive the destination buffer stride from the input stride,
which meant if the image was flipped with a negative stride,
we'd be FFALIGNING a negative number which ends up being huge,
thus making the Vulkan buffer allocation fail and the whole
image transfer fail.

Only found out about this as OpenGL compositors can copy an entire
image with a single call if its flipped, rather than iterate over
each line.

4 years agoavformat/matroskaenc: Cosmetics
Andreas Rheinhardt [Sun, 29 Dec 2019 02:36:56 +0000 (03:36 +0100)]
avformat/matroskaenc: Cosmetics

Reindentation, removal of { } if they contain only one statement
and moving the return statement to a line of its own in situations
like "if (ret < 0) return ret;". Moreover, several overlong lines
were made shorter and a camelCase variable received a name in line
with our naming conventions.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
4 years agoavformat/matroskaenc: Redo handling of FlagDefault
Andreas Rheinhardt [Sat, 18 Jan 2020 06:05:20 +0000 (07:05 +0100)]
avformat/matroskaenc: Redo handling of FlagDefault

Up until now, the Matroska muxer would mark a track as default if it had
the disposition AV_DISPOSITION_DEFAULT or if there was no track with
AV_DISPOSITION_DEFAULT set; in the latter case even more than one track
of a kind (audio, video, subtitles) was marked as default which is not
sensible.

This commit changes the logic used to mark tracks as default. There are
now three modes for this:
a) In the "infer" mode the first track of every type (audio, video,
subtitles) with default disposition set will be marked as default; if
there is no such track (for a given type), then the first track of this
type (if existing) will be marked as default. This behaviour is inspired
by mkvmerge. It ensures that the default flags will be set in a sensible
way even if the input comes from containers that lack the concept of
default flags. This mode is the default mode.
b) The "infer_no_subs" mode is similar to the "infer" mode; the
difference is that if no subtitle track with default disposition exists,
no subtitle track will be marked as default at all.
c) The "passthrough" mode: Here the track will be marked as default if
and only the corresponding input stream had disposition default.

This fixes ticket #8173 (the passthrough mode is ideal for this) as
well as ticket #8416 (the "infer_no_subs" mode leads to the desired
output).

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
4 years agoavformat/matroskaenc: Don't needlessly copy AVCodecParameters
Andreas Rheinhardt [Wed, 22 Jan 2020 19:03:15 +0000 (20:03 +0100)]
avformat/matroskaenc: Don't needlessly copy AVCodecParameters

At the end of encoding, the FLAC encoder sends a packet whose side data
contains updated extradata (e.g. a correct md5 checksum). The Matroska
muxer uses this to update the CodecPrivate.

In doing so, the stream's codecpar was copied. But given that writing
a FLAC CodecPrivate does not modify the used AVCodecParameters at all,
there is no need to do so and this commit changes this.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
4 years agoavformat/matroskaenc: Add const where appropriate
Andreas Rheinhardt [Wed, 20 Nov 2019 02:35:24 +0000 (03:35 +0100)]
avformat/matroskaenc: Add const where appropriate

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
4 years agoavformat/matroskaenc: Don't waste bytes on length fields
Andreas Rheinhardt [Sun, 29 Dec 2019 09:22:49 +0000 (10:22 +0100)]
avformat/matroskaenc: Don't waste bytes on length fields

Several EBML Master elements for which a good upper bound of the final
length was available were nevertheless written without giving an
upper bound of the final length to start_ebml_master(), so that their
length fields were eight bytes long. This has been changed.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
4 years agoavformat/matroskaenc: Only write Tracks if there is a track
Andreas Rheinhardt [Sun, 29 Dec 2019 02:26:05 +0000 (03:26 +0100)]
avformat/matroskaenc: Only write Tracks if there is a track

The Matroska muxer does not write every stream as a Matroska track;
some streams are written as AttachedFile. But should no stream be
written as a Matroska track, the Matroska muxer would nevertheless
write a Tracks element without a TrackEntry. This is against the spec.
This commit changes this and only writes a Tracks if there is a Matroska
track.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
4 years agoavformat/matroskaenc: Warn that WebM doesn't support Attachments
Andreas Rheinhardt [Sat, 2 Nov 2019 17:56:31 +0000 (18:56 +0100)]
avformat/matroskaenc: Warn that WebM doesn't support Attachments

As WebM doesn't support Attachments, the Matroska muxer drops them when
in WebM mode. This happened silently until this commit which adds a
warning for this.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
4 years agoavformat/matroskaenc: Don't use size of inexistent Cluster
Andreas Rheinhardt [Wed, 22 Jan 2020 19:01:30 +0000 (20:01 +0100)]
avformat/matroskaenc: Don't use size of inexistent Cluster

In order to determine whether the current Cluster needs to be closed
because of the limits on clustersize and clustertime,
mkv_write_packet() would first get the size of the current Cluster by
applying avio_tell() on the dynamic buffer holding the current Cluster.
It did this without checking whether there is a dynamic buffer for
writing Clusters open right now.

In this case (which happens when writing the first packet)
avio_tell() returned AVERROR(EINVAL); yet it is not good to rely on
avio_tell() (or actually, avio_seek()) to handle the situation
gracefully.

Fixing this is easy: Only check whether a Cluster needs to be closed
if a Cluster is in fact open.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
4 years agoavformat/matroskaenc: Add check for using explicit TrackNumber
Andreas Rheinhardt [Fri, 1 Nov 2019 10:49:47 +0000 (11:49 +0100)]
avformat/matroskaenc: Add check for using explicit TrackNumber

When creating DASH streams, the TrackNumber is externally prescribed
and not derived from the number of streams in the AVFormatContext, so
if the number of tracks for a file using an explicit TrackNumber was
more than one, the resulting file would be broken (it would be impossible
to tell to which track a Block belongs if different tracks share the
same TrackNumber). So disallow this.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
4 years agoavformat/matroskaenc: Improve Cues in case of no video
Andreas Rheinhardt [Sun, 29 Dec 2019 02:14:53 +0000 (03:14 +0100)]
avformat/matroskaenc: Improve Cues in case of no video

The Matroska muxer currently only adds CuePoints in three cases:
a) For video keyframes. b) For the first audio frame in a new Cluster if
in DASH-mode. c) For subtitles. This means that ordinary Matroska audio
files won't have any Cues which impedes seeking.

This commit changes this. For every track in a file without video track
it is checked and tracked whether a Cue entry has already been added
for said track for the current Cluster. This is used to add a Cue entry
for each first packet of each track in each Cluster.

Implements #3149.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
4 years agoavformat/matroskaenc: Remove limit on the number of tracks
Andreas Rheinhardt [Wed, 15 Apr 2020 02:49:46 +0000 (04:49 +0200)]
avformat/matroskaenc: Remove limit on the number of tracks

The Matroska file format has practically no limit on the number of
tracks (the current limit is 2^56 - 1); yet because they are encoded in
a variable length format in (Simple)Blocks this muxer has simply imposed
a limit on the number of tracks in order to ensure that they can always
be written on one byte in order to simplify the muxing process.

This commit removes said limit.

Also, zero is an invalid TrackNumber, so disallow this value in the
dash_track_number option.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
4 years agoavformat/matroskaenc: Refactor writing EBML lengths
Andreas Rheinhardt [Wed, 15 Apr 2020 02:05:09 +0000 (04:05 +0200)]
avformat/matroskaenc: Refactor writing EBML lengths

This commit factors the ability to write ordinary EBML numbers out of
the functions for writing EBML lengths. This is in preparation for
future commits.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
4 years agoavformat/matroskaenc: Rename functions to better reflect what they do
Andreas Rheinhardt [Wed, 15 Apr 2020 01:39:37 +0000 (03:39 +0200)]
avformat/matroskaenc: Rename functions to better reflect what they do

EBML uses variable length integers both for the EBML IDs as well as for
the EBML lengths; Matroska also uses them for the TrackNumber in
(Simple)Blocks and for the lengths of laces when EBML lacing is used.

When encoding EBML lengths, certain encodings have a special meaning,
namely that the element has an unknown length. This is not so when
encoding general EBML variable length integers.

Yet the functions called ebml_num_size() and put_ebml_num() had this
special meaning hardcoded, i.e. they are there to write EBML lengths and
not general EBML numbers. So rename them.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
4 years agoavformat/matroskaenc: Make ebml_num_size() more robust
Andreas Rheinhardt [Thu, 2 Apr 2020 21:07:55 +0000 (23:07 +0200)]
avformat/matroskaenc: Make ebml_num_size() more robust

Matroska (or actually EBML) uses variable-length numbers where only
seven bits of every byte is usable for the length; the other bits encode
the length of the variable-length number. So in order to find out how
many bytes one needs to encode a given number one can use a loop like
while (num >> 7 * bytes) bytes++; the Matroska muxer effectively did this.

Yet it has a disadvantage: It is impossible for the result of a single
right shift of an unsigned number with most significant bit set to be
zero, because one can only shift by 0..(width - 1). On some
architectures like x64 it is not even possible to do it with undefined
right shifts in which case this leads to an infinite loop.

This can be easily avoided by switching to a loop whose condition is
(num >>= 7). The maximum value the so modified function can return
is 10; any value > 8 is invalid and will now lead to an assert in
put_ebml_num() or in start_ebml_master() (or actually in
put_ebml_size_unknown()).

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
4 years agoavformat/matroska: Move mime_tag lists to matroskadec
Andreas Rheinhardt [Thu, 16 Apr 2020 01:39:05 +0000 (03:39 +0200)]
avformat/matroska: Move mime_tag lists to matroskadec

They are not used any more by the muxer.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
4 years agoavformat/matroskaenc: Improve mimetype search
Andreas Rheinhardt [Sun, 3 Nov 2019 12:06:49 +0000 (13:06 +0100)]
avformat/matroskaenc: Improve mimetype search

Use the mime_types of the corresponding AVCodecDescriptor instead of
tables specific to Matroska. The former are generally more encompassing:
They contain every item of the current lists except "text/plain" for
AV_CODEC_ID_TEXT and "binary" for AV_CODEC_ID_BIN_DATA.

The former has been preserved by special-casing it while the latter is
a hack added in c9212abf so that the demuxer (which uses the same tables)
sets the appropriate CodecID for broken files ("binary" is not a correct
mime type at all); using it for the muxer was a mistake. The correct
mime type for AV_CODEC_ID_BIN_DATA is "application/octet-stream" and
this is what one gets from the AVCodecDescriptor.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
4 years agoavcodec/pngdec: Pass ret from decode_iccp_chunk()
Michael Niedermayer [Fri, 17 Apr 2020 23:48:47 +0000 (01:48 +0200)]
avcodec/pngdec: Pass ret from decode_iccp_chunk()

Found while reviewing a patch fixing a similar issue

Reviewed-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 years agoavcodec/adpcm: update get_nb_samples() doc
Zane van Iperen [Sat, 18 Apr 2020 00:59:33 +0000 (00:59 +0000)]
avcodec/adpcm: update get_nb_samples() doc

Signed-off-by: Zane van Iperen <zane@zanevaniperen.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 years agoavcodec/adpcm_ima_{apc, ssi, oki}: replace while() with for()
Zane van Iperen [Sat, 18 Apr 2020 00:59:25 +0000 (00:59 +0000)]
avcodec/adpcm_ima_{apc, ssi, oki}: replace while() with for()

Per discussion at https://ffmpeg.org/pipermail/ffmpeg-devel/2020-April/260854.html

Signed-off-by: Zane van Iperen <zane@zanevaniperen.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 years agofate/truehd: add a test for the truehd_core bitstream filter
James Almer [Sun, 19 Apr 2020 14:57:19 +0000 (11:57 -0300)]
fate/truehd: add a test for the truehd_core bitstream filter

Signed-off-by: James Almer <jamrial@gmail.com>
4 years agofate: move TrueHD tests to their own file
James Almer [Sun, 19 Apr 2020 14:48:37 +0000 (11:48 -0300)]
fate: move TrueHD tests to their own file

Signed-off-by: James Almer <jamrial@gmail.com>
4 years agoavformat/dashenc: add missing startWithSap attribute to AdaptationSet elements
James Almer [Thu, 16 Apr 2020 01:41:02 +0000 (22:41 -0300)]
avformat/dashenc: add missing startWithSap attribute to AdaptationSet elements

Signed-off-by: James Almer <jamrial@gmail.com>
4 years agoavformat/dashenc: add a PlaybackRate element
James Almer [Thu, 16 Apr 2020 01:36:10 +0000 (22:36 -0300)]
avformat/dashenc: add a PlaybackRate element

Signed-off-by: James Almer <jamrial@gmail.com>
4 years agoavformat/dashenc: add a maxSegmentDuration attribute to the Manifest
James Almer [Wed, 15 Apr 2020 21:02:44 +0000 (18:02 -0300)]
avformat/dashenc: add a maxSegmentDuration attribute to the Manifest

Signed-off-by: James Almer <jamrial@gmail.com>
4 years agodoc/muxers: fix some dashenc option names
James Almer [Thu, 16 Apr 2020 01:47:44 +0000 (22:47 -0300)]
doc/muxers: fix some dashenc option names

Signed-off-by: James Almer <jamrial@gmail.com>
4 years agoavcodec/qpeg: mark the init function as thread-safe and init cleanup capable
James Almer [Fri, 17 Apr 2020 03:03:37 +0000 (00:03 -0300)]
avcodec/qpeg: mark the init function as thread-safe and init cleanup capable

Reviewed-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: James Almer <jamrial@gmail.com>
4 years agoavcodec/qpeg: export missing frame properties
James Almer [Fri, 17 Apr 2020 03:03:30 +0000 (00:03 -0300)]
avcodec/qpeg: export missing frame properties

Reviewed-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: James Almer <jamrial@gmail.com>
4 years agoavcodec/qpeg: remove an unnecessary intermediary AVFrame
James Almer [Fri, 17 Apr 2020 02:20:43 +0000 (23:20 -0300)]
avcodec/qpeg: remove an unnecessary intermediary AVFrame

Decoding can be handled directly in the output frame.

Also ensure flushing cleans the reference frame in all cases.

Reviewed-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: James Almer <jamrial@gmail.com>
4 years agoavformat/oggenc: Don't free AVStream's priv_data, fix memleak
Andreas Rheinhardt [Tue, 14 Apr 2020 02:30:59 +0000 (04:30 +0200)]
avformat/oggenc: Don't free AVStream's priv_data, fix memleak

For FLAC, Speex, Opus and VP8 the Ogg muxer allocates two buffers
for building the headers: The first for extradata in an Ogg-specific
format and the second contains a Vorbiscomment. These buffers are
reachable via pointers in the corresponding AVStream's priv_data.

If an error happens during building the headers, the AVStream's
priv_data would be freed. This is pointless in general as it would be
freed generically anyway, but here it is actively harmful: If the second
of the aforementioned allocations fails, the first buffer would leak
upon freeing priv_data.

This commit stops freeing priv_data manually, which allows the muxer to
properly clean up in the deinit function.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
4 years agoavformat/utils: Fix memleak when decoding subtitle in find_stream_info
Andreas Rheinhardt [Sat, 18 Apr 2020 19:36:09 +0000 (21:36 +0200)]
avformat/utils: Fix memleak when decoding subtitle in find_stream_info

avformat_find_stream_info() may decode some frames to get stream
information. And when it does this for subtitles, the decoded subtitles
leak.

(Decoding subtitles was added in b1511e00f6fefde6cb31b2e17f7812cfac1c8bd6
for PGS subtitles. When PGS subtitles originate from a container that
exports every segment as a packet of its own, no output will be
generated when decoding a packet, because not enough input is available.
Yet when used with PGS subtitles in the Matroska form a single packet
contains enough data to generate output. Yet said output is not freed,
hence this leak.)

Reviewed-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
4 years agoavcodec/bsf: Use macro for "packet is empty"
Andreas Rheinhardt [Sun, 19 Apr 2020 19:18:51 +0000 (21:18 +0200)]
avcodec/bsf: Use macro for "packet is empty"

Reviewed-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
4 years agoavformat/rtsp: Put strings instead of pointers to strings into array
Andreas Rheinhardt [Fri, 3 Apr 2020 13:02:07 +0000 (15:02 +0200)]
avformat/rtsp: Put strings instead of pointers to strings into array

In this example, the difference in length between the shortest and
longest string is three, so that not using pointers to strings saves
space even on 32bit systems.

Moreover, there is no need to use a sentinel here; it can be replaced
with FF_ARRAY_ELEMS.

Reviewed-by: Ross Nicholson <phunkyfish@gmail.com>
Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
4 years agoavformat/rtsp: Don't free uninitialized AVBPrint
Andreas Rheinhardt [Mon, 20 Apr 2020 01:31:56 +0000 (03:31 +0200)]
avformat/rtsp: Don't free uninitialized AVBPrint

Fixes Coverity ID 1462307.

Reviewed-by: Marton Balint <cus@passwd.hu>
Reviewed-by: Ross Nicholson <phunkyfish@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
4 years agoavformat/movenc: cosmetics
Limin Wang [Sat, 4 Apr 2020 03:46:27 +0000 (11:46 +0800)]
avformat/movenc: cosmetics

Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
Signed-off-by: Josh de Kock <josh@itanimul.li>
4 years agotools: stop using deprecated av_codec_next()
Josh de Kock [Tue, 14 Apr 2020 12:34:53 +0000 (13:34 +0100)]
tools: stop using deprecated av_codec_next()

Signed-off-by: Josh de Kock <josh@itanimul.li>
4 years agolavf/utils: stop using deprecated av_codec_next()
Josh de Kock [Tue, 14 Apr 2020 11:21:52 +0000 (12:21 +0100)]
lavf/utils: stop using deprecated av_codec_next()

Signed-off-by: Josh de Kock <josh@itanimul.li>
4 years agolavc: stop using deprecated av_codec_next()
Josh de Kock [Tue, 14 Apr 2020 12:33:01 +0000 (13:33 +0100)]
lavc: stop using deprecated av_codec_next()

Signed-off-by: Josh de Kock <josh@itanimul.li>
4 years agocmdutils: stop using deprecated av_codec_next()
Anton Khirnov [Tue, 14 Apr 2020 08:09:24 +0000 (10:09 +0200)]
cmdutils: stop using deprecated av_codec_next()

Signed-off-by: Josh de Kock <josh@itanimul.li>
4 years agolavc/hevcdec: fix the HEVC decoder crash when memory over-read
qoroliang [Fri, 13 Mar 2020 09:02:32 +0000 (17:02 +0800)]
lavc/hevcdec: fix the HEVC decoder crash when memory over-read

Fix an occasional crash for hevc decoder in ARM 32 platform, the
root cause is the memory over read(read cross the memory boundary)
in SAO NENO functions ff_hevc_sao_band_filter_neon_8 and
ff_hevc_sao_edge_filter_neon_8.

After this fix, the crash disapper in the massive Android phone
test.

Signed-off-by: qoroliang <qoroliang@tencent.com>
4 years agolibavformat/rtsp: pass protocol options for udp multicast
Wolfgang Haupt [Sun, 19 Apr 2020 17:14:41 +0000 (19:14 +0200)]
libavformat/rtsp: pass protocol options for udp multicast

Protocol options like buffer_size need to be passed to the
underlying transport implementation for udp multicasts as well.

Signed-off-by: Marton Balint <cus@passwd.hu>
4 years agoswscale: aarch64: Avoid using the x18 register
Martin Storsjö [Sat, 18 Apr 2020 21:24:06 +0000 (00:24 +0300)]
swscale: aarch64: Avoid using the x18 register

The x18 is a reserved platform register on Darwin and Windows.

x8/w8 seems to be unused in this function though (and same about
x10 and x14), so there's really no reason to use x18 here - just change
the uses of x18/w18 into x8/w8 instead without any further rewrites.

Signed-off-by: Martin Storsjö <martin@martin.st>
4 years agoconfigure: add MLP parser as dependency to MLP and TrueHD demuxers
James Almer [Sun, 19 Apr 2020 18:57:22 +0000 (15:57 -0300)]
configure: add MLP parser as dependency to MLP and TrueHD demuxers

It's needed to assemble complete frames.

Signed-off-by: James Almer <jamrial@gmail.com>
4 years agoavcodec/truehd_core_bsf: Remove unused AVClass pointer
Andreas Rheinhardt [Sat, 18 Apr 2020 00:45:02 +0000 (02:45 +0200)]
avcodec/truehd_core_bsf: Remove unused AVClass pointer

The context structure of the truehd_core bsf had a pointer to a const
AVClass as its first member; yet this bsf does not have any AVClass
associated with it, so that this pointer is always NULL. So remove it.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>