OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef MEDIA_BLINK_WEBMEDIAPLAYER_IMPL_H_ | 5 #ifndef MEDIA_BLINK_WEBMEDIAPLAYER_IMPL_H_ |
6 #define MEDIA_BLINK_WEBMEDIAPLAYER_IMPL_H_ | 6 #define MEDIA_BLINK_WEBMEDIAPLAYER_IMPL_H_ |
7 | 7 |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <string> | 10 #include <string> |
11 #include <vector> | 11 #include <vector> |
12 | 12 |
13 #include "base/compiler_specific.h" | 13 #include "base/compiler_specific.h" |
14 #include "base/macros.h" | 14 #include "base/macros.h" |
15 #include "base/memory/linked_ptr.h" | 15 #include "base/memory/linked_ptr.h" |
16 #include "base/memory/ref_counted.h" | 16 #include "base/memory/ref_counted.h" |
17 #include "base/memory/scoped_ptr.h" | 17 #include "base/memory/scoped_ptr.h" |
18 #include "base/memory/weak_ptr.h" | 18 #include "base/memory/weak_ptr.h" |
19 #include "base/threading/thread.h" | 19 #include "base/threading/thread.h" |
20 #include "build/build_config.h" | 20 #include "build/build_config.h" |
| 21 #include "media/base/media_tracks.h" |
21 #include "media/base/pipeline_impl.h" | 22 #include "media/base/pipeline_impl.h" |
22 #include "media/base/renderer_factory.h" | 23 #include "media/base/renderer_factory.h" |
23 #include "media/base/surface_manager.h" | 24 #include "media/base/surface_manager.h" |
24 #include "media/base/text_track.h" | 25 #include "media/base/text_track.h" |
25 #include "media/blink/buffered_data_source.h" | 26 #include "media/blink/buffered_data_source.h" |
26 #include "media/blink/buffered_data_source_host_impl.h" | 27 #include "media/blink/buffered_data_source_host_impl.h" |
27 #include "media/blink/media_blink_export.h" | 28 #include "media/blink/media_blink_export.h" |
28 #include "media/blink/multibuffer_data_source.h" | 29 #include "media/blink/multibuffer_data_source.h" |
29 #include "media/blink/video_frame_compositor.h" | 30 #include "media/blink/video_frame_compositor.h" |
30 #include "media/blink/webmediaplayer_delegate.h" | 31 #include "media/blink/webmediaplayer_delegate.h" |
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
254 void FrameReady(const scoped_refptr<VideoFrame>& frame); | 255 void FrameReady(const scoped_refptr<VideoFrame>& frame); |
255 | 256 |
256 // Returns the current video frame from |compositor_|. Blocks until the | 257 // Returns the current video frame from |compositor_|. Blocks until the |
257 // compositor can return the frame. | 258 // compositor can return the frame. |
258 scoped_refptr<VideoFrame> GetCurrentFrameFromCompositor(); | 259 scoped_refptr<VideoFrame> GetCurrentFrameFromCompositor(); |
259 | 260 |
260 // Called when the demuxer encounters encrypted streams. | 261 // Called when the demuxer encounters encrypted streams. |
261 void OnEncryptedMediaInitData(EmeInitDataType init_data_type, | 262 void OnEncryptedMediaInitData(EmeInitDataType init_data_type, |
262 const std::vector<uint8_t>& init_data); | 263 const std::vector<uint8_t>& init_data); |
263 | 264 |
| 265 // Called when the demuxer encounters new media tracks. |
| 266 void OnMediaTracksUpdated(scoped_ptr<MediaTracks> tracks); |
| 267 |
264 // Called when a decoder detects that the key needed to decrypt the stream | 268 // Called when a decoder detects that the key needed to decrypt the stream |
265 // is not available. | 269 // is not available. |
266 void OnWaitingForDecryptionKey(); | 270 void OnWaitingForDecryptionKey(); |
267 | 271 |
268 // Sets |cdm_context| on the pipeline and fires |cdm_attached_cb| when done. | 272 // Sets |cdm_context| on the pipeline and fires |cdm_attached_cb| when done. |
269 // Parameter order is reversed for easy binding. | 273 // Parameter order is reversed for easy binding. |
270 void SetCdm(const CdmAttachedCB& cdm_attached_cb, CdmContext* cdm_context); | 274 void SetCdm(const CdmAttachedCB& cdm_attached_cb, CdmContext* cdm_context); |
271 | 275 |
272 // Called when a CDM has been attached to the |pipeline_|. | 276 // Called when a CDM has been attached to the |pipeline_|. |
273 void OnCdmAttached(bool success); | 277 void OnCdmAttached(bool success); |
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
447 // for a transient sound. Playout volume is derived by volume * multiplier. | 451 // for a transient sound. Playout volume is derived by volume * multiplier. |
448 double volume_; | 452 double volume_; |
449 double volume_multiplier_; | 453 double volume_multiplier_; |
450 | 454 |
451 scoped_ptr<RendererFactory> renderer_factory_; | 455 scoped_ptr<RendererFactory> renderer_factory_; |
452 | 456 |
453 // For requesting surfaces on behalf of the Android H/W decoder in fullscreen. | 457 // For requesting surfaces on behalf of the Android H/W decoder in fullscreen. |
454 // This will be null everywhere but Android. | 458 // This will be null everywhere but Android. |
455 SurfaceManager* surface_manager_; | 459 SurfaceManager* surface_manager_; |
456 | 460 |
| 461 std::vector<blink::WebMediaPlayer::TrackId> blink_audio_tracks_; |
| 462 std::vector<blink::WebMediaPlayer::TrackId> blink_video_tracks_; |
| 463 |
457 DISALLOW_COPY_AND_ASSIGN(WebMediaPlayerImpl); | 464 DISALLOW_COPY_AND_ASSIGN(WebMediaPlayerImpl); |
458 }; | 465 }; |
459 | 466 |
460 } // namespace media | 467 } // namespace media |
461 | 468 |
462 #endif // MEDIA_BLINK_WEBMEDIAPLAYER_IMPL_H_ | 469 #endif // MEDIA_BLINK_WEBMEDIAPLAYER_IMPL_H_ |
OLD | NEW |