aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPawel Pekala <pawel@FreeBSD.org>2013-10-27 21:40:27 +0000
committerPawel Pekala <pawel@FreeBSD.org>2013-10-27 21:40:27 +0000
commite66983a414f650110f01819f1eb0ff810375f1b1 (patch)
tree8f4a54fd840a1be12810cb33d23c28d0d4915080
parent9e248ac93f38ee5861a9a18578b192de16a0abb7 (diff)
downloadports-e66983a414f650110f01819f1eb0ff810375f1b1.tar.gz
ports-e66983a414f650110f01819f1eb0ff810375f1b1.zip
Notes
-rw-r--r--multimedia/lives/Makefile16
-rw-r--r--multimedia/lives/distinfo4
-rw-r--r--multimedia/lives/files/patch-lives-plugins__plugins__decoders__asf_decoder.c80
-rw-r--r--multimedia/lives/files/patch-lives-plugins__plugins__decoders__flv_decoder.c121
-rw-r--r--multimedia/lives/files/patch-lives-plugins__plugins__decoders__mkv_decoder.c121
-rw-r--r--multimedia/lives/files/patch-lives-plugins__plugins__decoders__mkv_decoder.h13
-rw-r--r--multimedia/lives/files/patch-lives-plugins__plugins__decoders__mpegts_decoder.c121
-rw-r--r--multimedia/lives/files/patch-lives-plugins__plugins__playback__video__lives2lives_stream.c4
-rw-r--r--multimedia/lives/files/patch-src__htmsocket.c4
-rw-r--r--multimedia/lives/files/patch-src__main.h8
-rw-r--r--multimedia/lives/files/patch-src__plugins.h4
-rw-r--r--multimedia/lives/pkg-plist3
12 files changed, 473 insertions, 26 deletions
diff --git a/multimedia/lives/Makefile b/multimedia/lives/Makefile
index 1cfdfcc1fec5..f9b53c0ac4bc 100644
--- a/multimedia/lives/Makefile
+++ b/multimedia/lives/Makefile
@@ -2,8 +2,7 @@
# $FreeBSD$
PORTNAME= lives
-PORTVERSION= 2.0.5
-PORTREVISION= 2
+PORTVERSION= 2.0.6
CATEGORIES= multimedia
MASTER_SITES= http://salsaman.home.xs4all.nl/lives/current/
DISTNAME= LiVES-${PORTVERSION}
@@ -77,7 +76,6 @@ FREI0R_RUN_DEPENDS= ${LOCALBASE}/include/frei0r.h:${PORTSDIR}/graphics/frei0r
NLS_USES= gettext
NLS_CONFIGURE_OFF= --disable-nls
-NO_STAGE= yes
.include <bsd.port.options.mk>
.if ! ${PORT_OPTIONS:MFREI0R}
@@ -106,11 +104,15 @@ post-patch:
${WRKSRC}/lives-plugins/weed-plugins/cairo/Makefile.in \
${WRKSRC}/lives-plugins/weed-plugins/Makefile.in
+pre-install:
+ @cd ${WRKSRC}/po; ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} \
+ ${MAKEFILE} update-po
+
post-install:
-.if ${PORT_OPTIONS:MDOCS}
- @${MKDIR} ${DOCSDIR}
- ${INSTALL_DATA} ${DOC_FILES:S|^|${WRKSRC}/|} ${DOCSDIR}
-.endif
+ @${MKDIR} ${STAGEDIR}${DOCSDIR}
+ ${INSTALL_DATA} ${DOC_FILES:S|^|${WRKSRC}/|} ${STAGEDIR}${DOCSDIR}
+ cd ${STAGEDIR}${PREFIX}/bin && ${RM} lives && ${LN} -s lives-exe lives
+
.if ${PORT_OPTIONS:MDOXYGEN}
@cd ${PREFIX} && \
${FIND} ${DOCSDIR:S|${PREFIX}/||} ! -type d >> ${TMPPLIST} && \
diff --git a/multimedia/lives/distinfo b/multimedia/lives/distinfo
index 55deaa09a14c..02fc0c1f3e64 100644
--- a/multimedia/lives/distinfo
+++ b/multimedia/lives/distinfo
@@ -1,2 +1,2 @@
-SHA256 (LiVES-2.0.5.tar.bz2) = 28c75b035594f4a3490fb4f4dd419cc02912ca20ec456cbe957b226df2b24f78
-SIZE (LiVES-2.0.5.tar.bz2) = 3518054
+SHA256 (LiVES-2.0.6.tar.bz2) = a254fe8fd2264acb2495d8ae101f25c788122ed74722d26581d841ec19b9a224
+SIZE (LiVES-2.0.6.tar.bz2) = 3543817
diff --git a/multimedia/lives/files/patch-lives-plugins__plugins__decoders__asf_decoder.c b/multimedia/lives/files/patch-lives-plugins__plugins__decoders__asf_decoder.c
index d59f2ca5464e..9d207370ce32 100644
--- a/multimedia/lives/files/patch-lives-plugins__plugins__decoders__asf_decoder.c
+++ b/multimedia/lives/files/patch-lives-plugins__plugins__decoders__asf_decoder.c
@@ -1,6 +1,6 @@
---- ./lives-plugins/plugins/decoders/asf_decoder.c.orig 2012-06-25 19:53:28.000000000 +0200
-+++ ./lives-plugins/plugins/decoders/asf_decoder.c 2012-06-25 19:57:21.000000000 +0200
-@@ -30,11 +30,6 @@
+--- ./lives-plugins/plugins/decoders/asf_decoder.c.orig 2012-09-17 16:20:55.000000000 +0200
++++ ./lives-plugins/plugins/decoders/asf_decoder.c 2013-10-27 21:18:00.380266194 +0100
+@@ -30,11 +30,7 @@
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>
@@ -9,6 +9,80 @@
-#include <endian.h>
-#endif
-#endif
++#include <ctype.h>
#include <sys/stat.h>
const char *plugin_version="LiVES asf/wmv decoder version 1.0";
+@@ -57,11 +53,35 @@
+ #endif
+
+ #include <libavformat/avformat.h>
++#include <libavcodec/version.h>
+ #include <libavutil/avstring.h>
+
+ #include "decplugin.h"
+ #include "asf_decoder.h"
+
++#if (LIBAVCODEC_VERSION_MAJOR > 54)
++#define CodecID AVCodecID
++#define CODEC_ID_NONE AV_CODEC_ID_NONE
++#define CODEC_ID_WMV1 AV_CODEC_ID_WMV1
++#define CODEC_ID_WMV2 AV_CODEC_ID_WMV2
++#define CODEC_ID_WMV3 AV_CODEC_ID_WMV3
++#define CODEC_ID_DVVIDEO AV_CODEC_ID_DVVIDEO
++#define CODEC_ID_MPEG4 AV_CODEC_ID_MPEG4
++#define CODEC_ID_H264 AV_CODEC_ID_H264
++#define CODEC_ID_MPEG1VIDEO AV_CODEC_ID_MPEG1VIDEO
++#define CODEC_ID_MPEG2VIDEO AV_CODEC_ID_MPEG2VIDEO
++#endif
++
++#ifndef FF_API_AVCODEC_OPEN
++#define FF_API_AVCODEC_OPEN (LIBAVCODEC_VERSION_MAJOR < 55)
++#endif
++
++
++#if FF_API_AVCODEC_OPEN
++#define avcodec_open2(a, b, c) avcodec_open(a, b)
++#endif
++
++
+
+ static enum CodecID ff_codec_get_id(const AVCodecTag *tags, unsigned int tag)
+ {
+@@ -2003,7 +2023,8 @@
+ return FALSE;
+ }
+
+- if ((retval=avcodec_open(vidst->codec, codec)) < 0) {
++
++ if ((retval=avcodec_open2(vidst->codec, codec, NULL)) < 0) {
+ fprintf(stderr, "asf_decoder: Could not open avcodec context (%d) %d\n",retval,vidst->codec->frame_number);
+ detach_stream(cdata);
+ return FALSE;
+@@ -2323,6 +2344,9 @@
+ cdata->asigned=TRUE;
+ cdata->ainterleaf=TRUE;
+
++ av_free(priv->picture);
++ priv->picture=NULL;
++
+ return cdata;
+ }
+
+@@ -2470,6 +2494,7 @@
+ priv->ctx->skip_frame=AVDISCARD_NONREF;
+
+ priv->last_frame=tframe;
++ if (priv->picture==NULL) priv->picture = avcodec_alloc_frame();
+
+
+ // do this until we reach target frame //////////////
+@@ -2520,7 +2545,7 @@
+
+ }
+
+- if (pixel_data==NULL) return TRUE;
++ if (priv->picture==NULL||pixel_data==NULL) return TRUE;
+
+ if (priv->black_fill) btop=cdata->frame_height;
+
diff --git a/multimedia/lives/files/patch-lives-plugins__plugins__decoders__flv_decoder.c b/multimedia/lives/files/patch-lives-plugins__plugins__decoders__flv_decoder.c
new file mode 100644
index 000000000000..640b95624731
--- /dev/null
+++ b/multimedia/lives/files/patch-lives-plugins__plugins__decoders__flv_decoder.c
@@ -0,0 +1,121 @@
+--- ./lives-plugins/plugins/decoders/flv_decoder.c.orig 2013-06-17 03:25:02.000000000 +0200
++++ ./lives-plugins/plugins/decoders/flv_decoder.c 2013-10-15 12:40:21.000000000 +0200
+@@ -59,10 +59,34 @@
+ #include <libavformat/avformat.h>
+ #include <libavutil/avstring.h>
+ #include <libavcodec/avcodec.h>
++#include <libavcodec/version.h>
+
+ #include "decplugin.h"
+ #include "flv_decoder.h"
+
++
++#if (LIBAVCODEC_VERSION_MAJOR > 54)
++#define CodecID AVCodecID
++#define CODEC_ID_NONE AV_CODEC_ID_NONE
++#define CODEC_ID_FLV1 AV_CODEC_ID_FLV1
++#define CODEC_ID_FLASHSV AV_CODEC_ID_FLASHSV
++#define CODEC_ID_FLASHSV2 AV_CODEC_ID_FLASHSV2
++#define CODEC_ID_VP6A AV_CODEC_ID_VP6A
++#define CODEC_ID_VP6F AV_CODEC_ID_VP6F
++#define CODEC_ID_H264 AV_CODEC_ID_H264
++#endif
++
++#ifndef FF_API_AVCODEC_OPEN
++#define FF_API_AVCODEC_OPEN (LIBAVCODEC_VERSION_MAJOR < 55)
++#endif
++
++
++#if FF_API_AVCODEC_OPEN
++#define avcodec_open2(a, b, c) avcodec_open(a, b)
++#endif
++
++
++
+ ////////////////////////////////////////////////////////////////////////////
+
+
+@@ -528,7 +552,7 @@
+ double num_val,fps;
+
+ AVCodec *codec=NULL;
+- AVCodecContext *ctx;
++ AVCodecContext *ctx=NULL;
+
+ boolean got_picture=FALSE,got_avcextradata=FALSE;
+
+@@ -754,7 +778,7 @@
+
+ if (!hasaudio) got_astream=TRUE;
+
+- priv->ctx=ctx = avcodec_alloc_context();
++ priv->ctx = NULL;
+
+ sprintf(cdata->audio_name,"%s","");
+
+@@ -883,6 +907,9 @@
+ priv->pack_offset=2;
+ break;
+ case FLV_CODECID_VP6A :
++ codec = avcodec_find_decoder(CODEC_ID_VP6A);
++ priv->ctx = ctx = avcodec_alloc_context3(codec);
++
+ sprintf(cdata->video_name,"%s","vp6a");
+ cdata->offs_x=(pack.data[1]&0X0F)>>1; // divide by 2 for offset
+ cdata->offs_y=(pack.data[1]&0XF0)>>5; // divide by 2 for offset
+@@ -894,7 +921,6 @@
+ }
+ ctx->extradata[0] = pack.data[1];
+
+- codec = avcodec_find_decoder(CODEC_ID_VP6A);
+ priv->pack_offset=2;
+ break;
+ case FLV_CODECID_H264:
+@@ -915,6 +941,8 @@
+
+ }
+
++
++
+ #ifdef DEBUG
+ fprintf(stderr,"video type is %s %d x %d (%d x %d +%d +%d)\n",cdata->video_name,
+ cdata->width,cdata->height,cdata->frame_width,cdata->frame_height,cdata->offs_x,cdata->offs_y);
+@@ -928,7 +956,10 @@
+ return FALSE;
+ }
+
+- if (avcodec_open(ctx, codec) < 0) {
++ if (ctx==NULL)
++ priv->ctx = ctx = avcodec_alloc_context3(codec);
++
++ if (avcodec_open2(ctx, codec, NULL) < 0) {
+ fprintf(stderr, "flv_decoder: Could not open avcodec context\n");
+ detach_stream(cdata);
+ return FALSE;
+@@ -1309,6 +1340,9 @@
+ cdata->asigned=TRUE;
+ cdata->ainterleaf=TRUE;
+
++ av_free(priv->picture);
++ priv->picture=NULL;
++
+ return cdata;
+ }
+
+@@ -1451,6 +1485,7 @@
+ priv->ctx->skip_frame=AVDISCARD_NONREF;
+
+ priv->last_frame=tframe;
++ if (priv->picture==NULL) priv->picture = avcodec_alloc_frame();
+
+
+ // do this until we reach target frame //////////////
+@@ -1520,7 +1555,7 @@
+
+ }
+
+- if (pixel_data==NULL) return TRUE;
++ if (priv->picture==NULL||pixel_data==NULL) return TRUE;
+
+ for (p=0;p<nplanes;p++) {
+ dst=pixel_data[p];
diff --git a/multimedia/lives/files/patch-lives-plugins__plugins__decoders__mkv_decoder.c b/multimedia/lives/files/patch-lives-plugins__plugins__decoders__mkv_decoder.c
new file mode 100644
index 000000000000..2cc5403e7f03
--- /dev/null
+++ b/multimedia/lives/files/patch-lives-plugins__plugins__decoders__mkv_decoder.c
@@ -0,0 +1,121 @@
+--- ./lives-plugins/plugins/decoders/mkv_decoder.c.orig 2013-06-17 03:25:33.000000000 +0200
++++ ./lives-plugins/plugins/decoders/mkv_decoder.c 2013-10-15 12:40:20.000000000 +0200
+@@ -36,6 +36,7 @@
+ #include <fcntl.h>
+ #include <unistd.h>
+ #include <stdlib.h>
++#include <ctype.h>
+ #include <sys/stat.h>
+
+ const char *plugin_version="LiVES mkv decoder version 1.2";
+@@ -63,17 +64,61 @@
+
+ #include <libavformat/avformat.h>
+ #include <libavutil/avstring.h>
++#include <libavcodec/version.h>
+ #include <libavutil/mem.h>
+
+ #include "decplugin.h"
+
+-#include "mkv_decoder.h"
+-
+ #include <libavutil/intfloat_readwrite.h>
+ #include <libavutil/intreadwrite.h>
+ #include <libavutil/lzo.h>
+ #include <libavutil/dict.h>
+
++
++#if (LIBAVCODEC_VERSION_MAJOR > 54)
++#define CodecID AVCodecID
++#define CODEC_ID_NONE AV_CODEC_ID_NONE
++#define CODEC_ID_TEXT AV_CODEC_ID_TEXT
++#define CODEC_ID_SSA AV_CODEC_ID_SSA
++#define CODEC_ID_VP8 AV_CODEC_ID_VP8
++#define CODEC_ID_THEORA AV_CODEC_ID_THEORA
++#define CODEC_ID_SNOW AV_CODEC_ID_SNOW
++#define CODEC_ID_DIRAC AV_CODEC_ID_DIRAC
++#define CODEC_ID_MJPEG AV_CODEC_ID_MJPEG
++#define CODEC_ID_MPEG1VIDEO AV_CODEC_ID_MPEG1VIDEO
++#define CODEC_ID_MPEG2VIDEO AV_CODEC_ID_MPEG2VIDEO
++#define CODEC_ID_MPEG4 AV_CODEC_ID_MPEG4
++#define CODEC_ID_H264 AV_CODEC_ID_H264
++#define CODEC_ID_MSMPEG4V3 AV_CODEC_ID_MSMPEG4V3
++#define CODEC_ID_RV10 AV_CODEC_ID_RV10
++#define CODEC_ID_RV20 AV_CODEC_ID_RV20
++#define CODEC_ID_RV30 AV_CODEC_ID_RV30
++#define CODEC_ID_RV40 AV_CODEC_ID_RV40
++#define CODEC_ID_RAWVIDEO AV_CODEC_ID_RAWVIDEO
++#endif
++
++#ifndef FF_API_AVCODEC_OPEN
++#define FF_API_AVCODEC_OPEN (LIBAVCODEC_VERSION_MAJOR < 55)
++#endif
++
++
++#if FF_API_AVCODEC_OPEN
++#define avcodec_open2(a, b, c) avcodec_open(a, b)
++#endif
++
++#ifndef FF_API_ALLOC_CONTEXT
++#define FF_API_ALLOC_CONTEXT (LIBAVCODEC_VERSION_MAJOR < 55)
++#endif
++
++
++#if FF_API_ALLOC_CONTEXT
++#define avcodec_alloc_context3(a) avcodec_alloc_context()
++#endif
++
++
++#include "mkv_decoder.h"
++
++
+ #if CONFIG_ZLIB
+ #include <zlib.h>
+ #endif
+@@ -96,7 +141,6 @@
+ };
+
+
+-
+ static enum CodecID ff_codec_get_id(const AVCodecTag *tags, unsigned int tag)
+ {
+ int i;
+@@ -1748,9 +1792,9 @@
+ return FALSE;
+ }
+
+- priv->ctx = ctx = avcodec_alloc_context();
++ priv->ctx = ctx = avcodec_alloc_context3(codec);
+
+- if (avcodec_open(ctx, codec) < 0) {
++ if (avcodec_open2(ctx, codec, NULL) < 0) {
+ fprintf(stderr, "mkv_decoder: Could not open avcodec context for codec\n");
+ detach_stream(cdata);
+ return FALSE;
+@@ -2076,6 +2120,9 @@
+ cdata->asigned=TRUE;
+ cdata->ainterleaf=TRUE;
+
++ av_free(priv->picture);
++ priv->picture=NULL;
++
+ return cdata;
+ }
+
+@@ -2604,6 +2651,7 @@
+ //priv->ctx->skip_frame=AVDISCARD_NONREF;
+
+ priv->last_frame=tframe;
++ if (priv->picture==NULL) priv->picture = avcodec_alloc_frame();
+
+ // do this until we reach target frame //////////////
+
+@@ -2640,7 +2688,7 @@
+
+ }
+
+- if (pixel_data==NULL) return TRUE;
++ if (priv->picture==NULL||pixel_data==NULL) return TRUE;
+
+ for (p=0;p<nplanes;p++) {
+ dst=pixel_data[p];
diff --git a/multimedia/lives/files/patch-lives-plugins__plugins__decoders__mkv_decoder.h b/multimedia/lives/files/patch-lives-plugins__plugins__decoders__mkv_decoder.h
new file mode 100644
index 000000000000..d8ff988b7cd7
--- /dev/null
+++ b/multimedia/lives/files/patch-lives-plugins__plugins__decoders__mkv_decoder.h
@@ -0,0 +1,13 @@
+--- ./lives-plugins/plugins/decoders/mkv_decoder.h.orig 2012-09-17 16:20:55.000000000 +0200
++++ ./lives-plugins/plugins/decoders/mkv_decoder.h 2013-10-14 16:49:16.000000000 +0200
+@@ -262,7 +262,9 @@
+ const char *native;
+ const char *generic;
+ };
+-#if !FF_API_OLD_METADATA2
++
++#if FF_API_OLD_METADATA2
++#else
+ typedef struct AVMetadataConv AVMetadataConv;
+ #endif
+
diff --git a/multimedia/lives/files/patch-lives-plugins__plugins__decoders__mpegts_decoder.c b/multimedia/lives/files/patch-lives-plugins__plugins__decoders__mpegts_decoder.c
index f8852df2442c..8fb38f442383 100644
--- a/multimedia/lives/files/patch-lives-plugins__plugins__decoders__mpegts_decoder.c
+++ b/multimedia/lives/files/patch-lives-plugins__plugins__decoders__mpegts_decoder.c
@@ -1,7 +1,10 @@
---- ./lives-plugins/plugins/decoders/mpegts_decoder.c.orig 2012-06-25 19:55:35.000000000 +0200
-+++ ./lives-plugins/plugins/decoders/mpegts_decoder.c 2012-06-25 19:57:03.000000000 +0200
-@@ -29,9 +29,6 @@
+--- ./lives-plugins/plugins/decoders/mpegts_decoder.c.orig 2013-03-13 04:33:33.000000000 +0100
++++ ./lives-plugins/plugins/decoders/mpegts_decoder.c 2013-10-27 21:18:32.478233114 +0100
+@@ -27,11 +27,9 @@
+ #include <fcntl.h>
+ #include <unistd.h>
#include <stdlib.h>
++#include <ctype.h>
#include <sys/stat.h>
-#ifndef IS_MINGW
@@ -10,3 +13,115 @@
const char *plugin_version="LiVES mpegts decoder version 1.0";
+@@ -55,27 +53,69 @@
+
+ #include "decplugin.h"
+
++
+ #include <libavformat/avformat.h>
+ #include <libavutil/opt.h>
+ #include <libavutil/crc.h>
+ #include <libavutil/avstring.h>
+ #include <libavutil/mem.h>
+ #include <libavcodec/avcodec.h>
++#include <libavcodec/version.h>
+
+ #include "mpegts_decoder.h"
+
++#ifndef FF_API_OLD_AVOPTIONS
++#define FF_API_OLD_AVOPTIONS (LIBAVUTIL_VERSION_MAJOR < 53)
++#endif
++
++#if FF_API_OLD_AVOPTIONS
++#define AV_OPT_TYPE_INT FF_OPT_TYPE_INT
++#endif
+
+ #ifndef offsetof
+-# define offsetof(T, F) ((unsigned int)((char *)&((T *)0)->F))
++#define offsetof(T, F) ((unsigned int)((char *)&((T *)0)->F))
+ #endif
+
+-#ifndef AV_OPT_TYPE_INT
+-#define AV_OPT_TYPE_INT FF_OPT_TYPE_INT
++
++#if (LIBAVCODEC_VERSION_MAJOR > 54)
++#define CodecID AVCodecID
++#define CODEC_ID_NONE AV_CODEC_ID_NONE
++#define CODEC_ID_MPEG1VIDEO AV_CODEC_ID_MPEG1VIDEO
++#define CODEC_ID_MPEG2VIDEO AV_CODEC_ID_MPEG2VIDEO
++#define CODEC_ID_MPEG4 AV_CODEC_ID_MPEG4
++#define CODEC_ID_H264 AV_CODEC_ID_H264
++#define CODEC_ID_DIRAC AV_CODEC_ID_DIRAC
++#define CODEC_ID_MP3 AV_CODEC_ID_MP3
++#define CODEC_ID_AAC AV_CODEC_ID_AAC
++#define CODEC_ID_VC1 AV_CODEC_ID_VC1
++#define CODEC_ID_PCM_BLURAY AV_CODEC_ID_PCM_BLURAY
++#define CODEC_ID_AC3 AV_CODEC_ID_AC3
++#define CODEC_ID_EAC3 AV_CODEC_ID_EAC3
++#define CODEC_ID_DTS AV_CODEC_ID_DTS
++#define CODEC_ID_TRUEHD AV_CODEC_ID_TRUEHD
++#define CODEC_ID_S302M AV_CODEC_ID_S302M
++#define CODEC_ID_DVB_TELETEXT AV_CODEC_ID_DVB_TELETEXT
++#define CODEC_ID_DVB_SUBTITLE AV_CODEC_ID_DVB_SUBTITLE
++#endif
++
++#ifndef FF_API_AVCODEC_OPEN
++#define FF_API_AVCODEC_OPEN (LIBAVCODEC_VERSION_MAJOR < 55)
+ #endif
+
+
++#if FF_API_AVCODEC_OPEN
++#define avcodec_open2(a, b, c) avcodec_open(a, b)
++#endif
+
+
++#ifndef FF_API_ALLOC_CONTEXT
++#define FF_API_ALLOC_CONTEXT (LIBAVCODEC_VERSION_MAJOR < 55)
++#endif
++
++
++#if FF_API_ALLOC_CONTEXT
++#define avcodec_alloc_context3(a) avcodec_alloc_context()
++#endif
+
+ /**
+ * Read 1-25 bits.
+@@ -3064,9 +3104,9 @@
+ return FALSE;
+ }
+
+- priv->ctx = ctx = avcodec_alloc_context();
++ priv->ctx = ctx = avcodec_alloc_context3(codec);
+
+- if (avcodec_open(ctx, codec) < 0) {
++ if (avcodec_open2(ctx, codec, NULL) < 0) {
+ fprintf(stderr, "mpegts_decoder: Could not open avcodec context\n");
+ detach_stream(cdata);
+ return FALSE;
+@@ -3292,6 +3332,9 @@
+ fprintf(stderr,"fps is %.4f %ld %ld %ld\n",cdata->fps,cdata->nframes,ldts,priv->start_dts);
+ #endif
+
++ av_free(priv->picture);
++ priv->picture=NULL;
++
+ return TRUE;
+ }
+
+@@ -3517,6 +3560,7 @@
+ //priv->ctx->skip_frame=AVDISCARD_NONREF;
+
+ priv->last_frame=tframe;
++ if (priv->picture==NULL) priv->picture = avcodec_alloc_frame();
+
+ // do this until we reach target frame //////////////
+
+@@ -3554,7 +3598,7 @@
+
+ }
+
+- if (pixel_data==NULL) return TRUE;
++ if (priv->picture==NULL||pixel_data==NULL) return TRUE;
+
+ for (p=0;p<nplanes;p++) {
+ dst=pixel_data[p];
diff --git a/multimedia/lives/files/patch-lives-plugins__plugins__playback__video__lives2lives_stream.c b/multimedia/lives/files/patch-lives-plugins__plugins__playback__video__lives2lives_stream.c
index 51b56a424d51..a4ffbb20448e 100644
--- a/multimedia/lives/files/patch-lives-plugins__plugins__playback__video__lives2lives_stream.c
+++ b/multimedia/lives/files/patch-lives-plugins__plugins__playback__video__lives2lives_stream.c
@@ -1,5 +1,5 @@
---- ./lives-plugins/plugins/playback/video/lives2lives_stream.c.orig 2012-06-25 19:50:48.000000000 +0200
-+++ ./lives-plugins/plugins/playback/video/lives2lives_stream.c 2012-06-25 19:51:14.000000000 +0200
+--- ./lives-plugins/plugins/playback/video/lives2lives_stream.c.orig 2013-03-16 13:14:33.000000000 +0100
++++ ./lives-plugins/plugins/playback/video/lives2lives_stream.c 2013-10-27 21:11:48.511145328 +0100
@@ -8,7 +8,7 @@
#include <inttypes.h>
#include <sys/types.h>
diff --git a/multimedia/lives/files/patch-src__htmsocket.c b/multimedia/lives/files/patch-src__htmsocket.c
index daa2ab8e655a..f9767198586c 100644
--- a/multimedia/lives/files/patch-src__htmsocket.c
+++ b/multimedia/lives/files/patch-src__htmsocket.c
@@ -1,5 +1,5 @@
---- ./src/htmsocket.c.orig 2012-06-25 19:47:03.000000000 +0200
-+++ ./src/htmsocket.c 2012-06-25 19:48:09.000000000 +0200
+--- ./src/htmsocket.c.orig 2013-07-03 02:29:02.000000000 +0200
++++ ./src/htmsocket.c 2013-10-27 21:11:48.514119239 +0100
@@ -8,7 +8,7 @@
#include <stdio.h>
#include <unistd.h>
diff --git a/multimedia/lives/files/patch-src__main.h b/multimedia/lives/files/patch-src__main.h
index d4a36dcf5fe4..6c6571910dc7 100644
--- a/multimedia/lives/files/patch-src__main.h
+++ b/multimedia/lives/files/patch-src__main.h
@@ -1,7 +1,7 @@
---- ./src/main.h.orig 2012-06-24 16:20:15.000000000 +0200
-+++ ./src/main.h 2012-06-25 19:43:27.000000000 +0200
-@@ -98,6 +98,7 @@
- #endif // GUI_GTK
+--- ./src/main.h.orig 2013-07-12 05:54:50.000000000 +0200
++++ ./src/main.h 2013-10-27 21:11:48.518161862 +0100
+@@ -144,6 +144,7 @@
+
#include <stdlib.h>
+#include <sys/stat.h>
diff --git a/multimedia/lives/files/patch-src__plugins.h b/multimedia/lives/files/patch-src__plugins.h
index a73e8d75facb..4b825b564e83 100644
--- a/multimedia/lives/files/patch-src__plugins.h
+++ b/multimedia/lives/files/patch-src__plugins.h
@@ -1,5 +1,5 @@
---- src/plugins.h.orig 2012-08-17 16:05:34.000000000 +0200
-+++ src/plugins.h 2012-08-17 16:10:09.000000000 +0200
+--- ./src/plugins.h.orig 2013-07-24 18:43:57.000000000 +0200
++++ ./src/plugins.h 2013-10-27 21:11:48.521162174 +0100
@@ -12,7 +12,7 @@
#include <string.h>
#include <fcntl.h>
diff --git a/multimedia/lives/pkg-plist b/multimedia/lives/pkg-plist
index 3b472f054d17..5f6543fdaf25 100644
--- a/multimedia/lives/pkg-plist
+++ b/multimedia/lives/pkg-plist
@@ -109,6 +109,8 @@ lib/lives/plugins/effects/realtime/weed/haar_analyser.la
lib/lives/plugins/effects/realtime/weed/haar_analyser.so
lib/lives/plugins/effects/realtime/weed/haip.la
lib/lives/plugins/effects/realtime/weed/haip.so
+lib/lives/plugins/effects/realtime/weed/kaleidoscope.la
+lib/lives/plugins/effects/realtime/weed/kaleidoscope.so
lib/lives/plugins/effects/realtime/weed/ladspa.la
lib/lives/plugins/effects/realtime/weed/ladspa.so
lib/lives/plugins/effects/realtime/weed/layout_blends.la
@@ -442,7 +444,6 @@ share/pixmaps/lives.xpm
@dirrm lib/lives/plugins/encoders
@dirrm lib/lives/plugins/effects/rendered
@dirrm lib/lives/plugins/effects/realtime/weed/libvisual
-@dirrm lib/lives/plugins/effects/realtime/weed/icons
%%FREI0R%%@dirrm lib/lives/plugins/effects/realtime/weed/frei0r
@dirrm lib/lives/plugins/effects/realtime/weed/data/fourKlives/songs
@dirrm lib/lives/plugins/effects/realtime/weed/data/fourKlives