omxh264enc: Add support for resending headers after a forced-keyframe
authorJonas Larsson <jonas@hallerud.se>
Tue, 29 Nov 2011 11:21:32 +0000 (12:21 +0100)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Tue, 29 Nov 2011 11:21:32 +0000 (12:21 +0100)
omx/gstomxh264enc.c

index af1ad6c..95e8f2e 100644 (file)
@@ -341,7 +341,17 @@ gst_omx_h264_enc_handle_output_frame (GstOMXVideoEnc * self, GstOMXPort * port,
     if (buf->omx_buf->nFilledLen >= 4 &&
         GST_READ_UINT32_BE (buf->omx_buf->pBuffer +
             buf->omx_buf->nOffset) == 0x00000001) {
+      GstBuffer *hdrs;
+
+      GST_DEBUG_OBJECT (self, "got codecconfig in byte-stream format");
       buf->omx_buf->nFlags &= ~OMX_BUFFERFLAG_CODECCONFIG;
+
+      hdrs = gst_buffer_new_and_alloc (buf->omx_buf->nFilledLen);
+      memcpy (GST_BUFFER_DATA (hdrs),
+          buf->omx_buf->pBuffer + buf->omx_buf->nOffset,
+          buf->omx_buf->nFilledLen);
+      gst_base_video_encoder_set_headers (GST_BASE_VIDEO_ENCODER (self), hdrs);
+      gst_buffer_unref (hdrs);
     }
   }