Merge "Submit codec specific data automatically" into jb-dev
diff --git a/media/libstagefright/MediaExtractor.cpp b/media/libstagefright/MediaExtractor.cpp
index c581525..9ab6611 100644
--- a/media/libstagefright/MediaExtractor.cpp
+++ b/media/libstagefright/MediaExtractor.cpp
@@ -110,7 +110,8 @@
     } else if (!strcasecmp(mime, MEDIA_MIMETYPE_CONTAINER_MPEG2TS)) {
         ret = new MPEG2TSExtractor(source);
     } else if (!strcasecmp(mime, MEDIA_MIMETYPE_CONTAINER_WVM)) {
-        ret = new WVMExtractor(source);
+        // Return now.  WVExtractor should not have the DrmFlag set in the block below.
+        return new WVMExtractor(source);
     } else if (!strcasecmp(mime, MEDIA_MIMETYPE_AUDIO_AAC_ADTS)) {
         ret = new AACExtractor(source, meta);
     } else if (!strcasecmp(mime, MEDIA_MIMETYPE_CONTAINER_MPEG2PS)) {
diff --git a/media/libstagefright/codecs/m4v_h263/dec/SoftMPEG4.cpp b/media/libstagefright/codecs/m4v_h263/dec/SoftMPEG4.cpp
index a34a0ca..d527fde 100644
--- a/media/libstagefright/codecs/m4v_h263/dec/SoftMPEG4.cpp
+++ b/media/libstagefright/codecs/m4v_h263/dec/SoftMPEG4.cpp
@@ -420,12 +420,11 @@
             useExtTimestamp ? (inHeader->nTimeStamp + 500) / 1000 : 0xFFFFFFFF;
 
         int32_t bufferSize = inHeader->nFilledLen;
+        int32_t tmp = bufferSize;
 
         // The PV decoder is lying to us, sometimes it'll claim to only have
         // consumed a subset of the buffer when it clearly consumed all of it.
         // ignore whatever it says...
-        int32_t tmp = bufferSize;
-
         if (PVDecodeVideoFrame(
                     mHandle, &bitstream, &timestamp, &tmp,
                     &useExtTimestamp,
@@ -444,9 +443,8 @@
         // decoder deals in ms, OMX in us.
         outHeader->nTimeStamp = timestamp * 1000;
 
-        CHECK_LE(bufferSize, inHeader->nFilledLen);
-        inHeader->nOffset += inHeader->nFilledLen - bufferSize;
-        inHeader->nFilledLen = bufferSize;
+        inHeader->nOffset += bufferSize;
+        inHeader->nFilledLen = 0;
 
         if (inHeader->nFilledLen == 0) {
             inInfo->mOwnedByUs = false;