Merge "Some free chunk available notification is missing, which messes up the number of outstanding output buffer count. As a result, the media server either hangs if omx encoder node thinks it is still waiting for some buffers to be returned from the omx component, or silently crashes if the omx encoder node frees the buffer prematurely"
diff --git a/nodes/pvomxencnode/src/pvmf_omx_enc_node.cpp b/nodes/pvomxencnode/src/pvmf_omx_enc_node.cpp
index a0bf09c..61aa7b0 100644
--- a/nodes/pvomxencnode/src/pvmf_omx_enc_node.cpp
+++ b/nodes/pvomxencnode/src/pvmf_omx_enc_node.cpp
@@ -1206,6 +1206,8 @@
             PVLOGGER_LOGMSG(PVLOGMSG_INST_LLDBG, iLogger, PVLOGMSG_STACK_TRACE,
                             (0, "PVMFOMXEncNode-%s::Run(): Flush pending:  Changing Component State Executing->Idle or Pause->Idle", iNodeTypeId));
 
+            if (iOutPort) iOutPort->ClearMsgQueues();
+
             err = OMX_SendCommand(iOMXEncoder, OMX_CommandStateSet, OMX_StateIdle, NULL);
             if (err != OMX_ErrorNone)
             {
diff --git a/oscl/oscl/osclmemory/src/oscl_mem_mempool.cpp b/oscl/oscl/osclmemory/src/oscl_mem_mempool.cpp
index efea048..b86769c 100644
--- a/oscl/oscl/osclmemory/src/oscl_mem_mempool.cpp
+++ b/oscl/oscl/osclmemory/src/oscl_mem_mempool.cpp
@@ -16,6 +16,7 @@
  * -------------------------------------------------------------------
  */
 #include "oscl_mem_mempool.h"
+#include <utils/Log.h>
 
 
 /**
@@ -154,6 +155,10 @@
             iObserver->freechunkavailable(iNextAvailableContextData);
         }
     }
+    else if (iObserver && iCheckNextAvailableFreeChunk)
+    {
+        LOGW("We may have lost some free chunk %p available notification for memory pool %p with chunk size %d", ptmp, mptmp, iChunkSizeMemAligned);
+    }
 
     // Decrement the refcount since deallocating succeeded
     removeRef();