gstreamer/gst
Tim-Philipp Müller 43ce85f794 matroskademux: try to ensure keyframe when seeking without index
When seeking in pull mode without an index (because there is no index
or the file is still being written to) we bisect to find the right
cluster to jump to. However, it's possible the cluster we found doesn't
start with a keyframe, which leads to decoding errors, so if we know
that the found cluster starts with a delta frame try to scan back to
previous clusters until we find one that starts with a keyframe or
we are back at the beginning. Theoretically it's possible that all
clusters but the first one do not start with a keyframe and the
keyframes are in the middle of clusters, but this is extremely
unusual, so we will cover this case with a basic sanity check.

This problem is especially problematic with content recorded with
dynamic GOP and FPS, where long GOP lengths and low FPS may cause a
large set of clusters to lack key frames. Playback would then be
started on a non-keyframe cluster, and the large number of such frames
would make the content impossible to decode fo a long stretch of time.

Based on patch by: Mats Lindestam <matslm@axis.com>

https://bugzilla.gnome.org/show_bug.cgi?id=790696
2018-08-27 23:01:21 +02:00
..
alpha Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
apetag Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
audiofx scaletempo: Mark as Audio in classification 2018-07-08 20:10:12 -04:00
audioparsers aacparse: fix codec_data buffer leak 2018-08-13 00:05:59 +01:00
auparse Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
autodetect Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
avi Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
cutter Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
debugutils Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
deinterlace deinterlace: Closed caption pass-through 2018-07-27 14:26:49 +03:00
dtmf Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
effectv Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
equalizer Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
flv flvmux: Remove custom get_next_time implementation 2018-05-16 22:23:36 +02:00
flx Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
goom Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
goom2k1 Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
icydemux icydemux: avoid timestamp field initialisation for tag event 2018-05-07 01:25:25 +10:00
id3demux Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
imagefreeze Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
interleave Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
isomp4 mp4 robust muxing: improve documentation and logging 2018-08-16 19:43:50 +02:00
law Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
level Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
matroska matroskademux: try to ensure keyframe when seeking without index 2018-08-27 23:01:21 +02:00
monoscope Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
multifile mp4 robust muxing: improve documentation and logging 2018-08-16 19:43:50 +02:00
multipart Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
replaygain Revert "BugFix : Change peak value to normalize audio file with fallback gain" 2018-05-15 10:35:09 +01:00
rtp rtph26*pay: Update param set timestamp even if parameters unchanged 2018-08-16 16:49:16 +03:00
rtpmanager rtpsession: Don't start the RTCP thread until it's needed 2018-07-12 18:37:33 +02:00
rtsp rtspsrc: Add support for SET_PARAMETER and GET_PARAMETER using signals 2018-08-16 09:03:42 +03:00
shapewipe Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
smpte Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
spectrum Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
udp udpsrc: Fix build when SO_RCVBUFFORCE is not defined 2018-08-17 17:35:43 -04:00
videobox Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
videocrop Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
videofilter Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
videomixer Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
wavenc Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
wavparse wavparse: Don't set invalid seqnum on events 2018-06-06 07:48:32 +02:00
y4m Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
Makefile.am build: build plugins and examples in parallel where possible 2010-03-29 11:00:57 +01:00
meson.build meson: Add feature options for all plugins 2018-07-27 18:42:54 +05:30