diff --git a/multimedia/mlt/Makefile b/multimedia/mlt/Makefile index df2dc572603f..725acedc620b 100644 --- a/multimedia/mlt/Makefile +++ b/multimedia/mlt/Makefile @@ -5,8 +5,7 @@ # $FreeBSD$ PORTNAME= mlt -PORTVERSION= 0.4.10 -PORTREVISION= 3 +PORTVERSION= 0.5.0 CATEGORIES= multimedia MASTER_SITES= SF @@ -21,8 +20,7 @@ GNU_CONFIGURE= yes CONFIGURE_ARGS= --disable-debug \ --enable-gpl USE_GMAKE= yes -# required by FreeBSD 6 -MAKE_ENV= LDFLAGS="-lc" +MAKE_ENV= LDFLAGS="-lc" # required by FreeBSD 6 CFLAGS+= -I${LOCALBASE}/include USE_LDCONFIG= ${PREFIX}/lib ${PREFIX}/lib/mlt @@ -41,7 +39,8 @@ OPTIONS= AVFORMAT "Avformat module" on \ QIMAGE "Qimage module" on \ RESAMPLE "Secret Rabbit Code module" on \ SOX "Sound eXchange module" on \ - SSE "SSE support (requires MMX, caution on x86-64)" off \ + SSE "SSE support (requires MMX)" off \ + SSE2 "SSE2 support" off \ VORBIS "Vorbis module" on .include @@ -144,6 +143,12 @@ CONFIGURE_ARGS+= --enable-sse CONFIGURE_ARGS+= --disable-sse .endif +.ifdef(WITH_SSE2) +CONFIGURE_ARGS+= --enable-sse2 +.else +CONFIGURE_ARGS+= --disable-sse2 +.endif + .ifdef(WITH_VORBIS) LIB_DEPENDS+= vorbis.4:${PORTSDIR}/audio/libvorbis CONFIGURE_ARGS+= --enable-vorbis @@ -154,20 +159,22 @@ PLIST_SUB+= VORBIS="@comment " .endif pre-configure: - @${REINPLACE_CMD} -e 's|-pthread|${PTHREAD_LIBS}|g' \ +.if ${OSVERSION} < 700041 + ${REINPLACE_CMD} -E -e 's|^(LDFLAGS.*)|\1 -lthr|' \ + ${WRKSRC}/src/framework/Makefile \ + ${WRKSRC}/src/modules/avformat/Makefile \ + ${WRKSRC}/src/modules/core/Makefile \ + ${WRKSRC}/src/modules/dv/Makefile \ + ${WRKSRC}/src/modules/sdl/Makefile +.endif + ${REINPLACE_CMD} -e 's|-pthread|${PTHREAD_LIBS}|g' \ ${WRKSRC}/configure \ ${WRKSRC}/src/swig/*/build - @${REINPLACE_CMD} -e 's|-lpthread|${PTHREAD_LIBS}|g' \ + ${REINPLACE_CMD} -e 's|-lpthread|${PTHREAD_LIBS}|g' \ ${WRKSRC}/src/framework/Makefile \ ${WRKSRC}/src/melt/Makefile \ ${WRKSRC}/src/modules/*/Makefile - @${REINPLACE_CMD} -E -e 's|^(LDFLAGS.*)|\1 -lthr|' \ - ${WRKSRC}/src/framework/Makefile \ - ${WRKSRC}/src/modules/avformat/Makefile \ - ${WRKSRC}/src/modules/core/Makefile \ - ${WRKSRC}/src/modules/dv/Makefile \ - ${WRKSRC}/src/modules/sdl/Makefile - @${REINPLACE_CMD} -e 's|$$(libdir)/pkgconfig|${PREFIX}/libdata/pkgconfig|g' \ + ${REINPLACE_CMD} -e 's|$$(libdir)/pkgconfig|${PREFIX}/libdata/pkgconfig|g' \ ${WRKSRC}/Makefile post-install: diff --git a/multimedia/mlt/distinfo b/multimedia/mlt/distinfo index 35adf3170323..0f037b6e2b60 100644 --- a/multimedia/mlt/distinfo +++ b/multimedia/mlt/distinfo @@ -1,3 +1,3 @@ -MD5 (mlt-0.4.10.tar.gz) = 7b0ba842277ea0a77e40a15917ab623f -SHA256 (mlt-0.4.10.tar.gz) = 28eed979b8c412d0fdfb92ad9d23516b0419b7f996d5e5e0e30c47a75a948c5a -SIZE (mlt-0.4.10.tar.gz) = 766911 +MD5 (mlt-0.5.0.tar.gz) = 5e904e02c879d64f1c6fe14c75be0479 +SHA256 (mlt-0.5.0.tar.gz) = 6741488a067a79f0149b3e4f9fc81706017b1d0db8415c0b1a9ae2264882c6bf +SIZE (mlt-0.5.0.tar.gz) = 796572 diff --git a/multimedia/mlt/files/patch-src__modules__xine__Makefile b/multimedia/mlt/files/patch-src__modules__xine__Makefile new file mode 100644 index 000000000000..adcdb470aede --- /dev/null +++ b/multimedia/mlt/files/patch-src__modules__xine__Makefile @@ -0,0 +1,16 @@ +--- ./src/modules/xine/Makefile.orig 2010-02-16 07:40:46.000000000 +0100 ++++ ./src/modules/xine/Makefile 2010-02-25 23:10:51.286144467 +0100 +@@ -1,4 +1,4 @@ +-CFLAGS += -I../../ -DARCH_X86 ++CFLAGS += -I../../ + + LDFLAGS += -L../../framework -lmlt + +@@ -12,6 +12,7 @@ + filter_deinterlace.o + + ifdef MMX_FLAGS ++CFLAGS += -DARCH_X86 + OBJS += cpu_accel.o + endif + diff --git a/multimedia/mlt/files/patch-src__modules__xine__yadif.c b/multimedia/mlt/files/patch-src__modules__xine__yadif.c new file mode 100644 index 000000000000..335a4ada0594 --- /dev/null +++ b/multimedia/mlt/files/patch-src__modules__xine__yadif.c @@ -0,0 +1,111 @@ +--- ./src/modules/xine/yadif.c.orig 2010-02-16 07:40:46.000000000 +0100 ++++ ./src/modules/xine/yadif.c 2010-02-25 23:10:51.289144010 +0100 +@@ -34,7 +34,8 @@ + + static void (*filter_line)(int mode, uint8_t *dst, const uint8_t *prev, const uint8_t *cur, const uint8_t *next, int w, int refs, int parity); + +-#ifdef __GNUC__ ++#if defined(__GNUC__) && defined(USE_SSE) ++ + #define LOAD4(mem,dst) \ + "movd "mem", "#dst" \n\t"\ + "punpcklbw %%mm7, "#dst" \n\t" +@@ -264,6 +265,7 @@ + #endif + + // ================= SSE2 ================= ++#ifdef USE_SSE2 + #define PABS(tmp,dst) \ + "pxor "#tmp", "#tmp" \n\t"\ + "psubw "#dst", "#tmp" \n\t"\ +@@ -271,17 +273,19 @@ + + #define FILTER_LINE_FUNC_NAME filter_line_sse2 + #include "vf_yadif_template.h" ++#endif + + // ================ SSSE3 ================= ++#ifdef USE_SSE3 + #define PABS(tmp,dst) \ + "pabsw "#dst", "#dst" \n\t" + + #define FILTER_LINE_FUNC_NAME filter_line_ssse3 + #include "vf_yadif_template.h" +- + #endif + +-#endif ++#endif // GCC 4.2+ ++#endif // GNUC, USE_SSE + + static void filter_line_c(int mode, uint8_t *dst, const uint8_t *prev, const uint8_t *cur, const uint8_t *next, int w, int refs, int parity){ + int x; +@@ -356,15 +360,22 @@ + filter_line = filter_line_c; + #ifdef __GNUC__ + #if (__GNUC__ > 4 || __GNUC__ == 4 && __GNUC_MINOR__>1) ++#ifdef USE_SSE3 + if (cpu & AVS_CPU_SSSE3) + filter_line = filter_line_ssse3; +- else if (cpu & AVS_CPU_SSE2) ++ else ++#endif ++#ifdef USE_SSE2 ++ if (cpu & AVS_CPU_SSE2) + filter_line = filter_line_sse2; + else + #endif ++#endif // GCC 4.2+ ++#ifdef USE_SSE + if (cpu & AVS_CPU_INTEGER_SSE) + filter_line = filter_line_mmx2; + #endif ++#endif // GNUC + y=0; + if(((y ^ parity) & 1)){ + memcpy(dst, cur0 + refs, w);// duplicate 1 +@@ -401,14 +412,13 @@ + memcpy(dst + (h-1)*dst_stride, cur0 + (h-1)*refs, w); // copy original + } + +-#ifdef __GNUC__ ++#if defined(__GNUC__) && defined(USE_SSE) + if (cpu >= AVS_CPU_INTEGER_SSE) + asm volatile("emms"); + #endif + } + +-#ifdef __GNUC__ +-#ifndef PIC ++#if defined(__GNUC__) && defined(USE_SSE) && !defined(PIC) + static attribute_align_arg void YUY2ToPlanes_mmx(const unsigned char *srcYUY2, int pitch_yuy2, int width, int height, + unsigned char *py, int pitch_y, + unsigned char *pu, unsigned char *pv, int pitch_uv) +@@ -486,8 +496,7 @@ + } + asm ("sfence \n\t emms"); + } +-#endif +-#endif ++#endif // GNUC, USE_SSE, !PIC + + //---------------------------------------------------------------------------------------------- + +@@ -498,7 +507,7 @@ + + int h,w; + int w0 = 0; +-#if defined(__GNUC__) && !defined(PIC) ++#if defined(__GNUC__) && defined(USE_SSE) && !defined(PIC) + if (cpu & AVS_CPU_INTEGER_SSE) { + w0 = (nWidth/8)*8; + YUY2ToPlanes_mmx(pSrcYUY2, nSrcPitchYUY2, w0, nHeight, pSrcY, srcPitchY, pSrcU, pSrcV, srcPitchUV); +@@ -529,7 +538,7 @@ + { + int h,w; + int w0 = 0; +-#if defined(__GNUC__) && !defined(PIC) ++#if defined(__GNUC__) && defined(USE_SSE) && !defined(PIC) + if (cpu & AVS_CPU_INTEGER_SSE) { + w0 = (nWidth/8)*8; + YUY2FromPlanes_mmx(pSrcYUY2, nSrcPitchYUY2, w0, nHeight, pSrcY, srcPitchY, pSrcU, pSrcV, srcPitchUV); diff --git a/multimedia/mlt/pkg-plist b/multimedia/mlt/pkg-plist index b8ab23341840..6ec70c2888f2 100644 --- a/multimedia/mlt/pkg-plist +++ b/multimedia/mlt/pkg-plist @@ -48,10 +48,10 @@ include/mlt/framework/mlt_tractor.h include/mlt/framework/mlt_transition.h include/mlt/framework/mlt_types.h lib/libmlt++.so -lib/libmlt++.so.0.4.10 +lib/libmlt++.so.0.5.0 lib/libmlt++.so.3 lib/libmlt.so -lib/libmlt.so.0.4.10 +lib/libmlt.so.0.5.0 lib/libmlt.so.2 %%AVFORMAT%%lib/mlt/libmltavformat.so lib/mlt/libmltcore.so @@ -153,13 +153,21 @@ libdata/pkgconfig/mlt-framework.pc %%DATADIR%%/oldfilm/tcolor.svg %%DATADIR%%/oldfilm/vignette.svg %%DATADIR%%/profiles/atsc_1080i_50 +%%DATADIR%%/profiles/atsc_1080i_5994 %%DATADIR%%/profiles/atsc_1080i_60 %%DATADIR%%/profiles/atsc_1080p_2398 %%DATADIR%%/profiles/atsc_1080p_24 %%DATADIR%%/profiles/atsc_1080p_25 %%DATADIR%%/profiles/atsc_1080p_2997 %%DATADIR%%/profiles/atsc_1080p_30 +%%DATADIR%%/profiles/atsc_720p_2398 +%%DATADIR%%/profiles/atsc_720p_24 +%%DATADIR%%/profiles/atsc_720p_25 +%%DATADIR%%/profiles/atsc_720p_2997 %%DATADIR%%/profiles/atsc_720p_30 +%%DATADIR%%/profiles/atsc_720p_50 +%%DATADIR%%/profiles/atsc_720p_5994 +%%DATADIR%%/profiles/atsc_720p_60 %%DATADIR%%/profiles/cif_15 %%DATADIR%%/profiles/cif_ntsc %%DATADIR%%/profiles/cif_pal @@ -185,6 +193,7 @@ libdata/pkgconfig/mlt-framework.pc %%DATADIR%%/profiles/quarter_ntsc_wide %%DATADIR%%/profiles/quarter_pal %%DATADIR%%/profiles/quarter_pal_wide +%%DATADIR%%/profiles/sdi_486i_5994 %%DATADIR%%/profiles/square_ntsc %%DATADIR%%/profiles/square_ntsc_wide %%DATADIR%%/profiles/square_pal