faad Dropping Frames

johnwesting john.blank.westing at gmail.com
Wed Apr 24 13:35:27 PDT 2013


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.


More information about the gstreamer-devel mailing list