blob: 0ca123f433de542e2ba76538c43d03c5bf18ff93 [file] [log] [blame]
From 64f8cf79f9ce82cbfea2319bb88d3983c1cbe052 Mon Sep 17 00:00:00 2001
From: XinfengZhang <carl.zhang@intel.com>
Date: Thu, 22 Jul 2021 12:34:02 -0400
Subject: [PATCH] reset brc when frame rate changes for VP8e
Signed-off-by: XinfengZhang <carl.zhang@intel.com>
---
media_driver/linux/common/codec/ddi/media_ddi_encode_vp8.cpp | 5 +++++
media_driver/linux/common/codec/ddi/media_ddi_encode_vp8.h | 1 +
2 files changed, 6 insertions(+)
diff --git a/media_driver/linux/common/codec/ddi/media_ddi_encode_vp8.cpp b/media_driver/linux/common/codec/ddi/media_ddi_encode_vp8.cpp
index 9a69be8f..2a3a599b 100644
--- a/media_driver/linux/common/codec/ddi/media_ddi_encode_vp8.cpp
+++ b/media_driver/linux/common/codec/ddi/media_ddi_encode_vp8.cpp
@@ -710,6 +710,11 @@ void DdiEncodeVp8::ParseMiscParamFR(void *data)
tmpId = vaFrameRate->framerate_flags.bits.temporal_id;
#endif
seqParams->FramesPer100Sec[tmpId] = numerator/denominator;
+ if(m_framesPer100Sec && m_framesPer100Sec != seqParams->FramesPer100Sec[tmpId])
+ {
+ seqParams->ResetBRC = 0x1;
+ }
+ m_framesPer100Sec = seqParams->FramesPer100Sec[tmpId];
}
void DdiEncodeVp8::ParseMiscParamRC(void *data)
diff --git a/media_driver/linux/common/codec/ddi/media_ddi_encode_vp8.h b/media_driver/linux/common/codec/ddi/media_ddi_encode_vp8.h
index 4ffde91b..f42f3309 100644
--- a/media_driver/linux/common/codec/ddi/media_ddi_encode_vp8.h
+++ b/media_driver/linux/common/codec/ddi/media_ddi_encode_vp8.h
@@ -287,4 +287,5 @@ private:
bool picReference);
uint32_t m_mvOffset = 0; //!< Motion vector offset.
+ uint32_t m_framesPer100Sec = 0;
};
--
2.25.1