oggdemux

Wim Taymans wim.taymans at gmail.com
Fri Jan 27 06:22:39 PST 2012


On 01/27/2012 01:18 PM, Neil Jones wrote:
> 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 ?

The first 3 packets are headers to setup the vorbis decoder, not sending 
them would mean that the decoder can't work. The 4th packet contains 
samples but does not produce any output so has a 0 duration.

Wim
>
> 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
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel



More information about the gstreamer-devel mailing list