[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