If we set output align to wmv decoder, it will fail at copy_video_buffer(). The output size will larger than the sample we provided due to alignment.
From: Ziqing Hui zhui@codeweavers.com
If we set output align to wmv decoder, it will fail at copy_video_buffer(). The output size will larger than the sample we provided due to alignment. --- dlls/winegstreamer/video_decoder.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/winegstreamer/video_decoder.c b/dlls/winegstreamer/video_decoder.c index 5b5d0ec6d97..b1b11b434db 100644 --- a/dlls/winegstreamer/video_decoder.c +++ b/dlls/winegstreamer/video_decoder.c @@ -1514,7 +1514,6 @@ static HRESULT video_decoder_create_with_types(const GUID *const *input_types, U if (FAILED(hr = MFCreateSampleCopierMFT(&decoder->copier))) goto failed;
- decoder->wg_transform_attrs.output_plane_align = 15; decoder->wg_transform_attrs.input_queue_length = 15;
*out = decoder; @@ -1586,6 +1585,7 @@ HRESULT h264_decoder_create(REFIID riid, void **out) | MFT_OUTPUT_STREAM_FIXED_SAMPLE_SIZE; decoder->output_info.cbSize = 1920 * 1088 * 2;
+ decoder->wg_transform_attrs.output_plane_align = 15; decoder->wg_transform_attrs.allow_size_change = TRUE;
TRACE("Created h264 transform %p.\n", &decoder->IMFTransform_iface);
Would have been nice to have tests but WMV encoding is messy and I couldn't make it work with the sample images we have. They are somehow too small for it to behave correctly on the non-16byte aligned sizes the tests use.
This merge request was approved by Rémi Bernon.