summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* avcodec/exrenc: Mark encoder as init-threadsafeAndreas Rheinhardt2021-05-10
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/wmaprodec: Make decoders init-threadsafeAndreas Rheinhardt2021-05-10
| | | | | | | | | | | | | In this case this actually fixes a potential data race: The static VLC tables were reinitialized every time an AVCodecContext has been initialized; while the mutex in avcodec_open2() ensured that the VLCs could not be initialized concurrently by multiple threads, nothing guaranteed that these VLCs are not read concurrently (when decoding a packet with an already initialized AVCodecContext) while another thread initializes them. This is undefined behaviour despite the values being written coinciding with the earlier values. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/wmaprodec: Check ff_mdct_init() for failureAndreas Rheinhardt2021-05-10
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/tscc: Mark decoder as init-threadsafeAndreas Rheinhardt2021-05-10
| | | | | | | Initializing zlib in the way we do here is threadsafe, see https://www.zlib.net/zlib_faq.html#faq21 Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/tscc: Don't free uninitialized z_streamAndreas Rheinhardt2021-05-10
| | | | | | | | It is not documented to be safe to call inflateEnd() on a z_stream that has not been successfully initialized via inflateInit(); so record whether it has been successfully initialized. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/mscc: Mark decoders as init-threadsafeAndreas Rheinhardt2021-05-10
| | | | | | | Initializing zlib in the way we do here is threadsafe, see https://www.zlib.net/zlib_faq.html#faq21 Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/vp8: Mark decoders as init-threadsafeAndreas Rheinhardt2021-05-10
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/vp9: Mark decoder as init-threadsafeAndreas Rheinhardt2021-05-10
| | | | | | It only allocates some AVFrames. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/vp9: Inline function with only one caller into itAndreas Rheinhardt2021-05-10
| | | | | | | | | The split into vp9_decode_init() and init_frames() is a remnant of using init_thread_copy() for frame-threading; the latter has been removed, so there is no reason for init_frames() not be part of vp9_decode_init(). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/vp9: Remove excessive log messagesAndreas Rheinhardt2021-05-10
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/vp9: Cleanup generically on init failureAndreas Rheinhardt2021-05-10
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/rawdec: Mark decoder as init-threadsafeAndreas Rheinhardt2021-05-10
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/ljpegenc: Mark encoder as init-threadsafeAndreas Rheinhardt2021-05-10
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* GSoC: Add guided filterXuewei Meng2021-05-10
| | | | | | | | | Add examples on how to use this filter, and improve the code style. Implement the slice-level parallelism for guided filter. Add the basic version of guided filter. Signed-off-by: Xuewei Meng <xwmeng96@gmail.com> Reviewed-by: Steven Liu <liuqi05@kuaishou.com>
* doc/muxers: note movie_timescale option in movencGyan Doshi2021-05-09
|
* lavf/framecrcenc: do not hash side dataAnton Khirnov2021-05-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are no guarantees that all side data types have the same representation on all platforms. Tests that change output due to this: id3v2-priv-remux, cover-art-mp3-id3v2-remux, gapless-mp3: SKIP_SAMPLES, which is tested by fate-gapless-mp3-side-data matroska-vp8-alpha-remux: MATROSKA_BLOCKADDITIONAL, which is tested by remux itself (side data is written into output) matroska-mastering-display-metadata: MASTERING_DISPLAY_METADATA and CONTENT_LIGHT_LEVEL, which are tested by ffprobe invocation in the same test matroska-spherical-mono-remux: STEREO3D and SPHERICAL, which are tested by ffprobe invocation in the same test segment-mp4-to-ts: MPEGTS_STREAM_ID, which is tested by ts remuxing tests webm-webvtt-remux: WEBVTT_IDENTIFIER/SETTINGS, which is tested by the ffprobe invocation in the same test mxf-d10-user-comments: CPB_PROPERTIES, which is tested by mxf-probe-d10 mov-cover-image: SKIP_SAMPLES, which is tested for mov by mov-aac-2048-priming copy-trac3074: AUDIO_SERVICE_TYPE, which is tested by fate-hls-fmp4_ac3
* fate: drop the vp8-alpha testAnton Khirnov2021-05-09
| | | | It is redundant with matroska-vp8-alpha-remux.
* fate-run.sh: print stream side data in probeaudiostream()Anton Khirnov2021-05-09
| | | | Adds a test for reading AUDIO_SERVICE_TYPE in fate-hls-fmp4_ac3
* fate-webm-webvtt-remux: print packet side data in ffprobe outputAnton Khirnov2021-05-09
|
* fate/demux: convert flv-demux to ffprobeAnton Khirnov2021-05-09
| | | | It can handle side data cleanly.
* fate-ts-demux: convert to ffprobeAnton Khirnov2021-05-09
| | | | It can handle side data cleanly.
* fate-ts-opus-demux: convert to ffprobeAnton Khirnov2021-05-09
| | | | It can handle side data cleanly.
* fate-ts-small-demux: convert to ffprobeAnton Khirnov2021-05-09
| | | | It can handle side data cleanly.
* fate/gapless: add a test for skip samples side dataAnton Khirnov2021-05-09
|
* fate-oggopus-demux: convert to ffprobeAnton Khirnov2021-05-09
| | | | It can print side data cleanly.
* ffprobe: support printing more packet side data typesAnton Khirnov2021-05-09
| | | | | Specifically WebVTT subtitle data, CPB properties, audio service type and mpegts stream id.
* ffprobe: only hash extradata when it is presentAnton Khirnov2021-05-09
| | | | | Passing zero-sized/NULL buffers to av_hash_update() is invalid and may crash with certain hashes.
* configure: fix some filter dependenciesMatthias Troffaes2021-05-09
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* avformat/rpl: Support files containing Replay IMA ADPCM audioCameron Cawley2021-05-09
| | | | Signed-off-by: Zane van Iperen <zane@zanevaniperen.com>
* avcodec: Implement Acorn Replay IMA ADPCM decoderCameron Cawley2021-05-09
| | | | Signed-off-by: Zane van Iperen <zane@zanevaniperen.com>
* avcodec/avpacket: use av_malloc() to allocate an AVPacketJames Almer2021-05-08
| | | | | | | | av_mallocz() is superfluous as get_packet_defaults() is called immediately after it's allocated, which will initialize the entire struct to default values. Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/avpacket: always initialize the new packet in avpriv_packet_list_put()James Almer2021-05-08
| | | | | | | If a copy callback is provided by the caller, the packet passed to it was zeroed instead of initialized with default values. Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/matroskadec: remove special handling of av1c extradataJan Ekström2021-05-08
| | | | | Libavcodec can now handle the standard AV1CodecConfigurationRecord extradata as-is.
* avformat/mov: remove special handling of av1c extradataJan Ekström2021-05-08
| | | | | | Libavcodec can now handle the AV1CodecConfigurationRecord structure as-is when passed as extradata, so the standard behavior of read-box-into-extradata should suffice, just like with AVC and HEVC.
* avcodec/h263, h263data: Move ff_h263_init_rl_inter to h263.cAndreas Rheinhardt2021-05-07
| | | | | | | | | | | | The SVQ1 decoder does not need mpegvideo or rl.c, but it uses stuff from h263data.c. But since 61fe481586425a41d45e371de1e875b49882477d h263data.c called ff_rl_init() and this of course led to build errors when the SVQ1 decoder is enabled and mpegvideo disabled. Fix this by moving ff_h263_init_rl_inter() to h263.c. Fixes ticket #9224. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* configure: Add missing mpegvideo dependency for IPU decoderAndreas Rheinhardt2021-05-07
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec: be more explicit about the buffer size in get_encode_buffer ↵James Almer2021-05-07
| | | | | | documentation Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/alsdec: Fix decoding error with mono audio filesMichael Niedermayer2021-05-07
| | | | | | | | | | | highest_decoded_channel is modified to serve as meant. Reported-by: Noboru Harada <noboru@ieee.org> Regression since: a11aa5f3ed7ee4d2385a7b725d43f6070d790b4c Fixes: Sin48k16bit1ch.mp4 Reviewed-by: Thilo Borgmann <thilo.borgmann@mail.de> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* mips: Fix potential illegal instruction error.Shiyou Yin2021-05-07
| | | | | | | | MSA2 optimizations are attached to MSA macros in generic_macros_msa.h. It's difficult to do runtime check for them. Remove this part of code can make it more robust. H264 1080p decoding: 5.13x==>5.12x. Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/mips: Refine ff_h264_h_lpf_luma_inter_msagxw2021-05-07
| | | | | | | | Using mask to avoid judgment, H264 4K decoding speed improved about 0.1fps tested on 3A4000 Signed-off-by: Shiyou Yin <yinshiyou-hf@loongson.cn> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/mips: Optimize function ff_h264_loop_filter_strength_msa.gxw2021-05-07
| | | | | | | Speed of decoding H264 1080P: 5.05x ==> 5.13x Signed-off-by: Shiyou Yin <yinshiyou-hf@loongson.cn> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/mips: Refine get_cabac_inline_mips.Shiyou Yin2021-05-07
| | | | | | | | | 1. Refined function get_cabac_inline_mips. 2. Optimize function get_cabac_bypass and get_cabac_bypass_sign. Speed of decoding h264: 4.89x ==> 5.05x(tested on 3A4000). Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/mips: Restore the initialization sequence of MSA and MMI in ↵Shiyou Yin2021-05-07
| | | | | | | | | | ff_h264chroma_init_mips. The MSA optimization has been refined in commit 93218c2 and ce0a52e. It is better than MMI version now. Speed of decoding H264: 4.83x ==> 4.89x (tested on 3A4000). Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avformat/hls: use av_strncasecmp()Limin Wang2021-05-07
| | | | | Reviewed-by: Steven Liu <lq@chinaffmpeg.org> Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* avformat: move AVStream.stream_identifier to AVStreamInternalJames Almer2021-05-07
| | | | | | It's a private field, no reason to have it exposed in a public header. Signed-off-by: James Almer <jamrial@gmail.com>
* avformat: move AVStream.codec_info_nb_frames to AVStreamInternalJames Almer2021-05-07
| | | | | | It's a private field, no reason to have it exposed in a public header. Signed-off-by: James Almer <jamrial@gmail.com>
* avformat: move AVStream.{parser,need_parsing} to AVStreamInternalJames Almer2021-05-07
| | | | | | | Those are private fields, no reason to have them exposed in a public header. Signed-off-by: James Almer <jamrial@gmail.com>
* avformat: move AVStream.probe_packets to AVStreamInternalJames Almer2021-05-07
| | | | | | It's a private fields, no reason to have it exposed in a public header. Signed-off-by: James Almer <jamrial@gmail.com>
* avformat: move AVStream.last-IP_{pts,duration} to AVStreamInternalJames Almer2021-05-07
| | | | | | | Those are private fields, no reason to have them exposed in a public header. Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/zmbvenc: Mark encoder as init-threadsafeAndreas Rheinhardt2021-05-07
| | | | | | | | Initializing zlib in the way we do here is threadsafe, see https://www.zlib.net/zlib_faq.html#faq21 Reviewed-by: Tomas Härdin <tjoppen@acc.umu.se> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>