summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorycheo@chromium.org <ycheo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-01-17 06:52:19 +0000
committerycheo@chromium.org <ycheo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-01-17 06:52:19 +0000
commit693f63ce16212bceba55cabe7730229f5c8282af (patch)
tree5f61e816ac3f1f2cbd4003637b585161076cfea8
parent8d5ded694b0f65e5d47a16967709e1ab6aab42f5 (diff)
downloadchromium_src-693f63ce16212bceba55cabe7730229f5c8282af.zip
chromium_src-693f63ce16212bceba55cabe7730229f5c8282af.tar.gz
chromium_src-693f63ce16212bceba55cabe7730229f5c8282af.tar.bz2
Remove Chrome for TV code.
BUG=334126 Review URL: https://codereview.chromium.org/136343002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@245449 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--base/android/base_jni_registrar.cc7
-rw-r--r--base/android/context_types.cc26
-rw-r--r--base/android/context_types.h22
-rw-r--r--base/android/java/src/org/chromium/base/ContextTypes.java96
-rw-r--r--base/android/java/src/org/chromium/base/PathUtils.java25
-rw-r--r--base/android/javatests/src/org/chromium/base/ContextTypesTest.java43
-rw-r--r--base/base.gyp7
-rw-r--r--base/base.gypi6
-rw-r--r--build/common.gypi20
-rw-r--r--chrome/browser/android/chrome_startup_flags.cc3
-rw-r--r--chrome/browser/browser_resources.grd5
-rw-r--r--chrome/browser/pepper_broker_infobar_delegate.cc27
-rw-r--r--chrome/browser/resources/plugin_metadata/plugins_tv.json15
-rw-r--r--chrome/chrome_renderer.gypi7
-rw-r--r--content/browser/media/android/browser_media_player_manager.cc2
-rw-r--r--content/browser/renderer_host/render_process_host_impl.cc3
-rw-r--r--content/child/runtime_features.cc2
-rw-r--r--content/common/media/media_player_messages_android.h3
-rw-r--r--content/common/media/media_player_messages_enums_android.h3
-rw-r--r--content/content_renderer.gypi8
-rw-r--r--content/content_tests.gypi5
-rw-r--r--content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java26
-rw-r--r--content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java7
-rw-r--r--content/renderer/media/android/media_source_delegate.cc98
-rw-r--r--content/renderer/media/android/media_source_delegate.h18
-rw-r--r--content/renderer/media/android/renderer_media_player_manager.h4
-rw-r--r--content/renderer/media/android/webmediaplayer_android.cc91
-rw-r--r--content/renderer/media/android/webmediaplayer_android.h24
-rw-r--r--content/renderer/media/crypto/key_systems.cc5
-rw-r--r--content/renderer/media/crypto/ppapi_decryptor.cc11
-rw-r--r--content/renderer/media/media_stream_dependency_factory.cc13
-rw-r--r--content/renderer/media/media_stream_dependency_factory.h14
-rw-r--r--content/renderer/media/rtc_video_decoder_bridge_tv.cc113
-rw-r--r--content/renderer/media/rtc_video_decoder_bridge_tv.h55
-rw-r--r--content/renderer/media/rtc_video_decoder_factory_tv.cc246
-rw-r--r--content/renderer/media/rtc_video_decoder_factory_tv.h80
-rw-r--r--content/renderer/media/rtc_video_decoder_factory_tv_unittest.cc348
-rw-r--r--content/renderer/render_view_impl.cc30
-rw-r--r--media/base/android/demuxer_stream_player_params.h7
-rw-r--r--media/base/media_switches.cc9
-rw-r--r--media/base/media_switches.h4
-rw-r--r--media/filters/source_buffer_stream.cc9
-rw-r--r--media/media.gyp5
-rw-r--r--third_party/widevine/cdm/widevine_cdm.gyp2
-rw-r--r--webkit/common/user_agent/user_agent_util.cc6
45 files changed, 25 insertions, 1535 deletions
diff --git a/base/android/base_jni_registrar.cc b/base/android/base_jni_registrar.cc
index 9a87a25..c474375 100644
--- a/base/android/base_jni_registrar.cc
+++ b/base/android/base_jni_registrar.cc
@@ -24,10 +24,6 @@
#include "base/message_loop/message_pump_android.h"
#include "base/power_monitor/power_monitor_device_source_android.h"
-#if defined(GOOGLE_TV)
-#include "base/android/context_types.h"
-#endif
-
namespace base {
namespace android {
@@ -35,9 +31,6 @@ static RegistrationMethod kBaseRegisteredMethods[] = {
{ "ActivityStatus", base::android::ActivityStatus::RegisterBindings },
{ "BuildInfo", base::android::BuildInfo::RegisterBindings },
{ "CommandLine", base::android::RegisterCommandLine },
-#if defined(GOOGLE_TV)
- { "ContextTypes", base::android::RegisterContextTypes },
-#endif
{ "ContentUriUtils", base::RegisterContentUriUtils },
{ "CpuFeatures", base::android::RegisterCpuFeatures },
{ "ImportantFileWriterAndroid",
diff --git a/base/android/context_types.cc b/base/android/context_types.cc
deleted file mode 100644
index 084b136..0000000
--- a/base/android/context_types.cc
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (c) 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "base/android/context_types.h"
-
-#include "base/android/jni_android.h"
-#include "base/android/scoped_java_ref.h"
-#include "base/files/file_path.h"
-#include "jni/ContextTypes_jni.h"
-
-namespace base {
-namespace android {
-
-bool IsRunningInWebapp() {
- JNIEnv* env = AttachCurrentThread();
- return static_cast<bool>(
- Java_ContextTypes_isRunningInWebapp(env, GetApplicationContext()));
-}
-
-bool RegisterContextTypes(JNIEnv* env) {
- return RegisterNativesImpl(env);
-}
-
-} // namespace android
-} // namespace base
diff --git a/base/android/context_types.h b/base/android/context_types.h
deleted file mode 100644
index a132167..0000000
--- a/base/android/context_types.h
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (c) 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef BASE_ANDROID_CONTEXT_TYPES_H_
-#define BASE_ANDROID_CONTEXT_TYPES_H_
-
-#include <jni.h>
-
-#include "base/base_export.h"
-
-namespace base {
-namespace android {
-
-BASE_EXPORT bool IsRunningInWebapp();
-
-bool RegisterContextTypes(JNIEnv* env);
-
-} // namespace android
-} // namespace base
-
-#endif // BASE_ANDROID_CONTEXT_TYPES_H_
diff --git a/base/android/java/src/org/chromium/base/ContextTypes.java b/base/android/java/src/org/chromium/base/ContextTypes.java
deleted file mode 100644
index ab3750d8..0000000
--- a/base/android/java/src/org/chromium/base/ContextTypes.java
+++ /dev/null
@@ -1,96 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.base;
-
-import android.content.Context;
-
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-/**
- * Maintains the {@link Context}-to-"context type" mapping. The context type
- * {@code MODE_APP} is chosen for the application context associated with
- * the activity running in application mode, while {@code MODE_NORMAL} for main
- * Chromium activity.
- *
- * <p>Used as singleton instance.
- */
-public class ContextTypes {
-
- // Available context types.
- public static final int CONTEXT_TYPE_NORMAL = 1;
- public static final int CONTEXT_TYPE_WEBAPP = 2;
-
- private final Map<Context, Integer> mContextMap;
-
- private ContextTypes() {
- mContextMap = new ConcurrentHashMap<Context, Integer>();
- }
-
- private static class ContextTypesHolder {
- private static final ContextTypes INSTANCE = new ContextTypes();
- }
-
- public static ContextTypes getInstance() {
- return ContextTypesHolder.INSTANCE;
- }
-
- /**
- * Adds the mapping for the given {@link Context}.
- *
- * @param context {@link Context} in interest
- * @param type the type associated with the context
- * @throws IllegalArgumentException if type is not a valid one.
- */
- public void put(Context context, int type) throws IllegalArgumentException {
- if (type != CONTEXT_TYPE_NORMAL && type != CONTEXT_TYPE_WEBAPP) {
- throw new IllegalArgumentException("Wrong context type");
- }
- mContextMap.put(context, type);
- }
-
- /**
- * Removes the mapping for the given context.
- *
- * @param context {@link Context} in interest
- */
- public void remove(Context context) {
- mContextMap.remove(context);
- }
-
- /**
- * Returns type of the given context.
- *
- * @param context {@link Context} in interest
- * @return type associated with the context. Returns {@code MODE_NORMAL} by
- * default if the mapping for the queried context is not present.
- */
- public int getType(Context context) {
- Integer contextType = mContextMap.get(context);
- return contextType == null ? CONTEXT_TYPE_NORMAL : contextType;
- }
-
- /**
- * Returns whether activity is running in web app mode.
- *
- * @param appContext {@link Context} in interest
- * @return {@code true} when activity is running in web app mode.
- */
- @CalledByNative
- public static boolean isRunningInWebapp(Context appContext) {
- return ContextTypes.getInstance().getType(appContext)
- == CONTEXT_TYPE_WEBAPP;
- }
-
- /**
- * Checks if the mapping exists for the given context.
- *
- * @param context {@link Context} in interest
- * @return {@code true} if the mapping exists; otherwise {@code false}
- */
- public boolean contains(Context context) {
- return mContextMap.containsKey(context);
- }
-}
diff --git a/base/android/java/src/org/chromium/base/PathUtils.java b/base/android/java/src/org/chromium/base/PathUtils.java
index 2c1ed0e..b2c860f 100644
--- a/base/android/java/src/org/chromium/base/PathUtils.java
+++ b/base/android/java/src/org/chromium/base/PathUtils.java
@@ -8,16 +8,12 @@ import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.os.Environment;
-import java.io.File;
-
/**
* This class provides the path related methods for the native library.
*/
public abstract class PathUtils {
private static String sDataDirectorySuffix;
- private static String sWebappDirectorySuffix;
- private static String sWebappCacheDirectory;
// Prevent instantiation.
private PathUtils() {}
@@ -33,17 +29,6 @@ public abstract class PathUtils {
}
/**
- * Sets the directory info used for chrome process running in application mode.
- *
- * @param webappSuffix The suffix of the directory used for storing webapp-specific profile
- * @param cacheDir Cache directory name for web apps.
- */
- public static void setWebappDirectoryInfo(String webappSuffix, String cacheDir) {
- sWebappDirectorySuffix = webappSuffix;
- sWebappCacheDirectory = cacheDir;
- }
-
- /**
* @return the private directory that is used to store application data.
*/
@CalledByNative
@@ -70,15 +55,7 @@ public abstract class PathUtils {
@SuppressWarnings("unused")
@CalledByNative
public static String getCacheDirectory(Context appContext) {
- if (ContextTypes.getInstance().getType(appContext) == ContextTypes.CONTEXT_TYPE_NORMAL) {
- return appContext.getCacheDir().getPath();
- }
- if (sWebappDirectorySuffix == null || sWebappCacheDirectory == null) {
- throw new IllegalStateException(
- "setWebappDirectoryInfo must be called before getCacheDirectory");
- }
- return new File(appContext.getDir(sWebappDirectorySuffix, appContext.MODE_PRIVATE),
- sWebappCacheDirectory).getPath();
+ return appContext.getCacheDir().getPath();
}
/**
diff --git a/base/android/javatests/src/org/chromium/base/ContextTypesTest.java b/base/android/javatests/src/org/chromium/base/ContextTypesTest.java
deleted file mode 100644
index aefa4a6..0000000
--- a/base/android/javatests/src/org/chromium/base/ContextTypesTest.java
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.base;
-
-import static org.chromium.base.ContextTypes.CONTEXT_TYPE_NORMAL;
-import static org.chromium.base.ContextTypes.CONTEXT_TYPE_WEBAPP;
-
-import android.content.Context;
-import android.test.AndroidTestCase;
-import android.test.mock.MockContext;
-import android.test.suitebuilder.annotation.SmallTest;
-
-public class ContextTypesTest extends AndroidTestCase {
-
- @SmallTest
- public void testReturnsExpectedType() {
- ContextTypes contextTypes = ContextTypes.getInstance();
- Context normal = new MockContext();
- Context webapp = new MockContext();
- contextTypes.put(normal, CONTEXT_TYPE_NORMAL);
- contextTypes.put(webapp, CONTEXT_TYPE_WEBAPP);
- assertEquals(CONTEXT_TYPE_NORMAL, contextTypes.getType(normal));
- assertEquals(CONTEXT_TYPE_WEBAPP, contextTypes.getType(webapp));
- }
-
- @SmallTest
- public void testAbsentContextReturnsNormalType() {
- assertEquals(CONTEXT_TYPE_NORMAL, ContextTypes.getInstance().getType(new MockContext()));
- }
-
- @SmallTest
- public void testPutInvalidTypeThrowsException() {
- boolean exceptionThrown = false;
- try {
- ContextTypes.getInstance().put(new MockContext(), -1);
- } catch (IllegalArgumentException e) {
- exceptionThrown = true;
- }
- assertTrue(exceptionThrown);
- }
-}
diff --git a/base/base.gyp b/base/base.gyp
index 5893754..591920f 100644
--- a/base/base.gyp
+++ b/base/base.gyp
@@ -1262,13 +1262,6 @@
'android/java/src/org/chromium/base/ThreadUtils.java',
'android/java/src/org/chromium/base/TraceEvent.java',
],
- 'conditions': [
- ['google_tv==1', {
- 'sources': [
- 'android/java/src/org/chromium/base/ContextTypes.java',
- ],
- }],
- ],
'variables': {
'jni_gen_package': 'base',
'jni_generator_ptr_type': 'long',
diff --git a/base/base.gypi b/base/base.gypi
index cb7c5c8..13b8260 100644
--- a/base/base.gypi
+++ b/base/base.gypi
@@ -713,12 +713,6 @@
'x11/edid_parser_x11.h',
],
}],
- ['google_tv==1', {
- 'sources': [
- 'android/context_types.cc',
- 'android/context_types.h',
- ],
- }],
],
'defines': [
'BASE_IMPLEMENTATION',
diff --git a/build/common.gypi b/build/common.gypi
index 98cd460..e7bcf63 100644
--- a/build/common.gypi
+++ b/build/common.gypi
@@ -148,9 +148,6 @@
# build system.
'android_webview_build%': 0,
- # Sets whether chrome is built for google tv device.
- 'google_tv%': 0,
-
# Set ARM architecture version.
'arm_version%': 7,
@@ -254,7 +251,6 @@
'enable_hidpi%': '<(enable_hidpi)',
'enable_touch_ui%': '<(enable_touch_ui)',
'android_webview_build%': '<(android_webview_build)',
- 'google_tv%': '<(google_tv)',
'use_goma%': '<(use_goma)',
'gomadir%': '<(gomadir)',
'enable_app_list%': '<(enable_app_list)',
@@ -698,7 +694,7 @@
'enable_plugin_installation%': 1,
}],
- ['(OS=="android" and google_tv!=1) or OS=="ios" or embedded==1', {
+ ['OS=="android" or OS=="ios" or embedded==1', {
'enable_plugins%': 0,
}, {
'enable_plugins%': 1,
@@ -973,7 +969,6 @@
'android_webview_build%': '<(android_webview_build)',
'gyp_managed_install%': 0,
'create_standalone_apk%': 1,
- 'google_tv%': '<(google_tv)',
'enable_app_list%': '<(enable_app_list)',
'use_default_render_theme%': '<(use_default_render_theme)',
'enable_settings_app%': '<(enable_settings_app)',
@@ -1621,7 +1616,7 @@
'use_cups%': 0,
}],
- ['enable_plugins==1 and (OS=="linux" or OS=="mac" or OS=="win" or google_tv==1)', {
+ ['enable_plugins==1 and (OS=="linux" or OS=="mac" or OS=="win")', {
'enable_pepper_cdms%': 1,
}, {
'enable_pepper_cdms%': 0,
@@ -1719,11 +1714,6 @@
['OS=="android"', {
'grit_defines': ['-t', 'android',
'-E', 'ANDROID_JAVA_TAGGED_ONLY=true'],
- 'conditions': [
- ['google_tv==1', {
- 'grit_defines': ['-D', 'google_tv'],
- }],
- ],
}],
['OS=="mac" or OS=="ios"', {
'grit_defines': ['-D', 'scale_factors=2x'],
@@ -2179,12 +2169,6 @@
['chromeos==1', {
'defines': ['OS_CHROMEOS=1'],
}],
- ['google_tv==1', {
- 'defines': [
- 'GOOGLE_TV=1',
- 'VIDEO_HOLE=1',
- ],
- }],
['use_xi2_mt!=0 and use_x11==1', {
'defines': ['USE_XI2_MT=<(use_xi2_mt)'],
}],
diff --git a/chrome/browser/android/chrome_startup_flags.cc b/chrome/browser/android/chrome_startup_flags.cc
index e6edaa2..4f33191 100644
--- a/chrome/browser/android/chrome_startup_flags.cc
+++ b/chrome/browser/android/chrome_startup_flags.cc
@@ -45,7 +45,4 @@ void SetChromeSpecificCommandLineFlags() {
switches::kPrerenderFromOmniboxSwitchValueEnabled);
if (base::android::SysUtils::IsLowEndDevice())
SetCommandLineSwitch(switches::kDisableSyncFavicons);
-#if defined(GOOGLE_TV)
- SetCommandLineSwitch(switches::kPpapiInProcess);
-#endif
}
diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resources.grd
index e24bcdb16f..352d0e6 100644
--- a/chrome/browser/browser_resources.grd
+++ b/chrome/browser/browser_resources.grd
@@ -195,7 +195,7 @@
<include name="IDR_OMNIBOX_HTML" file="resources\omnibox\omnibox.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" />
<include name="IDR_OMNIBOX_CSS" file="resources\omnibox\omnibox.css" type="BINDATA" />
<include name="IDR_OMNIBOX_JS" file="resources\omnibox\omnibox.js" type="BINDATA" />
- <if expr="not is_android or pp_ifdef('google_tv')">
+ <if expr="not is_android">
<include name="IDR_PLUGINS_HTML" file="resources\plugins.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" />
<include name="IDR_PLUGINS_JS" file="resources\plugins.js" type="BINDATA" />
</if>
@@ -204,9 +204,6 @@
<if expr="pp_ifdef('enable_plugins')">
<include name="IDR_PDF_MANIFEST" file="resources\pdf\manifest.json" type="BINDATA" />
</if>
- <if expr="is_android and pp_ifdef('google_tv')">
- <include name="IDR_PLUGIN_DB_JSON" file="resources\plugin_metadata\plugins_tv.json" type="BINDATA" />
- </if>
<if expr="is_win">
<include name="IDR_PLUGIN_DB_JSON" file="resources\plugin_metadata\plugins_win.json" type="BINDATA" />
</if>
diff --git a/chrome/browser/pepper_broker_infobar_delegate.cc b/chrome/browser/pepper_broker_infobar_delegate.cc
index fa1824b..8cb250b 100644
--- a/chrome/browser/pepper_broker_infobar_delegate.cc
+++ b/chrome/browser/pepper_broker_infobar_delegate.cc
@@ -24,10 +24,6 @@
#include "net/base/net_util.h"
#include "ui/base/l10n/l10n_util.h"
-#if defined(GOOGLE_TV)
-#include "base/android/context_types.h"
-#endif
-
// static
void PepperBrokerInfoBarDelegate::Create(
@@ -46,29 +42,6 @@ void PepperBrokerInfoBarDelegate::Create(
TabSpecificContentSettings* tab_content_settings =
TabSpecificContentSettings::FromWebContents(web_contents);
-#if defined(GOOGLE_TV)
- // On GoogleTV, Netflix crypto/mdx plugin and DRM server adapter plugin can
- // only come pre-installed with the OS, so we're willing to auto-grant access
- // to them. PluginRootName should be matched with PEPPER_PLUGIN_ROOT
- // in PepperPluginManager.java.
- const char kPluginRootName[] = "/system/lib/pepperplugin";
- const char kNetflixCryptoPluginFileName[] = "libnrddpicrypto.so";
- const char kNetflixMdxPluginFileName[] = "libnrdmdx.so";
- const char kDrmServerAdapterPluginFileName[] = "libdrmserveradapter.so";
- base::FilePath::StringType plugin_dir_name = plugin_path.DirName().value();
- base::FilePath::StringType plugin_file_name = plugin_path.BaseName().value();
- if (base::android::IsRunningInWebapp() &&
- plugin_dir_name == FILE_PATH_LITERAL(kPluginRootName) &&
- (plugin_file_name == FILE_PATH_LITERAL(kNetflixCryptoPluginFileName) ||
- plugin_file_name == FILE_PATH_LITERAL(kNetflixMdxPluginFileName) ||
- plugin_file_name ==
- FILE_PATH_LITERAL(kDrmServerAdapterPluginFileName))) {
- tab_content_settings->SetPepperBrokerAllowed(true);
- callback.Run(true);
- return;
- }
-#endif
-
HostContentSettingsMap* content_settings =
profile->GetHostContentSettingsMap();
ContentSetting setting =
diff --git a/chrome/browser/resources/plugin_metadata/plugins_tv.json b/chrome/browser/resources/plugin_metadata/plugins_tv.json
deleted file mode 100644
index 23054f4..0000000
--- a/chrome/browser/resources/plugin_metadata/plugins_tv.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "netflix": {
- "mime_types": [
- ],
- "versions": [
- {
- "version": "0",
- "status": "up_to_date",
- "comment": "'Netflix' is bundled with GoogleTV, so we don't define a minimum version."
- }
- ],
- "name": "Netflix",
- "group_name_matcher": "*Netflix*"
- }
-}
diff --git a/chrome/chrome_renderer.gypi b/chrome/chrome_renderer.gypi
index d2c134b..1d5be6d 100644
--- a/chrome/chrome_renderer.gypi
+++ b/chrome/chrome_renderer.gypi
@@ -438,13 +438,6 @@
'renderer/extensions/tabs_custom_bindings.cc',
'renderer/extensions/tts_custom_bindings.cc',
],
- 'conditions' : [
- ['google_tv==1', {
- 'sources!' : [
- 'renderer/media/chrome_key_systems.cc',
- ]
- }],
- ],
}],
['OS=="win"', {
'include_dirs': [
diff --git a/content/browser/media/android/browser_media_player_manager.cc b/content/browser/media/android/browser_media_player_manager.cc
index 77ce9d1..04cde98 100644
--- a/content/browser/media/android/browser_media_player_manager.cc
+++ b/content/browser/media/android/browser_media_player_manager.cc
@@ -64,7 +64,6 @@ ContentViewCoreImpl* BrowserMediaPlayerManager::GetContentViewCore() const {
return ContentViewCoreImpl::FromWebContents(web_contents());
}
-#if !defined(GOOGLE_TV)
// static
MediaPlayerAndroid* BrowserMediaPlayerManager::CreateMediaPlayer(
MediaPlayerHostMsg_Initialize_Type type,
@@ -112,7 +111,6 @@ MediaPlayerAndroid* BrowserMediaPlayerManager::CreateMediaPlayer(
NOTREACHED();
return NULL;
}
-#endif
BrowserMediaPlayerManager::BrowserMediaPlayerManager(
RenderViewHost* render_view_host)
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
index cf63b96..3296794 100644
--- a/content/browser/renderer_host/render_process_host_impl.cc
+++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -1138,9 +1138,6 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer(
switches::kEnableWebRtcHWVp8Encoding,
switches::kEnableWebRtcTcpServerSocket,
#endif
-#if defined(GOOGLE_TV)
- switches::kUseExternalVideoSurfaceThresholdInPixels,
-#endif
#if defined(OS_ANDROID)
switches::kDisableGestureRequirementForMediaPlayback,
switches::kDisableLowEndDeviceMode,
diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc
index 5352e56..b907e90 100644
--- a/content/child/runtime_features.cc
+++ b/content/child/runtime_features.cc
@@ -19,14 +19,12 @@ namespace content {
static void SetRuntimeFeatureDefaultsForPlatform() {
#if defined(OS_ANDROID)
-#if !defined(GOOGLE_TV)
// MSE/EME implementation needs Android MediaCodec API.
if (!media::MediaCodecBridge::IsAvailable()) {
WebRuntimeFeatures::enableWebKitMediaSource(false);
WebRuntimeFeatures::enableMediaSource(false);
WebRuntimeFeatures::enablePrefixedEncryptedMedia(false);
}
-#endif // !defined(GOOGLE_TV)
// WebAudio is enabled by default only on ARM and only when the
// MediaCodec API is available.
WebRuntimeFeatures::enableWebAudio(
diff --git a/content/common/media/media_player_messages_android.h b/content/common/media/media_player_messages_android.h
index 8d56526..145fc0b 100644
--- a/content/common/media/media_player_messages_android.h
+++ b/content/common/media/media_player_messages_android.h
@@ -42,9 +42,6 @@ IPC_STRUCT_TRAITS_BEGIN(media::DemuxerConfigs)
IPC_STRUCT_TRAITS_MEMBER(video_extra_data)
IPC_STRUCT_TRAITS_MEMBER(duration_ms)
-#if defined(GOOGLE_TV)
- IPC_STRUCT_TRAITS_MEMBER(key_system)
-#endif // defined(GOOGLE_TV)
IPC_STRUCT_TRAITS_END()
IPC_STRUCT_TRAITS_BEGIN(media::DemuxerData)
diff --git a/content/common/media/media_player_messages_enums_android.h b/content/common/media/media_player_messages_enums_android.h
index fe45950..97818ff 100644
--- a/content/common/media/media_player_messages_enums_android.h
+++ b/content/common/media/media_player_messages_enums_android.h
@@ -9,9 +9,6 @@
enum MediaPlayerHostMsg_Initialize_Type {
MEDIA_PLAYER_TYPE_URL,
MEDIA_PLAYER_TYPE_MEDIA_SOURCE,
-#if defined(GOOGLE_TV)
- MEDIA_PLAYER_TYPE_MEDIA_STREAM,
-#endif
};
#endif // CONTENT_COMMON_MEDIA_MEDIA_PLAYER_MESSAGES_ENUMS_ANDROID_H_
diff --git a/content/content_renderer.gypi b/content/content_renderer.gypi
index 260ad05..c98e6ed 100644
--- a/content/content_renderer.gypi
+++ b/content/content_renderer.gypi
@@ -705,14 +705,6 @@
'renderer/media/webrtc_logging.h',
],
}],
- ['enable_webrtc==1 and google_tv==1', {
- 'sources': [
- 'renderer/media/rtc_video_decoder_bridge_tv.cc',
- 'renderer/media/rtc_video_decoder_bridge_tv.h',
- 'renderer/media/rtc_video_decoder_factory_tv.cc',
- 'renderer/media/rtc_video_decoder_factory_tv.h',
- ],
- }],
['enable_plugins==1', {
'dependencies': [
'../ppapi/ppapi_internal.gyp:ppapi_host',
diff --git a/content/content_tests.gypi b/content/content_tests.gypi
index b02f7a7..6c4cf22 100644
--- a/content/content_tests.gypi
+++ b/content/content_tests.gypi
@@ -821,11 +821,6 @@
'browser/renderer_host/input/tap_suppression_controller_unittest.cc',
],
}],
- ['enable_webrtc==1 and google_tv==1', {
- 'sources': [
- 'renderer/media/rtc_video_decoder_factory_tv_unittest.cc',
- ],
- }],
['use_dbus==0', {
'sources!': [
'browser/geolocation/wifi_data_provider_linux_unittest.cc',
diff --git a/content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java b/content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java
index 17c8235..f472dc9 100644
--- a/content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java
+++ b/content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java
@@ -5,7 +5,6 @@
package org.chromium.content.browser;
import android.content.Context;
-import android.content.pm.PackageManager;
import org.chromium.base.CommandLine;
import org.chromium.content.common.ContentSwitches;
@@ -20,7 +19,6 @@ public class DeviceUtils {
*/
private static final int MINIMUM_TABLET_WIDTH_DP = 600;
- private static Boolean sIsTv = null;
private static Boolean sIsTablet = null;
/**
@@ -29,10 +27,6 @@ public class DeviceUtils {
*/
public static boolean isTablet(Context context) {
if (sIsTablet == null) {
- if (isTv(context)) {
- sIsTablet = true;
- return sIsTablet;
- }
int minimumScreenWidthDp = context.getResources().getConfiguration().
smallestScreenWidthDp;
sIsTablet = minimumScreenWidthDp >= MINIMUM_TABLET_WIDTH_DP;
@@ -41,26 +35,6 @@ public class DeviceUtils {
}
/**
- * Checks if the device should be treated as TV. Note that this should be
- * invoked before {@link #isTablet(Context)} to get the correct result
- * since they are not orthogonal.
- *
- * @param context Android context
- * @return {@code true} if the device should be treated as TV.
- */
- public static boolean isTv(Context context) {
- if (sIsTv == null) {
- PackageManager manager = context.getPackageManager();
- if (manager != null) {
- sIsTv = manager.hasSystemFeature(PackageManager.FEATURE_TELEVISION);
- return sIsTv;
- }
- sIsTv = false;
- }
- return sIsTv;
- }
-
- /**
* Appends the switch specifying which user agent should be used for this device.
* @param context The context for the caller activity.
*/
diff --git a/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java b/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java
index 6d9271e..4db35fe 100644
--- a/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java
+++ b/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java
@@ -15,8 +15,6 @@ import android.content.pm.ServiceInfo;
import android.os.Bundle;
import android.util.Log;
-import org.chromium.base.ContextTypes;
-
import java.util.List;
/**
@@ -90,11 +88,6 @@ public class PepperPluginManager {
* @return Description string for plugins
*/
public static String getPlugins(final Context context) {
- if (DeviceUtils.isTv(context) &&
- !ContextTypes.isRunningInWebapp(context)) {
- // Chrome-for-tv enables plugins only on webapp mode.
- return null;
- }
StringBuffer ret = new StringBuffer();
PackageManager pm = context.getPackageManager();
List<ResolveInfo> plugins = pm.queryIntentServices(
diff --git a/content/renderer/media/android/media_source_delegate.cc b/content/renderer/media/android/media_source_delegate.cc
index bd4cf1a..0476633 100644
--- a/content/renderer/media/android/media_source_delegate.cc
+++ b/content/renderer/media/android/media_source_delegate.cc
@@ -58,7 +58,6 @@ MediaSourceDelegate::MediaSourceDelegate(
demuxer_client_(demuxer_client),
demuxer_client_id_(demuxer_client_id),
media_log_(media_log),
- demuxer_(NULL),
is_demuxer_ready_(false),
audio_stream_(NULL),
video_stream_(NULL),
@@ -66,9 +65,6 @@ MediaSourceDelegate::MediaSourceDelegate(
doing_browser_seek_(false),
browser_seek_time_(media::kNoTimestamp()),
expecting_regular_seek_(false),
-#if defined(GOOGLE_TV)
- key_added_(false),
-#endif
access_unit_size_(0) {
DCHECK(main_loop_->BelongsToCurrentThread());
}
@@ -77,7 +73,6 @@ MediaSourceDelegate::~MediaSourceDelegate() {
DCHECK(main_loop_->BelongsToCurrentThread());
DVLOG(1) << __FUNCTION__ << " : " << demuxer_client_id_;
DCHECK(!chunk_demuxer_);
- DCHECK(!demuxer_);
DCHECK(!demuxer_client_);
DCHECK(!audio_decrypting_demuxer_stream_);
DCHECK(!video_decrypting_demuxer_stream_);
@@ -89,7 +84,7 @@ void MediaSourceDelegate::Destroy() {
DCHECK(main_loop_->BelongsToCurrentThread());
DVLOG(1) << __FUNCTION__ << " : " << demuxer_client_id_;
- if (!demuxer_) {
+ if (!chunk_demuxer_) {
DCHECK(!demuxer_client_);
delete this;
return;
@@ -102,8 +97,7 @@ void MediaSourceDelegate::Destroy() {
main_weak_factory_.InvalidateWeakPtrs();
DCHECK(!main_weak_factory_.HasWeakPtrs());
- if (chunk_demuxer_)
- chunk_demuxer_->Shutdown();
+ chunk_demuxer_->Shutdown();
// |this| will be transferred to the callback StopDemuxer() and
// OnDemuxerStopDone(). They own |this| and OnDemuxerStopDone() will delete
@@ -115,7 +109,7 @@ void MediaSourceDelegate::Destroy() {
void MediaSourceDelegate::StopDemuxer() {
DCHECK(media_loop_->BelongsToCurrentThread());
- DCHECK(demuxer_);
+ DCHECK(chunk_demuxer_);
demuxer_client_->RemoveDelegate(demuxer_client_id_);
demuxer_client_ = NULL;
@@ -132,8 +126,8 @@ void MediaSourceDelegate::StopDemuxer() {
// The callback OnDemuxerStopDone() owns |this| and will delete it when
// called. Hence using base::Unretained(this) is safe here.
- demuxer_->Stop(base::Bind(&MediaSourceDelegate::OnDemuxerStopDone,
- base::Unretained(this)));
+ chunk_demuxer_->Stop(base::Bind(&MediaSourceDelegate::OnDemuxerStopDone,
+ base::Unretained(this)));
}
void MediaSourceDelegate::InitializeMediaSource(
@@ -157,7 +151,6 @@ void MediaSourceDelegate::InitializeMediaSource(
media::BindToCurrentLoop(base::Bind(
&MediaSourceDelegate::OnNeedKey, main_weak_this_)),
base::Bind(&LogMediaSourceError, media_log_)));
- demuxer_ = chunk_demuxer_.get();
// |this| will be retained until StopDemuxer() is posted, so Unretained() is
// safe here.
@@ -169,31 +162,12 @@ void MediaSourceDelegate::InitializeMediaSource(
void MediaSourceDelegate::InitializeDemuxer() {
DCHECK(media_loop_->BelongsToCurrentThread());
demuxer_client_->AddDelegate(demuxer_client_id_, this);
- demuxer_->Initialize(this, base::Bind(&MediaSourceDelegate::OnDemuxerInitDone,
+ chunk_demuxer_->Initialize(this,
+ base::Bind(&MediaSourceDelegate::OnDemuxerInitDone,
media_weak_factory_.GetWeakPtr()),
- false);
+ false);
}
-#if defined(GOOGLE_TV)
-void MediaSourceDelegate::InitializeMediaStream(
- media::Demuxer* demuxer,
- const UpdateNetworkStateCB& update_network_state_cb) {
- DCHECK(main_loop_->BelongsToCurrentThread());
- DCHECK(demuxer);
- demuxer_ = demuxer;
- update_network_state_cb_ = media::BindToCurrentLoop(update_network_state_cb);
- // When playing Media Stream, don't wait to accumulate multiple packets per
- // IPC communication.
- access_unit_size_ = 1;
-
- // |this| will be retained until StopDemuxer() is posted, so Unretained() is
- // safe here.
- media_loop_->PostTask(FROM_HERE,
- base::Bind(&MediaSourceDelegate::InitializeDemuxer,
- base::Unretained(this)));
-}
-#endif
-
const blink::WebTimeRanges& MediaSourceDelegate::Buffered() {
buffered_web_time_ranges_ =
ConvertToWebTimeRanges(buffered_time_ranges_);
@@ -313,7 +287,7 @@ void MediaSourceDelegate::Seek(
void MediaSourceDelegate::SeekInternal(const base::TimeDelta& seek_time) {
DCHECK(media_loop_->BelongsToCurrentThread());
DCHECK(IsSeeking());
- demuxer_->Seek(seek_time, base::Bind(
+ chunk_demuxer_->Seek(seek_time, base::Bind(
&MediaSourceDelegate::OnDemuxerSeekDone,
media_weak_factory_.GetWeakPtr()));
}
@@ -388,7 +362,7 @@ void MediaSourceDelegate::OnBufferReady(
<< ((!buffer || buffer->end_of_stream()) ?
-1 : buffer->timestamp().InMilliseconds())
<< ") : " << demuxer_client_id_;
- DCHECK(demuxer_);
+ DCHECK(chunk_demuxer_);
// No new OnReadFromDemuxer() will be called during seeking. So this callback
// must be from previous OnReadFromDemuxer() call and should be ignored.
@@ -451,7 +425,6 @@ void MediaSourceDelegate::OnBufferReady(
data->access_units[index].data.assign(
buffer->data(), buffer->data() + buffer->data_size());
-#if !defined(GOOGLE_TV)
// Vorbis needs 4 extra bytes padding on Android. Check
// NuMediaExtractor.cpp in Android source code.
if (is_audio && media::kCodecVorbis ==
@@ -460,7 +433,6 @@ void MediaSourceDelegate::OnBufferReady(
data->access_units[index].data.end(), kVorbisPadding,
kVorbisPadding + 4);
}
-#endif
if (buffer->decrypt_config()) {
data->access_units[index].key_id = std::vector<char>(
buffer->decrypt_config()->key_id().begin(),
@@ -508,15 +480,15 @@ void MediaSourceDelegate::RemoveTextStream(
void MediaSourceDelegate::OnDemuxerInitDone(media::PipelineStatus status) {
DCHECK(media_loop_->BelongsToCurrentThread());
DVLOG(1) << __FUNCTION__ << "(" << status << ") : " << demuxer_client_id_;
- DCHECK(demuxer_);
+ DCHECK(chunk_demuxer_);
if (status != media::PIPELINE_OK) {
OnDemuxerError(status);
return;
}
- audio_stream_ = demuxer_->GetStream(DemuxerStream::AUDIO);
- video_stream_ = demuxer_->GetStream(DemuxerStream::VIDEO);
+ audio_stream_ = chunk_demuxer_->GetStream(DemuxerStream::AUDIO);
+ video_stream_ = chunk_demuxer_->GetStream(DemuxerStream::VIDEO);
if (audio_stream_ && audio_stream_->audio_decoder_config().is_encrypted() &&
!set_decryptor_ready_cb_.is_null()) {
@@ -568,7 +540,7 @@ void MediaSourceDelegate::OnAudioDecryptingDemuxerStreamInitDone(
media::PipelineStatus status) {
DCHECK(media_loop_->BelongsToCurrentThread());
DVLOG(1) << __FUNCTION__ << "(" << status << ") : " << demuxer_client_id_;
- DCHECK(demuxer_);
+ DCHECK(chunk_demuxer_);
if (status != media::PIPELINE_OK)
audio_decrypting_demuxer_stream_.reset();
@@ -591,7 +563,7 @@ void MediaSourceDelegate::OnVideoDecryptingDemuxerStreamInitDone(
media::PipelineStatus status) {
DCHECK(media_loop_->BelongsToCurrentThread());
DVLOG(1) << __FUNCTION__ << "(" << status << ") : " << demuxer_client_id_;
- DCHECK(demuxer_);
+ DCHECK(chunk_demuxer_);
if (status != media::PIPELINE_OK)
video_decrypting_demuxer_stream_.reset();
@@ -666,7 +638,6 @@ void MediaSourceDelegate::DeleteSelf() {
DCHECK(main_loop_->BelongsToCurrentThread());
DVLOG(1) << __FUNCTION__ << " : " << demuxer_client_id_;
chunk_demuxer_.reset();
- demuxer_ = NULL;
delete this;
}
@@ -677,42 +648,9 @@ void MediaSourceDelegate::OnMediaConfigRequest() {
NotifyDemuxerReady();
}
-#if defined(GOOGLE_TV)
-// TODO(kjyoun): Enhance logic to detect when to call NotifyDemuxerReady()
-// For now, we call it when the first key is added. See http://crbug.com/255781
-void MediaSourceDelegate::NotifyKeyAdded(const std::string& key_system) {
- if (!media_loop_->BelongsToCurrentThread()) {
- media_loop_->PostTask(FROM_HERE,
- base::Bind(&MediaSourceDelegate::NotifyKeyAdded,
- base::Unretained(this), key_system));
- return;
- }
- DVLOG(1) << __FUNCTION__ << " : " << demuxer_client_id_;
- if (key_added_)
- return;
- key_added_ = true;
- key_system_ = key_system;
- if (!CanNotifyDemuxerReady())
- return;
- if (HasEncryptedStream())
- NotifyDemuxerReady();
-}
-#endif // defined(GOOGLE_TV)
-
bool MediaSourceDelegate::CanNotifyDemuxerReady() {
DCHECK(media_loop_->BelongsToCurrentThread());
- // This can happen when a key is added before the demuxer is initialized.
- // See NotifyKeyAdded().
- // TODO(kjyoun): Remove NotifyDemxuerReady() call from NotifyKeyAdded() so
- // that we can remove all is_demuxer_ready_/key_added_/key_system_ madness.
- // See http://crbug.com/255781
- if (!is_demuxer_ready_)
- return false;
-#if defined(GOOGLE_TV)
- if (HasEncryptedStream() && !key_added_)
- return false;
-#endif // defined(GOOGLE_TV)
- return true;
+ return is_demuxer_ready_;
}
void MediaSourceDelegate::NotifyDemuxerReady() {
@@ -741,10 +679,6 @@ void MediaSourceDelegate::NotifyDemuxerReady() {
}
configs->duration_ms = GetDurationMs();
-#if defined(GOOGLE_TV)
- configs->key_system = HasEncryptedStream() ? key_system_ : "";
-#endif
-
if (demuxer_client_)
demuxer_client_->DemuxerReady(demuxer_client_id_, *configs);
}
diff --git a/content/renderer/media/android/media_source_delegate.h b/content/renderer/media/android/media_source_delegate.h
index e627a1f..c872efb 100644
--- a/content/renderer/media/android/media_source_delegate.h
+++ b/content/renderer/media/android/media_source_delegate.h
@@ -67,12 +67,6 @@ class MediaSourceDelegate : public media::DemuxerHost {
const UpdateNetworkStateCB& update_network_state_cb,
const DurationChangeCB& duration_change_cb);
-#if defined(GOOGLE_TV)
- void InitializeMediaStream(
- media::Demuxer* demuxer,
- const UpdateNetworkStateCB& update_network_state_cb);
-#endif
-
const blink::WebTimeRanges& Buffered();
size_t DecodedFrameCount() const;
size_t DroppedFrameCount() const;
@@ -100,8 +94,6 @@ class MediaSourceDelegate : public media::DemuxerHost {
// cached data since last keyframe. See http://crbug.com/304234.
void Seek(const base::TimeDelta& seek_time, bool is_browser_seek);
- void NotifyKeyAdded(const std::string& key_system);
-
// Called when DemuxerStreamPlayer needs to read data from ChunkDemuxer.
void OnReadFromDemuxer(media::DemuxerStream::Type type);
@@ -211,7 +203,6 @@ class MediaSourceDelegate : public media::DemuxerHost {
DurationChangeCB duration_change_cb_;
scoped_ptr<media::ChunkDemuxer> chunk_demuxer_;
- media::Demuxer* demuxer_;
bool is_demuxer_ready_;
media::SetDecryptorReadyCB set_decryptor_ready_cb_;
@@ -230,10 +221,6 @@ class MediaSourceDelegate : public media::DemuxerHost {
MediaSourceOpenedCB media_source_opened_cb_;
media::Demuxer::NeedKeyCB need_key_cb_;
- // The currently selected key system. Empty string means that no key system
- // has been selected.
- blink::WebString current_key_system_;
-
// Temporary for EME v0.1. In the future the init data type should be passed
// through GenerateKeyRequest() directly from WebKit.
std::string init_data_type_;
@@ -251,11 +238,6 @@ class MediaSourceDelegate : public media::DemuxerHost {
base::TimeDelta browser_seek_time_;
bool expecting_regular_seek_;
-#if defined(GOOGLE_TV)
- bool key_added_;
- std::string key_system_;
-#endif // defined(GOOGLE_TV)
-
size_t access_unit_size_;
DISALLOW_COPY_AND_ASSIGN(MediaSourceDelegate);
diff --git a/content/renderer/media/android/renderer_media_player_manager.h b/content/renderer/media/android/renderer_media_player_manager.h
index 371ab40..b68f394 100644
--- a/content/renderer/media/android/renderer_media_player_manager.h
+++ b/content/renderer/media/android/renderer_media_player_manager.h
@@ -17,10 +17,6 @@
#include "media/base/media_keys.h"
#include "url/gurl.h"
-#if defined(GOOGLE_TV)
-#include "ui/gfx/rect_f.h"
-#endif
-
namespace blink {
class WebFrame;
}
diff --git a/content/renderer/media/android/webmediaplayer_android.cc b/content/renderer/media/android/webmediaplayer_android.cc
index 6cef1cc..33af4ca 100644
--- a/content/renderer/media/android/webmediaplayer_android.cc
+++ b/content/renderer/media/android/webmediaplayer_android.cc
@@ -41,11 +41,6 @@
#include "ui/gfx/image/image.h"
#include "webkit/renderer/compositor_bindings/web_layer_impl.h"
-#if defined(GOOGLE_TV)
-#include "content/renderer/media/media_stream_audio_renderer.h"
-#include "content/renderer/media/media_stream_client.h"
-#endif
-
static const uint32 kGLTextureExternalOES = 0x8D65;
using blink::WebMediaPlayer;
@@ -111,11 +106,6 @@ WebMediaPlayerAndroid::WebMediaPlayerAndroid(
stream_texture_factory_(factory),
needs_external_surface_(false),
video_frame_provider_client_(NULL),
-#if defined(GOOGLE_TV)
- external_surface_threshold_(-1),
- demuxer_(NULL),
- media_stream_client_(NULL),
-#endif // defined(GOOGLE_TV)
pending_playback_(false),
player_type_(MEDIA_PLAYER_TYPE_URL),
current_time_(0),
@@ -131,18 +121,6 @@ WebMediaPlayerAndroid::WebMediaPlayerAndroid(
player_id_ = manager_->RegisterMediaPlayer(this);
-#if defined(GOOGLE_TV)
- if (CommandLine::ForCurrentProcess()->HasSwitch(
- switches::kUseExternalVideoSurfaceThresholdInPixels)) {
- if (!base::StringToInt(
- CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
- switches::kUseExternalVideoSurfaceThresholdInPixels),
- &external_surface_threshold_)) {
- external_surface_threshold_ = -1;
- }
- }
-#endif // defined(GOOGLE_TV)
-
#if defined(VIDEO_HOLE)
// Defer stream texture creation until we are sure it's necessary.
needs_establish_peer_ = false;
@@ -192,24 +170,6 @@ WebMediaPlayerAndroid::~WebMediaPlayerAndroid() {
if (player_type_ == MEDIA_PLAYER_TYPE_MEDIA_SOURCE && delegate_)
delegate_->PlayerGone(this);
-
-#if defined(GOOGLE_TV)
- if (audio_renderer_) {
- if (audio_renderer_->IsLocalRenderer()) {
- audio_renderer_->Stop();
- } else if (!paused()) {
- // The |audio_renderer_| can be shared by multiple remote streams, and
- // it will be stopped when WebRtcAudioDeviceImpl goes away. So we simply
- // pause the |audio_renderer_| here to avoid re-creating the
- // |audio_renderer_|.
- audio_renderer_->Pause();
- }
- }
- if (demuxer_ && !destroy_demuxer_cb_.is_null()) {
- media_source_delegate_.reset();
- destroy_demuxer_cb_.Run();
- }
-#endif
}
void WebMediaPlayerAndroid::load(LoadType load_type,
@@ -225,14 +185,9 @@ void WebMediaPlayerAndroid::load(LoadType load_type,
break;
case LoadTypeMediaStream:
-#if defined(GOOGLE_TV)
- player_type_ = MEDIA_PLAYER_TYPE_MEDIA_STREAM;
- break;
-#else
CHECK(false) << "WebMediaPlayerAndroid doesn't support MediaStream on "
"this platform";
return;
-#endif
}
has_media_metadata_ = false;
@@ -267,19 +222,6 @@ void WebMediaPlayerAndroid::load(LoadType load_type,
base::Bind(&WebMediaPlayerAndroid::OnDurationChanged,
weak_factory_.GetWeakPtr()));
}
-#if defined(GOOGLE_TV)
- // TODO(xhwang): Pass set_decryptor_ready_cb in InitializeMediaStream() to
- // enable ClearKey support for Google TV.
- if (player_type_ == MEDIA_PLAYER_TYPE_MEDIA_STREAM) {
- media_source_delegate_->InitializeMediaStream(
- demuxer_,
- base::Bind(&WebMediaPlayerAndroid::UpdateNetworkState,
- weak_factory_.GetWeakPtr()));
- audio_renderer_ = media_stream_client_->GetAudioRenderer(url);
- if (audio_renderer_)
- audio_renderer_->Start();
- }
-#endif
} else {
info_loader_.reset(
new MediaInfoLoader(
@@ -332,10 +274,6 @@ void WebMediaPlayerAndroid::play() {
manager_->RequestExternalSurface(player_id_, last_computed_rect_);
}
#endif // defined(VIDEO_HOLE)
-#if defined(GOOGLE_TV)
- if (audio_renderer_ && paused())
- audio_renderer_->Play();
-#endif // defined(GOOGLE_TV)
TryCreateStreamTextureProxyIfNeeded();
if (hasVideo() && needs_establish_peer_)
@@ -731,14 +669,9 @@ void WebMediaPlayerAndroid::OnVideoSizeChanged(int width, int height) {
return;
#if defined(VIDEO_HOLE)
- bool has_surface_size_restriction = false;
-#if defined(GOOGLE_TV)
- has_surface_size_restriction = external_surface_threshold_ >= 0 &&
- external_surface_threshold_ <= width * height;
-#endif // defined(GOOGLE_TV)
// Use H/W surface for MSE as the content might be protected.
// TODO(qinmin): Change this so that only EME needs the H/W surface
- if (media_source_delegate_ || has_surface_size_restriction) {
+ if (media_source_delegate_) {
needs_external_surface_ = true;
if (!paused() && !manager_->IsInFullscreen(frame_))
manager_->RequestExternalSurface(player_id_, last_computed_rect_);
@@ -920,10 +853,6 @@ void WebMediaPlayerAndroid::Detach() {
}
void WebMediaPlayerAndroid::Pause(bool is_media_related_action) {
-#if defined(GOOGLE_TV)
- if (audio_renderer_ && !paused())
- audio_renderer_->Pause();
-#endif
manager_->Pause(player_id_, is_media_related_action);
UpdatePlayingState(false);
}
@@ -1366,11 +1295,6 @@ WebMediaPlayerAndroid::CancelKeyRequestInternal(
void WebMediaPlayerAndroid::OnKeyAdded(const std::string& session_id) {
EmeUMAHistogramCounts(current_key_system_, "KeyAdded", 1);
-#if defined(GOOGLE_TV)
- if (media_source_delegate_)
- media_source_delegate_->NotifyKeyAdded(current_key_system_.utf8());
-#endif // defined(GOOGLE_TV)
-
client_->keyAdded(current_key_system_, WebString::fromUTF8(session_id));
}
@@ -1429,19 +1353,6 @@ void WebMediaPlayerAndroid::OnNeedKey(const std::string& type,
init_data.size());
}
-#if defined(GOOGLE_TV)
-bool WebMediaPlayerAndroid::InjectMediaStream(
- MediaStreamClient* media_stream_client,
- media::Demuxer* demuxer,
- const base::Closure& destroy_demuxer_cb) {
- DCHECK(!demuxer);
- media_stream_client_ = media_stream_client;
- demuxer_ = demuxer;
- destroy_demuxer_cb_ = destroy_demuxer_cb;
- return true;
-}
-#endif
-
void WebMediaPlayerAndroid::DoReleaseRemotePlaybackTexture(uint32 sync_point) {
DCHECK(main_thread_checker_.CalledOnValidThread());
DCHECK(remote_playback_texture_id_);
diff --git a/content/renderer/media/android/webmediaplayer_android.h b/content/renderer/media/android/webmediaplayer_android.h
index d2e9e51..3cdc6ac 100644
--- a/content/renderer/media/android/webmediaplayer_android.h
+++ b/content/renderer/media/android/webmediaplayer_android.h
@@ -32,7 +32,6 @@
#include "ui/gfx/rect_f.h"
namespace media {
-class Demuxer;
class MediaLog;
}
@@ -48,11 +47,6 @@ namespace content {
class WebMediaPlayerDelegate;
class RendererMediaPlayerManager;
-#if defined(GOOGLE_TV)
-class MediaStreamAudioRenderer;
-class MediaStreamClient;
-#endif
-
// This class implements blink::WebMediaPlayer by keeping the android
// media player in the browser process. It listens to all the status changes
// sent from the browser process and sends playback controls to the media
@@ -225,12 +219,6 @@ class WebMediaPlayerAndroid
void OnNeedKey(const std::string& type,
const std::vector<uint8>& init_data);
-#if defined(GOOGLE_TV)
- bool InjectMediaStream(MediaStreamClient* media_stream_client,
- media::Demuxer* demuxer,
- const base::Closure& destroy_demuxer_cb);
-#endif
-
// Can be called on any thread.
static void OnReleaseRemotePlaybackTexture(
const scoped_refptr<base::MessageLoopProxy>& main_loop,
@@ -402,18 +390,6 @@ class WebMediaPlayerAndroid
gfx::RectF last_computed_rect_;
#endif // defined(VIDEO_HOLE)
-#if defined(GOOGLE_TV)
- // Pixel threshold for external surface usage. Negative value means that the
- // threshold is not defined, so that external surface is never used.
- int external_surface_threshold_;
-
- // Media Stream related fields.
- media::Demuxer* demuxer_;
- base::Closure destroy_demuxer_cb_;
- scoped_refptr<MediaStreamAudioRenderer> audio_renderer_;
- MediaStreamClient* media_stream_client_;
-#endif
-
scoped_ptr<MediaSourceDelegate,
MediaSourceDelegate::Destroyer> media_source_delegate_;
diff --git a/content/renderer/media/crypto/key_systems.cc b/content/renderer/media/crypto/key_systems.cc
index 4102533..ac3f4aa 100644
--- a/content/renderer/media/crypto/key_systems.cc
+++ b/content/renderer/media/crypto/key_systems.cc
@@ -36,7 +36,6 @@ const char kMp4a[] = "mp4a";
const char kMp4aAvc1Avc3[] = "mp4a,avc1,avc3";
#endif // defined(USE_PROPRIETARY_CODECS)
-#if !defined(GOOGLE_TV)
inline std::string KeySystemNameForUMAInternal(
const blink::WebString& key_system) {
if (key_system == kClearKeyKeySystem)
@@ -47,10 +46,6 @@ inline std::string KeySystemNameForUMAInternal(
#endif // WIDEVINE_CDM_AVAILABLE
return "Unknown";
}
-#else
-// Declares the function, which is defined in another file.
-std::string KeySystemNameForUMAInternal(const blink::WebString& key_system);
-#endif // !defined(GOOGLE_TV)
// Convert a WebString to ASCII, falling back on an empty string in the case
// of a non-ASCII string.
diff --git a/content/renderer/media/crypto/ppapi_decryptor.cc b/content/renderer/media/crypto/ppapi_decryptor.cc
index b60afaa..cf7808c 100644
--- a/content/renderer/media/crypto/ppapi_decryptor.cc
+++ b/content/renderer/media/crypto/ppapi_decryptor.cc
@@ -143,18 +143,7 @@ void PpapiDecryptor::ReleaseSession(uint32 session_id) {
}
media::Decryptor* PpapiDecryptor::GetDecryptor() {
-#if defined(GOOGLE_TV)
- // Google TV only uses PpapiDecrytor as a MediaKeys and does not need the
- // Decryptor interface of the PpapiDecryptor.
- // Details: If we don't do this GTV will be broken. The reason is that during
- // initialization, MediaSourceDelegate tries to use DecryptingDemuxerStream
- // to decrypt the stream in the renderer process (for ClearKey support).
- // However, for GTV, PpapiDecryptor cannot do decryption at all. By returning
- // NULL, DDS init will fail and we fallback to what GTV used to do.
- return NULL;
-#else
return this;
-#endif // defined(GOOGLE_TV)
}
void PpapiDecryptor::RegisterNewKeyCB(StreamType stream_type,
diff --git a/content/renderer/media/media_stream_dependency_factory.cc b/content/renderer/media/media_stream_dependency_factory.cc
index a55ed36..ab436ee 100644
--- a/content/renderer/media/media_stream_dependency_factory.cc
+++ b/content/renderer/media/media_stream_dependency_factory.cc
@@ -46,10 +46,6 @@
#include "net/socket/nss_ssl_util.h"
#endif
-#if defined(GOOGLE_TV)
-#include "content/renderer/media/rtc_video_decoder_factory_tv.h"
-#endif
-
#if defined(OS_ANDROID)
#include "media/base/android/media_codec_bridge.h"
#endif
@@ -202,9 +198,6 @@ class SourceStateObserver : public webrtc::ObserverInterface,
MediaStreamDependencyFactory::MediaStreamDependencyFactory(
P2PSocketDispatcher* p2p_socket_dispatcher)
: network_manager_(NULL),
-#if defined(GOOGLE_TV)
- decoder_factory_tv_(NULL),
-#endif
p2p_socket_dispatcher_(p2p_socket_dispatcher),
signaling_thread_(NULL),
worker_thread_(NULL),
@@ -585,16 +578,10 @@ bool MediaStreamDependencyFactory::CreatePeerConnectionFactory() {
const CommandLine* cmd_line = CommandLine::ForCurrentProcess();
scoped_refptr<RendererGpuVideoAcceleratorFactories> gpu_factories =
RenderThreadImpl::current()->GetGpuFactories();
-#if !defined(GOOGLE_TV)
if (!cmd_line->HasSwitch(switches::kDisableWebRtcHWDecoding)) {
if (gpu_factories)
decoder_factory.reset(new RTCVideoDecoderFactory(gpu_factories));
}
-#else
- // PeerConnectionFactory will hold the ownership of this
- // VideoDecoderFactory.
- decoder_factory.reset(decoder_factory_tv_ = new RTCVideoDecoderFactoryTv());
-#endif
if (!cmd_line->HasSwitch(switches::kDisableWebRtcHWEncoding)) {
if (gpu_factories)
diff --git a/content/renderer/media/media_stream_dependency_factory.h b/content/renderer/media/media_stream_dependency_factory.h
index 22bbc54..13bfa3f 100644
--- a/content/renderer/media/media_stream_dependency_factory.h
+++ b/content/renderer/media/media_stream_dependency_factory.h
@@ -53,10 +53,6 @@ class WebRtcLoggingHandlerImpl;
class WebRtcLoggingMessageFilter;
struct StreamDeviceInfo;
-#if defined(GOOGLE_TV)
-class RTCVideoDecoderFactoryTv;
-#endif
-
// Object factory for RTC MediaStreams and RTC PeerConnections.
class CONTENT_EXPORT MediaStreamDependencyFactory
: NON_EXPORTED_BASE(public base::NonThreadSafe),
@@ -151,10 +147,6 @@ class CONTENT_EXPORT MediaStreamDependencyFactory
WebRtcAudioDeviceImpl* GetWebRtcAudioDevice();
-#if defined(GOOGLE_TV)
- RTCVideoDecoderFactoryTv* decoder_factory_tv() { return decoder_factory_tv_; }
-#endif
-
static void AddNativeTrackToBlinkTrack(
webrtc::MediaStreamTrackInterface* native_track,
const blink::WebMediaStreamTrack& webkit_track,
@@ -255,12 +247,6 @@ class CONTENT_EXPORT MediaStreamDependencyFactory
scoped_refptr<webrtc::PeerConnectionFactoryInterface> pc_factory_;
-#if defined(GOOGLE_TV)
- // |pc_factory_| will hold the ownership of this object, and |pc_factory_|
- // outlives this object. Thus weak pointer is sufficient.
- RTCVideoDecoderFactoryTv* decoder_factory_tv_;
-#endif
-
scoped_refptr<P2PSocketDispatcher> p2p_socket_dispatcher_;
scoped_refptr<WebRtcAudioDeviceImpl> audio_device_;
diff --git a/content/renderer/media/rtc_video_decoder_bridge_tv.cc b/content/renderer/media/rtc_video_decoder_bridge_tv.cc
deleted file mode 100644
index 68a798a..0000000
--- a/content/renderer/media/rtc_video_decoder_bridge_tv.cc
+++ /dev/null
@@ -1,113 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "content/renderer/media/rtc_video_decoder_bridge_tv.h"
-
-#include <queue>
-
-#include "base/bind.h"
-#include "base/callback_helpers.h"
-#include "base/location.h"
-#include "base/logging.h"
-#include "base/memory/ref_counted.h"
-#include "base/memory/singleton.h"
-#include "base/message_loop/message_loop_proxy.h"
-#include "base/time/time.h"
-#include "content/renderer/media/rtc_video_decoder_factory_tv.h"
-#include "media/base/bind_to_current_loop.h"
-#include "media/base/decoder_buffer.h"
-#include "third_party/libjingle/source/talk/base/ratetracker.h"
-
-namespace content {
-
-RTCVideoDecoderBridgeTv::RTCVideoDecoderBridgeTv(
- RTCVideoDecoderFactoryTv* factory)
- : factory_(factory),
- is_initialized_(false),
- first_frame_(true) {}
-
-RTCVideoDecoderBridgeTv::~RTCVideoDecoderBridgeTv() {}
-
-int32_t RTCVideoDecoderBridgeTv::InitDecode(
- const webrtc::VideoCodec* codec_settings,
- int32_t number_of_cores) {
- // We don't support non-VP8 codec, feedback mode, nor double-initialization
- if (codec_settings->codecType != webrtc::kVideoCodecVP8 ||
- codec_settings->codecSpecific.VP8.feedbackModeOn || is_initialized_)
- return WEBRTC_VIDEO_CODEC_ERROR;
- size_ = gfx::Size(codec_settings->width, codec_settings->height);
-
- is_initialized_ = true;
- first_frame_ = true;
- factory_->InitializeStream(size_);
-
- return WEBRTC_VIDEO_CODEC_OK;
-}
-
-int32_t RTCVideoDecoderBridgeTv::Decode(
- const webrtc::EncodedImage& input_image,
- bool missing_frames,
- const webrtc::RTPFragmentationHeader* fragmentation,
- const webrtc::CodecSpecificInfo* codec_specific_info,
- int64_t render_time_ms) {
- // Unlike the SW decoder in libvpx, hw decoder can not handle broken frames.
- // Here, we return an error in order to request a key frame.
- if (missing_frames || !input_image._completeFrame)
- return WEBRTC_VIDEO_CODEC_ERROR;
-
- if (!is_initialized_)
- return WEBRTC_VIDEO_CODEC_UNINITIALIZED;
-
- if (first_frame_) {
- // If the first frame is not a key frame, return an error to request a key
- // frame.
- if (input_image._frameType != webrtc::kKeyFrame)
- return WEBRTC_VIDEO_CODEC_ERROR;
-
- // Google TV expects timestamp from 0, so we store the initial timestamp as
- // an offset and subtract the value from every timestamps to meet the
- // expectation.
- timestamp_offset_millis_ = render_time_ms;
- }
- first_frame_ = false;
- gfx::Size new_size;
- if (input_image._frameType == webrtc::kKeyFrame &&
- input_image._encodedWidth != 0 && input_image._encodedHeight != 0) {
- // Only a key frame has a meaningful size.
- new_size.SetSize(input_image._encodedWidth, input_image._encodedHeight);
- if (size_ == new_size)
- new_size = gfx::Size();
- else
- size_ = new_size;
- }
- // |input_image_| may be destroyed after this call, so we make a copy of the
- // buffer so that we can queue the buffer asynchronously.
- scoped_refptr<media::DecoderBuffer> buffer =
- media::DecoderBuffer::CopyFrom(input_image._buffer, input_image._length);
- if (render_time_ms != -1) {
- buffer->set_timestamp(base::TimeDelta::FromMilliseconds(
- render_time_ms - timestamp_offset_millis_));
- }
-
- factory_->QueueBuffer(buffer, new_size);
-
- return WEBRTC_VIDEO_CODEC_OK;
-}
-
-int32_t RTCVideoDecoderBridgeTv::RegisterDecodeCompleteCallback(
- webrtc::DecodedImageCallback* callback) {
- return WEBRTC_VIDEO_CODEC_OK;
-}
-
-int32_t RTCVideoDecoderBridgeTv::Release() {
- is_initialized_ = false;
- return WEBRTC_VIDEO_CODEC_OK;
-}
-
-int32_t RTCVideoDecoderBridgeTv::Reset() {
- first_frame_ = true;
- return WEBRTC_VIDEO_CODEC_OK;
-}
-
-} // namespace content
diff --git a/content/renderer/media/rtc_video_decoder_bridge_tv.h b/content/renderer/media/rtc_video_decoder_bridge_tv.h
deleted file mode 100644
index 2ab6fde..0000000
--- a/content/renderer/media/rtc_video_decoder_bridge_tv.h
+++ /dev/null
@@ -1,55 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CONTENT_RENDERER_MEDIA_RTC_VIDEO_DECODER_BRIDGE_TV_H_
-#define CONTENT_RENDERER_MEDIA_RTC_VIDEO_DECODER_BRIDGE_TV_H_
-
-#include "base/basictypes.h"
-#include "base/compiler_specific.h"
-#include "content/common/content_export.h"
-#include "third_party/webrtc/modules/video_coding/codecs/interface/video_codec_interface.h"
-#include "ui/gfx/size.h"
-
-namespace content {
-
-class MediaStreamDependencyFactory;
-class RTCVideoDecoderFactoryTv;
-
-// An object shared between WebMediaPlayerAndroid and WebRTC Video Engine.
-// Note that this class provides the first remote stream.
-class CONTENT_EXPORT RTCVideoDecoderBridgeTv
- : NON_EXPORTED_BASE(public webrtc::VideoDecoder) {
- public:
- explicit RTCVideoDecoderBridgeTv(RTCVideoDecoderFactoryTv* factory);
- virtual ~RTCVideoDecoderBridgeTv();
-
- // webrtc::VideoDecoder implementation.
- virtual int32_t InitDecode(const webrtc::VideoCodec* codec_settings,
- int32_t number_of_cores) OVERRIDE;
- virtual int32_t Decode(
- const webrtc::EncodedImage& input_image,
- bool missing_frames,
- const webrtc::RTPFragmentationHeader* fragmentation,
- const webrtc::CodecSpecificInfo* codec_specific_info,
- int64_t render_time_ms) OVERRIDE;
- virtual int32_t RegisterDecodeCompleteCallback(
- webrtc::DecodedImageCallback* callback) OVERRIDE;
- virtual int32_t Release() OVERRIDE;
- virtual int32_t Reset() OVERRIDE;
-
- private:
- // The factory outlives this object, so weak pointer is fine.
- RTCVideoDecoderFactoryTv* factory_;
-
- gfx::Size size_;
- bool is_initialized_;
- bool first_frame_;
- int64_t timestamp_offset_millis_;
-
- DISALLOW_COPY_AND_ASSIGN(RTCVideoDecoderBridgeTv);
-};
-
-} // namespace content
-
-#endif // CONTENT_RENDERER_MEDIA_RTC_VIDEO_DECODER_BRIDGE_TV_H_
diff --git a/content/renderer/media/rtc_video_decoder_factory_tv.cc b/content/renderer/media/rtc_video_decoder_factory_tv.cc
deleted file mode 100644
index 5a9df70..0000000
--- a/content/renderer/media/rtc_video_decoder_factory_tv.cc
+++ /dev/null
@@ -1,246 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "content/renderer/media/rtc_video_decoder_factory_tv.h"
-
-#include "base/callback_helpers.h"
-#include "content/renderer/media/rtc_video_decoder_bridge_tv.h"
-#include "media/base/audio_decoder_config.h"
-#include "media/base/bind_to_current_loop.h"
-#include "media/base/decoder_buffer.h"
-#include "media/base/video_decoder_config.h"
-#include "third_party/libjingle/source/talk/base/ratetracker.h"
-
-using media::DemuxerStream;
-
-namespace content {
-
-// RTCDemuxerStream ------------------------------------------------------------
-
-class RTCDemuxerStream : public DemuxerStream {
- public:
- explicit RTCDemuxerStream(const gfx::Size& size);
- virtual ~RTCDemuxerStream();
-
- // DemuxerStream implementation.
- virtual void Read(const ReadCB& read_cb) OVERRIDE;
- virtual media::AudioDecoderConfig audio_decoder_config() OVERRIDE;
- virtual media::VideoDecoderConfig video_decoder_config() OVERRIDE;
- virtual Type type() OVERRIDE;
- virtual void EnableBitstreamConverter() OVERRIDE;
-
- void QueueBuffer(scoped_refptr<media::DecoderBuffer> buffer,
- const gfx::Size& new_size);
- void Destroy();
-
- private:
- struct BufferEntry {
- BufferEntry(const scoped_refptr<media::DecoderBuffer>& decoder_buffer_param,
- const gfx::Size& new_size_param)
- : decoder_buffer(decoder_buffer_param),
- new_size(new_size_param) {}
-
- scoped_refptr<media::DecoderBuffer> decoder_buffer;
- // When |!new_size.isEmpty()|, it means that config change with new size
- // |new_size| happened.
- gfx::Size new_size;
- };
-
- void RunReadCallback_Locked();
-
- base::Lock lock_;
- bool is_destroyed_;
- std::queue<BufferEntry> buffer_queue_;
- ReadCB read_cb_;
-
- media::AudioDecoderConfig dummy_audio_decoder_config_;
- media::VideoDecoderConfig video_decoder_config_;
- talk_base::RateTracker frame_rate_tracker_;
-};
-
-RTCDemuxerStream::RTCDemuxerStream(const gfx::Size& size)
- : is_destroyed_(false),
- video_decoder_config_(media::kCodecVP8,
- media::VP8PROFILE_MAIN,
- media::VideoFrame::NATIVE_TEXTURE,
- size,
- gfx::Rect(size),
- size,
- NULL,
- 0,
- false) {}
-
-RTCDemuxerStream::~RTCDemuxerStream() { DCHECK(is_destroyed_); }
-
-media::AudioDecoderConfig RTCDemuxerStream::audio_decoder_config() {
- NOTIMPLEMENTED() << "Does not support audio.";
- return dummy_audio_decoder_config_;
-}
-
-media::VideoDecoderConfig RTCDemuxerStream::video_decoder_config() {
- base::AutoLock lock(lock_);
- return video_decoder_config_;
-}
-
-DemuxerStream::Type RTCDemuxerStream::type() { return DemuxerStream::VIDEO; }
-
-void RTCDemuxerStream::EnableBitstreamConverter() { NOTREACHED(); }
-
-void RTCDemuxerStream::QueueBuffer(scoped_refptr<media::DecoderBuffer> buffer,
- const gfx::Size& new_size) {
- base::AutoLock lock(lock_);
- if (is_destroyed_)
- return;
- buffer_queue_.push(BufferEntry(buffer, new_size));
- if (buffer)
- frame_rate_tracker_.Update(1);
- DVLOG(1) << "frame rate received : " << frame_rate_tracker_.units_second();
- RunReadCallback_Locked();
-}
-
-void RTCDemuxerStream::Read(const ReadCB& read_cb) {
- base::AutoLock lock(lock_);
- DCHECK(read_cb_.is_null());
- if (is_destroyed_) {
- base::MessageLoopProxy::current()->PostTask(FROM_HERE, base::Bind(
- read_cb, DemuxerStream::kAborted, NULL));
- return;
- }
- read_cb_ = media::BindToCurrentLoop(read_cb);
- RunReadCallback_Locked();
-}
-
-void RTCDemuxerStream::Destroy() {
- base::AutoLock lock(lock_);
- DCHECK(!is_destroyed_);
- is_destroyed_ = true;
- if (!read_cb_.is_null())
- base::ResetAndReturn(&read_cb_).Run(DemuxerStream::kAborted, NULL);
- while (!buffer_queue_.empty())
- buffer_queue_.pop();
-}
-
-void RTCDemuxerStream::RunReadCallback_Locked() {
- if (read_cb_.is_null() || buffer_queue_.empty())
- return;
-
- BufferEntry& front = buffer_queue_.front();
- if (!front.new_size.IsEmpty()) {
- // No VideoFrame actually reaches GL renderer in Google TV case. We just
- // make coded_size == visible_rect == natural_size here.
- video_decoder_config_.Initialize(media::kCodecVP8,
- media::VP8PROFILE_MAIN,
- media::VideoFrame::NATIVE_TEXTURE,
- front.new_size,
- gfx::Rect(front.new_size),
- front.new_size,
- NULL,
- 0,
- false,
- false);
- base::ResetAndReturn(&read_cb_).Run(DemuxerStream::kConfigChanged, NULL);
- front.new_size.SetSize(0, 0);
- return;
- }
- base::ResetAndReturn(&read_cb_).Run(DemuxerStream::kOk, front.decoder_buffer);
- buffer_queue_.pop();
-}
-
-// RTCVideoDecoderFactoryTv ----------------------------------------------------
-
-RTCVideoDecoderFactoryTv::RTCVideoDecoderFactoryTv() : is_acquired_(false) {}
-RTCVideoDecoderFactoryTv::~RTCVideoDecoderFactoryTv() {}
-
-webrtc::VideoDecoder* RTCVideoDecoderFactoryTv::CreateVideoDecoder(
- webrtc::VideoCodecType type) {
- base::AutoLock lock(lock_);
- // One decoder at a time!
- if (decoder_)
- return NULL;
- // Only VP8 is supported --- returning NULL will make WebRTC fall back to SW
- // decoder.
- if (type != webrtc::kVideoCodecVP8)
- return NULL;
- decoder_.reset(new RTCVideoDecoderBridgeTv(this));
- return decoder_.get();
-}
-
-void RTCVideoDecoderFactoryTv::DestroyVideoDecoder(
- webrtc::VideoDecoder* decoder) {
- base::AutoLock lock(lock_);
- DCHECK_EQ(decoder_.get(), decoder);
- decoder_.reset();
-}
-
-bool RTCVideoDecoderFactoryTv::AcquireDemuxer() {
- base::AutoLock lock(lock_);
- if (is_acquired_)
- return false;
- is_acquired_ = true;
- return true;
-}
-
-void RTCVideoDecoderFactoryTv::ReleaseDemuxer() {
- base::AutoLock lock(lock_);
- DCHECK(is_acquired_);
- is_acquired_ = false;
- // Clean up internal state as a demuxer.
- init_cb_.Reset();
- if (stream_) {
- stream_->Destroy();
- stream_.reset();
- }
-}
-
-void RTCVideoDecoderFactoryTv::Initialize(media::DemuxerHost* /*host*/,
- const media::PipelineStatusCB& cb,
- bool /*enable_text_tracks*/) {
- base::AutoLock lock(lock_);
- init_cb_ = media::BindToCurrentLoop(cb);
- if (stream_)
- base::ResetAndReturn(&init_cb_).Run(media::PIPELINE_OK);
-}
-
-void RTCVideoDecoderFactoryTv::Seek(base::TimeDelta time,
- const media::PipelineStatusCB& status_cb) {
- DCHECK(!status_cb.is_null());
- status_cb.Run(media::PIPELINE_OK);
-}
-
-void RTCVideoDecoderFactoryTv::Stop(const base::Closure& callback) {
- DCHECK(!callback.is_null());
- callback.Run();
-}
-
-void RTCVideoDecoderFactoryTv::OnAudioRendererDisabled() {
-}
-
-DemuxerStream* RTCVideoDecoderFactoryTv::GetStream(DemuxerStream::Type type) {
- base::AutoLock lock(lock_);
- if (type == DemuxerStream::VIDEO)
- return stream_.get();
- return NULL;
-}
-
-base::TimeDelta RTCVideoDecoderFactoryTv::GetStartTime() const {
- return base::TimeDelta();
-}
-
-void RTCVideoDecoderFactoryTv::InitializeStream(const gfx::Size& size) {
- base::AutoLock lock(lock_);
- DCHECK(!stream_);
- stream_.reset(new RTCDemuxerStream(size));
- if (!init_cb_.is_null())
- base::ResetAndReturn(&init_cb_).Run(media::PIPELINE_OK);
-}
-
-void RTCVideoDecoderFactoryTv::QueueBuffer(
- scoped_refptr<media::DecoderBuffer> buffer,
- const gfx::Size& new_size) {
- base::AutoLock lock(lock_);
- DCHECK(stream_);
- stream_->QueueBuffer(buffer, new_size);
-}
-
-} // namespace content
diff --git a/content/renderer/media/rtc_video_decoder_factory_tv.h b/content/renderer/media/rtc_video_decoder_factory_tv.h
deleted file mode 100644
index cd51cdc..0000000
--- a/content/renderer/media/rtc_video_decoder_factory_tv.h
+++ /dev/null
@@ -1,80 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CONTENT_RENDERER_MEDIA_RTC_VIDEO_DECODER_FACTORY_TV_H_
-#define CONTENT_RENDERER_MEDIA_RTC_VIDEO_DECODER_FACTORY_TV_H_
-
-#include "base/basictypes.h"
-#include "base/compiler_specific.h"
-#include "base/message_loop/message_loop.h"
-#include "content/common/content_export.h"
-#include "media/base/demuxer.h"
-#include "third_party/libjingle/source/talk/media/webrtc/webrtcvideodecoderfactory.h"
-#include "ui/gfx/size.h"
-
-namespace webrtc {
-class VideoDecoder;
-}
-
-namespace content {
-
-class MediaStreamDependencyFactory;
-class RTCDemuxerStream;
-class RTCVideoDecoderBridgeTv;
-
-// A factory object generating |RTCVideoDecoderBridgeTv| objects. This object
-// also functions as a |media::Demuxer| object to receive encoded streams from
-// the |RTCVideoDecoderBridgeTv| object (which inherits from
-// |webrtc::VideoDecoder|).
-class CONTENT_EXPORT RTCVideoDecoderFactoryTv
- : NON_EXPORTED_BASE(public cricket::WebRtcVideoDecoderFactory),
- public media::Demuxer {
- public:
- RTCVideoDecoderFactoryTv();
- virtual ~RTCVideoDecoderFactoryTv();
-
- // cricket::WebRtcVideoDecoderFactory implementation.
- virtual webrtc::VideoDecoder* CreateVideoDecoder(
- webrtc::VideoCodecType type) OVERRIDE;
- virtual void DestroyVideoDecoder(webrtc::VideoDecoder* decoder) OVERRIDE;
-
- // Acquires and releases the demuxer functionality of this object. Only one
- // client object can access demuxer functionality at a time. No calls to
- // |media::Demuxer| implementations should be made without acquiring it first.
- bool AcquireDemuxer();
- void ReleaseDemuxer();
-
- // media::Demuxer implementation.
- virtual void Initialize(media::DemuxerHost* host,
- const media::PipelineStatusCB& cb,
- bool enable_text_tracks) OVERRIDE;
- virtual void Seek(base::TimeDelta time,
- const media::PipelineStatusCB& status_cb) OVERRIDE;
- virtual void Stop(const base::Closure& callback) OVERRIDE;
- virtual void OnAudioRendererDisabled() OVERRIDE;
- virtual media::DemuxerStream* GetStream(
- media::DemuxerStream::Type type) OVERRIDE;
- virtual base::TimeDelta GetStartTime() const OVERRIDE;
-
- // For RTCVideoDecoderBridgeTv to talk to RTCDemuxerStream.
- void InitializeStream(const gfx::Size& size);
- void QueueBuffer(scoped_refptr<media::DecoderBuffer> buffer,
- const gfx::Size& size);
-
- private:
- // All private variables are lock protected.
- base::Lock lock_;
- scoped_ptr<RTCVideoDecoderBridgeTv> decoder_;
-
- media::PipelineStatusCB init_cb_;
- scoped_ptr<RTCDemuxerStream> stream_;
-
- bool is_acquired_;
-
- DISALLOW_COPY_AND_ASSIGN(RTCVideoDecoderFactoryTv);
-};
-
-} // namespace content
-
-#endif // CONTENT_RENDERER_MEDIA_RTC_VIDEO_DECODER_FACTORY_TV_H_
diff --git a/content/renderer/media/rtc_video_decoder_factory_tv_unittest.cc b/content/renderer/media/rtc_video_decoder_factory_tv_unittest.cc
deleted file mode 100644
index 31b3143..0000000
--- a/content/renderer/media/rtc_video_decoder_factory_tv_unittest.cc
+++ /dev/null
@@ -1,348 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "base/synchronization/waitable_event.h"
-#include "base/task_runner_util.h"
-#include "base/threading/thread.h"
-#include "content/renderer/media/rtc_video_decoder_factory_tv.h"
-#include "media/base/decoder_buffer.h"
-#include "media/base/video_decoder_config.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/webrtc/modules/video_coding/codecs/interface/mock/mock_video_codec_interface.h"
-#include "ui/gfx/rect.h"
-
-using ::testing::_;
-using ::testing::Return;
-
-namespace content {
-
-class RTCVideoDecoderFactoryTvTest : public ::testing::Test {
- public:
- RTCVideoDecoderFactoryTvTest()
- : factory_(new RTCVideoDecoderFactoryTv),
- decoder_(NULL),
- is_demuxer_acquired_(false),
- video_stream_(NULL),
- size_(1280, 720),
- input_image_(&data_, sizeof(data_), sizeof(data_)),
- data_('a'),
- read_event_(false, false),
- decoder_thread_("Test decoder thread"),
- decoder_thread_event_(false, false) {
- memset(&codec_, 0, sizeof(codec_));
- message_loop_proxy_ = base::MessageLoopProxy::current();
- input_image_._frameType = webrtc::kKeyFrame;
- input_image_._encodedWidth = size_.width();
- input_image_._encodedHeight = size_.height();
- input_image_._completeFrame = true;
- decoder_thread_.Start();
- }
-
- virtual ~RTCVideoDecoderFactoryTvTest() {
- if (is_demuxer_acquired_) {
- factory_->ReleaseDemuxer();
- is_demuxer_acquired_ = false;
- }
- if (decoder_) {
- factory_->DestroyVideoDecoder(decoder_);
- decoder_ = NULL;
- }
-
- decoder_thread_.Stop();
- }
-
- void ReadCallback(media::DemuxerStream::Status status,
- const scoped_refptr<media::DecoderBuffer>& decoder_buffer) {
- switch (status) {
- case media::DemuxerStream::kOk:
- EXPECT_TRUE(decoder_buffer);
- break;
- case media::DemuxerStream::kConfigChanged:
- case media::DemuxerStream::kAborted:
- EXPECT_FALSE(decoder_buffer);
- break;
- }
- last_decoder_buffer_ = decoder_buffer;
- read_event_.Signal();
- }
-
- void ExpectEqualsAndSignal(int32_t expected, int32_t actual) {
- EXPECT_EQ(expected, actual);
- decoder_thread_event_.Signal();
- }
-
- void ExpectNotEqualsAndSignal(int32_t unexpected, int32_t actual) {
- EXPECT_NE(unexpected, actual);
- decoder_thread_event_.Signal();
- }
-
- protected:
- base::Callback<void(int32_t)> BindExpectEquals(int32_t expected) {
- return base::Bind(&RTCVideoDecoderFactoryTvTest::ExpectEqualsAndSignal,
- base::Unretained(this),
- expected);
- }
-
- base::Callback<void(int32_t)> BindExpectNotEquals(int32_t unexpected) {
- return base::Bind(&RTCVideoDecoderFactoryTvTest::ExpectNotEqualsAndSignal,
- base::Unretained(this),
- unexpected);
- }
-
- base::Callback<int32_t(void)> BindInitDecode(const webrtc::VideoCodec* codec,
- int32_t num_cores) {
- return base::Bind(&webrtc::VideoDecoder::InitDecode,
- base::Unretained(decoder_),
- codec,
- num_cores);
- }
-
- base::Callback<int32_t(void)> BindDecode(
- const webrtc::EncodedImage& input_image,
- bool missing_frames,
- const webrtc::RTPFragmentationHeader* fragmentation,
- const webrtc::CodecSpecificInfo* info,
- int64_t render_time_ms) {
- return base::Bind(&webrtc::VideoDecoder::Decode,
- base::Unretained(decoder_),
- input_image,
- missing_frames,
- fragmentation,
- info,
- render_time_ms);
- }
-
- void CreateDecoderAndAcquireDemuxer() {
- decoder_ = factory_->CreateVideoDecoder(webrtc::kVideoCodecVP8);
- ASSERT_TRUE(decoder_);
- ASSERT_TRUE(factory_->AcquireDemuxer());
- is_demuxer_acquired_ = true;
- }
-
- void InitDecode() {
- codec_.codecType = webrtc::kVideoCodecVP8;
- codec_.width = size_.width();
- codec_.height = size_.height();
- base::PostTaskAndReplyWithResult(decoder_thread_.message_loop_proxy(),
- FROM_HERE,
- BindInitDecode(&codec_, 1),
- BindExpectEquals(WEBRTC_VIDEO_CODEC_OK));
- decoder_thread_event_.Wait();
- base::PostTaskAndReplyWithResult(
- decoder_thread_.message_loop_proxy(),
- FROM_HERE,
- base::Bind(&webrtc::VideoDecoder::RegisterDecodeCompleteCallback,
- base::Unretained(decoder_),
- &decode_complete_callback_),
- BindExpectEquals(WEBRTC_VIDEO_CODEC_OK));
- decoder_thread_event_.Wait();
- }
-
- void GetVideoStream() {
- video_stream_ = factory_->GetStream(media::DemuxerStream::VIDEO);
- ASSERT_TRUE(video_stream_);
- EXPECT_EQ(media::kCodecVP8, video_stream_->video_decoder_config().codec());
- EXPECT_EQ(size_, video_stream_->video_decoder_config().coded_size());
- EXPECT_EQ(gfx::Rect(size_),
- video_stream_->video_decoder_config().visible_rect());
- EXPECT_EQ(size_, video_stream_->video_decoder_config().natural_size());
- }
-
- void PostDecodeAndWait(int32_t expected,
- const webrtc::EncodedImage& input_image,
- bool missing_frames,
- const webrtc::RTPFragmentationHeader* fragmentation,
- const webrtc::CodecSpecificInfo* info,
- int64_t render_time_ms) {
- base::PostTaskAndReplyWithResult(
- decoder_thread_.message_loop_proxy(),
- FROM_HERE,
- BindDecode(
- input_image, missing_frames, fragmentation, info, render_time_ms),
- BindExpectEquals(expected));
- decoder_thread_event_.Wait();
- }
-
- RTCVideoDecoderFactoryTv* factory_;
- webrtc::VideoDecoder* decoder_;
- bool is_demuxer_acquired_;
- base::MessageLoopProxy* message_loop_proxy_;
- media::DemuxerStream* video_stream_;
- webrtc::VideoCodec codec_;
- gfx::Size size_;
- webrtc::EncodedImage input_image_;
- unsigned char data_;
- webrtc::MockDecodedImageCallback decode_complete_callback_;
- base::WaitableEvent read_event_;
- base::Thread decoder_thread_;
- base::WaitableEvent decoder_thread_event_;
- scoped_refptr<media::DecoderBuffer> last_decoder_buffer_;
-};
-
-TEST_F(RTCVideoDecoderFactoryTvTest, CreateAndDestroyDecoder) {
- // Only VP8 decoder is supported.
- ASSERT_FALSE(factory_->CreateVideoDecoder(webrtc::kVideoCodecI420));
- decoder_ = factory_->CreateVideoDecoder(webrtc::kVideoCodecVP8);
- ASSERT_TRUE(decoder_);
- // Only one decoder at a time will be created.
- ASSERT_FALSE(factory_->CreateVideoDecoder(webrtc::kVideoCodecVP8));
- factory_->DestroyVideoDecoder(decoder_);
-}
-
-TEST_F(RTCVideoDecoderFactoryTvTest, AcquireDemuxerAfterCreateDecoder) {
- decoder_ = factory_->CreateVideoDecoder(webrtc::kVideoCodecVP8);
- ASSERT_TRUE(decoder_);
- ASSERT_TRUE(factory_->AcquireDemuxer());
- is_demuxer_acquired_ = true;
- // Demuxer can be acquired only once.
- ASSERT_FALSE(factory_->AcquireDemuxer());
-}
-
-TEST_F(RTCVideoDecoderFactoryTvTest, AcquireDemuxerBeforeCreateDecoder) {
- ASSERT_TRUE(factory_->AcquireDemuxer());
- is_demuxer_acquired_ = true;
- decoder_ = factory_->CreateVideoDecoder(webrtc::kVideoCodecVP8);
- ASSERT_TRUE(decoder_);
-}
-
-TEST_F(RTCVideoDecoderFactoryTvTest, InitDecodeReturnsErrorOnNonVP8Codec) {
- CreateDecoderAndAcquireDemuxer();
- codec_.codecType = webrtc::kVideoCodecI420;
- base::PostTaskAndReplyWithResult(decoder_thread_.message_loop_proxy(),
- FROM_HERE,
- BindInitDecode(&codec_, 1),
- BindExpectNotEquals(WEBRTC_VIDEO_CODEC_OK));
- decoder_thread_event_.Wait();
-}
-
-TEST_F(RTCVideoDecoderFactoryTvTest, InitDecodeReturnsErrorOnFeedbackMode) {
- CreateDecoderAndAcquireDemuxer();
- codec_.codecType = webrtc::kVideoCodecVP8;
- codec_.codecSpecific.VP8.feedbackModeOn = true;
- base::PostTaskAndReplyWithResult(decoder_thread_.message_loop_proxy(),
- FROM_HERE,
- BindInitDecode(&codec_, 1),
- BindExpectNotEquals(WEBRTC_VIDEO_CODEC_OK));
- decoder_thread_event_.Wait();
-}
-
-TEST_F(RTCVideoDecoderFactoryTvTest, DecodeReturnsErrorBeforeInitDecode) {
- CreateDecoderAndAcquireDemuxer();
- PostDecodeAndWait(
- WEBRTC_VIDEO_CODEC_UNINITIALIZED, input_image_, false, NULL, NULL, 0);
-}
-
-TEST_F(RTCVideoDecoderFactoryTvTest, DecodeReturnsErrorOnDamagedBitstream) {
- CreateDecoderAndAcquireDemuxer();
- InitDecode();
- input_image_._completeFrame = false;
- PostDecodeAndWait(
- WEBRTC_VIDEO_CODEC_ERROR, input_image_, false, NULL, NULL, 0);
-}
-
-TEST_F(RTCVideoDecoderFactoryTvTest, DecodeReturnsErrorOnMissingFrames) {
- CreateDecoderAndAcquireDemuxer();
- InitDecode();
- PostDecodeAndWait(
- WEBRTC_VIDEO_CODEC_ERROR, input_image_, true, NULL, NULL, 0);
-}
-
-TEST_F(RTCVideoDecoderFactoryTvTest, GetNonVideoStreamFails) {
- CreateDecoderAndAcquireDemuxer();
- InitDecode();
- EXPECT_FALSE(factory_->GetStream(media::DemuxerStream::AUDIO));
- EXPECT_FALSE(factory_->GetStream(media::DemuxerStream::UNKNOWN));
-}
-
-TEST_F(RTCVideoDecoderFactoryTvTest, GetVideoStreamSucceeds) {
- CreateDecoderAndAcquireDemuxer();
- InitDecode();
- GetVideoStream();
-}
-
-TEST_F(RTCVideoDecoderFactoryTvTest, DecodeReturnsErrorOnNonKeyFrameAtFirst) {
- CreateDecoderAndAcquireDemuxer();
- InitDecode();
- GetVideoStream();
- input_image_._frameType = webrtc::kDeltaFrame;
- PostDecodeAndWait(
- WEBRTC_VIDEO_CODEC_ERROR, input_image_, false, NULL, NULL, 0);
-}
-
-TEST_F(RTCVideoDecoderFactoryTvTest, DecodeUpdatesVideoSizeOnKeyFrame) {
- CreateDecoderAndAcquireDemuxer();
- InitDecode();
- GetVideoStream();
- gfx::Size new_size(320, 240);
- input_image_._encodedWidth = new_size.width();
- input_image_._encodedHeight = new_size.height();
- PostDecodeAndWait(WEBRTC_VIDEO_CODEC_OK, input_image_, false, NULL, NULL, 0);
- EXPECT_EQ(new_size, video_stream_->video_decoder_config().coded_size());
- EXPECT_EQ(gfx::Rect(new_size),
- video_stream_->video_decoder_config().visible_rect());
- EXPECT_EQ(new_size, video_stream_->video_decoder_config().natural_size());
-}
-
-TEST_F(RTCVideoDecoderFactoryTvTest, DecodeAdjustsTimestampFromZero) {
- CreateDecoderAndAcquireDemuxer();
- InitDecode();
- GetVideoStream();
- PostDecodeAndWait(
- WEBRTC_VIDEO_CODEC_OK, input_image_, false, NULL, NULL, 10000);
- video_stream_->Read(base::Bind(&RTCVideoDecoderFactoryTvTest::ReadCallback,
- base::Unretained(this)));
- read_event_.Wait();
- EXPECT_EQ(base::TimeDelta::FromMilliseconds(0),
- last_decoder_buffer_->GetTimestamp());
- PostDecodeAndWait(
- WEBRTC_VIDEO_CODEC_OK, input_image_, false, NULL, NULL, 10033);
- video_stream_->Read(base::Bind(&RTCVideoDecoderFactoryTvTest::ReadCallback,
- base::Unretained(this)));
- read_event_.Wait();
- EXPECT_EQ(base::TimeDelta::FromMilliseconds(33),
- last_decoder_buffer_->GetTimestamp());
-}
-
-TEST_F(RTCVideoDecoderFactoryTvTest, DecodePassesDataCorrectly) {
- CreateDecoderAndAcquireDemuxer();
- InitDecode();
- GetVideoStream();
- video_stream_->Read(base::Bind(&RTCVideoDecoderFactoryTvTest::ReadCallback,
- base::Unretained(this)));
- PostDecodeAndWait(WEBRTC_VIDEO_CODEC_OK, input_image_, false, NULL, NULL, 0);
- read_event_.Wait();
- EXPECT_EQ(static_cast<int>(sizeof(data_)),
- last_decoder_buffer_->GetDataSize());
- EXPECT_EQ(data_, last_decoder_buffer_->GetData()[0]);
-}
-
-TEST_F(RTCVideoDecoderFactoryTvTest, NextReadTriggersDecodeCompleteCallback) {
- EXPECT_CALL(decode_complete_callback_, Decoded(_))
- .WillOnce(Return(WEBRTC_VIDEO_CODEC_OK));
-
- CreateDecoderAndAcquireDemuxer();
- InitDecode();
- GetVideoStream();
- video_stream_->Read(base::Bind(&RTCVideoDecoderFactoryTvTest::ReadCallback,
- base::Unretained(this)));
- PostDecodeAndWait(WEBRTC_VIDEO_CODEC_OK, input_image_, false, NULL, NULL, 0);
- read_event_.Wait();
- video_stream_->Read(base::Bind(&RTCVideoDecoderFactoryTvTest::ReadCallback,
- base::Unretained(this)));
-}
-
-TEST_F(RTCVideoDecoderFactoryTvTest, ResetReturnsOk) {
- CreateDecoderAndAcquireDemuxer();
- InitDecode();
- EXPECT_EQ(WEBRTC_VIDEO_CODEC_OK, decoder_->Reset());
-}
-
-TEST_F(RTCVideoDecoderFactoryTvTest, ReleaseReturnsOk) {
- CreateDecoderAndAcquireDemuxer();
- InitDecode();
- EXPECT_EQ(WEBRTC_VIDEO_CODEC_OK, decoder_->Release());
-}
-
-} // content
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
index 5485e88..bfc7e99a 100644
--- a/content/renderer/render_view_impl.cc
+++ b/content/renderer/render_view_impl.cc
@@ -223,11 +223,6 @@
#include "third_party/WebKit/public/web/WebHitTestResult.h"
#include "ui/gfx/rect_f.h"
-#if defined(GOOGLE_TV)
-#include "content/renderer/media/rtc_video_decoder_bridge_tv.h"
-#include "content/renderer/media/rtc_video_decoder_factory_tv.h"
-#endif
-
#elif defined(OS_WIN)
// TODO(port): these files are currently Windows only because they concern:
// * theming
@@ -5889,7 +5884,6 @@ WebMediaPlayer* RenderViewImpl::CreateWebMediaPlayerForMediaStream(
LOG(ERROR) << "Failed to initialize MediaStreamClient";
return NULL;
}
-#if !defined(GOOGLE_TV)
if (media_stream_client_->IsMediaStream(url)) {
#if defined(OS_ANDROID) && defined(ARCH_CPU_ARMEL)
bool found_neon =
@@ -5899,7 +5893,6 @@ WebMediaPlayer* RenderViewImpl::CreateWebMediaPlayerForMediaStream(
return new WebMediaPlayerMS(frame, client, AsWeakPtr(),
media_stream_client_, new RenderMediaLog());
}
-#endif // !defined(GOOGLE_TV)
#endif // defined(ENABLE_WEBRTC)
return NULL;
}
@@ -5997,33 +5990,14 @@ WebMediaPlayer* RenderViewImpl::CreateAndroidWebMediaPlayer(
context_provider, gpu_channel_host, routing_id_));
}
- scoped_ptr<WebMediaPlayerAndroid> web_media_player_android(
- new WebMediaPlayerAndroid(
+ return new WebMediaPlayerAndroid(
frame,
client,
AsWeakPtr(),
media_player_manager_,
stream_texture_factory.release(),
RenderThreadImpl::current()->GetMediaThreadMessageLoopProxy(),
- new RenderMediaLog()));
-#if defined(ENABLE_WEBRTC) && defined(GOOGLE_TV)
- if (media_stream_client_ && media_stream_client_->IsMediaStream(url)) {
- RTCVideoDecoderFactoryTv* factory = RenderThreadImpl::current()
- ->GetMediaStreamDependencyFactory()->decoder_factory_tv();
- // |media_stream_client| and |factory| outlives |web_media_player_android|.
- if (!factory->AcquireDemuxer() ||
- !web_media_player_android->InjectMediaStream(
- media_stream_client_,
- factory,
- base::Bind(
- base::IgnoreResult(&RTCVideoDecoderFactoryTv::ReleaseDemuxer),
- base::Unretained(factory)))) {
- LOG(ERROR) << "Failed to inject media stream.";
- return NULL;
- }
- }
-#endif // defined(ENABLE_WEBRTC) && defined(GOOGLE_TV)
- return web_media_player_android.release();
+ new RenderMediaLog());
}
#endif // defined(OS_ANDROID)
diff --git a/media/base/android/demuxer_stream_player_params.h b/media/base/android/demuxer_stream_player_params.h
index 4a3a04d..3407420 100644
--- a/media/base/android/demuxer_stream_player_params.h
+++ b/media/base/android/demuxer_stream_player_params.h
@@ -5,9 +5,6 @@
#ifndef MEDIA_BASE_ANDROID_DEMUXER_STREAM_PLAYER_PARAMS_H_
#define MEDIA_BASE_ANDROID_DEMUXER_STREAM_PLAYER_PARAMS_H_
-#if defined(GOOGLE_TV)
-#include <string>
-#endif // defined(GOOGLE_TV)
#include <vector>
#include "media/base/audio_decoder_config.h"
@@ -35,10 +32,6 @@ struct MEDIA_EXPORT DemuxerConfigs {
std::vector<uint8> video_extra_data;
int duration_ms;
-
-#if defined(GOOGLE_TV)
- std::string key_system;
-#endif // defined(GOOGLE_TV)
};
struct MEDIA_EXPORT AccessUnit {
diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
index 3a8fb33..7656c06 100644
--- a/media/base/media_switches.cc
+++ b/media/base/media_switches.cc
@@ -34,15 +34,6 @@ const char kDisableInfobarForProtectedMediaIdentifier[] =
const char kMediaDrmEnableNonCompositing[] = "mediadrm-enable-non-compositing";
#endif
-#if defined(GOOGLE_TV)
-// Use external video surface for video with more than or equal pixels to
-// specified value. For example, value of 0 will enable external video surface
-// for all videos, and value of 921600 (=1280*720) will enable external video
-// surface for 720p video and larger.
-const char kUseExternalVideoSurfaceThresholdInPixels[] =
- "use-external-video-surface-threshold-in-pixels";
-#endif
-
#if defined(OS_LINUX) || defined(OS_FREEBSD) || defined(OS_SOLARIS)
// The Alsa device to use when opening an audio input stream.
const char kAlsaInputDevice[] = "alsa-input-device";
diff --git a/media/base/media_switches.h b/media/base/media_switches.h
index 0c7fa24..9a974b4 100644
--- a/media/base/media_switches.h
+++ b/media/base/media_switches.h
@@ -29,10 +29,6 @@ MEDIA_EXPORT extern const char kDisableInfobarForProtectedMediaIdentifier[];
MEDIA_EXPORT extern const char kMediaDrmEnableNonCompositing[];
#endif
-#if defined(GOOGLE_TV)
-MEDIA_EXPORT extern const char kUseExternalVideoSurfaceThresholdInPixels[];
-#endif
-
#if defined(OS_LINUX) || defined(OS_FREEBSD) || defined(OS_SOLARIS)
MEDIA_EXPORT extern const char kAlsaInputDevice[];
MEDIA_EXPORT extern const char kAlsaOutputDevice[];
diff --git a/media/filters/source_buffer_stream.cc b/media/filters/source_buffer_stream.cc
index 6be1420..585d6af 100644
--- a/media/filters/source_buffer_stream.cc
+++ b/media/filters/source_buffer_stream.cc
@@ -322,19 +322,10 @@ static base::TimeDelta kSeekToStartFudgeRoom() {
return base::TimeDelta::FromMilliseconds(1000);
}
// The maximum amount of data in bytes the stream will keep in memory.
-#if defined(GOOGLE_TV)
-// In Google TV, set the size of the buffer to 1 min because of
-// the limited memory of the embedded system.
-// 2MB: approximately 1 minutes of 256Kbps content.
-// 30MB: approximately 1 minutes of 4Mbps content.
-static int kDefaultAudioMemoryLimit = 2 * 1024 * 1024;
-static int kDefaultVideoMemoryLimit = 30 * 1024 * 1024;
-#else
// 12MB: approximately 5 minutes of 320Kbps content.
// 150MB: approximately 5 minutes of 4Mbps content.
static int kDefaultAudioMemoryLimit = 12 * 1024 * 1024;
static int kDefaultVideoMemoryLimit = 150 * 1024 * 1024;
-#endif
namespace media {
diff --git a/media/media.gyp b/media/media.gyp
index 7618cb6..a983499 100644
--- a/media/media.gyp
+++ b/media/media.gyp
@@ -879,11 +879,6 @@
'base/simd/convert_yuv_to_rgb_x86.cc',
],
}],
- ['google_tv==1', {
- 'defines': [
- 'ENABLE_EAC3_PLAYBACK',
- ],
- }],
['OS!="linux" and OS!="win"', {
'sources!': [
'base/keyboard_event_counter.cc',
diff --git a/third_party/widevine/cdm/widevine_cdm.gyp b/third_party/widevine/cdm/widevine_cdm.gyp
index ab8b295..d094958 100644
--- a/third_party/widevine/cdm/widevine_cdm.gyp
+++ b/third_party/widevine/cdm/widevine_cdm.gyp
@@ -40,7 +40,7 @@
}],
],
}],
- [ 'OS == "android" and google_tv != 1', {
+ [ 'OS == "android"', {
'widevine_cdm_version_h_file%':
'android/widevine_cdm_version.h',
}],
diff --git a/webkit/common/user_agent/user_agent_util.cc b/webkit/common/user_agent/user_agent_util.cc
index 7655d69..35e2016 100644
--- a/webkit/common/user_agent/user_agent_util.cc
+++ b/webkit/common/user_agent/user_agent_util.cc
@@ -35,11 +35,7 @@ std::string GetWebKitRevision() {
#if defined(OS_ANDROID)
std::string GetAndroidDeviceName() {
- std::string android_device_name = base::SysInfo::GetDeviceName();
-#if defined(GOOGLE_TV)
- android_device_name += " TV";
-#endif
- return android_device_name;
+ return base::SysInfo::GetDeviceName();
}
#endif