noise and stuttering

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


Usually, there are two reason to cause shutters in playback.
1) The decoder/demux cannot generate data in time. If the frame is delayed,
the ringbuffer in sink will drop it. To track it, you can add some long in
gstringbuffer.c to monitor "skip".

gst_ring_buffer_commit_full()
{
......
      /* segment too far ahead, writer too slow, we need to drop, hopefully
UNLIKELY */
      if (G_UNLIKELY (diff < 0)) {
        /* we need to drop one segment at a time, pretend we wrote a
         * segment. */
        skip = TRUE;
        break;
      }
......
}

If the ringbuffer drop the frame, please check you decoder/demux's speed
firstly.

2) the audio device's buffer is not configure correctly. Of cause, you are
debugging it.


On Sat, Aug 2, 2008 at 4:19 AM, Dennis Fleming <arsantiqua at sbcglobal.net>wrote:

> It's interesting that I am getting the opposite problem.  Ie. stutters for
> wav and not for MP3.  It looks like we were optimizing internal buffers for
> 44.1 kHz.  However, 22.05kHz had problems with buffer-time=10000 and
> latency-time=100.  Going back to the defaults 220xkHz worked but 44.1 was
> sensitive to activity on the system.  I'll try the sync fix to see what
> happens on my device.
>
> Dennis
>
> ----- Original Message ----
> From: Jan Schmidt <thaytan at noraisin.net>
> To: Raj Swaminathan <rajshyam at gmail.com>
> Cc: gstreamer-embedded at lists.sourceforge.net
> Sent: Friday, August 1, 2008 12:08:27 PM
> Subject: Re: noise and stuttering
>
>
> On Fri, 2008-08-01 at 13:51 -0500, Raj Swaminathan wrote:
> >
> > Can u also explain why the async fix helped ?
>
> ?It helps because it deactivates the clock-synching in the audiosink,
> which means that the file plays at the speed it manages to read, decode
> and output the samples -> that's slower than real-time in this case,
> which is why you're getting 'stuttering'.
>
> Measure how long the file takes to play with 'time' compared to the
> duration of the file.
>
> J.
>
> >
> > On Fri, Aug 1, 2008 at 1:23 PM, Raj Swaminathan <rajshyam at gmail.com>
> > wrote:
> >
> >        Hey Dan,
> >
> >        That worked ... its stuttering .. but keeps playing  ....
> >        thanks a ton !
> >
> >        osssink: wav file play fine
> >                      mp3 files, http links stutter but output sound
> >        when buffer-time=1000 latency-time=100 sync=false
> >
> >
> >        Is there any such fix for esdsink ??
> >        Are there more properties that can be modified to stop the
> >        stuttering ??
> >
> >        regards,
> >        raj
> >
> >
> >
> >
> >        On Fri, Aug 1, 2008 at 12:52 PM, Daniel Charles
> >        <dcharlesm at gmail.com> wrote:
> >                Hi Raj,
> >
> >                Have you tried sync=false in the osssink?  I'm not
> >                sure that this is
> >                within your purposes but in some cases that removes
> >                the glitches.
> >
> >                Daniel.
> >
> >
> >                On Fri, Aug 1, 2008 at 12:41 PM, Raj Swaminathan
> >                <rajshyam at gmail.com> wrote:
> >                >
> >                > Hi everyone,
> >                >
> >                > Im having stuttering and stopping issues with
> >                gstreamer on the OMAP 2430...
> >                > I am using an NFS mounted file system via
> >                ethernet ...
> >                >
> >                > osssink: WAV files play without an issue.
> >                >              mp3 files output sound and stop after
> >                a few seconds if i set
> >                > buffer-time=1000 and latency-time=100
> >                >              mp3 files do not output sound without
> >                the settings above.
> >                >              streaming music from http links do not
> >                work under any
> >                > setting.
> >                >
> >                > esdsink: WAV files do not play.
> >                >              mp3 files play nicely.
> >                >              streaming music from http links output
> >                sound and stop after a
> >                > few seconds.
> >                >
> >                > My sources: filesrc, souphttpsrc
> >                > My decoders: wavparse, mad
> >                >
> >                > Ive experimented with placing queues before decoding
> >                and before sending
> >                > audio to the sink. Trying both ways or either/or, do
> >                not impact the output
> >                > signifcantly.
> >                > Can anyone provide some suggestions?
> >                >
> >                > Thanks for your help so far.
> >                >
> >                > regards,
> >                > raj
> >                >
> >                > On Thu, Jul 31, 2008 at 4:42 AM, Jan Schmidt
> >                <thaytan at noraisin.net> wrote:
> >                >>
> >                >> On Wed, 2008-07-30 at 08:50 -0700, Dennis Fleming
> >                wrote:
> >                >> > First off: Thank to you and Zhoa-Lang for getting
> >                back so quickly.
> >                >> > I'm so busy I forgot my manners.
> >                >> >
> >                >> > Testing to find the parameters I have I used
> >                decodebin, but in the
> >                >> > program itself uses playbin with the same effect.
> >                The only variation
> >                >> > is that I set the sink property to alsasink since
> >                that seems the only
> >                >> > way to set buffer-time and latency-time
> >                properties.  Also, it seems
> >                >> > counter-intuitive to me that an uncompressed WAV
> >                file should have
> >                >> > problems keeping up while MP3s with the same
> >                sampling frequency and
> >                >> > word size have none.  And yet the artifacts are
> >                indicative of dropped
> >                >> > buffers.
> >                >>
> >                >> If the bottleneck is retrieving data from the input
> >                location, then it's
> >                >> entirely feasible. What's your data store? SD card,
> >                NFS? A WAV file
> >                >> might be 10 or more times more data to read and
> >                cause read stalls, where
> >                >> the smaller mp3 can be read in fine and decoded in
> >                memory with no
> >                >> further problems.
> >                >>
> >                >> J.
> >                >>
> >                >> > Dennis
> >                >> >
> >                >> >
> >                >> > ----- Original Message ----
> >                >> > From: Thijs Vermeir <thijsvermeir at gmail.com>
> >                >> > To: Dennis Fleming <arsantiqua at sbcglobal.net>
> >                >> > Cc: gstreamer-embedded at lists.sourceforge.net
> >                >> > Sent: Tuesday, July 29, 2008 3:59:30 PM
> >                >> > Subject: Re: noise and stuttering
> >                >> >
> >                >> > Hi,
> >                >> >
> >                >> > On Tue, Jul 29, 2008 at 5:43 PM, Dennis Fleming
> >                >> > <arsantiqua at sbcglobal.net> wrote:
> >                >> > > The interesting thing is that uncompressed WAV
> >                files are causing the
> >                >> > problem
> >                >> > > while MP3s were fixed by setting the
> >                buffer-time and latency-time to
> >                >> > values
> >                >> > > smaller than found on a desktop.  What would
> >                adding a queue do to
> >                >> > latency
> >                >> > > through the system?
> >                >> >
> >                >> > There is no latency in this case because there
> >                are no live-sources.
> >                >> > [1]
> >                >> >
> >                >> > > Also, I suppose, that I will need to break up
> >                the
> >                >> > > playbin and create a pipeline myself, yes?
> >                >> >
> >                >> > playbin has the queue elements on the correct
> >                location, no changes
> >                >> > needed.
> >                >> > You where already using a custom pipeline, no?
> >                >> >
> >                >> > Gr,
> >                >> >
> >                >> > [1]
> >                >> >
> >                >> >
> >
> http://webcvs.freedesktop.org/gstreamer/gstreamer/docs/design/draft-latency.txt?view=markup
> >                >> >
> >                >> > >
> >                >> > > Dennis
> >                >> > >
> >                >> > > ----- Original Message ----
> >                >> > > From: Thijs Vermeir <thijsvermeir at gmail.com>
> >                >> > > To: Zhao Liang-E3423C <E3423C at motorola.com>
> >                >> > > Cc: Dennis Fleming <arsantiqua at sbcglobal.net>;
> >                >> > > gstreamer-embedded at lists.sourceforge.net
> >                >> > > Sent: Tuesday, July 29, 2008 2:46:42 AM
> >                >> > > Subject: Re: noise and
> >                stuttering
> >                >> > >
> >                >> > > Hi,
> >                >> > >
> >                >> > > On Tue, Jul 29, 2008 at 11:15 AM, Zhao
> >                Liang-E3423C
> >                >> > <E3423C at motorola.com>
> >                >> > > wrote:
> >                >> > >> What's the rootcause of noise and stuttering ?
> >                >> > >
> >                >> > > Now you are using only 1 thread for all the
> >                elements and if the
> >                >> > > filesrc or the decoder is too slow sometimes
> >                >> > > you don't have time to catch up. By adding the
> >                queue you put the
> >                >> > sink
> >                >> > > in another thread and now the filesrc+decoder
> >                can
> >                >> > > do some decoding in advance.
> >                >> > >
> >                >> > > Gr,
> >                >> > > Thijs
> >                >> > >
> >                >> > >>
> >                >> > >> For normal playback, it should not have
> >                issues. If decoder didn't
> >                >> > drop
> >                >> > >> data, I think alsasink did it.
> >                >> > >> By gstaudiosink mechanism, it will drop data
> >                replaced with blank
> >                >> > data when
> >                >> > >> data is late. I guess the rootcause is that.
> >                >> > >>
> >                >> > >> If that, I have no ideas except adding a queue
> >                before alsasink, and
> >                >> > when
> >                >> > >> queue is empty, pause the pipeline, it will
> >                not cause dropout, but
> >                >> > still
> >                >> > >> discontinous.
> >                >> > >>
> >                >> > >> Zhao liang
> >                >> > >> ________________________________
> >                >> > >> From:
> >                gstreamer-embedded-bounces at lists.sourceforge.net
> >                >> > >>
> >                [mailto:gstreamer-embedded-bounces at lists.sourceforge.net]
> On Behalf
> >                >> > Of
> >                >> > >> Dennis Fleming
> >                >> > >> Sent: Tuesday, July 29, 2008 4:37 AM
> >                >> > >> To: gstreamer-embedded at lists.sourceforge.net
> >                >> > >> Subject: noise and stuttering
> >                >> > >>
> >                >> > >> I'm trying to create an audio player on an
> >                IMX31 target and I've
> >                >> > found a
> >                >> > >> discrepancy in the output of various formats.
> >                  If I send MP3 data I
> >                >> > have
> >                >> > >> to
> >                >> > >> set the buffer-time and latency-time to 10000
> >                and 100 respectively
> >                >> > to play
> >                >> > >> without severe dropouts.  However WAV files
> >                still have drop-out at
> >                >> > a
> >                >> > >> consistent rate (about 1 per 10 sec).  Are
> >                there some general
> >                >> > features I'm
> >                >> > >> missing or is there some guidance on the
> >                buffer-time/latency time
> >                >> > that
> >                >> > >> would
> >                >> > >> account for this difference?
> >                >> > >>
> >                >> > >> Linux 2.6.22.19
> >                >> > >> gstreamer 0.10.17 (open-embedded)
> >                >> > >> gst-launch filesrc location=<file> !
> >                decodebin ! alsasink
> >                >> > >> buffer-time=10000
> >                >> > >> latency-time=100
> >                >> > >>
> >                >> > >> Dennis
> >                >> > >>
> >                >> > >>
> >                >> >
> >                >> >
> >
> -------------------------------------------------------------------------
> >                >> > >> This SF.Net email is sponsored by the Moblin
> >                Your Move Developer's
> >                >> > >> challenge
> >                >> > >> Build the coolest Linux based applications
> >                with Moblin SDK & win
> >                >> > great
> >                >> > >> prizes
> >                >> > >> Grand prize is a trip for two to an Open
> >                Source event anywhere in
> >                >> > the
> >                >> > >> world
> >                >> > >>
> >
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> >                >> > >>
> >                _______________________________________________
> >                >> > >> Gstreamer-embedded mailing list
> >                >> > >> Gstreamer-embedded at lists.sourceforge.net
> >                >> > >>
> >
> https://lists.sourceforge.net/lists/listinfo/gstreamer-embedded
> >                >> > >>
> >                >> > >>
> >                >> > >
> >                >> >
> >                >> >
> >                >> >
> >
> -------------------------------------------------------------------------
> >                >> > This SF.Net email is sponsored by the Moblin Your
> >                Move Developer's
> >                >> > challenge
> >                >> > Build the coolest Linux based applications with
> >                Moblin SDK & win great
> >                >> > prizes
> >                >> > Grand prize is a trip for two to an Open Source
> >                event anywhere in the
> >                >> > world
> >                >> >
> >
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> >                >> > _______________________________________________
> >                Gstreamer-embedded
> >                >> > mailing list
> >                Gstreamer-embedded at lists.sourceforge.net
> >                >> >
> >
> https://lists.sourceforge.net/lists/listinfo/gstreamer-embedded
> >                >> --
> >                >> Jan Schmidt <thaytan at noraisin.net>
> >                >>
> >                >>
> >                >>
> >
> -------------------------------------------------------------------------
> >                >> This SF.Net email is sponsored by the Moblin Your
> >                Move Developer's
> >                >> challenge
> >                >> Build the coolest Linux based applications with
> >                Moblin SDK & win great
> >                >> prizes
> >                >> Grand prize is a trip for two to an Open Source
> >                event anywhere in the
> >                >> world
> >                >>
> >
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> >                >> _______________________________________________
> >                >> Gstreamer-embedded mailing list
> >                >> Gstreamer-embedded at lists.sourceforge.net
> >                >>
> >
> https://lists.sourceforge.net/lists/listinfo/gstreamer-embedded
> >                >
> >                >
> >                >
> >
> -------------------------------------------------------------------------
> >                > This SF.Net email is sponsored by the Moblin Your
> >                Move Developer's challenge
> >                > Build the coolest Linux based applications with
> >                Moblin SDK & win great
> >                > prizes
> >                > Grand prize is a trip for two to an Open Source
> >                event anywhere in the world
> >                >
> >
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> >                > _______________________________________________
> >                > Gstreamer-embedded mailing list
> >                > Gstreamer-embedded at lists.sourceforge.net
> >                >
> >
> https://lists.sourceforge.net/lists/listinfo/gstreamer-embedded
> >                >
> >                >
> >
> >
> >
> >
> >
> > -------------------------------------------------------------------------
> > This SF.Net email is sponsored by the Moblin Your Move Developer's
> challenge
> > Build the coolest Linux based applications with Moblin SDK & win great
> prizes
> > Grand prize is a trip for two to an Open Source event anywhere in the
> world
> > http://moblin-contest.org/redirect.php?banner_id=100&url=/
> > _______________________________________________ Gstreamer-embedded
> mailing list Gstreamer-embedded at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gstreamer-embedded
> --
> Jan Schmidt <thaytan at noraisin.net>
>
>
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's
> challenge
> Build the coolest Linux based applications with Moblin SDK & win great
> prizes
> Grand prize is a trip for two to an Open Source event anywhere in the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> Gstreamer-embedded mailing list
> Gstreamer-embedded at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gstreamer-embedded
>
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's
> challenge
> Build the coolest Linux based applications with Moblin SDK & win great
> prizes
> Grand prize is a trip for two to an Open Source event anywhere in the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> Gstreamer-embedded mailing list
> Gstreamer-embedded at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gstreamer-embedded
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-embedded/attachments/20080803/76c85337/attachment.htm>


[Index of Archives]     [Linux Embedded]     [Linux ARM Kernel]     [Linux for ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux Media]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux