.bottom_field_flag = h->picture_structure == PICT_BOTTOM_FIELD,
.second_field = FIELD_PICTURE(h) && !h->first_field,
.ref_pic_flag = h->nal_ref_idc != 0,
- .intra_pic_flag = 0,
+ .intra_pic_flag = 1,
.CodecSpecific.h264 = {
.log2_max_frame_num_minus4 = sps->log2_max_frame_num - 4,
uint32_t size)
{
NVDECContext *ctx = avctx->internal->hwaccel_priv_data;
+ CUVIDPICPARAMS *pp = &ctx->pic_params;
+ const H264Context *h = avctx->priv_data;
+ const H264SliceContext *sl = &h->slice_ctx[0];
void *tmp;
tmp = av_fast_realloc(ctx->bitstream, &ctx->bitstream_allocated,
ctx->bitstream_len += size + 3;
ctx->nb_slices++;
+ if (sl->slice_type != AV_PICTURE_TYPE_I && sl->slice_type != AV_PICTURE_TYPE_SI)
+ pp->intra_pic_flag = 0;
+
return 0;
}
{
const H264Context *h = avctx->priv_data;
const SPS *sps = h->ps.sps;
- return ff_nvdec_frame_params(avctx, hw_frames_ctx, sps->ref_frame_count + sps->num_reorder_frames);
+ return ff_nvdec_frame_params(avctx, hw_frames_ctx, sps->ref_frame_count + sps->num_reorder_frames, 0);
}
const AVHWAccel ff_h264_nvdec_hwaccel = {