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 _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
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 > [hidden email] > http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Thanks that makes sense.
On Fri, Jan 27, 2012 at 2:22 PM, Wim Taymans <[hidden email]> wrote: > 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 >> [hidden email] >> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel > > > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |