diff --git a/server/site_tests/cheets_CTS_P/control.arm.CtsMediaTestCases.DecodeAccuracyTest.testGLViewDecodeAccuracy b/server/site_tests/cheets_CTS_P/control.arm.CtsMediaTestCases.DecodeAccuracyTest.testGLViewDecodeAccuracy
new file mode 100644
index 0000000..763a4e5
--- /dev/null
+++ b/server/site_tests/cheets_CTS_P/control.arm.CtsMediaTestCases.DecodeAccuracyTest.testGLViewDecodeAccuracy
@@ -0,0 +1,33 @@
+# Copyright 2018 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+AUTHOR = 'ARC++ Team'
+NAME = 'cheets_CTS_P.arm.CtsMediaTestCases.DecodeAccuracyTest.testGLViewDecodeAccuracy'
+ATTRIBUTES = 'suite:cts_P'
+DEPENDENCIES = 'arc, board:grunt'
+JOB_RETRIES = 2
+TEST_TYPE = 'server'
+TIME = 'LONG'
+MAX_RESULT_SIZE_KB = 512000
+DOC = 'Run module CtsMediaTestCases of the Android Compatibility Test Suite (CTS) using arm ABI in the ARC++ container.'
+
+def run_CTS(machine):
+    host_list = [hosts.create_host(machine)]
+    job.run_test(
+        'cheets_CTS_P',
+        hosts=host_list,
+        iterations=1,
+        needs_push_media=True,
+        tag='arm.CtsMediaTestCases.DecodeAccuracyTest.testGLViewDecodeAccuracy',
+        test_name='cheets_CTS_P.arm.CtsMediaTestCases.DecodeAccuracyTest.testGLViewDecodeAccuracy',
+        run_template=['run', 'commandAndExit', 'cts',
+                      '--include-filter', 'CtsMediaTestCases android.media.cts.DecodeAccuracyTest#testGLViewDecodeAccuracy',
+                      '--logcat-on-failure'],
+        retry_template=['run', 'commandAndExit', 'retry', '--retry', '{session_id}'],
+        target_module='CtsMediaTestCases',
+        target_plan=None,
+        bundle='arm',
+        timeout=57600)
+
+parallel_simple(run_CTS, machines)
diff --git a/server/site_tests/cheets_CTS_P/control.arm.CtsMediaTestCases.DecodeAccuracyTest.testGLViewLargerHeightDecodeAccuracy b/server/site_tests/cheets_CTS_P/control.arm.CtsMediaTestCases.DecodeAccuracyTest.testGLViewLargerHeightDecodeAccuracy
new file mode 100644
index 0000000..fd7482b
--- /dev/null
+++ b/server/site_tests/cheets_CTS_P/control.arm.CtsMediaTestCases.DecodeAccuracyTest.testGLViewLargerHeightDecodeAccuracy
@@ -0,0 +1,33 @@
+# Copyright 2018 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+AUTHOR = 'ARC++ Team'
+NAME = 'cheets_CTS_P.arm.CtsMediaTestCases.DecodeAccuracyTest.testGLViewLargerHeightDecodeAccuracy'
+ATTRIBUTES = 'suite:cts_P'
+DEPENDENCIES = 'arc, board:grunt'
+JOB_RETRIES = 2
+TEST_TYPE = 'server'
+TIME = 'LONG'
+MAX_RESULT_SIZE_KB = 512000
+DOC = 'Run module CtsMediaTestCases of the Android Compatibility Test Suite (CTS) using arm ABI in the ARC++ container.'
+
+def run_CTS(machine):
+    host_list = [hosts.create_host(machine)]
+    job.run_test(
+        'cheets_CTS_P',
+        hosts=host_list,
+        iterations=1,
+        needs_push_media=True,
+        tag='arm.CtsMediaTestCases.DecodeAccuracyTest.testGLViewLargerHeightDecodeAccuracy',
+        test_name='cheets_CTS_P.arm.CtsMediaTestCases.DecodeAccuracyTest.testGLViewLargerHeightDecodeAccuracy',
+        run_template=['run', 'commandAndExit', 'cts',
+                      '--include-filter', 'CtsMediaTestCases android.media.cts.DecodeAccuracyTest#testGLViewLargerHeightDecodeAccuracy',
+                      '--logcat-on-failure'],
+        retry_template=['run', 'commandAndExit', 'retry', '--retry', '{session_id}'],
+        target_module='CtsMediaTestCases',
+        target_plan=None,
+        bundle='arm',
+        timeout=57600)
+
+parallel_simple(run_CTS, machines)
diff --git a/server/site_tests/cheets_CTS_P/control.arm.CtsMediaTestCases.DecodeAccuracyTest.testGLViewLargerWidthDecodeAccuracy b/server/site_tests/cheets_CTS_P/control.arm.CtsMediaTestCases.DecodeAccuracyTest.testGLViewLargerWidthDecodeAccuracy
new file mode 100644
index 0000000..5cd515c
--- /dev/null
+++ b/server/site_tests/cheets_CTS_P/control.arm.CtsMediaTestCases.DecodeAccuracyTest.testGLViewLargerWidthDecodeAccuracy
@@ -0,0 +1,33 @@
+# Copyright 2018 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+AUTHOR = 'ARC++ Team'
+NAME = 'cheets_CTS_P.arm.CtsMediaTestCases.DecodeAccuracyTest.testGLViewLargerWidthDecodeAccuracy'
+ATTRIBUTES = 'suite:cts_P'
+DEPENDENCIES = 'arc, board:grunt'
+JOB_RETRIES = 2
+TEST_TYPE = 'server'
+TIME = 'LONG'
+MAX_RESULT_SIZE_KB = 512000
+DOC = 'Run module CtsMediaTestCases of the Android Compatibility Test Suite (CTS) using arm ABI in the ARC++ container.'
+
+def run_CTS(machine):
+    host_list = [hosts.create_host(machine)]
+    job.run_test(
+        'cheets_CTS_P',
+        hosts=host_list,
+        iterations=1,
+        needs_push_media=True,
+        tag='arm.CtsMediaTestCases.DecodeAccuracyTest.testGLViewLargerWidthDecodeAccuracy',
+        test_name='cheets_CTS_P.arm.CtsMediaTestCases.DecodeAccuracyTest.testGLViewLargerWidthDecodeAccuracy',
+        run_template=['run', 'commandAndExit', 'cts',
+                      '--include-filter', 'CtsMediaTestCases android.media.cts.DecodeAccuracyTest#testGLViewLargerWidthDecodeAccuracy',
+                      '--logcat-on-failure'],
+        retry_template=['run', 'commandAndExit', 'retry', '--retry', '{session_id}'],
+        target_module='CtsMediaTestCases',
+        target_plan=None,
+        bundle='arm',
+        timeout=57600)
+
+parallel_simple(run_CTS, machines)
diff --git a/server/site_tests/cheets_CTS_P/control.arm.CtsMediaTestCases.DecodeAccuracyTest.testSurfaceViewLargerHeightDecodeAccuracy b/server/site_tests/cheets_CTS_P/control.arm.CtsMediaTestCases.DecodeAccuracyTest.testSurfaceViewLargerHeightDecodeAccuracy
new file mode 100644
index 0000000..400b278
--- /dev/null
+++ b/server/site_tests/cheets_CTS_P/control.arm.CtsMediaTestCases.DecodeAccuracyTest.testSurfaceViewLargerHeightDecodeAccuracy
@@ -0,0 +1,33 @@
+# Copyright 2018 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+AUTHOR = 'ARC++ Team'
+NAME = 'cheets_CTS_P.arm.CtsMediaTestCases.DecodeAccuracyTest.testSurfaceViewLargerHeightDecodeAccuracy'
+ATTRIBUTES = 'suite:cts_P'
+DEPENDENCIES = 'arc, board:grunt'
+JOB_RETRIES = 2
+TEST_TYPE = 'server'
+TIME = 'LONG'
+MAX_RESULT_SIZE_KB = 512000
+DOC = 'Run module CtsMediaTestCases of the Android Compatibility Test Suite (CTS) using arm ABI in the ARC++ container.'
+
+def run_CTS(machine):
+    host_list = [hosts.create_host(machine)]
+    job.run_test(
+        'cheets_CTS_P',
+        hosts=host_list,
+        iterations=1,
+        needs_push_media=True,
+        tag='arm.CtsMediaTestCases.DecodeAccuracyTest.testSurfaceViewLargerHeightDecodeAccuracy',
+        test_name='cheets_CTS_P.arm.CtsMediaTestCases.DecodeAccuracyTest.testSurfaceViewLargerHeightDecodeAccuracy',
+        run_template=['run', 'commandAndExit', 'cts',
+                      '--include-filter', 'CtsMediaTestCases android.media.cts.DecodeAccuracyTest#testSurfaceViewLargerHeightDecodeAccuracy',
+                      '--logcat-on-failure'],
+        retry_template=['run', 'commandAndExit', 'retry', '--retry', '{session_id}'],
+        target_module='CtsMediaTestCases',
+        target_plan=None,
+        bundle='arm',
+        timeout=57600)
+
+parallel_simple(run_CTS, machines)
diff --git a/server/site_tests/cheets_CTS_P/control.arm.CtsMediaTestCases.DecodeAccuracyTest.testSurfaceViewLargerWidthDecodeAccuracy b/server/site_tests/cheets_CTS_P/control.arm.CtsMediaTestCases.DecodeAccuracyTest.testSurfaceViewLargerWidthDecodeAccuracy
new file mode 100644
index 0000000..2df87b8
--- /dev/null
+++ b/server/site_tests/cheets_CTS_P/control.arm.CtsMediaTestCases.DecodeAccuracyTest.testSurfaceViewLargerWidthDecodeAccuracy
@@ -0,0 +1,33 @@
+# Copyright 2018 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+AUTHOR = 'ARC++ Team'
+NAME = 'cheets_CTS_P.arm.CtsMediaTestCases.DecodeAccuracyTest.testSurfaceViewLargerWidthDecodeAccuracy'
+ATTRIBUTES = 'suite:cts_P'
+DEPENDENCIES = 'arc, board:grunt'
+JOB_RETRIES = 2
+TEST_TYPE = 'server'
+TIME = 'LONG'
+MAX_RESULT_SIZE_KB = 512000
+DOC = 'Run module CtsMediaTestCases of the Android Compatibility Test Suite (CTS) using arm ABI in the ARC++ container.'
+
+def run_CTS(machine):
+    host_list = [hosts.create_host(machine)]
+    job.run_test(
+        'cheets_CTS_P',
+        hosts=host_list,
+        iterations=1,
+        needs_push_media=True,
+        tag='arm.CtsMediaTestCases.DecodeAccuracyTest.testSurfaceViewLargerWidthDecodeAccuracy',
+        test_name='cheets_CTS_P.arm.CtsMediaTestCases.DecodeAccuracyTest.testSurfaceViewLargerWidthDecodeAccuracy',
+        run_template=['run', 'commandAndExit', 'cts',
+                      '--include-filter', 'CtsMediaTestCases android.media.cts.DecodeAccuracyTest#testSurfaceViewLargerWidthDecodeAccuracy',
+                      '--logcat-on-failure'],
+        retry_template=['run', 'commandAndExit', 'retry', '--retry', '{session_id}'],
+        target_module='CtsMediaTestCases',
+        target_plan=None,
+        bundle='arm',
+        timeout=57600)
+
+parallel_simple(run_CTS, machines)
diff --git a/server/site_tests/cheets_CTS_P/control.arm.CtsMediaTestCases.DecodeAccuracyTest.testSurfaceViewVideoDecodeAccuracy b/server/site_tests/cheets_CTS_P/control.arm.CtsMediaTestCases.DecodeAccuracyTest.testSurfaceViewVideoDecodeAccuracy
new file mode 100644
index 0000000..74a0a64
--- /dev/null
+++ b/server/site_tests/cheets_CTS_P/control.arm.CtsMediaTestCases.DecodeAccuracyTest.testSurfaceViewVideoDecodeAccuracy
@@ -0,0 +1,33 @@
+# Copyright 2018 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+AUTHOR = 'ARC++ Team'
+NAME = 'cheets_CTS_P.arm.CtsMediaTestCases.DecodeAccuracyTest.testSurfaceViewVideoDecodeAccuracy'
+ATTRIBUTES = 'suite:cts_P'
+DEPENDENCIES = 'arc, board:grunt'
+JOB_RETRIES = 2
+TEST_TYPE = 'server'
+TIME = 'LONG'
+MAX_RESULT_SIZE_KB = 512000
+DOC = 'Run module CtsMediaTestCases of the Android Compatibility Test Suite (CTS) using arm ABI in the ARC++ container.'
+
+def run_CTS(machine):
+    host_list = [hosts.create_host(machine)]
+    job.run_test(
+        'cheets_CTS_P',
+        hosts=host_list,
+        iterations=1,
+        needs_push_media=True,
+        tag='arm.CtsMediaTestCases.DecodeAccuracyTest.testSurfaceViewVideoDecodeAccuracy',
+        test_name='cheets_CTS_P.arm.CtsMediaTestCases.DecodeAccuracyTest.testSurfaceViewVideoDecodeAccuracy',
+        run_template=['run', 'commandAndExit', 'cts',
+                      '--include-filter', 'CtsMediaTestCases android.media.cts.DecodeAccuracyTest#testSurfaceViewVideoDecodeAccuracy',
+                      '--logcat-on-failure'],
+        retry_template=['run', 'commandAndExit', 'retry', '--retry', '{session_id}'],
+        target_module='CtsMediaTestCases',
+        target_plan=None,
+        bundle='arm',
+        timeout=57600)
+
+parallel_simple(run_CTS, machines)
diff --git a/server/site_tests/cheets_CTS_P/control.arm.CtsMediaTestCases.ExcludeDecodeAccuracyTest b/server/site_tests/cheets_CTS_P/control.arm.CtsMediaTestCases.ExcludeDecodeAccuracyTest
new file mode 100644
index 0000000..cc1e09a
--- /dev/null
+++ b/server/site_tests/cheets_CTS_P/control.arm.CtsMediaTestCases.ExcludeDecodeAccuracyTest
@@ -0,0 +1,39 @@
+# Copyright 2018 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+AUTHOR = 'ARC++ Team'
+NAME = 'cheets_CTS_P.arm.CtsMediaTestCases.ExcludeDecodeAccuracyTest'
+ATTRIBUTES = 'suite:cts_P'
+DEPENDENCIES = 'arc, board:grunt'
+JOB_RETRIES = 2
+TEST_TYPE = 'server'
+TIME = 'LONG'
+MAX_RESULT_SIZE_KB = 512000
+DOC = 'Run module CtsMediaTestCases of the Android Compatibility Test Suite (CTS) using arm ABI in the ARC++ container.'
+
+def run_CTS(machine):
+    host_list = [hosts.create_host(machine)]
+    job.run_test(
+        'cheets_CTS_P',
+        hosts=host_list,
+        iterations=1,
+        needs_push_media=True,
+        tag='arm.CtsMediaTestCases.ExcludeDecodeAccuracyTest',
+        test_name='cheets_CTS_P.arm.CtsMediaTestCases.ExcludeDecodeAccuracyTest',
+        run_template=['run', 'commandAndExit', 'cts',
+                      '--include-filter', 'CtsMediaTestCases',
+                      '--exclude-filter', 'CtsMediaTestCases android.media.cts.DecodeAccuracyTest#testSurfaceViewVideoDecodeAccuracy',
+                      '--exclude-filter', 'CtsMediaTestCases android.media.cts.DecodeAccuracyTest#testSurfaceViewLargerHeightDecodeAccuracy',
+                      '--exclude-filter', 'CtsMediaTestCases android.media.cts.DecodeAccuracyTest#testSurfaceViewLargerWidthDecodeAccuracy',
+                      '--exclude-filter', 'CtsMediaTestCases android.media.cts.DecodeAccuracyTest#testGLViewDecodeAccuracy',
+                      '--exclude-filter', 'CtsMediaTestCases android.media.cts.DecodeAccuracyTest#testGLViewLargerHeightDecodeAccuracy',
+                      '--exclude-filter', 'CtsMediaTestCases android.media.cts.DecodeAccuracyTest#testGLViewLargerWidthDecodeAccuracy',
+                      '--logcat-on-failure'],
+        retry_template=['run', 'commandAndExit', 'retry', '--retry', '{session_id}'],
+        target_module='CtsMediaTestCases',
+        target_plan=None,
+        bundle='arm',
+        timeout=57600)
+
+parallel_simple(run_CTS, machines)
diff --git a/server/site_tests/cheets_CTS_P/control.x86.CtsMediaTestCases.DecodeAccuracyTest.testGLViewDecodeAccuracy b/server/site_tests/cheets_CTS_P/control.x86.CtsMediaTestCases.DecodeAccuracyTest.testGLViewDecodeAccuracy
new file mode 100644
index 0000000..60bddad
--- /dev/null
+++ b/server/site_tests/cheets_CTS_P/control.x86.CtsMediaTestCases.DecodeAccuracyTest.testGLViewDecodeAccuracy
@@ -0,0 +1,33 @@
+# Copyright 2018 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+AUTHOR = 'ARC++ Team'
+NAME = 'cheets_CTS_P.x86.CtsMediaTestCases.DecodeAccuracyTest.testGLViewDecodeAccuracy'
+ATTRIBUTES = 'suite:cts_P'
+DEPENDENCIES = 'arc, cts_abi_x86, board:grunt'
+JOB_RETRIES = 2
+TEST_TYPE = 'server'
+TIME = 'LONG'
+MAX_RESULT_SIZE_KB = 512000
+DOC = 'Run module CtsMediaTestCases of the Android Compatibility Test Suite (CTS) using x86 ABI in the ARC++ container.'
+
+def run_CTS(machine):
+    host_list = [hosts.create_host(machine)]
+    job.run_test(
+        'cheets_CTS_P',
+        hosts=host_list,
+        iterations=1,
+        needs_push_media=True,
+        tag='x86.CtsMediaTestCases.DecodeAccuracyTest.testGLViewDecodeAccuracy',
+        test_name='cheets_CTS_P.x86.CtsMediaTestCases.DecodeAccuracyTest.testGLViewDecodeAccuracy',
+        run_template=['run', 'commandAndExit', 'cts',
+                      '--include-filter', 'CtsMediaTestCases android.media.cts.DecodeAccuracyTest#testGLViewDecodeAccuracy',
+                      '--logcat-on-failure'],
+        retry_template=['run', 'commandAndExit', 'retry', '--retry', '{session_id}'],
+        target_module='CtsMediaTestCases',
+        target_plan=None,
+        bundle='x86',
+        timeout=57600)
+
+parallel_simple(run_CTS, machines)
diff --git a/server/site_tests/cheets_CTS_P/control.x86.CtsMediaTestCases.DecodeAccuracyTest.testGLViewLargerHeightDecodeAccuracy b/server/site_tests/cheets_CTS_P/control.x86.CtsMediaTestCases.DecodeAccuracyTest.testGLViewLargerHeightDecodeAccuracy
new file mode 100644
index 0000000..1fc0631
--- /dev/null
+++ b/server/site_tests/cheets_CTS_P/control.x86.CtsMediaTestCases.DecodeAccuracyTest.testGLViewLargerHeightDecodeAccuracy
@@ -0,0 +1,33 @@
+# Copyright 2018 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+AUTHOR = 'ARC++ Team'
+NAME = 'cheets_CTS_P.x86.CtsMediaTestCases.DecodeAccuracyTest.testGLViewLargerHeightDecodeAccuracy'
+ATTRIBUTES = 'suite:cts_P'
+DEPENDENCIES = 'arc, cts_abi_x86, board:grunt'
+JOB_RETRIES = 2
+TEST_TYPE = 'server'
+TIME = 'LONG'
+MAX_RESULT_SIZE_KB = 512000
+DOC = 'Run module CtsMediaTestCases of the Android Compatibility Test Suite (CTS) using x86 ABI in the ARC++ container.'
+
+def run_CTS(machine):
+    host_list = [hosts.create_host(machine)]
+    job.run_test(
+        'cheets_CTS_P',
+        hosts=host_list,
+        iterations=1,
+        needs_push_media=True,
+        tag='x86.CtsMediaTestCases.DecodeAccuracyTest.testGLViewLargerHeightDecodeAccuracy',
+        test_name='cheets_CTS_P.x86.CtsMediaTestCases.DecodeAccuracyTest.testGLViewLargerHeightDecodeAccuracy',
+        run_template=['run', 'commandAndExit', 'cts',
+                      '--include-filter', 'CtsMediaTestCases android.media.cts.DecodeAccuracyTest#testGLViewLargerHeightDecodeAccuracy',
+                      '--logcat-on-failure'],
+        retry_template=['run', 'commandAndExit', 'retry', '--retry', '{session_id}'],
+        target_module='CtsMediaTestCases',
+        target_plan=None,
+        bundle='x86',
+        timeout=57600)
+
+parallel_simple(run_CTS, machines)
diff --git a/server/site_tests/cheets_CTS_P/control.x86.CtsMediaTestCases.DecodeAccuracyTest.testGLViewLargerWidthDecodeAccuracy b/server/site_tests/cheets_CTS_P/control.x86.CtsMediaTestCases.DecodeAccuracyTest.testGLViewLargerWidthDecodeAccuracy
new file mode 100644
index 0000000..f1c10e1
--- /dev/null
+++ b/server/site_tests/cheets_CTS_P/control.x86.CtsMediaTestCases.DecodeAccuracyTest.testGLViewLargerWidthDecodeAccuracy
@@ -0,0 +1,33 @@
+# Copyright 2018 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+AUTHOR = 'ARC++ Team'
+NAME = 'cheets_CTS_P.x86.CtsMediaTestCases.DecodeAccuracyTest.testGLViewLargerWidthDecodeAccuracy'
+ATTRIBUTES = 'suite:cts_P'
+DEPENDENCIES = 'arc, cts_abi_x86, board:grunt'
+JOB_RETRIES = 2
+TEST_TYPE = 'server'
+TIME = 'LONG'
+MAX_RESULT_SIZE_KB = 512000
+DOC = 'Run module CtsMediaTestCases of the Android Compatibility Test Suite (CTS) using x86 ABI in the ARC++ container.'
+
+def run_CTS(machine):
+    host_list = [hosts.create_host(machine)]
+    job.run_test(
+        'cheets_CTS_P',
+        hosts=host_list,
+        iterations=1,
+        needs_push_media=True,
+        tag='x86.CtsMediaTestCases.DecodeAccuracyTest.testGLViewLargerWidthDecodeAccuracy',
+        test_name='cheets_CTS_P.x86.CtsMediaTestCases.DecodeAccuracyTest.testGLViewLargerWidthDecodeAccuracy',
+        run_template=['run', 'commandAndExit', 'cts',
+                      '--include-filter', 'CtsMediaTestCases android.media.cts.DecodeAccuracyTest#testGLViewLargerWidthDecodeAccuracy',
+                      '--logcat-on-failure'],
+        retry_template=['run', 'commandAndExit', 'retry', '--retry', '{session_id}'],
+        target_module='CtsMediaTestCases',
+        target_plan=None,
+        bundle='x86',
+        timeout=57600)
+
+parallel_simple(run_CTS, machines)
diff --git a/server/site_tests/cheets_CTS_P/control.x86.CtsMediaTestCases.DecodeAccuracyTest.testSurfaceViewLargerHeightDecodeAccuracy b/server/site_tests/cheets_CTS_P/control.x86.CtsMediaTestCases.DecodeAccuracyTest.testSurfaceViewLargerHeightDecodeAccuracy
new file mode 100644
index 0000000..924f232
--- /dev/null
+++ b/server/site_tests/cheets_CTS_P/control.x86.CtsMediaTestCases.DecodeAccuracyTest.testSurfaceViewLargerHeightDecodeAccuracy
@@ -0,0 +1,33 @@
+# Copyright 2018 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+AUTHOR = 'ARC++ Team'
+NAME = 'cheets_CTS_P.x86.CtsMediaTestCases.DecodeAccuracyTest.testSurfaceViewLargerHeightDecodeAccuracy'
+ATTRIBUTES = 'suite:cts_P'
+DEPENDENCIES = 'arc, cts_abi_x86, board:grunt'
+JOB_RETRIES = 2
+TEST_TYPE = 'server'
+TIME = 'LONG'
+MAX_RESULT_SIZE_KB = 512000
+DOC = 'Run module CtsMediaTestCases of the Android Compatibility Test Suite (CTS) using x86 ABI in the ARC++ container.'
+
+def run_CTS(machine):
+    host_list = [hosts.create_host(machine)]
+    job.run_test(
+        'cheets_CTS_P',
+        hosts=host_list,
+        iterations=1,
+        needs_push_media=True,
+        tag='x86.CtsMediaTestCases.DecodeAccuracyTest.testSurfaceViewLargerHeightDecodeAccuracy',
+        test_name='cheets_CTS_P.x86.CtsMediaTestCases.DecodeAccuracyTest.testSurfaceViewLargerHeightDecodeAccuracy',
+        run_template=['run', 'commandAndExit', 'cts',
+                      '--include-filter', 'CtsMediaTestCases android.media.cts.DecodeAccuracyTest#testSurfaceViewLargerHeightDecodeAccuracy',
+                      '--logcat-on-failure'],
+        retry_template=['run', 'commandAndExit', 'retry', '--retry', '{session_id}'],
+        target_module='CtsMediaTestCases',
+        target_plan=None,
+        bundle='x86',
+        timeout=57600)
+
+parallel_simple(run_CTS, machines)
diff --git a/server/site_tests/cheets_CTS_P/control.x86.CtsMediaTestCases.DecodeAccuracyTest.testSurfaceViewLargerWidthDecodeAccuracy b/server/site_tests/cheets_CTS_P/control.x86.CtsMediaTestCases.DecodeAccuracyTest.testSurfaceViewLargerWidthDecodeAccuracy
new file mode 100644
index 0000000..60ebd7b
--- /dev/null
+++ b/server/site_tests/cheets_CTS_P/control.x86.CtsMediaTestCases.DecodeAccuracyTest.testSurfaceViewLargerWidthDecodeAccuracy
@@ -0,0 +1,33 @@
+# Copyright 2018 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+AUTHOR = 'ARC++ Team'
+NAME = 'cheets_CTS_P.x86.CtsMediaTestCases.DecodeAccuracyTest.testSurfaceViewLargerWidthDecodeAccuracy'
+ATTRIBUTES = 'suite:cts_P'
+DEPENDENCIES = 'arc, cts_abi_x86, board:grunt'
+JOB_RETRIES = 2
+TEST_TYPE = 'server'
+TIME = 'LONG'
+MAX_RESULT_SIZE_KB = 512000
+DOC = 'Run module CtsMediaTestCases of the Android Compatibility Test Suite (CTS) using x86 ABI in the ARC++ container.'
+
+def run_CTS(machine):
+    host_list = [hosts.create_host(machine)]
+    job.run_test(
+        'cheets_CTS_P',
+        hosts=host_list,
+        iterations=1,
+        needs_push_media=True,
+        tag='x86.CtsMediaTestCases.DecodeAccuracyTest.testSurfaceViewLargerWidthDecodeAccuracy',
+        test_name='cheets_CTS_P.x86.CtsMediaTestCases.DecodeAccuracyTest.testSurfaceViewLargerWidthDecodeAccuracy',
+        run_template=['run', 'commandAndExit', 'cts',
+                      '--include-filter', 'CtsMediaTestCases android.media.cts.DecodeAccuracyTest#testSurfaceViewLargerWidthDecodeAccuracy',
+                      '--logcat-on-failure'],
+        retry_template=['run', 'commandAndExit', 'retry', '--retry', '{session_id}'],
+        target_module='CtsMediaTestCases',
+        target_plan=None,
+        bundle='x86',
+        timeout=57600)
+
+parallel_simple(run_CTS, machines)
diff --git a/server/site_tests/cheets_CTS_P/control.x86.CtsMediaTestCases.DecodeAccuracyTest.testSurfaceViewVideoDecodeAccuracy b/server/site_tests/cheets_CTS_P/control.x86.CtsMediaTestCases.DecodeAccuracyTest.testSurfaceViewVideoDecodeAccuracy
new file mode 100644
index 0000000..569afff
--- /dev/null
+++ b/server/site_tests/cheets_CTS_P/control.x86.CtsMediaTestCases.DecodeAccuracyTest.testSurfaceViewVideoDecodeAccuracy
@@ -0,0 +1,33 @@
+# Copyright 2018 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+AUTHOR = 'ARC++ Team'
+NAME = 'cheets_CTS_P.x86.CtsMediaTestCases.DecodeAccuracyTest.testSurfaceViewVideoDecodeAccuracy'
+ATTRIBUTES = 'suite:cts_P'
+DEPENDENCIES = 'arc, cts_abi_x86, board:grunt'
+JOB_RETRIES = 2
+TEST_TYPE = 'server'
+TIME = 'LONG'
+MAX_RESULT_SIZE_KB = 512000
+DOC = 'Run module CtsMediaTestCases of the Android Compatibility Test Suite (CTS) using x86 ABI in the ARC++ container.'
+
+def run_CTS(machine):
+    host_list = [hosts.create_host(machine)]
+    job.run_test(
+        'cheets_CTS_P',
+        hosts=host_list,
+        iterations=1,
+        needs_push_media=True,
+        tag='x86.CtsMediaTestCases.DecodeAccuracyTest.testSurfaceViewVideoDecodeAccuracy',
+        test_name='cheets_CTS_P.x86.CtsMediaTestCases.DecodeAccuracyTest.testSurfaceViewVideoDecodeAccuracy',
+        run_template=['run', 'commandAndExit', 'cts',
+                      '--include-filter', 'CtsMediaTestCases android.media.cts.DecodeAccuracyTest#testSurfaceViewVideoDecodeAccuracy',
+                      '--logcat-on-failure'],
+        retry_template=['run', 'commandAndExit', 'retry', '--retry', '{session_id}'],
+        target_module='CtsMediaTestCases',
+        target_plan=None,
+        bundle='x86',
+        timeout=57600)
+
+parallel_simple(run_CTS, machines)
diff --git a/server/site_tests/cheets_CTS_P/control.x86.CtsMediaTestCases.ExcludeDecodeAccuracyTest b/server/site_tests/cheets_CTS_P/control.x86.CtsMediaTestCases.ExcludeDecodeAccuracyTest
new file mode 100644
index 0000000..f88e7d4
--- /dev/null
+++ b/server/site_tests/cheets_CTS_P/control.x86.CtsMediaTestCases.ExcludeDecodeAccuracyTest
@@ -0,0 +1,39 @@
+# Copyright 2018 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+AUTHOR = 'ARC++ Team'
+NAME = 'cheets_CTS_P.x86.CtsMediaTestCases.ExcludeDecodeAccuracyTest'
+ATTRIBUTES = 'suite:cts_P'
+DEPENDENCIES = 'arc, cts_abi_x86, board:grunt'
+JOB_RETRIES = 2
+TEST_TYPE = 'server'
+TIME = 'LONG'
+MAX_RESULT_SIZE_KB = 512000
+DOC = 'Run module CtsMediaTestCases of the Android Compatibility Test Suite (CTS) using x86 ABI in the ARC++ container.'
+
+def run_CTS(machine):
+    host_list = [hosts.create_host(machine)]
+    job.run_test(
+        'cheets_CTS_P',
+        hosts=host_list,
+        iterations=1,
+        needs_push_media=True,
+        tag='x86.CtsMediaTestCases.ExcludeDecodeAccuracyTest',
+        test_name='cheets_CTS_P.x86.CtsMediaTestCases.ExcludeDecodeAccuracyTest',
+        run_template=['run', 'commandAndExit', 'cts',
+                      '--include-filter', 'CtsMediaTestCases',
+                      '--exclude-filter', 'CtsMediaTestCases android.media.cts.DecodeAccuracyTest#testSurfaceViewVideoDecodeAccuracy',
+                      '--exclude-filter', 'CtsMediaTestCases android.media.cts.DecodeAccuracyTest#testSurfaceViewLargerHeightDecodeAccuracy',
+                      '--exclude-filter', 'CtsMediaTestCases android.media.cts.DecodeAccuracyTest#testSurfaceViewLargerWidthDecodeAccuracy',
+                      '--exclude-filter', 'CtsMediaTestCases android.media.cts.DecodeAccuracyTest#testGLViewDecodeAccuracy',
+                      '--exclude-filter', 'CtsMediaTestCases android.media.cts.DecodeAccuracyTest#testGLViewLargerHeightDecodeAccuracy',
+                      '--exclude-filter', 'CtsMediaTestCases android.media.cts.DecodeAccuracyTest#testGLViewLargerWidthDecodeAccuracy',
+                      '--logcat-on-failure'],
+        retry_template=['run', 'commandAndExit', 'retry', '--retry', '{session_id}'],
+        target_module='CtsMediaTestCases',
+        target_plan=None,
+        bundle='x86',
+        timeout=57600)
+
+parallel_simple(run_CTS, machines)
