Browse Source

sf-omx-il: Fix decoder cannot exit on ffmpeg case

Signed-off-by: sw.multimedia <sw.multimedia@starfivetech.com>
sw.multimedia 2 years ago
parent
commit
9b38f5cd17

+ 0 - 6
soft_3rdpart/omx-il/component/video/dec/SF_OMX_Vdec_decoder.c

@@ -90,12 +90,6 @@ static void OnEventArrived(Component com, unsigned long event, void *data, void
     {
         struct timeval tv;
 
-        /*Before each execution of getomxbufferbyaddr, check whether there are still members in the queue*/
-        PortContainerExternal *output = (PortContainerExternal*)pSfVideoImplement->functions->ComponentPortPeekData(&((ComponentImpl *)com)->sinkPort);
-        if (output == NULL) {
-            return;
-        }
-
         pOMXBuffer = GetOMXBufferByAddr(pSfOMXComponent, (OMX_U8 *)pPortContainerExternal->pBuffer);
         if (pOMXBuffer == NULL)
         {

+ 4 - 2
soft_3rdpart/wave511/code/sample_v2/component_decoder/component_dec_renderer.c

@@ -517,8 +517,10 @@ static BOOL ExecuteRenderer(ComponentImpl* com, PortContainer* in, PortContainer
         }
         output->nFilledLen = sizeYuv;
         output->nFlags = srcData->decInfo.indexFrameDisplay;
-        ComponentPortGetData(&com->sinkPort);
-        ComponentNotifyListeners(com, COMPONENT_EVENT_DEC_FILL_BUFFER_DONE, (void *)output);
+        if(ComponentPortGetData(&com->sinkPort))
+        {
+            ComponentNotifyListeners(com, COMPONENT_EVENT_DEC_FILL_BUFFER_DONE, (void *)output);
+        }
         (void)DisplayFrame;
         (void)decConfig;
         (void)mapType;