I have compared log entries like the following to the samples I am feeding the pipeline:<br><br>&quot;dshowaudiodec : chain (size 768)=&gt; pts 0:00:00.128000000 stop 0:00:00.320000000&quot;<br><br>This line is produced by the following statement (from gstdshowaudiodec.c):<br>
<br>GST_CAT_DEBUG_OBJECT (dshowaudiodec_debug, adec, &quot;chain (size %d)=&gt; pts %&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GST_TIME_FORMAT &quot; stop %&quot; GST_TIME_FORMAT,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GST_BUFFER_SIZE (buffer), GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buffer)),<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buffer) +<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GST_BUFFER_DURATION (buffer)));<br><br>Those timestamps are matching from what I can tell and therefore look ok to me.<br><br><br><br>It is possible that I am not setting all necessary data on the GstBuffer in the fakesrc. The following fields get set at the moment:<br>
<ul><li>GST_BUFFER_DATA<br></li><li>GST_BUFFER_SIZE<br></li><li>GST_BUFFER_TIMESTAMP</li><li>GST_BUFFER_DURATION</li><li>GST_BUFFER_FLAG_DISCONT (if present in source sample)</li><li>GST_BUFFER_FLAG_PREROLL (if present in source sample)</li>
</ul><br>It is also worth mentioning that my fakesrc has the &quot;is-live&quot; property set to TRUE.<br><br>Thanks,<br><br>Andreas<br><br><br><div class="gmail_quote">On Tue, May 6, 2008 at 1:43 AM, Felipe Contreras &lt;<a href="mailto:felipe.contreras@gmail.com">felipe.contreras@gmail.com</a>&gt; wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div><div></div><div class="Wj3C7c">On Tue, May 6, 2008 at 1:41 AM, Andreas Schuler &lt;<a href="mailto:andreas@neokast.com">andreas@neokast.com</a>&gt; wrote:<br>

