Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -378,6 +378,13 @@ void GenericTasksTestsBase::setContextVideoBuffer()
videoStreamIt->second.buffers.emplace_back(&testContext->m_videoBuffer);
}

void GenericTasksTestsBase::setContextSubtitleBuffer()
{
auto subtitleStreamIt{testContext->m_context.streamInfo.find(firebolt::rialto::MediaSourceType::SUBTITLE)};
ASSERT_NE(testContext->m_context.streamInfo.end(), subtitleStreamIt);
subtitleStreamIt->second.buffers.emplace_back(&testContext->m_subtitleBuffer);
}

void GenericTasksTestsBase::setContextPlaybackRate()
{
testContext->m_context.playbackRate = kRate;
Expand Down Expand Up @@ -2753,6 +2760,14 @@ void GenericTasksTestsBase::triggerEosVideo()
task.execute();
}

void GenericTasksTestsBase::triggerEosSubtitle()
{
firebolt::rialto::server::tasks::generic::Eos task{testContext->m_context, testContext->m_gstPlayer,
testContext->m_gstWrapper,
firebolt::rialto::MediaSourceType::SUBTITLE};
task.execute();
}

void GenericTasksTestsBase::shouldGstAppSrcEndOfStreamSuccess()
{
EXPECT_CALL(*testContext->m_gstWrapper, gstAppSrcEndOfStream(_)).WillOnce(Return(GST_FLOW_OK));
Expand Down Expand Up @@ -3536,6 +3551,14 @@ void GenericTasksTestsBase::shouldFlushVideo()
EXPECT_CALL(testContext->m_gstPlayer, setSourceFlushed(firebolt::rialto::MediaSourceType::VIDEO));
}

void GenericTasksTestsBase::shouldFlushSubtitle()
{
EXPECT_CALL(*testContext->m_gstWrapper, gstBufferUnref(&testContext->m_subtitleBuffer));
EXPECT_CALL(testContext->m_gstPlayerClient, invalidateActiveRequests(firebolt::rialto::MediaSourceType::SUBTITLE));
EXPECT_CALL(testContext->m_gstPlayerClient, notifySourceFlushed(firebolt::rialto::MediaSourceType::SUBTITLE));
EXPECT_CALL(testContext->m_gstPlayer, setSourceFlushed(firebolt::rialto::MediaSourceType::SUBTITLE));
}

