audio: Merge upstream stream tags
This commit is contained in:
parent
b141bfed60
commit
2a1f8a4da3
@ -1763,6 +1763,20 @@ gst_audio_decoder_sink_eventfunc (GstAudioDecoder * dec, GstEvent * event)
|
|||||||
gst_event_unref (event);
|
gst_event_unref (event);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case GST_EVENT_TAG:
|
||||||
|
{
|
||||||
|
GstTagList *tags;
|
||||||
|
|
||||||
|
gst_event_parse_tag (event, &tags);
|
||||||
|
|
||||||
|
if (gst_tag_list_get_scope (tags) == GST_TAG_SCOPE_STREAM) {
|
||||||
|
gst_audio_decoder_merge_tags (dec, tags, GST_TAG_MERGE_REPLACE);
|
||||||
|
gst_event_unref (event);
|
||||||
|
event = NULL;
|
||||||
|
ret = TRUE;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
if (!GST_EVENT_IS_SERIALIZED (event)) {
|
if (!GST_EVENT_IS_SERIALIZED (event)) {
|
||||||
ret =
|
ret =
|
||||||
|
@ -1499,28 +1499,28 @@ gst_audio_encoder_sink_event_default (GstAudioEncoder * enc, GstEvent * event)
|
|||||||
GstTagList *tags;
|
GstTagList *tags;
|
||||||
|
|
||||||
gst_event_parse_tag (event, &tags);
|
gst_event_parse_tag (event, &tags);
|
||||||
tags = gst_tag_list_copy (tags);
|
|
||||||
gst_event_unref (event);
|
|
||||||
|
|
||||||
/* FIXME: make generic based on GST_TAG_FLAG_ENCODED */
|
if (gst_tag_list_get_scope (tags) == GST_TAG_SCOPE_STREAM) {
|
||||||
gst_tag_list_remove_tag (tags, GST_TAG_CODEC);
|
tags = gst_tag_list_copy (tags);
|
||||||
gst_tag_list_remove_tag (tags, GST_TAG_AUDIO_CODEC);
|
|
||||||
gst_tag_list_remove_tag (tags, GST_TAG_VIDEO_CODEC);
|
|
||||||
gst_tag_list_remove_tag (tags, GST_TAG_SUBTITLE_CODEC);
|
|
||||||
gst_tag_list_remove_tag (tags, GST_TAG_CONTAINER_FORMAT);
|
|
||||||
gst_tag_list_remove_tag (tags, GST_TAG_BITRATE);
|
|
||||||
gst_tag_list_remove_tag (tags, GST_TAG_NOMINAL_BITRATE);
|
|
||||||
gst_tag_list_remove_tag (tags, GST_TAG_MAXIMUM_BITRATE);
|
|
||||||
gst_tag_list_remove_tag (tags, GST_TAG_MINIMUM_BITRATE);
|
|
||||||
gst_tag_list_remove_tag (tags, GST_TAG_ENCODER);
|
|
||||||
gst_tag_list_remove_tag (tags, GST_TAG_ENCODER_VERSION);
|
|
||||||
event = gst_event_new_tag (tags);
|
|
||||||
|
|
||||||
GST_AUDIO_ENCODER_STREAM_LOCK (enc);
|
/* FIXME: make generic based on GST_TAG_FLAG_ENCODED */
|
||||||
enc->priv->pending_events =
|
gst_tag_list_remove_tag (tags, GST_TAG_CODEC);
|
||||||
g_list_append (enc->priv->pending_events, event);
|
gst_tag_list_remove_tag (tags, GST_TAG_AUDIO_CODEC);
|
||||||
GST_AUDIO_ENCODER_STREAM_UNLOCK (enc);
|
gst_tag_list_remove_tag (tags, GST_TAG_VIDEO_CODEC);
|
||||||
res = TRUE;
|
gst_tag_list_remove_tag (tags, GST_TAG_SUBTITLE_CODEC);
|
||||||
|
gst_tag_list_remove_tag (tags, GST_TAG_CONTAINER_FORMAT);
|
||||||
|
gst_tag_list_remove_tag (tags, GST_TAG_BITRATE);
|
||||||
|
gst_tag_list_remove_tag (tags, GST_TAG_NOMINAL_BITRATE);
|
||||||
|
gst_tag_list_remove_tag (tags, GST_TAG_MAXIMUM_BITRATE);
|
||||||
|
gst_tag_list_remove_tag (tags, GST_TAG_MINIMUM_BITRATE);
|
||||||
|
gst_tag_list_remove_tag (tags, GST_TAG_ENCODER);
|
||||||
|
gst_tag_list_remove_tag (tags, GST_TAG_ENCODER_VERSION);
|
||||||
|
|
||||||
|
gst_audio_encoder_merge_tags (enc, tags, GST_TAG_MERGE_REPLACE);
|
||||||
|
gst_event_unref (event);
|
||||||
|
event = NULL;
|
||||||
|
res = TRUE;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user