<div dir="ltr">Hi, i am developing an application that decodes a mpeg-ts file that must drop any frames which may cause video artifacts (for the purpose of machine vision algorithms).  Currently I am using the log_callback within a mutex (for multi-threaded decoders) in order to receive the correct error for a given frame. (example below) <div>
<br></div><div>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(128,128,0)">if</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(0,0,0)">level</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">==</span><span style="color:rgb(192,192,192)"> </span>AV_LOG_FATAL<span style="color:rgb(0,0,0)">)</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">{</span></pre>

<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        //print out error</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span><span style="color:rgb(0,0,0)">}</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,128,0)">else</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,128,0)">if</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(0,0,0)">level</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">==</span><span style="color:rgb(192,192,192)"> </span>AV_LOG_ERROR<span style="color:rgb(0,0,0)">)</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">{</span></pre>

<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(0,0,128)">/**</span><span style="color:rgb(192,192,192)"> </span><font color="#0000ff">handle bad frame</font><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,128)">*/</span></pre>

<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span><span style="color:rgb(0,0,0)">}</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,128,0)">else</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">{</span></pre>
</div><div><br></div><div>Since parsing the log to detect error's is not the best way to detect frame issues, Is there a better way to handle this?  Can I retrieve the error from a frame returned from avcodec_decode_video2?</div>
<div><br></div><div><div><div><div><br></div><div>Daisuke</div></div></div></div></div>