I am using ffmpeg as video/sound decoder library for my own windows & directX based 3d-engine
which worked very well so far.
Now I heard about the new feature of inter-frame multithreaded decoding which is of course interresting for me.
Got back into my linux virtual machine to cross compile the new version.
After some testing I could see no difference - no multithreading.
Then somewhere I found a hint to compile with "--enable-pthreads" instead of "w32threads".
So I got myself the pthreads-win32 library source.
(do not use the 2.8 version from download links, but make a cvs checkout instead there you will get version 2.9 which works much better) Successfully compiled ffmpeg with pthreads-win32 linked statically into ffmpegs shared libs which are then used by my MSVC Project.

Now if I leave "codec->thread_count" on 1 it still works (single threaded) but if I set it to values > 1 then in case of mp4 or xvid videos "avcodec_decode_video2" returns 0 and *got_picture_ptr is also 0.

Stuck at this point because I do not really want to debug into cross compiled ffmpeg code from visual studio (would that work somehow?)

Questions:
How is multithreaded decoding supposed to work? do I have to provide "codec->execute" or "codec->execute2"? Already tried that but they are not called. Or is it done internally by ffmpeg? Is there any multithreading specific coding to be done ( except setting "codec->thread_count") or is it transparent?

Does anybody have some experiences with multithreading and the cross compiling setup I am using.
Is there some known bug or something?

On which codecs should multithreaded decoding work?

Thanks,
Ole









_______________________________________________
Libav-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/libav-user

Reply via email to