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 418982 - adder causes : ** WARNING **: Size 2 is not a multiple of unit size 4
adder causes : ** WARNING **: Size 2 is not a multiple of unit size 4
Status: RESOLVED NOTABUG
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other Linux
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2007-03-16 14:39 UTC by Stefan Sauer (gstreamer, gtkdoc dev)
Modified: 2007-09-25 07:30 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
pipeline that is used (37.05 KB, image/png)
2007-03-16 21:42 UTC, Stefan Sauer (gstreamer, gtkdoc dev)
Details
test application (8.45 KB, text/plain)
2007-05-07 20:08 UTC, Stefan Sauer (gstreamer, gtkdoc dev)
Details

Description Stefan Sauer (gstreamer, gtkdoc dev) 2007-03-16 14:39:55 UTC


  • #3 IA__g_logv
    at gmessages.c line 497
  • #4 IA__g_log
    at gmessages.c line 517
  • #5 gst_base_transform_transform_size
    at gstbasetransform.c line 533
  • #6 gst_base_transform_handle_buffer
    at gstbasetransform.c line 1451
  • #7 gst_base_transform_chain
    at gstbasetransform.c line 1577
  • #8 gst_pad_chain_unchecked
    at gstpad.c line 3462
  • #9 gst_pad_push
    at gstpad.c line 3628
  • #10 gst_adder_collected
    at gstadder.c line 776
  • #11 gst_collect_pads_check_collected
    at gstcollectpads.c line 974
  • #12 gst_collect_pads_chain
    at gstcollectpads.c line 1183
  • #13 gst_pad_chain_unchecked
    at gstpad.c line 3462
  • #14 gst_pad_push
    at gstpad.c line 3628
  • #15 gst_base_transform_chain
    at gstbasetransform.c line 1592
  • #16 gst_pad_chain_unchecked
    at gstpad.c line 3462
  • #17 gst_pad_push
    at gstpad.c line 3628
  • #18 gst_base_transform_chain
    at gstbasetransform.c line 1592
  • #19 gst_pad_chain_unchecked
    at gstpad.c line 3462
  • #20 gst_pad_push
    at gstpad.c line 3628

Comment 1 Stefan Sauer (gstreamer, gtkdoc dev) 2007-03-16 18:56:14 UTC
as far as I see the problem is if you have n>1 sources that deliver different sized packets
imagine A delivers a frames and B delivers a+1, then A delives a frames again
adder would collect a frames and then 1 frame

if the element after adder expects at least 2 frames this breaks
Comment 2 Stefan Sauer (gstreamer, gtkdoc dev) 2007-03-16 21:41:30 UTC
The problem seems no related to the buffersizes. I seems to re-negotiate the format several times which I don't really understand as all the sink-pads should deliver in the same format.

