![]() |
|
Accelerated H.264 and HEVC video decoding with Cedrus - Printable Version +- PINE64 (https://forum.pine64.org) +-- Forum: PINE A64(+) (https://forum.pine64.org/forumdisplay.php?fid=4) +--- Forum: Linux on Pine A64(+) (https://forum.pine64.org/forumdisplay.php?fid=6) +--- Thread: Accelerated H.264 and HEVC video decoding with Cedrus (/showthread.php?tid=424) |
RE: Accelerated H.264 and HEVC video decoding with Cedrus - longsleep - 05-01-2016 I just added libvdpau-sunxi packaging for Xenial to the https://launchpad.net/~longsleep/+archive/ubuntu/ubuntu-pine64-flavour-makers PPA. apt-get update && apt-get install libvdpau-sunxi1 Update: there was a 1 missing at the end. Make sure you try to install 'libvdpau-sunxi1' RE: Accelerated H.264 and HEVC video decoding with Cedrus - baryluk - 05-01-2016 I just wanted to update my report. I managed to run mplayer with vdpau and get playback smooth and stable. Including smooth audio using pulseaudio and hdmi output. Also full screen and scaling works fine. I only tested 720p h264 now. I think my mistake was to build fbturbo without libump first. I compiled libump, installed it, rebuilt the fbturbo, installed it, and basically it works now. RE: Accelerated H.264 and HEVC video decoding with Cedrus - vedranius - 05-01-2016 (05-01-2016, 03:52 PM)baryluk Wrote: I just wanted to update my report. I managed to run mplayer with vdpau and get playback smooth and stable. Including smooth audio using pulseaudio and hdmi output. Also full screen and scaling works fine. Any how to (step by step)? ![]() Thanks! RE: Accelerated H.264 and HEVC video decoding with Cedrus - baryluk - 05-01-2016 If you are on ubuntu image, then probably use longsleep packages. Otherwise: Before you start you should have installed gcc, gnumake, autoconf and other development tools. You will also need pixman header files and shared library installed. As well thedevelopment headers and shared library for vdpau. In debian and ubuntu you can install that using : sudo apt-get install libvdpau-dev Then git clone https://github.com/linux-sunxi/libump.git cd libump ./configure make sudo make install git clone https://github.com/ssvb/xf86-video-fbturbo.git cd xf86-video-fbturbo/ ./configure --prefix=/usr make sudo make install git clone https://github.com/linux-sunxi/libcedrus.git cd libcedrus make sudo make install git clone https://github.com/linux-sunxi/libvdpau-sunxi.git cd libvdpau-sunxi make sudo make install This is my /etc/X11/xorg.conf file: Section "Device" Identifier "Allwinner A10/A13 FBDEV" Driver "fbturbo" Option "fbdev" "/dev/fb0" Option "SwapbuffersWait" "true" EndSection After that restart x server, or just reboot, and use the mplayer script or flags mentioned earlier in the thread. I was using VDPAU_DRIVER=sunxi /usr/bin/mplayer -vo vdpau -vc ffmpeg12vdpau,ffh264vdpau,ffhevcvdpau, some_file.avi for playback. RE: Accelerated H.264 and HEVC video decoding with Cedrus - elsphinc - 05-04-2016 cant get past the libvdpau-sunxi compile. make complains as follows Code: Makefile:46: recipe for target 'tiled_yuv.o' failedRE: Accelerated H.264 and HEVC video decoding with Cedrus - baryluk - 05-04-2016 elsphinic, you need really to provide more information. the tiled_yuv.o just uses gcc to compile, and it should have no other dependencies. Try doing: sudo apt-get install build-essentials git yasm binutils just for good measure and retry. RE: Accelerated H.264 and HEVC video decoding with Cedrus - elsphinc - 05-04-2016 Code: root@debianpine64:/usr/local/src/libvdpau-sunxi# make
cc -c tiled_yuv.S -o tiled_yuv.o
tiled_yuv.S: Assembler messages:
tiled_yuv.S:25: Error: unknown pseudo-op: `.syntax'
tiled_yuv.S:26: Error: unknown architecture `armv7-a'
tiled_yuv.S:27: Error: unknown pseudo-op: `.fpu'
tiled_yuv.S:28: Error: unknown pseudo-op: `.thumb'
tiled_yuv.S:46: Warning: unknown register 'r0' -- .req ignored
tiled_yuv.S:47: Warning: unknown register 'r1' -- .req ignored
tiled_yuv.S:48: Warning: unknown register 'r2' -- .req ignored
tiled_yuv.S:49: Error: operand 1 should be a SIMD vector register -- `cnt .req r3'
tiled_yuv.S:50: Warning: unknown register 'r4' -- .req ignored
tiled_yuv.S:51: Warning: unknown register 'r5' -- .req ignored
tiled_yuv.S:52: Warning: unknown register 'r6' -- .req ignored
tiled_yuv.S:53: Warning: unknown register 'r7' -- .req ignored
tiled_yuv.S:54: Warning: unknown register 'r8' -- .req ignored
tiled_yuv.S:55: Warning: unknown register 'r9' -- .req ignored
tiled_yuv.S:56: Warning: unknown register 'r12' -- .req ignored
tiled_yuv.S:57: Warning: unknown register 'lr' -- .req ignored
tiled_yuv.S:59: Error: unknown pseudo-op: `.thumb_func'
tiled_yuv.S:60: Error: unknown mnemonic `push' -- `push {r4,r5,r6,r7,r8,lr}'
tiled_yuv.S:61: Error: operand 1 should be an integer register -- `ldr HEIGHT,[sp,#24]'
tiled_yuv.S:62: Error: operand 1 should be an integer or stack pointer register -- `add NEXTLIN,r3,#31'
tiled_yuv.S:63: Error: unknown mnemonic `lsrs' -- `lsrs NTILES,r3,#5'
tiled_yuv.S:64: Error: operand 1 should be a SIMD vector register -- `bic NEXTLIN,NEXTLIN,#31'
tiled_yuv.S:65: Error: operand 1 should be an integer or stack pointer register -- `and REST,r3,#31'
tiled_yuv.S:66: Error: operand 1 should be an integer register -- `lsl NEXTLIN,NEXTLIN,#5'
tiled_yuv.S:67: Error: operand 1 should be an integer register -- `subs PITCH,r2,r3'
tiled_yuv.S:68: Error: unknown mnemonic `movs' -- `movs TLINE,#32'
tiled_yuv.S:69: Error: unknown mnemonic `rsb' -- `rsb NEXTLIN,NEXTLIN,#32'
tiled_yuv.S:70: Error: operand 1 should be an integer register -- `mov TSIZE,#1024'
tiled_yuv.S:73: Error: operand 1 should be an integer register -- `cbz NTILES,3f'
tiled_yuv.S:74: Error: operand 1 should be an integer register -- `mov CNT,NTILES'
tiled_yuv.S:77: Error: unknown mnemonic `pld' -- `pld [SRC,TSIZE]'
tiled_yuv.S:78: Error: unknown mnemonic `vld1.8' -- `vld1.8 {d0-d3},[SRC:256],TSIZE'
tiled_yuv.S:79: Error: operand 1 should be an integer register -- `subs CNT,#1'
tiled_yuv.S:80: Error: unknown mnemonic `vst1.8' -- `vst1.8 {d0-d3},[DST]!'
tiled_yuv.S:83: Error: operand 1 should be an integer register -- `cbnz REST,4f'
tiled_yuv.S:86: Error: operand 1 should be an integer or stack pointer register -- `add DST,PITCH'
tiled_yuv.S:89: Error: operand 1 should be an integer register -- `subs TLINE,#1'
tiled_yuv.S:90: Error: unknown mnemonic `itee' -- `itee ne'
tiled_yuv.S:91: Error: unknown mnemonic `addne' -- `addne SRC,NEXTLIN'
tiled_yuv.S:92: Error: unknown mnemonic `subeq' -- `subeq SRC,#992'
tiled_yuv.S:93: Error: unknown mnemonic `moveq' -- `moveq TLINE,#32'
tiled_yuv.S:95: Error: operand 1 should be an integer register -- `subs HEIGHT,#1'
tiled_yuv.S:97: Error: unknown mnemonic `pop' -- `pop {r4,r5,r6,r7,r8,pc}'
tiled_yuv.S:100: Error: operand 1 should be an integer register -- `mov TMPSRC,SRC'
tiled_yuv.S:101: Error: operand 1 should be an integer register -- `tst REST,#16'
tiled_yuv.S:103: Error: unknown mnemonic `vld1.8' -- `vld1.8 {d0-d1},[TMPSRC:128]!'
tiled_yuv.S:104: Error: unknown mnemonic `vst1.8' -- `vst1.8 {d0-d1},[DST]!'
tiled_yuv.S:105: Error: operand 1 should be an integer or stack pointer register -- `add SRC,TSIZE'
tiled_yuv.S:106: Error: operand 1 should be an integer register -- `ands CNT,REST,#15'
tiled_yuv.S:108: Error: unknown mnemonic `vld1.8' -- `vld1.8 {d0[0]},[TMPSRC]!'
tiled_yuv.S:109: Error: operand 1 should be an integer register -- `subs CNT,#1'
tiled_yuv.S:110: Error: unknown mnemonic `vst1.8' -- `vst1.8 {d0[0]},[DST]!'
tiled_yuv.S:115: Error: unknown pseudo-op: `.thumb_func'
tiled_yuv.S:116: Error: unknown mnemonic `push' -- `push {r4,r5,r6,r7,r8,r9,lr}'
tiled_yuv.S:117: Error: operand 1 should be an integer register -- `mov DST2,r2'
tiled_yuv.S:118: Error: operand 1 should be an integer register -- `ldr HEIGHT,[sp,#32]'
tiled_yuv.S:119: Error: operand 1 should be an integer register -- `ldr r4,[sp,#28]'
tiled_yuv.S:120: Error: operand 1 should be an integer or stack pointer register -- `add NEXTLIN,r4,#31'
tiled_yuv.S:121: Error: unknown mnemonic `lsrs' -- `lsrs NTILES,r4,#5'
tiled_yuv.S:122: Error: operand 1 should be a SIMD vector register -- `bic NEXTLIN,NEXTLIN,#31'
tiled_yuv.S:123: Error: operand 1 should be an integer register -- `ubfx REST,r4,#1,#4'
tiled_yuv.S:124: Error: operand 1 should be an integer register -- `lsl NEXTLIN,NEXTLIN,#5'
tiled_yuv.S:125: Error: operand 1 should be an integer or stack pointer register -- `sub PITCH,r3,r4,lsr#1'
tiled_yuv.S:126: Error: unknown mnemonic `movs' -- `movs TLINE,#32'
tiled_yuv.S:127: Error: unknown mnemonic `rsb' -- `rsb NEXTLIN,NEXTLIN,#32'
tiled_yuv.S:128: Error: operand 1 should be an integer register -- `mov TSIZE,#1024'
tiled_yuv.S:131: Error: operand 1 should be an integer register -- `cbz NTILES,3f'
tiled_yuv.S:132: Error: operand 1 should be an integer register -- `mov CNT,NTILES'
tiled_yuv.S:135: Error: unknown mnemonic `pld' -- `pld [SRC,TSIZE]'
tiled_yuv.S:136: Error: unknown mnemonic `vld2.8' -- `vld2.8 {d0-d3},[SRC:256],TSIZE'
tiled_yuv.S:137: Error: operand 1 should be an integer register -- `subs CNT,#1'
tiled_yuv.S:138: Error: unknown mnemonic `vst1.8' -- `vst1.8 {d0-d1},[DST]!'
tiled_yuv.S:139: Error: unknown mnemonic `vst1.8' -- `vst1.8 {d2-d3},[DST2]!'
tiled_yuv.S:142: Error: operand 1 should be an integer register -- `cbnz REST,4f'
tiled_yuv.S:145: Error: operand 1 should be an integer or stack pointer register -- `add DST,PITCH'
tiled_yuv.S:146: Error: operand 1 should be an integer or stack pointer register -- `add DST2,PITCH'
tiled_yuv.S:149: Error: operand 1 should be an integer register -- `subs TLINE,#1'
tiled_yuv.S:150: Error: unknown mnemonic `itee' -- `itee ne'
tiled_yuv.S:151: Error: unknown mnemonic `addne' -- `addne SRC,NEXTLIN'
tiled_yuv.S:152: Error: unknown mnemonic `subeq' -- `subeq SRC,#992'
tiled_yuv.S:153: Error: unknown mnemonic `moveq' -- `moveq TLINE,#32'
tiled_yuv.S:155: Error: operand 1 should be an integer register -- `subs HEIGHT,#1'
tiled_yuv.S:157: Error: unknown mnemonic `pop' -- `pop {r4,r5,r6,r7,r8,r9,pc}'
tiled_yuv.S:160: Error: operand 1 should be an integer register -- `mov TMPSRC,SRC'
tiled_yuv.S:161: Error: operand 1 should be an integer register -- `tst REST,#8'
tiled_yuv.S:163: Error: unknown mnemonic `vld2.8' -- `vld2.8 {d0-d1},[TMPSRC:128]!'
tiled_yuv.S:164: Error: unknown mnemonic `vst1.8' -- `vst1.8 {d0},[DST]!'
tiled_yuv.S:165: Error: unknown mnemonic `vst1.8' -- `vst1.8 {d1},[DST2]!'
tiled_yuv.S:166: Error: operand 1 should be an integer or stack pointer register -- `add SRC,TSIZE'
tiled_yuv.S:167: Error: operand 1 should be an integer register -- `ands CNT,REST,#7'
tiled_yuv.S:169: Error: unknown mnemonic `vld2.8' -- `vld2.8 {d0[0],d1[0]},[TMPSRC]!'
tiled_yuv.S:170: Error: operand 1 should be an integer register -- `subs CNT,#1'
tiled_yuv.S:171: Error: unknown mnemonic `vst1.8' -- `vst1.8 {d0[0]},[DST]!'
tiled_yuv.S:172: Error: unknown mnemonic `vst1.8' -- `vst1.8 {d1[0]},[DST2]!'
Makefile:46: recipe for target 'tiled_yuv.o' failed
make: *** [tiled_yuv.o] Error 1thats the output of make. i do have the aforementioned dependencies you mentioned. I did notice that with in the libvdpau-sunxi directory there was tiled_yuv.s and tiled_yuv.h but no tiled_yuv.o if that makes any difference. im getting it through git. RE: Accelerated H.264 and HEVC video decoding with Cedrus - curiousgally - 05-05-2016 (05-01-2016, 03:08 PM)longsleep Wrote: I just added libvdpau-sunxi packaging for Xenial to the https://launchpad.net/~longsleep/+archive/ubuntu/ubuntu-pine64-flavour-makers PPA. longsleep I tried this and it constantly says 'cannot locate package' I have tried manually adding your PPA in the sources file but no luck so far. Any help is appreciate. RE: Accelerated H.264 and HEVC video decoding with Cedrus - frewind - 05-05-2016 (05-05-2016, 01:14 PM)curiousgally Wrote:(05-01-2016, 03:08 PM)longsleep Wrote: I just added libvdpau-sunxi packaging for Xenial to the https://launchpad.net/~longsleep/+archive/ubuntu/ubuntu-pine64-flavour-makers PPA. same here, can someone confirm I've done this correctly.. sudo add-apt-repository ppa:longsleep/ubuntu-pine64-flavour-makers More info: https://launchpad.net/~longsleep/+archive/ubuntu/ubuntu-pine64-flavour-makers Press [ENTER] to continue or ctrl-c to cancel adding it gpg: keyring `/tmp/tmpeih3ibox/secring.gpg' created gpg: keyring `/tmp/tmpeih3ibox/pubring.gpg' created gpg: requesting key 56A3D45E from hkp server keyserver.ubuntu.com gpg: /tmp/tmpeih3ibox/trustdb.gpg: trustdb created gpg: key 56A3D45E: public key "Launchpad PPA for Simon Eisenmann" imported gpg: Total number processed: 1 gpg: imported: 1 (RSA: 1) OK sudo apt-get update Hit:1 http://ppa.launchpad.net/elementary-os/stable/ubuntu xenial InRelease Hit:2 http://ports.ubuntu.com xenial InRelease Hit:3 http://ppa.launchpad.net/longsleep/ubuntu-pine64-flavour-makers/ubuntu xenial InRelease Hit:4 http://ports.ubuntu.com xenial-updates InRelease Hit:5 http://ppa.launchpad.net/noobslab/themes/ubuntu xenial InRelease Hit:6 http://ports.ubuntu.com xenial-security InRelease Hit:7 http://ppa.launchpad.net/ricotz/docky/ubuntu xenial InRelease Hit:8 http://ports.ubuntu.com xenial-backports InRelease Hit:9 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu xenial InRelease Hit:10 http://ports.ubuntu.com/ubuntu-ports xenial InRelease Reading package lists... Done sudo apt-get install libvdpau-sunxi Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package libvdpau-sunxi Thanks RE: Accelerated H.264 and HEVC video decoding with Cedrus - longsleep - 05-05-2016 Sorry the binary package is named libvdpau-sunxi1 (note the 1 at the end). |