diff --git a/ext/theora/gsttheoradec.c b/ext/theora/gsttheoradec.c index a5468a65aa..44353501cb 100644 --- a/ext/theora/gsttheoradec.c +++ b/ext/theora/gsttheoradec.c @@ -244,10 +244,6 @@ theora_dec_stop (GstVideoDecoder * decoder) th_decode_free (dec->decoder); dec->decoder = NULL; gst_theora_dec_reset (dec); - if (dec->tags) { - gst_tag_list_free (dec->tags); - dec->tags = NULL; - } if (dec->input_state) gst_video_codec_state_unref (dec->input_state); if (dec->output_state) @@ -380,9 +376,10 @@ theora_handle_comment_packet (GstTheoraDec * dec, ogg_packet * packet) GST_TAG_NOMINAL_BITRATE, dec->info.target_bitrate, NULL); } - if (dec->tags) - gst_tag_list_free (dec->tags); - dec->tags = list; + gst_video_decoder_merge_tags (GST_VIDEO_DECODER (dec), + list, GST_TAG_MERGE_REPLACE); + + gst_tag_list_unref (list); return GST_FLOW_OK; } @@ -508,14 +505,6 @@ theora_handle_type_packet (GstTheoraDec * dec) dec->have_header = TRUE; - /* FIXME : Put this on the next outgoing frame */ - /* FIXME : */ - if (dec->tags) { - gst_pad_push_event (GST_VIDEO_DECODER (dec)->srcpad, - gst_event_new_tag (dec->tags)); - dec->tags = NULL; - } - return ret; /* ERRORS */ diff --git a/ext/theora/gsttheoradec.h b/ext/theora/gsttheoradec.h index be95801438..50e757a23d 100644 --- a/ext/theora/gsttheoradec.h +++ b/ext/theora/gsttheoradec.h @@ -76,8 +76,6 @@ struct _GstTheoraDec gint telemetry_qi; gint telemetry_bits; - GstTagList *tags; - gboolean can_crop; };