diff options
author | Behnam Momeni | 2016-03-12 10:55:11 +0330 |
---|---|---|
committer | Behnam Momeni | 2016-03-12 10:55:11 +0330 |
commit | 3d9dedf666f0cdf9ac53294b0e93fc18193977db (patch) | |
tree | 2c88485c92daf51fc2318409b26a4b78d7cfc58f | |
parent | 6cfd50541b651b902ca3c79f21ac2080f6962de1 (diff) | |
download | aur-3d9dedf666f0cdf9ac53294b0e93fc18193977db.tar.gz |
Patching codes to compile with the ffmpeg 3.0
-rw-r--r-- | .SRCINFO | 4 | ||||
-rw-r--r-- | PKGBUILD | 8 | ||||
-rw-r--r-- | fix_ffmpeg30.patch | 68 |
3 files changed, 76 insertions, 4 deletions
@@ -1,7 +1,7 @@ pkgbase = bombono-dvd pkgdesc = DVD authoring program with nice and clean GUI pkgver = 1.2.2 - pkgrel = 7 + pkgrel = 8 url = http://www.bombono.org install = bombono-dvd.install arch = i686 @@ -31,6 +31,7 @@ pkgbase = bombono-dvd source = autoptr2uniqueptr.patch source = stream_bool_cast.patch source = fix_deprecated_boost_api.patch + source = fix_ffmpeg30.patch sha256sums = 3ffaadc803dc2526d2805629ee928800ce150cb2e6a40b6724d898c76366f68b sha256sums = decc8f9261b0fcd18780080438c9fc4297d56a281355f195a5dee9a92abf474a sha256sums = ee89adeff7bd19d731eac96c180d5d59766bb3a68f3b21b898199e1cb6c5639e @@ -40,6 +41,7 @@ pkgbase = bombono-dvd sha256sums = 9214f838377cdf35bf1f151e4eaac10952049ccff4d74ca485fc8b6f05bc8ba4 sha256sums = 62d0f56ab4c2512bf004756426da6bf63cc0bd134ae6bc60304cc20116277e27 sha256sums = 8abd4e79a34a4d919060443439127cca95412d79534eef6554c300f55a0425ed + sha256sums = e345c0788991e6c6b5eaf0f271db4b0d9c0c0ff42757a4d67ebc023d352acc15 pkgname = bombono-dvd @@ -3,7 +3,7 @@ pkgname=bombono-dvd pkgver=1.2.2 -pkgrel=7 +pkgrel=8 pkgdesc="DVD authoring program with nice and clean GUI" arch=('i686' 'x86_64') url="http://www.bombono.org" @@ -17,7 +17,7 @@ source=(http://downloads.sourceforge.net/bombono/$pkgname-$pkgver.tar.bz2 fix_ffmpeg_codecid.patch bombono-dvd-1.2.2-ffmpeg26.patch fix_ptr2bool_cast.patch fix_c++11_literal_warnings.patch fix_crefoftemp_bug.patch autoptr2uniqueptr.patch stream_bool_cast.patch - fix_deprecated_boost_api.patch) + fix_deprecated_boost_api.patch fix_ffmpeg30.patch) install=bombono-dvd.install sha256sums=('3ffaadc803dc2526d2805629ee928800ce150cb2e6a40b6724d898c76366f68b' 'decc8f9261b0fcd18780080438c9fc4297d56a281355f195a5dee9a92abf474a' @@ -27,7 +27,8 @@ sha256sums=('3ffaadc803dc2526d2805629ee928800ce150cb2e6a40b6724d898c76366f68b' '0ea8ad5ccf64d30d0463e9bde5b07abdedd00e2da2fa7f3f72de99aa3915a64c' '9214f838377cdf35bf1f151e4eaac10952049ccff4d74ca485fc8b6f05bc8ba4' '62d0f56ab4c2512bf004756426da6bf63cc0bd134ae6bc60304cc20116277e27' - '8abd4e79a34a4d919060443439127cca95412d79534eef6554c300f55a0425ed') + '8abd4e79a34a4d919060443439127cca95412d79534eef6554c300f55a0425ed' + 'e345c0788991e6c6b5eaf0f271db4b0d9c0c0ff42757a4d67ebc023d352acc15') prepare() { cd "${pkgname}-${pkgver}" @@ -39,6 +40,7 @@ prepare() { patch -Np1 -i "${srcdir}/autoptr2uniqueptr.patch" patch -Np1 -i "${srcdir}/stream_bool_cast.patch" patch -Np1 -i "${srcdir}/fix_deprecated_boost_api.patch" + patch -Np1 -i "${srcdir}/fix_ffmpeg30.patch" # python2 fix for file in $(find . -name '*.py' -print); do sed -i 's_#!.*/usr/bin/python_#!/usr/bin/python2_' $file diff --git a/fix_ffmpeg30.patch b/fix_ffmpeg30.patch new file mode 100644 index 000000000000..0d8367df57cc --- /dev/null +++ b/fix_ffmpeg30.patch @@ -0,0 +1,68 @@ +diff -ruN bombono-dvd-1.2.2.orig/src/mgui/ffviewer.cpp bombono-dvd-1.2.2/src/mgui/ffviewer.cpp +--- bombono-dvd-1.2.2.orig/src/mgui/ffviewer.cpp 2016-03-12 08:58:15.027051299 +0330 ++++ bombono-dvd-1.2.2/src/mgui/ffviewer.cpp 2016-03-12 10:47:50.869987067 +0330 +@@ -36,6 +36,10 @@ + #define AVFORMAT_54 + #endif + ++C_LINKAGE_BEGIN ++#include <libavutil/imgutils.h> ++C_LINKAGE_END ++ + // разрабы libav считают себя самыми умными и потому решили + // закрыть простым смертным доступ к ffurl_register_protocol() + // (бывшая av_register_protocol2()),- https://bugzilla.libav.org/show_bug.cgi?id=224 +@@ -639,7 +643,9 @@ + // лучшая оптимизация выбирается на этапе выполнения, а не сборке; однако для 0.6 времени + // maverick оно еще не доделано, см. http://ffmpeg.arrozcru.org/forum/viewtopic.php?f=1&t=1185 + // :KLUDGE: потому добавляем явно +- sws_flags |= SWS_CPU_CAPS_MMX|SWS_CPU_CAPS_MMX2; ++ ++ // CPU_CAPS are now auto-detected ++ //sws_flags |= SWS_CPU_CAPS_MMX|SWS_CPU_CAPS_MMX2; + + // :TRICKY: почему-то ffmpeg'у "нравится" BGR24 и не нравиться RGB24 в плане использования + // MMX (ускорения); цена по времени неизвестна,- используем только ради того, чтобы не было +@@ -647,15 +653,16 @@ + // Другой вариант - PIX_FMT_RGB32, но там зависимый порядок байтов (в GdkPixbuf - нет) и + // мы нацелены на RGB24 + // :TODO: с версии LIBSWSCALE_VERSION_INT >= 0.8.11 появился прямой yuv -> rgb24, поправить +- PixelFormat dst_pf = PIX_FMT_BGR24; // PIX_FMT_RGB24; ++ AVPixelFormat dst_pf = AV_PIX_FMT_BGR24; // PIX_FMT_RGB24; + rgbCnvCtx = sws_getContext(sz.x, sz.y, GetVideoCtx(*this)->pix_fmt, sz.x, sz.y, + dst_pf, sws_flags, 0, 0, 0); + ASSERT( rgbCnvCtx ); + + Point dst_sz(sz); +- rgbBuf = (uint8_t*)av_malloc(avpicture_get_size(dst_pf, dst_sz.x, dst_sz.y) * sizeof(uint8_t)); +- avcodec_get_frame_defaults(&rgbFrame); // не помешает +- avpicture_fill((AVPicture*)&rgbFrame, rgbBuf, dst_pf, dst_sz.x, dst_sz.y); ++ rgbBuf = (uint8_t*)av_malloc (av_image_get_buffer_size (dst_pf, dst_sz.x, dst_sz.y, 1)); ++ av_frame_unref (&rgbFrame); ++ av_image_fill_arrays (rgbFrame.data, rgbFrame.linesize, ++ rgbBuf, dst_pf, dst_sz.x, dst_sz.y, 1); + } + else + // защита от неполных открытий +@@ -765,7 +772,7 @@ + #ifdef AVFRAME_INIT_CHANGE + // avcodec_get_frame_defaults() перенесли в avcodec_decode_video2() + #else +- avcodec_get_frame_defaults(&picture); // ffmpeg.c очищает каждый раз ++ av_frame_unref (&picture); + #endif + + #if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(52,25,00) +@@ -841,7 +848,11 @@ + + DoVideoDecode(ffv, got_picture, &pkt); + } +- av_free_packet(&pkt); ++ if (pkt.buf) ++ av_buffer_unref (&pkt.buf); ++ pkt.data = nullptr; ++ pkt.size = 0; ++ av_packet_free_side_data (&pkt); + } + else if( av_res == (int)AVERROR_EOF ) // для mpegts также -EIO приходит + { |