Fix coverity issues 30/300730/3 accepted/tizen/unified/20231103.094553
authorGilbok Lee <gilbok.lee@samsung.com>
Wed, 1 Nov 2023 08:50:57 +0000 (17:50 +0900)
committerGilbok Lee <gilbok.lee@samsung.com>
Thu, 2 Nov 2023 01:44:58 +0000 (10:44 +0900)
- RESOURCE_LEAK, MISSING_LOCK, UNINIT

Change-Id: I35bc92dad7b95984c12a27a99ca68030a83a0be3

src/esplusplayer/src/esplayer.cpp
src/esplusplayer/src/esplusplayer_capi.cpp
src/plusplayer-core/src/trackrendereradapter.cpp

index 782a4e8..cf41e57 100644 (file)
@@ -474,6 +474,7 @@ bool EsPlayer::Activate(const StreamType type) {
       target->active = false;
       return false;
     }
+    std::lock_guard<std::mutex> lock(eos_mutex_);
     eos_status_ =
         internal::ResetEosStatus(static_cast<TrackType>(type), eos_status_);
     return true;
@@ -523,6 +524,7 @@ bool EsPlayer::ActivateAudio() {
   if (!trackrenderer_->ActivateAudio()) {
     return false;
   }
+  std::lock_guard<std::mutex> lock(eos_mutex_);
   eos_status_ =
       internal::ResetEosStatus(static_cast<TrackType>(type), eos_status_);
   return true;
@@ -876,6 +878,7 @@ bool EsPlayer::Seek(const uint64_t time) {
   else if (time_unit_type == kPlayerTimeUnitTypeUs)
     LOG_DEBUG("%p [ENTER] seek time [%" PRId64 " us]", this, time);
   for (const auto& track : track_) {
+    std::lock_guard<std::mutex> lock(eos_mutex_);
     eos_status_ = internal::ResetEosStatus(track.type, eos_status_);
     es_packet_logger_.PrintStoredPacketInfo(
         internal::ConvertToStreamType(track.type), true);
@@ -1813,6 +1816,7 @@ bool EsPlayer::Flush(const StreamType& type) {
                 state_manager_.GetStateEnum());
     return false;
   }
+  std::lock_guard<std::mutex> lock(eos_mutex_);
   eos_status_ =
       internal::ResetEosStatus(static_cast<TrackType>(type), eos_status_);
   es_packet_logger_.ResetLog(type);
index ccea730..8f93a2f 100644 (file)
@@ -318,6 +318,9 @@ class listener_bridge : public esplusplayer::EsEventListener {
   virtual void OnMediaPacketVideoDecoded(
       const esplusplayer::DecodedVideoPacket& packet) {
     if (this->media_packet_video_decoded_cb_ == nullptr) return;
+#ifdef TIZEN_FEATURE_PUBLIC
+    if (this->decoded_pkt_mgr_ == nullptr) return;
+#endif
 
     auto* _pkt = new esplusplayer_decoded_video_packet();
     _pkt->pts = packet.pts;
@@ -325,10 +328,11 @@ class listener_bridge : public esplusplayer::EsEventListener {
     _pkt->surface_data = static_cast<void*>(packet.surface_data);
 #ifdef TIZEN_FEATURE_PUBLIC
     _pkt->private_data = packet.buffer_addr;
+    if (decoded_pkt_mgr_->TryToAdd(_pkt)) {
 #else
     _pkt->private_data = packet.scaler_index;
-#endif
     if (decoded_pkt_mgr_ && decoded_pkt_mgr_->TryToAdd(_pkt)) {
+#endif
       this->media_packet_video_decoded_cb_(
           _pkt, media_packet_video_decoded_cb_userdata_);
     } else {
index 45bbd6b..8e5cc8f 100644 (file)
@@ -913,7 +913,7 @@ bool TrackRendererAdapter::UpdateAudioEasingInfo(
 bool TrackRendererAdapter::GetAudioEasingInfo(uint32_t* current_volume,
                                               uint32_t* elapsed_time,
                                               AudioEasingInfo* easing_info) {
-  TrackRendererAudioEasingInfo info;
+  TrackRendererAudioEasingInfo info {};
   if (trackrenderer_get_audio_easing_info(handle_, current_volume, elapsed_time,
                                           &info) == kFailed) {
     return false;