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 599877 - AAC (.m4a) files skip when played in Rhythmbox
AAC (.m4a) files skip when played in Rhythmbox
Status: RESOLVED WONTFIX
Product: GStreamer
Classification: Platform
Component: dont know
unspecified
Other Linux
: Normal normal
: NONE
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2009-10-28 04:40 UTC by Thomas Winwood
Modified: 2012-02-18 13:56 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Thomas Winwood 2009-10-28 04:40:23 UTC
I own the Homestuck Vol. 1 soundtrack (http://www.mspaintadventures.com) in AAC format (output of _file_ is "ISO Media, MPEG v4 system, iTunes AAC-LC").

I downloaded the necessary bits of gstreamer to play these, but when I do there is momentary skipping approximately every five seconds. It doesn't matter whether it's in Rhythmbox or via Nautilus' preview, I get the same skipping. The files played just fine in Windows under foobar2000.
Comment 1 Tim-Philipp Müller 2009-10-28 09:56:41 UTC
Could you make a sample file available please, or point us towards a download link?
Comment 2 Thomas Winwood 2009-10-28 13:56:17 UTC
Oh, sorry. Here: http://ketsuban.cleverpun.com/01 Showtime (Piano Refrain).m4a
Comment 3 Tim-Philipp Müller 2009-10-28 14:37:07 UTC
Easily reproducable: fwiw ffdec_alac outputs one sample per input buffer, always with the same timestamp but a different duration:

(identity0:sink)i (6178 bytes,  timestamp: 0:00:00.000000000, duration: 0:00:00.085333333
(identity1:sink)i (16384 bytes, timestamp: 0:00:00.000000000, duration: 0:00:00.092879818

(identity0:sink)i (4995 bytes,  timestamp: 0:00:00.085333333, duration: 0:00:00.085333333
(identity1:sink)i (16384 bytes, timestamp: 0:00:00.085333333, duration: 0:00:00.092879818

(identity0:sink)i (4372 bytes,  timestamp: 0:00:00.170666666, duration: 0:00:00.085333334
(identity1:sink)i (16384 bytes, timestamp: 0:00:00.170666666, duration: 0:00:00.092879818
Comment 4 Thiago Sousa Santos 2009-10-28 15:06:40 UTC
When running "filesrc ! qtdemux ! ffdec_alac ! fakesink -v" I get:

/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain   ******* < (16384 bytes, timestamp: 0:00:00.000000000, duration: 0:00:00.092879818, offset: -1, offset_end: -1, flags: 32) 0x1c202b0"
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain   ******* < (16384 bytes, timestamp: 0:00:00.085333333, duration: 0:00:00.092879818, offset: -1, offset_end: -1, flags: 0) 0x1c201b0"
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain   ******* < (16384 bytes, timestamp: 0:00:00.170666666, duration: 0:00:00.092879818, offset: -1, offset_end: -1, flags: 0) 0x1c200b0"
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain   ******* < (16384 bytes, timestamp: 0:00:00.256000000, duration: 0:00:00.092879818, offset: -1, offset_end: -1, flags: 0) 0x19e9e80"
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain   ******* < (16384 bytes, timestamp: 0:00:00.341333333, duration: 0:00:00.092879818, offset: -1, offset_end: -1, flags: 0) 0x1c20030"
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain   ******* < (16384 bytes, timestamp: 0:00:00.426666666, duration: 0:00:00.092879818, offset: -1, offset_end: -1, flags: 0) 0x1c20130"


Timestamps are increasing and duration is fixed.
Comment 5 Wim Taymans 2009-11-02 17:07:51 UTC
something is weird with the samplerate. qtdemux says it 48000 but ffdec then changes it to 44100.
Comment 6 Wim Taymans 2009-11-02 17:24:30 UTC
This file is broken. 

qtdemux has 44100 as the samplerate (this is correct) but then calculates timestamps as if it's a 48000 Hz file. This screws up the timestamping. vlc and xine also skip badly while trying to keep up with the timestamps. mplayer seems to ignore timestamps and plays this ok.

There is not much we can do about that because alac does not have a fixed number of samples in a frame. This means we can't estimate the samplerate and correct.

We could disable timestamps in playbin2 when dealing with audio-only files but that seems like the wrong thing to do.
Comment 7 Tim-Philipp Müller 2012-02-18 13:56:43 UTC
Closing as CANTFIX/WONTFIX then..