<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 12 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:SimSun;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:SimSun;
panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:"Calibri","sans-serif";
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.25in 1.0in 1.25in;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">See bugzilla here: <a href="https://bugzilla.gnome.org/show_bug.cgi?id=684341">
https://bugzilla.gnome.org/show_bug.cgi?id=684341</a> <o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Patch: <o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">From 89c2e93aaef107f503d40d2b545288f6cbebc9ff Mon Sep 17 00:00:00 2001<o:p></o:p></p>
<p class="MsoNormal">From: Zhao Halley <halley.zhao@intel.com><o:p></o:p></p>
<p class="MsoNormal">Date: Wed, 19 Sep 2012 09:24:58 +0800<o:p></o:p></p>
<p class="MsoNormal">Subject: [PATCH] codecparsers: vc1: fix ttmbf when vstransform is not set<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">spec 8.3.6.2.1 Transform Type Selection<o:p></o:p></p>
<p class="MsoNormal"> If variable-sized transform coding is not enabled,<o:p></o:p></p>
<p class="MsoNormal"> then the 8x8 transform shall be used for all blocks.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I have to say the above spec isn't expressed clearly:<o:p></o:p></p>
<p class="MsoNormal">ttfrm is mentioned clearly, but not ttmbf.<o:p></o:p></p>
<p class="MsoNormal">anyway, since ttfrm is only specified when ttmbs is set,<o:p></o:p></p>
<p class="MsoNormal">we can deduce that ttmbf should set to 1.<o:p></o:p></p>
<p class="MsoNormal">it is also consistent with ffmpeg vc1 decoder and<o:p></o:p></p>
<p class="MsoNormal">hw behaviour (Intel GEN gfx)<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><a href="https://bugzilla.gnome.org/show_bug.cgi?id=684341">https://bugzilla.gnome.org/show_bug.cgi?id=684341</a>
<o:p></o:p></p>
<p class="MsoNormal">---<o:p></o:p></p>
<p class="MsoNormal">gst-libs/gst/codecparsers/gstvc1parser.c | 16 ++++++++++++++++<o:p></o:p></p>
<p class="MsoNormal">1 file changed, 16 insertions(+)<o:p></o:p></p>
<p class="MsoNormal">mode change 100644 => 100755 gst-libs/gst/codecparsers/gstvc1parser.c<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">diff --git a/gst-libs/gst/codecparsers/gstvc1parser.c b/gst-libs/gst/codecparsers/gstvc1parser.c<o:p></o:p></p>
<p class="MsoNormal">old mode 100644<o:p></o:p></p>
<p class="MsoNormal">new mode 100755<o:p></o:p></p>
<p class="MsoNormal">index bc94823..aa8cb4a<o:p></o:p></p>
<p class="MsoNormal">--- a/gst-libs/gst/codecparsers/gstvc1parser.c<o:p></o:p></p>
<p class="MsoNormal">+++ b/gst-libs/gst/codecparsers/gstvc1parser.c<o:p></o:p></p>
<p class="MsoNormal">@@ -1166,6 +1166,10 @@ parse_frame_header_advanced (GstBitReader * br, GstVC1FrameHdr * framehdr,<o:p></o:p></p>
<p class="MsoNormal"> READ_UINT8 (br, pic->ttfrm, 2);<o:p></o:p></p>
<p class="MsoNormal"> }<o:p></o:p></p>
<p class="MsoNormal"> }<o:p></o:p></p>
<p class="MsoNormal">+ else { // 8.3.6.2.1<o:p></o:p></p>
<p class="MsoNormal">+ pic->ttmbf = 1;<o:p></o:p></p>
<p class="MsoNormal">+ pic->ttfrm = 0;<o:p></o:p></p>
<p class="MsoNormal">+ }<o:p></o:p></p>
<p class="MsoNormal"><o:p></o:p></p>
<p class="MsoNormal"> framehdr->transacfrm = get_unary (br, 0, 2);<o:p></o:p></p>
<p class="MsoNormal"> READ_UINT8 (br, framehdr->transdctab, 1);<o:p></o:p></p>
<p class="MsoNormal">@@ -1278,6 +1282,10 @@ parse_frame_header_advanced (GstBitReader * br, GstVC1FrameHdr * framehdr,<o:p></o:p></p>
<p class="MsoNormal"> READ_UINT8 (br, pic->ttfrm, 2);<o:p></o:p></p>
<p class="MsoNormal"> }<o:p></o:p></p>
<p class="MsoNormal"> }<o:p></o:p></p>
<p class="MsoNormal">+ else { // 8.3.6.2.1<o:p></o:p></p>
<p class="MsoNormal">+ pic->ttmbf = 1;<o:p></o:p></p>
<p class="MsoNormal">+ pic->ttfrm = 0;<o:p></o:p></p>
<p class="MsoNormal">+ }<o:p></o:p></p>
<p class="MsoNormal"><o:p></o:p></p>
<p class="MsoNormal"> framehdr->transacfrm = get_unary (br, 0, 2);<o:p></o:p></p>
<p class="MsoNormal"> READ_UINT8 (br, framehdr->transdctab, 1);<o:p></o:p></p>
<p class="MsoNormal">@@ -1462,6 +1470,10 @@ parse_frame_header (GstBitReader * br, GstVC1FrameHdr * framehdr,<o:p></o:p></p>
<p class="MsoNormal"> GST_DEBUG ("ttfrm %u", pic->ttfrm);<o:p></o:p></p>
<p class="MsoNormal"> }<o:p></o:p></p>
<p class="MsoNormal"> }<o:p></o:p></p>
<p class="MsoNormal">+ else { // 8.3.6.2.1<o:p></o:p></p>
<p class="MsoNormal">+ pic->ttmbf = 1;<o:p></o:p></p>
<p class="MsoNormal">+ pic->ttfrm = 0;<o:p></o:p></p>
<p class="MsoNormal">+ }<o:p></o:p></p>
<p class="MsoNormal"><o:p></o:p></p>
<p class="MsoNormal"> framehdr->transacfrm = get_unary (br, 0, 2);<o:p></o:p></p>
<p class="MsoNormal"> READ_UINT8 (br, framehdr->transdctab, 1);<o:p></o:p></p>
<p class="MsoNormal">@@ -1494,6 +1506,10 @@ parse_frame_header (GstBitReader * br, GstVC1FrameHdr * framehdr,<o:p></o:p></p>
<p class="MsoNormal"> READ_UINT8 (br, pic->ttfrm, 2);<o:p></o:p></p>
<p class="MsoNormal"> }<o:p></o:p></p>
<p class="MsoNormal"> }<o:p></o:p></p>
<p class="MsoNormal">+ else { // 8.3.6.2.1<o:p></o:p></p>
<p class="MsoNormal">+ pic->ttmbf = 1;<o:p></o:p></p>
<p class="MsoNormal">+ pic->ttfrm = 0;<o:p></o:p></p>
<p class="MsoNormal">+ }<o:p></o:p></p>
<p class="MsoNormal"><o:p></o:p></p>
<p class="MsoNormal"> framehdr->transacfrm = get_unary (br, 0, 2);<o:p></o:p></p>
<p class="MsoNormal"> READ_UINT8 (br, framehdr->transdctab, 1);<o:p></o:p></p>
<p class="MsoNormal">-- <o:p></o:p></p>
<p class="MsoNormal">1.7.9.5<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>