No description
Find a file
Andreas Rheinhardt cbe6ef1031 avcodec/vc1dec: Split VC-1 decoders from msmpeg4
The only msmpeg4 code that is ever executed by the VC-1 based
decoders is ff_msmpeg4_decode_init() and what is directly
reachable from it. This is:
a) A call to av_image_check_size(), then ff_h263_decode_init(),
b) followed by setting [yc]_dc_scale_table and initializing
scantable/permutations.
c) Afterwards, some static tables are initialized.
d) Finally, slice_height is set.

The replacement for ff_msmpeg4_decode_init() performs a)
just like now; it also sets [yc]_dc_scale_table,
but it only initializes inter_scantable and intra_scantable
and not permutated_intra_[hv]_scantable: The latter are only
used inside decode_mb callbacks which are only called
in ff_h263_decode_frame() which is unused for VC-1.*

The static tables initialized in c) are not used at all by
VC-1 (the ones that are used have been factored out in
previous commits); this avoids touching 327KiB of .bss.

slice_height is also not used by the VC-1 decoder (setting
it in ff_msmpeg4_decode_init() is probably redundant after
b34397b4cd).

*: It follows from this that the VC-1 decoder is not really
based upon the H.263 decoder either; changing this will
be done in a future commit.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-11-06 17:41:26 +01:00
compat compat/cuda: switch from powf to __powf intrinsic 2022-09-03 20:27:34 +02:00
doc Revert "lavc: deprecate avcodec_dct, av_fft, av_dct, av_rdft and av_mdct" 2022-11-06 12:15:56 -03:00
ffbuild configure: probe RISC-V Vector extension 2022-09-27 13:19:52 +02:00
fftools ffmpeg: fix implementation of updated input start time 2022-11-03 14:38:42 +05:30
libavcodec avcodec/vc1dec: Split VC-1 decoders from msmpeg4 2022-11-06 17:41:26 +01:00
libavdevice avdevice/avdevice: Fix mismatching argument name 2022-10-17 09:51:47 +02:00
libavfilter lavfi/vf_fieldmatch: keep fields as-is if not matched properly 2022-11-05 11:50:36 +01:00
libavformat avformat/replaygain: avoid undefined / negative abs 2022-11-04 22:44:16 +01:00
libavutil avutil/dict: Improve documentation 2022-11-06 08:26:50 +01:00
libpostproc configure: always enable gnu_windres if available 2022-08-13 14:42:36 +02:00
libswresample swresample/rematrix: support mixing top front left/right channels 2022-11-03 19:39:52 -03:00
libswscale swscale/output: Bias 16bps output calculations to improve non overflowing range for GBRP16/GBRPF32 2022-11-04 22:44:16 +01:00
presets
tests imc: convert to lavu/tx, remove NIH iMDCT and replace with a standard one 2022-11-06 14:39:42 +01:00
tools tools/target_dec_fuzzer: Adjust threshold for FFV1 2022-10-20 21:42:21 +02:00
.gitattributes fate: add SCC test 2017-01-27 17:06:42 +01:00
.gitignore gitignore: add config_components.h 2022-03-17 18:35:41 -03:00
.mailmap mailmap: stop git lying about who I commit things as 2022-11-04 19:37:46 +01:00
.travis.yml Merge commit '899ee03088' 2019-03-14 15:53:16 -03:00
Changelog avfilter: add backgroundkey video filter 2022-11-05 10:52:39 +01:00
configure avcodec/vc1dec: Split VC-1 decoders from msmpeg4 2022-11-06 17:41:26 +01:00
CONTRIBUTING.md Add CONTRIBUTING.md 2016-09-18 10:02:13 +01:00
COPYING.GPLv2
COPYING.GPLv3
COPYING.LGPLv2.1
COPYING.LGPLv3
CREDITS
INSTALL.md INSTALL.md: Fix Markdown formatting 2019-01-31 10:29:16 -09:00
LICENSE.md avfilter/vf_geq: Relicense to LGPL 2019-12-28 11:20:48 +01:00
MAINTAINERS libavcodec: remove mdct15 2022-11-06 14:39:41 +01:00
Makefile configure: probe RISC-V Vector extension 2022-09-27 13:19:52 +02:00
README.md README: fix typo and description of libavfilter 2021-10-08 09:44:34 +05:30
RELEASE RELEASE: update after 5.1 branch 2022-07-13 00:31:42 +02:00

FFmpeg README

FFmpeg is a collection of libraries and tools to process multimedia content such as audio, video, subtitles and related metadata.

Libraries

  • libavcodec provides implementation of a wider range of codecs.
  • libavformat implements streaming protocols, container formats and basic I/O access.
  • libavutil includes hashers, decompressors and miscellaneous utility functions.
  • libavfilter provides means to alter decoded audio and video through a directed graph of connected filters.
  • libavdevice provides an abstraction to access capture and playback devices.
  • libswresample implements audio mixing and resampling routines.
  • libswscale implements color conversion and scaling routines.

Tools

  • ffmpeg is a command line toolbox to manipulate, convert and stream multimedia content.
  • ffplay is a minimalistic multimedia player.
  • ffprobe is a simple analysis tool to inspect multimedia content.
  • Additional small tools such as aviocat, ismindex and qt-faststart.

Documentation

The offline documentation is available in the doc/ directory.

The online documentation is available in the main website and in the wiki.

Examples

Coding examples are available in the doc/examples directory.

License

FFmpeg codebase is mainly LGPL-licensed with optional components licensed under GPL. Please refer to the LICENSE file for detailed information.

Contributing

Patches should be submitted to the ffmpeg-devel mailing list using git format-patch or git send-email. Github pull requests should be avoided because they are not part of our review process and will be ignored.