[gstreamer-bugs] [Bug 616422] New: playsink might not handle reconfiguring after a text enabled file correctly

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Wed Apr 21 11:47:37 PDT 2010


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

           Summary: playsink might not handle reconfiguring after a text
                    enabled file correctly
    Classification: Desktop
           Product: GStreamer
           Version: git
        OS/Version: All
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-plugins-base
        AssignedTo: gstreamer-bugs at lists.sourceforge.net
        ReportedBy: julien at moutte.net
         QAContact: gstreamer-bugs at lists.sourceforge.net
      GNOME target: ---
     GNOME version: ---


In playsink reconfigure function there is some code to reenable the video chain
if it already exists. In the case of a pipeline with audio, video and subtitles
the ghostpad for video is the one from the text chain, for audio video only the
ghost pad should be the one from the video chain.

During reconfigure playsink tries to set the ghost correctly depending on the
new conditions. I don't understand that block of code though :

      if (!need_vis && !need_text && !playsink->textchain) {
        GST_DEBUG_OBJECT (playsink, "ghosting video sinkpad");
        gst_ghost_pad_set_target (GST_GHOST_PAD_CAST (playsink->video_pad),
            playsink->videochain->sinkpad);
      }

Indeed it does not make sense (IMHO) to check if there's a textchain because if
there was one it might be cleaned later on. Can't we just check for need_vis
and need_text ?

The consequence of this, as observed on my player, is that playing a A/V file
after a A/V/T file is just not working because the ghostpad points to a non
existing chain.

The ghostpad could be reset correctly when removing the text chain but just
changing the condition to this, makes it work for me :

      if (!need_vis && !need_text) {
        GST_DEBUG_OBJECT (playsink, "ghosting video sinkpad");
        gst_ghost_pad_set_target (GST_GHOST_PAD_CAST (playsink->video_pad),
            playsink->videochain->sinkpad);
      }

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