How to use NVidia video hardware acceleration ?

Bug #1067392 reported by Flo

This bug report was converted into a question: question #212166: How to use NVidia video hardware acceleration ?.

6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
nvidia-graphics-drivers-tegra (Ubuntu)
Invalid
Undecided
Unassigned

Bug Description

With the release of a package with the official nvidia tegra drivers in Quantal, I hoped that I will able to read my video files on my ac100 with hardware acceleration (as with original Android).

With mplayer provided by default with the lubuntu distribution, the whole system freezes for each format I tried (mpeg2, H264 ...)
I would try VLC (that support OpenMAX), but I doesn't find how to rely it with the NVidia implementation (given by libnvomxilclient.so I suppose)

I don't know if I had completly miss the good way to read a video with Quantal, or if I'm on the right direction ...
I think that if I'm right, I will not be the only one that is interested by this subject ...

Thanks a lot
Flo

Revision history for this message
Flo (n-florent) wrote :

I search a bit more and discover "nvgstplayer" included in the linux4tegra SDK.
It works great (seems, not tested so mush) with very low cpu usage, for divx and 480p h264 files !!!
But I have errors for 720p h264 (insufficient ressource) or mpeg1/mpeg2 (insufficient ressource too, but it's very strange because it occurs even on very low resolution video size, by opposition of h264 files that works under 480p)

Here what I did to install it (not sure all is mandatory) :
- copy from SDK "usr/lib/gstreamer-0.10" and "lib/firmware/nvmm_*" and "usr/lib/nvgstplayer"
- create some link
   ln -s /usr/lib/nvidia-tegra/libEGL.so.1 /usr/lib/libEGL.so
   ln -s /usr/lib/nvidia-tegra/libGLESv1_CM.so.1 /usr/lib/libGLESv1_CM.so
   ln -s /usr/lib/nvidia-tegra/libGLESv2.so.2 /usr/lib/libGLESv2.so
   ln -s /usr/lib/gstreamer-0.10/libgstomx.so /usr/lib/arm-linux-gnueabihf/gstreamer-0.10/
   ln -s /usr/lib/gstreamer-0.10/libgstnvxvimagesink.so /usr/lib/arm-linux-gnueabihf/gstreamer-0.10/
- install some gstreamer-0.10 packages (alsa, pulseaudio, good, bad, ugly, base ...)
And then launch nvgstplayer -i pathtovideofile

Revision history for this message
Flo (n-florent) wrote :

Next chapter of my quest
DivX/XVid is OK with nvgstplayer, but I want to play my mpeg2 (DVD) files !!!

VLC can read them softly with fbdev2 driver (80%CPU), but without resize and colorspace conversion.
So I recompile vlc with --enabled-egl flag.
But when I try then with opengl driver, it doesn't work with this log :

[0x40b07ac0] main gl debug: looking for opengl module: 1 candidate
[0x40b07ac0] egl gl debug: EGL version 1.4 by NVIDIA
[0x40b07ac0] egl gl debug: extensions: EGL_NV_system_time EGL_KHR_config_attribs EGL_KHR_surfaceless_context EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_ANDROID_blob_cache EGL_KHR_vg_parent_image EGL_NV_perfmon EGL_KHR_lock_surface EGL_KHR_fence_sync EGL_NV_sync EGL_NV_depth_nonlinear EGL_NV_post_sub_buffer EGL_NV_post_convert_rounding EGL_NV_native_query EGL_KHR_stream EGL_KHR_stream_fifo EGL_KHR_stream_producer_eglsurface EGL_KHR_stream_consumer_gltexture EGL_KHR_stream_cross_process_fd EGL_EXT_create_context_robustness EGL_IMG_context_priority EGL_NV_3dvision_surface EGL_KHR_reusable_sync EGL_NV_stream_sync EGL_NV_coverage_sample EGL_NV_coverage_sample_resolve
[0x40b07ac0] main gl debug: no opengl module matching "egl" could be loaded
[0x40b07ac0] main gl debug: TIMER module_need() : 70.834 ms - Total 70.834 ms / 1 intvls (Avg 70.834 ms)
[0x40b04970] main vout display debug: no vout display module matching "gl" could be loaded

I think I'm not far from the goal, if someone have an idea ...

Revision history for this message
Flo (n-florent) wrote :

Wrong way
http://trac.videolan.org/vlc/ticket/7634
VLC can use EGL (to use OpenGL) but does't work with OpenGL ES

Changed in nvidia-graphics-drivers-tegra (Ubuntu):
status: New → Invalid
Flo (n-florent)
Changed in nvidia-graphics-drivers-tegra (Ubuntu):
status: Invalid → New
status: New → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Related questions

Remote bug watches

Bug watches keep track of this bug in other bug trackers.