[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