audiomixer gaps

jim nualart jim at austinmodern.com
Sat Dec 12 19:21:28 UTC 2020


A little more info on this...

1. By "gaps", I mean silence or 0s. And this is not simply an artifact of
using filesrc to write a wav. The gaps are also audible (or rather, not
audible, since it's silence, but I think everyone knows what I mean :-)

2. As I mentioned previously, I see the same behavior (gaps) if I replace
audiotestsrc with alsasrc (pointing to a line-in where I am playing a sine
wave from my phone).

3. Enabling GST_DEBUG=audioaggregator:5 I see a Timeout msg, e.g.,
"Timeout, missing 36 frames (0:00:00.000816326)" that corresponds to all
the gaps in the resulting wav file.

Based on that, I start to think that maybe I need to set a latency on the
audiomixer (the default is 0). However, no value I use makes any difference.

Next, and I can't explain why, I put a queue immediately after the
audiomixer (no latency or other non-default settings). This eliminates the
Timeouts (and gaps of silence). This holds true when I switch back to an
alsasrc instead of the audiotestsrc.

I dumped the graphs -- the queue (it's the only queue in the very short
pipeline) does not show as buffering any data. So I am really confused as
to how this "fixed" the issue.

Does anyone have an explanation? I'd settle for even just a well-written
theory :-)

thanks in advance,
-jim




> Hi Matt,
> I tried that as well. I get the same result .. gaps every 5 seconds.
>
> If I remove is-live (with or without do-timestamp), then there are no gaps.
> However, in this case, I also get a much larger, and longer, file; which I
> don't understand.
>
> And again, if I use an adder (vs audiomixer), I get no gaps (with is-live
> and do-timestamp both true). And if I remove the adder, same ... no gaps.
>
> I'm trying not to get hung up on audiotestsrc itself as it is simply a way
> for me to demonstrate what I see with my pipeline using alsasrc and an
> audiomixer.
>
> I suppose I don't really understand what audiomixer is doing. Another
> oddity (I think) is that if instead of running the sample pipeline for a
> set time (using the timeout command), I instead use num-buffers=1000 (in
> audiotestsrc), I get different resulting file sizes:
> - with an adder, I get a file with 10.884s of audio and a size of 960056
> bytes.
> - with an audiomixer, I get a file with 10.920s of audio and a size
> of 1926332 bytes.
>
> Any chance someone is willing to run the same test and compare results?
> export TESTSOURCE1="audiotestsrc wave=0 volume=0.8 is-live=true
> do-timestamp=true samplesperbuffer=480"
> export SINK="wavenc ! filesink location=test.wav"
> timeout 60 gst-launch-1.0 $TESTSOURCE1 blocksize=960 ! audiomixer ! $SINK
>
> The gaps go away if I use an adder, as does my actual problem in my "real"
> pipeline, but I'd like to understand why.
>
> thanks in advance,
> -jim
>
>
> > Date: Tue, 8 Dec 2020 19:05:25 +1100
> > From: Matthew Waters <ystreet00 at gmail.com>
> >
> > Don't use 'do-timestamp=true' with audiotestsrc.? It will not do the
> > right thing.
> >
> > Cheers
> > -Matt
> >
> > On 8/12/20 5:12 pm, jim nualart wrote:
> > > Hi,
> > > Hoping that someone can shed some light on this...
> > >
> > > The following pipeline results in a file with gaps every 5 seconds:
> > > export TESTSOURCE1="audiotestsrc wave=0 volume=0.8 is-live=true
> > > do-timestamp=true samplesperbuffer=480"
> > > export SINK="wavenc ! filesink location=test.wav"
> > > timeout 60 gst-launch-1.0 $TESTSOURCE1 ! audiomixer ! $SINK
> > >
> > > If you open the resulting wav file (e.g., in audacity), there are gaps
> > > every 5 seconds.
> > >
> > > If you remove the audiomixer?from the pipeline, there are no gaps. If
> > > you use an adder (instead of the audiomixer), there are no gaps.
> > >
> > > I've looked at logs (GST_DEBUG=audiomixer:6), and there are no obvious
> > > errors/warnings/etc.
> > >
> > > I realize that the audiotestsrc is not really a live-source and I'm
> > > not sure how well it behaves as such. But I am actually
> > > troubleshooting a similar issue using an alsasrc instead. I am hoping
> > > that if I understand what's going on here, it will help on the other
> > > issue. (For the issue with the alsasrc, I've gone so far as to write
> > > the data to files; one at the src of the element feeding the
> > > audiomixer, and one at the src of the audiomixer itself -- the first
> > > shows no gaps, while the later does show gaps.)
> > >
> > > Many thanks in advance to any advice.
> > > -jim
> > >
> > > _______________________________________________
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20201212/f9b71e05/attachment.htm>


More information about the gstreamer-devel mailing list