From: lisu Date: Tue, 5 Jul 2011 07:03:16 +0000 (+0000) Subject: - fix build with new ffmpeg X-Git-Tag: auto/ti/cinelerra-cv-2_1-0_20110704_1~1 X-Git-Url: http://git.pld-linux.org/?p=packages%2Fcinelerra-cv.git;a=commitdiff_plain;h=addf3906886430f146cd3cc81a04f2f68e7c734d - fix build with new ffmpeg Changed files: cinelerra-cv-ffmpeg.patch -> 1.1 cinelerra-cv.spec -> 1.41 --- diff --git a/cinelerra-cv-ffmpeg.patch b/cinelerra-cv-ffmpeg.patch new file mode 100644 index 0000000..6f7962f --- /dev/null +++ b/cinelerra-cv-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); diff --git a/cinelerra-cv.spec b/cinelerra-cv.spec index fdfcc72..06914fd 100644 --- a/cinelerra-cv.spec +++ b/cinelerra-cv.spec @@ -17,6 +17,7 @@ Patch0: %{name}-build.patch 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 @@ -101,6 +102,7 @@ Wersja społecznościowa. %patch0 -p1 %patch1 -p1 %patch2 -p1 +%patch3 -p1 find -name Makefile.am | xargs %{__sed} -i -e 's#^LIBTOOL =.*##g'