<div class="gmail_extra"><br><br><div class="gmail_quote">2012/4/25 Stephen Warren <span dir="ltr">&lt;<a href="mailto:swarren@nvidia.com" target="_blank">swarren@nvidia.com</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Aaron Plattner wrote at Tuesday, April 24, 2012 2:01 PM:<br>
<div><div class="h5">&gt; Sorry for the slow reply.<br>
&gt;<br>
&gt; On 02/29/2012 01:46 PM, Emeric Grange wrote:<br>
&gt; &gt; I have been using this implementation to develop and test the mesa decoder.<br>
&gt; &gt; The flaws of this simple method are that some fields like &quot;color_space&quot; or<br>
&gt; &gt; &quot;clamping_type&quot; could be used by the decoder.<br>
&gt; &gt; As Aaron said the calling application still needs to parse out the<br>
&gt; &gt; refresh_golden_frame, refresh_alternate_frame and refresh_last_frame. This is<br>
&gt; &gt; bad news because these fields are binary arithmetic encoded, there positions<br>
&gt; &gt; cannot be guessed, and so every fields preceding them must be decoded too. That<br>
&gt; &gt; also mean that the calling application must implement a VP8 &quot;boolean decoder&quot;.<br>
&gt;<br>
&gt; Yeah, that&#39;s pretty lame. If I&#39;m reading it right, the caller just needs to keep<br>
&gt; track of the arithmetic decoder state for the first partition, and can pass the<br>
&gt; other partitions as-is into the library.<br>
&gt;<br>
&gt; The question is whether it&#39;s better to pass the entire compressed first<br>
&gt; partition in too, or have the caller decompress the whole thing first, or some<br>
&gt; hybrid approach.<br>
&gt;<br>
&gt; &gt; - The first patch (<a href="https://github.com/emericg/libvdpau-" target="_blank">https://github.com/emericg/libvdpau-</a><br>
&gt; vp8/commit/f7e3e25cadace8b5dff2f4ee9870f7e86faf30d8)<br>
&gt;<br>
&gt; This is the &quot;pass in all the partitions&quot; approach, right?  When it says &quot;Include<br>
&gt; all frames,&quot; do you mean all compressed partitions in the frame?<br>
&gt;<br>
&gt; Stephen, does this new interface look like it makes sense?  It&#39;s just the parsed<br>
&gt; uncompressed header plus reference frame handles, and then leaves parsing<br>
&gt; everything else up to the decoder.<br>
<br>
</div></div>I think this looks basically fine. A couple thoughts though:<br>
<br>
* We should validate this with internal VP8 experts, just in case there&#39;s<br>
some problem more obvious to them. I&#39;m not at all familiar with VP8.<br></blockquote><div>Of course.</div><div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


* I would be tempted to require inclusion of all frame header in the<br>
bitstream buffer - starting right at the first byte of the &quot;uncompressed<br>
data chunk&quot;. If a driver doesn&#39;t need it, it&#39;s fixed-size so easy to skip.<br>
If a driver does need it, having it already in the bitstream buffer avoids<br>
the need to reconstruct it from VdpPictureInfoVP8 before sending it to<br>
hardware.</blockquote><div>Yes it make sense, I&#39;m ok with it.</div><div><br></div><div><br></div><div>Thanks,</div><div>Emeric</div></div></div>