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

Unified Diff: media/cast/video_sender/external_video_encoder.cc

Issue 185403020: Make VEA client of command buffer; move sync. IPC to VDA/VEA::Initialize() (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: f2a9ccb5 Rebase, posciak@ comments. Created 6 years, 9 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
Index: media/cast/video_sender/external_video_encoder.cc
diff --git a/media/cast/video_sender/external_video_encoder.cc b/media/cast/video_sender/external_video_encoder.cc
index 4f97dace111f4103fdf5d8c51f6cef82498083c1..78bb30932d1d0521e2b2da0089366d4bce3a26ee 100644
--- a/media/cast/video_sender/external_video_encoder.cc
+++ b/media/cast/video_sender/external_video_encoder.cc
@@ -73,8 +73,10 @@ class LocalVideoEncodeAcceleratorClient
video_encode_accelerator_ =
gpu_factories_->CreateVideoEncodeAccelerator().Pass();
- if (!video_encode_accelerator_)
+ if (!video_encode_accelerator_) {
+ NotifyError(VideoEncodeAccelerator::kPlatformFailureError);
return;
+ }
VideoCodecProfile output_profile = media::VIDEO_CODEC_PROFILE_UNKNOWN;
switch (video_config.codec) {
@@ -88,14 +90,20 @@ class LocalVideoEncodeAcceleratorClient
codec_ = video_config.codec;
max_frame_rate_ = video_config.max_frame_rate;
- // Asynchronous initialization call; NotifyInitializeDone or NotifyError
- // will be called once the HW is initialized.
- video_encode_accelerator_->Initialize(
- media::VideoFrame::I420,
- gfx::Size(video_config.width, video_config.height),
- output_profile,
- video_config.start_bitrate,
- this);
+ if (!video_encode_accelerator_->Initialize(
+ media::VideoFrame::I420,
+ gfx::Size(video_config.width, video_config.height),
+ output_profile,
+ video_config.start_bitrate,
+ this)) {
+ NotifyError(VideoEncodeAccelerator::kInvalidArgumentError);
+ return;
+ }
+
+ cast_environment_->PostTask(
+ CastEnvironment::MAIN,
+ FROM_HERE,
+ base::Bind(&ExternalVideoEncoder::EncoderInitialized, weak_owner_));
}
// Free the HW.
@@ -176,16 +184,6 @@ class LocalVideoEncodeAcceleratorClient
}
protected:
- virtual void NotifyInitializeDone() OVERRIDE {
- DCHECK(encoder_task_runner_);
- DCHECK(encoder_task_runner_->RunsTasksOnCurrentThread());
-
- cast_environment_->PostTask(
- CastEnvironment::MAIN,
- FROM_HERE,
- base::Bind(&ExternalVideoEncoder::EncoderInitialized, weak_owner_));
- }
-
virtual void NotifyError(VideoEncodeAccelerator::Error error) OVERRIDE {
DCHECK(encoder_task_runner_);
DCHECK(encoder_task_runner_->RunsTasksOnCurrentThread());

Powered by Google App Engine
This is Rietveld 408576698