[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