summaryrefslogtreecommitdiff
path: root/multimedia/cinelerra/patches
diff options
context:
space:
mode:
authorMatteo Bernardini <ponce@slackbuilds.org>2012-09-16 07:02:24 +0200
committerdsomero <xgizzmo@slackbuilds.org>2012-09-16 19:44:41 -0400
commitcdd811af8e7244b3446cd052b43cae21acd7d5d6 (patch)
tree6ac8af4bca96867a5e2fc594c0d4f317d97174c1 /multimedia/cinelerra/patches
parent43c6222a6ba51d7c0563710d6d3535e62dd3f2a4 (diff)
downloadslackbuilds-cdd811af8e7244b3446cd052b43cae21acd7d5d6.tar.gz
multimedia/cinelerra: Updated for version cv_2.2.
Signed-off-by: Matteo Bernardini <ponce@slackbuilds.org>
Diffstat (limited to 'multimedia/cinelerra/patches')
-rw-r--r--multimedia/cinelerra/patches/cinelerra-ffmpeg-0.11.patch156
-rw-r--r--multimedia/cinelerra/patches/cinelerra-ffmpeg.patch76
2 files changed, 232 insertions, 0 deletions
diff --git a/multimedia/cinelerra/patches/cinelerra-ffmpeg-0.11.patch b/multimedia/cinelerra/patches/cinelerra-ffmpeg-0.11.patch
new file mode 100644
index 0000000000..6d59cc8408
--- /dev/null
+++ b/multimedia/cinelerra/patches/cinelerra-ffmpeg-0.11.patch
@@ -0,0 +1,156 @@
+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/cinelerra-ffmpeg.patch b/multimedia/cinelerra/patches/cinelerra-ffmpeg.patch
new file mode 100644
index 0000000000..6f7962fb1a
--- /dev/null
+++ b/multimedia/cinelerra/patches/cinelerra-ffmpeg.patch
@@ -0,0 +1,76 @@
+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);