After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 645517 - Crash for multiple videos using gstreamer-vaapi
Crash for multiple videos using gstreamer-vaapi
Status: RESOLVED NOTGNOME
Product: GStreamer
Classification: Platform
Component: gst-plugins
unspecified
Other Linux
: Normal blocker
: NONE
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2011-03-22 12:40 UTC by jyotsanasingh
Modified: 2011-03-22 13:12 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Gstreamer Sample Application (16.74 KB, application/octet-stream)
2011-03-22 12:40 UTC, jyotsanasingh
Details

Description jyotsanasingh 2011-03-22 12:40:21 UTC
Created attachment 184056 [details]
Gstreamer Sample Application

Hi,

I am trying to play multiple videos [mov/mp4/mpeg-ts container, H.264/MPEG2 Video Codec] using a sample gstreamer application, [This application runs as a single process spawning multiple threads] simultaneously using
GStreamer-vaapi and libVA-1.0.7.
The driver used for hardware acceleration of video is "i965".
Following is the result of "vainfo":
------------------------------------------------------------------ 
libva: libva version 0.31.1
libva: va_getDriverName() returns 0
libva: Trying to open /opt/X11R7/lib/dri/i965_drv_video.so
libva: va_openDriver() returns 0
vainfo: VA API version: 0.31
vainfo: Driver version: i965 Driver 0.1
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileH264Baseline           : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointVLD
      VAProfileVC1Simple              : VAEntrypointVLD
      VAProfileVC1Main                : VAEntrypointVLD
      VAProfileVC1Advanced            : VAEntrypointVLD
------------------------------------------------------------------

In the sample application I am creating multiple windows using
"XCreateWindow" and passing the generated window ID to vaapisink.
There following is the problem that I am facing:

The application crashes randomly:
None of the gstreamer calls return a failure and the state is getting
changed to play successfully. Tried the application with different container
formats.
Also from the command line using "gst-launch" I am able to playback multiple
videos simultaneously. [Here one difference compared to the sample application is, these are running as separate processes]

Following is the backtrace of the gdb :
------------------------------------------------------------------
0xb7fe856c in do_bo_emit_reloc () from /opt/X11R7//lib/libdrm_intel.so.1
  • #1 drm_intel_gem_bo_emit_reloc
    from /opt/X11R7//lib/libdrm_intel.so.1
  • #2 drm_intel_bo_emit_reloc
    from /opt/X11R7//lib/libdrm_intel.so.1
  • #3 intel_batchbuffer_emit_reloc_helper
    at intel_batchbuffer.c line 198
  • #4 gen6_emit_wm_state
    at i965_render.c line 1808
  • #5 gen6_render_emit_states
    at i965_render.c line 1894
  • #6 gen6_render_put_surface
    at i965_render.c line 1921
  • #7 intel_render_put_surface
    at i965_render.c line 2020
  • #8 i965_PutSurface
    at i965_drv_video.c line 1772
  • #9 vaPutSurface
    at va_x11.c line 288
  • #10 gst_vaapi_window_x11_render
    at gstvaapiwindow_x11.c line 424
  • #11 gst_vaapi_window_put_surface
    at gstvaapiwindow.c line 506
  • #12 gst_vaapisink_show_frame_x11
    at gstvaapisink.c line 680
  • #13 gst_vaapisink_show_frame
    at gstvaapisink.c line 714
  • #14 gst_base_sink_render_object
    at gstbasesink.c line 2833
  • #15 gst_base_sink_queue_object_unlocked
    at gstbasesink.c line 3111
  • #16 gst_base_sink_chain_unlocked
    at gstbasesink.c line 3485
  • #17 gst_base_sink_chain_main
    at gstbasesink.c line 3523
  • #18 gst_pad_chain_data_unchecked
    at gstpad.c line 4190
  • #19 gst_pad_push_data
    at gstpad.c line 4419
  • #20 gst_vaapidecode_step
    at gstvaapidecode.c line 162
  • #21 gst_vaapidecode_chain
    at gstvaapidecode.c line 536
  • #22 gst_pad_chain_data_unchecked
    at gstpad.c line 4190
  • #23 gst_pad_push_data
    at gstpad.c line 4419
  • #24 gst_queue_push_one
    at gstqueue.c line 1144
  • #25 gst_queue_loop
    at gstqueue.c line 1260
  • #26 gst_task_func
    at gsttask.c line 271
  • #27 default_func
    at gsttaskpool.c line 70
  • #28 ??
    from /lib/libglib-2.0.so.0
  • #29 ??
    from /lib/libglib-2.0.so.0
  • #30 start_thread
    from /lib/libpthread.so.0
  • #31 clone
    from /lib/libc.so.6

I am using the following packages as mentioned on Intel Linux graphics site
"http://intellinuxgraphics.org/2010Q4.html".

Apart from this I have installed the following gstreamer packages:
gstreamer-0.10.31
gst-plugins-base-0.10.29
gst-plugins-good-0.10.22
gst-plugins-bad-0.10.19
gst-plugins-ugly-0.10.15
gst-ffmpeg-0.10.10
gstreamer-vaapi-latest(downloaded from http://www.splitted-desktop.com/~gbeauchesne/gstreamer-vaapi/).

For reference attaching the sample application(MultiVideos.c).

I am not sure if it is application problem or plugin or driver limitation or
X? As the same application runs with "ximagesink" and software decoder like
ffmpeg.
What could be the problem?  

PS:
OS : Fedora Core 13
Kernel : 2.6.37
Platform: Intel i5, Sandy Bridge

Regards,
Jyotsana.
Comment 1 Tim-Philipp Müller 2011-03-22 13:12:43 UTC
We don't maintain this module...