Fix for 3369917 Audio skips at clip edit points

Change-Id: Iba66585cc2e679475d8db529d6113586b58e626e
diff --git a/libvideoeditor/lvpp/DummyAudioSource.cpp b/libvideoeditor/lvpp/DummyAudioSource.cpp
index 04f8dc9..70f5944 100755
--- a/libvideoeditor/lvpp/DummyAudioSource.cpp
+++ b/libvideoeditor/lvpp/DummyAudioSource.cpp
@@ -97,7 +97,12 @@
     LOG2("DummyAudioSource::~DummyAudioSource");
 }
 
-
+void DummyAudioSource::setDuration (int64_t audioDurationUs) {
+    Mutex::Autolock autoLock(mLock);
+    LOG2("SetDuration %lld", mAudioDurationUs);
+    mAudioDurationUs += audioDurationUs;
+    LOG2("SetDuration %lld", mAudioDurationUs);
+}
 
 status_t DummyAudioSource::start(MetaData *params) {
     status_t err = OK;
@@ -143,7 +148,7 @@
     meta->setInt32(kKeySampleRate, mSamplingRate);
     meta->setInt64(kKeyDuration, mFrameDurationUs);
 
-     meta->setCString(kKeyDecoderComponent, "DummyAudioSource");
+    meta->setCString(kKeyDecoderComponent, "DummyAudioSource");
 
     return meta;
 }
@@ -159,11 +164,14 @@
     if (options && options->getSeekTo(&seekTimeUs, &mode)) {
         CHECK(seekTimeUs >= 0);
         mTimeStampUs = seekTimeUs;
-     }
-
-    if (mTimeStampUs >= mAudioDurationUs) {
-        *out = NULL;
-        return ERROR_END_OF_STREAM;
+    }
+    {
+        Mutex::Autolock autoLock(mLock);
+        if (mTimeStampUs >= mAudioDurationUs) {
+            *out = NULL;
+            LOGI("EOS reached");
+            return ERROR_END_OF_STREAM;
+        }
     }
 
     err = mBufferGroup->acquire_buffer(&buffer);