mirror of
https://github.com/nyanmisaka/mpp.git
synced 2025-10-10 19:40:03 +08:00
[mpp_init]: Handle initialization failures correctly
clear resource and return when init fail Signed-off-by: yandong.lin <yandong.lin@rock-chips.com> Change-Id: I0fa8aa7c0742ce101127ffc26cccd0fe5809906f
This commit is contained in:
22
mpp/mpp.cpp
22
mpp/mpp.cpp
@@ -97,6 +97,8 @@ Mpp::Mpp()
|
|||||||
|
|
||||||
MPP_RET Mpp::init(MppCtxType type, MppCodingType coding)
|
MPP_RET Mpp::init(MppCtxType type, MppCodingType coding)
|
||||||
{
|
{
|
||||||
|
MPP_RET ret = MPP_NOK;
|
||||||
|
|
||||||
if (mpp_check_support_format(type, coding)) {
|
if (mpp_check_support_format(type, coding)) {
|
||||||
mpp_err("unable to create unsupported type %d coding %d\n", type, coding);
|
mpp_err("unable to create unsupported type %d coding %d\n", type, coding);
|
||||||
return MPP_NOK;
|
return MPP_NOK;
|
||||||
@@ -145,9 +147,12 @@ MPP_RET Mpp::init(MppCtxType type, MppCodingType coding)
|
|||||||
this,
|
this,
|
||||||
};
|
};
|
||||||
|
|
||||||
mpp_dec_init(&mDec, &cfg);
|
ret = mpp_dec_init(&mDec, &cfg);
|
||||||
mpp_dec_start(mDec);
|
if (ret)
|
||||||
|
break;
|
||||||
|
ret = mpp_dec_start(mDec);
|
||||||
|
if (ret)
|
||||||
|
break;
|
||||||
mInitDone = 1;
|
mInitDone = 1;
|
||||||
} break;
|
} break;
|
||||||
case MPP_CTX_ENC : {
|
case MPP_CTX_ENC : {
|
||||||
@@ -174,9 +179,12 @@ MPP_RET Mpp::init(MppCtxType type, MppCodingType coding)
|
|||||||
this,
|
this,
|
||||||
};
|
};
|
||||||
|
|
||||||
mpp_enc_init_v2(&mEnc, &cfg);
|
ret = mpp_enc_init_v2(&mEnc, &cfg);
|
||||||
mpp_enc_start_v2(mEnc);
|
if (ret)
|
||||||
|
break;
|
||||||
|
ret = mpp_enc_start_v2(mEnc);
|
||||||
|
if (ret)
|
||||||
|
break;
|
||||||
mInitDone = 1;
|
mInitDone = 1;
|
||||||
} break;
|
} break;
|
||||||
default : {
|
default : {
|
||||||
@@ -190,7 +198,7 @@ MPP_RET Mpp::init(MppCtxType type, MppCodingType coding)
|
|||||||
clear();
|
clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
return MPP_OK;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
Mpp::~Mpp ()
|
Mpp::~Mpp ()
|
||||||
|
Reference in New Issue
Block a user