Package: vtk Version: 5.10.1+dfsg-2 Severity: important Tags: patch User: pkg-multimedia-maintain...@lists.alioth.debian.org Usertags: ffmpeg2.9
Dear Maintainer, your package fails to build with the upcoming ffmpeg 2.9. This bug will become release-critical at some point when the ffmpeg2.9 transition gets closer. Attached is a patch replacing the deprecated functionality. It also works with ffmpeg 2.8. Please apply this patch and forward it upstream, if necessary. These changes have little regression potential. Best regards, Andreas
diff --git a/debian/patches/ffmpeg_2.9.patch b/debian/patches/ffmpeg_2.9.patch new file mode 100644 index 0000000..d464a2a --- /dev/null +++ b/debian/patches/ffmpeg_2.9.patch @@ -0,0 +1,89 @@ +Description: Replace deprecated FFmpeg API +Author: Andreas Cadhalpun <andreas.cadhal...@googlemail.com> +Last-Update: <2015-11-02> + +--- vtk-5.10.1+dfsg.orig/CMake/vtkFFMPEGTestImgConvert.cxx ++++ vtk-5.10.1+dfsg/CMake/vtkFFMPEGTestImgConvert.cxx +@@ -8,8 +8,8 @@ extern "C" { + + int main() + { +- img_convert(0, PIX_FMT_RGB24, +- 0, PIX_FMT_RGB24, ++ img_convert(0, AV_PIX_FMT_RGB24, ++ 0, AV_PIX_FMT_RGB24, + 0, 0); + return 0; + } +--- vtk-5.10.1+dfsg.orig/IO/vtkFFMPEGWriter.cxx ++++ vtk-5.10.1+dfsg/IO/vtkFFMPEGWriter.cxx +@@ -161,7 +161,7 @@ int vtkFFMPEGWriterInternal::Start() + c->codec_type = AVMEDIA_TYPE_VIDEO; + c->width = this->Dim[0]; + c->height = this->Dim[1]; +- c->pix_fmt = PIX_FMT_YUVJ420P; ++ c->pix_fmt = AV_PIX_FMT_YUVJ420P; + //change DIV3 to MP43 fourCC to be easily playable on windows + //c->codec_tag = ('3'<<24) + ('4'<<16) + ('P'<<8) + 'M'; + //to do playback at actual recorded rate, this will need more work see also below +@@ -239,13 +239,13 @@ int vtkFFMPEGWriterInternal::Start() + #endif + + //for the output of the writer's input... +- this->rgbInput = avcodec_alloc_frame(); ++ this->rgbInput = av_frame_alloc(); + if (!this->rgbInput) + { + vtkGenericWarningMacro (<< "Could not make rgbInput avframe." ); + return 0; + } +- int RGBsize = avpicture_get_size(PIX_FMT_RGB24, c->width, c->height); ++ int RGBsize = avpicture_get_size(AV_PIX_FMT_RGB24, c->width, c->height); + unsigned char *rgb = new unsigned char[RGBsize]; + if (!rgb) + { +@@ -253,10 +253,10 @@ int vtkFFMPEGWriterInternal::Start() + return 0; + } + //The rgb buffer should get deleted when this->rgbInput is. +- avpicture_fill((AVPicture *)this->rgbInput, rgb, PIX_FMT_RGB24, c->width, c->height); ++ avpicture_fill((AVPicture *)this->rgbInput, rgb, AV_PIX_FMT_RGB24, c->width, c->height); + + //and for the output to the codec's input. +- this->yuvOutput = avcodec_alloc_frame(); ++ this->yuvOutput = av_frame_alloc(); + if (!this->yuvOutput) + { + vtkGenericWarningMacro (<< "Could not make yuvOutput avframe." ); +@@ -314,12 +314,12 @@ int vtkFFMPEGWriterInternal::Write(vtkIm + //convert that to YUV for input to the codec + #ifdef VTK_FFMPEG_HAS_IMG_CONVERT + img_convert((AVPicture *)this->yuvOutput, cc->pix_fmt, +- (AVPicture *)this->rgbInput, PIX_FMT_RGB24, ++ (AVPicture *)this->rgbInput, AV_PIX_FMT_RGB24, + cc->width, cc->height); + #else + //convert that to YUV for input to the codec + SwsContext* convert_ctx = sws_getContext( +- cc->width, cc->height, PIX_FMT_RGB24, ++ cc->width, cc->height, AV_PIX_FMT_RGB24, + cc->width, cc->height, cc->pix_fmt, + SWS_BICUBIC, NULL, NULL, NULL); + +@@ -414,14 +414,14 @@ void vtkFFMPEGWriterInternal::End() + if (this->yuvOutput) + { + av_free(this->yuvOutput->data[0]); +- av_free(this->yuvOutput); ++ av_frame_free(&this->yuvOutput); + this->yuvOutput = NULL; + } + + if (this->rgbInput) + { + av_free(this->rgbInput->data[0]); +- av_free(this->rgbInput); ++ av_frame_free(&this->rgbInput); + this->rgbInput = NULL; + } + diff --git a/debian/patches/series b/debian/patches/series index aa28e71..fd67a89 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -7,3 +7,4 @@ multiarch-libpq.patch wxpython3.0.patch GLX_GLEXT_LEGACY.patch tcl8.6.patch +ffmpeg_2.9.patch
-- debian-science-maintainers mailing list debian-science-maintainers@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/debian-science-maintainers