summaryrefslogtreecommitdiff
path: root/gst/mxf/mxfaes-bwf.c
diff options
context:
space:
mode:
authorSebastian Dröge <slomo@circular-chaos.org>2008-12-01 15:24:37 +0000
committerSebastian Dröge <slomo@circular-chaos.org>2008-12-01 15:24:37 +0000
commit65009ed81b1434e17c94928da2ca57f164e429aa (patch)
tree82e649e04c43220640a2edc4161f5dd5368a3473 /gst/mxf/mxfaes-bwf.c
parentcffc0f920726841aa7c41bd418402adae5812488 (diff)
downloadgstreamer-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.c23
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;