bootlin / v4l2-request-test

A standalone tool to test the Linux Video4Linux2 Request API
22 stars 22 forks source link

Unable to create imported buffer: Permission denied #19

Open vi opened 4 years ago

vi commented 4 years ago

Can't run it for some reason:

Config:
 Video path: /dev/video0
 Media path: /dev/media0
 DRM path: /dev/dri/card0
 DRM driver: sun4i-drm
 Slices path: data/bbb-mpeg2
 Slices filename format: slice-%d.dump
 FPS: 0

Preset:
 Name: bbb-mpeg2
 Description: big_buck_bunny_480p_MPEG2_MP2_25fps_1800K.MPG
 License: Creative Commons Attribution 3.0
 Attribution: Blender Foundation | www.blender.org
 Width: 854
 Height: 480
 Frames count: 25
 Format: MPEG2

Media device driver: cedrus
Destination format: NV12 YUV
Unable to create imported buffer: Permission denied
Unable to create or import DRM buffer
Unable to start display engine

Kernel is 5.4.14-sunxi, system is Armbian 20.02.0-rc1 Buster on Cubieboard 2.

Failing system request is ioctl(5, DRM_IOCTL_PRIME_FD_TO_HANDLE, 0xbeb24bf0) = -1 EACCES (Permission denied).

vi commented 4 years ago

If I try from tag release-2019.03, the failing syscall is different: ioctl(5, DRM_IOCTL_MODE_ATOMIC, 0xbeabfff8) = -1 EACCES (Permission denied)

multigiorgiplex commented 4 years ago

Same problem here. Using a OrangePi Plus2E board with it's official ISO OrangePi_plus2e_ubuntu_xenial_desktop_linux5.3.5_v1.0 with modded kernel 5.0.0 from linux-cedrus-release-2019.03, libva-v4l2-request-release-2019.03 and libva-2.4.0

Although my syscall is ioctl(5, DRM_IOCTL_PRIME_FD_TO_HANDLE, 0xbedd3610) = -1 EACCES (Permission denied) with release-2019.03 tag.

vainfo output is:

orangepi@OrangePi:~$ vainfo 
error: can't connect to X server!
libva info: VA-API version 1.4.0
libva info: va_getDriverName() returns -1
libva info: User requested driver 'v4l2_request'
libva info: Trying to open /usr/local/lib/dri/v4l2_request_drv_video.so
libva info: Found init function __vaDriverInit_1_4
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.4 (libva 1.7.0)
vainfo: Driver version: v4l2-request
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
      VAProfileH264MultiviewHigh      : VAEntrypointVLD
      VAProfileH264StereoHigh         : VAEntrypointVLD
      VAProfileHEVCMain               : VAEntrypointVLD
multigiorgiplex commented 4 years ago

Nevermind the test does correctly work outside X in another VT.

vi commented 4 years ago

@multigiorgiplex , Does the test conflicts with X server being active?

Is it the same for v4l2-request?

multigiorgiplex commented 4 years ago

@multigiorgiplex , Does the test conflicts with X server being active?

No. I've tried stopping X and then run the test in a VT with positive result, and also keep X running and run the test in another VT, same positive result. The important thing seems not run the test inside X.

Is it the same for v4l2-request?

Don't know, I'm still struggling decoding videos with VLC.

lulinfan commented 4 years ago

any progress ? i met the same problem.

root@orangepioneplus:/home/orangepi/v4l2-request-test-next# ./v4l2-request-test Config: Video path: /dev/video0 Media path: /dev/media0 DRM path: /dev/dri/card0 DRM driver: sun4i-drm Slices path: data/bbb-h264-high-32 Slices filename format: slice-%d.dump FPS: 0

Preset: Name: bbb-h264-high-32 Description: big_buck_bunny_480p_H264_AAC_25fps_1800K.MP4 License: Creative Commons Attribution 3.0 Attribution: Blender Foundation | www.blender.org Width: 854 Height: 480 Frames count: 32 Format: H264

Media device driver: cedrus Destination format: NV12 YUV use_dmabuf:1,count=16 Scaling video from 854x480 to 2560x1438+0+1 Unable to commit atomic mode: Permission denied Unable to commit initial plane Unable to start display engine

strace output: write(1, "Scaling video from 854x480 to 25"..., 44Scaling video from 854x480 to 2560x1438+0+1 ) = 44 ioctl(5, _IOC(_IOC_READ|_IOC_WRITE, 0x64, 0xbc, 0x38), 0xfffffb034500) = -1 EACCES (Permission denied) write(2, "Unable to commit atomic mode: Pe"..., 48Unable to commit atomic mode: Permission denied) = 48 write(2, "Unable to commit initial plane\n", 31Unable to commit initial plane) = 31 write(2, "Unable to start display engine\n", 31Unable to start display engine) = 31