Hi Carl

I built libavcodec some time ago on Windows and I am calling the API functions from my C app. (avcodec_find_decoder, avcodec_open, avcodec_decode_video2, sws_scale). Now, having big frames with a lot of details, the time decoding increased > 55 ms, which is greater than the time a frame should be displayed (40 ms). I have to do some threading logic programatically, using libavcodec, not from command line. Or maybe I am not fully understanding your hint

Thank you

Alex


On 10/3/2016 2:45 PM, Carl Eugen Hoyos wrote:
2016-10-03 12:52 GMT+02:00 Alex Grosu <[email protected]>:

I am having some issues with time decoding H.264 frames with libavcodec. I
am receiving 1920x1080 frames at 25 FPS, thus a frame should be displayed
each 40 ms. But the decoding time per frame is between 55 ms and 83 ms, way
too much.
I am thinking at the following strategy: create 4 threads, each thread will
decode a I-Frame slice (composed by SPS and PPS and IDR + all NACs until the
next SPS&PPS&IDR). In theory, this should work on a >4CPUs processor.
My question is: is there any other way in handling this kind of situation?
FFmpeg already contains a multi-threaded H.264 decoder: While it scales badly
I don't expect a wrapper implementation to work much better.
(Unless you really have full control over gop size, in this case you know
something that the FFmpeg decoder cannot know.)

Carl Eugen
_______________________________________________
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

Reply via email to