faad Dropping Frames

Carlos Rafael Giani dv at pseudoterminal.org
Wed Apr 24 13:55:38 PDT 2013


Are you running this on an embedded device? faad is known to have a high 
CPU usage.

On 2013-04-24 22:35, johnwesting wrote:
> I have a pipeline that looks like the following:
>
>    gst-launch --gst-debug-level=2 bta2dpsrc ! rtplatmdepay ! capsfilter !
> faad ! alsasink
>
> that is receiving audio over a Bluetooth connection. When I run the pipeline
> I continuously get the error:
>
>    audiodecoder gstaudiodecoder.c:1083:gst_audio_decoder_drain:<faad0> still
> 1 frames left after draining
>
> and I can't hear any audio being played through ALSA. However, if I replace
> faad with ffdec_aac it works fine. I checked using tee to see if any data is
> passed out of faad and it is not, all encoded frames are dropped. Does
> anyone have any idea what the cause might be? I suspected it was a timing
> issue and that frames were being dropped due to excessively large latencies,
> but I've added queues with min-threshold-buffers set to 100 in several
> places and I'm still getting the same error.
>
> Following is a backtrace from gdb from the point where the warning occurs in
> gstaudiodecoder.c.
>
> 1082          GST_WARNING_OBJECT (dec, "still %d frames left after
> draining",
> (gdb) bt
> #0  gst_audio_decoder_drain (dec=0x8196140) at gstaudiodecoder.c:1082
> #1  0x00841c84 in gst_audio_decoder_flush (dec=0x8196140, hard=0) at
> gstaudiodecoder.c:1106
> #2  0x00842da8 in gst_audio_decoder_chain (pad=0x8186bf8, buffer=0x81c76b8)
> at gstaudiodecoder.c:1375
> #3  0x0018d49e in gst_pad_push (pad=0x8186b30, buffer=0x81c76b8) at
> gstpad.c:4710
> #4  0x0079fb8e in gst_base_transform_chain (pad=0x8186a68, buffer=0x81c76b8)
> at gstbasetransform.c:2658
> #5  0x0018d49e in gst_pad_push (pad=0x81869a0, buffer=0x81c76b8) at
> gstpad.c:4710
> #6  0x007d4e87 in gst_base_rtp_depayload_push_ts (filter=0x818f018,
> timestamp=1779461283, out_buf=0x81c76b8)
>      at gstbasertpdepayload.c:610
> #7  0x007d53db in gst_base_rtp_depayload_chain (pad=0x81868d8, in=0x806bb00)
> at gstbasertpdepayload.c:354
> #8  0x0018d49e in gst_pad_push (pad=0x8186810, buffer=0x806bb00) at
> gstpad.c:4710
> #9  0x00795b63 in gst_base_src_loop (pad=0x8186810) at gstbasesrc.c:2559
> #10 0x001b7158 in gst_task_func (task=0x81c4148) at gsttask.c:327
> #11 0x001b8308 in default_func (tdata=0x81a2bc0, pool=0x8061808) at
> gsttaskpool.c:70
> #12 0x002d5047 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
> #13 0x002d46b3 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
> #14 0x00369d4c in start_thread (arg=0xb61ffb40) at pthread_create.c:308
> #15 0x0046cdde in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130
>
> I looked at the code for a while but couldn't make any conclusions. Thanks
> so much.
>
> Samuel
>
>
>
> --
> View this message in context: http://gstreamer-devel.966125.n4.nabble.com/faad-Dropping-Frames-tp4659660.html
> Sent from the GStreamer-devel mailing list archive at Nabble.com.
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel



More information about the gstreamer-devel mailing list