Fix SbPlayerWriteSampleTest NoInput/SingleInput/MultipleInputs tests Change-Id: I82fe97dc89dee7209435b6f630bebf3415eea06e
diff --git a/src/third_party/starboard/rdk/shared/player/player_internal.cc b/src/third_party/starboard/rdk/shared/player/player_internal.cc index b9dd6bf..b5a4d00 100644 --- a/src/third_party/starboard/rdk/shared/player/player_internal.cc +++ b/src/third_party/starboard/rdk/shared/player/player_internal.cc
@@ -969,11 +969,11 @@ void DecoderNeedsData(::starboard::ScopedLock&, MediaType media) const { int need_data = static_cast<int>(media); if (media != MediaType::kNone && (decoder_state_data_ & need_data) == need_data) { - GST_DEBUG("Already sent 'kSbPlayerDecoderStateNeedsData', ignoring new request"); + GST_LOG("Already sent 'kSbPlayerDecoderStateNeedsData', ignoring new request"); return; } if (media != MediaType::kNone && (eos_data_ & need_data) == need_data) { - GST_DEBUG("Stream(%d) already ended, ignoring needs data request", need_data); + GST_LOG("Stream(%d) already ended, ignoring needs data request", need_data); return; } decoder_state_data_ |= need_data; @@ -1172,10 +1172,20 @@ GError* err = nullptr; gchar* debug = nullptr; gst_message_parse_error(message, &err, &debug); - GST_ERROR("Error %d: %s (%s)", err->code, err->message, debug); - self->DispatchOnWorkerThread(new PlayerErrorTask( + + bool is_eos = (self->eos_data_ == (int)self->GetBothMediaTypeTakingCodecsIntoAccount()); + if (err->domain == GST_STREAM_ERROR && is_eos) { + GST_WARNING("Got stream error. But all streams are ended, so reporting EOS. Error code %d: %s (%s).", + err->code, err->message, debug); + self->DispatchOnWorkerThread(new PlayerStatusTask( + self->player_status_func_, self->player_, self->ticket_, + self->context_, kSbPlayerStateEndOfStream)); + } else { + GST_ERROR("Error %d: %s (%s)", err->code, err->message, debug); + self->DispatchOnWorkerThread(new PlayerErrorTask( self->player_error_func_, self->player_, self->context_, kSbPlayerErrorDecode, err->message)); + } g_free(debug); g_error_free(err); break;