st/omx: Set end-of-frame flag on bitstream output buffers
authorMark Thompson <sw@jkqxz.net>
Sun, 5 Mar 2017 23:18:11 +0000 (23:18 +0000)
committerChristian König <christian.koenig@amd.com>
Mon, 6 Mar 2017 13:05:43 +0000 (14:05 +0100)
Since all output buffers are whole frames, this should always be set.

Technically, setting this flag is is optional (see OpenMAX IL section
3.1.2.7.1), but some clients assume that it will be used and
therefore buffer indefinitely thinking that all output buffers are
fragments of the first frame when it is not set.

Signed-off-by: Mark Thompson <sw@jkqxz.net>
Reviewed-by: Christian König <christian.koenig@amd.com>
src/gallium/state_trackers/omx/vid_enc.c

index b2970a522f3095ad485470928aca743d1dbeb849..b58063e6e6591aea0fe3951b16f2ed82eead75c4 100644 (file)
@@ -1271,4 +1271,7 @@ static void vid_enc_BufferEncoded(OMX_COMPONENTTYPE *comp, OMX_BUFFERHEADERTYPE*
 
    output->nOffset = 0;
    output->nFilledLen = size; /* mark buffer as full */
+
+   /* all output buffers contain exactly one frame */
+   output->nFlags = OMX_BUFFERFLAG_ENDOFFRAME;
 }