Docs: Adding new diagram images
      Adding new images for TV and HAL components. Minor edits to adjust image float/flow.
      Adding new images for DRM. Minor edits to correct orphans.
      Adding changes to audio diagram

Bug: 18947698

Change-Id: I7bf808fc0bbd99a8fa77f333f933a88a4942bf80
diff --git a/src/devices/graphics/index.jd b/src/devices/graphics/index.jd
index 67e9d12..e86a42f 100644
--- a/src/devices/graphics/index.jd
+++ b/src/devices/graphics/index.jd
@@ -2,7 +2,7 @@
 @jd:body
 
 <!--
-    Copyright 2014 The Android Open Source Project
+    Copyright 2015 The Android Open Source Project
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -25,6 +25,8 @@
   </div>
 </div>
 
+<img style="float: right; margin: 0px 15px 15px 0px;" src="images/ape_fwk_hal_graphics.png" alt="Android Graphics HAL icon" width="175" />
+
 <p>The Android framework offers a variety of graphics rendering APIs for 2D and
 3D that interact with manufacturer implementations of graphics drivers, so it
 is important to have a good understanding of how those APIs work at a higher
@@ -65,7 +67,7 @@
 
 <p>Android implementers can test OpenGL ES functionality using the <a href="DeqpUserGuide.pdf">drawElements Quality Program</a>, also known as deqp.</p>
 
-<h2 id=android_graphics_components>Android graphics components</h2>
+<h2 id="android_graphics_components">Android graphics components</h2>
 
 <p>No matter what rendering API developers use, everything is rendered onto a
 "surface." The surface represents the producer side of a buffer queue that is
@@ -75,19 +77,19 @@
 
 <p>The following diagram shows how the key components work together:</p>
 
-<img src="images/graphics_surface.png" alt="image-rendering components">
+<img src="images/ape_fwk_graphics.png" alt="image-rendering components">
 
 <p class="img-caption"><strong>Figure 1.</strong> How surfaces are rendered</p>
 
 <p>The main components are described below:</p>
 
-<h3 id=image_stream_producers>Image Stream Producers</h3>
+<h3 id="image_stream_producers">Image Stream Producers</h3>
 
 <p>An image stream producer can be anything that produces graphic buffers for
 consumption. Examples include OpenGL ES, Canvas 2D, and mediaserver video
 decoders.</p>
 
-<h3 id=image_stream_consumers>Image Stream Consumers</h3>
+<h3 id="image_stream_consumers">Image Stream Consumers</h3>
 
 <p>The most common consumer of image streams is SurfaceFlinger, the system
 service that consumes the currently visible surfaces and composites them onto
@@ -99,7 +101,7 @@
 app consuming a camera preview image stream. Non-GL applications can be
 consumers too, for example the ImageReader class.</p>
 
-<h3 id=window_manager>Window Manager</h3>
+<h3 id="window_manager">Window Manager</h3>
 
 <p>The Android system service that controls a window, which is a container for
 views. A window is always backed by a surface. This service oversees
@@ -108,7 +110,7 @@
 The Window Manager sends all of the window metadata to SurfaceFlinger so
 SurfaceFlinger can use that data to composite surfaces on the display.</p>
 
-<h3 id=hardware_composer>Hardware Composer</h3>
+<h3 id="hardware_composer">Hardware Composer</h3>
 
 <p>The hardware abstraction for the display subsystem. SurfaceFlinger can
 delegate certain composition work to the Hardware Composer to offload work from
@@ -125,14 +127,14 @@
 <p>See the <a href="{@docRoot}devices/graphics.html#hardware_composer_hal">Hardware Composer
 HAL</a> section for more information.</p>
 
-<h3 id=gralloc>Gralloc</h3>
+<h3 id="gralloc">Gralloc</h3>
 
 <p>The graphics memory allocator is needed to allocate memory that is requested
 by image producers. See the <a
 href="{@docRoot}devices/graphics.html#gralloc">Gralloc HAL</a> section for more
 information.</p>
 
-<h2 id=data_flow>Data flow</h2>
+<h2 id="data_flow">Data flow</h2>
 
 <p>See the following diagram for a depiction of the Android graphics
 pipeline:</p>
@@ -146,7 +148,7 @@
 the home screen, status bar, and system UI. SurfaceFlinger is the compositor
 and Hardware Composer is the composer.</p>
 
-<h3 id=bufferqueue>BufferQueue</h3>
+<h3 id="bufferqueue">BufferQueue</h3>
 
 <p>BufferQueues provide the glue between the Android graphics components. These
 are a pair of queues that mediate the constant cycle of buffers from the
@@ -200,7 +202,7 @@
 <p>The Hardware Composer HAL conducts the other half of the work. This HAL acts
 as the central point for all Android graphics rendering.</p>
 
-<h3 id=synchronization_framework>Synchronization framework</h3>
+<h3 id="synchronization_framework">Synchronization framework</h3>
 
 <p>Since Android graphics offer no explicit parallelism, vendors have long
 implemented their own implicit synchronization within their own drivers. This