mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-10 03:19:40 +00:00
vc1: fix decoding of WMV3 videos in AVI format.
The AVI demuxer (avidemux) does not set a proper "format" attribute to the generated caps. So, try to recover the video codec format from the "wmvversion" property instead. Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
This commit is contained in:
parent
d69cb4389f
commit
a68c218c8e
1 changed files with 7 additions and 0 deletions
|
@ -1042,6 +1042,7 @@ decode_codec_data(GstVaapiDecoderVC1 *decoder, GstBuffer *buffer)
|
|||
guint buf_size, ofs;
|
||||
gint width, height;
|
||||
guint32 format;
|
||||
gint version;
|
||||
|
||||
buf = GST_BUFFER_DATA(buffer);
|
||||
buf_size = GST_BUFFER_SIZE(buffer);
|
||||
|
@ -1058,6 +1059,12 @@ decode_codec_data(GstVaapiDecoderVC1 *decoder, GstBuffer *buffer)
|
|||
caps = GST_VAAPI_DECODER_CODEC_STATE(decoder)->caps;
|
||||
structure = gst_caps_get_structure(caps, 0);
|
||||
if (!gst_structure_get_fourcc(structure, "format", &format)) {
|
||||
/* Try to determine format from "wmvversion" property */
|
||||
if (gst_structure_get_int(structure, "wmvversion", &version))
|
||||
format = (version >= 1 && version <= 3) ?
|
||||
GST_MAKE_FOURCC('W','M','V',('0'+version)) : 0;
|
||||
}
|
||||
if (!format) {
|
||||
GST_ERROR("failed to parse profile from codec-data");
|
||||
return GST_VAAPI_DECODER_STATUS_ERROR_UNSUPPORTED_CODEC;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue