summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* avcodec/defs: Add AV_PROFILE_* defines, deprecate FF_PROFILE_* definesAndreas Rheinhardt2023-09-07
| | | | | | | | | These defines are also used in other contexts than just AVCodecContext ones, e.g. in libavformat. Furthermore, given that these defines are public, the AV-prefix is the right one, so deprecate (and not just move) the FF-macros. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/avformat: Avoid including codec.h, frame.hAndreas Rheinhardt2023-09-07
| | | | | | | | | | | | | | | | AVCodec is only ever used as an incomplete type (i.e. via a pointer to an AVCodec) in avformat.h and it is not really part of the core of avformat.h or libavformat; almost none of our internal users make use of it (and none make use of hwcontext.h, which is implicitly included). So switch to use struct AVCodec, but continue to include codec.h for external users for compatibility. Also, do the same for AVFrame and frame.h, which is implicitly included by codec.h (via lavu/hwcontext.h). Also, remove an unnecessary inclusion of <time.h>. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/matroskadec: Factor parsing content encodings outAndreas Rheinhardt2023-09-07
| | | | | | Namely, out of matroska_parse_tracks(). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/matroskadec: Move WEBVTT code to mkv_parse_subtitle_codec()Andreas Rheinhardt2023-09-07
| | | | | | | and also perform the remainder of the subtitle parsing directly after mkv_parse_subtitle_codec(). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/matroskdec: Reindent after the previous commitAndreas Rheinhardt2023-09-07
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/matroskadec: Factor generic parsing of audio tracks outAndreas Rheinhardt2023-09-07
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/matroskadec: Reindent after the previous commitAndreas Rheinhardt2023-09-07
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/matroskadec: Factor generic parsing of video tracks outAndreas Rheinhardt2023-09-07
| | | | | | Out of matroska_parse_tracks(), that is. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/matroskadec: Factor parsing subtitle codecs outAndreas Rheinhardt2023-09-07
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/matroskadec: Use av_dict_set_int() where appropriateAndreas Rheinhardt2023-09-07
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/matroskadec: Avoid clobbering CodecPrivate sizeAndreas Rheinhardt2023-09-07
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/matroskadec: Move reading color space to a better placeAndreas Rheinhardt2023-09-07
| | | | | | | Namely to a place after the AVStream has already been created, so that it can be directly attached to it. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/matroskadec: Reindent after the previous commitAndreas Rheinhardt2023-09-07
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/matroskadec: Factor video parsing out of matroska_parse_tracks()Andreas Rheinhardt2023-09-07
| | | | | | | More exactly, factor codec-specific video parsing out of matroska_parse_tracks(). This is intended to improve readability. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/matroskadec: Reindent after the previous commitAndreas Rheinhardt2023-09-07
| | | | | | Also fix a variable shadowing. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/matroskadec: Remove redundant checksAndreas Rheinhardt2023-09-07
| | | | | | | | If the size of the data of an EbmlBin is > 0, its data is always present, as ebml_read_binary() always leaves the buffer in a consistent state (even on error). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/matroskdec: Factor audio parsing out of matroska_parse_tracks()Andreas Rheinhardt2023-09-07
| | | | | | | More exactly, factor codec-specific audio parsing out of matroska_parse_tracks(). This is intended to improve readability. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/matroskadec: Set AVCodecParameters earlierAndreas Rheinhardt2023-09-07
| | | | | | This is in preparation for future commits. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/matroskadec: Redo handling extradata allocationAndreas Rheinhardt2023-09-07
| | | | | | | | | | | | | | | | | | | Up until now, matroska_parse_tracks() has two main ways to set AVCodecParameters.extradata: A generic way via CodecPrivate (possibly with an offset) and by allocating a buffer manually; the pointer to this buffer is stored in a stack pointer. In particular, the latter method is problematic, as the buffer needs to be freed manually in case of error (currently there are no error conditions between the place where it is set to AVCodecParameters.extradata). Most of these buffers are very small (<= 22B), so replace the pointer to an allocated buffer with a stack buffer and set the extradata directly for the one place where the buffer may not be small. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/matroskadec: Use dedicated pointer for access to codecparAndreas Rheinhardt2023-09-07
| | | | | | Shortens code and improves readability. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/matroskadec: Set several stream parameters earlierAndreas Rheinhardt2023-09-07
| | | | | | Don't do it in between parsing and setting extradata. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* fate/matroska: Add test for remuxing non-rotation displaymatrixAndreas Rheinhardt2023-09-07
| | | | | | | This provides coverage for the case in which the displaymatrix is ignored. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/rv34_parser: Remove unused ParseContextAndreas Rheinhardt2023-09-07
| | | | | | This parser does not do frame packetization at all. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/rv34_parser: Merge RV30 and RV40 parsersAndreas Rheinhardt2023-09-07
| | | | | | | They do mostly the same. Reviewed-by: James Almer <jamrial@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/x86/hpeldsp_vp3: Merge into hpeldspAndreas Rheinhardt2023-09-07
| | | | | | | | | | | | | | | | | | | | | | | Once upon a time, 413abbe16465a7b49472ac110e42939e853e24a1 added versions of some put_no_rnd_pixels functions for use in VP3 and Theora (with an explicit check so that they are only used for VP3 and Theora). When this was moved to hpeldsp (from dsputil) in 3ced55d51c2e65b37e50d500dff88bcd80e01b9c, the check was replaced by a check for the bitexact flag (and a CONFIG_VP3_DECODER compile-time check), so that these functions were now used for other codecs as well. Later commit 1dfc3cf89d0eb026af28be46294b85d79499ffb5 split off the "VP3-specific bits into a separate file", yet these bits were not really VP3-specific bits at all any more. (The error was repeated in commit 0a39c9ac0bfd7345fe676b4e2707d9cec3cbb553.) This commit has not been reverted, because this would make future changes from Libav (from where it originated) harder, yet Libav is no more, so this commit effectively reverts 1dfc3cf89d0eb026af28be46294b85d79499ffb5. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/utvideodec: add vlc multi supportChristophe Gisquet2023-09-07
| | | | Faster decoding, by average 50% faster overall.
* avcodec/magicyuv: add vlc multi supportPaul B Mahol2023-09-07
| | | | | Gives nice speed boost, depending on encoded content it goes from 30% to 60% faster.
* avcodec: add multi vlc readerPaul B Mahol2023-09-07
| | | | | | Heavily based and inspired by Christophe's cache branches. Co-Authored-by: Christophe Gisquet
* avcodec/qsvenc: add missing header includeJames Almer2023-09-06
| | | | | | | Needed for ff_encode_add_cpb_side_data(). Fixes regression since 0231df505dc70ac435f2b437d1995ebabd70a66a. Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/av1dec: don't set aspect ratio when it's not yet knownJames Almer2023-09-06
| | | | | | | | Makes the output of the native decoder consistent with external decoders like libdav1d with fate-enhanced-flv-av1. Reviewed-by: Zhao Zhili <quinkblack@foxmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/rpzaenc: fix assertions with very small width/heightPaul B Mahol2023-09-06
|
* avcodec/utils: move ff_add_cpb_side_data() to encoder codeJames Almer2023-09-06
| | | | | | It's only used by encoders, so move it to prevent wrong usage. Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/mpeg12dec: stop propagating AVCPBProperties side dataJames Almer2023-09-06
| | | | | | It's already exported using the relevant AVCodecContext fields. Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/demux: propagate the internal decoder's bitrate propertiesJames Almer2023-09-06
| | | | | | | Muxers may access this information through cpb properties within the stream's side data. Signed-off-by: James Almer <jamrial@gmail.com>
* Revert "avcodec/mpeg12dec: Do not alter avctx->rc_buffer_size"James Almer2023-09-06
| | | | | | | This reverts commit eb88ccb92e05018b1060cf8126b30eeeff551d3b. AVCodecContext fields are the proper place for a decoder to export such values. This change is in preparation for the following commits.
* avcodec/yuv4enc: do not read past end of input in case of odd heightPaul B Mahol2023-09-06
|
* fate: add OSQ testPaul B Mahol2023-09-06
|
* lavu/avstring: fix typo in av_strireplace function doxyStefano Sabatini2023-09-06
|
* lavc/avcodec.h: fix typos in AVCodecContext.pkt_timebase descriptionStefano Sabatini2023-09-06
|
* lavc/libx264: do not unconditionally set x4->params.analyse.b_fast_pskipStefano Sabatini2023-09-06
| | | | Fix output change regression introduced in 418c954e318.
* avcodec/hcadec: support decoding with extradata provided in first packetPaul B Mahol2023-09-05
|
* avcodec/adxdec: add support for 6 channelsPaul B Mahol2023-09-05
|
* Changelog: Add Support hevc,vp9,av1 codec fourcclist in enhanced rtmp protocolSteven Liu2023-09-05
| | | | | Reviewed-by: Jean-Baptiste Kempf <jb@videolan.org> Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
* fate/enhanced-flv-vp9: add tests reference dataSteven Liu2023-09-05
|
* avformat/rtmpproto: support enhanced rtmpSteven Liu2023-09-05
| | | | | | | | add option named rtmp_enhanced_codec, it would support hvc1,av01,vp09 now, the fourcc is using Array of strings. Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
* avformat/rtmppkt: add ff_amf_write_array for writeSteven Liu2023-09-05
| | | | Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
* tests/fate/flvenc: add av1 in enhanced flv test caseSteven Liu2023-09-05
| | | | Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
* tests/fate/flvenc: add vp9 in enhanced flv test caseSteven Liu2023-09-05
| | | | Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
* avcodec/osq: fix 20bit decoding and remove invalid modesPaul B Mahol2023-09-05
|
* avcodec/mpeg4videodec: more unsigned in amv computationMichael Niedermayer2023-09-04
| | | | | | | | Fixes: signed integer overflow: -2147483648 + -1048576 cannot be represented in type 'int' Fixes: 59365/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_MPEG4_fuzzer-642654923954585 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>