0:00:02.954279000 14701 0x8198d50 DEBUG                adder gstadder.c:495:gst_adder_sink_event: Got newsegment event on pad adder_0x81a3830:sink1
0:00:02.954647000 14701 0x8198d50 LOG                  adder gstadder.c:172:gst_adder_setcaps:<adder_0x81a3830> setting caps on pad 0x8376cc0,sink1 to audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)44100, channels=(int)1
0:00:02.954695000 14701 0x8198d50 DEBUG                adder gstadder.c:192:gst_adder_setcaps:<adder_0x81a3830> parse_caps sets adder to format int
0:00:02.954856000 14701 0x804fe08 DEBUG                adder gstadder.c:495:gst_adder_sink_event: Got flush-stop event on pad adder_0x81a3830:sink0
0:00:02.955066000 14701 0x804fe08 LOG                  adder gstadder.c:387:forward_event_func:<adder_0x81a3830:sink0> Sent event  0x80667b8 (seek).
0:00:02.956031000 14701 0x8189af0 DEBUG                adder gstadder.c:495:gst_adder_sink_event: Got newsegment event on pad adder_0x81a3830:sink0
0:00:02.958770000 14701 0x8189af0 LOG                  adder gstadder.c:681:gst_adder_collected:<adder_0x81a3830> starting to cycle through channels, 11024 bytes available (bps = 2)
0:00:02.958784000 14701 0x8189af0 LOG                  adder gstadder.c:711:gst_adder_collected:<adder_0x81a3830> channel 0x837c830: making output buffer of 11024 bytes
0:00:02.958800000 14701 0x8189af0 LOG                  adder gstadder.c:724:gst_adder_collected:<adder_0x81a3830> channel 0x837c830: copying 11024 bytes from data 0x8391e00
0:00:02.958822000 14701 0x8189af0 LOG                  adder gstadder.c:730:gst_adder_collected:<adder_0x81a3830> channel 0x83794e8: mixing 11024 bytes from data 0xb5601400
0:00:02.958883000 14701 0x8189af0 LOG                  adder gstadder.c:730:gst_adder_collected:<adder_0x81a3830> channel 0x8379640: mixing 11024 bytes from data 0x83a0f00
0:00:02.959072000 14701 0x8189af0 LOG                  adder gstadder.c:784:gst_adder_collected:<adder_0x81a3830> pushing outbuf, timestamp 0:00:00.124988662
0:00:02.962635000 14701 0x8189af0 LOG                  adder gstadder.c:681:gst_adder_collected:<adder_0x81a3830> starting to cycle through channels, 11024 bytes available (bps = 2)
0:00:02.962648000 14701 0x8189af0 LOG                  adder gstadder.c:711:gst_adder_collected:<adder_0x81a3830> channel 0x837c830: making output buffer of 11024 bytes
0:00:02.962664000 14701 0x8189af0 LOG                  adder gstadder.c:724:gst_adder_collected:<adder_0x81a3830> channel 0x837c830: copying 11024 bytes from data 0x8394910
0:00:02.962702000 14701 0x8189af0 LOG                  adder gstadder.c:730:gst_adder_collected:<adder_0x81a3830> channel 0x83794e8: mixing 11024 bytes from data 0xb5601400
0:00:02.962742000 14701 0x8189af0 LOG                  adder gstadder.c:730:gst_adder_collected:<adder_0x81a3830> channel 0x8379640: mixing 11024 bytes from data 0x83a0f00
0:00:02.962784000 14701 0x8189af0 LOG                  adder gstadder.c:784:gst_adder_collected:<adder_0x81a3830> pushing outbuf, timestamp 0:00:00.249977324
0:00:02.968915000 14701 0x837b298 LOG                  adder gstadder.c:172:gst_adder_setcaps:<adder_0x81a3830> setting caps on pad 0x8382a88,sink2 to audio/x-raw-float, width=(int)32, rate=(int)44100, channels=(int)1, endianness=(int)1234
0:00:02.968966000 14701 0x837b298 DEBUG                adder gstadder.c:219:gst_adder_setcaps:<adder_0x81a3830> parse_caps sets adder to format float
0:00:02.969068000 14701 0x837b298 LOG                  adder gstadder.c:681:gst_adder_collected:<adder_0x81a3830> starting to cycle through channels, 2 bytes available (bps = 4)
0:00:02.969081000 14701 0x837b298 LOG                  adder gstadder.c:711:gst_adder_collected:<adder_0x81a3830> channel 0x837c830: making output buffer of 2 bytes
0:00:02.969097000 14701 0x837b298 LOG                  adder gstadder.c:724:gst_adder_collected:<adder_0x81a3830> channel 0x837c830: copying 2 bytes from data 0x8391e00
0:00:02.969130000 14701 0x837b298 LOG                  adder gstadder.c:730:gst_adder_collected:<adder_0x81a3830> channel 0x83794e8: mixing 2 bytes from data 0xb5603f10
0:00:02.969163000 14701 0x837b298 LOG                  adder gstadder.c:730:gst_adder_collected:<adder_0x81a3830> channel 0x8379640: mixing 2 bytes from data 0x83a3a10
0:00:02.969191000 14701 0x837b298 LOG                  adder gstadder.c:784:gst_adder_collected:<adder_0x81a3830> pushing outbuf, timestamp 0:00:00.374965986
e
Comment 3 Stefan Sauer (gstreamer, gtkdoc dev) 2007-03-16 21:42:20 UTC
Created attachment 84742 [details]
pipeline that is used
Comment 4 Stefan Sauer (gstreamer, gtkdoc dev) 2007-03-16 21:48:17 UTC
this works:
GST_DEBUG="adder:4" gst-launch audiotestsrc freq=100 ! adder name=m ! audioconvert ! alsasink audiotestsrc freq=1000 ! audioconvert ! audio/x-raw-float,width=32 ! audioconvert ! m.

this doesn't
GST_DEBUG="adder:4" gst-launch audiotestsrc freq=100 ! audioconvert ! adder name=m ! audioconvert ! alsasink audiotestsrc freq=1000 ! audioconvert ! audio/x-raw-float,width=32 ! audioconvert ! m.
Comment 5 Stefan Sauer (gstreamer, gtkdoc dev) 2007-05-07 20:08:44 UTC
Created attachment 87742 [details]
test application

I wrote an application that shows how one could handle the problem using a caps filter. It works, but the is a glitch in the sound at start and I get:

0:00:00.397822000  1835 0x8196188 WARN               basesrc gstbasesrc.c:1775:gst_base_src_loop:<src1> error: Internal data flow error.
0:00:00.397953000  1835 0x8196188 WARN               basesrc gstbasesrc.c:1775:gst_base_src_loop:<src1> error: streaming task paused, reason not-negotiated (-4)

Any ideas?
Comment 6 Stefan Sauer (gstreamer, gtkdoc dev) 2007-09-25 07:30:18 UTC
This was an application error. Using caps-filter works,