oggdemux

Neil Jones neiljay at gmail.com
Fri Jan 27 04:18:11 PST 2012


Hi,

I'm currently trying to test my multi-format audio decoder plugin with
Ogg Vorbis files, specifically I've been checking to confirm I'm
putting the correct timestamps into the PCM buffers I forward on to
the sink.

Im am seeing some odd behaviour the first 4 buffers sent to me dont
have valid timestamps:

gstaxd: Chaining buffer of size 30 timestamp -1 duration -1
gstaxd: Chaining buffer of size 158 timestamp -1 duration -1
gstaxd: Chaining buffer of size 2888 timestamp -1 duration -1
gstaxd: Chaining buffer of size 55 timestamp 0 duration 0
gstaxd: Chaining buffer of size 51 timestamp 0 duration 2902494
gstaxd: Chaining buffer of size 328 timestamp 2902494 duration 13061224
gstaxd: Chaining buffer of size 50 timestamp 15963718 duration 13061225
gstaxd: Chaining buffer of size 50 timestamp 29024943 duration 2902494

why would the first buffers have no timestamps are these header frame
or id tags ? if so why hasn't oggdemux stripped these ? and why do I
get a buffer of 0 duration but is still 55 bytes big ?

If i get a buffer with a timestamp of none I read a fixed amount of
data from the decoder (input buffer size x 4) then try to interpolate
the time stamps based on the sample rate of the PCM data, thus with
this stream I get a discontinutiy with my outgoing buffer timestamps
(as seen at the sink):


Setting pipeline to PLAYING ...
fakesink0: last-message = "chain   ******* < (  120 bytes, timestamp:
0:00:00.000000000, duration: 0:00:00.000312500,
GST_STATE_CHANGE_PAUSED_TO_PLAYING
fakesink0: last-message = "chain   ******* < (  632 bytes, timestamp:
0:00:00.000312500, duration: 0:00:00.001645833,
New clock: GstSystemClock
fakesink0: last-message = "chain   ******* < (11552 bytes, timestamp:
0:00:00.001958333, duration: 0:00:00.030083333,
fakesink0: last-message = "chain   ******* < (    0 bytes, timestamp:
0:00:00.000000000, duration: 0:00:00.000000000,      ***
discontinutity ***
fakesink0: last-message = "chain   ******* < ( 1114 bytes, timestamp:
0:00:00.000000000, duration: 0:00:00.002902494,
fakesink0: last-message = "chain   ******* < ( 5015 bytes, timestamp:
0:00:00.002902494, duration: 0:00:00.013061224,
fakesink0: last-message = "chain   ******* < ( 5015 bytes, timestamp:
0:00:00.015963718, duration: 0:00:00.013061225,
fakesink0: last-message = "chain   ******* < ( 1114 bytes, timestamp:
0:00:00.029024943, duration: 0:00:00.002902494,

my pipeline is: gst-launch -v filesrc location=/home/08_Poison.ogg   !
typefind ! oggdemux ! axd ! fakesink

Any help appreciated,

Cheers

Neil


More information about the gstreamer-devel mailing list