[Midnightbsd-cvs] mports: audio/libsndfile: Add flac metadata support

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Thu Feb 28 09:53:35 EST 2008


Log Message:
-----------
Add flac metadata support

Modified Files:
--------------
    mports/audio/libsndfile:
        Makefile (r1.2 -> r1.3)

Added Files:
-----------
    mports/audio/libsndfile/files:
        patch-flac_metadata_support (r1.1)

-------------- next part --------------
Index: Makefile
===================================================================
RCS file: /home/cvs/mports/audio/libsndfile/Makefile,v
retrieving revision 1.2
retrieving revision 1.3
diff -L audio/libsndfile/Makefile -L audio/libsndfile/Makefile -u -r1.2 -r1.3
--- audio/libsndfile/Makefile
+++ audio/libsndfile/Makefile
@@ -9,6 +9,7 @@
 
 PORTNAME=	libsndfile
 PORTVERSION=	1.0.17
+PORTREVISION=	1
 CATEGORIES=	audio
 MASTER_SITES=	http://www.mega-nerd.com/libsndfile/
 
--- /dev/null
+++ audio/libsndfile/files/patch-flac_metadata_support
@@ -0,0 +1,44 @@
+--- src/flac.c	2006-08-31 11:22:19.000000000 +0200
++++ src/flac.c	2007-07-10 21:16:47.000000000 +0200
+@@ -353,6 +353,22 @@
+ } /* sf_flac_write_callback */
+ 
+ static void
++sf_flac_meta_getvorbiscomment (SF_PRIVATE *psf, int str_type, const FLAC__StreamMetadata *metadata, const char *tag)
++{
++	int i;
++	const char *value, *s;
++
++	i = FLAC__metadata_object_vorbiscomment_find_entry_from(metadata, 0, tag);
++	if (i >= 0) {
++		value = metadata->data.vorbis_comment.comments[i].entry;
++		if ((s = strchr(value, '=')) != NULL)
++			value = s + 1;
++		
++		psf_store_string (psf, str_type, value);
++	}
++}
++
++static void
+ sf_flac_meta_callback (const FLAC__SeekableStreamDecoder * UNUSED (decoder), const FLAC__StreamMetadata *metadata, void *client_data)
+ {	SF_PRIVATE *psf = (SF_PRIVATE*) client_data ;
+ 
+@@ -378,6 +394,10 @@
+ 				} ;
+ 			break ;
+ 
++		case FLAC__METADATA_TYPE_VORBIS_COMMENT :
++			sf_flac_meta_getvorbiscomment (psf, SF_STR_ARTIST, metadata, "artist");
++			sf_flac_meta_getvorbiscomment (psf, SF_STR_TITLE, metadata, "title");
++			break;
+ 		default :
+ 			psf_log_printf (psf, "sf_flac_meta_callback : metadata-type %d not yet implemented.\n", metadata->type) ;
+ 		break ;
+@@ -603,6 +623,7 @@
+ 	FLAC__seekable_stream_decoder_set_eof_callback (pflac->fsd, sf_flac_eof_callback) ;
+ 	FLAC__seekable_stream_decoder_set_write_callback (pflac->fsd, sf_flac_write_callback) ;
+ 	FLAC__seekable_stream_decoder_set_metadata_callback (pflac->fsd, sf_flac_meta_callback) ;
++	FLAC__seekable_stream_decoder_set_metadata_respond(pflac->fsd, FLAC__METADATA_TYPE_VORBIS_COMMENT);
+ 	FLAC__seekable_stream_decoder_set_error_callback (pflac->fsd, sf_flac_error_callback) ;
+ 	FLAC__seekable_stream_decoder_set_client_data (pflac->fsd, psf) ;
+ 


More information about the Midnightbsd-cvs mailing list