Control: tags 803833 + pending

Dear maintainer,

I've prepared an NMU for libavg (versioned as 1.8.1-2.1) and
uploaded it to DELAYED/2. Please feel free to tell me if I
should delay it longer.

Regards.

-- 
Sebastian Ramacher
diff -Nru libavg-1.8.1/debian/changelog libavg-1.8.1/debian/changelog
--- libavg-1.8.1/debian/changelog	2015-08-31 00:16:24.000000000 +0200
+++ libavg-1.8.1/debian/changelog	2016-04-25 22:26:13.000000000 +0200
@@ -1,3 +1,12 @@
+libavg (1.8.1-2.1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+
+  [ Andreas Cadhalpun ]
+  * Fix build against ffmpeg 3.0. (Closes: #803833)
+
+ -- Sebastian Ramacher <sramac...@debian.org>  Mon, 25 Apr 2016 22:26:12 +0200
+
 libavg (1.8.1-2) unstable; urgency=medium
 
   * Apply patch from Reiner Herrmann for reproducible builds. (Closes: #797440)
diff -Nru libavg-1.8.1/debian/patches/ffmpeg_2.9.patch libavg-1.8.1/debian/patches/ffmpeg_2.9.patch
--- libavg-1.8.1/debian/patches/ffmpeg_2.9.patch	1970-01-01 01:00:00.000000000 +0100
+++ libavg-1.8.1/debian/patches/ffmpeg_2.9.patch	2016-04-25 19:29:46.000000000 +0200
@@ -0,0 +1,314 @@
+Description: Replace deprecated FFmpeg API
+Author: Andreas Cadhalpun <andreas.cadhal...@googlemail.com>
+Last-Update: <2015-11-02>
+
+--- libavg-1.8.1.orig/src/player/VideoWriterThread.cpp
++++ libavg-1.8.1/src/player/VideoWriterThread.cpp
+@@ -35,7 +35,7 @@ using namespace std;
+ namespace avg {
+ 
+ const unsigned int VIDEO_BUFFER_SIZE = 400000;
+-const AVPixelFormat STREAM_PIXEL_FORMAT = ::PIX_FMT_YUVJ420P;
++const AVPixelFormat STREAM_PIXEL_FORMAT = ::AV_PIX_FMT_YUVJ420P;
+ 
+ VideoWriterThread::VideoWriterThread(CQueue& cmdQueue, const string& sFilename,
+         IntPoint size, int frameRate, int qMin, int qMax)
+@@ -95,7 +95,7 @@ void VideoWriterThread::close()
+ 
+         av_free(m_pOutputFormatContext);
+         av_free(m_pVideoBuffer);
+-        av_free(m_pConvertedFrame);
++        av_frame_free(&m_pConvertedFrame);
+         av_free(m_pPictureBuffer);
+         sws_freeContext(m_pFrameConversionContext);
+         m_pOutputFormatContext = 0;
+@@ -174,7 +174,7 @@ void VideoWriterThread::open()
+     }
+ 
+     m_pFrameConversionContext = sws_getContext(m_Size.x, m_Size.y, 
+-            ::PIX_FMT_RGB32, m_Size.x, m_Size.y, STREAM_PIXEL_FORMAT, 
++            ::AV_PIX_FMT_RGB32, m_Size.x, m_Size.y, STREAM_PIXEL_FORMAT,
+             SWS_BILINEAR, NULL, NULL, NULL);
+ 
+     m_pConvertedFrame = createFrame(STREAM_PIXEL_FORMAT, m_Size);
+@@ -234,7 +234,7 @@ AVFrame* VideoWriterThread::createFrame(
+ {
+     AVFrame* pPicture;
+ 
+-    pPicture = avcodec_alloc_frame();
++    pPicture = av_frame_alloc();
+ 
+     int memNeeded = avpicture_get_size(pixelFormat, size.x, size.y);
+     m_pPictureBuffer = static_cast<unsigned char*>(av_malloc(memNeeded));
+--- libavg-1.8.1.orig/src/video/AudioDecoderThread.cpp
++++ libavg-1.8.1/src/video/AudioDecoderThread.cpp
+@@ -134,7 +134,7 @@ void AudioDecoderThread::decodePacket(AV
+ #if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(53, 25, 0)
+     int gotFrame = 0;
+     AVFrame* pDecodedFrame;
+-    pDecodedFrame = avcodec_alloc_frame();
++    pDecodedFrame = av_frame_alloc();
+ #endif
+     while (pTempPacket->size > 0) {
+         int bytesDecoded = AVCODEC_MAX_AUDIO_FRAME_SIZE;
+@@ -192,7 +192,7 @@ void AudioDecoderThread::decodePacket(AV
+     }
+     av_free(pDecodedData);
+ #if LIBAVCODEC_VERSION_MAJOR > 53
+-    avcodec_free_frame(&pDecodedFrame);
++    av_frame_free(&pDecodedFrame);
+ #elif LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(53, 25, 0)
+     delete pDecodedFrame;
+ #endif
+--- libavg-1.8.1.orig/src/video/FFMpegFrameDecoder.cpp
++++ libavg-1.8.1/src/video/FFMpegFrameDecoder.cpp
+@@ -119,29 +119,29 @@ void FFMpegFrameDecoder::convertFrameToB
+     switch (pBmp->getPixelFormat()) {
+         case R8G8B8X8:
+         case R8G8B8A8:
+-            destFmt = PIX_FMT_RGBA;
++            destFmt = AV_PIX_FMT_RGBA;
+             break;
+         case B8G8R8X8:
+         case B8G8R8A8:
+-            destFmt = PIX_FMT_BGRA;
++            destFmt = AV_PIX_FMT_BGRA;
+             break;
+         case R8G8B8:
+-            destFmt = PIX_FMT_RGB24;
++            destFmt = AV_PIX_FMT_RGB24;
+             break;
+         case B8G8R8:
+-            destFmt = PIX_FMT_BGR24;
++            destFmt = AV_PIX_FMT_BGR24;
+             break;
+         case YCbCr422:
+-            destFmt = PIX_FMT_YUYV422;
++            destFmt = AV_PIX_FMT_YUYV422;
+             break;
+         default:
+             AVG_ASSERT_MSG(false, (string("FFMpegFrameDecoder: Dest format ") +
+                     toString(pBmp->getPixelFormat()) + " not supported.").c_str());
+-            destFmt = PIX_FMT_BGRA;
++            destFmt = AV_PIX_FMT_BGRA;
+     }
+     AVCodecContext const* pContext = m_pStream->codec;
+-    if (destFmt == PIX_FMT_BGRA && (pContext->pix_fmt == PIX_FMT_YUV420P || 
+-                pContext->pix_fmt == PIX_FMT_YUVJ420P))
++    if (destFmt == AV_PIX_FMT_BGRA && (pContext->pix_fmt == AV_PIX_FMT_YUV420P ||
++                pContext->pix_fmt == AV_PIX_FMT_YUVJ420P))
+     {
+         ScopeTimer timer(ConvertImageLibavgProfilingZone);
+         BitmapPtr pBmpY(new Bitmap(pBmp->getSize(), I8, pFrame->data[0],
+@@ -151,7 +151,7 @@ void FFMpegFrameDecoder::convertFrameToB
+         BitmapPtr pBmpV(new Bitmap(pBmp->getSize(), I8, pFrame->data[2],
+                 pFrame->linesize[2], false));
+         pBmp->copyYUVPixels(*pBmpY, *pBmpU, *pBmpV, 
+-                pContext->pix_fmt == PIX_FMT_YUVJ420P);
++                pContext->pix_fmt == AV_PIX_FMT_YUVJ420P);
+     } else {
+         if (!m_pSwsContext) {
+             m_pSwsContext = sws_getContext(pContext->width, pContext->height, 
+--- libavg-1.8.1.orig/src/video/SyncVideoDecoder.cpp
++++ libavg-1.8.1/src/video/SyncVideoDecoder.cpp
+@@ -82,7 +82,7 @@ void SyncVideoDecoder::startDecoding(boo
+     m_pFrameDecoder = FFMpegFrameDecoderPtr(new FFMpegFrameDecoder(getVideoStream()));
+     m_pFrameDecoder->setFPS(m_FPS);
+ #if LIBAVCODEC_VERSION_INT > AV_VERSION_INT(54, 28, 0) 
+-    m_pFrame = avcodec_alloc_frame();
++    m_pFrame = av_frame_alloc();
+ #else
+     m_pFrame = new AVFrame;
+ #endif
+@@ -96,7 +96,7 @@ void SyncVideoDecoder::close()
+     m_pFrameDecoder = FFMpegFrameDecoderPtr();
+     VideoDecoder::close();
+ #if LIBAVCODEC_VERSION_INT > AV_VERSION_INT(54, 28, 0) 
+-    avcodec_free_frame(&m_pFrame);
++    av_frame_free(&m_pFrame);
+ #else
+     delete m_pFrame;
+ #endif
+--- libavg-1.8.1.orig/src/video/VDPAUDecoder.cpp
++++ libavg-1.8.1/src/video/VDPAUDecoder.cpp
+@@ -43,7 +43,7 @@ namespace avg {
+ VDPAUDecoder::VDPAUDecoder()
+     : m_VDPDecoder(VDP_INVALID_HANDLE),
+       m_VDPMixer(VDP_INVALID_HANDLE),
+-      m_PixFmt(PIX_FMT_NONE),
++      m_PixFmt(AV_PIX_FMT_NONE),
+       m_Size(-1,-1)
+ {
+ }
+@@ -92,8 +92,7 @@ AVCodec* VDPAUDecoder::openCodec(AVCodec
+             pCodec = 0;
+     }
+     if (pCodec) {
+-        pContext->get_buffer = VDPAUDecoder::getBuffer;
+-        pContext->release_buffer = VDPAUDecoder::releaseBuffer;
++        pContext->get_buffer2 = VDPAUDecoder::getBuffer2;
+         pContext->draw_horiz_band = VDPAUDecoder::drawHorizBand;
+         pContext->get_format = VDPAUDecoder::getFormat;
+         pContext->slice_flags = SLICE_FLAG_CODED_ORDER | SLICE_FLAG_ALLOW_FIELD;
+@@ -111,19 +110,19 @@ bool VDPAUDecoder::isAvailable()
+ #endif
+ }
+ 
+-int VDPAUDecoder::getBuffer(AVCodecContext* pContext, AVFrame* pFrame)
++int VDPAUDecoder::getBuffer2(AVCodecContext* pContext, AVFrame* pFrame, int flags)
+ {
+     VDPAUDecoder* pVDPAUDecoder = (VDPAUDecoder*)pContext->opaque;
+     return pVDPAUDecoder->getBufferInternal(pContext, pFrame);
+ }
+ 
+ // does not release the render structure, that will be unlocked after getting data
+-void VDPAUDecoder::releaseBuffer(struct AVCodecContext* pContext, AVFrame* pFrame)
++void VDPAUDecoder::dummy_free_buffer(void *opaque, uint8_t *data)
+ {
++    AVFrame* pFrame = (AVFrame*)opaque;
+     pFrame->data[0] = 0;
+ }
+ 
+-
+ // main rendering routine
+ void VDPAUDecoder::drawHorizBand(struct AVCodecContext* pContext, const AVFrame* src,
+         int offset[4], int y, int type, int height)
+@@ -136,15 +135,15 @@ AVPixelFormat VDPAUDecoder::getFormat(AV
+ {
+     switch (pContext->codec_id) {
+         case AV_CODEC_ID_H264:
+-            return PIX_FMT_VDPAU_H264;
++            return AV_PIX_FMT_VDPAU_H264;
+         case AV_CODEC_ID_MPEG1VIDEO:
+-            return PIX_FMT_VDPAU_MPEG1;
++            return AV_PIX_FMT_VDPAU_MPEG1;
+         case AV_CODEC_ID_MPEG2VIDEO:
+-            return PIX_FMT_VDPAU_MPEG2;
++            return AV_PIX_FMT_VDPAU_MPEG2;
+         case AV_CODEC_ID_WMV3:
+-            return PIX_FMT_VDPAU_WMV3;
++            return AV_PIX_FMT_VDPAU_WMV3;
+         case AV_CODEC_ID_VC1:
+-            return PIX_FMT_VDPAU_VC1;
++            return AV_PIX_FMT_VDPAU_VC1;
+         default:
+             return pFmt[0];
+     }
+@@ -174,8 +173,8 @@ vdpau_render_state* VDPAUDecoder::getFre
+ int VDPAUDecoder::getBufferInternal(AVCodecContext* pContext, AVFrame* pFrame)
+ {
+     vdpau_render_state* pRenderState = getFreeRenderState();
+-    pFrame->data[0] = (uint8_t*)pRenderState;
+-    pFrame->type = FF_BUFFER_TYPE_USER;
++    pFrame->buf[0] = av_buffer_create((uint8_t*)pRenderState, 0, VDPAUDecoder::dummy_free_buffer, pFrame, 0);
++    pFrame->data[0] = pFrame->buf[0]->data;
+ 
+     pRenderState->state |= FF_VDPAU_STATE_USED_FOR_REFERENCE;
+     return 0;
+@@ -202,19 +201,19 @@ void VDPAUDecoder::setupDecoder(AVCodecC
+     // Create new decoder and mixer.
+     VdpDecoderProfile profile = 0;
+     switch (pContext->pix_fmt) {
+-        case PIX_FMT_VDPAU_MPEG1:
++        case AV_PIX_FMT_VDPAU_MPEG1:
+             profile = VDP_DECODER_PROFILE_MPEG1;
+             break;
+-        case PIX_FMT_VDPAU_MPEG2:
++        case AV_PIX_FMT_VDPAU_MPEG2:
+             profile = VDP_DECODER_PROFILE_MPEG2_MAIN;
+             break;
+-        case PIX_FMT_VDPAU_H264:
++        case AV_PIX_FMT_VDPAU_H264:
+             profile = VDP_DECODER_PROFILE_H264_HIGH;
+             break;
+-        case PIX_FMT_VDPAU_WMV3:
++        case AV_PIX_FMT_VDPAU_WMV3:
+             profile = VDP_DECODER_PROFILE_VC1_SIMPLE;
+             break;
+-        case PIX_FMT_VDPAU_VC1:
++        case AV_PIX_FMT_VDPAU_VC1:
+             profile = VDP_DECODER_PROFILE_VC1_SIMPLE;
+             break;
+         default:
+--- libavg-1.8.1.orig/src/video/VDPAUDecoder.h
++++ libavg-1.8.1/src/video/VDPAUDecoder.h
+@@ -43,8 +43,8 @@ public:
+ 
+ private:
+     // Callbacks
+-    static int getBuffer(AVCodecContext* pContext, AVFrame* pFrame);
+-    static void releaseBuffer(struct AVCodecContext* pContext, AVFrame* pFrame);
++    static int getBuffer2(AVCodecContext* pContext, AVFrame* pFrame, int flags);
++    static void dummy_free_buffer(void *opaque, uint8_t *data);
+     static void drawHorizBand(AVCodecContext* pContext, const AVFrame* pFrame, 
+             int offset[4], int y, int type, int height);
+     static AVPixelFormat getFormat(AVCodecContext* pContext, const AVPixelFormat* pFmt);
+--- libavg-1.8.1.orig/src/video/VideoDecoder.cpp
++++ libavg-1.8.1/src/video/VideoDecoder.cpp
+@@ -439,25 +439,25 @@ PixelFormat VideoDecoder::calcPixelForma
+     AVCodecContext const* pContext = getCodecContext();
+     if (bUseYCbCr) {
+         switch(pContext->pix_fmt) {
+-            case PIX_FMT_YUV420P:
++            case AV_PIX_FMT_YUV420P:
+ #ifdef AVG_ENABLE_VDPAU
+-            case PIX_FMT_VDPAU_H264:
+-            case PIX_FMT_VDPAU_MPEG1:
+-            case PIX_FMT_VDPAU_MPEG2:
+-            case PIX_FMT_VDPAU_WMV3:
+-            case PIX_FMT_VDPAU_VC1:
++            case AV_PIX_FMT_VDPAU_H264:
++            case AV_PIX_FMT_VDPAU_MPEG1:
++            case AV_PIX_FMT_VDPAU_MPEG2:
++            case AV_PIX_FMT_VDPAU_WMV3:
++            case AV_PIX_FMT_VDPAU_VC1:
+ #endif
+                 return YCbCr420p;
+-            case PIX_FMT_YUVJ420P:
++            case AV_PIX_FMT_YUVJ420P:
+                 return YCbCrJ420p;
+-            case PIX_FMT_YUVA420P:
++            case AV_PIX_FMT_YUVA420P:
+                 return YCbCrA420p;
+             default:
+                 break;
+         }
+     }
+-    bool bAlpha = (pContext->pix_fmt == PIX_FMT_BGRA ||
+-            pContext->pix_fmt == PIX_FMT_YUVA420P);
++    bool bAlpha = (pContext->pix_fmt == AV_PIX_FMT_BGRA ||
++            pContext->pix_fmt == AV_PIX_FMT_YUVA420P);
+     return BitmapLoader::get()->getDefaultPixelFormat(bAlpha);
+ }
+ 
+--- libavg-1.8.1.orig/src/video/VideoDecoderThread.cpp
++++ libavg-1.8.1/src/video/VideoDecoderThread.cpp
+@@ -59,7 +59,7 @@ VideoDecoderThread::~VideoDecoderThread(
+ bool VideoDecoderThread::init()
+ {
+ #if LIBAVCODEC_VERSION_INT > AV_VERSION_INT(54, 28, 0) 
+-    m_pFrame = avcodec_alloc_frame();
++    m_pFrame = av_frame_alloc();
+ #else
+     m_pFrame = new AVFrame;
+ #endif
+@@ -69,7 +69,7 @@ bool VideoDecoderThread::init()
+ void VideoDecoderThread::deinit()
+ {
+ #if LIBAVCODEC_VERSION_INT > AV_VERSION_INT(54, 28, 0) 
+-    avcodec_free_frame(&m_pFrame);
++    av_frame_free(&m_pFrame);
+ #else
+     delete m_pFrame;
+ #endif
+--- libavg-1.8.1.orig/src/video/WrapFFMpeg.h
++++ libavg-1.8.1/src/video/WrapFFMpeg.h
+@@ -86,8 +86,6 @@ extern "C" {
+ 
+ #ifdef PixelFormat
+ #undef PixelFormat
+-#else
+-#define AVPixelFormat ::PixelFormat
+ #endif
+ 
+ #endif
diff -Nru libavg-1.8.1/debian/patches/series libavg-1.8.1/debian/patches/series
--- libavg-1.8.1/debian/patches/series	2015-08-31 00:15:21.000000000 +0200
+++ libavg-1.8.1/debian/patches/series	2016-04-25 19:29:46.000000000 +0200
@@ -1,2 +1,3 @@
 foreign.patch
 reproducible_build.patch
+ffmpeg_2.9.patch

Attachment: signature.asc
Description: PGP signature

Reply via email to