[go: nahoru, domu]

Signal media::PipelineClient when audio/video decoder configs change.

This CL plumbs the signal from the renderers through pipeline, ultiately
arriving at WebMediaPlayerImpl where it will later be used to start/stop
reporting of MediaCapabilities playback stats.

Note: OnVideoNaturalSizeChange is still not obsoleted by
OnVideoConfigChange because it possible to for natural size to change
outside of a config change.

Includes new unit and e2e tests.

Bug: 695264
Change-Id: Ib04e13e2e8ab6b6974f2a9059466d7a87986b4b2
Reviewed-on: https://chromium-review.googlesource.com/541721
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Commit-Queue: Chrome Cunningham <chcunningham@chromium.org>
Cr-Commit-Position: refs/heads/master@{#485427}
diff --git a/media/renderers/renderer_impl.h b/media/renderers/renderer_impl.h
index 7e78749..89521c6 100644
--- a/media/renderers/renderer_impl.h
+++ b/media/renderers/renderer_impl.h
@@ -17,12 +17,14 @@
 #include "base/time/clock.h"
 #include "base/time/default_tick_clock.h"
 #include "base/time/time.h"
+#include "media/base/audio_decoder_config.h"
 #include "media/base/buffering_state.h"
 #include "media/base/decryptor.h"
 #include "media/base/demuxer_stream.h"
 #include "media/base/media_export.h"
 #include "media/base/pipeline_status.h"
 #include "media/base/renderer.h"
+#include "media/base/video_decoder_config.h"
 #include "ui/gfx/geometry/size.h"
 
 namespace base {
@@ -171,8 +173,11 @@
 
   // Callback executed when a runtime error happens.
   void OnError(PipelineStatus error);
+
   void OnWaitingForDecryptionKey();
   void OnVideoNaturalSizeChange(const gfx::Size& size);
+  void OnAudioConfigChange(const AudioDecoderConfig& config);
+  void OnVideoConfigChange(const VideoDecoderConfig& config);
   void OnVideoOpacityChange(bool opaque);
 
   void OnStreamRestartCompleted();