summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* doc/protocols: Remove third party serverDerek Buitenhuis2022-12-12
| | | | | | | | | | | | We do not endorse or recommend specific third party servers or companies that users' data will be funneled through. It is also incorrectly describing how FFmpeg currently works. Should have been part of 412922cc6fa790897ef6bb2be5d6f9a5f030754d but was missed. Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* avcodec/libdav1d: reindent after the previous commitJames Almer2022-12-12
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/libdav1d: set frame props from the reordered packetJames Almer2022-12-12
| | | | | | | Attach the AVPacket instead of only a few values to the corresponding Dav1dData struct and use it to set all output frame props. Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/libdav1d: don't use AVCodecInternal.in_pktJames Almer2022-12-12
| | | | | | Allocate an AVPacket instead, which will be used in the following commit. Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/decode: reindent after the previous commitJames Almer2022-12-12
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/decode: add a function to set frame props from a user provided packetJames Almer2022-12-12
| | | | | | | It will be useful for decoders that don't rely on last_pkt_props to set frame props. Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/mpeg4videodec: duplicate the last decoded frame when the last coded ↵James Almer2022-12-12
| | | | | | | | frame was skipped This ensures the video stream duration is not lost after decoding. Signed-off-by: James Almer <jamrial@gmail.com>
* avfilter/afir_template: avoid indirect accessing nb_partitions valuePaul B Mahol2022-12-12
|
* avfilter/afir_template: skip wet gain if its 1Paul B Mahol2022-12-12
|
* avfilter/af_afir: reduce output gain with default parametersPaul B Mahol2022-12-12
| | | | | It was unreasonably high. Also change scaling to reduce rare quantization errors.
* doc/filters: add more advanced and useful afir examplePaul B Mahol2022-12-11
|
* avfilter/af_afir: improve output quality with small minpPaul B Mahol2022-12-11
| | | | | Remove direct convolution implementation as its give worse results. Simplifies code too.
* avcodec/mjpegdec: Move smv_process_frame() to other SMV stuffAndreas Rheinhardt2022-12-10
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/mjpegdec: Only use receive_frame for SMVJPEGAndreas Rheinhardt2022-12-10
| | | | | | | | | | | | | | | | | Only one codec using mjpegdec.c actually creates multiple frames from a single packet, namely SMVJPEG. The other can use the ordinary decode callback just fine. This e.g. has the advantage of confining the special SP5X/AMV code to sp5xdec.c. This reverts most of commit e9a2a8777317d91af658f774c68442ac4aa726ec; of course it is not a simple revert: Way too much has changed; furthermore, outright reverting the sp5xdec.c changes would readd a stack packet to sp5x_decode_frame() which is not desired. In order to avoid this without modifying the given AVPacket, a variant of ff_mjpeg_decode_frame() with explicit buf and size parameters has been added. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/mjpegdec: Avoid checks whose results are known at compile-timeAndreas Rheinhardt2022-12-10
| | | | | | | Namely the result of the check for smv_next_frame > 0 in smv_process_frame(). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/mjpegdec: Move special SMVJPEG-code to SMVJPEG-only functionAndreas Rheinhardt2022-12-10
| | | | | | | This automatically avoids runtime checks for whether the decoder is SMVJPEG. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/mjpegdec: Restrict AVID MJPEG to non-SMVJPEGAndreas Rheinhardt2022-12-10
| | | | | | | | | | | | AVID content is not supposed to be SMVJPEG; given that both these codecs involve manipulating image dimensions and cropping dimensions, it makes sense to restrict the AVID codepaths to non-SMVJPEG codecs in order not to have to think about what if SMVJPEG happens to have a codec tag indicating AVID. Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avfilter/drawutils: rgb48/bgr48 is supportedPaul B Mahol2022-12-10
|
* avcodec/nvdec: make explicit copy of frames unless user requested otherwiseTimo Rothenpieler2022-12-10
|
* lavc: add new unsafe_output hwaccel_flagTimo Rothenpieler2022-12-10
|
* lavu/pixdesc: handle xv30be in av_[read|write]_image_linePhilip Langdale2022-12-08
| | | | | | | | | | | | | | | | | | | | xv30be is an obnoxious format that I shouldn't have included in the first place. xv30 packs 3 10bit channels into 32bits and while our byte-oriented logic can handle Little Endian correctly, it cannot handle Big Endian. To avoid that, I marked xv30be as a bitstream format, but while that didn't produce FATE errors, it turns out that the existing read/write code silently produces incorrect results, which can be revealed via ubsan. In all likelyhood, the correct fix here is to remove the format. As this format is only used by Intel vaapi, it's only going to show up in LE form, so we could just drop the BE version. But I don't want to deal with creating a hole in the pixfmt list and all the weirdness that comes from that. Instead, I decided to write the correct read/write code for it. And that code isn't too bad, as long as it's specialised for this format, as the channels are all bit-aligned inside a 32bit word.
* avcodec/mjpegdec: check that component linesize is always validPaul B Mahol2022-12-08
|
* avcodec/vqcdec: Check width & 15Michael Niedermayer2022-12-08
| | | | | | | | | | | | Various parts of the code assume that width can be divided by various powers of 2 without rounding Fixes: out of array access Fixes: 53623/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_VQC_fuzzer-6209269924233216 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Reviewed-by: Peter Ross <pross@xvid.org> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/mediacodecenc: configure profileZhao Zhili2022-12-08
| | | | Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* avcodec/mediacodec_wrapper: use hardcoded value of profiles from MediaCodecInfoZhao Zhili2022-12-08
| | | | | | | | Those are static const values and documented at https://developer.android.com/reference/android/media/MediaCodecInfo.CodecProfileLevel No runtime query is needed. Now the method can be used without JVM. Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* avcodec/mediacodecenc: add option to select codec by nameZhao Zhili2022-12-08
| | | | Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* avcodec/mediacodecenc: check missing SurfaceZhao Zhili2022-12-08
| | | | | | It's an invalid combination of Java MediaCodec with ANativeWindow. Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* avcodec/mediacodec: fix missing crop info when use NDK MediaCodecZhao Zhili2022-12-08
| | | | Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* avfilter: add corr video filterPaul B Mahol2022-12-08
|
* avcodec/nvenc: fix vbv buffer size in cq modeTimo Rothenpieler2022-12-08
| | | | | The CQ calculation gets thrown off and behaves very nonsensical if it isn't set to 0.
* lavu/hwcontext_vaapi: Skip 'vgem' driverBrian Norris2022-12-08
| | | | | | | | | | | | | | | | | | | There can be more than one available render node, and it's not guaranteed the first node we come across is the correct one. In particular, 'vgem' devices are common, and are never VAAPI-enabled and thus not valid here. We have a 'kernel_driver' arg already for specifying a single driver we *do* want, but it doesn't support a negation, nor a list. It's easier just to automatically skip 'vgem' anyway, to avoid foisting this burden on users. This has precedent in libva-utils already: bfb6b98ed62a exclude vgem node and invalid drm node in vainfo https://github.com/intel/libva-utils/commit/bfb6b98ed62ac14a840ba62639ab902a23912258 Signed-off-by: Brian Norris <briannorris@chromium.org>
* lavfi/vf_scale_qsv: remove PI, PHI and EHaihao Xiang2022-12-08
| | | | | | | | | PI, PHI and E are defined in libavutil/eval.c, and user may use these constants for scale_qsv filter, so we needn't re-define these variables in vf_scale_qsv.c Reviewed-by: Gyan Doshi <ffmpeg@gyani.pro> Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
* lavfi/vf_vpp_qsv: accept P010 input in system memoryHaihao Xiang2022-12-08
| | | | Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
* lavfi/vf_vpp_qsv: allow user to set scale_mode with constantsHaihao Xiang2022-12-08
| | | | | | | $ ffmpeg -f lavfi -i testsrc -vf "format=nv12,vpp_qsv=scale_mode=hq" -f null - Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
* lavfi/vf_vpp_qsv: use macros for extra mfx parameterHaihao Xiang2022-12-08
| | | | | | | Make it easy to add new extra mfx parameter buffer. No functional change. Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
* libavfilter/qsvvpp: Change the alignment to meet the requirement of YUV420P ↵Wenbin Chen2022-12-08
| | | | | | | | | | | | | | | | | | | | format When process yuv420 frames, FFmpeg uses same alignment on Y/U/V planes. VPL and MSDK use Y plane's pitch / 2 as U/V planes's pitch, which makes U/V planes 16-bytes aligned. We need to set a separate alignment to meet runtime's behaviour. Now alignment is changed to 16 so that the linesizes of U/V planes meet the requirment of VPL/MSDK. Add get_buffer.video callback to qsv filters to change the default get_buffer behaviour. Now the commandline works fine: ffmpeg -f rawvideo -pix_fmt yuv420p -s:v 3082x1884 \ -i ./3082x1884.yuv -vf 'vpp_qsv=w=2466:h=1508' -f rawvideo \ -pix_fmt yuv420p 2466_1508.yuv Signed-off-by: Wenbin Chen <wenbin.chen@intel.com>
* doc/filters.texi: add documentation for the ts_sync_mode framesync optionJames Almer2022-12-07
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/pthread_frame.c: keep the last_pkt_props from worker threads in sync ↵James Almer2022-12-07
| | | | | | | | | | | | with the user context Making it point to the input packet results in different behavior during flush, where its contents will be that of an empty packet instead of containing the props from the last input packet fed to the decoder. After this change, decoding with more than one thread will shield the same results as using a single thread. Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/decode: don't set last_pkt_props->sizeJames Almer2022-12-07
| | | | | | | | | Use the opaque field instead to keep this value. No functional change, but removes the hack that made the packet technically invalid, allowing the safe usage of functions like av_packet_ref() on it if required. Signed-off-by: James Almer <jamrial@gmail.com>
* Revert "avcodec/decode: use a packet list to store packet properties"James Almer2022-12-07
| | | | | | | | | | | | | | The idea behind last_pkt_props was to store the properties of the last packet fed to the decoder. Any sort of queueing required by CODEC_CAP_DELAY decoders that consume several packets before they start outputting frames should be done by the decoders in question. An example of this is libdav1d. This is required for the following commits that will fix last_pkt_props in frame threading scenarios, as well as maintain its contents during flush. This revers commit 022a12b306ab2096e6ac9fc9b149828a849d65b2. Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/wmadec: clear pts when returning a frame during flushJames Almer2022-12-07
| | | | | | | This will be needed for the following commit, after which ff_get_buffer() will stop setting frame->pts to AV_NOPTS_VALUE. Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/binkaudio: clear pts when returning more than one frame per input packetJames Almer2022-12-07
| | | | | | | This will be needed for a following commit, after which ff_get_buffer() will stop setting frame->pts to AV_NOPTS_VALUE. Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/rawdec: remove redundant code setting frame propertiesJames Almer2022-12-07
| | | | | | These same values were already set in the ff_decode_frame_props() call above. Signed-off-by: James Almer <jamrial@gmail.com>
* doc/filters: link framesync options for msad/identity/vifPaul B Mahol2022-12-07
|
* avfilter/vf_vif: add missing framesync optionsPaul B Mahol2022-12-07
|
* avutil/tests/dict: Explicitly test av_dict_iterate()Andreas Rheinhardt2022-12-07
| | | | | | | | This commit tests it in a way that automatically checks that using av_dict_iterate() is equivalent to using av_dict_get() with key "" and AV_DICT_IGNORE_SUFFIX. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avutil: use av_dict_iterateMarvin Scholz2022-12-07
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avfilter/vf_chromanr: split inner loopsPaul B Mahol2022-12-07
| | | | Makes overall faster processing in default case.
* avfilter/avf_showvolume: make rms meter actually get rms of whole framePaul B Mahol2022-12-06
|
* avcodec/nvenc: notify users about rc_lookahead clippingTimo Rothenpieler2022-12-05
|