diff --git a/community/mlt/APKBUILD b/community/mlt/APKBUILD index 9afefb2f5ba..cce8cec2461 100644 --- a/community/mlt/APKBUILD +++ b/community/mlt/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: Kevin Daudt pkgname=mlt pkgver=7.12.0 -pkgrel=3 +pkgrel=4 pkgdesc="MLT Multimedia Framework" url="https://www.mltframework.org/" arch="all" @@ -32,7 +32,9 @@ makedepends=" options="!check" # todo checkdepends="py3-pykwalify" subpackages="$pkgname-dev $pkgname-doc py3-$pkgname:py3" -source="https://github.com/mltframework/mlt/archive/v$pkgver/mlt-v$pkgver.tar.gz" +source="https://github.com/mltframework/mlt/archive/v$pkgver/mlt-v$pkgver.tar.gz + ffmpeg6.patch + " case $CARCH in ppc64le|s390x) @@ -77,4 +79,5 @@ py3() { sha512sums=" f2eebe1f83ede612968aacaa02c4bb60e98d70a49e2f6149f81b1c6835943825441b73a6f076565574c501a68216bcc84ceb8e0a441d05fe7b8930603b9e23ad mlt-v7.12.0.tar.gz +f7efca89a7084cd6e0ffa640851c8392b794300222f145e7c9fc60676441eb0cff4329249e307c5196a693f7a852cb55346d9b0b1cc12ddce9821ca08230ae17 ffmpeg6.patch " diff --git a/community/mlt/ffmpeg6.patch b/community/mlt/ffmpeg6.patch new file mode 100644 index 00000000000..d5a1540cb53 --- /dev/null +++ b/community/mlt/ffmpeg6.patch @@ -0,0 +1,43 @@ +https://github.com/FFmpeg/FFmpeg/commit/1ea365082318f06cd42a8b37dd0c7724b599c821 +https://github.com/FFmpeg/FFmpeg/commit/8f72bb866e47bcb57586608086c77cf0a2e2f21a , +f->inputs -> f, 0 , etc +diff --git a/src/modules/avformat/factory.c b/src/modules/avformat/factory.c +index cfa4a12..faca883 100644 +--- a/src/modules/avformat/factory.c ++++ b/src/modules/avformat/factory.c +@@ -442,8 +442,8 @@ MLT_REPOSITORY + void *iterator = NULL; + while ( ( f = (AVFilter*) av_filter_iterate( &iterator ) ) ) { + // Support filters that have one input and one output of the same type. +- if ( avfilter_pad_count( f->inputs ) == 1 && +- avfilter_pad_count( f->outputs ) == 1 && ++ if ( avfilter_filter_pad_count( f, 0 ) == 1 && ++ avfilter_filter_pad_count( f, 1 ) == 1 && + avfilter_pad_get_type( f->inputs, 0 ) == avfilter_pad_get_type( f->outputs, 0 ) && + !mlt_properties_get( blacklist, f->name ) ) + { +diff --git a/src/modules/avformat/filter_swresample.c b/src/modules/avformat/filter_swresample.c +index b1e0387..50f3fa2 100644 +--- a/src/modules/avformat/filter_swresample.c ++++ b/src/modules/avformat/filter_swresample.c +@@ -79,7 +79,7 @@ static int configure_swr_context( mlt_filter filter ) + // If input channels < output channels, silent channels will be added. + int64_t custom_in_layout = 0; + int64_t custom_out_layout = 0; +- double* matrix = av_mallocz_array( pdata->in_channels * pdata->out_channels, sizeof(double) ); ++ double* matrix = av_calloc( pdata->in_channels * pdata->out_channels, sizeof(double) ); + int stride = pdata->in_channels; + int i = 0; + +@@ -118,9 +118,9 @@ static int configure_swr_context( mlt_filter filter ) + + // Allocate the channel buffer pointers + av_freep( &pdata->in_buffers ); +- pdata->in_buffers = av_mallocz_array( pdata->in_channels, sizeof(uint8_t*) ); ++ pdata->in_buffers = av_calloc( pdata->in_channels, sizeof(uint8_t*) ); + av_freep( &pdata->out_buffers ); +- pdata->out_buffers = av_mallocz_array( pdata->out_channels, sizeof(uint8_t*) ); ++ pdata->out_buffers = av_calloc( pdata->out_channels, sizeof(uint8_t*) ); + + return error; + }