<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Feb 21, 2013 at 1:21 AM, Ralph <span dir="ltr"><<a href="mailto:ralph.gucwa@racelogic.co.uk" target="_blank">ralph.gucwa@racelogic.co.uk</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Have you considered using QoS messages on the pipeline bus?<br>


<a href="http://cgit.freedesktop.org/gstreamer/gstreamer/tree/docs/design/part-qos.txt" target="_blank">http://cgit.freedesktop.org/gstreamer/gstreamer/tree/docs/design/part-qos.txt</a></blockquote><div><br></div><div style>

QoS is using QOS upstream event to tell the status at the sync point. I'm looking forward a more advanced method, which will enable me to inspect into the pipeline status at a specific time. For example, at time 12345678, what's the states of the pipeline before an encoding element, after an mixing element, etc. Thus I'm going to be able to build a visualized graphs to show the running pipeline's performance, and some thing else to help to analyze the system (depending on what kind of variable can we know from the system).</div>

<div style><br></div><div style>In order to archive this goal. I'm making a special element which I named "assess" to help to inspect the pipelines real time. The aim of the <i><b>assess</b></i> element is to inspect into pipelines (many pipelines) and collect <b><i>interesting information</i></b> about the pipeline. By using these collected information, we're going to be able to build such a real time analyze graph.</div>

<div style><br></div><div style>For an example of the <b><i>assess</i></b> element, here we have:</div><div style><br></div><div style>    videotestsrc ! <b>assess</b> name=source ! XXXenc ! <b>assess</b> name=encoded ! .... ! <b>assess</b> name=assessX ! ...</div>

<div style>    ! <b>assess</b> name=assessY ! .... ! <b>assess</b> name=sink ! fakesink</div><div style><br></div><div style>For this goal, I have no idea how QoS could achieve this.</div><div style><br></div><div style>
And now I'm have the assess element working well. But I'm now have some difficulties on deciding which is the <b><i>interesting information</i></b>, and how to get those <b><i>interesting information</i></b>. And by now, the most significant things to know would be like: </div>

<div style><ul style><li style>number of frames dropped at each <b><i>assess point</i></b></li><li style>time spent from one point to any downstream point of a specific frame.<br></li></ul></div><div style>I sincerely hope that some gurus could give me some tips on this. I'm now using variables like<br>

</div><div style><ul style><li style><b>ats</b>: (<i><b>assess time stamp</b></i>) a custom timestamp based on a global system clock for all <b style="font-style:italic">assess point</b>s</li><li style><b>pts</b>: presentation time stamp</li>

<li style><b>dts</b>: decode time stamp</li><li style><b>duration</b>: presentation time duration</li><li style><b>time</b>: total presentation time (sums all duration)</li><li style><b>buffer_count</b>: total buffer counts per <b><i>assess point</i></b></li>

<li style><b>offset</b>: the buffer offset in the stream (the meaning varies basing on the encoding/type of stream, etc)</li></ul><div style>As what I can see from my current development is that: </div><div style><ul style>

<li style>the <b>pts</b> which is the timestamp of the buffer, could some times be GST_CLOCK_TIME_NONE, for example at the point after elements like tcpserversrc, some muexer<br></li><li style>the <b>offset</b> some times could be -1, for example after the videomixer element.</li>

</ul></div></div><div style>And I can't find a variable to help me to <b>identify</b> a GstBuffer (or a frame/sample). And my idea about <b>identification</b> of a GstBuffer is that, every time when a buffer was created, it could have a "id", and the buffer may be resized, encoded, or changed anyhow, and I'm think that the "id" is always identical.</div>

<div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"> <br></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">


<br>
--<br>
View this message in context: <a href="http://gstreamer-devel.966125.n4.nabble.com/Counting-video-frames-and-audio-samples-on-GstBuffer-tp4658661p4658672.html" target="_blank">http://gstreamer-devel.966125.n4.nabble.com/Counting-video-frames-and-audio-samples-on-GstBuffer-tp4658661p4658672.html</a><br>


Sent from the GStreamer-devel mailing list archive at Nabble.com.<br>
_______________________________________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
</blockquote></div><br></div></div>