Your message dated Thu, 05 Nov 2015 13:52:57 +0000
with message-id <[email protected]>
and subject line Bug#803841: fixed in mlt 0.9.8-3
has caused the Debian Bug report #803841,
regarding mlt: FTBFS with FFmpeg 2.9
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
803841: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=803841
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: mlt
Version: 0.9.8-2
Severity: important
Tags: patch
User: [email protected]
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 are non-trivial and should be runtime-tested.

Best regards,
Andreas

diff --git a/debian/control b/debian/control
index 0775f4f..a212644 100644
--- a/debian/control
+++ b/debian/control
@@ -17,6 +17,7 @@ Build-Depends: debhelper (>= 9),
  libsdl1.2-dev,
  libsox-dev (>= 14.3.0),
  libswscale-dev,
+ libswresample-dev,
  libvorbis-dev,
  libxine2-dev,
  libxml2-dev,
diff --git a/debian/patches/ffmpeg_2.9.patch b/debian/patches/ffmpeg_2.9.patch
new file mode 100644
index 0000000..4dc19d5
--- /dev/null
+++ b/debian/patches/ffmpeg_2.9.patch
@@ -0,0 +1,563 @@
+Description: Replace deprecated FFmpeg API
+Author: Andreas Cadhalpun <[email protected]>
+Last-Update: <2015-11-02>
+
+--- mlt-0.9.8.orig/src/modules/avformat/configure
++++ mlt-0.9.8/src/modules/avformat/configure
+@@ -131,6 +131,8 @@ else
+                 echo "LDFLAGS+=$(pkg-config --libs libavformat${avformat_suffix})" >> config.mak
+ 		echo "CFLAGS+=$(pkg-config --cflags libswscale${avformat_suffix})" >> config.mak
+                 echo "LDFLAGS+=$(pkg-config --libs libswscale${avformat_suffix})" >> config.mak
++                echo "CFLAGS+=$(pkg-config --cflags libswresample${avformat_suffix})" >> config.mak
++                echo "LDFLAGS+=$(pkg-config --libs libswresample${avformat_suffix})" >> config.mak
+ 		if [ "$devices" = "true" ]
+ 		then
+ 			if ! $(pkg-config libavdevice${avformat_suffix}); then
+--- mlt-0.9.8.orig/src/modules/avformat/consumer_avformat.c
++++ mlt-0.9.8/src/modules/avformat/consumer_avformat.c
+@@ -439,18 +439,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 +798,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 )
+ 		{
+@@ -991,7 +991,7 @@ static AVFrame *alloc_picture( int pix_f
+ 	else
+ 	{
+ 		// Something failed - clean up what we can
+-	 	av_free( picture );
++	 	av_frame_free( &picture );
+ 	 	av_free( picture_buf );
+ 	 	picture = NULL;
+ 	}
+@@ -1032,7 +1032,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 )
+@@ -1791,12 +1791,6 @@ static void *consumer_thread( void *arg
+ 
+ 						// Do the colour space conversion
+ 						int flags = SWS_BICUBIC;
+-#ifdef USE_MMX
+-						flags |= SWS_CPU_CAPS_MMX;
+-#endif
+-#ifdef USE_SSE
+-						flags |= SWS_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);
+ 						sws_scale( context, (const uint8_t* const*) video_avframe->data, video_avframe->linesize, 0, height,
+@@ -1808,9 +1802,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;
+@@ -2137,9 +2131,9 @@ on_fatal_error:
+ 	av_free( converted_avframe );
+ 	if ( video_avframe )
+ 		av_free( video_avframe->data[0] );
+-	av_free( video_avframe );
++	av_frame_free( &video_avframe );
+ 	av_free( video_outbuf );
+-	av_free( audio_avframe );
++	av_frame_free( &audio_avframe );
+ 	av_free( audio_buf_1 );
+ 	av_free( audio_buf_2 );
+ 
+--- mlt-0.9.8.orig/src/modules/avformat/filter_avcolour_space.c
++++ mlt-0.9.8/src/modules/avformat/filter_avcolour_space.c
+@@ -47,17 +47,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,16 +123,10 @@ 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;
+-#endif
+-#ifdef USE_SSE
+-	flags |= SWS_CPU_CAPS_MMX2;
+-#endif
+ 
+ 	avpicture_fill( &input, in, in_fmt, width, height );
+ 	avpicture_fill( &output, out, out_fmt, width, height );
+@@ -141,7 +135,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 +320,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
+--- 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 );
+--- mlt-0.9.8.orig/src/modules/avformat/filter_avresample.c
++++ mlt-0.9.8/src/modules/avformat/filter_avresample.c
+@@ -28,12 +28,17 @@
+ // ffmpeg Header files
+ #include <libavformat/avformat.h>
+ #include <libavutil/samplefmt.h>
++#include <libswresample/swresample.h>
+ 
+ #if defined(FFUDIV)
+ 
+ #define MAX_AUDIO_FRAME_SIZE (192000) // 1 second of 48khz 32bit audio
+ 
+ 
++static void destroy_swr(SwrContext *swr) {
++    swr_free(&swr);
++}
++
+ /** Get the audio.
+ */
+ 
+@@ -50,9 +55,10 @@ static int resample_get_audio( mlt_frame
+ 	// Get the resample information
+ 	int output_rate = mlt_properties_get_int( filter_properties, "frequency" );
+ 	int16_t *sample_buffer = mlt_properties_get_data( filter_properties, "buffer", NULL );
++	uint8_t *data[1] = { sample_buffer };
+ 
+ 	// Obtain the resample context if it exists
+-	ReSampleContext *resample = mlt_properties_get_data( filter_properties, "audio_resample", NULL );
++	SwrContext *swr = mlt_properties_get_data( filter_properties, "audio_resample", NULL );
+ 
+ 	// If no resample frequency is specified, default to requested value
+ 	if ( output_rate == 0 )
+@@ -79,14 +85,17 @@ static int resample_get_audio( mlt_frame
+ 		}
+ 
+ 		// Create a resampler if nececessary
+-		if ( resample == NULL || *frequency != mlt_properties_get_int( filter_properties, "last_frequency" ) )
++		if ( swr == NULL || *frequency != mlt_properties_get_int( filter_properties, "last_frequency" ) )
+ 		{
+ 			// Create the resampler
+-			resample = av_audio_resample_init( *channels, *channels, output_rate, *frequency,
+-				AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S16, 16, 10, 0, 0.8 );
++			swr = swr_alloc_set_opts(swr,
++				av_get_default_channel_layout(*channels), AV_SAMPLE_FMT_S16, output_rate,
++				av_get_default_channel_layout(*channels), AV_SAMPLE_FMT_S16, *frequency,
++				0, NULL);
++			swr_init(swr);
+ 
+ 			// And store it on properties
+-			mlt_properties_set_data( filter_properties, "audio_resample", resample, 0, ( mlt_destructor )audio_resample_close, NULL );
++			mlt_properties_set_data( filter_properties, "audio_resample", swr, 0, ( mlt_destructor )destroy_swr, NULL );
+ 
+ 			// And remember what it was created for
+ 			mlt_properties_set_int( filter_properties, "last_frequency", *frequency );
+@@ -95,7 +104,7 @@ static int resample_get_audio( mlt_frame
+ 		mlt_service_unlock( MLT_FILTER_SERVICE( filter ) );
+ 
+ 		// Resample the audio
+-		used = audio_resample( resample, sample_buffer, *buffer, *samples );
++		used = swr_convert(swr, data, MAX_AUDIO_FRAME_SIZE, buffer, *samples);
+ 		int size = used * *channels * sizeof( int16_t );
+ 
+ 		// Resize if necessary
+--- mlt-0.9.8.orig/src/modules/avformat/filter_swscale.c
++++ mlt-0.9.8/src/modules/avformat/filter_swscale.c
+@@ -37,17 +37,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" );
+@@ -108,12 +108,6 @@ static int filter_scale( mlt_frame frame
+ 			// XXX: we only know how to rescale packed formats
+ 			return 1;
+ 	}
+-#ifdef USE_MMX
+-	interp |= SWS_CPU_CAPS_MMX;
+-#endif
+-#ifdef USE_SSE
+-	interp |= SWS_CPU_CAPS_MMX2;
+-#endif
+ 
+ 	// Convert the pixel formats
+ 	int avformat = convert_mlt_to_av_cs( *format );
+@@ -148,7 +142,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 +176,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
+--- mlt-0.9.8.orig/src/modules/avformat/producer_avformat.c
++++ mlt-0.9.8/src/modules/avformat/producer_avformat.c
+@@ -504,21 +504,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;
+ 	}
+ }
+ 
+@@ -875,7 +875,7 @@ static int seek_video( producer_avformat
+ 			// Remove the cached info relating to the previous position
+ 			self->current_position = POSITION_INVALID;
+ 			self->last_position = POSITION_INVALID;
+-			av_freep( &self->video_frame );
++			av_frame_free( &self->video_frame );
+ 		}
+ 	}
+ 	pthread_mutex_unlock( &self->packets_mutex );
+@@ -976,26 +976,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;
+@@ -1071,21 +1071,15 @@ static int convert_image( producer_avfor
+ 	mlt_profile profile = mlt_service_profile( MLT_PRODUCER_SERVICE( self->parent ) );
+ 	int result = self->yuv_colorspace;
+ 
+-#ifdef USE_MMX
+-	flags |= SWS_CPU_CAPS_MMX;
+-#endif
+-#ifdef USE_SSE
+-	flags |= SWS_CPU_CAPS_MMX2;
+-#endif
+ 
+ 	mlt_log_debug( MLT_PRODUCER_SERVICE(self->parent), "%s @ %dx%d space %d->%d\n",
+ 		mlt_image_format_name( *format ),
+ 		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 +1104,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 +1127,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 +1139,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 +1152,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 +1304,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 +1340,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
+@@ -1539,7 +1533,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 );
+ 							}
+@@ -2601,8 +2595,8 @@ static void producer_avformat_close( pro
+ 
+ 	// Cleanup av contexts
+ 	av_free_packet( &self->pkt );
+-	av_free( self->video_frame );
+-	av_free( self->audio_frame );
++	av_frame_free( &self->video_frame );
++	av_frame_free( &self->audio_frame );
+ 	if ( self->is_mutex_init )
+ 		pthread_mutex_lock( &self->open_mutex );
+ 	int i;
+--- mlt-0.9.8.orig/src/modules/avformat/vdpau.c
++++ mlt-0.9.8/src/modules/avformat/vdpau.c
+@@ -136,9 +136,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 PixelFormat *fmt )
+ {
+-	return PIX_FMT_VDPAU_H264;
++	return AV_PIX_FMT_VDPAU_H264;
+ }
+ 
+ static int vdpau_get_buffer( AVCodecContext *codec_context, AVFrame *frame )
+@@ -240,7 +240,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;
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..a827249
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1 @@
+ffmpeg_2.9.patch

--- End Message ---
--- Begin Message ---
Source: mlt
Source-Version: 0.9.8-3

We believe that the bug you reported is fixed in the latest version of
mlt, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Patrick Matthäi <[email protected]> (supplier of updated mlt package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Format: 1.8
Date: Thu, 05 Nov 2015 14:30:57 +0100
Source: mlt
Binary: libmlt-dev libmlt6 libmlt-data libmlt++-dev libmlt++3 libmlt-dbg melt 
python-mlt
Architecture: source amd64 all
Version: 0.9.8-3
Distribution: unstable
Urgency: high
Maintainer: Fathi Boudra <[email protected]>
Changed-By: Patrick Matthäi <[email protected]>
Description:
 libmlt++-dev - MLT multimedia framework C++ wrapper (development)
 libmlt++3  - MLT multimedia framework C++ wrapper (runtime)
 libmlt-data - multimedia framework (data)
 libmlt-dbg - multimedia framework (debugging symbols)
 libmlt-dev - multimedia framework (development)
 libmlt6    - multimedia framework (runtime)
 melt       - command line media player and video editor
 python-mlt - multimedia framework (Python bindings)
Closes: 803841
Changes:
 mlt (0.9.8-3) unstable; urgency=high
 .
   * Add upstream patch 01-mlt_ffmpeg-2.9 to fix a FTBFS with newer FFmpeg
     releases.
     Closes: #803841
Checksums-Sha1:
 b06af6542256cd631e163fa5d48fe991e1bab30b 2420 mlt_0.9.8-3.dsc
 3fcc9c45f9ee9b9d38a9fe42820dcb1f180005c0 16528 mlt_0.9.8-3.debian.tar.xz
 7cb8d4e0dc780bc89263fd6c33137e2b867dde0c 112244 libmlt++-dev_0.9.8-3_amd64.deb
 e56dc9c4820fac57253d279dc2c812f48b6151f4 135930 libmlt++3_0.9.8-3_amd64.deb
 b46818fbfe02807a72477b6fd68b13ef48d0559e 1297336 libmlt-data_0.9.8-3_all.deb
 7b1a89524b0671d35b0eef406a4cdbce8af9f10a 2432796 libmlt-dbg_0.9.8-3_amd64.deb
 6e053b909b8a907f8a441f45ce7fd5b805d42d3b 141420 libmlt-dev_0.9.8-3_amd64.deb
 5b9d315fe8404de376773df2b4a0c03532e4b179 525140 libmlt6_0.9.8-3_amd64.deb
 f4f628c2a60d3547af05d3b10b325d04354570ad 114914 melt_0.9.8-3_amd64.deb
 d240716f127fae5461773c53a09cf1c178c56c12 193514 python-mlt_0.9.8-3_amd64.deb
Checksums-Sha256:
 a1942d38b61baea5986de5313b04b3934da30d7d531d2845c786755d9f46e477 2420 
mlt_0.9.8-3.dsc
 4fa1db018aa572a2acd725780d1ad45ed8e7d605711f684469d262c5433ce16f 16528 
mlt_0.9.8-3.debian.tar.xz
 f226539ca86949864df511a5261c145e0bafcf5e936901d01f80b7e01918f465 112244 
libmlt++-dev_0.9.8-3_amd64.deb
 98e6c471ee53fd10981e4e8ac6965822ac0e2989e065c6ca6ac1c032ca1a38cb 135930 
libmlt++3_0.9.8-3_amd64.deb
 f1fe6fd32699481ea23e333e2d2a443f91d503ee02201e4213d0e83ecd616be2 1297336 
libmlt-data_0.9.8-3_all.deb
 7c0a73d878a23047afce775c16b0819c1a5175218203b67ddc5965cff5408d32 2432796 
libmlt-dbg_0.9.8-3_amd64.deb
 3ebf34ad97612436900eaeed71eec87b8fbea97a017931bb25a878656da3f6c6 141420 
libmlt-dev_0.9.8-3_amd64.deb
 e681e325b859c5ffbbbf74d2160a5bbca485f0b8270466dfb39832bc8721253f 525140 
libmlt6_0.9.8-3_amd64.deb
 1aa84599ca0b9e5cc21c399af154f42daafa100af986b965a9876400a413121c 114914 
melt_0.9.8-3_amd64.deb
 0ac648079cbb24d090a749e74af5789da0cb7f26b044e675d3d3470d2b67e369 193514 
python-mlt_0.9.8-3_amd64.deb
Files:
 f288e4a7fa373ff37a55ab738020daa2 2420 libs optional mlt_0.9.8-3.dsc
 1c82ef12a2febc572f5a40f7dfb90121 16528 libs optional mlt_0.9.8-3.debian.tar.xz
 90c8022123a071b3b7180b0cf00e1562 112244 libdevel optional 
libmlt++-dev_0.9.8-3_amd64.deb
 c13ac34365a9c8c10958274c32855587 135930 libs optional 
libmlt++3_0.9.8-3_amd64.deb
 328e6f5f0e85ee25b81db78c893a7e2b 1297336 libs optional 
libmlt-data_0.9.8-3_all.deb
 2da31f10a096d24d69059c1df591435d 2432796 debug extra 
libmlt-dbg_0.9.8-3_amd64.deb
 276230fff5eee94e4f83a2919a92b11c 141420 libdevel optional 
libmlt-dev_0.9.8-3_amd64.deb
 ae6d5c8a5658e83edfd0ad818f1762d2 525140 libs optional libmlt6_0.9.8-3_amd64.deb
 71fd5d7ebba114eb85e8fb8639726ff0 114914 utils optional melt_0.9.8-3_amd64.deb
 1b800b02e9f349adc26bb194c73dac6d 193514 python optional 
python-mlt_0.9.8-3_amd64.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQIcBAEBCAAGBQJWO1wTAAoJEBLZsEqQy9jkj6IP/3ybGoJ/jJficuEvVHVDS3hz
R1QHWwrodc3QH0KOkeUQ7SNdKKnOBKX5suTtzKBcAPrMYP/SIXbYNMeBLprA3wPZ
fyKQZCBzd1+B9jpEqfexb37bE8I7mr1E1QHv7Wgrm1BjE9vr5H9yx9nCRIfxl52b
EdiSLcGbulq0vfJOuwmfiY0uDd62SBkq66bU9WKXkDNSyG3fbZWLgwMI5STqP9h9
ZkqSrltTVfeqYvYRoiwahECJswTSfZr1q6QU9wWhDkboKJBcpQP9jgXwFSXa4yug
/hFv4XIm/brW0+UsE0V1g7gWp2mLVQ8ieioaSnFpBmMYIl8s91jJOrViR1owF6YU
+lAqrHS/umLQt4OAc8WF16r/wZ4A1TliPuhgSEvBW1Ix59mVDMVKsFnZ0Q6Ikt+C
aOMXbsKYzB+Cc/7nnv1RgS1I/a50SK1M3bFFsRA9lcH2bXMrs3yy+TP06uorfsJI
vA15Lwi4qcEhAvSmniWBfNGII/o1t1IbmJgOV8DlLakII+0Xye0UiYlPSBYPjvE8
/d7GhYVY0gEXc3EjFj1oxyKYUbiSJe1C13OCYF0mjUXsZR4THBY1T82HjhbDt7WV
SrJ3OARcjxKW72iTYiq52KrXKn5noYnKKYUGLTRklbbt+zyw+GFdHur6/jniaM/D
fyGUYoLQ5UdXd/80rb4R
=0cdm
-----END PGP SIGNATURE-----

--- End Message ---

Reply via email to