commit bb8ae3899836a8d6668b34c2dd9467ea6645bbc0
Author: Jan Rękorajski <[email protected]>
Date:   Sat Apr 2 10:40:04 2016 +0900

    - updated to 0.9.8
    - added ffmpeg 3 patch from opensuse
    - dsabled vdpau support (https://ehc.ac/p/mlt/bugs/240/?limit=25)

 ffmpeg3.patch | 580 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 mlt.spec      |  14 +-
 2 files changed, 585 insertions(+), 9 deletions(-)
---
diff --git a/mlt.spec b/mlt.spec
index 11e0a76..e4a5fa7 100644
--- a/mlt.spec
+++ b/mlt.spec
@@ -7,12 +7,13 @@
 Summary:       MLT - open source multimedia framework
 Summary(pl.UTF-8):     MLT - szkielet multimedialny o otwartych źródłach
 Name:          mlt
-Version:       0.9.6
-Release:       3
+Version:       0.9.8
+Release:       1
 License:       GPL
 Group:         X11/Applications/Multimedia
 Source0:       http://downloads.sourceforge.net/mlt/%{name}-%{version}.tar.gz
-# Source0-md5: 92bcc95af44ff086df0a0ce17a201d1c
+# Source0-md5: 268e3551958e9fb98927a87315c16889
+Patch0:                ffmpeg3.patch
 URL:           http://www.mltframework.org/
 BuildRequires: QtGui-devel
 BuildRequires: QtSvg-devel
@@ -81,11 +82,7 @@ Ten pakiet zawiera pliki nagłówkowe dla MLT.
 
 %prep
 %setup -q
-
-# current
-sed -i -e 's#/usr/lib/libvdpau.so#%{_libdir}/libvdpau.so.1#g' 
./src/modules/avformat/vdpau.c
-# in case of future changes
-sed -i -e 's#/usr/local/lib/libvdpau.so#%{_libdir}/libvdpau.so.2#g' 
./src/modules/avformat/vdpau.c
+%patch0 -p1
 
 %build
 %configure \
@@ -110,7 +107,6 @@ sed -i -e 
's#/usr/local/lib/libvdpau.so#%{_libdir}/libvdpau.so.2#g' ./src/module
        --disable-sse2 \
 %endif
        --avformat-swscale \
-       --avformat-vdpau \
        --qimage-includedir=%{_includedir}/qt4 \
        --qimage-libdir=%{_libdir} \
        --swig-languages=python
diff --git a/ffmpeg3.patch b/ffmpeg3.patch
new file mode 100644
index 0000000..6607f83
--- /dev/null
+++ b/ffmpeg3.patch
@@ -0,0 +1,580 @@
+---
+ src/modules/avformat/consumer_avformat.c     |   25 +++---
+ src/modules/avformat/filter_avcolour_space.c |   19 ++--
+ src/modules/avformat/filter_avdeinterlace.c  |   22 ++---
+ src/modules/avformat/filter_swscale.c        |   17 ++--
+ src/modules/avformat/producer_avformat.c     |  103 
+++++++++++++--------------
+ src/modules/avformat/vdpau.c                 |    6 -
+ 6 files changed, 98 insertions(+), 94 deletions(-)
+
+Index: mlt-0.9.8/src/modules/avformat/consumer_avformat.c
+===================================================================
+--- mlt-0.9.8.orig/src/modules/avformat/consumer_avformat.c
++++ mlt-0.9.8/src/modules/avformat/consumer_avformat.c
+@@ -41,6 +41,7 @@
+ #include <libavutil/mathematics.h>
+ #include <libavutil/samplefmt.h>
+ #include <libavutil/opt.h>
++#include <libpostproc/postprocess.h>
+ 
+ #if LIBAVCODEC_VERSION_MAJOR < 55
+ #define AV_CODEC_ID_PCM_S16LE CODEC_ID_PCM_S16LE
+@@ -439,18 +440,18 @@ static void apply_properties( void *obj,
+       }
+ }
+ 
+-static enum PixelFormat pick_pix_fmt( mlt_image_format img_fmt )
++static enum AVPixelFormat pick_pix_fmt( mlt_image_format img_fmt )
+ {
+       switch ( img_fmt )
+       {
+       case mlt_image_rgb24:
+-              return PIX_FMT_RGB24;
++              return AV_PIX_FMT_RGB24;
+       case mlt_image_rgb24a:
+-              return PIX_FMT_RGBA;
++              return AV_PIX_FMT_RGBA;
+       case mlt_image_yuv420p:
+-              return PIX_FMT_YUV420P;
++              return AV_PIX_FMT_YUV420P;
+       default:
+-              return PIX_FMT_YUYV422;
++              return AV_PIX_FMT_YUYV422;
+       }
+ }
+ 
+@@ -798,7 +799,7 @@ static AVStream *add_video_stream( mlt_c
+               st->time_base = c->time_base;
+ 
+               // Default to the codec's first pix_fmt if possible.
+-              c->pix_fmt = pix_fmt? av_get_pix_fmt( pix_fmt ) : codec? 
codec->pix_fmts[0] : PIX_FMT_YUV420P;
++              c->pix_fmt = pix_fmt? av_get_pix_fmt( pix_fmt ) : codec? 
codec->pix_fmts[0] : AV_PIX_FMT_YUV420P;
+               
+               switch ( colorspace )
+               {
+@@ -1032,7 +1033,7 @@ static int open_video( mlt_properties pr
+ 
+       if( codec && codec->pix_fmts )
+       {
+-              const enum PixelFormat *p = codec->pix_fmts;
++              const enum AVPixelFormat *p = codec->pix_fmts;
+               for( ; *p!=-1; p++ )
+               {
+                       if( *p == video_enc->pix_fmt )
+@@ -1792,10 +1793,10 @@ static void *consumer_thread( void *arg
+                                               // Do the colour space 
conversion
+                                               int flags = SWS_BICUBIC;
+ #ifdef USE_MMX
+-                                              flags |= SWS_CPU_CAPS_MMX;
++                                              flags |= PP_CPU_CAPS_MMX;
+ #endif
+ #ifdef USE_SSE
+-                                              flags |= SWS_CPU_CAPS_MMX2;
++                                              flags |= PP_CPU_CAPS_MMX2;
+ #endif
+                                               struct SwsContext *context = 
sws_getContext( width, height, pick_pix_fmt( img_fmt ),
+                                                       width, height, 
c->pix_fmt, flags, NULL, NULL, NULL);
+@@ -1808,9 +1809,9 @@ static void *consumer_thread( void *arg
+                                               // Apply the alpha if applicable
+                                               if ( !mlt_properties_get( 
properties, "mlt_image_format" ) ||
+                                                    strcmp( 
mlt_properties_get( properties, "mlt_image_format" ), "rgb24a" ) )
+-                                              if ( c->pix_fmt == PIX_FMT_RGBA 
||
+-                                                   c->pix_fmt == PIX_FMT_ARGB 
||
+-                                                   c->pix_fmt == PIX_FMT_BGRA 
)
++                                              if ( c->pix_fmt == 
AV_PIX_FMT_RGBA ||
++                                                   c->pix_fmt == 
AV_PIX_FMT_ARGB ||
++                                                   c->pix_fmt == 
AV_PIX_FMT_BGRA )
+                                               {
+                                                       uint8_t *alpha = 
mlt_frame_get_alpha_mask( frame );
+                                                       register int n;
+Index: mlt-0.9.8/src/modules/avformat/filter_avcolour_space.c
+===================================================================
+--- mlt-0.9.8.orig/src/modules/avformat/filter_avcolour_space.c
++++ mlt-0.9.8/src/modules/avformat/filter_avcolour_space.c
+@@ -26,6 +26,7 @@
+ // ffmpeg Header files
+ #include <libavformat/avformat.h>
+ #include <libswscale/swscale.h>
++#include <libpostproc/postprocess.h>
+ 
+ #include <stdio.h>
+ #include <stdlib.h>
+@@ -47,17 +48,17 @@ static int convert_mlt_to_av_cs( mlt_ima
+       switch( format )
+       {
+               case mlt_image_rgb24:
+-                      value = PIX_FMT_RGB24;
++                      value = AV_PIX_FMT_RGB24;
+                       break;
+               case mlt_image_rgb24a:
+               case mlt_image_opengl:
+-                      value = PIX_FMT_RGBA;
++                      value = AV_PIX_FMT_RGBA;
+                       break;
+               case mlt_image_yuv422:
+-                      value = PIX_FMT_YUYV422;
++                      value = AV_PIX_FMT_YUYV422;
+                       break;
+               case mlt_image_yuv420p:
+-                      value = PIX_FMT_YUV420P;
++                      value = AV_PIX_FMT_YUV420P;
+                       break;
+               default:
+                       mlt_log_error( NULL, "[filter avcolor_space] Invalid 
format %s\n",
+@@ -123,15 +124,15 @@ static int av_convert_image( uint8_t *ou
+       int flags = SWS_BICUBIC | SWS_ACCURATE_RND;
+       int error = -1;
+ 
+-      if ( out_fmt == PIX_FMT_YUYV422 )
++      if ( out_fmt == AV_PIX_FMT_YUYV422 )
+               flags |= SWS_FULL_CHR_H_INP;
+       else
+               flags |= SWS_FULL_CHR_H_INT;
+ #ifdef USE_MMX
+-      flags |= SWS_CPU_CAPS_MMX;
++      flags |= PP_CPU_CAPS_MMX;
+ #endif
+ #ifdef USE_SSE
+-      flags |= SWS_CPU_CAPS_MMX2;
++      flags |= PP_CPU_CAPS_MMX2;
+ #endif
+ 
+       avpicture_fill( &input, in, in_fmt, width, height );
+@@ -141,7 +142,7 @@ static int av_convert_image( uint8_t *ou
+       if ( context )
+       {
+               // libswscale wants the RGB colorspace to be SWS_CS_DEFAULT, 
which is = SWS_CS_ITU601.
+-              if ( out_fmt == PIX_FMT_RGB24 || out_fmt == PIX_FMT_RGBA )
++              if ( out_fmt == AV_PIX_FMT_RGB24 || out_fmt == AV_PIX_FMT_RGBA )
+                       dst_colorspace = 601;
+               error = set_luma_transfer( context, src_colorspace, 
dst_colorspace, use_full_range );
+               sws_scale( context, (const uint8_t* const*) input.data, 
input.linesize, 0, height,
+@@ -326,7 +327,7 @@ mlt_filter filter_avcolour_space_init( v
+               int *width = (int*) arg;
+               if ( *width > 0 )
+               {
+-                      struct SwsContext *context = sws_getContext( *width, 
*width, PIX_FMT_RGB32, 64, 64, PIX_FMT_RGB32, SWS_BILINEAR, NULL, NULL, NULL);
++                      struct SwsContext *context = sws_getContext( *width, 
*width, AV_PIX_FMT_RGB32, 64, 64, AV_PIX_FMT_RGB32, SWS_BILINEAR, NULL, NULL, 
NULL);
+                       if ( context )
+                               sws_freeContext( context );
+                       else
+Index: mlt-0.9.8/src/modules/avformat/filter_avdeinterlace.c
+===================================================================
+--- mlt-0.9.8.orig/src/modules/avformat/filter_avdeinterlace.c
++++ mlt-0.9.8/src/modules/avformat/filter_avdeinterlace.c
+@@ -234,28 +234,28 @@ static int mlt_avpicture_deinterlace(AVP
+ {
+     int i;
+ 
+-    if (pix_fmt != PIX_FMT_YUV420P &&
+-        pix_fmt != PIX_FMT_YUV422P &&
+-        pix_fmt != PIX_FMT_YUYV422 &&
+-        pix_fmt != PIX_FMT_YUV444P &&
+-      pix_fmt != PIX_FMT_YUV411P)
++    if (pix_fmt != AV_PIX_FMT_YUV420P &&
++        pix_fmt != AV_PIX_FMT_YUV422P &&
++        pix_fmt != AV_PIX_FMT_YUYV422 &&
++        pix_fmt != AV_PIX_FMT_YUV444P &&
++      pix_fmt != AV_PIX_FMT_YUV411P)
+         return -1;
+     if ((width & 3) != 0 || (height & 3) != 0)
+         return -1;
+ 
+-      if ( pix_fmt != PIX_FMT_YUYV422 )
++      if ( pix_fmt != AV_PIX_FMT_YUYV422 )
+       {
+       for(i=0;i<3;i++) {
+           if (i == 1) {
+               switch(pix_fmt) {
+-              case PIX_FMT_YUV420P:
++              case AV_PIX_FMT_YUV420P:
+                   width >>= 1;
+                   height >>= 1;
+                   break;
+-              case PIX_FMT_YUV422P:
++              case AV_PIX_FMT_YUV422P:
+                   width >>= 1;
+                   break;
+-              case PIX_FMT_YUV411P:
++              case AV_PIX_FMT_YUV411P:
+                   width >>= 2;
+                   break;
+               default:
+@@ -312,8 +312,8 @@ static int filter_get_image( mlt_frame f
+               AVPicture *output = mlt_pool_alloc( sizeof( AVPicture ) );
+ 
+               // Fill the picture
+-              avpicture_fill( output, *image, PIX_FMT_YUYV422, *width, 
*height );
+-              mlt_avpicture_deinterlace( output, output, PIX_FMT_YUYV422, 
*width, *height );
++              avpicture_fill( output, *image, AV_PIX_FMT_YUYV422, *width, 
*height );
++              mlt_avpicture_deinterlace( output, output, AV_PIX_FMT_YUYV422, 
*width, *height );
+ 
+               // Free the picture
+               mlt_pool_release( output );
+Index: mlt-0.9.8/src/modules/avformat/filter_swscale.c
+===================================================================
+--- mlt-0.9.8.orig/src/modules/avformat/filter_swscale.c
++++ mlt-0.9.8/src/modules/avformat/filter_swscale.c
+@@ -25,6 +25,7 @@
+ // ffmpeg Header files
+ #include <libavformat/avformat.h>
+ #include <libswscale/swscale.h>
++#include <libpostproc/postprocess.h>
+ 
+ #include <stdio.h>
+ #include <stdlib.h>
+@@ -37,17 +38,17 @@ static inline int convert_mlt_to_av_cs(
+       switch( format )
+       {
+               case mlt_image_rgb24:
+-                      value = PIX_FMT_RGB24;
++                      value = AV_PIX_FMT_RGB24;
+                       break;
+               case mlt_image_rgb24a:
+               case mlt_image_opengl:
+-                      value = PIX_FMT_RGBA;
++                      value = AV_PIX_FMT_RGBA;
+                       break;
+               case mlt_image_yuv422:
+-                      value = PIX_FMT_YUYV422;
++                      value = AV_PIX_FMT_YUYV422;
+                       break;
+               case mlt_image_yuv420p:
+-                      value = PIX_FMT_YUV420P;
++                      value = AV_PIX_FMT_YUV420P;
+                       break;
+               default:
+                       fprintf( stderr, "Invalid format...\n" );
+@@ -109,10 +110,10 @@ static int filter_scale( mlt_frame frame
+                       return 1;
+       }
+ #ifdef USE_MMX
+-      interp |= SWS_CPU_CAPS_MMX;
++      interp |= PP_CPU_CAPS_MMX;
+ #endif
+ #ifdef USE_SSE
+-      interp |= SWS_CPU_CAPS_MMX2;
++      interp |= PP_CPU_CAPS_MMX2;
+ #endif
+ 
+       // Convert the pixel formats
+@@ -148,7 +149,7 @@ static int filter_scale( mlt_frame frame
+                       uint8_t *alpha = mlt_frame_get_alpha( frame );
+                       if ( alpha )
+                       {
+-                              avformat = PIX_FMT_GRAY8;
++                              avformat = AV_PIX_FMT_GRAY8;
+                               struct SwsContext *context = sws_getContext( 
iwidth, iheight, avformat, owidth, oheight, avformat, interp, NULL, NULL, NULL);
+                               avpicture_fill( &input, alpha, avformat, 
iwidth, iheight );
+                               outbuf = mlt_pool_alloc( owidth * oheight );
+@@ -182,7 +183,7 @@ mlt_filter filter_swscale_init( mlt_prof
+               int *width = (int*) arg;
+               if ( *width > 0 )
+               {
+-                      struct SwsContext *context = sws_getContext( *width, 
*width, PIX_FMT_RGB32, 64, 64, PIX_FMT_RGB32, SWS_BILINEAR, NULL, NULL, NULL);
++                      struct SwsContext *context = sws_getContext( *width, 
*width, AV_PIX_FMT_RGB32, 64, 64, AV_PIX_FMT_RGB32, SWS_BILINEAR, NULL, NULL, 
NULL);
+                       if ( context )
+                               sws_freeContext( context );
+                       else
+Index: mlt-0.9.8/src/modules/avformat/producer_avformat.c
+===================================================================
+--- mlt-0.9.8.orig/src/modules/avformat/producer_avformat.c
++++ mlt-0.9.8/src/modules/avformat/producer_avformat.c
+@@ -33,6 +33,7 @@
+ #include <libavutil/pixdesc.h>
+ #include <libavutil/dict.h>
+ #include <libavutil/opt.h>
++#include <libpostproc/postprocess.h>
+ 
+ #ifdef VDPAU
+ #  include <libavcodec/vdpau.h>
+@@ -504,21 +505,21 @@ static char* parse_url( mlt_profile prof
+       return result;
+ }
+ 
+-static enum PixelFormat pick_pix_fmt( enum PixelFormat pix_fmt )
++static enum AVPixelFormat pick_pix_fmt( enum AVPixelFormat pix_fmt )
+ {
+       switch ( pix_fmt )
+       {
+-      case PIX_FMT_ARGB:
+-      case PIX_FMT_RGBA:
+-      case PIX_FMT_ABGR:
+-      case PIX_FMT_BGRA:
+-              return PIX_FMT_RGBA;
++      case AV_PIX_FMT_ARGB:
++      case AV_PIX_FMT_RGBA:
++      case AV_PIX_FMT_ABGR:
++      case AV_PIX_FMT_BGRA:
++              return AV_PIX_FMT_RGBA;
+ #if defined(FFUDIV) && (LIBSWSCALE_VERSION_INT >= ((2<<16)+(5<<8)+102))
+       case AV_PIX_FMT_BAYER_RGGB16LE:
+-              return PIX_FMT_RGB24;
++              return AV_PIX_FMT_RGB24;
+ #endif
+       default:
+-              return PIX_FMT_YUV422P;
++              return AV_PIX_FMT_YUV422P;
+       }
+ }
+ 
+@@ -759,7 +760,7 @@ static void prepare_reopen( producer_avf
+       {
+               while ( ( pkt = mlt_deque_pop_back( self->apackets ) ) )
+               {
+-                      av_free_packet( pkt );
++                      av_packet_unref( pkt );
+                       free( pkt );
+               }
+               mlt_deque_close( self->apackets );
+@@ -769,7 +770,7 @@ static void prepare_reopen( producer_avf
+       {
+               while ( ( pkt = mlt_deque_pop_back( self->vpackets ) ) )
+               {
+-                      av_free_packet( pkt );
++                      av_packet_unref( pkt );
+                       free( pkt );
+               }
+               mlt_deque_close( self->vpackets );
+@@ -810,7 +811,7 @@ static void find_first_pts( producer_avf
+                       if ( self->first_pts != AV_NOPTS_VALUE )
+                               toscan = 0;
+               }
+-              av_free_packet( &pkt );
++              av_packet_unref( &pkt );
+       }
+       av_seek_frame( context, -1, 0, AVSEEK_FLAG_BACKWARD );
+ }
+@@ -976,26 +977,26 @@ static int set_luma_transfer( struct Sws
+               brightness, contrast, saturation );
+ }
+ 
+-static mlt_image_format pick_image_format( enum PixelFormat pix_fmt )
++static mlt_image_format pick_image_format( enum AVPixelFormat pix_fmt )
+ {
+       switch ( pix_fmt )
+       {
+-      case PIX_FMT_ARGB:
+-      case PIX_FMT_RGBA:
+-      case PIX_FMT_ABGR:
+-      case PIX_FMT_BGRA:
++      case AV_PIX_FMT_ARGB:
++      case AV_PIX_FMT_RGBA:
++      case AV_PIX_FMT_ABGR:
++      case AV_PIX_FMT_BGRA:
+               return mlt_image_rgb24a;
+-      case PIX_FMT_YUV420P:
+-      case PIX_FMT_YUVJ420P:
+-      case PIX_FMT_YUVA420P:
++      case AV_PIX_FMT_YUV420P:
++      case AV_PIX_FMT_YUVJ420P:
++      case AV_PIX_FMT_YUVA420P:
+               return mlt_image_yuv420p;
+-      case PIX_FMT_RGB24:
+-      case PIX_FMT_BGR24:
+-      case PIX_FMT_GRAY8:
+-      case PIX_FMT_MONOWHITE:
+-      case PIX_FMT_MONOBLACK:
+-      case PIX_FMT_RGB8:
+-      case PIX_FMT_BGR8:
++      case AV_PIX_FMT_RGB24:
++      case AV_PIX_FMT_BGR24:
++      case AV_PIX_FMT_GRAY8:
++      case AV_PIX_FMT_MONOWHITE:
++      case AV_PIX_FMT_MONOBLACK:
++      case AV_PIX_FMT_RGB8:
++      case AV_PIX_FMT_BGR8:
+ #if defined(FFUDIV) && (LIBSWSCALE_VERSION_INT >= ((2<<16)+(5<<8)+102))
+       case AV_PIX_FMT_BAYER_RGGB16LE:
+               return mlt_image_rgb24;
+@@ -1072,10 +1073,10 @@ static int convert_image( producer_avfor
+       int result = self->yuv_colorspace;
+ 
+ #ifdef USE_MMX
+-      flags |= SWS_CPU_CAPS_MMX;
++      flags |= PP_CPU_CAPS_MMX;
+ #endif
+ #ifdef USE_SSE
+-      flags |= SWS_CPU_CAPS_MMX2;
++      flags |= PP_CPU_CAPS_MMX2;
+ #endif
+ 
+       mlt_log_debug( MLT_PRODUCER_SERVICE(self->parent), "%s @ %dx%d space 
%d->%d\n",
+@@ -1083,9 +1084,9 @@ static int convert_image( producer_avfor
+               width, height, self->yuv_colorspace, profile->colorspace );
+ 
+       // extract alpha from planar formats
+-      if ( ( pix_fmt == PIX_FMT_YUVA420P
++      if ( ( pix_fmt == AV_PIX_FMT_YUVA420P
+ #if defined(FFUDIV)
+-                      || pix_fmt == PIX_FMT_YUVA444P
++                      || pix_fmt == AV_PIX_FMT_YUVA444P
+ #endif
+                       ) &&
+               *format != mlt_image_rgb24a && *format != mlt_image_opengl &&
+@@ -1110,10 +1111,10 @@ static int convert_image( producer_avfor
+               // avformat with no filters and explicitly requested.
+ #if defined(FFUDIV) && (LIBAVFORMAT_VERSION_INT >= ((55<<16)+(48<<8)+100))
+               struct SwsContext *context = sws_getContext(width, height, 
src_pix_fmt,
+-                      width, height, PIX_FMT_YUV420P, flags, NULL, NULL, 
NULL);
++                      width, height, AV_PIX_FMT_YUV420P, flags, NULL, NULL, 
NULL);
+ #else
+               struct SwsContext *context = sws_getContext( width, height, 
pix_fmt,
+-                                      width, height, self->full_luma ? 
PIX_FMT_YUVJ420P : PIX_FMT_YUV420P,
++                                      width, height, self->full_luma ? 
AV_PIX_FMT_YUVJ420P : AV_PIX_FMT_YUV420P,
+                                       flags, NULL, NULL, NULL);
+ #endif
+ 
+@@ -1133,9 +1134,9 @@ static int convert_image( producer_avfor
+       else if ( *format == mlt_image_rgb24 )
+       {
+               struct SwsContext *context = sws_getContext( width, height, 
src_pix_fmt,
+-                      width, height, PIX_FMT_RGB24, flags | 
SWS_FULL_CHR_H_INT, NULL, NULL, NULL);
++                      width, height, AV_PIX_FMT_RGB24, flags | 
SWS_FULL_CHR_H_INT, NULL, NULL, NULL);
+               AVPicture output;
+-              avpicture_fill( &output, buffer, PIX_FMT_RGB24, width, height );
++              avpicture_fill( &output, buffer, AV_PIX_FMT_RGB24, width, 
height );
+               // libswscale wants the RGB colorspace to be SWS_CS_DEFAULT, 
which is = SWS_CS_ITU601.
+               set_luma_transfer( context, self->yuv_colorspace, 601, 
self->full_luma, 0 );
+               sws_scale( context, (const uint8_t* const*) frame->data, 
frame->linesize, 0, height,
+@@ -1145,9 +1146,9 @@ static int convert_image( producer_avfor
+       else if ( *format == mlt_image_rgb24a || *format == mlt_image_opengl )
+       {
+               struct SwsContext *context = sws_getContext( width, height, 
src_pix_fmt,
+-                      width, height, PIX_FMT_RGBA, flags | 
SWS_FULL_CHR_H_INT, NULL, NULL, NULL);
++                      width, height, AV_PIX_FMT_RGBA, flags | 
SWS_FULL_CHR_H_INT, NULL, NULL, NULL);
+               AVPicture output;
+-              avpicture_fill( &output, buffer, PIX_FMT_RGBA, width, height );
++              avpicture_fill( &output, buffer, AV_PIX_FMT_RGBA, width, height 
);
+               // libswscale wants the RGB colorspace to be SWS_CS_DEFAULT, 
which is = SWS_CS_ITU601.
+               set_luma_transfer( context, self->yuv_colorspace, 601, 
self->full_luma, 0 );
+               sws_scale( context, (const uint8_t* const*) frame->data, 
frame->linesize, 0, height,
+@@ -1158,13 +1159,13 @@ static int convert_image( producer_avfor
+       {
+ #if defined(FFUDIV) && (LIBAVFORMAT_VERSION_INT >= ((55<<16)+(48<<8)+100))
+               struct SwsContext *context = sws_getContext( width, height, 
src_pix_fmt,
+-                      width, height, PIX_FMT_YUYV422, flags | 
SWS_FULL_CHR_H_INP, NULL, NULL, NULL);
++                      width, height, AV_PIX_FMT_YUYV422, flags | 
SWS_FULL_CHR_H_INP, NULL, NULL, NULL);
+ #else
+               struct SwsContext *context = sws_getContext( width, height, 
pix_fmt,
+-                      width, height, PIX_FMT_YUYV422, flags | 
SWS_FULL_CHR_H_INP, NULL, NULL, NULL);
++                      width, height, AV_PIX_FMT_YUYV422, flags | 
SWS_FULL_CHR_H_INP, NULL, NULL, NULL);
+ #endif
+               AVPicture output;
+-              avpicture_fill( &output, buffer, PIX_FMT_YUYV422, width, height 
);
++              avpicture_fill( &output, buffer, AV_PIX_FMT_YUYV422, width, 
height );
+               if ( !set_luma_transfer( context, self->yuv_colorspace, 
profile->colorspace, self->full_luma, 0 ) )
+                       result = profile->colorspace;
+               sws_scale( context, (const uint8_t* const*) frame->data, 
frame->linesize, 0, height,
+@@ -1310,10 +1311,10 @@ static int producer_get_image( mlt_frame
+       stream = context->streams[ self->video_index ];
+       codec_context = stream->codec;
+       if ( *format == mlt_image_none || *format == mlt_image_glsl ||
+-                      codec_context->pix_fmt == PIX_FMT_ARGB ||
+-                      codec_context->pix_fmt == PIX_FMT_RGBA ||
+-                      codec_context->pix_fmt == PIX_FMT_ABGR ||
+-                      codec_context->pix_fmt == PIX_FMT_BGRA )
++                      codec_context->pix_fmt == AV_PIX_FMT_ARGB ||
++                      codec_context->pix_fmt == AV_PIX_FMT_RGBA ||
++                      codec_context->pix_fmt == AV_PIX_FMT_ABGR ||
++                      codec_context->pix_fmt == AV_PIX_FMT_BGRA )
+               *format = pick_image_format( codec_context->pix_fmt );
+ #if defined(FFUDIV) && (LIBSWSCALE_VERSION_INT >= ((2<<16)+(5<<8)+102))
+       else if ( codec_context->pix_fmt == AV_PIX_FMT_BAYER_RGGB16LE ) {
+@@ -1346,7 +1347,7 @@ static int producer_get_image( mlt_frame
+                               picture.linesize[1] = codec_context->width / 2;
+                               picture.linesize[2] = codec_context->width / 2;
+                               yuv_colorspace = convert_image( self, 
(AVFrame*) &picture, *buffer,
+-                                      PIX_FMT_YUV420P, format, *width, 
*height, &alpha );
++                                      AV_PIX_FMT_YUV420P, format, *width, 
*height, &alpha );
+                       }
+                       else
+ #endif
+@@ -1374,7 +1375,7 @@ static int producer_get_image( mlt_frame
+               {
+                       // Read a packet
+                       if ( self->pkt.stream_index == self->video_index )
+-                              av_free_packet( &self->pkt );
++                              av_packet_unref( &self->pkt );
+                       av_init_packet( &self->pkt );
+                       pthread_mutex_lock( &self->packets_mutex );
+                       if ( mlt_deque_count( self->vpackets ) )
+@@ -1539,7 +1540,7 @@ static int producer_get_image( mlt_frame
+                                                       VdpStatus status = 
vdp_surface_get_bits( render->surface, dest_format, planes, pitches );
+                                                       if ( status == 
VDP_STATUS_OK )
+                                                       {
+-                                                              yuv_colorspace 
= convert_image( self, self->video_frame, *buffer, PIX_FMT_YUV420P,
++                                                              yuv_colorspace 
= convert_image( self, self->video_frame, *buffer, AV_PIX_FMT_YUV420P,
+                                                                       format, 
*width, *height, &alpha );
+                                                               
mlt_properties_set_int( frame_properties, "colorspace", yuv_colorspace );
+                                                       }
+@@ -1573,7 +1574,7 @@ static int producer_get_image( mlt_frame
+                       // Free packet data if not video and not live audio 
packet
+                       if ( self->pkt.stream_index != self->video_index &&
+                                !( !self->seekable && self->pkt.stream_index 
== self->audio_index ) )
+-                              av_free_packet( &self->pkt );
++                              av_packet_unref( &self->pkt );
+               }
+       }
+ 
+@@ -2314,7 +2315,7 @@ static int producer_get_audio( mlt_frame
+                       }
+ 
+                       if ( self->seekable || index != self->video_index )
+-                              av_free_packet( &pkt );
++                              av_packet_unref( &pkt );
+ 
+               }
+ 
+@@ -2600,7 +2601,7 @@ static void producer_avformat_close( pro
+       mlt_log_debug( NULL, "producer_avformat_close\n" );
+ 
+       // Cleanup av contexts
+-      av_free_packet( &self->pkt );
++      av_packet_unref( &self->pkt );
+       av_free( self->video_frame );
+       av_free( self->audio_frame );
+       if ( self->is_mutex_init )
+@@ -2648,7 +2649,7 @@ static void producer_avformat_close( pro
+       {
+               while ( ( pkt = mlt_deque_pop_back( self->apackets ) ) )
+               {
+-                      av_free_packet( pkt );
++                      av_packet_unref( pkt );
+                       free( pkt );
+               }
+               mlt_deque_close( self->apackets );
+@@ -2658,7 +2659,7 @@ static void producer_avformat_close( pro
+       {
+               while ( ( pkt = mlt_deque_pop_back( self->vpackets ) ) )
+               {
+-                      av_free_packet( pkt );
++                      av_packet_unref( pkt );
+                       free( pkt );
+               }
+               mlt_deque_close( self->vpackets );
+Index: mlt-0.9.8/src/modules/avformat/vdpau.c
+===================================================================
+--- mlt-0.9.8.orig/src/modules/avformat/vdpau.c
++++ mlt-0.9.8/src/modules/avformat/vdpau.c
+@@ -125,9 +125,9 @@ static int vdpau_init( producer_avformat
+       return success;
+ }
+ 
+-static enum PixelFormat vdpau_get_format( struct AVCodecContext *s, const 
enum PixelFormat *fmt )
++static enum AVPixelFormat vdpau_get_format( struct AVCodecContext *s, const 
enum AVPixelFormat *fmt )
+ {
+-      return PIX_FMT_VDPAU_H264;
++      return AV_PIX_FMT_VDPAU_H264;
+ }
+ 
+ static int vdpau_get_buffer( AVCodecContext *codec_context, AVFrame *frame )
+@@ -229,7 +229,7 @@ static int vdpau_decoder_init( producer_
+       self->video_codec->release_buffer = vdpau_release_buffer;
+       self->video_codec->draw_horiz_band = vdpau_draw_horiz;
+       self->video_codec->slice_flags = SLICE_FLAG_CODED_ORDER | 
SLICE_FLAG_ALLOW_FIELD;
+-      self->video_codec->pix_fmt = PIX_FMT_VDPAU_H264;
++      self->video_codec->pix_fmt = AV_PIX_FMT_VDPAU_H264;
+       
+       VdpDecoderProfile profile = VDP_DECODER_PROFILE_H264_HIGH;
+       uint32_t max_references = self->video_codec->refs;
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/mlt.git/commitdiff/bb8ae3899836a8d6668b34c2dd9467ea6645bbc0

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to