<p dir="ltr">On Oct 23, 2013 4:43 AM, "YIRAN LI" <<a href="mailto:mrfun.china@gmail.com">mrfun.china@gmail.com</a>> wrote:<br>
><br>
> Hi guys,<br>
><br>
> I'm testing a small piece of code which just read packet using av_read_frame and send packet to <br>
> avcodec_decode_video2 to get a decoded frame.<br>
><br>
> What surprised me was, when running this same program on different machines, avcodec_decode_video2 (AVCodecContext *avctx, AVFrame *picture, int *got_picture_ptr, const AVPacket *avpkt) return first true value at different packets.<br>

><br>
> On both machines, I can read packets with packet.pts with 0, 200, 400, 600, 800, 1000.<br>
> But on one machine, packet with 600 dts can get the first decoded frame, and on another one,<br>
> the first frame is decoded until packet with 1000 dts is passed into avcodec_decode_video2.<br>
><br>
> Since same binary and libs are running on 2 machines, so I assume that I should get same result.<br>
> But seems that's not true. Has anyone else met a similar problem?<br>
><br>
> Thanks</p>
<p dir="ltr">One possible difference could be due to automatic multithreading. You could try to configure the codec to use single CPU or disable threading during build, to prove this is the case. </p>
<p dir="ltr">BR, <br>
Alex</p>