&gt; Hi all,<br>
&gt;<br>
&gt; I am having some trouble playing back Windows Media content.<br>
&gt;<br>
&gt; The setup is somewhat unique but necessary for my application:<br>
&gt;<br>
&gt; 2 fakesrc components, which are injecting encoded audio and video data<br>
&gt; Sources are connected to capsfilters, on which I am setting the correct<br>
&gt; input caps (see below)<br>
&gt; Caps filters are connected to a multiqueue<br>
&gt; Queue is connected to two decoding bins<br>
&gt; Standard audio and video rendering tails (i.e. convert filters, rendering<br>
&gt; sinks etc.) are connected to decoding bin source pads This setup actually<br>
&gt; works fine for XVID/MP3 encoded content but I didn&#39;t have any luck getting<br>
&gt; it to play with WM content. The caps I have for audio and video are as<br>
&gt; follows:<br>
&gt;<br>
&gt; audio/x-wma, channels=(int)2, rate=(int)32000, wmaversion=(int)2,<br>
&gt; bitrate=(int)32000, codec_data=(buffer)008800001f0000000000,<br>
&gt; block_align=(int)768, depth=(int)16<br>
&gt; &nbsp;video/x-wmv, width=(int)720, height=(int)496, framerate=(fraction)24/1,<br>
&gt; wmvversion=(int)2, codec_data=(buffer)baf8ad00, format=(fourcc)WMV2<br>
&gt;<br>
&gt; I have the same content in a regular WMV file, which is playing back fine<br>
&gt; when using the playbin. I verified the caps with that setup (the only<br>
&gt; difference appears to be the order of some of the fields and the video<br>
&gt; framerate [the actual value is 23.97fps]):<br>
&gt;<br>
&gt; audio/x-wma, wmaversion=(int)2, bitrate=(int)32000, depth=(int)16,<br>
&gt; rate=(int)32000, channels=(int)2, block_align=(int)768,<br>
&gt; codec_data=(buffer)008800001f0000000000<br>
&gt; video/x-wmv, wmvversion=(int)2, framerate=(fraction)25/1, width=(int)720,<br>
&gt; height=(int)496, codec_data=(buffer)baf8ad00, format=(fourcc)WMV2<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; When trying to play the content using the setup mention above I get a lot of<br>
&gt; the following messages from gstsegment.c (702):<br>
&gt;<br>
&gt; CRITICAL **: file E:\devel-release\src_releases\gstreamer\gst\gstsegment.c:<br>
&gt; line 702: assertion `segment-&gt;format == format&#39; failed<br>
&gt;<br>
&gt; Enabling the debug output reveals the following from the dshow audio<br>
&gt; decoder:<br>
&gt;<br>
&gt; dshowaudiodec : received new segment from 0:00:00.000000000 to<br>
&gt; 99:99:99.999999999<br>
&gt; dshowaudiodec : chain (size 768)=&gt; pts 0:00:00.000000000 stop<br>
&gt; 0:00:00.192000000<br>
&gt; &nbsp;dshowaudiodec : this buffer has a DISCONT flag (0:00:00.000000000),<br>
&gt; flushing<br>
&gt; dshowaudiodec : chain (size 768)=&gt; pts 0:00:00.128000000 stop<br>
&gt; 0:00:00.320000000<br>
&gt; dshowaudiodec : buffer is out of segment, start 0:00:00.128000000 stop<br>
&gt; 0:00:00.256000000<br>
&gt; &nbsp;dshowaudiodec : buffer is out of segment, start 0:00:00.256000000 stop<br>
&gt; 0:00:00.320000000<br>
&gt; dshowaudiodec : chain (size 768)=&gt; pts 0:00:00.320000000 stop<br>
&gt; 0:00:00.512000000<br>
&gt; dshowaudiodec : buffer is out of segment, start 0:00:00.320000000 stop<br>
&gt; 0:00:00.448000000<br>
&gt; &nbsp;dshowaudiodec : buffer is out of segment, start 0:00:00.448000000 stop<br>
&gt; 0:00:00.512000000<br>
&gt; dshowaudiodec : chain (size 768)=&gt; pts 0:00:00.512000000 stop<br>
&gt; 0:00:00.704000000<br>
&gt; dshowaudiodec : buffer is out of segment, start 0:00:00.512000000 stop<br>
&gt; 0:00:00.640000000<br>
&gt; &nbsp;dshowaudiodec : buffer is out of segment, start 0:00:00.640000000 stop<br>
&gt; 0:00:00.704000000<br>
&gt; dshowaudiodec : chain (size 768)=&gt; pts 0:00:00.704000000 stop<br>
&gt; 0:00:00.896000000<br>
&gt; dshowaudiodec : buffer is out of segment, start 0:00:00.704000000 stop<br>
&gt; 0:00:00.832000000<br>
&gt; &nbsp;dshowaudiodec : buffer is out of segment, start 0:00:00.832000000 stop<br>
&gt; 0:00:00.896000000<br>
&gt;<br>
&gt; The video decoder is showing a similar picture:<br>
&gt;<br>
&gt; dshowvideodec : new segment received =&gt; start=0:00:00.000000000<br>
&gt; stop=99:99:99.999999999<br>
&gt; &nbsp;dshowvideodec : chain (size 1749)=&gt; pts 0:00:00.009000000 stop<br>
&gt; 0:00:00.010000000<br>
&gt; dshowvideodec : this buffer has a DISCONT flag (0:00:00.009000000), flushing<br>
&gt; dshowvideodec : buffer is out of segment, start 0:00:00.009000000 stop<br>
&gt; 0:00:00.010000000<br>
&gt; &nbsp;dshowvideodec : chain (size 2972)=&gt; pts 0:00:02.411000000 stop<br>
&gt; 0:00:02.412000000<br>
&gt; dshowvideodec : buffer is out of segment, start 0:00:02.411000000 stop<br>
&gt; 0:00:02.412000000<br>
&gt; dshowvideodec : chain (size 3735)=&gt; pts 0:00:02.445000000 stop<br>
&gt; 0:00:02.446000000<br>
&gt; &nbsp;dshowvideodec : buffer is out of segment, start 0:00:02.445000000 stop<br>
&gt; 0:00:02.446000000<br>
&gt; dshowvideodec : chain (size 3500)=&gt; pts 0:00:02.478000000 stop<br>
&gt; 0:00:02.479000000<br>
&gt; dshowvideodec : buffer is out of segment, start 0:00:02.478000000 stop<br>
&gt; 0:00:02.479000000<br>
&gt; &nbsp;dshowvideodec : chain (size 5141)=&gt; pts 0:00:02.545000000 stop<br>
&gt; 0:00:02.546000000<br>
&gt; dshowvideodec : buffer is out of segment, start 0:00:02.545000000 stop<br>
&gt; 0:00:02.546000000<br>
&gt; dshowvideodec : chain (size 7849)=&gt; pts 0:00:02.578000000 stop<br>
&gt; 0:00:02.579000000<br>
&gt; &nbsp;dshowvideodec : buffer is out of segment, start 0:00:02.578000000 stop<br>
&gt; 0:00:02.579000000<br>
&gt; dshowvideodec : chain (size 5101)=&gt; pts 0:00:02.611000000 stop<br>
&gt; 0:00:02.612000000<br>
&gt; dshowvideodec : buffer is out of segment, start 0:00:02.611000000 stop<br>
&gt; 0:00:02.612000000<br>
&gt; &nbsp;dshowvideodec : chain (size 7712)=&gt; pts 0:00:02.645000000 stop<br>
&gt; 0:00:02.646000000<br>
&gt; dshowvideodec : buffer is out of segment, start 0:00:02.645000000 stop<br>
&gt; 0:00:02.646000000<br>
&gt;<br>
&gt;<br>
&gt; I understand that the problem appears to be that the &quot;format&quot; in GstSegment<br>
&gt; is not of type GST_FORMAT_TIME when &quot;gst_segment_clip&quot; is called in<br>
&gt; gstdshowaudiocodec.c. The question is why. Can anyone point me in the right<br>
&gt; direction on this one?<br>
<br>
</div></div>What about the timestamps? Are those ok?<br>
<br>
--<br>
<font color="#888888">Felipe Contreras<br>
</font></blockquote></div>