mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-08 16:35:40 +00:00
segment: make sure we don't have unmapped seek flags littering out segment flags
Make GstSeekFlag to GstSegmentFlag conversion explicit, and set only those seek flags in the segment flags which are mapped. This makes sure we don't have extraneous flags littering our segment flag field, which also fixes the debug printing/serialisation of segment events in the debug log.
This commit is contained in:
parent
5c70276894
commit
49ea16e041
3 changed files with 8 additions and 2 deletions
|
@ -64,7 +64,7 @@ Use case: FLUSHING seek
|
|||
When it reaches timestamp 5, it does not decode and push frames anymore.
|
||||
|
||||
The video sink receives a frame of timestamp 1. It takes the start value of
|
||||
the previous segment and aplies the folowing (simplified) formula:
|
||||
the previous segment and aplies the following (simplified) formula:
|
||||
|
||||
render_time = BUFFER_TIMESTAMP - segment_start + element->base_time
|
||||
|
||||
|
|
|
@ -317,7 +317,12 @@ gst_segment_do_seek (GstSegment * segment, gdouble rate,
|
|||
segment->rate = rate;
|
||||
segment->applied_rate = 1.0;
|
||||
segment->base = base;
|
||||
segment->flags = (GstSegmentFlags) flags;
|
||||
/* be explicit about our GstSeekFlag -> GstSegmentFlag conversion */
|
||||
segment->flags = GST_SEGMENT_FLAG_NONE;
|
||||
if ((flags & GST_SEEK_FLAG_FLUSH) != 0)
|
||||
segment->flags |= GST_SEGMENT_FLAG_RESET;
|
||||
if ((flags & GST_SEEK_FLAG_SKIP) != 0)
|
||||
segment->flags |= GST_SEGMENT_FLAG_SKIP;
|
||||
segment->start = start;
|
||||
segment->stop = stop;
|
||||
segment->time = start;
|
||||
|
|
|
@ -130,6 +130,7 @@ typedef enum {
|
|||
* Flags for the GstSegment structure. Currently mapped to the corresponding
|
||||
* values of the seek flags.
|
||||
*/
|
||||
/* Note: update gst_segment_do_seek() when adding new flags here */
|
||||
typedef enum {
|
||||
GST_SEGMENT_FLAG_NONE = GST_SEEK_FLAG_NONE,
|
||||
GST_SEGMENT_FLAG_RESET = GST_SEEK_FLAG_FLUSH,
|
||||
|
|
Loading…
Reference in a new issue