aboutsummaryrefslogtreecommitdiff
path: root/multimedia/xmms/files
diff options
context:
space:
mode:
authorTilman Keskinoz <arved@FreeBSD.org>2005-04-21 16:13:54 +0000
committerTilman Keskinoz <arved@FreeBSD.org>2005-04-21 16:13:54 +0000
commit65a9953ba781e6b617ef778d5c51c0438b3d4016 (patch)
treebf40325de91b4ecb35bd105721405c0bada8f31b /multimedia/xmms/files
parentf3143a0a1f0475956c75e8f2c54379cd4d0d34a2 (diff)
downloadports-65a9953ba781e6b617ef778d5c51c0438b3d4016.tar.gz
ports-65a9953ba781e6b617ef778d5c51c0438b3d4016.zip
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 <riggs@rrr.de> Reviewed by: Espen Skoglund <esk@ira.uka.de>
Notes
Notes: svn path=/head/; revision=133873
Diffstat (limited to 'multimedia/xmms/files')
-rw-r--r--multimedia/xmms/files/patch-Input-vorbis-fileinfo.c108
1 files changed, 108 insertions, 0 deletions
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