<div dir="ltr"><div style>I changed the code to the following</div><div><br></div>        while(av_read_frame(pFormatCtx, &packet) >= 0)<br>        {<br>            avcodec_get_frame_defaults(pFrame);<br>            int frameFinished;<br>
            if(packet.stream_index==i)<br>            {<br>                // Is this a packet from the video stream -> decode video frame<br>                ffmpeg::AVPacket tmp_pkt;<br>                tmp_pkt.data = packet.data;<br>
                tmp_pkt.size = packet.size;<br>                qint64 size = 0;<br><br><div>                while ( (size = avcodec_decode_video2(pCodecCtx,pFrame,&frameFinished,&tmp_pkt) ) > 0)<br>                {<br>
                    if(frameFinished)<br>                    {<br>                        qDebug() << "Codec reported frame number to be " << pCodecCtx->frame_number;<br>                    }<br>                    tmp_pkt.data += size;<br>
                    tmp_pkt.size -= size;<br>                }<br>            }<br>            av_free_packet(&packet);      // Free the packet that was allocated by av_read_frame<br>        }<br></div><div><br></div>
<div style>Now I get 30 times error [h264 @ 000ff140] no picture, and frameFinished = 0<br><br>-Pauli</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On 24 March 2013 16:37, Oleg <span dir="ltr"><<a href="mailto:mybrokenbeat@gmail.com" target="_blank">mybrokenbeat@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">There can be more than 1 frame per packet and your code assuming that there is only 1 frame per packet.<div>
You should do smth like that:</div><div><br></div><div>AVPacket tmp_pkt;</div><div>int size;</div><div><br></div><div>....</div><div><br></div><div>tmp_pkt.data = pkt.data;</div><div>tmp_pkt.size = pkt.size;</div><div><br>
</div><div>while ( (size = avcodec_decode_video2(ctx,frame,&got_pict,&tmp_pkt) ) > 0)</div><div>{</div><div><span style="white-space:pre-wrap">  </span>store_decoded_frame(frame);</div><div><span style="white-space:pre-wrap">      </span>tmp_pkt.data += size;</div>
<div><span style="white-space:pre-wrap">  </span>tmp_pkt.size -=  size;</div><div>}</div><div><br></div><div><br><div><div>24.03.2013, в 16:23, Pauli Suuraho написал(а):</div><br><blockquote type="cite"><div><div class="h5">
<div dir="ltr"><span style="font-family:arial,sans-serif;font-size:13px">Hello all.</span><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">I'm a newcomer to use ffmpeg, and I've been bugging my mind about this one thing.</div>

<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">I have videoclips (either h264 or prores), and I want to extract all the frames. I'm using 32 bit ffmpeg-20130322-git-e0e8c20-win32 zeranoe shared+dev and Qt compiled using MSVC2010.</div>

<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">I'm using the following code to extract the frames.</div><div style="font-family:arial,sans-serif;font-size:13px">

<br></div><div style="font-family:arial,sans-serif;font-size:13px"><a href="http://pastebin.com/DrC9H6g0" target="_blank">http://pastebin.com/DrC9H6g0</a><br></div><div style="font-family:arial,sans-serif;font-size:13px">

<br></div><div style="font-family:arial,sans-serif;font-size:13px">If I have a test clip that is 30 frames, 30fps long, for some reason the lib always extracts only 24 frames and then says end of file.</div><div style="font-family:arial,sans-serif;font-size:13px">

<br></div><div style="font-family:arial,sans-serif;font-size:13px">FFmpeg.exe extracts all the frames (for example to PNGs) correctly. So clearly I'm doing something wrong.</div><div style="font-family:arial,sans-serif;font-size:13px">

<br></div><div style="font-family:arial,sans-serif;font-size:13px">This happens with every clip I have. I've even tried to repack the clips with ffmpeg but the output is same: last frames won't get noticed.<br></div>

<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">I guess this has something to do with I,P,B-frames, but not sure how.<br></div><div style="font-family:arial,sans-serif;font-size:13px">

<br></div><div style="font-family:arial,sans-serif;font-size:13px">Any help is appreciated!</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">

Thanks,</div><div style="font-family:arial,sans-serif;font-size:13px">Pauli</div></div></div></div>
_______________________________________________<br>Libav-user mailing list<br><a href="mailto:Libav-user@ffmpeg.org" target="_blank">Libav-user@ffmpeg.org</a><br><a href="http://ffmpeg.org/mailman/listinfo/libav-user" target="_blank">http://ffmpeg.org/mailman/listinfo/libav-user</a><br>
</blockquote></div><br></div></div><br>_______________________________________________<br>
Libav-user mailing list<br>
<a href="mailto:Libav-user@ffmpeg.org">Libav-user@ffmpeg.org</a><br>
<a href="http://ffmpeg.org/mailman/listinfo/libav-user" target="_blank">http://ffmpeg.org/mailman/listinfo/libav-user</a><br>
<br></blockquote></div><br></div>