Merge changes from topic "NNAPI v1.3-aosp"

* changes:
  Increase neuralnetworks compatibility to 1.3
  Modify NNAPI VTS tests to run on version 1.3
  Copy VTS tests from v1.2 to v1.3
  Create NNAPI HAL v1.3 and add TENSOR_QUANT8_ASYMM_SIGNED OperandType
diff --git a/boot/1.1/default/Android.bp b/boot/1.1/default/Android.bp
index dca5c26..abf1bf9 100644
--- a/boot/1.1/default/Android.bp
+++ b/boot/1.1/default/Android.bp
@@ -1,5 +1,6 @@
 cc_library_shared {
     name: "android.hardware.boot@1.1-impl",
+    stem: "android.hardware.boot@1.0-impl-1.1",
     defaults: [
         "hidl_defaults",
         "libboot_control_defaults",
@@ -31,6 +32,10 @@
     init_rc: ["android.hardware.boot@1.1-service.rc"],
     srcs: ["service.cpp"],
 
+    vintf_fragments: [
+        "android.hardware.boot@1.1.xml",
+    ],
+
     shared_libs: [
         "liblog",
         "libhardware",
diff --git a/boot/1.1/default/android.hardware.boot@1.1.xml b/boot/1.1/default/android.hardware.boot@1.1.xml
new file mode 100644
index 0000000..83d5d2e
--- /dev/null
+++ b/boot/1.1/default/android.hardware.boot@1.1.xml
@@ -0,0 +1,7 @@
+<manifest version="1.0" type="device">
+    <hal format="hidl">
+        <name>android.hardware.boot</name>
+        <transport>hwbinder</transport>
+        <fqname>@1.1::IBootControl/default</fqname>
+    </hal>
+</manifest>
diff --git a/boot/1.1/default/service.cpp b/boot/1.1/default/service.cpp
index b24b464..93eaeda 100644
--- a/boot/1.1/default/service.cpp
+++ b/boot/1.1/default/service.cpp
@@ -15,11 +15,11 @@
  */
 #define LOG_TAG "android.hardware.boot@1.1-service"
 
-#include <android/hardware/boot/1.1/IBootControl.h>
+#include <android/hardware/boot/1.0/IBootControl.h>
 #include <hidl/LegacySupport.h>
 
 using android::hardware::defaultPassthroughServiceImplementation;
-using ::android::hardware::boot::V1_1::IBootControl;
+using ::android::hardware::boot::V1_0::IBootControl;
 
 int main(int /* argc */, char* /* argv */[]) {
     return defaultPassthroughServiceImplementation<IBootControl>();
diff --git a/tv/tuner/1.0/default/Demux.cpp b/tv/tuner/1.0/default/Demux.cpp
index 15e8aaf..3a750c2 100644
--- a/tv/tuner/1.0/default/Demux.cpp
+++ b/tv/tuner/1.0/default/Demux.cpp
@@ -479,7 +479,8 @@
             if (prefix == 0x000001) {
                 // TODO handle mulptiple Pes filters
                 mPesSizeLeft =
-                        (mFilterOutputs[filterId][i + 7] << 8) | mFilterOutputs[filterId][i + 8];
+                        (mFilterOutputs[filterId][i + 8] << 8) | mFilterOutputs[filterId][i + 9];
+                mPesSizeLeft += 6;
                 ALOGD("[Demux] pes data length %d", mPesSizeLeft);
             } else {
                 continue;
@@ -489,7 +490,7 @@
         int endPoint = min(184, mPesSizeLeft);
         // append data and check size
         vector<uint8_t>::const_iterator first = mFilterOutputs[filterId].begin() + i + 4;
-        vector<uint8_t>::const_iterator last = mFilterOutputs[filterId].begin() + i + 3 + endPoint;
+        vector<uint8_t>::const_iterator last = mFilterOutputs[filterId].begin() + i + 4 + endPoint;
         mPesOutput.insert(mPesOutput.end(), first, last);
         // size does not match then continue
         mPesSizeLeft -= endPoint;
@@ -800,7 +801,7 @@
 void Demux::maySendFilterStatusCallback(uint32_t filterId) {
     std::lock_guard<std::mutex> lock(mFilterStatusLock);
     int availableToRead = mFilterMQs[filterId]->availableToRead();
-    int availableToWrite = mInputMQ->availableToWrite();
+    int availableToWrite = mFilterMQs[filterId]->availableToWrite();
     int fmqSize = mFilterMQs[filterId]->getQuantumCount();
 
     DemuxFilterStatus newStatus =
@@ -885,7 +886,6 @@
                     byteBuffer[index] = static_cast<uint8_t>(buffer[index]);
                 }
                 startTsFilter(byteBuffer);
-                inputData.seekg(packetSize, inputData.cur);
             }
             startFilterDispatcher();
             sleep(1);