void GenericTasksTestsBase::triggerFlush(firebolt::rialto::MediaSourceType sourceType)
{
firebolt::rialto::server::tasks::generic::Flush task{testContext->m_context,
Expand Down Expand Up @@ -3582,13 +3605,38 @@ void GenericTasksTestsBase::checkVideoFlushed()
void GenericTasksTestsBase::shouldFlushVideoSrcSuccess()
{
EXPECT_CALL(*testContext->m_gstWrapper, gstEventNewFlushStart()).WillOnce(Return(&testContext->m_event));
EXPECT_CALL(*testContext->m_gstWrapper, gstElementSendEvent(&testContext->m_appSrcVideo, &testContext->m_event))
EXPECT_CALL(*testContext->m_gstWrapper, gstElementSendEvent(&testContext->m_appSrcVideo, &testContext->m_event2))
.WillOnce(Return(TRUE));
EXPECT_CALL(*testContext->m_gstWrapper, gstEventNewFlushStop(kResetTime)).WillOnce(Return(&testContext->m_event2));
EXPECT_CALL(*testContext->m_gstWrapper, gstElementSendEvent(&testContext->m_appSrcVideo, &testContext->m_event2))
.WillOnce(Return(TRUE));
}

void GenericTasksTestsBase::shouldFlushSubtitleSrcSuccess()
{
EXPECT_CALL(*testContext->m_gstWrapper, gstEventNewFlushStart()).WillOnce(Return(&testContext->m_event));
EXPECT_CALL(*testContext->m_gstWrapper, gstElementSendEvent(&testContext->m_appSrcSubtitle, &testContext->m_event))
.WillOnce(Return(TRUE));
EXPECT_CALL(*testContext->m_gstWrapper, gstEventNewFlushStop(kResetTime)).WillOnce(Return(&testContext->m_event2));
EXPECT_CALL(*testContext->m_gstWrapper, gstElementSendEvent(&testContext->m_appSrcSubtitle, &testContext->m_event2))
.WillOnce(Return(TRUE));
}

void GenericTasksTestsBase::checkSubtitleFlushed()
{
auto audioStreamIt{testContext->m_context.streamInfo.find(firebolt::rialto::MediaSourceType::AUDIO)};
ASSERT_NE(testContext->m_context.streamInfo.end(), audioStreamIt);
EXPECT_EQ(audioStreamIt->second.buffers.size(), 1);
auto subtitleStreamIt{testContext->m_context.streamInfo.find(firebolt::rialto::MediaSourceType::SUBTITLE)};
ASSERT_NE(testContext->m_context.streamInfo.end(), subtitleStreamIt);
EXPECT_EQ(subtitleStreamIt->second.buffers.size(), 0);
EXPECT_FALSE(testContext->m_context.eosNotified);
EXPECT_NE(testContext->m_context.endOfStreamInfo.find(firebolt::rialto::MediaSourceType::AUDIO),
testContext->m_context.endOfStreamInfo.end());
EXPECT_EQ(testContext->m_context.endOfStreamInfo.find(firebolt::rialto::MediaSourceType::SUBTITLE),
testContext->m_context.endOfStreamInfo.end());
}

void GenericTasksTestsBase::shouldSetSubtitleSourcePosition()
{
EXPECT_CALL(*testContext->m_glibWrapper, gObjectSetStub(&testContext->m_textTrackSink, StrEq("position")));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ class GenericTasksTestsBase : public ::testing::Test
void setContextNeedDataPendingVideoOnly(bool isNeedDataPending);
void setContextAudioBuffer();
void setContextVideoBuffer();
void setContextSubtitleBuffer();
void setContextPlaybackRate();
void setContextSourceNull();
void setContextAudioSourceRemoved();
Expand Down Expand Up @@ -280,6 +281,7 @@ class GenericTasksTestsBase : public ::testing::Test
// Eos test methods
void triggerEosAudio();
void triggerEosVideo();
void triggerEosSubtitle();
void shouldGstAppSrcEndOfStreamSuccess();
void shouldGstAppSrcEndOfStreamFailure();
void shouldCancelUnderflow(firebolt::rialto::MediaSourceType sourceType);
Expand Down Expand Up @@ -446,6 +448,9 @@ class GenericTasksTestsBase : public ::testing::Test
void triggerFlush(firebolt::rialto::MediaSourceType sourceType);
void checkAudioFlushed();
void checkVideoFlushed();
void checkSubtitleFlushed();
void shouldFlushSubtitle();
void shouldFlushSubtitleSrcSuccess();
void shouldFlushVideoSrcSuccess();

// Set Source Position test methods
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -114,3 +114,21 @@ TEST_F(EosTest, shouldNotSendEosWhenAlreadySetEos)
shouldCancelUnderflow(firebolt::rialto::MediaSourceType::AUDIO);
triggerEosAudio();
}

TEST_F(EosTest, shouldSetEosForSubtitle)
{
setContextStreamInfo(firebolt::rialto::MediaSourceType::SUBTITLE);
shouldGstAppSrcEndOfStreamSuccess();
shouldCancelUnderflow(firebolt::rialto::MediaSourceType::SUBTITLE);
triggerEosSubtitle();
shouldSetEos(firebolt::rialto::MediaSourceType::SUBTITLE);
}

TEST_F(EosTest, shouldSetEosPendingWhenSubtitleBuffersAreQueued)
{
setContextStreamInfo(firebolt::rialto::MediaSourceType::SUBTITLE);
setContextSubtitleBuffer();
shouldCancelUnderflow(firebolt::rialto::MediaSourceType::SUBTITLE);
triggerEosSubtitle();
shouldSetEosPending(firebolt::rialto::MediaSourceType::SUBTITLE);
}
Original file line number Diff line number Diff line change
Expand Up @@ -108,3 +108,15 @@ TEST_F(FlushTest, ShouldFlushVideoWithNeedData)
triggerFlush(firebolt::rialto::MediaSourceType::VIDEO);
checkVideoFlushed();
}

TEST_F(FlushTest, ShouldFlushSubtitle)
{
setContextStreamInfo(firebolt::rialto::MediaSourceType::SUBTITLE);
setContextSubtitleBuffer();
setContextEndOfStream(firebolt::rialto::MediaSourceType::SUBTITLE);
shouldFlushSubtitle();
shouldFlushSubtitleSrcSuccess();
setPipelinePlaying();
triggerFlush(firebolt::rialto::MediaSourceType::SUBTITLE);
checkSubtitleFlushed();
}
Loading