mirror of
https://github.com/nyanmisaka/mpp.git
synced 2025-10-06 17:46:50 +08:00
[mpi_enc_test]: Add partition encoding output path
Change-Id: I977b386e52d5e801d57154bd4d52b9d877072ae9 Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
This commit is contained in:
@@ -37,6 +37,7 @@ typedef struct {
|
||||
// global flow control flag
|
||||
RK_U32 frm_eos;
|
||||
RK_U32 pkt_eos;
|
||||
RK_U32 frm_pkt_cnt;
|
||||
RK_S32 frame_count;
|
||||
RK_U64 stream_size;
|
||||
|
||||
@@ -489,6 +490,7 @@ MPP_RET test_mpp_run(MpiEncTestData *p)
|
||||
void *buf = mpp_buffer_get_ptr(p->frm_buf);
|
||||
RK_S32 cam_frm_idx = -1;
|
||||
MppBuffer cam_buf = NULL;
|
||||
RK_U32 eoi = 1;
|
||||
|
||||
if (p->fp_input) {
|
||||
ret = read_image(buf, p->fp_input, p->width, p->height,
|
||||
@@ -651,6 +653,7 @@ MPP_RET test_mpp_run(MpiEncTestData *p)
|
||||
}
|
||||
mpp_frame_deinit(&frame);
|
||||
|
||||
do {
|
||||
ret = mpi->encode_get_packet(ctx, &packet);
|
||||
if (ret) {
|
||||
mpp_err("mpp encode get packet failed\n");
|
||||
@@ -673,8 +676,19 @@ MPP_RET test_mpp_run(MpiEncTestData *p)
|
||||
fwrite(ptr, 1, len, p->fp_output);
|
||||
|
||||
log_len += snprintf(log_buf + log_len, log_size - log_len,
|
||||
"encoded frame %-4d size %-7d",
|
||||
p->frame_count, len);
|
||||
"encoded frame %-4d", p->frame_count);
|
||||
|
||||
/* for low delay partition encoding */
|
||||
if (mpp_packet_is_partition(packet)) {
|
||||
eoi = mpp_packet_is_eoi(packet);
|
||||
|
||||
log_len += snprintf(log_buf + log_len, log_size - log_len,
|
||||
" pkt %d", p->frm_pkt_cnt);
|
||||
p->frm_pkt_cnt = (eoi) ? (0) : (p->frm_pkt_cnt + 1);
|
||||
}
|
||||
|
||||
log_len += snprintf(log_buf + log_len, log_size - log_len,
|
||||
" size %-7d", len);
|
||||
|
||||
if (mpp_packet_has_meta(packet)) {
|
||||
meta = mpp_packet_get_meta(packet);
|
||||
@@ -695,13 +709,14 @@ MPP_RET test_mpp_run(MpiEncTestData *p)
|
||||
mpp_packet_deinit(&packet);
|
||||
|
||||
p->stream_size += len;
|
||||
p->frame_count++;
|
||||
p->frame_count += eoi;
|
||||
|
||||
if (p->pkt_eos) {
|
||||
mpp_log("%p found last packet\n", ctx);
|
||||
mpp_assert(p->frm_eos);
|
||||
}
|
||||
}
|
||||
} while (!eoi);
|
||||
|
||||
if (cam_frm_idx >= 0)
|
||||
camera_source_put_frame(p->cam_ctx, cam_frm_idx);
|
||||
|
Reference in New Issue
Block a user