[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