2017-07-13 11:18 GMT+03:00 jing zhang <[email protected]>: > 1) The decoder call the log callback synchronous when it encounter a error > or other messages. You can change the code to log the frame number? Like > h.264, slice header has a frame_num > 2) You can use AVClass->class_name to check which context logger using. > Use AVCodecContext->opaque to save your information about which decoder you > are using. > > 2017-07-13 16:02 GMT+08:00 Anton Shekhovtsov <[email protected]>: > >> >> >> 2017-07-13 4:31 GMT+03:00 jing zhang <[email protected]>: >> >>> Hi, >>> >>> Try set your own log callback (use av_log_set_callback), and check >>> errors in your call back function. >>> >>> zj >>> >>> 2017-07-12 19:13 GMT+08:00 Anton Shekhovtsov <[email protected]>: >>> >>>> I expected avcodec_receive_frame to return any kind of error code when >>>> something goes wrong with a decoding. However it always returns success, I >>>> can only guess there is something wrong by side effects (decoded frame not >>>> updated, messages in log). >>>> Is this feature supported? >>>> >>>> >>>> _______________________________________________ >>>> Libav-user mailing list >>>> [email protected] >>>> http://ffmpeg.org/mailman/listinfo/libav-user >>>> >>>> >>> >>> _______________________________________________ >>> Libav-user mailing list >>> [email protected] >>> http://ffmpeg.org/mailman/listinfo/libav-user >>> >>> >> Hi, Thanks for reply, however I don't think log callback can solve this: >> 1) Decoding is asynchronous, not possible to know which frame is affected >> from log message. Even If I knew it, the mechanism to deliver the result to >> a point where it is needed (code calling avcodec_receive_frame) would be >> ugly and complex. >> 2) Not sure log message is even associated with specific context. >> According to docs maybe it has a pointer to pointer to AVClass (how is that >> useful?) or not. Seems like log callback captures messages of the whole >> library, so if I do multiple operations on different threads how to tell >> which one had errors? >> >> >> _______________________________________________ >> Libav-user mailing list >> [email protected] >> http://ffmpeg.org/mailman/listinfo/libav-user >> >> > > _______________________________________________ > Libav-user mailing list > [email protected] > http://ffmpeg.org/mailman/listinfo/libav-user > > 1) Do you mean, can I change libavcodec sources? I'm trying to avoid it. >From some examples I looked into, seems too much trouble: ffv1dec.c av_log(f->avctx, AV_LOG_ERROR, "CRC mismatch %X!", crc); To know which frame is related to log message, I must extend log callback protocol, and update all relevant av_log calls. If it is like that with every decoder I'd rather leave it alone.
2) This gives me some idea to try, thanks!
_______________________________________________ Libav-user mailing list [email protected] http://ffmpeg.org/mailman/listinfo/libav-user
