From 65a9953ba781e6b617ef778d5c51c0438b3d4016 Mon Sep 17 00:00:00 2001 From: Tilman Keskinoz Date: Thu, 21 Apr 2005 16:13:54 +0000 Subject: [PATCH] Add WITH_EXTENDED_VORBIS_FILEINFO knob. This patch includes information about the average bitrate of the file (because vorbis uses variable bit rate encoding by default and nominal might or might not match the actual effective bitrate) as well as information about the encoder which created the file. Bump PORTREVISION. PR: 74219 Submitted by: Thomas E. Zander Reviewed by: Espen Skoglund --- multimedia/xmms/Makefile | 6 +- .../xmms/files/patch-Input-vorbis-fileinfo.c | 108 ++++++++++++++++++ 2 files changed, 113 insertions(+), 1 deletion(-) create mode 100644 multimedia/xmms/files/patch-Input-vorbis-fileinfo.c diff --git a/multimedia/xmms/Makefile b/multimedia/xmms/Makefile index 0186b5dac992..f2612d4d6274 100644 --- a/multimedia/xmms/Makefile +++ b/multimedia/xmms/Makefile @@ -7,7 +7,7 @@ PORTNAME= xmms PORTVERSION= 1.2.10 -PORTREVISION= 3 +PORTREVISION= 4 CATEGORIES+= multimedia audio ipv6 MASTER_SITES= http://www.xmms.org/files/1.2.x/ \ ftp://ftp.sunet.se/pub/multimedia/xmms/1.2.x/ @@ -57,6 +57,10 @@ PLIST_SUB+= ENCODING="" PLIST_SUB+= ENCODING="@comment " .endif +.if defined(WITH_EXTENDED_VORBIS_FILEINFO) +CFLAGS+= -DALL_VORBIS_TAGS +.endif + .if !defined(WITHOUT_MIKMOD) LIB_DEPENDS+= mikmod.2:${PORTSDIR}/audio/libmikmod INPUT_PLUGINS+= mikmod diff --git a/multimedia/xmms/files/patch-Input-vorbis-fileinfo.c b/multimedia/xmms/files/patch-Input-vorbis-fileinfo.c new file mode 100644 index 000000000000..70d88f9a7209 --- /dev/null +++ b/multimedia/xmms/files/patch-Input-vorbis-fileinfo.c @@ -0,0 +1,108 @@ +--- Input/vorbis/fileinfo.c.orig Thu Nov 20 14:35:34 2003 ++++ Input/vorbis/fileinfo.c Sun Nov 21 17:35:46 2004 +@@ -429,7 +429,8 @@ + gchar *location; + gchar *rg_track_gain, *rg_album_gain, *rg_track_peak, *rg_album_peak; + +- gint time, minutes, seconds, bitrate, rate, channels, filesize, i; ++ gint time, minutes, seconds, bitrate, avgbitrate, rate, channels, filesize, i; ++ gchar *vendor = "N/A"; + + OggVorbis_File vf; + vorbis_info *vi; +@@ -437,10 +438,11 @@ + FILE *fh; + gboolean clear_vf = FALSE; + +- static GtkWidget *info_frame, *info_box, *bitrate_label, *rate_label; ++ static GtkWidget *info_frame, *info_box, *bitrate_label, *avgbitrate_label, *rate_label; + static GtkWidget *channel_label, *length_label, *filesize_label; + static GtkWidget *replaygain_label, *audiophilegain_label, *peak_label; + static GtkWidget *filename_entry, *tag_frame; ++ static GtkWidget *vendor_label; + + g_free(vte.filename); + vte.filename = g_strdup(fn); +@@ -721,7 +723,14 @@ + GTK_JUSTIFY_LEFT); + gtk_box_pack_start(GTK_BOX(info_box), bitrate_label, FALSE, + FALSE, 0); +- ++ ++ avgbitrate_label = gtk_label_new(""); ++ gtk_misc_set_alignment(GTK_MISC(avgbitrate_label), 0, 0); ++ gtk_label_set_justify(GTK_LABEL(avgbitrate_label), ++ GTK_JUSTIFY_LEFT); ++ gtk_box_pack_start(GTK_BOX(info_box), avgbitrate_label, FALSE, ++ FALSE, 0); ++ + rate_label = gtk_label_new(""); + gtk_misc_set_alignment(GTK_MISC(rate_label), 0, 0); + gtk_label_set_justify(GTK_LABEL(rate_label), GTK_JUSTIFY_LEFT); +@@ -749,6 +758,13 @@ + gtk_box_pack_start(GTK_BOX(info_box), filesize_label, FALSE, + FALSE, 0); + ++ vendor_label = gtk_label_new(""); ++ gtk_misc_set_alignment(GTK_MISC(vendor_label), 0, 0); ++ gtk_label_set_justify(GTK_LABEL(vendor_label), ++ GTK_JUSTIFY_LEFT); ++ gtk_box_pack_start(GTK_BOX(info_box), vendor_label, FALSE, ++ FALSE, 0); ++ + replaygain_label = gtk_label_new(""); + gtk_misc_set_alignment(GTK_MISC(replaygain_label), 0, 0); + gtk_label_set_justify(GTK_LABEL(replaygain_label), +@@ -780,10 +796,12 @@ + gtk_widget_set_sensitive(tag_frame, TRUE); + + gtk_label_set_text(GTK_LABEL(bitrate_label), ""); ++ gtk_label_set_text(GTK_LABEL(avgbitrate_label), ""); + gtk_label_set_text(GTK_LABEL(rate_label), ""); + gtk_label_set_text(GTK_LABEL(channel_label), ""); + gtk_label_set_text(GTK_LABEL(length_label), ""); + gtk_label_set_text(GTK_LABEL(filesize_label), ""); ++ gtk_label_set_text(GTK_LABEL(vendor_label), ""); + + if ((fh = fopen(vte.filename, "r")) != NULL) + { +@@ -792,9 +810,18 @@ + if (ov_open(fh, &vf, NULL, 0) == 0) + { + comment = ov_comment(&vf, -1); ++ if(comment) ++ { ++ vendor = comment->vendor; ++ } ++ else ++ { ++ vendor = (char*)"N/A"; ++ } + if ((vi = ov_info(&vf, 0)) != NULL) + { + bitrate = vi->bitrate_nominal/1000; ++ avgbitrate = ov_bitrate(&vf, -1); + rate = vi->rate; + channels = vi->channels; + g_message("version: %d", vi->version); +@@ -803,6 +830,7 @@ + else + { + bitrate = 0; ++ avgbitrate = 0; + rate = 0; + channels = 0; + } +@@ -814,10 +842,12 @@ + filesize = ftell(fh); + + label_set_text(bitrate_label, _("Nominal bitrate: %d kbps"), bitrate); ++ label_set_text(avgbitrate_label, _("Average bitrate: %.1f kbps"), ((float)avgbitrate)/1000); + label_set_text(rate_label, _("Samplerate: %d Hz"), rate); + label_set_text(channel_label, _("Channels: %d"), channels); + label_set_text(length_label, _("Length: %d:%.2d"), minutes, seconds); + label_set_text(filesize_label, _("File size: %d B"), filesize); ++ label_set_text(vendor_label, _("Vendor: %s"), vendor); + + } + else