OpenVisualCloud / SVT-HEVC

SVT HEVC encoder. Scalable Video Technology (SVT) is a software-based video coding technology that is highly optimized for Intel® Xeon® processors. Using the open source SVT-HEVC encoder, it is possible to spread video encoding processing across multiple Intel® Xeon® processors to achieve a real advantage of processing efficiency.
Other
516 stars 172 forks source link

gstreamer plugin failed to build in VS 2017 #529

Closed dudulashok closed 4 years ago

dudulashok commented 4 years ago

Please help me find the issue. Attached meson-log.txt file for your reference.

C:\SVT-HEVC\gstreamer-plugin>ninja -C build ninja: Entering directory `build' [1/2] Compiling C object gstsvthevcenc@sha/gstsvthevcenc.c.obj FAILED: gstsvthevcenc@sha/gstsvthevcenc.c.obj cl @gstsvthevcenc@sha/gstsvthevcenc.c.obj.rsp c:\svt-hevc\gstreamer-plugin\gstsvthevcenc.h(13): fatal error C1083: Cannot open include file: 'EbApi.h': No such file or directory ninja: build stopped: subcommand failed. meson-log.txt

tianjunwork commented 4 years ago

Hi @dudulashok , it seems that you didn't install svt header files. cmake -P SVT-HEVC\Build\Windows\Source\Lib\cmake_install.cmake. Pls make sure you follow the build steps. We will double check on our side. Btw gst plugin is upstreamed already. It's better to use this one. We plan to take down the gst plugin in this repo. https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/731?commit_id=663aeb2131a12d38a0729129ca8709645ca3afd5.

dudulashok commented 4 years ago

'EbApi.h' is part of API, not under Lib. I tried twice in my side, but got the same error.

tianjunwork commented 4 years ago

Yes, both header files and libs should be installed. I will try on my side.

tianjunwork commented 4 years ago

Fixed in the latest commit: cmake -P SVT-HEVC\Build\Windows\cmake_install.cmake

dudulashok commented 4 years ago

Thank you. It's working, but the below error is coming. (gst-inspect-1.0:8348): GStreamer-WARNING **: 02:59:13.376: Failed to load plugin 'C:\gstreamer\1.0\x86_64\lib\gstreamer-1.0\gstsvthevcenc.dll': 'C:\gstreamer\1.0\x86_64\lib\gstreamer-1.0\gstsvthevcenc.dll': The specified module could not be found. No such element or plugin 'svthevcenc'

gstreamer is unable to load the dlls. This may not be related to svt hevc, but any step missed in the readme doc?

tianjunwork commented 4 years ago

Did you install?

Then the plugin can be compiled and installed using Ninja:

meson -Dprefix=%GSTREAMER_1_0_ROOT_X86_64% build && ninja -C build && ninja -C build install
C:\Jun_Dev\SVT_OS\SVT-HEVC\gstreamer-plugin>meson -Dprefix=%GSTREAMER_1_0_ROOT_X86_64% build && ninja -C build && ninja -C build install
Directory already configured.

Just run your build command (e.g. ninja) and Meson will regenerate as necessary.
If ninja fails, run "ninja reconfigure" or "meson --reconfigure"
to force Meson to regenerate.

If build failures persist, run "meson setup --wipe" to rebuild from scratch
using the same options as passed when configuring the build.
To change option values, run "meson configure" instead.
ninja: Entering directory `build'
[2/2] Linking target gstsvthevcenc.dll.
LINK : warning LNK4044: unrecognized option '/Wl,-z,now'; ignored
LINK : warning LNK4044: unrecognized option '/Wl,-z,relro'; ignored
LINK : warning LNK4044: unrecognized option '/Wl,-z,noexecstack'; ignored
LINK : warning LNK4044: unrecognized option '/Wl,-z,now'; ignored
LINK : warning LNK4044: unrecognized option '/Wl,-z,relro'; ignored
LINK : warning LNK4044: unrecognized option '/Wl,-z,noexecstack'; ignored
   Creating library gstsvthevcenc.lib and object gstsvthevcenc.exp
ninja: Entering directory `build'
[0/1] Installing files.
Installing gstsvthevcenc.dll to C:\gstreamer\1.0\x86_64\lib/gstreamer-1.0
Installing gstsvthevcenc.pdb to C:\gstreamer\1.0\x86_64\lib/gstreamer-1.0
Installing gstsvthevcenc.lib to C:\gstreamer\1.0\x86_64\lib/gstreamer-1.0
Installing gstsvthevcenc.pdb to C:\gstreamer\1.0\x86_64\lib/gstreamer-1.0
dudulashok commented 4 years ago

Hi @tianjunwork Yes, I have installed and getting the logs same as yours. After that while verifying the installation using the command "gst-inspect-1.0 svthevcenc", it is showing "No such element or plugin "svthevcenc'". I think something is missing. I'm trying to find the issue, at the same time if you check in your side will be helpful.

tianjunwork commented 4 years ago
export GST_DEBUG_FILE=
export GST_DEBUG="*:6"

You can enable log to see what is going on. If the plugin is correctly installed, I never see this error before. May be related to your env.

tianjunwork commented 4 years ago

Hi @dudulashok, hope that gst plugin works on your side now. Any further assist needed?