| Index: chromecast/browser/cast_browser_main_parts.cc
|
| diff --git a/chromecast/browser/cast_browser_main_parts.cc b/chromecast/browser/cast_browser_main_parts.cc
|
| index 046e3ba40757bcaddb9f3902864cd358a2af9f67..d3247a844dfaf4b82f84886c6ed33bc6b58c739e 100644
|
| --- a/chromecast/browser/cast_browser_main_parts.cc
|
| +++ b/chromecast/browser/cast_browser_main_parts.cc
|
| @@ -34,6 +34,7 @@
|
| #include "chromecast/browser/url_request_context_factory.h"
|
| #include "chromecast/common/platform_client_auth.h"
|
| #include "chromecast/media/base/key_systems_common.h"
|
| +#include "chromecast/media/base/media_message_loop.h"
|
| #include "chromecast/net/connectivity_checker.h"
|
| #include "chromecast/public/cast_media_shlib.h"
|
| #include "chromecast/public/cast_sys_info.h"
|
| @@ -324,7 +325,9 @@ void CastBrowserMainParts::PreMainMessageLoopRun() {
|
| cast_browser_process_->SetRemoteDebuggingServer(
|
| make_scoped_ptr(new RemoteDebuggingServer()));
|
|
|
| - media::CastMediaShlib::Initialize(cmd_line->argv());
|
| + media::MediaMessageLoop::GetTaskRunner()->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&media::CastMediaShlib::Initialize, cmd_line->argv()));
|
| ::media::InitializeMediaLibrary();
|
|
|
| cast_browser_process_->SetCastService(CastService::Create(
|
| @@ -390,7 +393,10 @@ void CastBrowserMainParts::PostMainMessageLoopRun() {
|
| DeregisterKillOnAlarm();
|
| #endif
|
|
|
| - media::CastMediaShlib::Finalize();
|
| + // Finalize CastMediaShlib on media thread to ensure it's not accessed
|
| + // after Finalize.
|
| + media::MediaMessageLoop::GetTaskRunner()->PostTask(
|
| + FROM_HERE, base::Bind(&media::CastMediaShlib::Finalize));
|
| }
|
|
|
| } // namespace shell
|
|
|