[Bug 746595] omxaacdec requires pulsesink a large 'discont-wait' value

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Wed Mar 25 02:05:42 PDT 2015


https://bugzilla.gnome.org/show_bug.cgi?id=746595

--- Comment #8 from Sebastian Dröge (slomo) <slomo at coaxion.net> ---
Ah one thing that confused me is that the log first shows 22050Hz sample rate
and 1 channel in the srcpad caps of omxaacdec... and then later 44100kHz and 2
channels. I guess the latter is correct? Would be good to also fix omxaacdec to
not first output the wrong caps.

But in any case, you have buffers with 8168 bytes. That means 2042 samples,
which is calculated correctly there. And which is also more or less 2 AAC
frames. And should also have a duration of about 45ms (2042/44100 seconds),
which also looks correct.

The problems I see in the log are the following:

1)
Each input buffer has a duration of about 45ms. Each input buffer *is* a single
AAC frame, which according to the omxaacdec code is supposed to have 1024
samples. 45ms would be 2048 samples. Which AAC profile is used here? This would
already confuse the GstAudioDecoder base class a lot as now it sees the
following: input of 1 frame with 45ms and 1024 samples (wrong, 45ms are 2048
samples), output of 2 frames with 45ms and 2042 samples. This completely
confuses it's time tracking :)

2)
The output frames have the correct duration of 45ms for 2048 samples. But the
timestamps are wrong, sometimes there's a spacing of 90ms between two output
buffers (see the first two buffers for example)

3)
WARNING: from element
/GstPipeline:pipeline0/GstOMXAACDec-omxaacdec:omxaacdec-omxaacdec0: received
more decoded frames 2 than provided 0

This is just a symptom of 1). We get one frame with 45 ms, and finish two
frames with 45 ms. So the base class thinks we produce frames out of thin air.




So the first step here would be to check what the AAC frames actually contain,
how many samples per frame, which sample rate and number of channels.

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