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

Reply via email to