Bug detailed description ----------------------------------------------------------------- Setting pipeline to PAUSED ... Pipeline is PREROLLING ... libva info: VA-API version 0.34.0 libva info: va_getDriverName() returns 0 libva info: Trying to open /opt/X11R7/lib/dri/i965_drv_video.so libva info: Found init function __vaDriverInit_0_34 libva info: va_openDriver() returns 0 0:00:00.172655116 4402 0x7fb41400cca0 ERROR vaapi gstvaapidecoder_vc1.c:904:decode_frame: failed to parse frame layer gst-launch-0.10: i965_drv_video.c:2318: i965_EndPicture: Assertion `obj_context->codec_state.decode.num_slice_params >= 1' failed. Aborted (core dumped) Environment: ----------------------------------------------------------------- Hardware: Sandybridge libva: (staging)e468728f9e49603f91ccbce3a232aa3bd98d1fd4 intel-driver: (staging)1da548cccce1b9ec704e7aa406a228c037e25ea2 Reproduce steps: ---------------- 1.xinit& 2.gst-launch-0.10 playbin2 uri=file:///home/ipod_itunes_1080i_29_97fps.wmv (you can download the vedio file from http://tinderbox.sh.intel.com/media/bitstreams/VC1/ipod_itunes_1080i_29_97fps.wmv)
with pipeline *gst-launch-0.10 filesrc location=/work/media/ipod_itunes_1080i_29_97fps.wmv ! asfdemux ! video/x-wmv,stream-format=byte-stream ! vaapidecode ! vaapisink --gst-debug=*:3*,we can get the log as belows: 0:00:00.448356979 2240 0xd63680 WARN codecparsers_vc1 gstvc1parser.c:1312:parse_frame_header_advanced: Failed to parse frame header 0:00:00.448372278 2240 0xd63680 ERROR vaapi gstvaapidecoder_vc1.c:904:decode_frame: failed to parse frame layer 0:00:00.448399893 2240 0xd63680 INFO vaapidecode gstvaapidecode.c:733:gst_vaapidecode_sink_event: handle sink event 'eos' gst-launch-0.10: i965_drv_video.c:2074: i965_EndPicture: Assertion `obj_context->codec_state.decode.num_slice_params >= 1' failed. so we know that frame header parse failed. And i find that almost all parameter of the first frame are wrong after they are parsed.Maybe stream data was destroyed somewhere.
1,in gstvaapi,if codec data exists,*frame unit data* will be parsed from the start of codec frame buffer without *frame unit header* but the codec frame buffer of the reproducted clip is as blows: *Entry point unit header|Entry point unit data|Frame unit header|Frame unit data* 2,play this clip with mplayer-vaapi ,we can see log like this: *Gen_mfd.c:1442: gen7_mfd_vc1_pic_state: Assertion ‘0’ failed.* 3,we can see blur when play this clip with mplayer && vlc media player software decoding. so we can see there is something wrong with the clip , this issue won't fix.
entry-point: A point in the bitstream that offers random access. entry-point segment: The compressed bitstream (and the corresponding coded pictures) that is present between one entry-point, and the following entry-point. In the advanced profile, entry-point layer shall be present between the sequence and picture layers to signal a random access point in the bitstream. Further, in the advanced profile, an optional slice layer may be present between the picture layer and the macroblock layer. A slice contains one or more contiguous rows of macroblocks in their original left-to-right order. A slice shall begin at the first macroblock of a row, and end at the last macroblock of the same or another row. The entry-point and slice layers are present only in advanced profile. This is not supported is gstvaapi。It should be the root of the *core dump* issue.
VC-1 interlace is not supported in intel-driver.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.