decoder: vc1: fails only on advanced profile

In commit 2eb4394 the frame coding mode was verified for progressive
regardless the profile. But the FCM is only valid in the advanced
profile. This patch checks for the advanced profile before verifying FCM for
progressive.

https://bugzilla.gnome.org/show_bug.cgi?id=769250
This commit is contained in:
Víctor Manuel Jáquez Leal 2016-09-06 11:19:05 +02:00
parent 59821a21e9
commit 7ebef58093

View file

@ -957,7 +957,9 @@ decode_frame (GstVaapiDecoderVC1 * decoder, GstVC1BDU * rbdu, GstVC1BDU * ebdu)
return get_status (result); return get_status (result);
} }
if (frame_hdr->pic.advanced.fcm != GST_VC1_FRAME_PROGRESSIVE) { /* @FIXME: intel-driver cannot handle interlaced frames */
if (priv->profile == GST_VAAPI_PROFILE_VC1_ADVANCED
&& frame_hdr->pic.advanced.fcm != GST_VC1_FRAME_PROGRESSIVE) {
GST_ERROR ("interlaced video not supported"); GST_ERROR ("interlaced video not supported");
return GST_VAAPI_DECODER_STATUS_ERROR_UNSUPPORTED_PROFILE; return GST_VAAPI_DECODER_STATUS_ERROR_UNSUPPORTED_PROFILE;
} }
@ -1304,6 +1306,7 @@ gst_vaapi_decoder_vc1_parse (GstVaapiDecoder * base_decoder,
flags |= GST_VAAPI_DECODER_UNIT_FLAG_SLICE; flags |= GST_VAAPI_DECODER_UNIT_FLAG_SLICE;
break; break;
case GST_VC1_FIELD: case GST_VC1_FIELD:
/* @FIXME: intel-driver cannot handle interlaced frames */
GST_ERROR ("interlaced video not supported"); GST_ERROR ("interlaced video not supported");
return GST_VAAPI_DECODER_STATUS_ERROR_UNSUPPORTED_PROFILE; return GST_VAAPI_DECODER_STATUS_ERROR_UNSUPPORTED_PROFILE;
} }