[Bug 685467] segment clipping: smartencoder constantly reencode gop

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Mon Oct 8 15:16:59 PDT 2012


https://bugzilla.gnome.org/show_bug.cgi?id=685467
  GStreamer | gstreamer (core) | 1.x

Alban Browaeys <prahal> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 Attachment #225772|0                           |1
        is obsolete|                            |

--- Comment #1 from Alban Browaeys <prahal at yahoo.com> 2012-10-08 22:16:52 UTC ---
Created an attachment (id=226084)
 View: https://bugzilla.gnome.org/attachment.cgi?id=226084
 Review: https://bugzilla.gnome.org/review?bug=685467&attachment=226084

only update gop start/stop timestamps if we have a valid buffer timestamp

This is another way to fix the infinite loop in pitivi due to start > stop. Ie
when timestamp is invalid without this safeguard, gop stop and start are
updated to GST_CLOCK_TIME_NONE (-1). Then when  we have a keyframe we have this
sequence: (let us tell keyframe "3" buffer timestamp equal "30" and keyframe
"6" buffer timestamp equal "60" in an abstract world:
A. keyframe one with buffer timestamp GST_CLOCK_TIME_NONE: start = -1, stop =
-1, in gst_smart_encoder_chain :
.gop stop is set to the valid buffer value "-1",  start to "-1" too.
.gst_smart_encoder_push_pending_gop > gst_segment_clip with start valued "-1"
and stop valued "-1", change internaly stop to segment->stop let s tell "30" 
and start to (gutin64)"-1". We have start above stop.
.gop start is set to buffer timestampt "-1"
B. same for frame two.
C. keyframe three with a valid timestamp "30" appears :
.gop stop is set to the valid buffer value "30",  start is still "-1", ie
GST_CLOCK_TIME_NONE
.gst_smart_encoder_push_pending_gop > gst_segment_clip with start valued "-1"
and stop valued "30"
.gop start is set to buffer timestamp "30"
D.keyframe four with buffer timestamp GST_CLOCK_TIME_NONE: start = -1, stop =
-1
.gop stop is set to the valid buffer value "-1",  start stays at "30" too.
.gst_smart_encoder_push_pending_gop > gst_segment_clip : with start valued "30"
and stop valued "-1", change internaly stop to segment->stop let s tell "60".
.gop start is set to buffer timestamp "-1"
E. again invalid timestamp for a keyframe: this time:
. gop stop set to "-1"
.gst_smart_encoder_push_pending_gop > gst_segment_clip : with start valued "-1"
and stop valued "-1", change internaly stop to segment->stop let s tell "60",
while start stay (guint64)"-1". We have start > stop
.gop start is set to buffer timestamp "-1"
and so forth.

In pitivi this leads to an infinite loop (in render).

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list