Runtime error: procedure av_log_set_callback" missing

For the developers that use FFmpeg in their software.
Post Reply
spiderkarma
Posts: 3
Joined: Tue Jan 24, 2012 6:54 pm

Runtime error: procedure av_log_set_callback" missing

Post by spiderkarma » Tue Jan 24, 2012 10:57 pm

When I run a win32 debug application compiled using msvc 2008 and using ffmpeg as shared libraries, the following runtime error occurs:
{{{
The procedure entry point av_log_set_callback could not be located in the dynamic link library avformat-53.dll.
}}}

This makes sense since av_log_set_callback is defined in avutil-51.dll.

The error is the same whether I use ffmpeg 0.9.1 compiled myself using MSYS in Windows XP, or zeranoe built git-14d94a1 (Latest) (2012-01-23).

Dependency walker and dumpbin both show that av_log_set_callback is defined in avutil, not in avformat, but the exe lists it as an import from both avutil and avformat. Other libav functions have a similar problem. It is as though the function symbols have been cross pollinated between the ffmpeg DLL's.

Verbose msvc linker output snippet
{{{
1> Found _av_log_set_callback
1> Referenced in FFMpegReader.obj
1> Loaded avutil-51.lib(d000096.o)
}}}

Abbreviated exe imports:
{{{
> dumpbin /IMPORTS FOO.exe
FOO.exe:
GLU32.dll
OPENGL32.dll
avutil-51.dll
3 av_close_input_file
avformat-53.dll
3 av_close_input_file
avcodec-53.dll
swscale-2.dll

I have used ffmpeg 0.6.1 successfully until now, but need to try an update to fix a frame ordering issue.

Any ideas on what to look at here?
Thanks.

spiderkarma
Posts: 3
Joined: Tue Jan 24, 2012 6:54 pm

Re: Runtime error: procedure av_log_set_callback" missing

Post by spiderkarma » Fri Jan 27, 2012 9:32 pm

A rebuild of the libs in MSYS fixed the problem, but I don't know why.

For reference, here is my incantation:

Code: Select all

export PATH=.:/usr/local/bin:/mingw/bin:/bin:"/c/Program Files/Microsoft Visual Studio 9.0/VC/bin":"/c/Program Files/Microsoft Visual Studio 9.0/Common7/IDE/"

../ffmpeg-0.9.1/configure \
    --target-os=mingw32 \
    --enable-memalign-hack \
    --enable-shared \
    --disable-static \
    --disable-encoders \
    --disable-pthreads \
    --disable-muxers \
    --prefix=/c/temp/ffmpeg-0.9.1-install
make
make install

Post Reply
'