You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-15 14:13:16 +02:00
avcodec/nvenc: write out user data unregistered SEI
Signed-off-by: Brad Hards <bradh@frogmouth.net> Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
This commit is contained in:
committed by
Timo Rothenpieler
parent
63948a6170
commit
cee9f9628f
@@ -2282,6 +2282,34 @@ static int nvenc_send_frame(AVCodecContext *avctx, const AVFrame *frame)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (int j = 0; j < frame->nb_side_data; j++) {
|
||||||
|
AVFrameSideData *side_data = frame->side_data[j];
|
||||||
|
void *tmp;
|
||||||
|
|
||||||
|
if (side_data->type != AV_FRAME_DATA_SEI_UNREGISTERED)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
tmp = av_fast_realloc(ctx->sei_data,
|
||||||
|
&ctx->sei_data_size,
|
||||||
|
(sei_count + 1) * sizeof(*ctx->sei_data));
|
||||||
|
if (!tmp) {
|
||||||
|
res = AVERROR(ENOMEM);
|
||||||
|
goto sei_failed;
|
||||||
|
} else {
|
||||||
|
ctx->sei_data = tmp;
|
||||||
|
ctx->sei_data[sei_count].payloadSize = side_data->size;
|
||||||
|
ctx->sei_data[sei_count].payloadType = SEI_TYPE_USER_DATA_UNREGISTERED;
|
||||||
|
ctx->sei_data[sei_count].payload = av_memdup(side_data->data, side_data->size);
|
||||||
|
|
||||||
|
if (!ctx->sei_data[sei_count].payload) {
|
||||||
|
res = AVERROR(ENOMEM);
|
||||||
|
goto sei_failed;
|
||||||
|
}
|
||||||
|
|
||||||
|
sei_count++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
nvenc_codec_specific_pic_params(avctx, &pic_params, ctx->sei_data, sei_count);
|
nvenc_codec_specific_pic_params(avctx, &pic_params, ctx->sei_data, sei_count);
|
||||||
} else {
|
} else {
|
||||||
pic_params.encodePicFlags = NV_ENC_PIC_FLAG_EOS;
|
pic_params.encodePicFlags = NV_ENC_PIC_FLAG_EOS;
|
||||||
|
Reference in New Issue
Block a user