GNOME Bugzilla – Bug 395597
Deinterleave fails to negotiate with alsasrc when using Delta 44 sound card
Last modified: 2007-01-18 15:09:35 UTC
When trying to deinterleave the channels received from a Delta 44 sound card the deinterleave plugin fails to negotiate. When trying the same pipeline with an on-board sound chip it works correctly. Attached is the script I'm testing with, which takes alsasrc input and writes each channel to a separate ogg file. Steps to reproduce: 1. Change the DEVICE variable in testsplit.py to the alsa device corresponding to the Delta 44. 2. Run testsplit.py Expected result: 12 ogg files should be produced. Actual result: No ogg files are produced. Also attached is a log of GST_DEBUG=3.
Created attachment 80081 [details] GST_DEBUG=3 of testsplit.py
Created attachment 80082 [details] testsplit.py Test case
Created attachment 80083 [details] testsplit.py Test case
Could you also attach a (gzipped) GST_DEBUG=*:5 log please? (*:3 logs rarely contain useful information). I'm not sure, but you might need a queue for each split path. Don't think this is the problem here though, it seems to be more of a negotiation problem. Maybe audioconvert can't handle multichannel input without proper channel positions? It would be nice to make deinterleave/Interleave handle audio/x-raw-int directly at some point.
Created attachment 80158 [details] GST_DEBUG=5 of testsplit.py
I have similar problem. Ubuntu Edgy, Gstreamer CVS env., all up to date, this same test script. No errors while recording, but no files either. Sound card EWS88MT, ice1712 chipset based (as Delta 44). Log gzipped attached.
Created attachment 80180 [details] GST_DEBUG=5:* with script for EWS88MT
2007-01-13 Andy Wingo <wingo@pobox.com> * gst/interleave/deinterleave.c (gst_deinterleave_add_new_pads): Use fixed caps on src pads. (gst_deinterleave_remove_pads): Remove src pads, not sink pads. I seem to have reverse midas disease! (gst_deinterleave_process): Proxy timestamps, offsets, durations, and set caps on outgoing buffers. Fixes #395597, I think. Please test again and reopen this bug if you have the same issues. Thanks.
Sorry, I still get a failure negotiating the format.
After a little more testing I think the problem is with the audioconvert element. Using the same script with my own channel splitting element causes the same problem and without the audioconvert it works fine (my channel splitting element implements audio/x-raw-int so doesn't need the audioconvert). So this could be fixed either by implementing audio/x-raw-int as Tim suggested or by fixing the problem in audioconvert.
I've just checked the caps for audioconvert and it appears to only support a maximum of 8 channels, which is probably what's causing the problem since the Delta 44 supplies 12 channels (maximum and minimum).
*** This bug has been marked as a duplicate of 398033 ***