Use HIDL's memory for shared memory and add wrapper interfaces for
IGraphicBufferProducer.

Test: Compiles
Bug: 31399200
Change-Id: I17a3b1c8f20e9c11474761d120edd2e75353cc6d
diff --git a/media/omx/1.0/IOmx.hal b/media/omx/1.0/IOmx.hal
index e9f0b76..acb1aae 100644
--- a/media/omx/1.0/IOmx.hal
+++ b/media/omx/1.0/IOmx.hal
@@ -20,6 +20,8 @@
 
 import IOmxNode;
 import IOmxObserver;
+import IOmxBufferProducer;
+import IGraphicBufferSource;
 
 /**
  * Ref: frameworks/av/include/media/IOMX.h: IOMX
@@ -32,15 +34,15 @@
      * Information for an IOmxNode component.
      */
     struct ComponentInfo {
-        string mName;       //< Name of the component.
-        vec<string> mRoles; //< Roles of the component.
+        string mName;
+        vec<string> mRoles;
     };
 
     /**
      * List available components.
      *
-     * @param[out] status will be the status of the call.
-     * @param[out] nodeList will be a list of ComponentInfo.
+     * @param[out] status The status of the call.
+     * @param[out] nodeList The list of ComponentInfo.
      */
     listNodes(
         ) generates (
@@ -51,11 +53,11 @@
     /**
      * Allocate an IOmxNode instance with the specified component name.
      *
-     * @param[in] name is the name of the component to create.
-     * @param[in] observer is an observer object that will receive messages from
+     * @param[in] name The name of the component to create.
+     * @param[in] observer An observer object that will receive messages from
      * the created instance.
-     * @param[out] status will be the status of the call.
-     * @param[out] omxNode will be the allocated instance of IOmxNode.
+     * @param[out] status The status of the call.
+     * @param[out] omxNode The allocated instance of IOmxNode.
      */
     allocateNode(
             string name,
@@ -65,5 +67,17 @@
             IOmxNode omxNode
         );
 
+    /**
+     * Create an input surface for recording.
+     *
+     * @param[out] producer The associated producer end of the buffer queue.
+     * @param[out] source The associated `IGraphicBufferSource`.
+     */
+    createInputSurface(
+        ) generates (
+            Status status,
+            IOmxBufferProducer producer,
+            IGraphicBufferSource source
+        );
 };