mirror of
https://github.com/nyanmisaka/mpp.git
synced 2025-10-06 17:46:50 +08:00
[vpu_api_legacy]: add init_ok check for api legacy/vpu_api_legacy.cpp
[h265d_d] clear eos flag when reset git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@949 6e48237b-75ef-9749-8fc9-41990f28c85a
This commit is contained in:
@@ -286,6 +286,7 @@ RK_S32 h265d_split_reset(void *sc)
|
||||
s->fetch_timestamp = 1;
|
||||
s->buffer = buf;
|
||||
s->buffer_size = size;
|
||||
s->eos = 0;
|
||||
return MPP_OK;
|
||||
}
|
||||
|
||||
@@ -1971,7 +1972,6 @@ MPP_RET h265d_init(void *ctx, ParserCfg *parser_cfg)
|
||||
MPP_RET h265d_flush(void *ctx)
|
||||
{
|
||||
RK_S32 ret = 0;
|
||||
RK_U32 eos = 1;
|
||||
H265dContext_t *h265dctx = (H265dContext_t *)ctx;
|
||||
HEVCContext *s = (HEVCContext *)h265dctx->priv_data;
|
||||
HEVCFrame *frame = NULL;
|
||||
@@ -2001,6 +2001,7 @@ MPP_RET h265d_reset(void *ctx)
|
||||
mpp_hevc_flush_dpb(s);
|
||||
h265d_split_reset(h265dctx->split_cxt);
|
||||
s->max_ra = INT_MAX;
|
||||
s->eos = 0;
|
||||
return MPP_OK;
|
||||
}
|
||||
|
||||
|
@@ -47,6 +47,7 @@ VpuApi::VpuApi()
|
||||
fp = fopen("/sdcard/rk_mpp_dump.yuv", "wb");
|
||||
fp_buf = mpp_malloc(RK_U8, (MAX_WRITE_HEIGHT * MAX_WRITE_WIDTH * 2));
|
||||
}
|
||||
init_ok = 0;
|
||||
mpp_log_f("ok\n");
|
||||
}
|
||||
|
||||
@@ -100,7 +101,7 @@ RK_S32 VpuApi::init(VpuCodecContext *ctx, RK_U8 *extraData, RK_U32 extra_size)
|
||||
mpi->decode_put_packet(mpp_ctx, pkt);
|
||||
mpp_packet_deinit(&pkt);
|
||||
}
|
||||
|
||||
init_ok = 1;
|
||||
mpp_log_f("ok\n");
|
||||
return ret;
|
||||
}
|
||||
@@ -109,7 +110,7 @@ RK_S32 VpuApi::flush(VpuCodecContext *ctx)
|
||||
{
|
||||
(void)ctx;
|
||||
mpp_log_f("in\n");
|
||||
if (mpi && mpi->reset) {
|
||||
if (mpi && mpi->reset && !init_ok) {
|
||||
mpi->reset(mpp_ctx);
|
||||
}
|
||||
mpp_log_f("ok\n");
|
||||
@@ -128,9 +129,13 @@ RK_S32 VpuApi::decode(VpuCodecContext *ctx, VideoPacket_t *pkt, DecoderOut_t *aD
|
||||
|
||||
RK_S32 VpuApi::decode_sendstream(VideoPacket_t *pkt)
|
||||
{
|
||||
RK_S32 ret;
|
||||
RK_S32 ret = MPP_OK;
|
||||
MppPacket mpkt = NULL;
|
||||
|
||||
if (!init_ok) {
|
||||
return VPU_API_ERR_VPU_CODEC_INIT;
|
||||
}
|
||||
|
||||
mpp_packet_init(&mpkt, pkt->data, pkt->size);
|
||||
mpp_packet_set_pts(mpkt, pkt->pts);
|
||||
if (pkt->nFlags & OMX_BUFFERFLAG_EOS) {
|
||||
@@ -149,6 +154,9 @@ RK_S32 VpuApi:: decode_getoutframe(DecoderOut_t *aDecOut)
|
||||
RK_S32 ret = 0;
|
||||
VPU_FRAME *vframe = (VPU_FRAME *)aDecOut->data;
|
||||
MppFrame mframe = NULL;
|
||||
if (!init_ok) {
|
||||
return VPU_API_ERR_VPU_CODEC_INIT;
|
||||
}
|
||||
|
||||
memset(vframe, 0, sizeof(VPU_FRAME));
|
||||
|
||||
@@ -335,7 +343,7 @@ RK_S32 VpuApi::control(VpuCodecContext *ctx, VPU_API_CMD cmd, void *param)
|
||||
mpp_log_f("in\n");
|
||||
|
||||
(void)ctx;
|
||||
if (mpi == NULL) {
|
||||
if (mpi == NULL && !init_ok) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@@ -46,6 +46,7 @@ public:
|
||||
private:
|
||||
MppCtx mpp_ctx;
|
||||
MppApi *mpi;
|
||||
RK_U32 init_ok;
|
||||
RK_U32 frame_count;
|
||||
RK_U32 set_eos;
|
||||
RK_U32 vpu_api_debug;
|
||||
|
Reference in New Issue
Block a user