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=<value optimized out>, 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=<value optimized out>) at i965_render.c:1808 #5 gen6_render_emit_states (ctx=0xaf2bc178, kernel=<value optimized out>) 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=<value optimized out>, 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 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. |
Free forum by Nabble | Edit this page |