Skip to content

Commit 897d5df

Browse files
committed
Add HEVC RefPicSetLtCurr and NumPocLtCurr picture parameters
Corresponds to the variables of same name as defined in section 8.3.2 of the HEVC spec. The RefPicSetStCurrBefore and RefPicSetStCurrAfter can be derived by sorting them, however there is no defined order for the RefPicSetLtCurr and thus it must be provided explicitly. This is needed for AMD driver and also to match the DXVA and Vulkan Video interfaces. Signed-off-by: David Rosca <[email protected]>
1 parent 0d1d351 commit 897d5df

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

va/va_dec_hevc.h

+8-1
Original file line numberDiff line numberDiff line change
@@ -185,8 +185,15 @@ typedef struct _VAPictureParameterBufferHEVC {
185185
*/
186186
uint32_t st_rps_bits;
187187

188+
/* Corresponds to the variables of same name as defined in section 8.3.2
189+
* of the HEVC spec. Index into ReferenceFrames[]. */
190+
uint8_t RefPicSetLtCurr[8];
191+
uint8_t NumPocLtCurr;
192+
193+
uint8_t reserved[3];
194+
188195
/** \brief Reserved bytes for future use, must be zero */
189-
uint32_t va_reserved[VA_PADDING_MEDIUM];
196+
uint32_t va_reserved[VA_PADDING_MEDIUM - 3];
190197
} VAPictureParameterBufferHEVC;
191198

192199
/**

va/va_trace.c

+7
Original file line numberDiff line numberDiff line change
@@ -3317,6 +3317,13 @@ static void va_TraceVAPictureParameterBufferHEVC(
33173317
va_TraceMsg(trace_ctx, "\tpps_tc_offset_div2 = %d\n", p->pps_tc_offset_div2);
33183318
va_TraceMsg(trace_ctx, "\tnum_extra_slice_header_bits = %d\n", p->num_extra_slice_header_bits);
33193319
va_TraceMsg(trace_ctx, "\tst_rps_bits = %d\n", p->st_rps_bits);
3320+
va_TraceMsg(trace_ctx, "\tst_rps_bits = %d\n", p->st_rps_bits);
3321+
va_TraceMsg(trace_ctx, "\tRefPicSetLtCurr[8] = \n");
3322+
va_TraceMsg(trace_ctx, "");
3323+
for (i = 0; i < 8; i++)
3324+
va_TracePrint(trace_ctx, "\t%d", p->RefPicSetLtCurr[i]);
3325+
va_TracePrint(trace_ctx, "\n");
3326+
va_TraceMsg(trace_ctx, "\tNumPocLtCurr = %d\n", p->NumPocLtCurr);
33203327

33213328
if (isRext && pRext) {
33223329
va_TraceMsg(trace_ctx, "\trange_extension_pic_fields = %d\n", pRext->range_extension_pic_fields.value);

0 commit comments

Comments
 (0)