FFmpeg git repo
Go to file
Niklas Haas 45f5f4d3da avcodec/dovi_rpudec: implement limited DM decompression
This implements the limited DM metadata compression scheme described in
chapter 9 of the dolby vision bitstream specification.

The spec is a bit unclear about how to handle the presence of static
metadata inside compressed frames; in that it doesn't explicitly forbid
an encoder from repeating redundant metadata. In theory, we would need
to detect this case and then strip the corresponding duplicate metadata
from the existing set of static metadata. However, this is difficult to
implement - esspecially for the case of metadata blocks which may be
internally repeated (e.g. level 10).

That said, the spec states outright that static metadata should be
constant throughout the entire sequence, so a sane bitstream should not
have any static metadata values changing from one frame to the next (at
least up to a keyframe boundary), and therefore they should never be
present in compressed frames. As a consequence, it makes sense to treat
this as an error state regardless. (Ignoring them by default, or
erroring if either AV_EF_EXPLODE or AV_EF_AGGRESSIVE are set)

I was not able to find such samples in the wild (outside of artificially
produced test cases for this exact scenario), so I don't think we need
to worry about it until somebody produces one.
2024-08-16 11:48:02 +02:00
compat
doc avcodec/bsf/dovi_rpu: add new bitstream filter 2024-08-16 11:48:02 +02:00
ffbuild
fftools
libavcodec avcodec/dovi_rpudec: implement limited DM decompression 2024-08-16 11:48:02 +02:00
libavdevice libavdevice/gdigrab: change hwnd tail check fail logic to !=null 2024-08-15 20:10:33 +08:00
libavfilter avfilter/vf_zscale: remove unused fields 2024-08-16 11:43:37 +02:00
libavformat avformat/iamf_parse: ignore Audio Elements with an unsupported type 2024-08-14 23:55:40 -03:00
libavutil avutil/dovi_meta: document static vs dynamic ext blocks 2024-08-16 11:48:02 +02:00
libpostproc
libswresample
libswscale swscale/options: relax src/dst_h/v_chr_pos value range 2024-08-16 11:43:37 +02:00
presets
tests fate/scalechroma: switch to standard chroma location 2024-08-16 11:43:37 +02:00
tools
.gitattributes
.gitignore
.mailmap
Changelog
configure avcodec/bsf/dovi_rpu: add new bitstream filter 2024-08-16 11:48:02 +02:00
CONTRIBUTING.md
COPYING.GPLv2
COPYING.GPLv3
COPYING.LGPLv2.1
COPYING.LGPLv3
CREDITS
INSTALL.md
LICENSE.md
MAINTAINERS
Makefile
README.md
RELEASE

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.