Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(59)

Unified Diff: chrome/renderer/media/cast_session_delegate.cc

Issue 555563003: Cast: Flow hw encoder initialization error to extensions API (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fixed compile Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/renderer/media/cast_session_delegate.h ('k') | media/cast/cast_defines.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/renderer/media/cast_session_delegate.cc
diff --git a/chrome/renderer/media/cast_session_delegate.cc b/chrome/renderer/media/cast_session_delegate.cc
index 3d16c5b8d40e16fd66b3ca26f97bdc94db8fa958..3389446f414aed1e0ac423103353da165ff7a496 100644
--- a/chrome/renderer/media/cast_session_delegate.cc
+++ b/chrome/renderer/media/cast_session_delegate.cc
@@ -55,7 +55,7 @@ void CastSessionDelegate::StartAudio(
cast_sender_->InitializeAudio(
config,
base::Bind(&CastSessionDelegate::InitializationResultCB,
- weak_factory_.GetWeakPtr()));
+ weak_factory_.GetWeakPtr(), error_callback));
}
void CastSessionDelegate::StartVideo(
@@ -77,7 +77,7 @@ void CastSessionDelegate::StartVideo(
cast_sender_->InitializeVideo(
config,
base::Bind(&CastSessionDelegate::InitializationResultCB,
- weak_factory_.GetWeakPtr()),
+ weak_factory_.GetWeakPtr(), error_callback),
create_vea_cb,
create_video_encode_mem_cb);
}
@@ -203,16 +203,44 @@ void CastSessionDelegate::StatusNotificationCB(
}
void CastSessionDelegate::InitializationResultCB(
+ const ErrorCallback& error_callback,
media::cast::CastInitializationStatus result) const {
DCHECK(cast_sender_);
- // TODO(pwestin): handle the error codes.
- if (result == media::cast::STATUS_AUDIO_INITIALIZED) {
- audio_frame_input_available_callback_.Run(
- cast_sender_->audio_frame_input());
- } else if (result == media::cast::STATUS_VIDEO_INITIALIZED) {
- video_frame_input_available_callback_.Run(
- cast_sender_->video_frame_input());
+ switch (result) {
+ case media::cast::STATUS_AUDIO_INITIALIZED:
+ audio_frame_input_available_callback_.Run(
+ cast_sender_->audio_frame_input());
+ break;
+ case media::cast::STATUS_VIDEO_INITIALIZED:
+ video_frame_input_available_callback_.Run(
+ cast_sender_->video_frame_input());
+ break;
+ case media::cast::STATUS_INVALID_CAST_ENVIRONMENT:
+ error_callback.Run("Invalid cast environment.");
+ break;
+ case media::cast::STATUS_INVALID_CRYPTO_CONFIGURATION:
+ error_callback.Run("Invalid encryption keys.");
+ break;
+ case media::cast::STATUS_UNSUPPORTED_AUDIO_CODEC:
+ error_callback.Run("Audio codec not supported.");
+ break;
+ case media::cast::STATUS_UNSUPPORTED_VIDEO_CODEC:
+ error_callback.Run("Video codec not supported.");
+ break;
+ case media::cast::STATUS_INVALID_AUDIO_CONFIGURATION:
+ error_callback.Run("Invalid audio configuration.");
+ break;
+ case media::cast::STATUS_INVALID_VIDEO_CONFIGURATION:
+ error_callback.Run("Invalid video configuration.");
+ break;
+ case media::cast::STATUS_HW_VIDEO_ENCODER_NOT_SUPPORTED:
+ error_callback.Run("Hardware video encoder not supported.");
+ break;
+ case media::cast::STATUS_AUDIO_UNINITIALIZED:
+ case media::cast::STATUS_VIDEO_UNINITIALIZED:
+ NOTREACHED() << "Not an error.";
+ break;
}
}
« no previous file with comments | « chrome/renderer/media/cast_session_delegate.h ('k') | media/cast/cast_defines.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698