diff --git a/services/engine/common/avcodeclist/avcodec_ability_singleton.cpp b/services/engine/common/avcodeclist/avcodec_ability_singleton.cpp index 5c9090b0f0ea3dac29d6fe2f2e21559cbf40f5c3..e55d18e9d5e4c81d1bbdb228b32505caaf9059b5 100644 --- a/services/engine/common/avcodeclist/avcodec_ability_singleton.cpp +++ b/services/engine/common/avcodeclist/avcodec_ability_singleton.cpp @@ -72,7 +72,8 @@ bool AVCodecAbilitySingleton::ParseCodecXml() bool AVCodecAbilitySingleton::RegisterCapability(const std::vector ®isterCapabilityDataArray) { std::lock_guard lock(mutex_); - capabilityDataArray_.insert(capabilityDataArray_.begin() + hdiCapLen_, registerCapabilityDataArray.begin(), + auto insertPos = std::min(hdiCapLen_, static_cast(capabilityDataArray_.size())); + capabilityDataArray_.insert(capabilityDataArray_.begin() + insertPos, registerCapabilityDataArray.begin(), registerCapabilityDataArray.end()); MEDIA_LOGD("RegisterCapability success"); return true;