[Bug 735673] New: interleave: the example in the documentation does not work

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Fri Aug 29 07:42:46 PDT 2014


https://bugzilla.gnome.org/show_bug.cgi?id=735673
  GStreamer | gst-plugins-good | 1.4.1

           Summary: interleave: the example in the documentation does not
                    work
    Classification: Platform
           Product: GStreamer
           Version: 1.4.1
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-plugins-good
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: ao2 at ao2.it
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


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

Fix examples of use of the interleave element

Hi, the example in the documentation of the interleave element didn't work for
me when applied to mono files to be interleaved into a stereo stream to be feed
to wavenc.

It fails with this message:

Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
ERROR: from element
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstWavParse:wavparse0: Internal
data flow error.
Additional debug info:
gstwavparse.c(2178): gst_wavparse_loop ():
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstWavParse:wavparse0:
streaming task paused, reason not-negotiated (-4)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...

I guess this is because wavparse used by wavenc gets confused by the missing
channel positions configuration.

The proper fix when using the element in code would be to set the
channel-positions property, but gst-launch-1.0 does not know how to deal
with arrays.

Setting the channel-mask with capssetter works around the issue.

Note that I even tried to set the channel-mask (0x1 and 0x2) to the source
streams, this works as well without the need for the capssetter, but I find it
misleading as it can induce the user to think that they can control the
position of channels in the finals stream by switching the channel masks, which
is not true; it looks like the interleave element can only set
channel-positions from the input order when used via gst-launch.

So IMHO setting channel-mask=0x3 with a capssetter is more adherent to what
users should expect to actually happen.

Attached there are a set of patches along my line of thoughts.
Patches are against 1.4.1

Thanks,
   Antonio

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