| OLD | NEW | 
|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 #include "media/base/android/media_codec_player.h" | 5 #include "media/base/android/media_codec_player.h" | 
| 6 | 6 | 
| 7 #include "base/barrier_closure.h" | 7 #include "base/barrier_closure.h" | 
| 8 #include "base/bind.h" | 8 #include "base/bind.h" | 
| 9 #include "base/lazy_instance.h" | 9 #include "base/lazy_instance.h" | 
| 10 #include "base/logging.h" | 10 #include "base/logging.h" | 
| 11 #include "base/thread_task_runner_handle.h" | 11 #include "base/thread_task_runner_handle.h" | 
| 12 #include "base/threading/thread.h" | 12 #include "base/threading/thread.h" | 
| 13 #include "media/base/android/media_codec_audio_decoder.h" | 13 #include "media/base/android/media_codec_audio_decoder.h" | 
| 14 #include "media/base/android/media_codec_video_decoder.h" | 14 #include "media/base/android/media_codec_video_decoder.h" | 
| 15 #include "media/base/android/media_player_manager.h" | 15 #include "media/base/android/media_player_manager.h" | 
|  | 16 #include "media/base/android/media_task_runner.h" | 
| 16 #include "media/base/timestamp_constants.h" | 17 #include "media/base/timestamp_constants.h" | 
| 17 | 18 | 
| 18 #define RUN_ON_MEDIA_THREAD(METHOD, ...)                                     \ | 19 #define RUN_ON_MEDIA_THREAD(METHOD, ...)                                     \ | 
| 19   do {                                                                       \ | 20   do {                                                                       \ | 
| 20     if (!GetMediaTaskRunner()->BelongsToCurrentThread()) {                   \ | 21     if (!GetMediaTaskRunner()->BelongsToCurrentThread()) {                   \ | 
| 21       DCHECK(ui_task_runner_->BelongsToCurrentThread());                     \ | 22       DCHECK(ui_task_runner_->BelongsToCurrentThread());                     \ | 
| 22       GetMediaTaskRunner()->PostTask(                                        \ | 23       GetMediaTaskRunner()->PostTask(                                        \ | 
| 23           FROM_HERE, base::Bind(&MediaCodecPlayer::METHOD, media_weak_this_, \ | 24           FROM_HERE, base::Bind(&MediaCodecPlayer::METHOD, media_weak_this_, \ | 
| 24                                 ##__VA_ARGS__));                             \ | 25                                 ##__VA_ARGS__));                             \ | 
| 25       return;                                                                \ | 26       return;                                                                \ | 
| 26     }                                                                        \ | 27     }                                                                        \ | 
| 27   } while (0) | 28   } while (0) | 
| 28 | 29 | 
| 29 namespace media { | 30 namespace media { | 
| 30 | 31 | 
| 31 class MediaThread : public base::Thread { |  | 
| 32  public: |  | 
| 33   MediaThread() : base::Thread("BrowserMediaThread") { |  | 
| 34     Start(); |  | 
| 35   } |  | 
| 36 }; |  | 
| 37 |  | 
| 38 // Create media thread |  | 
| 39 base::LazyInstance<MediaThread>::Leaky |  | 
| 40     g_media_thread = LAZY_INSTANCE_INITIALIZER; |  | 
| 41 |  | 
| 42 |  | 
| 43 scoped_refptr<base::SingleThreadTaskRunner> GetMediaTaskRunner() { |  | 
| 44   return g_media_thread.Pointer()->task_runner(); |  | 
| 45 } |  | 
| 46 |  | 
| 47 // MediaCodecPlayer implementation. | 32 // MediaCodecPlayer implementation. | 
| 48 | 33 | 
| 49 MediaCodecPlayer::MediaCodecPlayer( | 34 MediaCodecPlayer::MediaCodecPlayer( | 
| 50     int player_id, | 35     int player_id, | 
| 51     base::WeakPtr<MediaPlayerManager> manager, | 36     base::WeakPtr<MediaPlayerManager> manager, | 
| 52     const RequestMediaResourcesCB& request_media_resources_cb, | 37     const RequestMediaResourcesCB& request_media_resources_cb, | 
| 53     scoped_ptr<DemuxerAndroid> demuxer, | 38     scoped_ptr<DemuxerAndroid> demuxer, | 
| 54     const GURL& frame_url) | 39     const GURL& frame_url) | 
| 55     : MediaPlayerAndroid(player_id, | 40     : MediaPlayerAndroid(player_id, | 
| 56                          manager.get(), | 41                          manager.get(), | 
| (...skipping 1177 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1234     RETURN_STRING(kStateWaitingForSurface); | 1219     RETURN_STRING(kStateWaitingForSurface); | 
| 1235     RETURN_STRING(kStateWaitingForSeek); | 1220     RETURN_STRING(kStateWaitingForSeek); | 
| 1236     RETURN_STRING(kStateError); | 1221     RETURN_STRING(kStateError); | 
| 1237   } | 1222   } | 
| 1238   return nullptr;  // crash early | 1223   return nullptr;  // crash early | 
| 1239 } | 1224 } | 
| 1240 | 1225 | 
| 1241 #undef RETURN_STRING | 1226 #undef RETURN_STRING | 
| 1242 | 1227 | 
| 1243 }  // namespace media | 1228 }  // namespace media | 
| OLD | NEW | 
|---|