summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/libav/gstavaudenc.c17
-rw-r--r--ext/libav/gstavvidenc.c17
2 files changed, 34 insertions, 0 deletions
diff --git a/ext/libav/gstavaudenc.c b/ext/libav/gstavaudenc.c
index f783292..64d7011 100644
--- a/ext/libav/gstavaudenc.c
+++ b/ext/libav/gstavaudenc.c
@@ -386,6 +386,23 @@ gst_ffmpegaudenc_set_format (GstAudioEncoder * encoder, GstAudioInfo * info)
gst_audio_encoder_set_frame_max (GST_AUDIO_ENCODER (ffmpegaudenc), 0);
}
+ /* Store some tags */
+ {
+ GstTagList *tags = gst_tag_list_new_empty ();
+ const gchar *codec;
+
+ gst_tag_list_add (tags, GST_TAG_MERGE_REPLACE, GST_TAG_NOMINAL_BITRATE,
+ ffmpegaudenc->context->bit_rate, NULL);
+
+ if ((codec =
+ gst_ffmpeg_get_codecid_longname (ffmpegaudenc->context->codec_id)))
+ gst_tag_list_add (tags, GST_TAG_MERGE_REPLACE, GST_TAG_AUDIO_CODEC, codec,
+ NULL);
+
+ gst_audio_encoder_merge_tags (encoder, tags, GST_TAG_MERGE_REPLACE);
+ gst_tag_list_unref (tags);
+ }
+
/* success! */
ffmpegaudenc->opened = TRUE;
diff --git a/ext/libav/gstavvidenc.c b/ext/libav/gstavvidenc.c
index a434261..f95215c 100644
--- a/ext/libav/gstavvidenc.c
+++ b/ext/libav/gstavvidenc.c
@@ -476,6 +476,23 @@ gst_ffmpegvidenc_set_format (GstVideoEncoder * encoder,
output_format = gst_video_encoder_set_output_state (encoder, icaps, state);
gst_video_codec_state_unref (output_format);
+ /* Store some tags */
+ {
+ GstTagList *tags = gst_tag_list_new_empty ();
+ const gchar *codec;
+
+ gst_tag_list_add (tags, GST_TAG_MERGE_REPLACE, GST_TAG_NOMINAL_BITRATE,
+ ffmpegenc->context->bit_rate, NULL);
+
+ if ((codec =
+ gst_ffmpeg_get_codecid_longname (ffmpegenc->context->codec_id)))
+ gst_tag_list_add (tags, GST_TAG_MERGE_REPLACE, GST_TAG_VIDEO_CODEC, codec,
+ NULL);
+
+ gst_video_encoder_merge_tags (encoder, tags, GST_TAG_MERGE_REPLACE);
+ gst_tag_list_unref (tags);
+ }
+
/* success! */
ffmpegenc->opened = TRUE;