<div class="gmail_quote">On Thu, Sep 22, 2011 at 5:02 PM, Denis <span dir="ltr"><<a href="mailto:info@denisgottardello.it">info@denisgottardello.it</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<u></u>
<div style="font-family:'DejaVu Sans';font-size:9pt;font-weight:400;font-style:normal">
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> You need to show the source of your data. How do you get the frames from a</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> webcam, does it come in packets? RGB data? that's the code you should show.</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> The problem that I'm seeing is that you're using an avio context when you</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> don't actually intend to write data with it to a file. Just take the webcam</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> frame data call avcodec_encode_video and that function writes it to a</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> buffer. I'm not sure why you're making the all these avio calls. I suggest</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> you also look at the headers for avcodec_encode_video.</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">The source code is below. Can you explain me which are the steps that I must follow?</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"></p>
<br></div></blockquote><div>....<br> <br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div style="font-family: 'DejaVu Sans'; font-size: 9pt; font-weight: 400; font-style: normal;">


<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0">                                                </span><span style="color:#808000">if</span><span style="color:#c0c0c0"> </span><span style="color:#000000">(</span><span style="color:#800000">ExternalFrame</span><span style="color:#000000">)</span><span style="color:#c0c0c0"> </span><span>cvShowImage</span><span style="color:#000000">(</span><span style="color:#008000">"Frame"</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span style="color:#000000">frame);</span></p>


<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0">                                                </span><span>QImage</span><span style="color:#c0c0c0"> </span><span style="color:#000000">Image(frame-></span><span style="color:#800000">width</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span style="color:#000000">frame-></span><span style="color:#800000">height</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span>QImage</span><span style="color:#000000">::</span><span>Format_RGB888</span><span style="color:#000000">);</span></p>


<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0">                                                </span><span style="color:#808000">const</span><span style="color:#c0c0c0"> </span><span style="color:#808000">unsigned</span><span style="color:#c0c0c0"> </span><span style="color:#808000">char</span><span style="color:#c0c0c0"> </span><span style="color:#000000">*data=</span><span style="color:#c0c0c0"> </span><span>NULL</span><span style="color:#000000">;</span></p>


<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0">                                                </span><span style="color:#000000">data=</span><span style="color:#c0c0c0"> </span><span style="color:#000000">(</span><span style="color:#808000">unsigned</span><span style="color:#c0c0c0"> </span><span style="color:#808000">char</span><span style="color:#000000">*)(frame-></span><span style="color:#800000">imageData</span><span style="color:#000000">);</span></p>


<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0">                                                </span><span style="color:#000000">Image=</span><span style="color:#c0c0c0"> </span><span>QImage</span><span style="color:#000000">(data,</span><span style="color:#c0c0c0"> </span><span style="color:#000000">frame-></span><span style="color:#800000">width</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span style="color:#000000">frame-></span><span style="color:#800000">height</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span style="color:#000000">frame-></span><span style="color:#800000">widthStep</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span>QImage</span><span style="color:#000000">::</span><span>Format_RGB888</span><span style="color:#000000">);</span></p>


<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0">                                                </span><span style="color:#808000">if</span><span style="color:#c0c0c0"> </span><span style="color:#000000">(</span><span style="color:#800000">DoStart</span><span style="color:#000000">)</span><span style="color:#c0c0c0"> </span><span style="color:#808000">emit</span><span style="color:#c0c0c0"> </span><span>SendNewImage</span><span style="color:#000000">(Image);</span></p>


<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0">                                                </span><span style="color:#800080">AVFrame</span><span style="color:#c0c0c0"> </span><span style="color:#000000">*pAVFrame=</span><span style="color:#c0c0c0"> </span><span>avcodec_alloc_frame</span><span style="color:#000000">();</span></p>


<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0">                                                </span><span style="color:#800080">uint8_t</span><span style="color:#c0c0c0"> </span><span style="color:#000000">*pBuffer=</span><span style="color:#c0c0c0"> </span><span style="color:#000000">(</span><span style="color:#800080">uint8_t</span><span style="color:#000000">*)</span><span>malloc</span><span style="color:#000000">(</span><span>avpicture_get_size</span><span style="color:#000000">(</span><span style="color:#800080">PIX_FMT_YUV420P</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span style="color:#800000">Width</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span style="color:#800000">Height</span><span style="color:#000000">));</span><span style="color:#c0c0c0"> </span><span style="color:#000000">{</span></p>


<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0">                                                    </span><span>avpicture_fill</span><span style="color:#000000">((</span><span style="color:#800080">AVPicture</span><span style="color:#000000">*)pAVFrame,</span><span style="color:#c0c0c0"> </span><span style="color:#000000">pBuffer,</span><span style="color:#c0c0c0"> </span><span style="color:#800080">PIX_FMT_YUV420P</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span style="color:#800000">Width</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span style="color:#800000">Height</span><span style="color:#000000">);</span></p>


<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0">                                                    </span><span>IplImageToAVFrame</span><span style="color:#000000">(frame,</span><span style="color:#c0c0c0"> </span><span style="color:#000000">pAVFrame,</span><span style="color:#c0c0c0"> </span><span style="color:#800000">Width</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span style="color:#800000">Height</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span style="color:#800080">PIX_FMT_YUV420P</span><span style="color:#000000">);</span></p>


<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0">                                                    </span><span style="color:#000000">pAVFrame-></span><span style="color:#800000">pts</span><span style="color:#000000">=</span><span style="color:#c0c0c0"> </span><span style="color:#000000">Frames;</span></p>


<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0">                                                    </span><span style="color:#808000">int</span><span style="color:#c0c0c0"> </span><span style="color:#000000">OutSize=</span><span style="color:#c0c0c0"> </span><span>avcodec_encode_video</span><span style="color:#000000">(pCodecCtx,</span><span style="color:#c0c0c0"> </span><span style="color:#000000">pOutBuffer,</span><span style="color:#c0c0c0"> </span><span style="color:#000000">BYTEPIC,</span><span style="color:#c0c0c0"> </span><span style="color:#000000">pAVFrame);</span></p>

<br></div></blockquote></div>The <span>avcodec_encode_video</span><span style="color: rgb(0, 0, 0);"> call above encodes the picture in </span><span style="color:#c0c0c0"></span><span style="color: rgb(0, 0, 0);">pAVFrame into the </span><span style="color:#c0c0c0"></span><span style="color:#000000">pOutBuffer buffer. If I understood the question correctly this is what you're looking for. If that's not what you need, can you elaborate a bit more?<br>

<br>Matt<br></span>