[gstreamer-bugs] [Bug 624699] Add 'caps' property for playbin

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Mon Jul 26 01:51:40 PDT 2010


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

--- Comment #5 from Zhao, Halley <halley.zhao at intel.com> 2010-07-26 08:51:36 UTC ---
There are two ways to run into expose_pad in gstdecodebin2.c
1. analyze_new_pad()
  /* 1.a if autoplug-continue is FALSE or caps is a raw format, goto
pad_is_final */
  if ((!apcontinue) || are_raw_caps (dbin, caps))
    goto expose_pad;
2. connect_pad()
      case GST_AUTOPLUG_SELECT_EXPOSE:
        GST_DEBUG_OBJECT (dbin, "autoplug select requested expose");
        /* expose the pad, we don't have the source element */
        expose_pad (dbin, src, dpad, pad, caps, chain);
        res = TRUE;
        goto beach;

For the second case, video-sink set from app will not take effect. because in
gstplaybin2.c:
1. autoplug_select_cb() will set group->video_sink with sink by auto-plug
2. in no_more_pads_cb(), the above sink will take a higher priority than sink
set from app:
    if (group->video_sink) {
      GST_INFO_OBJECT (playbin, "setting custom video sink %" GST_PTR_FORMAT,
          group->video_sink);
      gst_play_sink_set_sink (playbin->playsink, GST_PLAY_SINK_TYPE_VIDEO,
          group->video_sink);
    } else {
      GST_INFO_OBJECT (playbin, "setting default video sink %" GST_PTR_FORMAT,
          playbin->video_sink);
      gst_play_sink_set_sink (playbin->playsink, GST_PLAY_SINK_TYPE_VIDEO,
          playbin->video_sink);
    }
}

In summary:
without 'video/x-raw-va' in DEFAULT_RAW_CAPS, application can't change
'video_sink' property of playbin2.

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