From de568c48966bdb1fca5e499c79403c3884dd44c2 Mon Sep 17 00:00:00 2001 From: Jan Schmidt Date: Sun, 27 Sep 2015 00:24:17 +1000 Subject: [PATCH] Revert "dvdspu: cache overlay composition" This reverts commit aabb8a1a68372f750c63b9b6586e18e829745774. --- gst/dvdspu/gstdvdspu.c | 35 ++++++++--------------------------- gst/dvdspu/gstdvdspu.h | 1 - 2 files changed, 8 insertions(+), 28 deletions(-) diff --git a/gst/dvdspu/gstdvdspu.c b/gst/dvdspu/gstdvdspu.c index cf0a63b..2bf5a91 100644 --- a/gst/dvdspu/gstdvdspu.c +++ b/gst/dvdspu/gstdvdspu.c @@ -180,15 +180,6 @@ gst_dvd_spu_init (GstDVDSpu * dvdspu) } static void -gst_dvd_spu_reset_composition (GstDVDSpu * dvdspu) -{ - if (dvdspu->composition) { - gst_video_overlay_composition_unref (dvdspu->composition); - dvdspu->composition = NULL; - } -} - -static void gst_dvd_spu_clear (GstDVDSpu * dvdspu) { gst_dvd_spu_flush_spu_info (dvdspu, FALSE); @@ -278,8 +269,6 @@ gst_dvd_spu_flush_spu_info (GstDVDSpu * dvdspu, gboolean keep_events) default: break; } - - gst_dvd_spu_reset_composition (dvdspu); } static gboolean @@ -810,27 +799,26 @@ gstspu_render (GstDVDSpu * dvdspu, GstBuffer * buf) GstVideoOverlayComposition *composition; GstVideoFrame frame; - if (!dvdspu->composition) { - dvdspu->composition = gstspu_render_composition (dvdspu); - if (!dvdspu->composition) - return; - } - - composition = dvdspu->composition; + composition = gstspu_render_composition (dvdspu); + if (!composition) + return; if (dvdspu->attach_compo_to_buffer) { gst_buffer_add_video_overlay_composition_meta (buf, composition); - return; + goto done; } if (!gst_video_frame_map (&frame, &dvdspu->spu_state.info, buf, GST_MAP_READWRITE)) { GST_WARNING_OBJECT (dvdspu, "failed to map video frame for blending"); - return; + goto done; } gst_video_overlay_composition_blend (composition, &frame); gst_video_frame_unmap (&frame); + +done: + gst_video_overlay_composition_unref (composition); } /* With SPU LOCK */ @@ -899,9 +887,6 @@ gst_dvd_spu_handle_dvd_event (GstDVDSpu * dvdspu, GstEvent * event) break; } - if (hl_change) - gst_dvd_spu_reset_composition (dvdspu); - if (hl_change && (dvdspu->spu_state.flags & SPU_STATE_STILL_FRAME)) { gst_dvd_spu_redraw_still (dvdspu, FALSE); } @@ -955,8 +940,6 @@ gst_dvd_spu_advance_spu (GstDVDSpu * dvdspu, GstClockTime new_ts) GST_TIME_ARGS (dvdspu->video_seg.position), packet->buf ? "buffer" : "event"); - gst_dvd_spu_reset_composition (dvdspu); - if (packet->buf) { switch (dvdspu->spu_input_type) { case SPU_INPUT_TYPE_VOBSUB: @@ -1068,8 +1051,6 @@ gst_dvd_spu_negotiate (GstDVDSpu * dvdspu) GstCaps *caps; gboolean attach = FALSE; - gst_dvd_spu_reset_composition (dvdspu); - GST_DEBUG_OBJECT (dvdspu, "performing negotiation"); caps = gst_pad_get_current_caps (dvdspu->srcpad); diff --git a/gst/dvdspu/gstdvdspu.h b/gst/dvdspu/gstdvdspu.h index 6fa700c..0512082 100644 --- a/gst/dvdspu/gstdvdspu.h +++ b/gst/dvdspu/gstdvdspu.h @@ -115,7 +115,6 @@ struct _GstDVDSpu { /* Overlay composition */ gboolean attach_compo_to_buffer; - GstVideoOverlayComposition *composition; }; struct _GstDVDSpuClass { -- 2.7.4