mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-21 10:55:51 +02:00
avcodec/nvdec: correctly set intra_pic_flag for h264/hevc
This commit is contained in:
parent
8df8a92993
commit
955fa237f4
@ -74,7 +74,7 @@ static int nvdec_h264_start_frame(AVCodecContext *avctx,
|
||||
.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,
|
||||
@ -132,6 +132,9 @@ static int nvdec_h264_decode_slice(AVCodecContext *avctx, const uint8_t *buffer,
|
||||
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,
|
||||
@ -152,6 +155,9 @@ static int nvdec_h264_decode_slice(AVCodecContext *avctx, const uint8_t *buffer,
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -93,7 +93,7 @@ static int nvdec_hevc_start_frame(AVCodecContext *avctx,
|
||||
.FrameHeightInMbs = sps->height / 16,
|
||||
.CurrPicIdx = cf->idx,
|
||||
.ref_pic_flag = 1,
|
||||
.intra_pic_flag = 0,
|
||||
.intra_pic_flag = IS_IRAP(s),
|
||||
|
||||
.CodecSpecific.hevc = {
|
||||
.pic_width_in_luma_samples = sps->width,
|
||||
|
Loading…
Reference in New Issue
Block a user