[packages/cinelerra-cv] - updated from archlinux

baggins baggins at pld-linux.org
Sun Nov 18 14:05:40 CET 2012


commit fa7708dfdd0a9d01d005b20118addeb4c00cac79
Author: Jan Rękorajski <baggins at pld-linux.org>
Date:   Sun Nov 18 14:03:53 2012 +0100

    - updated from archlinux

 cinelerra-cv-ffmpeg.patch | 177 ++++++++++++++++++++++++++++++++++------------
 1 file changed, 132 insertions(+), 45 deletions(-)
---
diff --git a/cinelerra-cv-ffmpeg.patch b/cinelerra-cv-ffmpeg.patch
index 6f7962f..344407c 100644
--- a/cinelerra-cv-ffmpeg.patch
+++ b/cinelerra-cv-ffmpeg.patch
@@ -1,76 +1,163 @@
-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
+diff --git a/cinelerra/ffmpeg.C b/cinelerra/ffmpeg.C
+index 6ab6047..7cde503 100644
+--- a/cinelerra/ffmpeg.C
++++ b/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);
+@@ -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;
+	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,
+					  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) 
- 	{ 
+	if (length < 0) {
+		printf("FFMPEG::decode error decoding frame\n");
+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 8c532c2..a2b51e9 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,
+@@ -181,6 +178,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.
-@@ -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;
+@@ -189,11 +187,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, 
++		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);
+
+
+
+diff --git a/quicktime/wma.c b/quicktime/wma.c
+index c045741..abc2dc8 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();
+		}
+
+@@ -195,11 +194,14 @@ printf("decode 2 %x %llx %llx\n", chunk_size, chunk_offset, chunk_offset + chunk
+			chunk_size);
  #else
- 		bytes_decoded = AVCODEC_MAX_AUDIO_FRAME_SIZE;
+		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,
+			(int16_t*)(codec->work_buffer + codec->output_size * sample_size),
+			&bytes_decoded,
 -			codec->packet_buffer,
 -			chunk_size);
 +			&pkt);
  #endif
- 
- 		pthread_mutex_unlock(&ffmpeg_lock);
+
+		pthread_mutex_unlock(&ffmpeg_lock);
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/cinelerra-cv.git/commitdiff/869876c09f8ef659f2ad352aa46ec5459d5b4417



More information about the pld-cvs-commit mailing list