Hi,

This patch is based on the original work done by Timo Rothenpieler, and his 
patch for static linking with libnpp:
[http://ffmpeg.org/pipermail/ffmpeg-devel/2016-June/195078.html](https://ffmpeg.org/pipermail/ffmpeg-devel/2016-June/195078.html)

Based in my recomendations now it's possible to link directly to libnpp* 
libraries without linking to the CUDA SDK:
[http://trac.ffmpeg.org/ticket/6405](https://trac.ffmpeg.org/ticket/6405)
http://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=2d978d1c721ae69a9007b530153067736d4ddc79

Then I created an updated version of the patch.

By default the linking is the regular dynamic link (aka 
"--disable-libnpp-static" config).
However, if you like to compile statically with "libnpp*_static.a" then add 
these parameters:
$ configure ... --enable-nonfree --enable-libnpp --enable-libnpp-static 
--enable-cuda --extra-cflags="-I/usr/local/cuda/include/" 
--extra-ldflags="-L/usr/local/cuda/lib64/"

This assumes the CUDA SDK is installed in "/usr/local/cuda".

Regards.
A.H.
From db73653ea3da9478ac012e4d143b8c6551acb06b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20H=C3=A5kon?= <andreas.ha...@protonmail.com>
Date: Fri, 2 Jun 2017 09:35:03 +0100
Subject: [PATCH] configure: support static libnpp [v2]

---
 configure |   12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/configure b/configure
index 72060ef..4eac083 100755
--- a/configure
+++ b/configure
@@ -300,6 +300,7 @@ External library support:
   --disable-dxva2          disable Microsoft DirectX 9 video acceleration code 
[autodetect]
   --enable-libmfx          enable Intel MediaSDK (AKA Quick Sync Video) code 
via libmfx [no]
   --enable-libnpp          enable Nvidia Performance Primitives-based code [no]
+  --disable-libnpp-static  disable using static version of libnpp [autodetect]
   --enable-mmal            enable Broadcom Multi-Media Abstraction Layer 
(Raspberry Pi) via MMAL [no]
   --disable-nvenc          disable Nvidia video encoding code [autodetect]
   --enable-omx             enable OpenMAX IL code [no]
@@ -1599,6 +1600,7 @@ HWACCEL_AUTODETECT_LIBRARY_LIST="
 HWACCEL_LIBRARY_NONFREE_LIST="
     cuda_sdk
     libnpp
+    libnpp_static
 "
 
 HWACCEL_LIBRARY_LIST="
@@ -5816,7 +5818,15 @@ enabled libmfx            && { use_pkg_config libmfx 
"mfx/mfxvideo.h" MFXInit ||
                                { require libmfx "mfx/mfxvideo.h" MFXInit 
-llibmfx && warn "using libmfx without pkg-config"; } }
 enabled libmodplug        && require_pkg_config libmodplug 
libmodplug/modplug.h ModPlug_Load
 enabled libmp3lame        && require "libmp3lame >= 3.98.3" lame/lame.h 
lame_set_VBR_quality -lmp3lame
-enabled libnpp            && require libnpp npp.h nppGetLibVersion -lnppi 
-lnppc
+enabled libnpp            && { { if ! disabled libnpp_static; then
+                                 check_lib npp.h nppGetLibVersion 
-lnppi_static -lnppc_static -lcudart_static -lculibos $ldl  ||
+                                 check_lib npp.h nppGetLibVersion 
-lnppi_static -lnppc_static -lcudart_static -lculibos $ldl -lstdc++ ||
+                                 check_lib npp.h nppGetLibVersion 
-lnppi_static -lnppc_static -lcudart_static -lculibos $ldl -lstdc++ -lrt
+                               else false; fi; } ||
+                               { if ! enabled libnpp_static; then
+                                 check_lib npp.h nppGetLibVersion -lnppi -lnppc
+                               else false; fi; } ||
+                               die "ERROR: libnpp not found"; }
 enabled libopencore_amrnb && require libopencore_amrnb 
opencore-amrnb/interf_dec.h Decoder_Interface_init -lopencore-amrnb
 enabled libopencore_amrwb && require libopencore_amrwb opencore-amrwb/dec_if.h 
D_IF_init -lopencore-amrwb
 enabled libopencv         && { check_header opencv2/core/core_c.h &&
-- 
1.7.10.4

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to