After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 620494 - [rtsp] stuttery audio with some h264/aac streams
[rtsp] stuttery audio with some h264/aac streams
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
git master
Other Linux
: Normal normal
: 0.10.24
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2010-06-03 15:41 UTC by Zaheer Abbas Merali
Modified: 2010-06-03 17:30 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Zaheer Abbas Merali 2010-06-03 15:41:55 UTC
When playing back an rtsp stream with playbin2, the audio is stuttery. I have provided the output from: rtspsrc .... ! application/x-rtp, media=audio ! gdppay ! filesink location=~/stuttry_rtsp.gdp

The file is here: http://dl.dropbox.com/u/219349/stuttry_rtsp.gdp

gst-launch filesrc location=stuttry_rtsp.gdp ! gdpdepay ! decodebin2 ! identity check-imperfect-timestamp=true ! fakesink -m provides lots of imperfect timestamp messages for example:

Got message #1106 from element "identity0" (element): imperfect-timestamp, prev-timestamp=(guint64)90480001625, prev-duration=(guint64)21333333, prev-offset=(guint64)4343040, prev-offset-end=(guint64)18446744073709551615, cur-timestamp=(guint64)90501434766, cur-duration=(guint64)21333333, cur-offset=(guint64)4344068, cur-offset-end=(guint64)18446744073709551615;
Got message #1107 from element "identity0" (element): imperfect-timestamp, prev-timestamp=(guint64)90501434766, prev-duration=(guint64)21333333, prev-offset=(guint64)4344068, prev-offset-end=(guint64)18446744073709551615, cur-timestamp=(guint64)90544200441, cur-duration=(guint64)21333333, cur-offset=(guint64)4346121, cur-offset-end=(guint64)18446744073709551615;
Got message #1108 from element "identity0" (element): imperfect-timestamp, prev-timestamp=(guint64)90586867107, prev-duration=(guint64)21333333, prev-offset=(guint64)4348169, prev-offset-end=(guint64)18446744073709551615, cur-timestamp=(guint64)90629631990, cur-duration=(guint64)21333333, cur-offset=(guint64)4350222, cur-offset-end=(guint64)18446744073709551615;
Comment 1 Wim Taymans 2010-06-03 17:30:39 UTC
commit 2c92f213c5e5d3bcfd7ecc5f541b333fa0ec4947
Author: Wim Taymans <wim.taymans@collabora.co.uk>
Date:   Thu Jun 3 19:23:01 2010 +0200

    mp4gdepay: calculate the frame duration correctly
    
    When we calculate the frame duration, we need to use the amount of
    frames in the _previous_ packet, not the current packet. The frame duration is
    needed to correctly de-interleave interleaved streams. This fixes the case where
    there are a variable number of frames in a packet.
    
    Fixes #620494