Package: paraview
Version: 4.1.0+dfsg+1-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..044e96e
--- /dev/null
+++ b/debian/patches/ffmpeg_2.9.patch
@@ -0,0 +1,94 @@
+Description: Replace deprecated FFmpeg API
+Author: Andreas Cadhalpun <andreas.cadhal...@googlemail.com>
+Last-Update: <2015-11-02>
+
+--- paraview-4.1.0+dfsg+1.orig/VTK/CMake/vtkTestFFMPEG.cmake
++++ paraview-4.1.0+dfsg+1/VTK/CMake/vtkTestFFMPEG.cmake
+@@ -32,8 +32,8 @@ if(FFMPEG_INCLUDE_DIR)
+ #include <${FFMEG_CODEC_HEADER_PATH}/avcodec.h>
+ 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;
+ }\n")
+--- paraview-4.1.0+dfsg+1.orig/VTK/IO/FFMPEG/vtkFFMPEGWriter.cxx
++++ paraview-4.1.0+dfsg+1/VTK/IO/FFMPEG/vtkFFMPEGWriter.cxx
+@@ -184,11 +184,11 @@ int vtkFFMPEGWriterInternal::Start()
+   c->height = this->Dim[1];
+   if (this->Writer->GetCompression())
+     {
+-    c->pix_fmt = PIX_FMT_YUVJ422P;
++    c->pix_fmt = AV_PIX_FMT_YUVJ422P;
+     }
+   else
+     {
+-    c->pix_fmt = PIX_FMT_BGR24;
++    c->pix_fmt = AV_PIX_FMT_BGR24;
+     }
+ 
+   //to do playback at actual recorded rate, this will need more work see also below
+@@ -267,13 +267,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)
+     {
+@@ -281,10 +281,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." );
+@@ -342,12 +342,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);
+ 
+@@ -440,14 +440,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 7eea230..ba82afb 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -6,3 +6,4 @@ fix_ftbfs_gcc49.patch
 fix_GLintptr_FTBFS.patch
 fix_ftbfs_freetype.patch
 reduce_cmake_error.cmake
+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