mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-28 20:51:13 +00:00
event: Unset SNAP flags when creating a new seek event without KEY_UNIT flag
The SNAP flags only make sense in combination with the KEY_UNIT flag, and without they expose all kinds of unexpected behaviour in various elements that don't expect this from happening. Also warn if this ever happens. https://bugzilla.gnome.org/show_bug.cgi?id=796558
This commit is contained in:
parent
1908daf29c
commit
8f496b7392
1 changed files with 12 additions and 0 deletions
|
@ -1268,6 +1268,18 @@ gst_event_new_seek (gdouble rate, GstFormat format, GstSeekFlags flags,
|
|||
|
||||
g_return_val_if_fail (rate != 0.0, NULL);
|
||||
|
||||
/* SNAP flags only make sense in combination with the KEYUNIT flag. Warn
|
||||
* and unset the SNAP flags if they're set without the KEYUNIT flag */
|
||||
if (!(flags & GST_SEEK_FLAG_KEY_UNIT) &&
|
||||
(flags & (GST_SEEK_FLAG_SNAP_BEFORE | GST_SEEK_FLAG_SNAP_AFTER |
|
||||
GST_SEEK_FLAG_SNAP_NEAREST))) {
|
||||
g_warning ("SNAP seeks only work in combination with the KEY_UNIT "
|
||||
"flag, ignoring SNAP flags");
|
||||
flags &=
|
||||
~(GST_SEEK_FLAG_SNAP_BEFORE | GST_SEEK_FLAG_SNAP_AFTER |
|
||||
GST_SEEK_FLAG_SNAP_NEAREST);
|
||||
}
|
||||
|
||||
if (format == GST_FORMAT_TIME) {
|
||||
GST_CAT_INFO (GST_CAT_EVENT,
|
||||
"creating seek rate %lf, format TIME, flags %d, "
|
||||
|
|
Loading…
Reference in a new issue