Merge "SurfaceMediaSource: a few fixes / cleanups" into jb-mr1-dev
diff --git a/media/libeffects/lvm/lib/Bundle/src/LVM_Init.c b/media/libeffects/lvm/lib/Bundle/src/LVM_Init.c
index 20370b7..dd34fb5 100644
--- a/media/libeffects/lvm/lib/Bundle/src/LVM_Init.c
+++ b/media/libeffects/lvm/lib/Bundle/src/LVM_Init.c
@@ -557,7 +557,9 @@
      */
     pInstance->Params.OperatingMode    = LVM_MODE_OFF;
     pInstance->Params.SampleRate       = LVM_FS_8000;
-    pInstance->Params.SourceFormat     = LVM_MONO;
+//  FIXME: Workaround to avoid reset of headroom parameters on first call to LVM_Process.
+//    pInstance->Params.SourceFormat     = LVM_MONO;
+    pInstance->Params.SourceFormat     = LVM_STEREO;
     pInstance->Params.SpeakerType      = LVM_HEADPHONES;
     pInstance->Params.VC_EffectLevel   = 0;
     pInstance->Params.VC_Balance       = 0;
diff --git a/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp b/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
index 1a45e35..32ee89e 100644
--- a/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
+++ b/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
@@ -698,10 +698,10 @@
     /* Set the headroom parameters */
     HeadroomBandDef[0].Limit_Low          = 20;
     HeadroomBandDef[0].Limit_High         = 4999;
-    HeadroomBandDef[0].Headroom_Offset    = 3;
+    HeadroomBandDef[0].Headroom_Offset    = 0;
     HeadroomBandDef[1].Limit_Low          = 5000;
     HeadroomBandDef[1].Limit_High         = 24000;
-    HeadroomBandDef[1].Headroom_Offset    = 4;
+    HeadroomBandDef[1].Headroom_Offset    = 0;
     HeadroomParams.pHeadroomDefinition    = &HeadroomBandDef[0];
     HeadroomParams.Headroom_OperatingMode = LVM_HEADROOM_ON;
     HeadroomParams.NHeadroomBands         = 2;
diff --git a/media/libstagefright/NuMediaExtractor.cpp b/media/libstagefright/NuMediaExtractor.cpp
index bf833dc..404fa94 100644
--- a/media/libstagefright/NuMediaExtractor.cpp
+++ b/media/libstagefright/NuMediaExtractor.cpp
@@ -126,6 +126,7 @@
 }
 
 status_t NuMediaExtractor::setDataSource(int fd, off64_t offset, off64_t size) {
+
     Mutex::Autolock autoLock(mLock);
 
     if (mImpl != NULL) {
@@ -134,7 +135,22 @@
 
     sp<FileSource> fileSource = new FileSource(dup(fd), offset, size);
 
-    return setDataSource(fileSource);
+    status_t err = fileSource->initCheck();
+    if (err != OK) {
+        return err;
+    }
+
+    mImpl = MediaExtractor::Create(fileSource);
+
+    if (mImpl == NULL) {
+        return ERROR_UNSUPPORTED;
+    }
+
+    mDataSource = fileSource;
+
+    updateDurationAndBitrate();
+
+    return OK;
 }
 
 status_t NuMediaExtractor::setDataSource(const sp<DataSource> &source) {