commit:     45ab11f0ed557d140feae5757b55d532fa47a196
Author:     Alexis Ballier <aballier <AT> gentoo <DOT> org>
AuthorDate: Wed Sep 16 14:06:40 2015 +0000
Commit:     Alexis Ballier <aballier <AT> gentoo <DOT> org>
CommitDate: Wed Sep 16 14:06:40 2015 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=45ab11f0

media-video/ffmpegthumbnailer: fix build with ffmpeg git master.

Package-Manager: portage-2.2.20.1

 .../ffmpegthumbnailer-2.0.10.ebuild                |  3 +-
 .../files/ffmpegthumbnailer-2.0.10-ffmpeg29.patch  | 62 ++++++++++++++++++++++
 2 files changed, 64 insertions(+), 1 deletion(-)

diff --git a/media-video/ffmpegthumbnailer/ffmpegthumbnailer-2.0.10.ebuild 
b/media-video/ffmpegthumbnailer/ffmpegthumbnailer-2.0.10.ebuild
index 96de427..c01ea0b 100644
--- a/media-video/ffmpegthumbnailer/ffmpegthumbnailer-2.0.10.ebuild
+++ b/media-video/ffmpegthumbnailer/ffmpegthumbnailer-2.0.10.ebuild
@@ -4,7 +4,7 @@
 
 EAPI=5
 
-inherit cmake-utils
+inherit cmake-utils eutils
 
 DESCRIPTION="Lightweight video thumbnailer that can be used by file managers"
 HOMEPAGE="https://github.com/dirkvdb/ffmpegthumbnailer";
@@ -39,6 +39,7 @@ src_prepare() {
        rm -rf out* || die
 
        cmake-utils_src_prepare
+       has_version '>=media-video/ffmpeg-2.9' && epatch 
"${FILESDIR}/${P}-ffmpeg29.patch"
 }
 
 src_configure() {

diff --git 
a/media-video/ffmpegthumbnailer/files/ffmpegthumbnailer-2.0.10-ffmpeg29.patch 
b/media-video/ffmpegthumbnailer/files/ffmpegthumbnailer-2.0.10-ffmpeg29.patch
new file mode 100644
index 0000000..fb50ae8
--- /dev/null
+++ 
b/media-video/ffmpegthumbnailer/files/ffmpegthumbnailer-2.0.10-ffmpeg29.patch
@@ -0,0 +1,62 @@
+Index: ffmpegthumbnailer-2.0.10/libffmpegthumbnailer/moviedecoder.cpp
+===================================================================
+--- ffmpegthumbnailer-2.0.10.orig/libffmpegthumbnailer/moviedecoder.cpp
++++ ffmpegthumbnailer-2.0.10/libffmpegthumbnailer/moviedecoder.cpp
+@@ -266,7 +266,7 @@ bool MovieDecoder::decodeVideoPacket()
+         return false;
+     }
+ 
+-    avcodec_get_frame_defaults(m_pFrame);
++    av_frame_unref(m_pFrame);
+ 
+     int frameFinished;
+ 
+@@ -312,14 +312,8 @@ bool MovieDecoder::getVideoPacket()
+ 
+ void MovieDecoder::getScaledVideoFrame(int scaledSize, bool 
maintainAspectRatio, VideoFrame& videoFrame)
+ {
+-    if (m_pFrame->interlaced_frame)
+-    {
+-        avpicture_deinterlace((AVPicture*) m_pFrame, (AVPicture*) m_pFrame, 
m_pVideoCodecContext->pix_fmt,
+-                              m_pVideoCodecContext->width, 
m_pVideoCodecContext->height);
+-    }
+-
+     int scaledWidth, scaledHeight;
+-    convertAndScaleFrame(PIX_FMT_RGB24, scaledSize, maintainAspectRatio, 
scaledWidth, scaledHeight);
++    convertAndScaleFrame(AV_PIX_FMT_RGB24, scaledSize, maintainAspectRatio, 
scaledWidth, scaledHeight);
+ 
+     videoFrame.width = scaledWidth;
+     videoFrame.height = scaledHeight;
+@@ -330,7 +324,7 @@ void MovieDecoder::getScaledVideoFrame(i
+     memcpy((&(videoFrame.frameData.front())), m_pFrame->data[0], 
videoFrame.lineSize * videoFrame.height);
+ }
+ 
+-void MovieDecoder::convertAndScaleFrame(PixelFormat format, int scaledSize, 
bool maintainAspectRatio, int& scaledWidth, int& scaledHeight)
++void MovieDecoder::convertAndScaleFrame(AVPixelFormat format, int scaledSize, 
bool maintainAspectRatio, int& scaledWidth, int& scaledHeight)
+ {
+     calculateDimensions(scaledSize, maintainAspectRatio, scaledWidth, 
scaledHeight);
+ 
+@@ -427,7 +421,7 @@ void MovieDecoder::calculateDimensions(i
+     }
+ }
+ 
+-void MovieDecoder::createAVFrame(AVFrame** pAvFrame, uint8_t** pFrameBuffer, 
int width, int height, PixelFormat format)
++void MovieDecoder::createAVFrame(AVFrame** pAvFrame, uint8_t** pFrameBuffer, 
int width, int height, AVPixelFormat format)
+ {
+     *pAvFrame = av_frame_alloc();
+ 
+Index: ffmpegthumbnailer-2.0.10/libffmpegthumbnailer/moviedecoder.h
+===================================================================
+--- ffmpegthumbnailer-2.0.10.orig/libffmpegthumbnailer/moviedecoder.h
++++ ffmpegthumbnailer-2.0.10/libffmpegthumbnailer/moviedecoder.h
+@@ -54,8 +54,8 @@ private:
+ 
+     bool decodeVideoPacket();
+     bool getVideoPacket();
+-    void convertAndScaleFrame(PixelFormat format, int scaledSize, bool 
maintainAspectRatio, int& scaledWidth, int& scaledHeight);
+-    void createAVFrame(AVFrame** pAvFrame, uint8_t** pFrameBuffer, int width, 
int height, PixelFormat format);
++    void convertAndScaleFrame(AVPixelFormat format, int scaledSize, bool 
maintainAspectRatio, int& scaledWidth, int& scaledHeight);
++    void createAVFrame(AVFrame** pAvFrame, uint8_t** pFrameBuffer, int width, 
int height, AVPixelFormat format);
+     void calculateDimensions(int squareSize, bool maintainAspectRatio, int& 
destWidth, int& destHeight);
+ 
+ private:

Reply via email to