<html>

<head>
<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<meta name=Generator content="Microsoft Word 11 (filtered)">

<style>
<!--
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
@page Section1
        {size:595.3pt 841.9pt;
        margin:70.85pt 69.6pt 2.0cm 69.6pt;}
div.Section1
        {page:Section1;}
-->
</style>

</head>

<body lang=DE link=blue vlink=purple>

<div class=Section1>

<p class=MsoPlainText><font size=1 face="Courier New"><span style='font-size:
8.0pt'>&nbsp;</span></font></p>

<p class=MsoPlainText><font size=1 face="Courier New"><span style='font-size:
8.0pt'>&nbsp;</span></font></p>

<p class=MsoPlainText><font size=1 face="Courier New"><span style='font-size:
8.0pt'>&gt; -----Ursprüngliche Nachricht-----</span></font></p>

<p class=MsoPlainText><font size=1 face="Courier New"><span style='font-size:
8.0pt'>&gt; Von: x264-devel-bounce@videolan.org [mailto:x264-devel-</span></font></p>

<p class=MsoPlainText><font size=1 face="Courier New"><span style='font-size:
8.0pt'>&gt; bounce@videolan.org] Im Auftrag von Ryan Dalzell</span></font></p>

<p class=MsoPlainText><font size=1 face="Courier New"><span style='font-size:
8.0pt'>&gt; Gesendet: Mittwoch, 17. Januar 2007 13:28</span></font></p>

<p class=MsoPlainText><font size=1 face="Courier New"><span style='font-size:
8.0pt'>&gt; An: x264-devel@videolan.org</span></font></p>

<p class=MsoPlainText><font size=1 face="Courier New"><span style='font-size:
8.0pt'>&gt; Betreff: [x264-devel] Re: Error Concealment</span></font></p>

<p class=MsoPlainText><font size=1 face="Courier New"><span style='font-size:
8.0pt'>&gt; </span></font></p>

<p class=MsoPlainText><font size=1 face="Courier New"><span style='font-size:
8.0pt'>&gt; On Wednesday 17 January 2007 09:53, Awadh Bihari wrote:</span></font></p>

<p class=MsoPlainText><font size=1 face="Courier New"><span style='font-size:
8.0pt'>&gt; &gt; Please let me know how to detect the slice loss at the decoder
side.</span></font></p>

<p class=MsoPlainText><font size=1 face="Courier New"><span style='font-size:
8.0pt'>&gt; &gt; It can only be detected if active sps/pps is not equal to
sps/pps ?</span></font></p>

<p class=MsoPlainText><font size=1 face="Courier New"><span style='font-size:
8.0pt'>&gt; </span></font></p>

<p class=MsoPlainText><font size=1 face="Courier New"><span style='font-size:
8.0pt'>&gt; Due to arbitrary slice order and the fact that slice headers do not
tell</span></font></p>

<p class=MsoPlainText><font size=1 face="Courier New"><span lang=EN-GB
style='font-size:8.0pt'>&gt; you how many macroblocks are in the slice (and
assuming you are receiving </span></font></p>

<p class=MsoPlainText><font size=1 face="Courier New"><span lang=EN-GB
style='font-size:8.0pt'>&gt; the video data over a network), I believe that the
only way is to actually</span></font></p>

<p class=MsoPlainText><font size=1 face="Courier New"><span style='font-size:
8.0pt'>&gt; decode each slice and count the number of macroblocks that it
contributes</span></font></p>

<p class=MsoPlainText><font size=1 face="Courier New"><span style='font-size:
8.0pt'>&gt; to a picture. Then, after a suitable period of time to allow late
packets</span></font></p>

<p class=MsoPlainText><font size=1 face="Courier New"><span style='font-size:
8.0pt'>&gt; to arrive, if you still haven't decoded all the macroblocks of a
picture</span></font></p>

<p class=MsoPlainText><font size=1 face="Courier New"><span style='font-size:
8.0pt'>&gt; then you have lost some slices.</span></font></p>

