diff options
author | Jan Schmidt <jan@centricular.com> | 2015-07-30 01:24:54 +1000 |
---|---|---|
committer | Jan Schmidt <jan@centricular.com> | 2015-08-24 00:01:40 +1000 |
commit | 30a406591ae2f6fd5daec95232b062d102ca532e (patch) | |
tree | a911dca50939f88b68b7d9cf8136153346047b6f | |
parent | 6e590fe498d792c32a73af2cd94c849c0dbd0a58 (diff) | |
download | gst-libav-30a406591ae2f6fd5daec95232b062d102ca532e.tar.gz |
avvid/audenc: Set some tags in the output for downstream's info
Add the codec name and bitrate into the output for informational
purposes. Bitrate in particular is now used by flvmux to set
videodatarate and audiodatarate in the resulting stream
-rw-r--r-- | ext/libav/gstavaudenc.c | 17 | ||||
-rw-r--r-- | ext/libav/gstavvidenc.c | 17 |
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; |