Skip to content

Commit 3673d20

Browse files
RoyZhuIntelintel-mediadev
authored andcommitted
[Decode] AVC Indirect BSD Data Length setting fix
AVC Indirect BSD Data Length setting incorrect in MFD_AVC_SLICEADDR command impact high bitrate HW timing
1 parent 714ca9c commit 3673d20

File tree

2 files changed

+5
-3
lines changed

2 files changed

+5
-3
lines changed

media_common/agnostic/common/codec/shared/codec_def_common_avc.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@
4343

4444
#define CODECHAL_ENCODE_VDENC_BRC_CONST_BUFFER_NUM (NUM_PIC_TYPES + 1) //!< For each frame type + 1 for ref B
4545

46+
#define CODEC_AVC_SLICE_MIN_NUM_BYTES_LOAD 10 // 10 bytes
47+
4648
//!
4749
//! \enum CODEC_AVC_WEIGHT_SCALE_SIZE
4850
//! \brief Codec AVC weight scale size

media_softlet/agnostic/common/codec/hal/dec/avc/packet/decode_avc_slice_packet.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -426,19 +426,19 @@ MOS_STATUS AvcDecodeSlcPkt::AddCmd_AVC_SLICE_Addr(MOS_COMMAND_BUFFER &cmdBuffer,
426426
parSliceAddr.decodeInUse = true;
427427
if (parSlice.fullFrameData)
428428
{
429-
parSliceAddr.IndirectBsdDataLength = parSlice.nextLength;
429+
parSliceAddr.IndirectBsdDataLength = MOS_MIN(parSlice.nextLength, CODEC_AVC_SLICE_MIN_NUM_BYTES_LOAD);
430430
parSliceAddr.IndirectBsdDataStartAddress = parSlice.nextOffset;
431431
}
432432
else
433433
{
434434
if (m_avcBasicFeature && m_avcBasicFeature->m_hwStartCodeSupportEnabled)
435435
{
436-
parSliceAddr.IndirectBsdDataLength = parSlice.nextLength;
436+
parSliceAddr.IndirectBsdDataLength = MOS_MIN(parSlice.nextLength, CODEC_AVC_SLICE_MIN_NUM_BYTES_LOAD);
437437
parSliceAddr.IndirectBsdDataStartAddress = parSlice.nextOffset;
438438
}
439439
else
440440
{
441-
parSliceAddr.IndirectBsdDataLength = parSlice.nextLength + 1 - m_osInterface->dwNumNalUnitBytesIncluded;
441+
parSliceAddr.IndirectBsdDataLength = MOS_MIN(parSlice.nextLength + 1 - m_osInterface->dwNumNalUnitBytesIncluded, CODEC_AVC_SLICE_MIN_NUM_BYTES_LOAD);
442442
parSliceAddr.IndirectBsdDataStartAddress = parSlice.nextOffset - 1 + m_osInterface->dwNumNalUnitBytesIncluded;
443443
}
444444
DECODE_VERBOSEMESSAGE("HwStartCodeSupportEnabled %d, parSlice nextOffset %d, parSlice nextLength %d, IndirectBsdDataStartAddress %d, IndirectBsdDataLength %d",

0 commit comments

Comments
 (0)