x264enc: Handle codec/encoder tags
authorThiago Santos <thiago.sousa.santos@collabora.co.uk>
Tue, 4 Jan 2011 13:32:05 +0000 (10:32 -0300)
committerThiago Santos <thiago.sousa.santos@collabora.co.uk>
Tue, 4 Jan 2011 13:37:26 +0000 (10:37 -0300)
Make x264enc drop video-codec and codec tags and replace
encoder/encoder-version with x264 and its build number

Fixes #621465

ext/x264/gstx264enc.c

index a12978b..1d94e8e 100644 (file)
@@ -1495,6 +1495,18 @@ gst_x264_enc_sink_event (GstPad * pad, GstEvent * event)
     case GST_EVENT_EOS:
       gst_x264_enc_flush_frames (encoder, TRUE);
       break;
+    case GST_EVENT_TAG:{
+        GstTagList *tags = NULL;
+
+        gst_event_parse_tag (event, &tags);
+        /* drop codec/video-codec and replace encoder/encoder-version */
+        gst_tag_list_remove_tag (tags, GST_TAG_VIDEO_CODEC);
+        gst_tag_list_remove_tag (tags, GST_TAG_CODEC);
+        gst_tag_list_add (tags, GST_TAG_MERGE_REPLACE, GST_TAG_ENCODER, "x264",
+            GST_TAG_ENCODER_VERSION, X264_BUILD, NULL);
+        /* push is done below */
+      }
+      break;
       /* no flushing if flush received,
        * buffers in encoder are considered (in the) past */
     case GST_EVENT_CUSTOM_DOWNSTREAM:{