[Intel-gfx] Crash in Gstreamer Vaapi Application for playing multiple videos

Xiang, Haihao haihao.xiang at intel.com
Fri Feb 25 09:07:08 CET 2011


The issue on my box with libva-1.0.7

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
[New Thread 0xaeafeb70 (LWP 12165)]
[Thread 0xb4afeb70 (LWP 12151) exited]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb5cedb70 (LWP 12149)]
i965_PutSurface (ctx=0xaf310148, surface=67108883, draw=0xc00005, srcx=0, srcy=0, srcw=1920, srch=796, destx=0, desty=0, destw=1920, desth=796, cliprects=0x0, 
    number_cliprects=0, flags=0) at i965_drv_video.c:1725
1725	    if (obj_surface->bo == NULL)
(gdb) bt
#0  i965_PutSurface (ctx=0xaf310148, surface=67108883, draw=0xc00005, srcx=0, srcy=0, srcw=1920, srch=796, destx=0, desty=0, destw=1920, desth=796, cliprects=0x0, 
    number_cliprects=0, flags=0) at i965_drv_video.c:1725
#1  0xb6e43a5d in vaPutSurface (dpy=0xaf3b2a18, surface=67108883, draw=12582917, srcx=<value optimized out>, srcy=<value optimized out>, srcw=<value optimized out>, 
    srch=<value optimized out>, destx=<value optimized out>, desty=0, destw=1920, desth=796, cliprects=0x0, number_cliprects=0, flags=0) at va_x11.c:288
#2  0xb7b5bfa1 in gst_vaapi_window_x11_render (window=0x8192d98, surface=0x82cf9a8, src_rect=0xb5ceccb8, dst_rect=0x81a4298, flags=3) at gstvaapiwindow_x11.c:424
#3  0xb70ffab5 in gst_vaapi_window_put_surface (window=0x8192d98, surface=0x82cf9a8, src_rect=0xb5ceccb8, dst_rect=0x81a4298, flags=3) at gstvaapiwindow.c:506
#4  0xb6c48da7 in gst_vaapisink_show_frame_x11 (base_sink=0x81a40d8, buffer=0x81c8118) at gstvaapisink.c:680
#5  gst_vaapisink_show_frame (base_sink=0x81a40d8, buffer=0x81c8118) at gstvaapisink.c:714
#6  0xb7c95c98 in ?? () from /usr/lib/libgstbase-0.10.so.0
#7  0xb7c9d595 in ?? () from /usr/lib/libgstbase-0.10.so.0
#8  0xb7c9f359 in ?? () from /usr/lib/libgstbase-0.10.so.0
#9  0xb7c9f871 in ?? () from /usr/lib/libgstbase-0.10.so.0
#10 0xb7e8be05 in ?? () from /usr/lib/libgstreamer-0.10.so.0
#11 0xb7e8c864 in ?? () from /usr/lib/libgstreamer-0.10.so.0
#12 0xb6c57441 in gst_vaapidecode_step (pad=0x81549a0, buf=0xaf300df0) at gstvaapidecode.c:162
#13 gst_vaapidecode_chain (pad=0x81549a0, buf=0xaf300df0) at gstvaapidecode.c:536
#14 0xb7e8be05 in ?? () from /usr/lib/libgstreamer-0.10.so.0
#15 0xb7e8c864 in ?? () from /usr/lib/libgstreamer-0.10.so.0
#16 0xb6bf555d in ?? () from /usr/lib/gstreamer-0.10/libgstcoreelements.so
#17 0xb7eb7d6b in ?? () from /usr/lib/libgstreamer-0.10.so.0
#18 0xb7eb9377 in ?? () from /usr/lib/libgstreamer-0.10.so.0
#19 0xb7f68d0c in ?? () from /lib/libglib-2.0.so.0
#20 0xb7f66def in ?? () from /lib/libglib-2.0.so.0
#21 0xb6e7f96e in start_thread (arg=0xb5cedb70) at pthread_create.c:300
#22 0xb6fc5a4e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130


line 1725:
 1724      obj_surface = SURFACE(surface);
 1725      if (obj_surface->bo == NULL)
Obviously obj_surface is invalid in this case.



