| 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());
|
|
|