summaryrefslogtreecommitdiff
path: root/libavformat
Commit message (Collapse)AuthorAge
* avformat/mpegts.c: fix to check end of each descriptor of SDTTADANO Tokumei2022-04-09
| | | | | | | | Current code incorrectly check against end of section rather than end of descriptor. Signed-off-by: TADANO Tokumei <aimingoff@pc.nifty.jp> Signed-off-by: Marton Balint <cus@passwd.hu>
* avformat/smacker: add better seeking supportPaul B Mahol2022-04-08
|
* avformat/webmdashenc: fix on-demand profile stringJames Almer2022-04-07
| | | | | | Fixes ticket #9596 Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/mpegenc: Fix ever growing FIFO and infinite loop on errorAndreas Rheinhardt2022-04-05
| | | | | | | | | | | | | | | | | | | | | Since the switch to the new FIFO API in commit ea511196a6c85eb433e10cdbecb0b2c722faf20d, the FIFO is always grown by the amount of data intended to be written into it even in case the FIFO has enough free space. Fix this by only growing the FIFO if needed and then only by the amount that is actually needed. The allocation errors that resulted from this uncovered another bug: The context is left in an inconsistent state in case the FIFO can't be grown, because the FIFO does not contain as much data as the sizes contained in the PacketDesc list claim. This led to an infinite loop in output_packet() (called from mpeg_mux_end()). Fix this by growing the FIFO before adding a new PacketDesc element, thereby preventing the context from becoming inconsistent. Reported-by: Nicolas Gaullier <nicolas.gaullier@cji.paris> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/movenc: don't use mono layout when a front center label is expectedJames Almer2022-04-05
| | | | | | | | | | | | | | | | On output streams where a multichannel stream needs to be stored as one track per channel, each track will have a channel layout describing the position of the channel they contain. For the track with front center, the mov muxer was using the mov layout "mono" instead of the label for the front center position. Since our channel layout API considers front center == mono, we need to do some heuristics. To achieve this, we make sure all audio tracks contain streams with a single channel, and only one of them is front center. In that case, we write the front center label instead of signaling mono layout. Fixes the last part of ticket #2865 Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/mov_chan: move the definition of MovChannelLayoutTag to the headerJames Almer2022-04-05
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/movenc: write channel descriptions when a known layout or a bitmap ↵James Almer2022-04-05
| | | | | | | | can't be used Fixes part of ticket #2865 Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/mov_chan: use a higher log level for a debug messageJames Almer2022-04-05
| | | | | | | Trace is too noisy and this line is useful enough to get it printed at debug level. Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/mov_chan: add a few missing channel label mappingsJames Almer2022-04-05
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/mov_chan: rename mov_get_channel_label() to better reflect its purposeJames Almer2022-04-05
| | | | | | This function turns a mov channel label into a lavf native bitmask. Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/libsrt: use a larger buffer for find_info_tagZhao Zhili2022-03-30
| | | | | | | | The upper limit of strlen(streamid) is 512. Use a larger buffer for future proof, for example, deal with percent-encoding. Reviewed-by: Zhao Jun <barryjzhao@tencent.com> Signed-off-by: Steven Liu <liuqi05@kuaishou.com>
* avformat/libsrt: fix deprecated warningZhao Zhili2022-03-30
| | | | | | | srt_socket was deprecated after 1.4.1. Reviewed-by: Limin Wang <lance.lmwang@gmail.com> Signed-off-by: Steven Liu <liuqi05@kuaishou.com>
* avformat/aqtitledec: Skip unrepresentable durationsMichael Niedermayer2022-03-27
| | | | | | | | Fixes: signed integer overflow: -5 - 9223372036854775807 cannot be represented in type 'long' Fixes: 45665/clusterfuzz-testcase-minimized-ffmpeg_DEMUXER_fuzzer-475618463934054 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avformat/apm: Check channelsMichael Niedermayer2022-03-27
| | | | | | | | Fixes: division by 0 Fixes: 45643/clusterfuzz-testcase-minimized-ffmpeg_DEMUXER_fuzzer-4957777905188864.fuzz Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avformat/cafdec: Do not store empty keys in read_info_chunk()Michael Niedermayer2022-03-27
| | | | | | | | Fixes: Timeout Fixes: 45543/clusterfuzz-testcase-minimized-ffmpeg_dem_CAF_fuzzer-5684953164152832 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avformat: Do not search through the AVOption table for a option not in it ↵Michael Niedermayer2022-03-27
| | | | | | | | | | | repeatedly on each packet This search takes alot of time especially when compared with small packets 46631 decicycles -> 15719 decicycles in read_frame_internal() for amr-nb in 3gp Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avformat/alp: Check num_channelsMichael Niedermayer2022-03-27
| | | | | | | | | | | Fixes: division by 0 Fixes: 45615/clusterfuzz-testcase-minimized-ffmpeg_dem_ALP_fuzzer-582660348405350 Fixes: 45625/clusterfuzz-testcase-minimized-ffmpeg_dem_ALP_fuzzer-4821437943250944 Fixes: 45839/clusterfuzz-testcase-minimized-ffmpeg_IO_DEMUXER_fuzzer-5857286998851584.fuzz Fixes: 45844/clusterfuzz-testcase-minimized-ffmpeg_IO_DEMUXER_fuzzer-6552705772945408 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* rtpenc_vp8: Use 15-bit PictureIDsKevin Wang2022-03-26
| | | | | | | | | | 7-bit PictureIDs are not supported by WebRTC: https://groups.google.com/g/discuss-webrtc/c/333-L02vuWA In practice, 15-bit PictureIDs offer better compatibility. Signed-off-by: Kevin Wang <kevin@muxable.com> Signed-off-by: Martin Storsjö <martin@martin.st>
* avformat: Remove unnecessary inclusions from libavcodecAndreas Rheinhardt2022-03-23
| | | | | | Also improve the other headers a bit while at it. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec, avformat: Remove unnecessary inclusions of lavc/internal.hAndreas Rheinhardt2022-03-23
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/movenc: use warning log level and small adjustment for the logLimin Wang2022-03-22
| | | | Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* avformat/movenc: initialize pts/dts of timecode packetLimin Wang2022-03-22
| | | | | | | | | | | | | | | Fix below error message when timecode packet is written. "Application provided duration: -9223372036854775808 / timestamp: -9223372036854775808 is out of range for mov/mp4 format" try to reproduce by: ffmpeg -y -f lavfi -i color -metadata "timecode=00:00:00:00" -t 1 test.mov Note although error message is printed, the timecode packet will be written anyway. So the patch 2/2 will try to change the log level to warning. Fixes ticket #9488 Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* avformat/test/seek: set ch_layout instead of channelsJames Almer2022-03-22
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/dfpwmdec: add support to set channel layoutJames Almer2022-03-22
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/pcmdec: add support to set channel layout in sln demuxerJames Almer2022-03-22
| | | | | | | Deprecate the channels option, and ensure ch_layout has priority if set over channels, until the latter is gone. Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/pcmdec: deprecate channels optionJames Almer2022-03-22
| | | | | | | And ensure ch_layout has priority if set over channels, until the latter is gone. Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/mxfdec: Do not clear array in mxf_read_strong_ref_array() before ↵Michael Niedermayer2022-03-21
| | | | | | writing Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avformat/mxfdec: Check for avio_read() failure in mxf_read_strong_ref_array()Michael Niedermayer2022-03-21
| | | | | | | Fixes: 42827/clusterfuzz-testcase-minimized-ffmpeg_dem_MXF_fuzzer-4900528511909888 Reviewed-by: Tomas Härdin <tjoppen@acc.umu.se> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avformat/mxfdec: Check count in mxf_read_strong_ref_array()Michael Niedermayer2022-03-21
| | | | | Reviewed-by: Tomas Härdin <tjoppen@acc.umu.se> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avformat/demux: ensure ch_layout is not lost in the stream's internal avctxJames Almer2022-03-21
| | | | | | | | | This is a workaround until avcodec_close() stops freeing ch_layout through av_opt_fre(), or the former is removed. Fixes a regression since 327efa66331ebdc0087c6b656059a8df2f404019. Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/hls: Check target_durationMichael Niedermayer2022-03-21
| | | | | | | | | Fixes: signed integer overflow: 77777777777777 * 1000000 cannot be represented in type 'long long' Fixes: 45545/clusterfuzz-testcase-minimized-ffmpeg_dem_HLS_fuzzer-6438101247983616 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Reviewed-by: Steven Liu <lingjiujianke@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avformat/hls: add AVFMT_NO_BYTE_SEEK flagZhao Zhili2022-03-21
| | | | | | | After d6ac6650b91, ffplay failed to seek HLS stream with AVSEEK_FLAG_BYTE enabled by default. Signed-off-by: Marton Balint <cus@passwd.hu>
* avformat/concat: refactor to use ff_rescale_interval()Pierre-Anthony Lemieux2022-03-19
| | | | Signed-off-by: Zane van Iperen <zane@zanevaniperen.com>
* avformat/imf: refactor to use ff_rescale_interval()Pierre-Anthony Lemieux2022-03-19
| | | | Signed-off-by: Zane van Iperen <zane@zanevaniperen.com>
* avformat/tests: add test for ff_rescale_interval()Pierre-Anthony Lemieux2022-03-19
| | | | Signed-off-by: Zane van Iperen <zane@zanevaniperen.com>
* avformat/seek: add ff_rescale_interval() functionPierre-Anthony Lemieux2022-03-19
| | | | | | Refactors a function used by avformat/concat and avformat/imf. Signed-off-by: Zane van Iperen <zane@zanevaniperen.com>
* avformat/imf: clean-up and reduce loggingPierre-Anthony Lemieux2022-03-19
| | | | Signed-off-by: Zane van Iperen <zane@zanevaniperen.com>
* avformat/imf: add support for input seekingPierre-Anthony Lemieux2022-03-19
| | | | | | | | | | | The IMF demuxer did not implement AVInputFormat::read_seek2(), resulting in inefficient input seeking. Addresses https://trac.ffmpeg.org/ticket/9648 Byte- and frame-seeking are not supported. Signed-off-by: Zane van Iperen <zane@zanevaniperen.com>
* avformat/imf: relocate static function imf_time_to_ts()Pierre-Anthony Lemieux2022-03-19
| | | | Signed-off-by: Zane van Iperen <zane@zanevaniperen.com>
* avcodec/zlib_wrapper: Add wrapper for deflateInit()Andreas Rheinhardt2022-03-19
| | | | | | | | | | | The rationale is the same as for the wrappers for inflateInit(), although the case for it is admittedly not so strong because there are less users of deflateInit(). Also remove an unnecessary inclusion of config.h in libavformat/protocols.c in order to trigger a request for reconfigure (which is needed for CONFIG_DEFLATE_WRAPPER to take effect). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* Keep including the full version.h when headers are included externallyMartin Storsjö2022-03-19
| | | | | | | | | This avoids unnecessary churn and build breakage for users, by making sure the whole version.h is included like it has been so far, while keeping the benefit of not needing to rebuild most files in the ffmpeg tree on minor/micro bumps. Signed-off-by: Martin Storsjö <martin@martin.st>
* avformat/pcmdec: add support to set channel layoutPaul B Mahol2022-03-18
| | | | Signed-off-by: Paul B Mahol <onemda@gmail.com>
* avformat/matroskadec: Check pre_nsMichael Niedermayer2022-03-18
| | | | | | | | Fixes: division by 0 Fixes: 44615/clusterfuzz-testcase-minimized-ffmpeg_dem_WEBM_DASH_MANIFEST_fuzzer-6681108677263360 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avformat/matroskadec: Use rounded down duration in get_cue_desc() checkMichael Niedermayer2022-03-17
| | | | | | | | | | Floating point is evil, it would be better if duration was not a double Fixes: Infinite loop Fixes: 45123/clusterfuzz-testcase-minimized-ffmpeg_dem_WEBM_DASH_MANIFEST_fuzzer-6725052291219456 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avformat/boadec: fix check for invalid channel countJames Almer2022-03-17
| | | | | | Regression since 8269fbcb7ab3b1df3c186126d7f67be7cb7c8f39. Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/imfdec: Convert to the new channel layout APIAndreas Rheinhardt2022-03-17
| | | | | Reviewed-by: James Almer <jamrial@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/mxfenc: do not write index tables with the same InstanceUIDMarton Balint2022-03-16
| | | | | | | | Only index tables repeating previous index tables should use the same InstaceUID. Use the index start position when generating the InstanceUID to fix this. Signed-off-by: Marton Balint <cus@passwd.hu>
* avformat/mxfenc: allow more bits for variable part in uuid generationMarton Balint2022-03-16
| | | | | | Also make sure we do not change the product UID. Signed-off-by: Marton Balint <cus@passwd.hu>
* configure: Use a separate config_components.h header for $ALL_COMPONENTSMartin Storsjö2022-03-16
| | | | | | | | This avoids unnecessary rebuilds of most source files if only the list of enabled components has changed, but not the other properties of the build, set in config.h. Signed-off-by: Martin Storsjö <martin@martin.st>
* doc: Add an entry to APIchanges about changes to version.h and version_major.hMartin Storsjö2022-03-16
| | | | | | | | Also bump the minor versions of all libraries, to signify the API change of splitting the version.h headers and adding the new version_major.h header. Signed-off-by: Martin Storsjö <martin@martin.st>