omxvideodec: Set ENDOFFRAME flag for the end of frames
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Tue, 19 Mar 2013 11:55:09 +0000 (12:55 +0100)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Tue, 19 Mar 2013 11:55:09 +0000 (12:55 +0100)
omx/gstomxvideodec.c

index 12f7634..b4ebab7 100644 (file)
@@ -2322,6 +2322,7 @@ gst_omx_video_dec_handle_frame (GstVideoDecoder * decoder,
       }
 
       buf->omx_buf->nFlags |= OMX_BUFFERFLAG_CODECCONFIG;
+      buf->omx_buf->nFlags |= OMX_BUFFERFLAG_ENDOFFRAME;
       buf->omx_buf->nFilledLen = gst_buffer_get_size (codec_data);;
       gst_buffer_extract (codec_data, 0,
           buf->omx_buf->pBuffer + buf->omx_buf->nOffset,
@@ -2384,10 +2385,13 @@ gst_omx_video_dec_handle_frame (GstVideoDecoder * decoder,
     /* TODO: Set flags
      *   - OMX_BUFFERFLAG_DECODEONLY for buffers that are outside
      *     the segment
-     *   - OMX_BUFFERFLAG_ENDOFFRAME for parsed input
      */
 
     offset += buf->omx_buf->nFilledLen;
+
+    if (offset == size)
+      buf->omx_buf->nFlags |= OMX_BUFFERFLAG_ENDOFFRAME;
+
     self->started = TRUE;
     err = gst_omx_port_release_buffer (port, buf);
     if (err != OMX_ErrorNone)