[Libva] Crash example code avenc.cpp. H264. EMGD. Debian Squeeze.

kwisp kwispost at gmail.com
Wed Apr 24 11:46:38 PDT 2013


There is h264 encoding example from libva source code.
libva/test/v4l_h264/encode.
I build this code success, but get crash after run.

libva info: VA-API version 0.33.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/local/lib/dri/emgd_drv_video.so
libva info: Found init function __vaDriverInit_0_32
Intel(R) Embedded Media and Graphics Driver 1.10 Build 2209
libva info: va_openDriver() returns 0
Using: localhost:8888
video capture
    VIDIOC_ENUM_FMT(0,VIDEO_CAPTURE)
pfmt: 0x56595559 YUV 4:2:2 (YUYV)
       VIDIOC_ENUM_FRAMESIZES(0,0x1) 640x480  @ 1/30  1/24  1/20  1/15
1/10  2/15  1/5
       VIDIOC_ENUM_FRAMESIZES(1,0x1) 160x120  @ 1/30  1/24  1/20  1/15
1/10  2/15  1/5
       VIDIOC_ENUM_FRAMESIZES(2,0x1) 176x144  @ 1/30  1/24  1/20  1/15
1/10  2/15  1/5
       VIDIOC_ENUM_FRAMESIZES(3,0x1) 320x176  @ 1/30  1/24  1/20  1/15
1/10  2/15  1/5
       VIDIOC_ENUM_FRAMESIZES(4,0x1) 320x240  @ 1/30  1/24  1/20  1/15
1/10  2/15  1/5
       VIDIOC_ENUM_FRAMESIZES(5,0x1) 432x240  @ 1/30  1/24  1/20  1/15
1/10  2/15  1/5
       VIDIOC_ENUM_FRAMESIZES(6,0x1) 352x288  @ 1/30  1/24  1/20  1/15
1/10  2/15  1/5
       VIDIOC_ENUM_FRAMESIZES(7,0x1) 544x288  @ 1/30  1/24  1/20  1/15
1/10  2/15  1/5
       VIDIOC_ENUM_FRAMESIZES(8,0x1) 640x360  @ 1/30  1/24  1/20  1/15
1/10  2/15  1/5
       VIDIOC_ENUM_FRAMESIZES(9,0x1) 752x416  @ 1/24  1/20  1/15  1/10
2/15  1/5
       VIDIOC_ENUM_FRAMESIZES(10,0x1) 800x448  @ 1/24  1/20  1/15  1/10
2/15  1/5
       VIDIOC_ENUM_FRAMESIZES(11,0x1) 864x480  @ 1/20  1/15  1/10  2/15
1/5
       VIDIOC_ENUM_FRAMESIZES(12,0x1) 960x544  @ 1/20  1/15  1/10  2/15
1/5
       VIDIOC_ENUM_FRAMESIZES(13,0x1) 1024x576  @ 1/15  1/10  2/15  1/5
       VIDIOC_ENUM_FRAMESIZES(14,0x1) 800x600  @ 1/24  1/20  1/15  1/10
2/15  1/5
       VIDIOC_ENUM_FRAMESIZES(15,0x1) 1184x656  @ 1/15  1/10  2/15  1/5
       VIDIOC_ENUM_FRAMESIZES(16,0x1) 960x720  @ 1/15  1/10  2/15  1/5
       VIDIOC_ENUM_FRAMESIZES(17,0x1) 1280x720  @ 1/10  2/15  1/5
       VIDIOC_ENUM_FRAMESIZES(18,0x1) 1392x768  @ 1/10  2/15  1/5
       VIDIOC_ENUM_FRAMESIZES(19,0x1) 1504x832  @ 2/15  1/5
       VIDIOC_ENUM_FRAMESIZES(20,0x1) 1600x896  @ 2/15  1/5
       VIDIOC_ENUM_FRAMESIZES(21,0x1) 1280x960  @ 2/15  1/5
       VIDIOC_ENUM_FRAMESIZES(22,0x1) 1280x1024  @ 2/15  1/5
       VIDIOC_ENUM_FRAMESIZES(23,0x1) 1600x1200  @ 1/5
    VIDIOC_ENUM_FMT(1,VIDEO_CAPTURE)
pfmt: 0x47504a4d MJPEG
   => don't list not supported format
video: 640x480; fourcc:0x56595559
video: 640x480; fourcc:0x56595559
INFO: 640x480 at 1/30
negotiated frame resolution: 640x480
create_encode_pipe:vaCreateContext(152) failed, exit

I try to modify code in place where called vaCreateContext(...) file
avenc.cpp
before my changes:
...
va_status = vaCreateContext(va_dpy, config_id, picture_width,
picture_height, VA_PROGRESSIVE, 0, 0, &context_id);
...

after:

....
  va_status = vaCreateSurfaces(va_dpy, picture_width, picture_height,
VA_RT_FORMAT_YUV420, SID_NUMBER, &surface_ids[0]);
  va_status = vaCreateContext(va_dpy, config_id, picture_width,
picture_height, VA_PROGRESSIVE, surface_ids, SID_NUMBER, &context_id);
....

after that:
.....
negotiated frame resolution: 640x480
libva: libva version 0.32.0
libva: va_getDriverName() returns 0
libva: Trying to open /usr/lib/dri/emgd_drv_video.so
Intel(R) Embedded Media and Graphics Driver 1.10 Build 2209
libva: va_openDriver() returns 0

Program received signal SIGSEGV, Segmentation fault.
0xb788d716 in ?? () from /usr/lib/dri/emgd_drv_video.so

Why this example of code do not work ?

-- 
-----------------------------------------
С Уважением, Клочков В.В.
mailto: kwispost at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/libva/attachments/20130424/fc96616e/attachment-0001.html>


More information about the Libva mailing list