From 0f74785b8ebc3a042f1e8593e516c793897623f1 Mon Sep 17 00:00:00 2001 From: Seungha Yang Date: Sat, 6 Jun 2020 21:15:34 +0900 Subject: [PATCH] mfvideoenc: Set PAR to output IMFMediaType We've set it to input IMFMediaType but not for output. So, if PAR is not 1:1, the input IMFMediaType will be accepted by MFT (default is 1:1). The PAR of input/output IMFMediaType must be identical Part-of: --- sys/mediafoundation/gstmfvideoenc.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/sys/mediafoundation/gstmfvideoenc.cpp b/sys/mediafoundation/gstmfvideoenc.cpp index 5d97cfcb53..4931fab67e 100644 --- a/sys/mediafoundation/gstmfvideoenc.cpp +++ b/sys/mediafoundation/gstmfvideoenc.cpp @@ -173,6 +173,14 @@ gst_mf_video_enc_set_format (GstVideoEncoder * enc, GstVideoCodecState * state) return FALSE; } + hr = MFSetAttributeRatio (out_type.Get (), MF_MT_PIXEL_ASPECT_RATIO, + GST_VIDEO_INFO_PAR_N (info), GST_VIDEO_INFO_PAR_D (info)); + if (!gst_mf_result (hr)) { + GST_ERROR_OBJECT (self, "Couldn't set par %d/%d", + GST_VIDEO_INFO_PAR_N (info), GST_VIDEO_INFO_PAR_D (info)); + return FALSE; + } + hr = out_type->SetUINT32 (MF_MT_INTERLACE_MODE, MFVideoInterlace_Progressive); if (!gst_mf_result (hr)) { GST_ERROR_OBJECT (self,