summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--gst/id3demux/id3v2frames.c8
2 files changed, 11 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 04835000..64bfb146 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2006-03-16 Tim-Philipp Müller <tim at centricular dot net>
+ * gst/id3demux/id3v2frames.c:
+ (parse_relative_volume_adjustment_two):
+ We only care about gain and peak data for the master volume.
+
+2006-03-16 Tim-Philipp Müller <tim at centricular dot net>
+
* gst/id3demux/id3v2frames.c: (id3demux_id3v2_parse_frame),
(parse_id_string), (parse_unique_file_identifier),
(parse_relative_volume_adjustment_two), (id3v2_tag_to_taglist):
diff --git a/gst/id3demux/id3v2frames.c b/gst/id3demux/id3v2frames.c
index 0c866f76..8e1ee048 100644
--- a/gst/id3demux/id3v2frames.c
+++ b/gst/id3demux/id3v2frames.c
@@ -359,6 +359,8 @@ parse_unique_file_identifier (ID3TagsWorking * work, const gchar ** tag_name)
return ret;
}
+#define ID3V2_RVA2_CHANNEL_MASTER 1
+
static gboolean
parse_relative_volume_adjustment_two (ID3TagsWorking * work)
{
@@ -410,14 +412,14 @@ parse_relative_volume_adjustment_two (ID3TagsWorking * work)
GST_LOG ("RVA2 frame: id=%s, chan=%u, adj=%.2fdB, peak_bits=%u, peak=%.2f",
id, chan, gain_dB, (guint) peak_bits, peak_val);
- if (strcmp (id, "track") == 0) {
+ if (chan == ID3V2_RVA2_CHANNEL_MASTER && strcmp (id, "track") == 0) {
gain_tag_name = GST_TAG_TRACK_GAIN;
peak_tag_name = GST_TAG_TRACK_PEAK;
- } else if (strcmp (id, "album") == 0) {
+ } else if (chan == ID3V2_RVA2_CHANNEL_MASTER && strcmp (id, "album") == 0) {
gain_tag_name = GST_TAG_ALBUM_GAIN;
peak_tag_name = GST_TAG_ALBUM_PEAK;
} else {
- GST_INFO ("Unhandled RVA2 frame id '%s'", id);
+ GST_INFO ("Unhandled RVA2 frame id '%s' for channel %d", id, chan);
}
if (gain_tag_name) {