New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.
Starred by 4 users

Issue metadata

Status: Duplicate
Merged: issue 137247
Owner:
Closed: Jul 2013
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Bug



Sign in to add a comment
link

Issue 244386: Unable to load libva driver without --no-sandbox

Reported by halton....@intel.com, May 28 2013

Issue description

UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.11 Safari/537.36

Example URL:

Steps to reproduce the problem:
1. I'm on Ubuntu 13.04 64 bit and trunk/src@202504
2. ./build/gyp_chromium -Dchromeos=1 -Dcomponent=shared_library
3. Apply patch for  issue 244364 
4.  ninja -C out/Debug chrome ppapi_example_video_decode
5. out/Debug/chrome-wrapper \
  --register-pepper-plugins="./out/Debug/lib/libppapi_example_video_decode.so;application/x-ppapi-example-video-decode" \
  ./ppapi/examples/video_decode/video_decode.html

What is the expected behavior?
The video_decode ppapi example runs successfully

What went wrong?
The libppapi_example_video_decode.so crashes with libva error message.

libva: VA-API version 0.32.0
libva: va_getDriverName() returns 0
libva: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva: va_openDriver() returns -1
[22442:22442:0528/193752:ERROR:command_buffer_proxy_impl.cc(488)] Failed to Initialize GPU decoder on profile: 0

Did this work before? N/A 

Is it a problem with Flash or HTML5? HTML5

Does this work in other browsers? Yes 

Chrome version: 29.0.1522.0  Channel: canary
OS Version: ubuntu 13.04 64bit
 

Comment 1 by halton....@intel.com, May 28 2013

This issue is because the real libva driver will not loaded until vaInitialize(https://code.google.com/p/chromium/codesearch#chromium/src/content/common/gpu/media/vaapi_h264_decoder.cc&q=VAAPI_Init&sq=package:chromium&l=552) is called. But the gpu process is already in sandbox and unable to dlopen any libraries.

I'd like to propose a solution before writing real code. The basic idea is to call VAAPI_Initialize in VaapiH264Decoder::PreSandboxInitialization(). This needs:
1. Move VAAPI_DLSYM(Initialize, vaapi_handle) from VaapiH264Decoder::PostSandboxInitialization() so that VAAPI_Initialize is a valid function pointer
2. Get current Display by calling base::MessagePumpForUI::GetDefaultXDisplay()
3. call VAAPI_Initialize(va_display_, &major_version, &minor_version);

Ideas?

Comment 2 by ajnolley@chromium.org, May 28 2013

Cc: anandc@chromium.org
Anand, can you look at this?

Comment 3 by halton....@intel.com, May 30 2013

Since patch for  issue 244364  got LGTM. I'll starting writing a patch for this bug with my suggestion.

Comment 4 by halton....@intel.com, Jun 5 2013

https://codereview.chromium.org/15955009/ is for this bug, but Ami do not agree enable linux HW video decode right now, so hold it.

Comment 5 by halton....@intel.com, Jun 5 2013

https://codereview.chromium.org/16430003/ is part II for this bug, it simply remove linux from HW video code black list. I will not request to review until change the attitude on linux for this bug.

Comment 6 by anandc@chromium.org, Jul 16 2013

Cc: zmo@chromium.org
Owner: posciak@chromium.org
Status: Untriaged
zmo@: PTAL for the GPU blacklist.
posciak@: FYI.

Comment 7 by fischman@chromium.org, Jul 23 2013

Mergedinto: 137247
Status: Duplicate
Per the reviewlog for 15955009 libva not being enabled on linux is a conscious decision, not just a happenstance of the a particular implementation happening not to work (which the linked patches would rectify).  Marking as dup for the libva-is-not-supported-on-linux master bug.

Sign in to add a comment