> Hi,
> 
> Could you please share the log of the crash.
> Not sure what is the problem at my end. :-( Could you suggest something 
> I can try?
> 
> Thanks,
> Jyotsana.
> 
> Xiang, Haihao wrote:
> > On Thu, 2011-02-24 at 17:28 +0800, Jyotsana wrote:
> >   
> >> Hi,
> >>
> >> Thats's great. But I am not sure why it doesn't play at my end.
> >> Which platform are you running on?
> >>     
> > Sandybridge
> >
> >
> >   
> >> And for the segfault does the file run till the EOS and then crashes or 
> >> somewhere in the middle?
> >>     
> > It crashes in the middle
> >
> >   
> >> Thanks,
> >> Jyotsana.
> >>
> >> Xiang, Haihao wrote:
> >>     
> >>>> One reason of the sample not receiving 'prepare-xwindow-id' message 
> >>>> could be if the file is not present in the same path as the executable.
> >>>> The 'Filename' variable should be changed accordingly if it is not.
> >>>> Could you tell me the format of your file and the type of video codec 
> >>>> present in the file?
> >>>> The application supports only mov/mp4(h264 : video codec) or 
> >>>> mpegts(mpeg2 : video codec).
> >>>>     
> >>>>         
> >>> Oh, my fault. After moving all files to the same directory, I got four
> >>> windows, however I can't reproduce your issue.
> >>>
> >>> 1.  All videos are rendered fine at the beginning. See the attached
> >>> screenshot.
> >>>
> >>> 2.  I also got a segment fault after a while, but this issue isn't same
> >>> as yours according to your backtrace.  An invalid surface id is passed
> >>> to the backed driver via vaPutSurface in my case. I have fixed this
> >>> segment issue however I am not sure why an invalid id is passed to the
> >>> driver. Maybe it is a plugin problem.
> >>>  
> >>>  
> >>>
> >>>   
> >>>       
> >>>> Thanks,
> >>>> Jyotsana.
> >>>>
> >>>> Xiang, Haihao wrote:
> >>>>     
> >>>>         
> >>>>> Hi, 
> >>>>>
> >>>>>   I tried to reproduce the issue with your sample code but failed. 
> >>>>> No window is created even with single video file. With gdb's help, I
> >>>>> found the sample doesn't receive 'prepare-xwindow-id' message. 
> >>>>>
> >>>>> After building the sample code ( I modified the variable 'Filename'), I
> >>>>> directly run MultiVideo
> >>>>> $> ./MultiVideo
> >>>>>
> >>>>> Did I miss something?
> >>>>>
> >>>>> Thanks
> >>>>> Haihao
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>   
> >>>>>       
> >>>>>           
> >>>>>> Hi,
> >>>>>>
> >>>>>> I am trying to play multiple videos simultaneously using 
> >>>>>> GStreamer(vaapidecode and vaapisink plugins) and libVA-1.0.7.
> >>>>>> In the sample application I am creating multiple windows using 
> >>>>>> "XCreateWindow" and passing the generated window ID to vaapisink.
> >>>>>> There are two problems I am facing:
> >>>>>>
> >>>>>> 1. The first video is getting rendered but the other videos are not 
> >>>>>> getting rendered.
> >>>>>>
> >>>>>> 2. 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.
> >>>>>>
> >>>>>> The backtrace of the gdb log is attached "CrashLog.txt". The log 
> >>>>>> suggests the crash is in "i965_PutSurface".
> >>>>>>
> >>>>>> I am using the following packages as mentioned on Intel Linux graphics 
> >>>>>> site "http://intellinuxgraphics.org/2010Q4.html":
> >>>>>>
> >>>>>> 2D driver: xf86-video-intel 2.14.0 release 
> >>>>>> <http://xorg.freedesktop.org/archive/individual/driver/xf86-video-intel-2.14.0.tar.bz2> 
> >>>>>>
> >>>>>> 3D driver: mesa 7.10 <ftp://freedesktop.org/pub/mesa/7.10/>
> >>>>>> Libdrm: libdrm-2.4.23 release 
> >>>>>> <http://dri.freedesktop.org/libdrm/libdrm-2.4.23.tar.bz2>
> >>>>>> Kernel: 2.6.37 release 
> >>>>>> <http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.37.tar.bz2>
> >>>>>> Cairo: cairo-1.10.2 release <http://cairographics.org/news/cairo-1.10.2/>
> >>>>>> Libva: libva-1.0.7 release 
> >>>>>> <http://cgit.freedesktop.org/libva/snapshot/libva-1.0.7.tar.bz2>
> >>>>>> xserver: 1.9.3
> >>>>>>
> >>>>>> 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.
> >>>>>>
> >>>>>> For reference attaching the sample application "MultiVideo.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 
> >>>>>> decoder like ffmpeg.
> >>>>>> What could be the problem?
> >>>>>>
> >>>>>> PS : OS : Fedora Core 13. Platform: Sandy Bridge.Kernel : 2.6.37.
> >>>>>>
> >>>>>> Regards,
> >>>>>> Jyotsana.
> >>>>>>
> >>>>>>     
> >>>>>>         
> >>>>>>             
> >>>>>   
> >>>>>       
> >>>>>           
> >>>   
> >>>
> >>> ------------------------------------------------------------------------
> >>>
> >>>       
> >
> >
> >
> >   
> 





More information about the Intel-gfx mailing list