FFmpeg git repo
Go to file
Andreas Rheinhardt a9709b3c83 avcodec/mpegvideo_dec, mpeg12dec: Move MPEG1/2 code to mpeg12dec.c
Up until now, ff_mpv_frame_start() offsets the data of the current
picture and doubles the linesizes of all pictures if the current
picture is field-based so that data and linesize allow to address
the current field only.

This is done based upon the current picture_structure value.
Only two mpegvideo-based decoders ever set this field: mpeg1/2
and VC-1; but the latter only does it after ff_mpv_frame_start()
(when using hardware-acceleration and in order to signal it to
the DXVA2 hwaccel) in which case no offset is applied in
ff_mpv_frame_start(). So only one decoder actually wants this
offset*; therefore move the code performing it to mpeg12dec.c.

*: VC-1 doubles linesize when using field_mode (not only the picture's
linesize, but also uvlinesize and linesize), yet it does not offset
anything. This is further proof that this should not be performed
generically.

Also move MPEG-1/2 specific setting of the top-field-first flag.
(The change here implies that the AVFrame in current_picture
may have different top-field-first flags than the AVFrame
from current_picture_ptr, but this doesn't matter as only
the latter's are used.)

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2024-04-08 15:00:01 +02:00
compat avutil/common: Don't auto-include mem.h 2024-03-31 00:08:43 +01:00
doc doc/encoders: add missing libxvid option 2024-04-05 17:20:54 -03:00
ffbuild makefile: Clean up missed object files with "make clean" 2024-03-10 23:45:51 +02:00
fftools avutil/common: Don't auto-include mem.h 2024-03-31 00:08:43 +01:00
libavcodec avcodec/mpegvideo_dec, mpeg12dec: Move MPEG1/2 code to mpeg12dec.c 2024-04-08 15:00:01 +02:00
libavdevice avutil/common: Don't auto-include mem.h 2024-03-31 00:08:43 +01:00
libavfilter libavfilter/dnn_io_proc: Take step into consideration when crop frame 2024-04-04 14:26:57 +08:00
libavformat lavf/lrc: fix comments in headers 2024-04-06 12:59:56 +02:00
libavutil avutil/pix{desc,fmt}: add new matrix coefficients from H.273 v3 2024-04-03 21:31:35 +03:00
libpostproc avutil/common: Don't auto-include mem.h 2024-03-31 00:08:43 +01:00
libswresample avutil/common: Don't auto-include mem.h 2024-03-31 00:08:43 +01:00
libswscale swscale/utils: Fix xInc overflow 2024-04-04 19:38:29 +02:00
presets
tests avcodec/ac3: Implement sum_square_butterfly_float for aarch64 NEON 2024-04-08 13:36:40 +03:00
tools tools/target_dec_fuzzer: Adjust threshold for RV30 2024-04-03 00:44:37 +02:00
.gitattributes lavf/assenc: normalize line endings to \n 2024-02-11 17:01:07 -08:00
.gitignore
.mailmap .mailmap: Update my mailmap entry 2024-02-23 00:17:21 +01:00
.travis.yml
CONTRIBUTING.md
COPYING.GPLv2
COPYING.GPLv3
COPYING.LGPLv2.1
COPYING.LGPLv3
CREDITS
Changelog avcodec/liblc3: add encoding/decoding support of LC3 audio codec 2024-04-04 17:47:31 +02:00
INSTALL.md
LICENSE.md
MAINTAINERS MAINTAINERS: add myself as dvdvideo demuxer, rcwt muxer maintainer 2024-03-10 15:21:23 +01:00
Makefile tools: Add target_sws_fuzzer.c 2024-02-21 18:24:17 +01:00
README.md
RELEASE RELEASE: update after 7.0 branch 2024-04-02 13:02:39 -03:00
configure avcodec/libaomenc: bump the minimum required version to 2.0.0 2024-04-05 14:32:08 -03:00

README.md

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.