[gstreamer-bugs] [Bug 600929] [kate] tiger element doesn't handle segments and text/video synchronization properly

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Sun Dec 12 06:20:36 PST 2010


https://bugzilla.gnome.org/show_bug.cgi?id=600929
  GStreamer | gst-plugins-bad | git

Sebastian Dröge <slomo> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 Attachment #156681|none                        |needs-work
             status|                            |

--- Comment #26 from Sebastian Dröge <slomo at circular-chaos.org> 2010-12-12 14:20:33 UTC ---
Review of attachment 156681:
 --> (https://bugzilla.gnome.org/review?bug=600929&attachment=156681)

Also feel free to squash commits together if they belong together ;)

::: ext/kate/gstkatetiger.c
@@ +562,3 @@
   if (gst_kate_util_decoder_base_update_segment (&tiger->decoder,
           GST_ELEMENT_CAST (tiger), buf)) {
+    GstPad *tagpad = gst_pad_get_peer (pad);

You should probably unref this pad somewhere again

@@ +868,3 @@
+    // Delay events till we've set caps - only tag events though, as doing so
for the rest seems to freeze
+    // the pipeline for reasons I don't know, and the reason why katedec does
it is not valid here (as katedec
+    // sets the src pad caps at runtime, but tiger does not)

Yes, as said in the review of the other patch... delay everything except
flush-start, flush-stop and eos :) newsegment delaying until the caps are know
is very important

::: ext/kate/gstkateutil.c
@@ +129,3 @@
   decoder->original_canvas_height = 0;
+  if (decoder->event_queue) {
+    g_queue_free (decoder->event_queue);

Same as in the other patch, make sure to unref all events and free all data
still in the queue before destroying the queue

@@ +142,3 @@
+    GstKateDecoderBaseQueuedEvent *item;
+    GST_WARNING_OBJECT (decoder, "We have to delay the event");
+    item = g_malloc (sizeof (GstKateDecoderBaseQueuedEvent));

Use g_slice_new() here and g_slice_free() later for freeing it again

-- 
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