Crash for multiple videos using gstreamer-vaapi

Jyotsana jyotsanasingh at tataelxsi.co.in
Tue Mar 22 23:30:33 PDT 2011


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  0xb7fe882a in drm_intel_gem_bo_emit_reloc () from
/opt/X11R7//lib/libdrm_intel.so.1
#2  0xb7fe36da in drm_intel_bo_emit_reloc () from
/opt/X11R7//lib/libdrm_intel.so.1
#3  0xb130fe3b in intel_batchbuffer_emit_reloc_helper (ctx=,
batch=0xaf2beb30, bo=0x0, read_domains=16, write_domains=0, delta=0) at
intel_batchbuffer.c:198
#4  0xb1317a19 in gen6_emit_wm_state (ctx=0xaf2bc178, kernel=) at
i965_render.c:1808
#5  gen6_render_emit_states (ctx=0xaf2bc178, kernel=) at i965_render.c:1894
#6  0xb1318f85 in gen6_render_put_surface (ctx=0xaf2bc178, surface=67108868,
srcx=0, srcy=0, srcw=1280, srch=720, destx=0, desty=0, destw=940, desth=528,
flag=0) at i965_render.c:1921
#7  intel_render_put_surface (ctx=0xaf2bc178, surface=67108868, srcx=0,
srcy=0, srcw=1280, srch=720, destx=0, desty=0, destw=940, desth=528, flag=0)
at i965_render.c:2020
#8  0xb131b082 in i965_PutSurface (ctx=0xaf2bc178, surface=67108868,
draw=0x3e00007, srcx=0, srcy=0, srcw=1280, srch=720, destx=0, desty=0,
destw=940, desth=528, cliprects=0x0, number_cliprects=0, flags=0) at
i965_drv_video.c:1772
#9  0xb4902796 in vaPutSurface (dpy=0xaf2bc008, surface=67108868,
draw=65011719, srcx=0, srcy=0, srcw=1280, srch=720, destx=0, desty=0,
destw=940, desth=528, cliprects=0x0, number_cliprects=0, flags=0) at
va_x11.c:288
#10 0xb490ad15 in gst_vaapi_window_x11_render (window=0xb0cc05f8,
surface=0xa95bcc70, src_rect=0xa94fe988, dst_rect=0xaf246598, flags=3) at
gstvaapiwindow_x11.c:424
#11 0xac25a820 in gst_vaapi_window_put_surface (window=0xb0cc05f8,
surface=0xa95bcc70, src_rect=0xa94fe988, dst_rect=0xaf246598, flags=3) at
gstvaapiwindow.c:506
#12 0xb492f2f4 in gst_vaapisink_show_frame_x11 (base_sink=0xaf2463d8,
buffer=0xb65dd6a8) at gstvaapisink.c:680
#13 gst_vaapisink_show_frame (base_sink=0xaf2463d8, buffer=0xb65dd6a8) at
gstvaapisink.c:714
#14 0x4d782435 in gst_base_sink_render_object (basesink=0xaf2463d8,
pad=0xaf2ae998, is_list=0, obj=0xb65dd6a8) at gstbasesink.c:2833
#15 0x4d783eb7 in gst_base_sink_queue_object_unlocked (basesink=0xaf2463d8,
pad=0xaf2ae998, is_list=0, obj=0xb65dd6a8, prerollable=1) at
gstbasesink.c:3111
#16 0x4d78a599 in gst_base_sink_chain_unlocked (basesink=0xaf2463d8,
pad=0xaf2ae998, is_list=0, obj=0xb65dd6a8) at gstbasesink.c:3485
#17 0x4d78aa99 in gst_base_sink_chain_main (basesink=, pad=0xaf2ae998,
is_list=0, obj=0xb65dd6a8) at gstbasesink.c:3523
#18 0x4cad55cd in gst_pad_chain_data_unchecked (pad=0xaf2ae998, is_buffer=1,
data=0xb65dd6a8) at gstpad.c:4190
#19 0x4cad5fe7 in gst_pad_push_data (pad=0xace0c580, is_buffer=1,
data=0xb65dd6a8) at gstpad.c:4419
#20 0xb493427a in gst_vaapidecode_step (pad=0xaf20a268, buf=0xa8313770) at
gstvaapidecode.c:162
#21 gst_vaapidecode_chain (pad=0xaf20a268, buf=0xa8313770) at
gstvaapidecode.c:536
#22 0x4cad55cd in gst_pad_chain_data_unchecked (pad=0xaf20a268, is_buffer=1,
data=0xa8313770) at gstpad.c:4190
#23 0x4cad5fe7 in gst_pad_push_data (pad=0xaf2ae8d0, is_buffer=1,
data=0xa8313770) at gstpad.c:4419
#24 0xb662ada6 in gst_queue_push_one (pad=0xaf2ae8d0) at gstqueue.c:1144
#25 gst_queue_loop (pad=0xaf2ae8d0) at gstqueue.c:1260
#26 0x4cb040f1 in gst_task_func (task=0xaf21f5a8) at gsttask.c:271
#27 0x4cb05727 in default_func (tdata=0xaf201a40, pool=0xb6509408) at
gsttaskpool.c:70
#28 0x4b9e4214 in ?? () from /lib/libglib-2.0.so.0
#29 0x4b9e2210 in ?? () from /lib/libglib-2.0.so.0
#30 0x4b91b919 in start_thread () from /lib/libpthread.so.0
#31 0x4b85de5e in 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.


-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: MultiVideos.c
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20110323/6ec6a0e9/attachment-0001.asc>


More information about the gstreamer-devel mailing list