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>
This commit is contained in:
parent
f3143a0a1f
commit
65a9953ba7
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=133873
2 changed files with 113 additions and 1 deletions
|
@ -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
|
||||
|
|
108
multimedia/xmms/files/patch-Input-vorbis-fileinfo.c
Normal file
108
multimedia/xmms/files/patch-Input-vorbis-fileinfo.c
Normal file
|
@ -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
|
Loading…
Reference in a new issue