av1enc: Propagate flags from encoder to GstBuffer
authorOlivier Crête <olivier.crete@collabora.com>
Thu, 26 Jul 2018 14:48:34 +0000 (10:48 -0400)
committerOlivier Crête <olivier.crete@collabora.com>
Thu, 26 Jul 2018 14:48:34 +0000 (10:48 -0400)
ext/aom/gstav1enc.c

index 7c3f0b3..efdb1ff 100644 (file)
@@ -342,6 +342,12 @@ gst_av1_enc_process (GstAV1Enc * encoder)
       frame->output_buffer =
           gst_buffer_new_wrapped (g_memdup (pkt->data.frame.buf,
               pkt->data.frame.sz), pkt->data.frame.sz);
+
+      if ((pkt->data.frame.flags & AOM_FRAME_IS_DROPPABLE) != 0)
+        GST_BUFFER_FLAG_SET (frame->output_buffer, GST_BUFFER_FLAG_DROPPABLE);
+      if ((pkt->data.frame.flags & AOM_FRAME_IS_INVISIBLE) != 0)
+        GST_BUFFER_FLAG_SET (frame->output_buffer, GST_BUFFER_FLAG_DECODE_ONLY);
+
       ret = gst_video_encoder_finish_frame (video_encoder, frame);
       if (ret != GST_FLOW_OK)
         break;