[Bug 738285] New: playbin: Sequential playback of the file list does not work

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Fri Oct 10 03:38:16 PDT 2014


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

           Summary: playbin: Sequential playback of the file list does not
                    work
    Classification: Platform
           Product: GStreamer
           Version: git
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-plugins-base
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: sarakusha at gmail.com
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


Created an attachment (id=288200)
 View: https://bugzilla.gnome.org/attachment.cgi?id=288200
 Review: https://bugzilla.gnome.org/review?bug=738285&attachment=288200

for inspect

simple example (Sequential playback of the file list):
== start ========================================
static GMainLoop *loop;
static gint index = 0;
static gchar* list[] = {
  "media_uri_1",
  "media_uri_2",
  NULL
  };

static void
play_next(GObject *playbin, gpointer user_data)
{
  const gchar *next = list[++index];
  if (next == NULL) {
      g_main_loop_quit (loop);
  }
  g_object_set(playbin, "uri", next, NULL);
}


int main()
{
  ...

  GstElement *playbin = gst_element_factory_make("playbin", "playbin");
  g_signal_connect(G_OBJECT(playbin), "about-to-finish", (GCallback)play_next,
NULL);
  g_object_set(G_OBJECT(playbin), "uri", list[index], NULL);
  gst_element_set_state(playbin, GST_STATE_PLAYING);

  ...
}
== end =========================================

To make it easier to explain, apply example.patch from attachment

View log from attachemt:

line 1540 (EOS from audio):
0:00:09.175147876
gstdecodebin2.c:4475:source_pad_event_probe:<decodebin0:src_1> we received EOS

line 1551 (inspect result EOS event):
0:00:09.175320269 gstdecodebin2.c:4632:gst_decode_pad_event:<decodebin0:src_1>
EOS result: unknown, 1

Why 'unknown'?

This EOS event will be sticked (result != GST_FLOW_OK)! 

line 1601 (EOS from video):
0:00:10.165434115
gstdecodebin2.c:4475:source_pad_event_probe:<decodebin0:src_0> we received EOS

line 1623 (inspect result EOS event, all right)
0:00:10.168051241 gstdecodebin2.c:4632:gst_decode_pad_event:<decodebin0:src_0>
EOS result: ok, 0

PLAY next file
call 'setup_next_source' form gstplaybin2.c

line 1796 (reconfiguring & unblocking):
0:00:10.194371416 gstplaysink.c:3181:gst_play_sink_do_reconfigure:<playsink>
reconfiguring

line 1809 ... (audio pad):
0:00:10.199289077 gstdecodebin2.c:4616:gst_decode_pad_chain:<decodebin1:src_1>
Buffer 0:00:00.000000000
0:00:10.199311819 gstdecodebin2.c:4618:gst_decode_pad_chain:<decodebin1:src_1>
push result eos
0:00:10.199517290 gstdecodebin2.c:4616:gst_decode_pad_chain:<decodebin1:src_1>
Buffer 0:00:00.024000000
0:00:10.199599560 gstdecodebin2.c:4618:gst_decode_pad_chain:<decodebin1:src_1>
push result eos
0:00:10.199842973 gstdecodebin2.c:4616:gst_decode_pad_chain:<decodebin1:src_1>
Buffer 0:00:00.048000000
0:00:10.199894467 gstdecodebin2.c:4618:gst_decode_pad_chain:<decodebin1:src_1>
push result eos
...

EOS sticky

line 2655:
0:00:10.335347188
gststreamsynchronizer.c:348:gst_stream_synchronizer_sink_event:<streamsynchronizer0:sink_0>
Stream 0 is waiting

finish

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