<html dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style id="owaParaStyle">P {
        MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
}
</style>
</head>
<body fPStyle="1" ocsi="0">
<div style="direction: ltr;font-family: Tahoma;color: #000000;font-size: 10pt;">
<div><font size="2" face="Consolas"><font size="2" face="Consolas">
<p>I am using sws_scale to change the color space of the image buffer.</p>
<p>Source data is in BGRA and destination color space is YUV420(12 bit).</p>
<p>The code snippet for conversion is -</p>
<p></p>
<font color="#0000ff" size="2" face="Consolas"><font color="#0000ff" size="2" face="Consolas"><font color="#0000ff" size="2" face="Consolas"><font color="#0000ff" size="2" face="Consolas"><font color="#0000ff" size="2" face="Consolas"><font color="#0000ff" size="2" face="Consolas">
<p>void</font></font></font><font size="2" face="Consolas"><font color="#000000" size="2" face="Consolas"> Convert(</font></font><font color="#0000ff" size="2" face="Consolas"><font color="#0000ff" size="2" face="Consolas"><font color="#0000ff" size="2" face="Consolas">int</font></font></font><font size="2" face="Consolas"><font color="#000000" size="2" face="Consolas">
 iWidth, </font></font><font color="#0000ff" size="2" face="Consolas"><font color="#0000ff" size="2" face="Consolas"><font color="#0000ff" size="2" face="Consolas">int</font></font></font><font size="2" face="Consolas"><font size="2" face="Consolas"><font color="#000000">
 iHeight, BYTE* pBGRABuff)</font></p>
<p>{ </p>
<p></p>
<p></font></font><font color="#0000ff" size="2" face="Consolas"><font color="#0000ff" size="2" face="Consolas"><font color="#0000ff" size="2" face="Consolas">int</font></font></font><font size="2" face="Consolas"><font size="2" face="Consolas"> ystride = iWidth;</p>
<p></font></font><font color="#0000ff" size="2" face="Consolas"><font color="#0000ff" size="2" face="Consolas"><font color="#0000ff" size="2" face="Consolas">int</font></font></font><font size="2" face="Consolas"><font size="2" face="Consolas"> uvstride = iWidth
 / 2;</p>
<p></font></font><font color="#0000ff" size="2" face="Consolas"><font color="#0000ff" size="2" face="Consolas"><font color="#0000ff" size="2" face="Consolas">int</font></font></font><font size="2" face="Consolas"><font size="2" face="Consolas"> ysize = ystride
 * iHeight;</p>
<p></font></font><font color="#0000ff" size="2" face="Consolas"><font color="#0000ff" size="2" face="Consolas"><font color="#0000ff" size="2" face="Consolas">int</font></font></font><font size="2" face="Consolas"><font size="2" face="Consolas"> vusize = uvstride
 * ( iHeight / 2 );</p>
<p></font></font><font color="#0000ff" size="2" face="Consolas"><font color="#0000ff" size="2" face="Consolas"><font color="#0000ff" size="2" face="Consolas">int</font></font></font><font size="2" face="Consolas"><font size="2" face="Consolas"> size = ysize
 + ( 2 * vusize );</p>
<p></font></font><font color="#0000ff" size="2" face="Consolas"><font color="#0000ff" size="2" face="Consolas"><font color="#0000ff" size="2" face="Consolas">if</font></font></font><font size="2" face="Consolas"><font size="2" face="Consolas">(g_sws_ctx ==
 NULL)</p>
<p>{</p>
<p>g_sws_ctx = sws_getContext(iWidth, </p>
<p>iHeight,</p>
<p>AV_PIX_FMT_BGRA, </p>
<p>iWidth, iHeight,</p>
<p>AV_PIX_FMT_YUV420P, </p>
<p>SWS_FAST_BILINEAR, 0, 0, 0);</p>
<p>m_picture_buf = (uint8_t*)malloc(size);</p>
<p>} </p>
<p></p>
<p>uint8_t *plane[] = { m_picture_buf, m_picture_buf + ysize, m_picture_buf + ysize + vusize, 0 };</p>
<p></font></font><font color="#0000ff" size="2" face="Consolas"><font color="#0000ff" size="2" face="Consolas"><font color="#0000ff" size="2" face="Consolas">int</font></font></font><font size="2" face="Consolas"><font size="2" face="Consolas"> stride[] = {
 ystride, uvstride, uvstride, 0 };</p>
<p>uint8_t *inData[1] = { pARGBBuff };</p>
<p></font></font><font color="#0000ff" size="2" face="Consolas"><font color="#0000ff" size="2" face="Consolas"><font color="#0000ff" size="2" face="Consolas">int</font></font></font><font size="2" face="Consolas"><font size="2" face="Consolas"> inLinesize[1]
 = { 4 * iWidth}; </p>
<p>sws_scale(g_sws_ctx, inData, inLinesize, 0, iHeight, plane, stride ); </p>
<p>}</p>
<p></p>
<p>The problem I am facing is that the colours are not right in the converted image.</p>
<p>What is the problem with the above code?</p>
<p>Attaching the snapshot of the source and destination images.</p>
<p></p>
<p></p>
<p>-Jasleen</p>
</font></font></font></font></font></font></font></div>
</div>
</body>
</html>