diff --git a/media/server/gstplayer/source/GstGenericPlayer.cpp b/media/server/gstplayer/source/GstGenericPlayer.cpp index 85fcef5b3..6c1d3c53e 100644 --- a/media/server/gstplayer/source/GstGenericPlayer.cpp +++ b/media/server/gstplayer/source/GstGenericPlayer.cpp @@ -310,6 +310,7 @@ void GstGenericPlayer::termPipeline() } m_finishSourceSetupTimer.reset(); + stopNotifyPlaybackInfoTimer(); for (auto &elem : m_context.streamInfo) { diff --git a/tests/unittests/media/server/gstplayer/genericPlayer/GstGenericPlayerPrivateTest.cpp b/tests/unittests/media/server/gstplayer/genericPlayer/GstGenericPlayerPrivateTest.cpp index 511fe71c7..ddbfac226 100644 --- a/tests/unittests/media/server/gstplayer/genericPlayer/GstGenericPlayerPrivateTest.cpp +++ b/tests/unittests/media/server/gstplayer/genericPlayer/GstGenericPlayerPrivateTest.cpp @@ -1710,6 +1710,7 @@ TEST_F(GstGenericPlayerPrivateTest, shouldStartPlaybackInfoTimer) { willNotifyPlaybackInfo(); std::unique_ptr playbackInfoTimerMock = std::make_unique>(); + EXPECT_CALL(dynamic_cast &>(*playbackInfoTimerMock), isActive()).WillRepeatedly(Return(false)); EXPECT_CALL(*m_timerFactoryMock, createTimer(kPlaybackInfoTimerMs, _, common::TimerType::PERIODIC)) .WillOnce(Return(ByMove(std::move(playbackInfoTimerMock)))); @@ -1720,6 +1721,7 @@ TEST_F(GstGenericPlayerPrivateTest, shouldNotifyPlaybackInfoWithAudioFade) { willNotifyPlaybackInfoWithAudioFade(); std::unique_ptr playbackInfoTimerMock = std::make_unique>(); + EXPECT_CALL(dynamic_cast &>(*playbackInfoTimerMock), isActive()).WillRepeatedly(Return(false)); EXPECT_CALL(*m_timerFactoryMock, createTimer(kPlaybackInfoTimerMs, _, common::TimerType::PERIODIC)) .WillOnce(Return(ByMove(std::move(playbackInfoTimerMock)))); @@ -1740,7 +1742,9 @@ TEST_F(GstGenericPlayerPrivateTest, shouldNotStartPositionReportingTimerWhenItIs TEST_F(GstGenericPlayerPrivateTest, shouldNotStartPlaybackInfoTimerWhenItIsActive) { std::unique_ptr timerMock = std::make_unique>(); - EXPECT_CALL(dynamic_cast &>(*timerMock), isActive()).WillOnce(Return(true)); + EXPECT_CALL(dynamic_cast &>(*timerMock), isActive()) + .WillOnce(Return(true)) + .WillRepeatedly(Return(false)); EXPECT_CALL(*m_timerFactoryMock, createTimer(kPlaybackInfoTimerMs, _, common::TimerType::PERIODIC)) .WillOnce(Return(ByMove(std::move(timerMock)))); willNotifyPlaybackInfo(); @@ -1772,6 +1776,7 @@ TEST_F(GstGenericPlayerPrivateTest, shouldSchedulePlaybackInfoWhenPlaybackInfoTi std::unique_ptr timerMock = std::make_unique>(); willNotifyPlaybackInfo(); std::unique_ptr playbackInfoTimerMock = std::make_unique>(); + EXPECT_CALL(dynamic_cast &>(*playbackInfoTimerMock), isActive()).WillRepeatedly(Return(false)); EXPECT_CALL(*m_timerFactoryMock, createTimer(kPlaybackInfoTimerMs, _, common::TimerType::PERIODIC)) .WillOnce(Invoke( [&](const std::chrono::milliseconds &timeout, const std::function &callback, common::TimerType timerType) @@ -1799,7 +1804,9 @@ TEST_F(GstGenericPlayerPrivateTest, shouldStopActivePlaybackInfoTimerTimer) { willNotifyPlaybackInfo(); std::unique_ptr playbackInfoTimerMock = std::make_unique>(); - EXPECT_CALL(dynamic_cast &>(*playbackInfoTimerMock), isActive()).WillOnce(Return(true)); + EXPECT_CALL(dynamic_cast &>(*playbackInfoTimerMock), isActive()) + .WillOnce(Return(true)) + .WillRepeatedly(Return(false)); EXPECT_CALL(dynamic_cast &>(*playbackInfoTimerMock), cancel()); EXPECT_CALL(*m_timerFactoryMock, createTimer(kPlaybackInfoTimerMs, _, common::TimerType::PERIODIC)) .WillOnce(Return(ByMove(std::move(playbackInfoTimerMock)))); @@ -1823,7 +1830,7 @@ TEST_F(GstGenericPlayerPrivateTest, shouldNotStopInactivePlaybackInfoTimer) { willNotifyPlaybackInfo(); std::unique_ptr playbackInfoTimerMock = std::make_unique>(); - EXPECT_CALL(dynamic_cast &>(*playbackInfoTimerMock), isActive()).WillOnce(Return(false)); + EXPECT_CALL(dynamic_cast &>(*playbackInfoTimerMock), isActive()).WillRepeatedly(Return(false)); EXPECT_CALL(*m_timerFactoryMock, createTimer(kPlaybackInfoTimerMs, _, common::TimerType::PERIODIC)) .WillOnce(Return(ByMove(std::move(playbackInfoTimerMock)))); diff --git a/tests/unittests/media/server/gstplayer/genericPlayer/common/GstGenericPlayerTestCommon.cpp b/tests/unittests/media/server/gstplayer/genericPlayer/common/GstGenericPlayerTestCommon.cpp index 326c50f9f..5bdf44230 100644 --- a/tests/unittests/media/server/gstplayer/genericPlayer/common/GstGenericPlayerTestCommon.cpp +++ b/tests/unittests/media/server/gstplayer/genericPlayer/common/GstGenericPlayerTestCommon.cpp @@ -25,6 +25,7 @@ #include using ::testing::_; +using ::testing::AnyNumber; using ::testing::ByMove; using ::testing::Invoke; using ::testing::Return; @@ -56,6 +57,7 @@ void GstGenericPlayerTestCommon::gstPlayerWillBeDestroyed() { expectShutdown(); expectStop(); + EXPECT_CALL(*m_timerFactoryMock, createTimer(_, _, _)).Times(AnyNumber()); EXPECT_CALL(*m_gstWrapperMock, gstPipelineGetBus(GST_PIPELINE(&m_pipeline))).WillOnce(Return(&m_bus)); EXPECT_CALL(*m_gstWrapperMock, gstBusSetSyncHandler(&m_bus, nullptr, nullptr, nullptr)); EXPECT_CALL(*m_gstWrapperMock, gstObjectUnref(&m_bus));