After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 733866 - interleave: caps negotiation fails when input caps have non-interleaved layout
interleave: caps negotiation fails when input caps have non-interleaved layout
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
git master
Other Linux
: Normal normal
: 1.4.1
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2014-07-28 14:31 UTC by Philippe Normand
Modified: 2014-08-11 06:56 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
interleave: set output caps layout to interleaved (6.05 KB, patch)
2014-07-28 16:58 UTC, Philippe Normand
committed Details | Review

Description Philippe Normand 2014-07-28 14:31:56 UTC
This fails:

gst-launch-1.0 interleave name=i ! audioconvert ! pulsesink  audiotestsrc  ! audioconvert ! "audio/x-raw, format=(string)F32LE, layout=(string)non-interleaved, rate=(int)44100, channels=(int)1, channel-mask=(bitmask)0x0000000000000001" ! queue ! i.sink_0   audiotestsrc ! audioconvert ! "audio/x-raw, format=(string)F32LE, layout=(string)non-interleaved, rate=(int)44100, channels=(int)1, channel-mask=(bitmask)0x0000000000000002" ! queue ! i.sink_1

but changing input layout to interleaved on the capsfilters make it work. This is because gst_interleave_sink_setcaps() doesn't properly set the layout field of the caps, it reuses the layout of the caps event. I think the layout should be unconditionally set to interleaved there :)

I'll try to provide a unit-test along with the patch.
Comment 1 Philippe Normand 2014-07-28 16:39:25 UTC
audiotestsrc emits buffers with interleaved layout so it can't work anyway but I got a unittest with fakesrc emitting buffers with non-interleaved layout.
Comment 2 Philippe Normand 2014-07-28 16:58:22 UTC
Created attachment 281878 [details] [review]
interleave: set output caps layout to interleaved

Set output caps layout independently from input caps layout which can
be either non-interleaved or interleaved.
Comment 3 Sebastian Dröge (slomo) 2014-07-29 09:50:09 UTC
commit b8b5704445b831bc505a825cfef24ef30e00d5f0
Author: Philippe Normand <philn@igalia.com>
Date:   Mon Jul 28 16:49:16 2014 +0200

    interleave: set output caps layout to interleaved
    
    Set output caps layout independently from input caps layout which can
    be either non-interleaved or interleaved.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=733866