| Index: media/filters/ffmpeg_video_decoder.cc
|
| ===================================================================
|
| --- media/filters/ffmpeg_video_decoder.cc (revision 113907)
|
| +++ media/filters/ffmpeg_video_decoder.cc (working copy)
|
| @@ -64,7 +64,7 @@
|
| }
|
|
|
| void FFmpegVideoDecoder::Initialize(DemuxerStream* demuxer_stream,
|
| - const PipelineStatusCB& callback,
|
| + const base::Closure& callback,
|
| const StatisticsCallback& stats_callback) {
|
| if (MessageLoop::current() != message_loop_) {
|
| message_loop_->PostTask(FROM_HERE, base::Bind(
|
| @@ -76,7 +76,8 @@
|
| DCHECK(!demuxer_stream_);
|
|
|
| if (!demuxer_stream) {
|
| - callback.Run(PIPELINE_ERROR_DECODE);
|
| + host()->SetError(PIPELINE_ERROR_DECODE);
|
| + callback.Run();
|
| return;
|
| }
|
|
|
| @@ -88,8 +89,24 @@
|
| // TODO(scherkus): this check should go in PipelineImpl prior to creating
|
| // decoder objects.
|
| if (!config.IsValidConfig()) {
|
| - DLOG(ERROR) << "Invalid video stream - " << config.AsHumanReadableString();
|
| - callback.Run(PIPELINE_ERROR_DECODE);
|
| + DLOG(ERROR) << "Invalid video stream -"
|
| + << " codec: " << config.codec()
|
| + << " format: " << config.format()
|
| + << " coded size: [" << config.coded_size().width()
|
| + << "," << config.coded_size().height() << "]"
|
| + << " visible rect: [" << config.visible_rect().x()
|
| + << "," << config.visible_rect().y()
|
| + << "," << config.visible_rect().width()
|
| + << "," << config.visible_rect().height() << "]"
|
| + << " natural size: [" << config.natural_size().width()
|
| + << "," << config.natural_size().height() << "]"
|
| + << " frame rate: " << config.frame_rate_numerator()
|
| + << "/" << config.frame_rate_denominator()
|
| + << " aspect ratio: " << config.aspect_ratio_numerator()
|
| + << "/" << config.aspect_ratio_denominator();
|
| +
|
| + host()->SetError(PIPELINE_ERROR_DECODE);
|
| + callback.Run();
|
| return;
|
| }
|
|
|
| @@ -105,12 +122,14 @@
|
|
|
| AVCodec* codec = avcodec_find_decoder(codec_context_->codec_id);
|
| if (!codec) {
|
| - callback.Run(PIPELINE_ERROR_DECODE);
|
| + host()->SetError(PIPELINE_ERROR_DECODE);
|
| + callback.Run();
|
| return;
|
| }
|
|
|
| if (avcodec_open(codec_context_, codec) < 0) {
|
| - callback.Run(PIPELINE_ERROR_DECODE);
|
| + host()->SetError(PIPELINE_ERROR_DECODE);
|
| + callback.Run();
|
| return;
|
| }
|
|
|
| @@ -121,7 +140,7 @@
|
| natural_size_ = config.natural_size();
|
| frame_rate_numerator_ = config.frame_rate_numerator();
|
| frame_rate_denominator_ = config.frame_rate_denominator();
|
| - callback.Run(PIPELINE_OK);
|
| + callback.Run();
|
| }
|
|
|
| void FFmpegVideoDecoder::Stop(const base::Closure& callback) {
|
|
|