diff options
author | Sebastian Dröge <slomo@circular-chaos.org> | 2008-12-01 15:24:37 +0000 |
---|---|---|
committer | Sebastian Dröge <slomo@circular-chaos.org> | 2008-12-01 15:24:37 +0000 |
commit | 65009ed81b1434e17c94928da2ca57f164e429aa (patch) | |
tree | 82e649e04c43220640a2edc4161f5dd5368a3473 /gst/mxf/mxfaes-bwf.c | |
parent | cffc0f920726841aa7c41bd418402adae5812488 (diff) | |
download | gstreamer-plugins-bad-65009ed81b1434e17c94928da2ca57f164e429aa.tar.gz |
gst/mxf/: Add the codec name, and if possible the avg bitrate, to the pad's taglist.
Original commit message from CVS:
* gst/mxf/mxfaes-bwf.c: (mxf_bwf_create_caps):
* gst/mxf/mxfalaw.c: (mxf_alaw_create_caps):
* gst/mxf/mxfdemux.c:
(gst_mxf_demux_handle_generic_container_essence_element):
* gst/mxf/mxfdv-dif.c: (mxf_dv_dif_create_caps):
* gst/mxf/mxfjpeg2000.c: (mxf_jpeg2000_create_caps):
* gst/mxf/mxfmpeg.c: (mxf_mpeg_es_create_caps),
(mxf_mpeg_create_caps):
Add the codec name, and if possible the avg bitrate, to the pad's taglist.
Diffstat (limited to 'gst/mxf/mxfaes-bwf.c')
-rw-r--r-- | gst/mxf/mxfaes-bwf.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/gst/mxf/mxfaes-bwf.c b/gst/mxf/mxfaes-bwf.c index ba2bc2efe..0b6d9eb92 100644 --- a/gst/mxf/mxfaes-bwf.c +++ b/gst/mxf/mxfaes-bwf.c @@ -258,6 +258,7 @@ mxf_bwf_create_caps (MXFMetadataGenericPackage * package, GstCaps *ret = NULL; MXFMetadataWaveAudioEssenceDescriptor *wa_descriptor = NULL; gchar str[48]; + gchar *codec_name = NULL; if (((MXFMetadataGenericDescriptor *) descriptor)->type == MXF_METADATA_WAVE_AUDIO_ESSENCE_DESCRIPTOR) @@ -293,6 +294,10 @@ mxf_bwf_create_caps (MXFMetadataGenericPackage * package, (block_align != 1), "endianness", G_TYPE_INT, G_LITTLE_ENDIAN, "depth", G_TYPE_INT, (block_align / descriptor->channel_count) * 8, "width", G_TYPE_INT, (block_align / descriptor->channel_count) * 8, NULL); + + codec_name = + g_strdup_printf ("Uncompressed %u-bit little endian integer PCM audio", + (block_align / descriptor->channel_count) * 8); } else if (mxf_ul_is_equal (&descriptor->sound_essence_compression, &mxf_sound_essence_compression_aiff)) { guint block_align; @@ -318,6 +323,10 @@ mxf_bwf_create_caps (MXFMetadataGenericPackage * package, (block_align != 1), "endianness", G_TYPE_INT, G_BIG_ENDIAN, "depth", G_TYPE_INT, (block_align / descriptor->channel_count) * 8, "width", G_TYPE_INT, (block_align / descriptor->channel_count) * 8, NULL); + + codec_name = + g_strdup_printf ("Uncompressed %u-bit big endian integer PCM audio", + (block_align / descriptor->channel_count) * 8); } else if (mxf_ul_is_equal (&descriptor->sound_essence_compression, &mxf_sound_essence_compression_alaw)) { @@ -331,11 +340,25 @@ mxf_bwf_create_caps (MXFMetadataGenericPackage * package, (gint) (((gdouble) descriptor->audio_sampling_rate.n) / ((gdouble) descriptor->audio_sampling_rate.d) + 0.5), "channels", G_TYPE_INT, descriptor->channel_count); + codec_name = g_strdup ("A-law encoded audio"); } else { GST_ERROR ("Unsupported sound essence compression: %s", mxf_ul_to_string (&descriptor->sound_essence_compression, str)); } + if (!*tags) + *tags = gst_tag_list_new (); + + if (codec_name) { + gst_tag_list_add (*tags, GST_TAG_MERGE_APPEND, GST_TAG_AUDIO_CODEC, + codec_name, NULL); + g_free (codec_name); + } + + if (wa_descriptor && wa_descriptor->avg_bps) + gst_tag_list_add (*tags, GST_TAG_MERGE_APPEND, GST_TAG_BITRATE, + wa_descriptor->avg_bps * 8, NULL); + *handler = mxf_bwf_handle_essence_element; return ret; |