1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-18 03:19:31 +02:00
Go to file
wm4 de1b1a7da9 avformat/mp3dec: improve junk skipping heuristic
Commit 2b3e9bbfb5 caused problems for a
certain API user:

https://code.google.com/p/chromium/issues/detail?id=537725
https://code.google.com/p/chromium/issues/detail?id=542032

The problem seems rather arbitrary, because if there's junk, anything
can happen. In this case, the imperfect junk skipping just caused it to
read different junk, from what I can see.

We can improve the accuracy of junk detection by a lot by checking if 2
consecutive frames use the same configuration. While in theory it might
be completely fine for the 1st frame to have a different format than the
2nd frame, it's exceedingly unlikely, and I can't think of a legitimate
use-case.

This is approximately the same mpg123 does for junk skipping. The
set of compared header bits is the same as the libavcodec mp3 parser
uses for similar purposes.
2015-10-20 12:17:21 +02:00
compat compat/solaris/make_sunver.pl: Use /usr/bin/env perl instead of /usr/bin/perl 2015-10-20 02:21:34 +02:00
doc avfilter: add zscale filter 2015-10-18 18:01:56 +02:00
libavcodec huffyuvencdsp: Use intptr_t for width 2015-10-19 16:57:33 -07:00
libavdevice avdevice/internal: add av_warn_unused_result 2015-10-16 17:28:40 -04:00
libavfilter avfilter/af_flanger: free frame on ENOMEM 2015-10-18 21:27:00 +02:00
libavformat avformat/mp3dec: improve junk skipping heuristic 2015-10-20 12:17:21 +02:00
libavresample avresample/resample: remove unused variable 2015-09-19 23:40:34 +02:00
libavutil lavu/intmath.h: Move x86 only msvc/icl functions to x86 specific header. 2015-10-19 13:40:51 +11:00
libpostproc
libswresample swresample/swresample_internal: add av_warn_unused_result 2015-10-15 22:27:23 -04:00
libswscale swscale/swscale: add av_warn_unused_result to sws_init_context 2015-10-16 17:18:21 -04:00
presets
tests aacenc_ltp: adjust and speed up autocorrelation calculations 2015-10-17 22:53:11 +01:00
tools
.gitattributes
.gitignore gitignore: ignore object file temporaries 2015-10-10 20:30:41 +02:00
.travis.yml
arch.mak
Changelog avformat: add wve demuxer 2015-10-20 09:41:11 +02:00
cmdutils_common_opts.h
cmdutils_opencl.c
cmdutils.c Merge commit '9ef748173a4e0e58d40afaf38397783cd2537eaa' 2015-10-16 22:57:21 +02:00
cmdutils.h
common.mak Merge commit 'c1aac39eaccd32dc3b74ccfcce701d3d888fbc6b' 2015-10-14 13:54:50 +02:00
configure avfilter: add zscale filter 2015-10-18 18:01:56 +02:00
COPYING.GPLv2
COPYING.GPLv3
COPYING.LGPLv2.1
COPYING.LGPLv3
CREDITS
ffmpeg_dxva2.c
ffmpeg_filter.c Revert "Merge commit '8b830ee9a26d47b138f12a82085cdb372f407f1e'" (avconv: Do not try to configure filter outputs without streams) 2015-10-11 12:24:43 +02:00
ffmpeg_opt.c ffmpeg_opt: rename loop option to stream_loop 2015-10-14 21:06:28 +02:00
ffmpeg_vdpau.c
ffmpeg_videotoolbox.c ffmpeg/videotoolbox: protect UTGetOSTypeFromString on both VDA and VT 2015-10-15 10:22:31 +02:00
ffmpeg.c ffmpeg: add deprecation guards around remaining AVFMT_RAWPICTURE usage 2015-10-14 14:52:43 +02:00
ffmpeg.h Merge commit '16b0c929621f84983b83b9735ce973acb12723bc' 2015-10-14 14:28:20 +02:00
ffplay.c ffplay: eliminate stream_component_close forward declaration 2015-10-12 00:07:38 +02:00
ffprobe.c
ffserver_config.c ffserver_config: check for INT_MIN before doing FFABS 2015-10-13 19:40:09 -04:00
ffserver_config.h
ffserver.c ffserver: avoid leaking pathname at exit 2015-10-04 22:31:22 -07:00
INSTALL.md
library.mak
LICENSE.md avfilter: add rubberband wrapper 2015-09-20 19:54:57 +02:00
MAINTAINERS avfilter/vf_chromakey: Add chromakey video filter 2015-09-23 18:10:14 +02:00
Makefile build: add Solaris symbol versioning 2015-10-11 15:42:36 +02:00
README.md README: replace http with https 2015-10-06 13:27:29 +02:00
RELEASE
version.sh

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.
  • ffserver is a multimedia streaming server for live broadcasts.
  • 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. Few developers follow pull requests so they will likely be ignored.