packages: cinelerra-cv/cinelerra-cv.spec, cinelerra-cv/cinelerra-cv-ffmpeg....

lisu lisu at pld-linux.org
Tue Jul 5 09:03:21 CEST 2011


Author: lisu                         Date: Tue Jul  5 07:03:21 2011 GMT
Module: packages                      Tag: HEAD
---- Log message:
- fix build with new ffmpeg

---- Files affected:
packages/cinelerra-cv:
   cinelerra-cv.spec (1.40 -> 1.41) , cinelerra-cv-ffmpeg.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: packages/cinelerra-cv/cinelerra-cv.spec
diff -u packages/cinelerra-cv/cinelerra-cv.spec:1.40 packages/cinelerra-cv/cinelerra-cv.spec:1.41
--- packages/cinelerra-cv/cinelerra-cv.spec:1.40	Mon Jul  4 20:41:57 2011
+++ packages/cinelerra-cv/cinelerra-cv.spec	Tue Jul  5 09:03:16 2011
@@ -18,6 +18,7 @@
 Patch1:		%{name}-desktop.patch
 # http://bugs.cinelerra.org/raw-attachment/ticket/949/remove-support-v4l-buzz-k2-6-38.diff
 Patch2:		remove-support-v4l-buzz-k2-6-38.diff
+Patch3:		%{name}-ffmpeg.patch
 URL:		http://cinelerra.org/
 BuildRequires:	OpenEXR-devel >= 1.2.1
 BuildRequires:	OpenGL-GLU-devel
@@ -102,6 +103,7 @@
 %patch0 -p1
 %patch1 -p1
 %patch2 -p1
+%patch3 -p1
 
 find -name Makefile.am | xargs %{__sed} -i -e 's#^LIBTOOL =.*##g'
 
@@ -169,6 +171,9 @@
 All persons listed below can be reached at <cvs_login>@pld-linux.org
 
 $Log$
+Revision 1.41  2011/07/05 07:03:16  lisu
+- fix build with new ffmpeg
+
 Revision 1.40  2011/07/04 18:41:57  lisu
 - up to 20110704
 

================================================================
Index: packages/cinelerra-cv/cinelerra-cv-ffmpeg.patch
diff -u /dev/null packages/cinelerra-cv/cinelerra-cv-ffmpeg.patch:1.1
--- /dev/null	Tue Jul  5 09:03:21 2011
+++ packages/cinelerra-cv/cinelerra-cv-ffmpeg.patch	Tue Jul  5 09:03:16 2011
@@ -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);
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/cinelerra-cv/cinelerra-cv.spec?r1=1.40&r2=1.41&f=u



More information about the pld-cvs-commit mailing list