[mythtv] issues with Windows NUV decode
lvr at softsystem.co.uk
Fri Apr 15 10:34:48 UTC 2011
On Thu, 2011-04-14 at 22:28 +0100, jonathanjstevens at gmail.com wrote:
> Hope this is OK coming to the dev list.
> I've recently rebuilt my MythTV systems to 0.24 fixes. All the backend
> work lovely, but I'm having a few challenges with some of the
> frontends which are Windows.
> I've chosen to cross-compile, I am compiling on a XEN VM (paravirt
> F14) using mingw32 and the script as
> per http://www.softsystem.co.uk/mythtv/index.htm
> Compilation appears to work OK (at first glance).
> Installer works, and MythTV successfully installs on the Windows box
> (XP and Win7).
> Live TV works, open GL and DirectX - I assume native MPEG from the DVB
> However, when I try to watch recorded TV I get an error saying that
> the frontend can't start the NUV decoder - it doesn't appear to be in
> the av libs.
Could you post the log output from mythfrontend leading up to the
Question - if you're recording DVB input then the recordings should be
in mpg format. Where did the Nuppel recordings come from?
> So, I started looking at the compile a bit more and found these....
> Installing mythtv (release)
> make install...
> INSTALL libavformat/libmythavformat.dll
> STRIP install-libavformat-shared
> install: cannot stat `libavformat/libmythavformat-52.lib': No such
> file or directory
The .lib files are not used by the mingw32 cross tools so this can be
> which makes me think perhaps some of the libraries are not compiling
> into the dlls properly?
It's just that the ffmpeg make script wants to make lib files for VS and
other Windows linkers. Mingw uses the dll.a files.
> So, a bit more digging into the compile and I find...
> Creating library file: libavutil/liblibmythavutil.dll.a
lib.exe /machine:i386 /def:libavutil/libmythavutil-50.def /out:libavutil/libmythavutil-50.lib
> make: lib.exe: Command not found
> make: [libavutil/libmythavutil-50.dll] Error 127 (ignored)
> LD libavcore/libmythavcore-0.dll
> Creating library file: libavcore/liblibmythavcore.dll.a
lib.exe /machine:i386 /def:libavcore/libmythavcore-0.def /out:libavcore/libmythavcore-0.lib
> make: lib.exe: Command not found
> make: [libavcore/libmythavcore-0.dll] Error 127 (ignored)
Again this can be ignored since the .lib files are not used.
> Which seems to explain why the libraries are not being created?
> lib.exe appears to be a Windows exe, not a mingw32 on Linux tool - so
> I'm a little puzzled as to how this is getting into the scripts...
> So anyway, this appears to being created by the configure script in
Agreed, ffmpeg believes it's building a Windows installation, that is
intentional, and so wants to build .lib files. The configure script
should be fixed to not do that. However, I've had a devil of a job
getting just a few essential changes committed. Consequently I've gone
for the easy path and lived with the warnings.
> [user at compiler FFmpeg]# more config.mak
> ifndef FFMPEG_CONFIG_MAK
> SHFLAGS=-shared -Wl,--output-def,$$(@:$(SLIBSUF)=.def)
> -Wl,--out-implib,$(SUBDIR)lib$(SLIBNAME:$(SLIBSUF)=.dll.a) -Wl,--ena
> ble-runtime-pseudo-reloc -Wl,--enable-auto-image-base
> LIB_INSTALL_EXTRA_CMD=$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"
> SLIB_EXTRA_CMD=-lib.exe /machine:$(LIBTARGET) /def:$$(@:
> $(SLIBSUF)=.def) /out:$(SUBDIR)$(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.lib)
> Now I can see why this would be generated by FFmpeg itself, but a bit
> more digging further up the tree...
> [root at compiler mythtv]# grep lib.exe *
> configure: SLIB_EXTRA_CMD='-lib.exe /machine:$(LIBTARGET) /def:
> $$(@:$(SLIBSUF)=.def) /out:$(SUBDIR)$(SLIBNAME_WITH_MAJOR:
> [root at compiler mythtv]#
> OK, so "lib.exe" is being inserted by the main MythTV configuration
> script, see below for the config.log
Yes, this should be removed from configure if cross compiling. Send a
patch to Trac.
> [root at compiler mythtv]# more config.log
> Thu Apr 14 21:48:04 BST 2011
> ./configure --prefix=/windows/mythtv/build/mythinstall
--qmake=/windows/mythtv/build/mythbuild/qt-everywhere-opensource-src-4.7.0/bin/qmake --enable-cross-compile --cross-prefix=i686-pc-mingw32- --target_os=mingw32 --arch=x86 --sysinclude=/windows/mythtv/build/mythinstall/include --extra-cflags=-I/windows/mythtv/build/mythinstall/include --extra-cxxflags=-I/windows/mythtv/build/mythinstall/include --extra-libs=-L/windows/mythtv/build/mythinstall/lib --disable-avdevice --disable-avfilter --enable-libfftw3 --disable-directfb --disable-joystick-menu --disable-lirc --disable-hdhomerun --disable-symbol-visibility --compile-type=release
> I can't see any good reason for configure to be setting the use of
> lib.exe (which just isn't going to work on a linux platform) with the
> above options?
Agreed. But it does no harm - it's just noise.
> I played around for a while trying to get deptool to be a fake lib.exe
> but I'm WAY out of my depth and unsurprisingly that didn't work...
> Um.... so, I guess I'm asking - is this a bug in the main
> mythtv ./configure ? Or I can change this behaviour somehow.
It's not the bug that you're looking for. But it should ideally be
If you post the mythfrontend log I'll see what I can do to find a
solution for your Nuppel decoding. Maybe it's just a dll naming
More information about the mythtv-dev