Go to file
Andreas Rheinhardt 8068f2fcf3 avformat/id3v2: Don't reverse the order of id3v2 APICs
When parsing ID3v2 tags, special (non-text) metadata is not applied
directly and unconditionally; instead it is stored in a linked list
in which elements are prepended. When traversing the list to add APICs
(or private tags) at the end, the order is reversed. The same also
happens for chapters and therefore the chapter parsing code already
reverses the chapters.

This commit changes this: By keeping pointers to both head and tail
of the linked list one can preserve the order of the entries and
remove the reordering code for chapters. Only the pointer to head
will be exported: No current caller uses a nonempty list, so exporting
both head and tail is unnecessary. This removes the functionality
to combine the lists of special metadata read from different ID3v2 tags,
but that doesn't make really much sense anyway (and would be trivial
to implement if desired) and allows to remove the now unnecessary
initializations performed by the callers.

The FATE-reference for the id3v2-priv test had to be updated
because the order of the tags read into the dict is reversed;
for id3v2-priv-remux only the md5 and not the ffprobe output
of the remuxed file changes because the order of the private tags
has up until now been reversed twice.

The references for the aiff/mp3 cover-art tests needed to be updated,
because the order of the attached pics is reversed upon reading.
It is still not correct, because the muxers write the pics in the order
in which they arrive at the muxer instead of the order given by
pkt->stream_index.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-04-18 02:24:44 +02:00
compat atomics: Fix the win32 atomic_exchange function 2021-04-04 11:06:08 +03:00
doc lavfi: add filter dnn_detect for object detection 2021-04-17 17:27:02 +08:00
ffbuild ffbuild/common: Make deletion of templates possible 2021-02-07 09:45:04 +01:00
fftools fftools/ffprobe: Remove check on show_frames and show_packets in XML writer 2021-04-16 08:40:09 +02:00
libavcodec avcodec/exr: increase vlc depth 2021-04-17 16:53:17 +02:00
libavdevice libavdevice/gdigrab: fix capture of windows with non-ASCII titles 2021-04-13 19:34:33 +03:00
libavfilter lavfi: add filter dnn_detect for object detection 2021-04-17 17:27:02 +08:00
libavformat avformat/id3v2: Don't reverse the order of id3v2 APICs 2021-04-18 02:24:44 +02:00
libavresample avresample: remove deprecated attribute from the AVAudioResampleContext struct 2018-01-09 10:56:53 -03:00
libavutil lavu/detection_bboxes: add missing space 2021-04-17 13:14:47 +02:00
libpostproc Bump minor versions after release branch 2021-03-20 01:02:11 +01:00
libswresample libswresample/audioconvert: Fix undefined NULL + 0 2021-04-01 14:15:20 +02:00
libswscale libswscale/x86/yuv2yuvX: Removes unrolling for mmx and mmxext 2021-04-01 20:47:52 +02:00
presets presets: remove moldering iPod presets 2014-06-17 16:15:04 -08:00
tests avformat/id3v2: Don't reverse the order of id3v2 APICs 2021-04-18 02:24:44 +02:00
tools tools/target_dem_fuzzer: Fix packet leak 2021-04-01 10:10:21 +02:00
.gitattributes fate: add SCC test 2017-01-27 17:06:42 +01:00
.gitignore tools/python: add script to convert TensorFlow model (.pb) to native model (.model) 2019-07-01 10:23:47 -03:00
.mailmap mailmap: add entry for myself 2021-03-09 02:09:55 +00:00
.travis.yml Merge commit '899ee03088d55152a48830df0899887f055da1de' 2019-03-14 15:53:16 -03:00
CONTRIBUTING.md Add CONTRIBUTING.md 2016-09-18 10:02:13 +01:00
COPYING.GPLv2
COPYING.GPLv3
COPYING.LGPLv2.1 cosmetics: Delete empty lines at end of file. 2012-02-09 12:26:45 +01:00
COPYING.LGPLv3
CREDITS CREDITS: redirect to Git log, remove current outdated content 2013-01-31 18:02:52 +01:00
Changelog Changelog: Add new <next> line after 4.4 2021-04-09 06:30:31 +02:00
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 MAINTAINERS: add myself as adpcm maintainer 2021-03-25 12:51:10 +10:00
Makefile avcodec: move core AVCodecContext functions from util.c to a new file 2021-03-19 15:35:35 -03:00
README.md Remove the ffserver program 2018-01-06 18:31:37 +00:00
RELEASE Bump Versions before release/4.4 branch 2021-03-20 01:01:12 +01:00
configure lavfi: add filter dnn_detect for object detection 2021-04-17 17:27:02 +08: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 a mean to alter decoded Audio and Video through chain of 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.