Okay, I figured out it was a bug in my code. Was confusing the AVERROR_EOF
from av_read_frame with av_receive_frame, so wasn't flushing the decoder
buffer properly. I'm sure there must be some history as to why
av_read_packet was renamed av_read_frame, but the former name seems to make
more sense.

On Thu, Nov 9, 2017 at 7:25 PM, Erik Ackermann <[email protected]>
wrote:

> I wrote a decoder with the new send receive API, but when I set
> thread_count to >1 I do not get all my frames, and this happens only for
> dnxhd content (h264 and prores work for all thread_count values). I'm
> compiling against FFmpeg 3.4.
>
> Interestingly, the number of missing frames is always (thread_count - 1).
>
> Is there something special I need to do when setting thread_count, other
> than calling avcodec_receive_frame() until all streams return AVERROR_EOF?
>
> Using ffprobe -count_frames with various -threads and -thread_type all
> return the correct value, so I guess I am missing something dnxhd
> specifically requires.
>
> Thanks,
> Erik
>
_______________________________________________
libav-api mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-api

Reply via email to