[mpp_enc]: Add intra flag on slice output mode

Change-Id: Ib717b7df596ab6ffb35ba0c2f4274dc9ef79850d
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
This commit is contained in:
Herman Chen
2022-06-17 14:48:37 +08:00
parent 2da4ad7b1e
commit 188dfb5d20

View File

@@ -469,7 +469,11 @@ MPP_RET mpp_enc_callback(const char *caller, void *ctx, RK_S32 cmd, void *param)
case ENC_OUTPUT_SLICE : { case ENC_OUTPUT_SLICE : {
enc_dbg_slice("slice pos %p len %5d\n", last_pos, slice_length); enc_dbg_slice("slice pos %p len %5d\n", last_pos, slice_length);
mpp_packet_copy_init((MppPacket *)&impl, packet); mpp_packet_new((MppPacket *)&impl);
mpp_assert(impl);
/* copy the source data */
memcpy(impl, packet, sizeof(*impl));
impl->pos = last_pos; impl->pos = last_pos;
impl->length = slice_length; impl->length = slice_length;
@@ -478,6 +482,16 @@ MPP_RET mpp_enc_callback(const char *caller, void *ctx, RK_S32 cmd, void *param)
impl->status.soi = part_first; impl->status.soi = part_first;
impl->status.eoi = 0; impl->status.eoi = 0;
if (impl->buffer)
mpp_buffer_inc_ref(impl->buffer);
mpp_meta_get(&impl->meta);
if (impl->meta) {
EncFrmStatus *frm = &task->rc_task->frm;
mpp_meta_set_s32(impl->meta, KEY_OUTPUT_INTRA, frm->is_intra);
}
enc_dbg_detail("pkt %d new pos %p len %d\n", task->part_count, enc_dbg_detail("pkt %d new pos %p len %d\n", task->part_count,
last_pos, slice_length); last_pos, slice_length);