Hi Michael -- after reading into things a bit more, I agree that it's risky what I'm doing. However, I only need about 3 frames per second so maybe waiting for a key frame isn't the end of the world...<div><br>
</div><div>Is there a safer way? The decoding is extremely expensive so I only want to do it when I absolutely need to.</div><div><br></div><div>Thanks!</div><div><br><br><div class="gmail_quote">On Tue, Jun 26, 2012 at 11:44 AM, Michael Bradshaw <span dir="ltr"><<a href="mailto:mbradshaw@sorensonmedia.com" target="_blank">mbradshaw@sorensonmedia.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On Tue, Jun 26, 2012 at 12:34 PM, Simon Daniels<br>
<<a href="mailto:simondaniels23@gmail.com">simondaniels23@gmail.com</a>> wrote:<br>
> // Is this a packet from the video stream?<br>
> if (packet.stream_index == videoStreamIndex && frameLocation++ % frameSkip<br>
> == 0)<br>
> {<br>
> // Decode video frame<br>
> avcodec_decode_video2(pCodecCtx, pFrameYUV, &isFrameFinished, &packet);<br>
<br>
</div>You don't want to be doing it like this, I don't think. If there are B<br>
frames in the video, this could really mess things up (because frame 2<br>
could depend on decoding frame 1 just before it, but you skipped<br>
decoding frame 1, so now frame 2 is junk/gets decoded wrong (and now<br>
all the ones decoded after it will be junk frames too until you hit a<br>
keyframe)).<br>
<div class="HOEnZb"><div class="h5">_______________________________________________<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>
</div></div></blockquote></div><br></div>