Opened 13 years ago

Closed 13 years ago

#2299 closed defect (fixed)

Nvidia XvMC compile problems

Reported by: zdzisekg@… Owned by: Isaac Richards
Priority: minor Milestone: unknown
Component: mythtv Version:
Severity: medium Keywords:
Cc: Ticket locked: no

Description

I tried to enable XvMC OpenGL support for my nvidia card, but I am unable to compile. the configure script fails to enable it. If I manually go into the script and force it to compile the support, I get a compile time error. If I compile against libXvMCNVIDIA it omplains about the "XvMCPutSlice2" symbols not supported. If I try to compile agains XvMCW, then it compains about "XvMCCopySurfaceToGLXPbuffer" not being supported.

my config: opensuse 10.1 (64-bit) tried compiling against nvidia drivers 8774 and 7184

Change History (4)

comment:1 Changed 13 years ago by Isaac Richards

Resolution: invalid
Status: newclosed

You don't want to enable it.

comment:2 Changed 13 years ago by anon

Resolution: invalid
Status: closedreopened

Version: head-13790

Configuring for NVidia XVMC causes this failure:

ccache distcc g++  -o mythtv main.o    -L/usr/qt/3/lib -L../../libs/libmyth -L../../libs/libmythtv -L../../libs/libavutil -L../../libs/libavcodec -L../../libs/libavformat -L../../libs/libmythfreemheg -L../../libs/libmythui -L../../libs/libmythupnp -L../../libs/libmythlivemedia -lmythtv-0.20 -lmythavformat-0.20 -lmythavutil-0.20 -lmythavcodec-0.20 -lmythfreemheg-0.20 -lmythupnp-0.20 -lmythlivemedia-0.20 -lmyth-0.20 -lmythui-0.20 -lfreetype -lz -lmp3lame -lasound -L/usr/kde/3.5/lib -lartsc -lgmodule-2.0 -ldl -lgthread-2.0 -lglib-2.0 -L/usr/X11R6/lib -lXinerama -lXv -lXxf86vm -lXrandr -lXvMCNVIDIA -lXvMC -lqt-mt -lGLU -lGL -lXmu -lXext -lX11 -lm -lpthread
../../libs/libmythtv/libmythtv-0.20.so: undefined reference to `XvMCPutSlice2'
collect2: ld returned 1 exit status
distcc[9729] ERROR: compile (null) on localhost failed
make[2]: *** [mythtv] Error 1
make[2]: Leaving directory `/usr/src/original/mythtv.13790/programs/mythtv'
make[1]: *** [sub-mythtv] Error 2
make[1]: Leaving directory `/usr/src/original/mythtv.13790/programs'
make: *** [sub-programs] Error 2

Output of ./configure ...

# Video Output Support
x11 support      yes
xrandr support   yes
xv support       yes
XvMC support     yes
XvMC VLD support no
XvMC pro support no
XvMC OpenGL sup. no
XvMC libs        -lXvMCNVIDIA
Mac acceleration no
OpenGL vsync     no
DirectFB         no

Quick and dirty hack:

diff -u ./original/mythtv.13790/libs/libmythtv/util-xvmc.h mythtv.13790/libs/libmythtv/util-xvmc.h
--- ./original/mythtv.13790/libs/libmythtv/util-xvmc.h  2007-06-30 16:31:19.000000000 -0700
+++ mythtv.13790/libs/libmythtv/util-xvmc.h     2007-06-30 22:29:05.000000000 -0700
@@ -2,7 +2,7 @@

 #ifdef USING_XVMC

-#   if defined(USING_XVMCW) || defined(USING_XVMC_VLD)
+#   if defined(USING_XVMC_VLD)
         extern "C" Status XvMCPutSlice2(Display*,XvMCContext*,char*,int,int);
 #   else
         Status XvMCPutSlice2(Display*, XvMCContext*, char*, int, int)

I know that's not a legit fix, however it works for my purposes.

The only other strange thing I do is swap the order of two items in the configure script's detection of XVMC type. I've been doing this for years as it always finds XVMCW when I actually have xvmc NVidia.

--- original/mythtv.13790/configure     2007-06-30 16:31:55.000000000 -0700
+++ mythtv.13790/configure      2007-06-30 17:03:31.000000000 -0700
@@ -2681,6 +2681,12 @@
         else
             xvmc_vld="no"
         fi
+    elif has_library libXvMCNVIDIA ; then
+        VENDOR_XVMC_LIBS="-lXvMCNVIDIA"
+        xvmc="yes"
+        if enabled xvmc_vld; then
+            xvmc_vld="no"
+        fi
     elif enabled xvmcw; then
         VENDOR_XVMC_LIBS="-lXvMCW"
         xvmc="yes"
@@ -2689,12 +2695,6 @@
         else
             xvmc_vld="no"
         fi
-    elif has_library libXvMCNVIDIA ; then
-        VENDOR_XVMC_LIBS="-lXvMCNVIDIA"
-        xvmc="yes"
-        if enabled xvmc_vld; then
-            xvmc_vld="no"
-        fi
     elif enabled xvmc_pro; then
         if has_library libviaXvMCPro ; then
             VENDOR_XVMC_LIBS="-lviaXvMCPro"

If I don't do that I get this when I run configure:

# Video Output Support
x11 support      yes
xrandr support   yes
xv support       yes
XvMC support     yes
XvMC VLD support no
XvMC pro support no
XvMC OpenGL sup. no
XvMC libs        -lXvMCW
Mac acceleration no
OpenGL vsync     no
DirectFB         no

Which is obviously wrong.

This is a Gentoo install.

If you need more information, please ask.

Anon.

comment:3 Changed 13 years ago by Doug Goldstein <cardoe@…>

This is again why you should use the Gentoo ebuilds and not try to roll your own when you don't know what you are properly doing.

-lXvMCW is 100% correct and should be used. libXvMCW is a wrapper for the appropriate XvMC library and will use the nVidia supplied library and abstract all the function calls to their appropriate ones.

comment:4 Changed 13 years ago by danielk

Resolution: fixed
Status: reopenedclosed

closing, this was fixed a while back. Doug is right, 99.9% of users should be using libXvMCW, the only reason not to is if you are using the OpenGL OSD renderer for XvMC which is only supported in the mythtv-vid branch.

Note: See TracTickets for help on using tickets.