On 3/12/2013 6:52 AM, Bjoern Drabeck wrote:
> I have got that to build, however compared to builds
> from the zeranoe site (and also builds I have asked a
> friend of mine to make for me using mingw with gcc),
> I always end up with seeking problems.
This is surprising.
Are you sure that you are testing the same versions?
I have downloaded the zeranoe build marked as 1.1.3 and I also got
http://ffmpeg.org/releases/ffmpeg-1.1.3.tar.bz2 and built that
myself.. so I would say it's the same version. However I got the same
problem with previous versions too (tried 1.0.1, and 1.1 for example).
Did you try to disable optimizations?
For some reason I get build errors as soon as I
use --disable-optimizations:
LDlibavutil/avutil-52.dll
Creating library libavutil/avutil.lib and object libavutil/avutil.exp
cpu.o : error LNK2019: unresolved external symbol
_ff_get_cpu_flags_ppc referenced in function _av_get_cpu_flags
cpu.o : error LNK2019: unresolved external symbol
_ff_get_cpu_flags_arm referenced in function _av_get_cpu_flags
libavutil/avutil-52.dll : fatal error LNK1120: 2 unresolved externals
make: *** [libavutil/avutil-52.dll] Error 1
If I don't disable optimizations I don't get that and it builds
fine... but no idea about that (I have never really looked into the
ffmpeg code except for the public headers)
Parts of ffmpeg source code assume the compiler will remove the body of
a conditional if the condition is always false, for example from
libavutil.c/av_get_cpu_flags():
int av_get_cpu_flags(void)
{
if (checked)
return flags;
if (ARCH_ARM) flags = ff_get_cpu_flags_arm();
if (ARCH_PPC) flags = ff_get_cpu_flags_ppc();
if (ARCH_X86) flags = ff_get_cpu_flags_x86();
checked = 1;
return flags;
}
If ARCH_ARM is the constant 0, the code assumes this reference to
ff_get_cpu_flags_arm() will disappear. Treats that as an optimization,
so if you turn off optimizations, the compiler will generate code to
call ff_get_cpu_flags_arm, but that function won't exist if ARCH_ARM is
false.
To get around that, I've used flags like these to compile a less
optimized version for testing purposes:
--toolchain=msvc --optflags='-Zi -Og -Oy- -arch:SSE2'
--extra-cflags='-Gy -MDd' --extra-ldflags='-OPT:REF -DEBUG -VERBOSE'
--enable-shared
I've been using VC10. The thing that's handy for me is that it
generates .pdb files (via the -Zi flag) and I can mostly step through
code with the VC10 debugger.
I had to modify the config.mak to get rid of some conflicting flags,
running the configuration script would add -Z7 (which contradicts -Zi).
It also would add -Oy which is the opposite of -Oy-, so I manually
removed it.
--Johno
_______________________________________________
Libav-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/libav-user