summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorBehnam Momeni2016-03-12 10:55:11 +0330
committerBehnam Momeni2016-03-12 10:55:11 +0330
commit3d9dedf666f0cdf9ac53294b0e93fc18193977db (patch)
tree2c88485c92daf51fc2318409b26a4b78d7cfc58f
parent6cfd50541b651b902ca3c79f21ac2080f6962de1 (diff)
downloadaur-3d9dedf666f0cdf9ac53294b0e93fc18193977db.tar.gz
Patching codes to compile with the ffmpeg 3.0
-rw-r--r--.SRCINFO4
-rw-r--r--PKGBUILD8
-rw-r--r--fix_ffmpeg30.patch68
3 files changed, 76 insertions, 4 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 9321782cfcbf..cc074985eceb 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -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
diff --git a/PKGBUILD b/PKGBUILD
index f714aeefee44..09f7e0887220 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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 приходит
+ {