Thanks, I tested with your 32bit build.
Result is that it behaves just like my own one.
Another thing is that I made a small command line test app with visual studio implementing some decoding as simple as possible.
And with that simple app all libraries work with multithreading enabled.

So the difference must be somewhere in my using code on visual studio side.
Unfortunately that code is a bit more complicated but at least I know where to search now.

Some things that might be interresting to you:

- If you set ffmpegs --arch configure option to x86_32 then you are not able to use swscale lib with resolutions above 2048. I use just --arch x86 for 32 bit and --arch=x86_64 for 64 bit, that leads to ARCH_X86 defined and sets that resolution border up to 5120 (see swscale_internal.h, line 36 ff). Maybe there are also other Implications like optimizations - I dont know.

- I think you are using the lib files that mingws dlltool created. That turned out problematic for me in bigger projects with more references because It seems there are much more symbols included than neccessary e.g. CoCreateInstance and some other COM functions. It happened to me that the runtime linker searches them in the ffmpeg libraries where they are either not found or do not work. Instead I use the ms tool "dll.exe" on windows side to create the lib files from the def files that mingw created. These lib files are also significantly smaller. Dont know about the backgrounds of that - just some experiences I made.

Ole

Am 25.03.2011 17:19, schrieb Kirill Gavrilov:

    Meanwhile I tried to implement pthread attach code to my process
    and threads as described here:
    http://www.cygwin.com/ml/pthreads-win32/2010/msg00010.html
    But it had no impact.

I use pthreads only for Linux builds and for Windows - just clean WinAPI threads.

    Anyway, could that be a problem, that I open the video in the main
    thread but then call decode in another one created with native
    windows functions?

If you do something in not thread-safe manner ;). I use up to 4 threads for decoding (I talking not about new multithreading decoding features inside FFmpeg) one read the packets from context(s), one for audio decoding and up to 2 threads for video decoding (for dual stream video).

    Would you be so kind and send me your working dlls and libs?
    So I can deduce if there is something wrong with my code or if its
    my ffmpeg compilation.
    Does not matter if 32 or 64 bit as I have both versions at hand.
    Either by mail or your upload site or or my ftp if you want:

No problem. This is LGPL build, configuration information you will find inside archives.
http://sview.cifro-city.ru/downloads/FFmpeg/ffmpeg-2011-03-24-git-0cd1383-i686-mingw32-4.4.2.7z
http://sview.cifro-city.ru/downloads/FFmpeg/ffmpeg-2011-03-24-git-0cd1383-x86_64-w64-mingw32-4.4.2.7z
-----------------------------------------------
Kirill Gavrilov,
Software designer.

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

Reply via email to