[Bug 731890] [Pitivi] New imagesequencesrc element

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Tue Jan 13 09:45:26 PST 2015


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

Nicolas Dufresne (stormer) <nicolas.dufresne> changed:

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

--- Comment #19 from Nicolas Dufresne (stormer) <nicolas.dufresne at collabora.co.uk> 2015-01-13 17:45:22 UTC ---
Review of attachment 286661:
 --> (https://bugzilla.gnome.org/review?bug=731890&attachment=286661)

Here's few more comments. The most important part, move blocking IOs on the
playlist to the streaming thread, make sure it can be canelled when doing to
READY state (just in case something wrong happens). ->create() is run from the
streaming thread, negotiation() also.

::: gst/sequences/gstimagesequencesrc.c
@@ +38,3 @@
+ * |[
+ * gst-launch-1.0 -v imagesequencesrc location="playlist" framerate="24/1" !
decodebin ! videoconvert ! xvimagesink
+ * ]|

Could you add examples for using filename-list and the uri ?

@@ +200,3 @@
+    case GST_STATE_CHANGE_READY_TO_PAUSED:
+      if (src->location) {
+        gst_imagesequencesrc_parse_location (src);

Please move this in the streaming thread. This function do blocking IOs, from
the main thread which is first cause of stutter in UIs.

@@ +298,3 @@
+  gchar *content = NULL, *escaped_content = NULL, **lines = NULL;
+
+  clean_action_str = g_regex_new ("\\\\\n|#.*\n", G_REGEX_CASELESS, 0, NULL);

My personal taste would be to use GDataInputStream and the
g_data_input_stream_read_line_utf8() method. What do you think of that ?

@@ +415,3 @@
+    filename = gst_structure_get_string (l->data, "location");
+    if (filename) {
+      filenames = realloc (filenames, (i + 2) * sizeof (gchar *));

Use GPtrArray here instead. Also, don't call OS method directly, use glib.

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