whoman Posted January 28, 2017 Posted January 28, 2017 Hello All, how can I get hardware video acceleration for S905x on Debian/Armbian using Gstreamer? I installed gstreamer, and using 'decodebin' and 'fbdevsink' gives terrible performance (software decoding). I did some searching and found that amlogic has two GST plugins for hardware accelerated video decoding: "amlvdec" and "amlvsink" I was able to locate the source code here: http://openlinux.amlogic.com:8000/download/ARM/filesystem/ I downloaded the newest archive "arm-buildroot-2016-08-18-5aaca1b35f.tar.gz" Would this work with debian/Armbian? When I try to compile the plugin, I get the message: usr/bin/ld: cannot find -lamcodec/usr/bin/ld: cannot find -lamadec/usr/bin/ld: cannot find -lamavutilscollect2: error: ld returned 1 exit status so I searched online, and found: https://github.com/mdrjr/c1_aml_libs I tried to compile this however I got the error: cc: error: unrecognized command line option ‘-mlong-calls’ Does anyone know how I can get Gstreamer to play videos with hardware acceleration? Thanks so much! 1
whoman Posted January 28, 2017 Author Posted January 28, 2017 So I found the correct version after some more searching "https://github.com/mdrjr/c2_aml_libs" and everything compiles except for the 'example' cc -I/home/onev/c2-aml-libs/c2_aml_libs/example -pthread -O2 esplayer.c -o esplayer -L/usr/lib/aml_libs -lamcodec -ldl -lamadec -lasound -lamavutils/usr/bin/ld: cannot find -lamcodec/usr/bin/ld: cannot find -lamadec/usr/bin/ld: cannot find -lasound/usr/bin/ld: cannot find -lamavutilscollect2: error: ld returned 1 exit statusMakefile:25: recipe for target 'esplayer' failedmake[1]: *** [esplayer] Error 1 I'm guessing that since this is the example file I do not need it? so I commented it out of the Makefile, and finished with "make all" and "make install" however I still get this error when trying to compile GST plugins /usr/bin/ld: cannot find -lamcodec/usr/bin/ld: cannot find -lamadec/usr/bin/ld: cannot find -lamavutils am I missing some basic step to enable /usr/bin/ld to find the libraries?
whoman Posted January 28, 2017 Author Posted January 28, 2017 So I manually copied the three *.so files to /usr/lib and then ran "ldconfig", and everything finished compiling. I will report back once I have tried installing/testing the plugins 1
whoman Posted January 28, 2017 Author Posted January 28, 2017 for "gst-aml-plugins1", compile did complete however "make install" placed the *.so and *.la files into /usr/local/lib/gstreamer1.0 So I had to manually copy the files to "/usr/lib/aarch64-linux-gnu/gstreamer-1.0/" now when I run gst-inspect, I get errors for the amlogic plugins: gst-inspect-1.0 |grep aml(gst-plugin-scanner:16911): GStreamer-WARNING **: Failed to load plugin '/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstamlvdec.so': /usr/lib/aml_libs/libamadec.so: undefined symbol: snd_pcm_writei(gst-plugin-scanner:16911): GStreamer-WARNING **: Failed to load plugin '/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstamlasink.so': /usr/lib/aml_libs/libamadec.so: undefined symbol: snd_pcm_writei(gst-plugin-scanner:16911): GStreamer-WARNING **: Failed to load plugin '/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstamladec.so': /usr/lib/aml_libs/libamadec.so: undefined symbol: snd_pcm_writei(gst-plugin-scanner:16911): GStreamer-WARNING **: Failed to load plugin '/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstamlvsink.so': /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstamlvsink.so: undefined symbol: amvideo_release What is the problem with my compilation? Am I not linking something correctly?
Recommended Posts