mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2026-08-09 17:39:08 +00:00
e27ad5760c0c8eca7c95bb907dc6e4e62dbf129b
After a seek, hls_read_packet drops packets until each playlist reaches seek_timestamp. That threshold lives on c->first_timestamp's baseline, i.e. the DTS of whichever stream produced the very first packet. Streams can have different DTS baselines though. So comparing one stream's threshold against another stream's DTS is wrong. A stream whose first keyframe precedes the global baseline gets its segment keyframe dropped and resumes a segment (or more) late. Track the first DTS per playlist and rebase the threshold onto each playlist's own baseline. Since HLS segments are presentation-aligned across renditions, every stream then resumes at the same presentation time. seek_timestamp keeps its meaning on the global timeline, only the per-playlist comparison value is translated. This fixes playlists that would be unable to play from the start, and instead skip one or more segments, before data is output. Signed-off-by: Kacper Michajłow <kasper93@gmail.com>
…
…
FFmpeg README
FFmpeg is a collection of libraries and tools to process multimedia content such as audio, video, subtitles and related metadata.
Libraries
libavcodecprovides implementation of a wider range of codecs.libavformatimplements streaming protocols, container formats and basic I/O access.libavutilincludes hashers, decompressors and miscellaneous utility functions.libavfilterprovides means to alter decoded audio and video through a directed graph of connected filters.libavdeviceprovides an abstraction to access capture and playback devices.libswresampleimplements audio mixing and resampling routines.libswscaleimplements 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,ismindexandqt-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.
Languages
C
88.9%
Assembly
8.4%
Makefile
1.4%
GLSL
0.4%
C++
0.3%
Other
0.4%