summaryrefslogtreecommitdiff
path: root/multimedia/cinelerra/patches
diff options
context:
space:
mode:
authorDanny Schmarsel <danny@schmarsel.de>2015-10-23 11:50:19 +0700
committerWilly Sudiarto Raharjo <willysr@slackbuilds.org>2015-10-23 11:50:39 +0700
commit9c6ab49f59ff66d2291677731b4787ded1ba5f6c (patch)
tree9dcddcdc20df5970b43ea0152e0562358ef5abda /multimedia/cinelerra/patches
parenta9902270f25119680ae5af532d83b9ec4b74a35e (diff)
downloadslackbuilds-9c6ab49f59ff66d2291677731b4787ded1ba5f6c.tar.gz
multimedia/cinelerra: Updated for version cv_2.3.
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'multimedia/cinelerra/patches')
-rw-r--r--multimedia/cinelerra/patches/01-cinelerra-entry.patch14
-rw-r--r--multimedia/cinelerra/patches/02-cinelerra-ffmpeg.patch76
-rw-r--r--multimedia/cinelerra/patches/04-cinelerra-ffmpeg-0.11.patch156
-rw-r--r--multimedia/cinelerra/patches/05-cinelerra-std_and_str_h.patch81
-rw-r--r--multimedia/cinelerra/patches/06-cinelerra-libav9.patch93
-rw-r--r--multimedia/cinelerra/patches/07-cinelerra-ffmpeg2.patch218
-rw-r--r--multimedia/cinelerra/patches/cinelerra-cv-ffmpeg2.0.patch98
-rw-r--r--multimedia/cinelerra/patches/cinelerra-cv-ffmpeg_api2.2.patch200
8 files changed, 298 insertions, 638 deletions
diff --git a/multimedia/cinelerra/patches/01-cinelerra-entry.patch b/multimedia/cinelerra/patches/01-cinelerra-entry.patch
deleted file mode 100644
index 5ece08c419..0000000000
--- a/multimedia/cinelerra/patches/01-cinelerra-entry.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- a/image/cinelerra.desktop
-+++ b/image/cinelerra.desktop
-@@ -5,9 +5,8 @@
- Name[fr]=Cinelerra
- Name[es]=Cinelerra
- Comment=Video Editor
--Categories=Application;AudioVideo;Multimedia;
--Encoding=UTF-8
-+Categories=AudioVideo;
- Exec=cinelerra
--Icon=cinelerra.xpm
-+Icon=cinelerra
- Terminal=false
- Type=Application
diff --git a/multimedia/cinelerra/patches/02-cinelerra-ffmpeg.patch b/multimedia/cinelerra/patches/02-cinelerra-ffmpeg.patch
deleted file mode 100644
index 6f7962fb1a..0000000000
--- a/multimedia/cinelerra/patches/02-cinelerra-ffmpeg.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-Fix build with ffmpeg/libav trunk / 0.7
-
-Index: cinelerra-20101104/cinelerra/ffmpeg.C
-===================================================================
---- cinelerra-20101104.orig/cinelerra/ffmpeg.C
-+++ cinelerra-20101104/cinelerra/ffmpeg.C
-@@ -364,12 +364,15 @@ int FFMPEG::decode(uint8_t *data, long d
-
- // NOTE: frame must already have data space allocated
-
-+ AVPacket pkt;
- got_picture = 0;
-- int length = avcodec_decode_video(context,
-+ av_init_packet( &pkt );
-+ pkt.data = data;
-+ pkt.size = data_size;
-+ int length = avcodec_decode_video2(context,
- picture,
- &got_picture,
-- data,
-- data_size);
-+ &pkt);
-
- if (length < 0) {
- printf("FFMPEG::decode error decoding frame\n");
-Index: cinelerra-20101104/quicktime/qtffmpeg.c
-===================================================================
---- cinelerra-20101104.orig/quicktime/qtffmpeg.c
-+++ cinelerra-20101104/quicktime/qtffmpeg.c
-@@ -181,6 +181,7 @@ static int decode_wrapper(quicktime_t *f
-
- if(!result)
- {
-+ AVPacket pkt;
-
-
- // No way to determine if there was an error based on nonzero status.
-@@ -189,11 +190,13 @@ static int decode_wrapper(quicktime_t *f
- ffmpeg->decoder_context[current_field]->skip_frame = AVDISCARD_NONREF /* AVDISCARD_BIDIR */;
- else
- ffmpeg->decoder_context[current_field]->skip_frame = AVDISCARD_DEFAULT;
-- result = avcodec_decode_video(ffmpeg->decoder_context[current_field],
-+ av_init_packet( &pkt );
-+ pkt.data = ffmpeg->work_buffer;
-+ pkt.size = bytes + header_bytes;
-+ result = avcodec_decode_video2(ffmpeg->decoder_context[current_field],
- &ffmpeg->picture[current_field],
- &got_picture,
-- ffmpeg->work_buffer,
-- bytes + header_bytes);
-+ &pkt);
-
-
-
-Index: cinelerra-20101104/quicktime/wma.c
-===================================================================
---- cinelerra-20101104.orig/quicktime/wma.c
-+++ cinelerra-20101104/quicktime/wma.c
-@@ -195,11 +195,14 @@ printf("decode 2 %x %llx %llx\n", chunk_
- chunk_size);
- #else
- bytes_decoded = AVCODEC_MAX_AUDIO_FRAME_SIZE;
-- result = avcodec_decode_audio2(codec->decoder_context,
-+ AVPacket pkt;
-+ av_init_packet( &pkt );
-+ pkt.data = codec->packet_buffer;
-+ pkt.size = chunk_size;
-+ result = avcodec_decode_audio3(codec->decoder_context,
- (int16_t*)(codec->work_buffer + codec->output_size * sample_size),
- &bytes_decoded,
-- codec->packet_buffer,
-- chunk_size);
-+ &pkt);
- #endif
-
- pthread_mutex_unlock(&ffmpeg_lock);
diff --git a/multimedia/cinelerra/patches/04-cinelerra-ffmpeg-0.11.patch b/multimedia/cinelerra/patches/04-cinelerra-ffmpeg-0.11.patch
deleted file mode 100644
index 6d59cc8408..0000000000
--- a/multimedia/cinelerra/patches/04-cinelerra-ffmpeg-0.11.patch
+++ /dev/null
@@ -1,156 +0,0 @@
-Let it build with ffmpeg-0.11
-
-Index: cinelerra-20111223/cinelerra/ffmpeg.C
-===================================================================
---- cinelerra-20111223.orig/cinelerra/ffmpeg.C
-+++ cinelerra-20111223/cinelerra/ffmpeg.C
-@@ -23,7 +23,6 @@ FFMPEG::FFMPEG(Asset *asset) {
-
- int FFMPEG::init(char *codec_string) {
-
-- avcodec_init();
- avcodec_register_all();
-
- CodecID id = codec_id(codec_string);
-Index: cinelerra-20111223/cinelerra/fileac3.C
-===================================================================
---- cinelerra-20111223.orig/cinelerra/fileac3.C
-+++ cinelerra-20111223/cinelerra/fileac3.C
-@@ -84,7 +84,6 @@ int FileAC3::open_file(int rd, int wr)
-
- if(wr)
- {
-- avcodec_init();
- avcodec_register_all();
- codec = avcodec_find_encoder(CODEC_ID_AC3);
- if(!codec)
-Index: cinelerra-20111223/configure.in
-===================================================================
---- cinelerra-20111223.orig/configure.in
-+++ cinelerra-20111223/configure.in
-@@ -338,7 +338,7 @@ AC_SUBST(CPU_CFLAGS)
- AC_ARG_WITH([external-ffmpeg], AC_HELP_STRING([--with-external-ffmpeg], [use external ffmpeg library]))
-
- if test "x$with_external_ffmpeg" = "xyes"; then
-- PKG_CHECK_MODULES([FFMPEG_TEMP], [libavcodec libpostproc])
-+ PKG_CHECK_MODULES([FFMPEG_TEMP], [libavcodec libpostproc libavutil])
- FFMPEG_FOLDER=""
- FFMPEG_EXTERNALTEXT="External ffmpeg"
-
-@@ -356,10 +356,10 @@ if test "x$with_external_ffmpeg" = "xyes
- AC_MSG_RESULT($enable_ffmpeg_swscale)
- if test x"$enable_ffmpeg_swscale" = xyes; then
- dnl AC_DEFINE(HAVE_SWSCALER)
-- PKG_CHECK_MODULES([FFMPEG], [libavcodec libpostproc libswscale])
-+ PKG_CHECK_MODULES([FFMPEG], [libavcodec libpostproc libswscale libavutil])
- FFMPEG_CFLAGS="$FFMPEG_CFLAGS -I/usr/include/libavcodec -I/usr/include/libswscale -DHAVE_SWSCALER"
- else
-- PKG_CHECK_MODULES([FFMPEG], [libavcodec libpostproc])
-+ PKG_CHECK_MODULES([FFMPEG], [libavcodec libpostproc libavutil])
- fi
- FFMPEG_EXTERNALTEXT="External ffmpeg"
- else
-Index: cinelerra-20111223/quicktime/mpeg4.c
-===================================================================
---- cinelerra-20111223.orig/quicktime/mpeg4.c
-+++ cinelerra-20111223/quicktime/mpeg4.c
-@@ -8,6 +8,7 @@
-
-
- #include "libavcodec/avcodec.h"
-+#include "libavutil/dict.h"
- #include "colormodels.h"
- #include "funcprotos.h"
- #include "qtffmpeg.h"
-@@ -624,12 +625,12 @@ static int encode(quicktime_t *file, uns
- else
- // ffmpeg section
- {
-+ AVDictionary ** opts = NULL;
- static char *video_rc_eq="tex^qComp";
- codec->encode_initialized[current_field] = 1;
- if(!ffmpeg_initialized)
- {
- ffmpeg_initialized = 1;
-- avcodec_init();
- avcodec_register_all();
- }
-
-@@ -673,8 +674,10 @@ static int encode(quicktime_t *file, uns
- context->b_quant_offset = 1.25;
- #if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0)
- context->error_resilience = FF_ER_CAREFUL;
--#else
-+#elif LIBAVCODEC_VERSION_INT < ((54<<16)+(0<<8)+0)
- context->error_recognition = FF_ER_CAREFUL;
-+#else
-+ context->err_recognition |= AV_EF_CAREFUL;
- #endif
- context->error_concealment = 3;
- context->frame_skip_cmp = FF_CMP_DCTMAX;
-@@ -699,7 +702,7 @@ static int encode(quicktime_t *file, uns
- context->profile= FF_PROFILE_UNKNOWN;
- context->rc_buffer_aggressivity = 1.0;
- context->level= FF_LEVEL_UNKNOWN;
-- context->flags |= CODEC_FLAG_H263P_UMV;
-+ av_dict_set(opts, "umv", "1", 0);
- context->flags |= CODEC_FLAG_AC_PRED;
-
- // All the forbidden settings can be extracted from libavcodec/mpegvideo.c of ffmpeg...
-@@ -717,10 +720,8 @@ static int encode(quicktime_t *file, uns
- (codec->ffmpeg_id == CODEC_ID_MPEG4 ||
- codec->ffmpeg_id == CODEC_ID_MPEG1VIDEO ||
- codec->ffmpeg_id == CODEC_ID_MPEG2VIDEO ||
-- codec->ffmpeg_id == CODEC_ID_H263P ||
-- codec->ffmpeg_id == CODEC_FLAG_H263P_SLICE_STRUCT))
-+ codec->ffmpeg_id == CODEC_ID_H263P ))
- {
-- avcodec_thread_init(context, file->cpus);
- context->thread_count = file->cpus;
- }
-
-@@ -740,7 +741,7 @@ static int encode(quicktime_t *file, uns
- * codec->fix_bitrate,
- * codec->quantizer);
- */
-- avcodec_open(context, codec->encoder[current_field]);
-+ avcodec_open2(context, codec->encoder[current_field], opts);
-
- avcodec_get_frame_defaults(&codec->picture[current_field]);
-
-Index: cinelerra-20111223/quicktime/qtffmpeg.c
-===================================================================
---- cinelerra-20111223.orig/quicktime/qtffmpeg.c
-+++ cinelerra-20111223/quicktime/qtffmpeg.c
-@@ -54,7 +54,6 @@ quicktime_ffmpeg_t* quicktime_new_ffmpeg
- if(!ffmpeg_initialized)
- {
- ffmpeg_initialized = 1;
-- avcodec_init();
- avcodec_register_all();
- }
-
-@@ -90,10 +89,8 @@ quicktime_ffmpeg_t* quicktime_new_ffmpeg
- (ffmpeg_id == CODEC_ID_MPEG4 ||
- ffmpeg_id == CODEC_ID_MPEG1VIDEO ||
- ffmpeg_id == CODEC_ID_MPEG2VIDEO ||
-- ffmpeg_id == CODEC_ID_H263P ||
-- ffmpeg_id == CODEC_FLAG_H263P_SLICE_STRUCT))
-+ ffmpeg_id == CODEC_ID_H263P ))
- {
-- avcodec_thread_init(context, cpus);
- context->thread_count = cpus;
- }
- if(avcodec_open(context,
-Index: cinelerra-20111223/quicktime/wma.c
-===================================================================
---- cinelerra-20111223.orig/quicktime/wma.c
-+++ cinelerra-20111223/quicktime/wma.c
-@@ -67,7 +67,6 @@ static int init_decode(quicktime_audio_m
- if(!ffmpeg_initialized)
- {
- ffmpeg_initialized = 1;
-- avcodec_init();
- avcodec_register_all();
- }
-
diff --git a/multimedia/cinelerra/patches/05-cinelerra-std_and_str_h.patch b/multimedia/cinelerra/patches/05-cinelerra-std_and_str_h.patch
deleted file mode 100644
index 66622a9c8e..0000000000
--- a/multimedia/cinelerra/patches/05-cinelerra-std_and_str_h.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-Include required headers for free(), memcpy(), strcpy(), bcopy(), and more
-Thanks to Martin von Gagern for reporting and initial patch
-See, http://bugs.gentoo.org/show_bug.cgi?id=465478
-
---- a/cinelerra/vdevicebuz.C
-+++ b/cinelerra/vdevicebuz.C
-@@ -49,6 +49,8 @@
- #include <sys/ioctl.h>
- #include <sys/mman.h>
- #include <unistd.h>
-+#include <string.h>
-+#include <strings.h>
-
- #define BASE_VIDIOCPRIVATE 192
-
---- a/cinelerra/videodevice.C
-+++ b/cinelerra/videodevice.C
-@@ -53,6 +53,7 @@
-
- #include <unistd.h>
- #include <fcntl.h>
-+#include <string.h>
-
- KeepaliveThread::KeepaliveThread(VideoDevice *device)
- : Thread()
---- a/libmpeg3/audio/ac3.c
-+++ b/libmpeg3/audio/ac3.c
-@@ -1,3 +1,4 @@
-+#include <stdlib.h>
- #include <stdint.h>
- #include <stdio.h>
-
---- a/libmpeg3/audio/layer3.c
-+++ b/libmpeg3/audio/layer3.c
-@@ -4,6 +4,7 @@
- #include "tables.h"
-
- #include <stdio.h>
-+#include <stdlib.h>
- #include <string.h>
-
- struct gr_info_s
---- a/mplexlo/mplex.c
-+++ b/mplexlo/mplex.c
-@@ -1,6 +1,6 @@
- #include <stdio.h>
- #include <stdlib.h>
--
-+#include <string.h>
-
- #include "libmpeg3.h"
- #include "mpeg3protos.h"
---- a/quicktime/graphics.c
-+++ b/quicktime/graphics.c
-@@ -1,5 +1,6 @@
- #include "graphics.h"
-
-+#include <stdlib.h>
- #include <string.h>
-
- /* Graphics acceleration routines */
---- a/quicktime/libmjpeg.c
-+++ b/quicktime/libmjpeg.c
-@@ -17,6 +17,7 @@
-
- #include <stdio.h>
- #include <stdlib.h>
-+#include <string.h>
- #include "colormodels.h"
- #include "libmjpeg.h"
-
---- a/quicktime/qtpng.c
-+++ b/quicktime/qtpng.c
-@@ -1,6 +1,7 @@
- #include "colormodels.h"
- #include "funcprotos.h"
- #include <png.h>
-+#include <string.h>
- #include "quicktime.h"
- #include "qtpng.h"
-
diff --git a/multimedia/cinelerra/patches/06-cinelerra-libav9.patch b/multimedia/cinelerra/patches/06-cinelerra-libav9.patch
deleted file mode 100644
index 47a4d6f231..0000000000
--- a/multimedia/cinelerra/patches/06-cinelerra-libav9.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-diff -urN cinelerra-20120707/cinelerra/ffmpeg.C /tmp/cinelerra-20120707/cinelerra/ffmpeg.C
---- cinelerra-20120707/cinelerra/ffmpeg.C 2013-06-22 18:07:43.632978553 +0200
-+++ /tmp/cinelerra-20120707/cinelerra/ffmpeg.C 2013-06-22 18:07:21.668979334 +0200
-@@ -32,9 +32,9 @@
- return 1;
- }
-
-- context = avcodec_alloc_context();
-+ context = avcodec_alloc_context3(NULL);
-
-- if (avcodec_open(context, codec)) {
-+ if (avcodec_open2(context, codec, NULL)) {
- printf("FFMPEG::init avcodec_open() failed\n");
- }
-
-diff -urN cinelerra-20120707/cinelerra/fileac3.C /tmp/cinelerra-20120707/cinelerra/fileac3.C
---- cinelerra-20120707/cinelerra/fileac3.C 2013-06-22 18:07:43.632978553 +0200
-+++ /tmp/cinelerra-20120707/cinelerra/fileac3.C 2013-06-22 18:07:21.668979334 +0200
-@@ -91,11 +91,11 @@
- eprintf("codec not found.\n");
- return 1;
- }
-- codec_context = avcodec_alloc_context();
-+ codec_context = avcodec_alloc_context3(NULL);
- codec_context->bit_rate = asset->ac3_bitrate * 1000;
- codec_context->sample_rate = asset->sample_rate;
- codec_context->channels = asset->channels;
-- if(avcodec_open(codec_context, codec))
-+ if(avcodec_open2(codec_context, codec, NULL))
- {
- eprintf("failed to open codec.\n");
- return 1;
-diff -urN cinelerra-20120707/quicktime/mpeg4.c /tmp/cinelerra-20120707/quicktime/mpeg4.c
---- cinelerra-20120707/quicktime/mpeg4.c 2013-06-22 18:07:43.633978553 +0200
-+++ /tmp/cinelerra-20120707/quicktime/mpeg4.c 2013-06-22 18:07:21.690979334 +0200
-@@ -642,7 +642,7 @@
- return 1;
- }
-
-- codec->encoder_context[current_field] = avcodec_alloc_context();
-+ codec->encoder_context[current_field] = avcodec_alloc_context3(NULL);
- AVCodecContext *context = codec->encoder_context[current_field];
-
- context->width = width_i;
-@@ -676,8 +676,6 @@
- context->error_resilience = FF_ER_CAREFUL;
- #elif LIBAVCODEC_VERSION_INT < ((54<<16)+(0<<8)+0)
- context->error_recognition = FF_ER_CAREFUL;
--#else
-- context->err_recognition |= AV_EF_CAREFUL;
- #endif
- context->error_concealment = 3;
- context->frame_skip_cmp = FF_CMP_DCTMAX;
-diff -urN cinelerra-20120707/quicktime/qtffmpeg.c /tmp/cinelerra-20120707/quicktime/qtffmpeg.c
---- cinelerra-20120707/quicktime/qtffmpeg.c 2013-06-22 18:07:43.633978553 +0200
-+++ /tmp/cinelerra-20120707/quicktime/qtffmpeg.c 2013-06-22 18:07:21.690979334 +0200
-@@ -67,7 +67,7 @@
- return 0;
- }
-
-- AVCodecContext *context = ptr->decoder_context[i] = avcodec_alloc_context();
-+ AVCodecContext *context = ptr->decoder_context[i] = avcodec_alloc_context3(NULL);
- static char fake_data[] = { 0, 0, 0, 0, 0, 0, 0, 0 };
- context->width = ptr->width_i;
- context->height = ptr->height_i;
-@@ -93,8 +93,8 @@
- {
- context->thread_count = cpus;
- }
-- if(avcodec_open(context,
-- ptr->decoder[i]) < 0)
-+ if(avcodec_open2(context,
-+ ptr->decoder[i], NULL) < 0)
- {
- printf("quicktime_new_ffmpeg: avcodec_open failed.\n");
- quicktime_delete_ffmpeg(ptr);
-diff -urN cinelerra-20120707/quicktime/wma.c /tmp/cinelerra-20120707/quicktime/wma.c
---- cinelerra-20120707/quicktime/wma.c 2013-06-22 18:07:43.634978553 +0200
-+++ /tmp/cinelerra-20120707/quicktime/wma.c 2013-06-22 18:07:21.690979334 +0200
-@@ -76,10 +76,10 @@
- printf("init_decode: avcodec_find_decoder returned NULL.\n");
- return 1;
- }
-- codec->decoder_context = avcodec_alloc_context();
-+ codec->decoder_context = avcodec_alloc_context3(NULL);
- codec->decoder_context->sample_rate = trak->mdia.minf.stbl.stsd.table[0].sample_rate;
- codec->decoder_context->channels = track_map->channels;
-- if(avcodec_open(codec->decoder_context, codec->decoder) < 0)
-+ if(avcodec_open2(codec->decoder_context, codec->decoder, NULL) < 0)
- {
- printf("init_decode: avcodec_open failed.\n");
- return 1;
-
diff --git a/multimedia/cinelerra/patches/07-cinelerra-ffmpeg2.patch b/multimedia/cinelerra/patches/07-cinelerra-ffmpeg2.patch
deleted file mode 100644
index eb172d1ce4..0000000000
--- a/multimedia/cinelerra/patches/07-cinelerra-ffmpeg2.patch
+++ /dev/null
@@ -1,218 +0,0 @@
-https://bugs.gentoo.org/show_bug.cgi?id=479394
-By Helmut Jarausch
-
---- a/cinelerra/ffmpeg.h.ORIG 2012-07-06 22:40:26.000000000 +0200
-+++ a/cinelerra/ffmpeg.h 2013-08-01 12:58:12.342474136 +0200
-@@ -26,7 +26,7 @@
- static int convert_cmodel_transfer(VFrame *frame_in,VFrame *frame_out);
- static int init_picture_from_frame(AVPicture *picture, VFrame *frame);
-
-- static CodecID codec_id(char *codec_string);
-+ static AVCodecID codec_id(char *codec_string);
-
- private:
- static PixelFormat color_model_to_pix_fmt(int color_model);
---- a/cinelerra/ffmpeg.C.ORIG 2013-08-01 11:24:43.794419246 +0200
-+++ a/cinelerra/ffmpeg.C 2013-08-01 12:57:48.121473899 +0200
-@@ -25,7 +25,7 @@
-
- avcodec_register_all();
-
-- CodecID id = codec_id(codec_string);
-+ AVCodecID id = codec_id(codec_string);
- codec = avcodec_find_decoder(id);
- if (codec == NULL) {
- printf("FFMPEG::init no decoder for '%s'", codec_string);
-@@ -51,7 +51,7 @@
- }
-
-
--CodecID FFMPEG::codec_id(char *codec_string) {
-+AVCodecID FFMPEG::codec_id(char *codec_string) {
- #define CODEC_IS(x) (! strncmp(codec_string, x, 4))
-
- if (CODEC_IS(QUICKTIME_DV) ||
---- a/quicktime/ffmpeg/ffmpeg.c.ORIG 2012-07-06 22:40:26.000000000 +0200
-+++ a/quicktime/ffmpeg/ffmpeg.c 2013-08-01 12:57:59.025474005 +0200
-@@ -2663,7 +2663,7 @@
- return 0;
- }
-
--static enum CodecID find_codec_or_die(const char *name, int type, int encoder)
-+static enum AVCodecID find_codec_or_die(const char *name, int type, int encoder)
- {
- const char *codec_string = encoder ? "encoder" : "decoder";
- AVCodec *codec;
---- a/quicktime/ffmpeg/libavformat/electronicarts.c.ORIG 2012-07-06 22:40:26.000000000 +0200
-+++ a/quicktime/ffmpeg/libavformat/electronicarts.c 2013-08-01 13:00:57.855475755 +0200
-@@ -49,11 +49,11 @@
- typedef struct EaDemuxContext {
- int big_endian;
-
-- enum CodecID video_codec;
-+ enum AVCodecID video_codec;
- AVRational time_base;
- int video_stream_index;
-
-- enum CodecID audio_codec;
-+ enum AVCodecID audio_codec;
- int audio_stream_index;
- int audio_frame_counter;
-
---- a/quicktime/ffmpeg/libavformat/img2.c.ORIG 2012-07-06 22:40:26.000000000 +0200
-+++ a/quicktime/ffmpeg/libavformat/img2.c 2013-08-01 12:59:21.408474812 +0200
-@@ -34,7 +34,7 @@
- } VideoData;
-
- typedef struct {
-- enum CodecID id;
-+ enum AVCodecID id;
- const char *str;
- } IdStrMap;
-
-@@ -97,7 +97,7 @@
- }
- return -1;
- }
--static enum CodecID av_str2id(const IdStrMap *tags, const char *str)
-+static enum AVCodecID av_str2id(const IdStrMap *tags, const char *str)
- {
- str= strrchr(str, '.');
- if(!str) return CODEC_ID_NONE;
-@@ -175,7 +175,7 @@
- return 0;
- }
-
--enum CodecID av_guess_image2_codec(const char *filename){
-+enum AVCodecID av_guess_image2_codec(const char *filename){
- return av_str2id(img_tags, filename);
- }
-
---- a/quicktime/ffmpeg/libavformat/matroskadec.c.ORIG 2012-07-06 22:40:26.000000000 +0200
-+++ a/quicktime/ffmpeg/libavformat/matroskadec.c 2013-08-01 12:59:57.556475165 +0200
-@@ -2476,7 +2476,7 @@
- AVStream *st;
-
- for (i = 0; i < matroska->num_tracks; i++) {
-- enum CodecID codec_id = CODEC_ID_NONE;
-+ enum AVCodecID codec_id = CODEC_ID_NONE;
- uint8_t *extradata = NULL;
- int extradata_size = 0;
- int extradata_offset = 0;
-@@ -2495,7 +2495,7 @@
- }
- }
-
-- /* Set the FourCC from the CodecID. */
-+ /* Set the FourCC from the AVCodecID. */
- /* This is the MS compatibility mode which stores a
- * BITMAPINFOHEADER in the CodecPrivate. */
- if (!strcmp(track->codec_id,
-@@ -2600,7 +2600,7 @@
-
- if (codec_id == CODEC_ID_NONE) {
- av_log(matroska->ctx, AV_LOG_INFO,
-- "Unknown/unsupported CodecID %s.\n",
-+ "Unknown/unsupported AVCodecID %s.\n",
- track->codec_id);
- }
-
---- a/quicktime/ffmpeg/libavformat/matroska.h.ORIG 2012-07-06 22:40:26.000000000 +0200
-+++ a/quicktime/ffmpeg/libavformat/matroska.h 2013-08-01 13:00:22.218475407 +0200
-@@ -220,12 +220,12 @@
-
- typedef struct CodecTags{
- char str[16];
-- enum CodecID id;
-+ enum AVCodecID id;
- }CodecTags;
-
- typedef struct CodecMime{
- char str[32];
-- enum CodecID id;
-+ enum AVCodecID id;
- }CodecMime;
-
- #define MATROSKA_CODEC_ID_VIDEO_VFW_FOURCC "V_MS/VFW/FOURCC"
---- a/quicktime/ffmpeg/libavformat/mov.c.ORIG 2012-07-06 22:40:26.000000000 +0200
-+++ a/quicktime/ffmpeg/libavformat/mov.c 2013-08-01 12:59:33.935474934 +0200
-@@ -678,7 +678,7 @@
-
- for(pseudo_stream_id=0; pseudo_stream_id<entries; pseudo_stream_id++) {
- //Parsing Sample description table
-- enum CodecID id;
-+ enum AVCodecID id;
- int dref_id;
- MOV_atom_t a = { 0, 0, 0 };
- offset_t start_pos = url_ftell(pb);
---- a/quicktime/ffmpeg/libavformat/mxf.c.ORIG 2012-07-06 22:40:26.000000000 +0200
-+++ a/quicktime/ffmpeg/libavformat/mxf.c 2013-08-01 12:59:12.025474720 +0200
-@@ -157,7 +157,7 @@
- typedef struct {
- UID uid;
- unsigned matching_len;
-- enum CodecID id;
-+ enum AVCodecID id;
- } MXFCodecUL;
-
- typedef struct {
---- a/quicktime/ffmpeg/libavformat/riff.h.ORIG 2012-07-06 22:40:26.000000000 +0200
-+++ a/quicktime/ffmpeg/libavformat/riff.h 2013-08-01 12:59:45.950475052 +0200
-@@ -48,7 +48,7 @@
- extern const AVCodecTag codec_wav_tags[];
-
- unsigned int codec_get_tag(const AVCodecTag *tags, int id);
--enum CodecID codec_get_id(const AVCodecTag *tags, unsigned int tag);
-+enum AVCodecID codec_get_id(const AVCodecTag *tags, unsigned int tag);
- void ff_parse_specific_params(AVCodecContext *stream, int *au_rate, int *au_ssize, int *au_scale);
-
- #endif /* FFMPEG_RIFF_H */
---- a/quicktime/ffmpeg/libavformat/rtp.c.ORIG 2012-07-06 22:40:26.000000000 +0200
-+++ a/quicktime/ffmpeg/libavformat/rtp.c 2013-08-01 12:59:01.778474619 +0200
-@@ -40,7 +40,7 @@
- int pt;
- const char enc_name[6];
- enum CodecType codec_type;
-- enum CodecID codec_id;
-+ enum AVCodecID codec_id;
- int clock_rate;
- int audio_channels;
- } AVRtpPayloadTypes[]=
-@@ -120,7 +120,7 @@
- return "";
- }
-
--enum CodecID ff_rtp_codec_id(const char *buf, enum CodecType codec_type)
-+enum AVCodecID ff_rtp_codec_id(const char *buf, enum CodecType codec_type)
- {
- int i;
-
---- a/quicktime/ffmpeg/libavformat/rtp_internal.h.ORIG 2012-07-06 22:40:26.000000000 +0200
-+++ a/quicktime/ffmpeg/libavformat/rtp_internal.h 2013-08-01 13:00:09.147475279 +0200
-@@ -61,7 +61,7 @@
- // fields from AVRtpDynamicPayloadType_s
- const char enc_name[50]; /* XXX: still why 50 ? ;-) */
- enum CodecType codec_type;
-- enum CodecID codec_id;
-+ enum AVCodecID codec_id;
-
- // may be null
- int (*parse_sdp_a_line) (AVStream * stream,
-@@ -123,7 +123,7 @@
-
- void ff_rtp_send_data(AVFormatContext *s1, const uint8_t *buf1, int len, int m);
- const char *ff_rtp_enc_name(int payload_type);
--enum CodecID ff_rtp_codec_id(const char *buf, enum CodecType codec_type);
-+enum AVCodecID ff_rtp_codec_id(const char *buf, enum CodecType codec_type);
-
- void av_register_rtp_dynamic_payload_handlers(void);
-
---- a/quicktime/wma.h.ORIG 2012-07-06 22:40:26.000000000 +0200
-+++ a/quicktime/wma.h 2013-08-01 13:11:46.431482103 +0200
-@@ -3,5 +3,6 @@
-
- extern void quicktime_init_codec_wmav1(quicktime_audio_map_t *);
- extern void quicktime_init_codec_wmav2(quicktime_audio_map_t *);
-+#define AVCODEC_MAX_AUDIO_FRAME_SIZE 192000
-
- #endif
diff --git a/multimedia/cinelerra/patches/cinelerra-cv-ffmpeg2.0.patch b/multimedia/cinelerra/patches/cinelerra-cv-ffmpeg2.0.patch
new file mode 100644
index 0000000000..b1e0324ba3
--- /dev/null
+++ b/multimedia/cinelerra/patches/cinelerra-cv-ffmpeg2.0.patch
@@ -0,0 +1,98 @@
+diff --git a/cinelerra/ffmpeg.C b/cinelerra/ffmpeg.C
+index b762d46..53ad7a1 100644
+--- a/cinelerra/ffmpeg.C
++++ b/cinelerra/ffmpeg.C
+@@ -32,9 +32,9 @@ int FFMPEG::init(char *codec_string) {
+ return 1;
+ }
+
+- context = avcodec_alloc_context();
++ context = avcodec_alloc_context3(codec);
+
+- if (avcodec_open(context, codec)) {
++ if (avcodec_open2(context, codec,NULL)) {
+ printf("FFMPEG::init avcodec_open() failed\n");
+ }
+
+diff --git a/cinelerra/fileac3.C b/cinelerra/fileac3.C
+index e56705f..119c2d5 100644
+--- a/cinelerra/fileac3.C
++++ b/cinelerra/fileac3.C
+@@ -91,11 +91,11 @@ int FileAC3::open_file(int rd, int wr)
+ eprintf("codec not found.\n");
+ return 1;
+ }
+- codec_context = avcodec_alloc_context();
++ codec_context = avcodec_alloc_context3(codec);
+ codec_context->bit_rate = asset->ac3_bitrate * 1000;
+ codec_context->sample_rate = asset->sample_rate;
+ codec_context->channels = asset->channels;
+- if(avcodec_open(codec_context, codec))
++ if(avcodec_open2(codec_context, codec,NULL))
+ {
+ eprintf("failed to open codec.\n");
+ return 1;
+diff --git a/quicktime/mpeg4.c b/quicktime/mpeg4.c
+index 67bcab8..d78055e 100644
+--- a/quicktime/mpeg4.c
++++ b/quicktime/mpeg4.c
+@@ -640,7 +640,7 @@ static int encode(quicktime_t *file, unsigned char **row_pointers, int track)
+ return 1;
+ }
+
+- codec->encoder_context[current_field] = avcodec_alloc_context();
++ codec->encoder_context[current_field] = avcodec_alloc_context3(codec->encoder[current_field]);
+ AVCodecContext *context = codec->encoder_context[current_field];
+
+ context->width = width_i;
+@@ -736,7 +736,7 @@ static int encode(quicktime_t *file, unsigned char **row_pointers, int track)
+ * codec->fix_bitrate,
+ * codec->quantizer);
+ */
+- avcodec_open(context, codec->encoder[current_field]);
++ avcodec_open2(context, codec->encoder[current_field],NULL);
+
+ avcodec_get_frame_defaults(&codec->picture[current_field]);
+
+diff --git a/quicktime/qtffmpeg.c b/quicktime/qtffmpeg.c
+index c808da7..522d23c 100644
+--- a/quicktime/qtffmpeg.c
++++ b/quicktime/qtffmpeg.c
+@@ -67,7 +67,9 @@ quicktime_ffmpeg_t* quicktime_new_ffmpeg(int cpus,
+ return 0;
+ }
+
+- AVCodecContext *context = ptr->decoder_context[i] = avcodec_alloc_context();
++ //AVCodecContext *context = ptr->decoder_context[i] = avcodec_alloc_context();
++ AVCodecContext *context = avcodec_alloc_context3(ptr->decoder[i]);
++ ptr->decoder_context[i] = context;
+ static char fake_data[] = { 0, 0, 0, 0, 0, 0, 0, 0 };
+ context->width = ptr->width_i;
+ context->height = ptr->height_i;
+@@ -93,8 +95,7 @@ quicktime_ffmpeg_t* quicktime_new_ffmpeg(int cpus,
+ {
+ context->thread_count = cpus;
+ }
+- if(avcodec_open(context,
+- ptr->decoder[i]) < 0)
++ if(avcodec_open2(context, ptr->decoder[i], NULL) < 0)
+ {
+ printf("quicktime_new_ffmpeg: avcodec_open failed.\n");
+ quicktime_delete_ffmpeg(ptr);
+diff --git a/quicktime/wma.c b/quicktime/wma.c
+index f38bdce..4be0274 100644
+--- a/quicktime/wma.c
++++ b/quicktime/wma.c
+@@ -76,10 +76,10 @@ static int init_decode(quicktime_audio_map_t *track_map,
+ printf("init_decode: avcodec_find_decoder returned NULL.\n");
+ return 1;
+ }
+- codec->decoder_context = avcodec_alloc_context();
++ codec->decoder_context = avcodec_alloc_context3(codec->decoder);
+ codec->decoder_context->sample_rate = trak->mdia.minf.stbl.stsd.table[0].sample_rate;
+ codec->decoder_context->channels = track_map->channels;
+- if(avcodec_open(codec->decoder_context, codec->decoder) < 0)
++ if(avcodec_open2(codec->decoder_context, codec->decoder,NULL) < 0)
+ {
+ printf("init_decode: avcodec_open failed.\n");
+ return 1;
diff --git a/multimedia/cinelerra/patches/cinelerra-cv-ffmpeg_api2.2.patch b/multimedia/cinelerra/patches/cinelerra-cv-ffmpeg_api2.2.patch
new file mode 100644
index 0000000000..2def7089b2
--- /dev/null
+++ b/multimedia/cinelerra/patches/cinelerra-cv-ffmpeg_api2.2.patch
@@ -0,0 +1,200 @@
+diff --git a/cinelerra/ffmpeg.C b/cinelerra/ffmpeg.C
+index 6ab6047..b762d46 100644
+--- a/cinelerra/ffmpeg.C
++++ b/cinelerra/ffmpeg.C
+@@ -2,7 +2,7 @@
+
+ #ifdef HAVE_SWSCALER
+ extern "C" {
+-#include <swscale.h>
++#include <libswscale/swscale.h>
+ }
+ #endif
+
+@@ -23,10 +23,9 @@ FFMPEG::FFMPEG(Asset *asset) {
+
+ int FFMPEG::init(char *codec_string) {
+
+- avcodec_init();
+ avcodec_register_all();
+
+- CodecID id = codec_id(codec_string);
++ AVCodecID id = codec_id(codec_string);
+ codec = avcodec_find_decoder(id);
+ if (codec == NULL) {
+ printf("FFMPEG::init no decoder for '%s'", codec_string);
+@@ -52,7 +51,7 @@ FFMPEG::~FFMPEG() {
+ }
+
+
+-CodecID FFMPEG::codec_id(char *codec_string) {
++AVCodecID FFMPEG::codec_id(char *codec_string) {
+ #define CODEC_IS(x) (! strncmp(codec_string, x, 4))
+
+ if (CODEC_IS(QUICKTIME_DV) ||
+@@ -364,12 +363,15 @@ int FFMPEG::decode(uint8_t *data, long data_size, VFrame *frame_out) {
+
+ // NOTE: frame must already have data space allocated
+
++ AVPacket pkt;
+ got_picture = 0;
+- int length = avcodec_decode_video(context,
++ av_init_packet( &pkt );
++ pkt.data = data;
++ pkt.size = data_size;
++ int length = avcodec_decode_video2(context,
+ picture,
+ &got_picture,
+- data,
+- data_size);
++ &pkt);
+
+ if (length < 0) {
+ printf("FFMPEG::decode error decoding frame\n");
+diff --git a/cinelerra/ffmpeg.h b/cinelerra/ffmpeg.h
+index 69c9956..dc7174e 100644
+--- a/cinelerra/ffmpeg.h
++++ b/cinelerra/ffmpeg.h
+@@ -26,7 +26,7 @@ class FFMPEG
+ static int convert_cmodel_transfer(VFrame *frame_in,VFrame *frame_out);
+ static int init_picture_from_frame(AVPicture *picture, VFrame *frame);
+
+- static CodecID codec_id(char *codec_string);
++ static AVCodecID codec_id(char *codec_string);
+
+ private:
+ static PixelFormat color_model_to_pix_fmt(int color_model);
+diff --git a/cinelerra/fileac3.C b/cinelerra/fileac3.C
+index a1ef61e..e56705f 100644
+--- a/cinelerra/fileac3.C
++++ b/cinelerra/fileac3.C
+@@ -84,7 +84,6 @@ int FileAC3::open_file(int rd, int wr)
+
+ if(wr)
+ {
+- avcodec_init();
+ avcodec_register_all();
+ codec = avcodec_find_encoder(CODEC_ID_AC3);
+ if(!codec)
+diff --git a/quicktime/mpeg4.c b/quicktime/mpeg4.c
+index 81cb72b..67bcab8 100644
+--- a/quicktime/mpeg4.c
++++ b/quicktime/mpeg4.c
+@@ -629,7 +629,6 @@ static int encode(quicktime_t *file, unsigned char **row_pointers, int track)
+ if(!ffmpeg_initialized)
+ {
+ ffmpeg_initialized = 1;
+- avcodec_init();
+ avcodec_register_all();
+ }
+
+@@ -674,7 +673,7 @@ static int encode(quicktime_t *file, unsigned char **row_pointers, int track)
+ #if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0)
+ context->error_resilience = FF_ER_CAREFUL;
+ #else
+- context->error_recognition = FF_ER_CAREFUL;
++ context->err_recognition = AV_EF_CRCCHECK;
+ #endif
+ context->error_concealment = 3;
+ context->frame_skip_cmp = FF_CMP_DCTMAX;
+@@ -699,7 +698,6 @@ static int encode(quicktime_t *file, unsigned char **row_pointers, int track)
+ context->profile= FF_PROFILE_UNKNOWN;
+ context->rc_buffer_aggressivity = 1.0;
+ context->level= FF_LEVEL_UNKNOWN;
+- context->flags |= CODEC_FLAG_H263P_UMV;
+ context->flags |= CODEC_FLAG_AC_PRED;
+
+ // All the forbidden settings can be extracted from libavcodec/mpegvideo.c of ffmpeg...
+@@ -717,10 +715,8 @@ static int encode(quicktime_t *file, unsigned char **row_pointers, int track)
+ (codec->ffmpeg_id == CODEC_ID_MPEG4 ||
+ codec->ffmpeg_id == CODEC_ID_MPEG1VIDEO ||
+ codec->ffmpeg_id == CODEC_ID_MPEG2VIDEO ||
+- codec->ffmpeg_id == CODEC_ID_H263P ||
+- codec->ffmpeg_id == CODEC_FLAG_H263P_SLICE_STRUCT))
++ codec->ffmpeg_id == CODEC_ID_H263P))
+ {
+- avcodec_thread_init(context, file->cpus);
+ context->thread_count = file->cpus;
+ }
+
+diff --git a/quicktime/qtffmpeg.c b/quicktime/qtffmpeg.c
+index b384a83..c808da7 100644
+--- a/quicktime/qtffmpeg.c
++++ b/quicktime/qtffmpeg.c
+@@ -54,7 +54,6 @@ quicktime_ffmpeg_t* quicktime_new_ffmpeg(int cpus,
+ if(!ffmpeg_initialized)
+ {
+ ffmpeg_initialized = 1;
+- avcodec_init();
+ avcodec_register_all();
+ }
+
+@@ -90,10 +89,8 @@ quicktime_ffmpeg_t* quicktime_new_ffmpeg(int cpus,
+ (ffmpeg_id == CODEC_ID_MPEG4 ||
+ ffmpeg_id == CODEC_ID_MPEG1VIDEO ||
+ ffmpeg_id == CODEC_ID_MPEG2VIDEO ||
+- ffmpeg_id == CODEC_ID_H263P ||
+- ffmpeg_id == CODEC_FLAG_H263P_SLICE_STRUCT))
++ ffmpeg_id == CODEC_ID_H263P))
+ {
+- avcodec_thread_init(context, cpus);
+ context->thread_count = cpus;
+ }
+ if(avcodec_open(context,
+@@ -183,6 +180,7 @@ static int decode_wrapper(quicktime_t *file,
+
+ if(!result)
+ {
++ AVPacket pkt;
+
+
+ // No way to determine if there was an error based on nonzero status.
+@@ -191,11 +189,13 @@ static int decode_wrapper(quicktime_t *file,
+ ffmpeg->decoder_context[current_field]->skip_frame = AVDISCARD_NONREF /* AVDISCARD_BIDIR */;
+ else
+ ffmpeg->decoder_context[current_field]->skip_frame = AVDISCARD_DEFAULT;
+- result = avcodec_decode_video(ffmpeg->decoder_context[current_field],
++ av_init_packet( &pkt );
++ pkt.data = ffmpeg->work_buffer;
++ pkt.size = bytes + header_bytes;
++ result = avcodec_decode_video2(ffmpeg->decoder_context[current_field],
+ &ffmpeg->picture[current_field],
+ &got_picture,
+- ffmpeg->work_buffer,
+- bytes + header_bytes);
++ &pkt);
+
+
+
+diff --git a/quicktime/wma.c b/quicktime/wma.c
+index c045741..f38bdce 100644
+--- a/quicktime/wma.c
++++ b/quicktime/wma.c
+@@ -67,7 +67,6 @@ static int init_decode(quicktime_audio_map_t *track_map,
+ if(!ffmpeg_initialized)
+ {
+ ffmpeg_initialized = 1;
+- avcodec_init();
+ avcodec_register_all();
+ }
+
+@@ -194,12 +193,16 @@ printf("decode 2 %x %llx %llx\n", chunk_size, chunk_offset, chunk_offset + chunk
+ codec->packet_buffer,
+ chunk_size);
+ #else
++#define AVCODEC_MAX_AUDIO_FRAME_SIZE 192000
+ bytes_decoded = AVCODEC_MAX_AUDIO_FRAME_SIZE;
+- result = avcodec_decode_audio2(codec->decoder_context,
++ AVPacket pkt;
++ av_init_packet( &pkt );
++ pkt.data = codec->packet_buffer;
++ pkt.size = chunk_size;
++ result = avcodec_decode_audio3(codec->decoder_context,
+ (int16_t*)(codec->work_buffer + codec->output_size * sample_size),
+ &bytes_decoded,
+- codec->packet_buffer,
+- chunk_size);
++ &pkt);
+ #endif
+
+ pthread_mutex_unlock(&ffmpeg_lock);