diff options
author | Samuli Suominen <drac@gentoo.org> | 2007-11-23 10:36:18 +0000 |
---|---|---|
committer | Samuli Suominen <drac@gentoo.org> | 2007-11-23 10:36:18 +0000 |
commit | 742c3cbd66d355ddc3ef2d97ef935b6f0067b38d (patch) | |
tree | b1114da5bbb3f35bd8aa6e19a695f57f45f22f73 /media-libs/mlt/files | |
parent | Version bump for better Linux 2.6.23 compatibility. Tweaked the required kern... (diff) | |
download | gentoo-2-742c3cbd66d355ddc3ef2d97ef935b6f0067b38d.tar.gz gentoo-2-742c3cbd66d355ddc3ef2d97ef935b6f0067b38d.tar.bz2 gentoo-2-742c3cbd66d355ddc3ef2d97ef935b6f0067b38d.zip |
Revision bump for SOX 14.0.0 compability and pkg setup check for USE libsamplerate if USE sox is defined.
(Portage version: 2.1.4_rc1)
Diffstat (limited to 'media-libs/mlt/files')
-rw-r--r-- | media-libs/mlt/files/digest-mlt-0.2.4-r1 | 3 | ||||
-rw-r--r-- | media-libs/mlt/files/mlt-0.2.4-sox1400.patch | 190 |
2 files changed, 193 insertions, 0 deletions
diff --git a/media-libs/mlt/files/digest-mlt-0.2.4-r1 b/media-libs/mlt/files/digest-mlt-0.2.4-r1 new file mode 100644 index 000000000000..12a5851d6896 --- /dev/null +++ b/media-libs/mlt/files/digest-mlt-0.2.4-r1 @@ -0,0 +1,3 @@ +MD5 6606d8be848a10efef929e2b6de3cf61 mlt-0.2.4.tar.gz 644406 +RMD160 2822c775b397eb426d9f1aabfa515f76eb98aab2 mlt-0.2.4.tar.gz 644406 +SHA256 9d85c1d8d9f4ef7b40ebff8a4301bf3ef34aec6014e22310cb1e408cb4ec2a45 mlt-0.2.4.tar.gz 644406 diff --git a/media-libs/mlt/files/mlt-0.2.4-sox1400.patch b/media-libs/mlt/files/mlt-0.2.4-sox1400.patch new file mode 100644 index 000000000000..d682ea72488e --- /dev/null +++ b/media-libs/mlt/files/mlt-0.2.4-sox1400.patch @@ -0,0 +1,190 @@ +diff -ur mlt-0.2.4.orig/src/modules/sox/configure mlt-0.2.4/src/modules/sox/configure +--- mlt-0.2.4.orig/src/modules/sox/configure 2005-05-04 22:37:08.000000000 +0300 ++++ mlt-0.2.4/src/modules/sox/configure 2007-11-23 12:18:59.000000000 +0200 +@@ -4,7 +4,36 @@ + then + + which libst-config > /dev/null 2>&1 +- disable_sox=$? ++ if [ $? -eq 0 ] ++ then ++ disable_sox=0 ++ echo "CFLAGS += $(libst-config --cflags) -I../../" > config.mak ++ echo "LDFLAGS += -lst $(libst-config --libs)" >> config.mak ++ else ++ sox --version 2> /dev/null | grep 'v14.' > /dev/null ++ disable_sox=$? ++ if [ $disable_sox -eq 0 ] ++ then ++ LIBDIR=lib ++ #bits=$(uname -m) ++ #case $bits in ++ #x86_64) ++ # export LIBDIR=lib64 ++ # ;; ++ #*) ++ # export LIBDIR=lib ++ # ;; ++ #esac ++ ++ sox=$(which sox) ++ # chop sox ++ soxdir=$(dirname $sox) ++ # chop bin ++ soxdir=$(dirname $soxdir) ++ echo "CFLAGS += -DSOX14 -I$soxdir/include" > config.mak ++ echo "LDFLAGS += -L$soxdir/$LIBDIR -lsox -lsfx -lsamplerate" >> config.mak ++ fi ++ fi + + if [ "$disable_sox" = "0" ] + then +diff -ur mlt-0.2.4.orig/src/modules/sox/filter_sox.c mlt-0.2.4/src/modules/sox/filter_sox.c +--- mlt-0.2.4.orig/src/modules/sox/filter_sox.c 2007-03-31 03:29:56.000000000 +0300 ++++ mlt-0.2.4/src/modules/sox/filter_sox.c 2007-11-23 12:18:57.000000000 +0200 +@@ -28,7 +28,21 @@ + #include <string.h> + #include <math.h> + +-#include <st.h> ++#ifdef SOX14 ++# include <sox.h> ++# define ST_EOF SOX_EOF ++# define ST_SUCCESS SOX_SUCCESS ++# define st_sample_t sox_sample_t ++# define eff_t sox_effect_t* ++# define st_size_t sox_size_t ++# define ST_LIB_VERSION_CODE SOX_LIB_VERSION_CODE ++# define ST_LIB_VERSION SOX_LIB_VERSION ++# define ST_SIGNED_WORD_TO_SAMPLE(d,clips) SOX_SIGNED_16BIT_TO_SAMPLE(d,clips) ++# define ST_SSIZE_MIN SOX_SSIZE_MIN ++# define ST_SAMPLE_TO_SIGNED_WORD(d,clips) SOX_SAMPLE_TO_SIGNED_16BIT(d,clips) ++#else ++# include <st.h> ++#endif + + #define BUFFER_LEN 8192 + #define AMPLITUDE_NORM 0.2511886431509580 /* -12dBFS */ +@@ -61,21 +75,37 @@ + static int create_effect( mlt_filter this, char *value, int count, int channel, int frequency ) + { + mlt_tokeniser tokeniser = mlt_tokeniser_init(); ++#ifdef SOX14 ++ eff_t eff = mlt_pool_alloc( sizeof( sox_effect_t ) ); ++#else + eff_t eff = mlt_pool_alloc( sizeof( struct st_effect ) ); ++#endif + char id[ 256 ]; + int error = 1; + + // Tokenise the effect specification + mlt_tokeniser_parse_new( tokeniser, value, " " ); ++ if ( tokeniser->count < 1 ) ++ return error; + + // Locate the effect ++#ifdef SOX14 ++ //fprintf(stderr, "%s: effect %s count %d\n", __FUNCTION__, tokeniser->tokens[0], tokeniser->count ); ++ sox_create_effect( eff, sox_find_effect( tokeniser->tokens[0] ) ); ++ int opt_count = tokeniser->count - 1; ++#else + int opt_count = st_geteffect_opt( eff, tokeniser->count, tokeniser->tokens ); ++#endif + + // If valid effect + if ( opt_count != ST_EOF ) + { + // Supply the effect parameters ++#ifdef SOX14 ++ if ( ( * eff->handler.getopts )( eff, opt_count, &tokeniser->tokens[ tokeniser->count > 1 ? 1 : 0 ] ) == ST_SUCCESS ) ++#else + if ( ( * eff->h->getopts )( eff, opt_count, &tokeniser->tokens[ tokeniser->count - opt_count ] ) == ST_SUCCESS ) ++#endif + { + // Set the sox signal parameters + eff->ininfo.rate = frequency; +@@ -84,7 +114,11 @@ + eff->outinfo.channels = 1; + + // Start the effect ++#ifdef SOX14 ++ if ( ( * eff->handler.start )( eff ) == ST_SUCCESS ) ++#else + if ( ( * eff->h->start )( eff ) == ST_SUCCESS ) ++#endif + { + // Construct id + sprintf( id, "_effect_%d_%d", count, channel ); +@@ -123,7 +157,7 @@ + st_sample_t *output_buffer = mlt_properties_get_data( filter_properties, "output_buffer", NULL ); + int channels_avail = *channels; + int i; // channel +- int count = mlt_properties_get_int( filter_properties, "effect_count" ); ++ int count = mlt_properties_get_int( filter_properties, "_effect_count" ); + + // Get the producer's audio + mlt_frame_get_audio( frame, buffer, format, frequency, &channels_avail, samples ); +@@ -211,7 +245,7 @@ + } + + // Save the number of filters +- mlt_properties_set_int( filter_properties, "effect_count", count ); ++ mlt_properties_set_int( filter_properties, "_effect_count", count ); + + } + if ( *samples > 0 && count > 0 ) +@@ -295,7 +329,11 @@ + float saved_gain = 1.0; + + // XXX: hack to apply the normalised gain level to the vol effect ++#ifdef SOX14 ++ if ( normalise && strcmp( e->handler.name, "vol" ) == 0 ) ++#else + if ( normalise && strcmp( e->name, "vol" ) == 0 ) ++#endif + { + float *f = ( float * )( e->priv ); + saved_gain = *f; +@@ -303,7 +341,11 @@ + } + + // Apply the effect ++#ifdef SOX14 ++ if ( ( * e->handler.flow )( e, input_buffer, output_buffer, &isamp, &osamp ) == ST_SUCCESS ) ++#else + if ( ( * e->h->flow )( e, input_buffer, output_buffer, &isamp, &osamp ) == ST_SUCCESS ) ++#endif + { + // Swap input and output buffer pointers for subsequent effects + p = input_buffer; +@@ -312,7 +354,11 @@ + } + + // XXX: hack to restore the original vol gain to prevent accumulation ++#ifdef SOX14 ++ if ( normalise && strcmp( e->handler.name, "vol" ) == 0 ) ++#else + if ( normalise && strcmp( e->name, "vol" ) == 0 ) ++#endif + { + float *f = ( float * )( e->priv ); + *f = saved_gain; +diff -ur mlt-0.2.4.orig/src/modules/sox/Makefile mlt-0.2.4/src/modules/sox/Makefile +--- mlt-0.2.4.orig/src/modules/sox/Makefile 2005-12-05 13:35:55.000000000 +0200 ++++ mlt-0.2.4/src/modules/sox/Makefile 2007-11-23 12:19:00.000000000 +0200 +@@ -1,12 +1,13 @@ + include ../../../config.mak ++include config.mak + + TARGET = ../libmltsox$(LIBSUF) + + OBJS = factory.o \ + filter_sox.o + +-CFLAGS += `libst-config --cflags` -I../../ +-LDFLAGS += -lst `libst-config --libs` ++CFLAGS += -I../../ ++ + LDFLAGS += -L../../framework -lmlt + + SRCS := $(OBJS:.o=.c) |