[Bug 674025] New: audiofirfilter drops buffers when using more than one channel

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Thu Apr 12 16:18:42 PDT 2012


https://bugzilla.gnome.org/show_bug.cgi?id=674025
  GStreamer | gst-plugins-good | 0.10.x

           Summary: audiofirfilter drops buffers when using more than one
                    channel
    Classification: Platform
           Product: GStreamer
           Version: 0.10.x
        OS/Version: All
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-plugins-good
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: kain2396 at gmail.com
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


Created an attachment (id=211963)
 --> (https://bugzilla.gnome.org/attachment.cgi?id=211963)
Python script to demo the bug

The audiofirfilter (and any element which derives from AudioFXBaseFIRFilter)
will drop buffers when mutlichannel input is piped in. I believe the cause of
this bug is a faulty count of the output samples in the
TIME_DOMAIN_CONVOLUTION_BODY macro of audiofxbasefirfilter.c. Specifically, the
number of input samples is returned with:

  return input_samples / channels; \

...but this is double counting since input_samples has already been divided by
the number of channels previously. The overall effect is that if the kernel is
short enough to invoke the time domain convolution algorithm, then the first
buffer received will processed correctly and the next (nchannels-1) buffers
will be dropped because of the bookkeeping error.

Removing the division by the channels should fix the problem. The attached
python script can be used to hear the bug by processing a dual channel audio
file (the script takes the audio file as an argument) with the audiofirfilter
which should otherwise be an identity operation. The choppiness is the bug in
action.

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