<p class=MsoPlainText><font size=1 color=black face="Courier New"><span
style='font-size:8.0pt;color:black'>&nbsp;</span></font></p>

<p class=MsoPlainText><font size=1 color=navy face="Courier New"><span
lang=EN-GB style='font-size:8.0pt;color:navy'>I dont see why you need to count
anything. The slice always tells you </span></font></p>

<p class=MsoPlainText><font size=1 color=navy face="Courier New"><span
lang=EN-GB style='font-size:8.0pt;color:navy'>where it&#8217;s locates in the
frame, so you just dump the macroblocks to </span></font></p>

<p class=MsoPlainText><font size=1 color=navy face="Courier New"><span
lang=EN-GB style='font-size:8.0pt;color:navy'>that place. If you have arbitrary
slice order, things get more difficult, </span></font></p>

<p class=MsoPlainText><font size=1 color=navy face="Courier New"><span
lang=EN-GB style='font-size:8.0pt;color:navy'>but in principle it should be the
same. You should be able to detect</span></font></p>

<p class=MsoPlainText><font size=1 color=navy face="Courier New"><span
lang=EN-GB style='font-size:8.0pt;color:navy'>when the next frame starts (by
POC and/or frame_number). If that happens</span></font></p>

<p class=MsoPlainText><font size=1 color=navy face="Courier New"><span
lang=EN-GB style='font-size:8.0pt;color:navy'>you can finalize the previous
frame, and that&#8217;s it. Am I missing something </span></font></p>

<p class=MsoPlainText><font size=1 color=navy face="Courier New"><span
lang=EN-GB style='font-size:8.0pt;color:navy'>here?</span></font></p>

<p class=MsoPlainText><font size=1 color=navy face="Courier New"><span
lang=EN-GB style='font-size:8.0pt;color:navy'>                 Peter</span></font></p>

<p class=MsoPlainText><font size=1 color=navy face="Courier New"><span
lang=EN-GB style='font-size:8.0pt;color:navy'>&nbsp;</span></font></p>

<p class=MsoPlainText><font size=1 color=navy face="Courier New"><span
lang=EN-GB style='font-size:8.0pt;color:navy'>&nbsp;</span></font></p>

<p class=MsoPlainText><font size=1 face="Courier New"><span lang=EN-GB
style='font-size:8.0pt'>&gt; It's not particularly pretty and in fact it is probably
better to get the</span></font></p>

<p class=MsoPlainText><font size=1 face="Courier New"><span style='font-size:
8.0pt'>&gt; network protocol (e.g. RTP) to tell you about missing packets
rather than</span></font></p>

<p class=MsoPlainText><font size=1 face="Courier New"><span style='font-size:
8.0pt'>&gt; waiting to discover them in the decoding.</span></font></p>

<p class=MsoPlainText><font size=1 face="Courier New"><span style='font-size:
8.0pt'>&gt; </span></font></p>

<p class=MsoPlainText><font size=1 face="Courier New"><span style='font-size:
8.0pt'>&gt; Cheers,</span></font></p>

<p class=MsoPlainText><font size=1 face="Courier New"><span style='font-size:
8.0pt'>&gt; -Ryan</span></font></p>

<p class=MsoPlainText><font size=1 face="Courier New"><span style='font-size:
8.0pt'>&gt; </span></font></p>

<p class=MsoPlainText><font size=1 face="Courier New"><span style='font-size:
8.0pt'>&gt; --</span></font></p>

<p class=MsoPlainText><font size=1 face="Courier New"><span style='font-size:
8.0pt'>&gt; This is the x264-devel mailing-list</span></font></p>

<p class=MsoPlainText><font size=1 face="Courier New"><span style='font-size:
8.0pt'>&gt; To unsubscribe, go to: http://developers.videolan.org/lists.html</span></font></p>

<p class=MsoPlainText><font size=1 face="Courier New"><span style='font-size:
8.0pt'>&nbsp;</span></font></p>

</div>

</body>

</html>