<div dir="ltr"><div><div><div><div><div>Hi again,<br><br></div>after reading more information about how currently ffmpeg/libav is interrelated (basically ffmpeg borrows from libav, but not vice versa), I decided to look into the sources to see how <span class="">av_frame_get_best_effort_timestamp works. <br><br></span></div><span class="">It turns out that it is just a get accessor for </span><span class="">best_effort_timestamp field and the corresponding set accessor (</span><span class="">av_frame_set_best_effort_timestamp) is called twice (in avcodec_decode_video2 and in avcodec_decode_audio4) in the utils.c with a similar lines<br><br>  av_frame_set_best_effort_timestamp(..., guess_correct_pts(avctx, .... );<br><br></span></div><div><span class="">There's no any </span>"<span class="">best_effort" symbols in libav, but</span><span class=""> the function </span>g<span class="">uess_correct_pts exists in libav, the code of both versions (ffmpeg vs libav) looks almost identical. <br><br></span></div></div><span class="">So, probably one who wants to keep compatibility with both libraries should conditionally use either the field accessor (ffmpeg) or function (libav), but the feature actually exists in both libraries. Probably looking at how </span><span class=""><span class="">guess_correct_pts is called in ffmpeg one might probably always use </span></span><span class="">guess_correct_pts instead of </span><span class="">av_frame_get_best_effort_timestamp, but this is just a hypothesis. <br><br></span></div><span class="">Max<br></span><div><div><span class=""><br></span><div><span class=""></span><div><div><div><div><div><br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Feb 23, 2015 at 2:31 PM, wm4 <span dir="ltr"><<a href="mailto:nfxjfg@googlemail.com" target="_blank">nfxjfg@googlemail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="">On Mon, 23 Feb 2015 13:51:33 +0300<br>
Max Vlasov <<a href="mailto:max.vlasov@gmail.com">max.vlasov@gmail.com</a>> wrote:<br>
<br>
> Frankly, I thought that all alternatives should be considered _after_<br>
> av_frame_get_best_effort_timestamp returned  AV_NOPTS_VALUE. At least the<br>
> name suggests so. ....<br>
<br>
</span>The heuristic in av_frame_get_best_effort_timestamp() is pretty weak,<br>
and the function doesn't exist in Libav, so you don't have to use it.<br>
It's really just a helper.<br>
<br></blockquote></div><br></div></div></div></div></div></div></div></div></div></div>