- 19 Mar, 2024 18 commits
-
-
Mark Thompson authored
Since e0da916b the ffmpeg utility has held multiple frames output by the decoder in internal queues without telling the decoder that it is going to do so. When the decoder has a fixed-size pool of frames (common in some hardware APIs where the output frames must be stored as an array texture) this could lead to the pool being exhausted and the decoder getting stuck. Fix this by telling the decoder to allocate additional frames according to the queue size.
-
Marton Balint authored
Regression since 0995e1f1. Signed-off-by:
Marton Balint <cus@passwd.hu>
-
Stefano Sabatini authored
-
Stefano Sabatini authored
-
Stefano Sabatini authored
-
Marth64 authored
In MPEG-2 user data, there can be different types of Closed Captions formats embedded (A53, SCTE-20, or DVD). The current behavior of the CC extraction code in the MPEG-2 decoder is to not be aware of multiple formats if multiple exist, therefore allowing one format to overwrite the other during the extraction process since the CC extraction shares one output buffer for the normalized bytes. This causes sources that have two CC formats to produce flawed output. There exist real-world samples which contain both A53 and SCTE-20 captions in the same MPEG-2 stream, and that manifest this problem. Example of symptom: THANK YOU (expected) --> THTHANANK K YOYOUU (actual) The solution is to pick only the first CC substream observed with valid bytes, and ignore the other types. Additionally, provide an option for users to manually "force" a type in the event that this matters for a particular source. Signed-off-by:
Marth64 <marth64@proxyid.net>
-
James Almer authored
Signed-off-by:
James Almer <jamrial@gmail.com>
-
James Almer authored
Signed-off-by:
James Almer <jamrial@gmail.com>
-
James Almer authored
Signed-off-by:
James Almer <jamrial@gmail.com>
-
James Almer authored
Signed-off-by:
James Almer <jamrial@gmail.com>
-
Wenbin Chen authored
PyTorch is an open source machine learning framework that accelerates the path from research prototyping to production deployment. Official website: https://pytorch.org/. We call the C++ library of PyTorch as LibTorch, the same below. To build FFmpeg with LibTorch, please take following steps as reference: 1. download LibTorch C++ library in https://pytorch.org/get-started/locally/, please select C++/Java for language, and other options as your need. Please download cxx11 ABI version: (libtorch-cxx11-abi-shared-with-deps-*.zip). 2. unzip the file to your own dir, with command unzip libtorch-shared-with-deps-latest.zip -d your_dir 3. export libtorch_root/libtorch/include and libtorch_root/libtorch/include/torch/csrc/api/include to $PATH export libtorch_root/libtorch/lib/ to $LD_LIBRARY_PATH 4. config FFmpeg with ../configure --enable-libtorch \ --extra-cflag=-I/libtorch_root/libtorch/include \ --extra-cflag=-I/libtorch_root/libtorch/include/torch/csrc/api/include \ --extra-ldflags=-L/libtorch_root/libtorch/lib/ 5. make To run FFmpeg DNN inference with LibTorch backend: ./ffmpeg -i input.jpg -vf \ dnn_processing=dnn_backend=torch:model=LibTorch_model.pt -y output.jpg The LibTorch_model.pt can be generated by Python with torch.jit.script() api. https://pytorch.org/tutorials/advanced/cpp_export.html. This is pytorch official guide about how to convert and load torchscript model. Please note, torch.jit.trace() is not recommanded, since it does not support ambiguous input size. Signed-off-by:
Ting Fu <ting.fu@intel.com> Signed-off-by:
Wenbin Chen <wenbin.chen@intel.com> Reviewed-by:
Guo Yejun <yejun.guo@intel.com>
-
Michael Niedermayer authored
Fixes: timeout Fixes: 66444/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_IFF_ILBM_fuzzer-4812862400823296 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpegSigned-off-by:
Michael Niedermayer <michael@niedermayer.cc>
-
Michael Niedermayer authored
needed for FFInputFormat Reviewed-by:
Andreas Rheinhardt <andreas.rheinhardt@outlook.com> Signed-off-by:
Michael Niedermayer <michael@niedermayer.cc>
-
Nicolas Gaullier authored
Signed-off-by:
Nicolas Gaullier <nicolas.gaullier@cji.paris> Signed-off-by:
Michael Niedermayer <michael@niedermayer.cc>
-
Andreas Rheinhardt authored
Signed-off-by:
Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
Andreas Rheinhardt authored
Signed-off-by:
Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
Andreas Rheinhardt authored
Signed-off-by:
Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
Haihao Xiang authored
Otherwise the derived device and the source device might have different PCI ID in a multiple-device system. Reviewed-by:
Lynne <dev@lynne.ee> Signed-off-by:
Haihao Xiang <haihao.xiang@intel.com>
-
- 18 Mar, 2024 22 commits
-
-
Stefano Sabatini authored
-
Stefano Sabatini authored
-
Stefano Sabatini authored
-
Stefano Sabatini authored
-
Timo Rothenpieler authored
-
Timo Rothenpieler authored
A lot of modern stuff straight up fails on the old 1.0 factory, which is masked by the fact that it's only used when an explicit adapter is specified.
-
Timo Rothenpieler authored
At least on latest Win 11 and Visual Studio 2022, that DLL does not exist anymore and can't be installed via any of the usual means. However, debugging works just fine regardless, so this check makes debugging impossible. D3D11CreateDevice will fail anyway if debugging is not supported, so let's rely on that instead.
-
Andreas Rheinhardt authored
Unbreaks the lavf-fate-hevc.flv FATE test. Signed-off-by:
Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
Gyan Doshi authored
-
Steven Liu authored
Reviewed-by:
Jean-Baptiste Kempf <jb@videolan.org> Signed-off-by:
Steven Liu <lq@chinaffmpeg.org>
-
Zhu Pengfei authored
Signed-off-by:
Zhu Pengfei <411294962@qq.com> Signed-off-by:
Steven Liu <lq@chinaffmpeg.org>
-
Zhu Pengfei authored
Signed-off-by:
Zhu Pengfei <411294962@qq.com> Signed-off-by:
Steven Liu <lq@chinaffmpeg.org>
-
Zhu Pengfei authored
Signed-off-by:
Zhu Pengfei <411294962@qq.com> Signed-off-by:
Steven Liu <lq@chinaffmpeg.org>
-
Fei Wang authored
Signed-off-by:
Fei Wang <fei.w.wang@intel.com>
-
Fei Wang authored
Signed-off-by:
Fei Wang <fei.w.wang@intel.com>
-
Haihao Xiang authored
This may reduce the number of internal threads when using hwupload or hwdownload filter. Signed-off-by:
Haihao Xiang <haihao.xiang@intel.com>
-
Haihao Xiang authored
When all cached frames are drained, the output mfxSyncPoint pointer is NULL and MFX_ERR_MORE_DATA is returned, hence needn't print warning for this expected behavior, otherwise the user might think the output from qsv decoders are wrong. Signed-off-by:
Haihao Xiang <haihao.xiang@intel.com>
-
Andreas Rheinhardt authored
Signed-off-by:
Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
Andreas Rheinhardt authored
Signed-off-by:
Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
Andreas Rheinhardt authored
The latter is not supported by MSVC 19.27. Signed-off-by:
Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
Andreas Rheinhardt authored
ff_aac_coder_init_mips() modifies a static const structure of function pointers. This will crash if the binary uses relro and is a data race in any case. Furthermore it points to a maintainability issue: The AACCoefficientsEncoder structures have been constified in commit fd9212f2, a Libav commit merged in 318778de. Libav did not have the MIPS-specific AAC code and so this was fine for them; yet FFmpeg had them, but this was not recognized. Commit 75a099fc points to another maintainability issue: Contrary to ordinary DSP code, this code here is way more complex and needs to be constantly kept in sync with the ordinary code which it mimicks and replaces. Said commit is the only commit actually changing aaccoder.c in the last few years and the same change has not been performed for the MIPS clone; before that, it even happened several times that the mips code was broken due to changes of the generic code (see commits 97437bd1 and de262d01 or 860dbe02 or 933309a6 or b65ffa31). This might even lead to scenarios where someone changing non-dsp aacenc code would have to modify mips inline asm in order to keep them in sync. This is obviously a significant burden (if the AAC encoder were actively developed). Finally, the code does not even compile here due to errors like "Error: float register should be even, was 1". Reviewed-by:
Lynne <dev@lynne.ee> Reviewed-by:
Jean-Baptiste Kempf <jb@videolan.org> Signed-off-by:
Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
Andreas Rheinhardt authored
These strings are so short (longest takes 11B) that using pointers is wasteful. Avoiding them also moves hashdesc into .rodata (from .data.rel.ro). Signed-off-by:
Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-