summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexis Ballier <aballier@gentoo.org>2012-02-25 23:03:46 +0000
committerAlexis Ballier <aballier@gentoo.org>2012-02-25 23:03:46 +0000
commitf92eb4d46eef1db26c16238cf2c0184a819948a9 (patch)
treeaa9177f5dd440c182893e58ea0fe3903a01db733 /media-video/bombono-dvd
parentImproved obs-service eclass to fix paths to suse-build automatically (diff)
downloadgentoo-2-f92eb4d46eef1db26c16238cf2c0184a819948a9.tar.gz
gentoo-2-f92eb4d46eef1db26c16238cf2c0184a819948a9.tar.bz2
gentoo-2-f92eb4d46eef1db26c16238cf2c0184a819948a9.zip
backport fixes for ffmpeg-0.10 from 1.2.1 as it 1.2.1 has a ~arch boost dep, so its simpler just to fix stable, bug #405751
(Portage version: 2.2.0_alpha89/cvs/Linux x86_64)
Diffstat (limited to 'media-video/bombono-dvd')
-rw-r--r--media-video/bombono-dvd/ChangeLog7
-rw-r--r--media-video/bombono-dvd/bombono-dvd-1.0.0.ebuild6
-rw-r--r--media-video/bombono-dvd/files/bombono-dvd-1.0.0-ffmpeg.patch167
3 files changed, 177 insertions, 3 deletions
diff --git a/media-video/bombono-dvd/ChangeLog b/media-video/bombono-dvd/ChangeLog
index 19a469a6ffec..fdf4943f279c 100644
--- a/media-video/bombono-dvd/ChangeLog
+++ b/media-video/bombono-dvd/ChangeLog
@@ -1,6 +1,11 @@
# ChangeLog for media-video/bombono-dvd
# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-video/bombono-dvd/ChangeLog,v 1.23 2012/02/12 16:49:35 dilfridge Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-video/bombono-dvd/ChangeLog,v 1.24 2012/02/25 23:03:46 aballier Exp $
+
+ 25 Feb 2012; Alexis Ballier <aballier@gentoo.org> bombono-dvd-1.0.0.ebuild,
+ +files/bombono-dvd-1.0.0-ffmpeg.patch:
+ backport fixes for ffmpeg-0.10 from 1.2.1 as it 1.2.1 has a ~arch boost dep,
+ so its simpler just to fix stable, bug #405751
12 Feb 2012; Andreas K. Huettel <dilfridge@gentoo.org>
-bombono-dvd-1.0.2.ebuild, -bombono-dvd-1.2.0-r1.ebuild:
diff --git a/media-video/bombono-dvd/bombono-dvd-1.0.0.ebuild b/media-video/bombono-dvd/bombono-dvd-1.0.0.ebuild
index 28871eb12994..bc4e0f86b63a 100644
--- a/media-video/bombono-dvd/bombono-dvd-1.0.0.ebuild
+++ b/media-video/bombono-dvd/bombono-dvd-1.0.0.ebuild
@@ -1,6 +1,6 @@
-# Copyright 1999-2011 Gentoo Foundation
+# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/media-video/bombono-dvd/bombono-dvd-1.0.0.ebuild,v 1.7 2011/05/09 19:48:37 tomka Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-video/bombono-dvd/bombono-dvd-1.0.0.ebuild,v 1.8 2012/02/25 23:03:46 aballier Exp $
EAPI=2
@@ -34,6 +34,8 @@ RDEPEND="
DEPEND=">=dev-util/scons-0.96.1
${RDEPEND}"
+PATCHES=( "${FILESDIR}/${PN}-1.0.0-ffmpeg.patch" )
+
src_compile() {
append-flags -DBOOST_FILESYSTEM_VERSION=2
diff --git a/media-video/bombono-dvd/files/bombono-dvd-1.0.0-ffmpeg.patch b/media-video/bombono-dvd/files/bombono-dvd-1.0.0-ffmpeg.patch
new file mode 100644
index 000000000000..093eae146a76
--- /dev/null
+++ b/media-video/bombono-dvd/files/bombono-dvd-1.0.0-ffmpeg.patch
@@ -0,0 +1,167 @@
+Index: bombono-dvd-1.0.0/src/mgui/ffviewer.cpp
+===================================================================
+--- bombono-dvd-1.0.0.orig/src/mgui/ffviewer.cpp
++++ bombono-dvd-1.0.0/src/mgui/ffviewer.cpp
+@@ -26,7 +26,9 @@
+ #include "render/common.h" // FillEmpty()
+
+ #include <mlib/gettext.h>
++#include <mlib/string.h>
+
++#if 0
+ /////////////////////////////////////////
+ // :KLUDGE: потому что riff.h не копируют
+ C_LINKAGE_BEGIN
+@@ -57,6 +59,7 @@ static uint FFCodecID2Tag(CodecID codec_
+ #endif
+
+ C_LINKAGE_END
++#endif
+ /////////////////////////////////////////
+
+ static AVStream* VideoStream(FFData& ffv)
+@@ -278,11 +281,6 @@ static bool IsFFError(int av_res)
+ return av_res < 0;
+ }
+
+-static unsigned char GetChar(uint tag, int bit_begin)
+-{
+- return (tag>>bit_begin) & 0xFF;
+-}
+-
+ static bool SetIndex(int& idx, int i, bool b)
+ {
+ bool res = (idx == -1) && b;
+@@ -291,6 +289,11 @@ static bool SetIndex(int& idx, int i, bo
+ return res;
+ }
+
++static std::string CodecID2Str(CodecID codec_id)
++{
++ return Int2Str(codec_id);
++}
++
+ bool OpenInfo(FFData& ffi, const char* fname, std::string& err_str)
+ {
+ av_register_all();
+@@ -302,6 +305,7 @@ bool OpenInfo(FFData& ffi, const char* f
+ // создается из av_find_input_format(str), где str из опции -f для ffmpeg
+ // (ffmpeg -formats)
+ AVInputFormat* file_iformat = 0;
++
+ // для уточнения параметров входного потока; используется в случаях, когда
+ // по самому потоку невозможно определить их (не для контейнеров, а для
+ // элементарных потоков
+@@ -315,15 +319,15 @@ bool OpenInfo(FFData& ffi, const char* f
+ {
+ switch( av_res )
+ {
+- case AVERROR_NOENT:
++ case AVERROR(ENOENT):
+ // :TODO: решить, ставить в конце точки или нет (сообщения пользователю
+ // показывается не HIG-ого)
+ err_str = _("No such file");
+ break;
+- case AVERROR_NOFMT:
++ case AVERROR(EILSEQ):
++ case AVERROR_INVALIDDATA:
+ err_str = _("Unknown file format");
+ break;
+- case AVERROR_UNKNOWN:
+ default:
+ err_str = boost::format("FFmpeg unknown error: %1%") % av_res % bf::stop;
+ break;
+@@ -351,13 +355,13 @@ bool OpenInfo(FFData& ffi, const char* f
+ {
+ AVStream* strm = ic->streams[i];
+ AVCodecContext* avctx = strm->codec;
+- if( SetIndex(video_idx, i, avctx->codec_type == CODEC_TYPE_VIDEO) )
++ if( SetIndex(video_idx, i, avctx->codec_type == AVMEDIA_TYPE_VIDEO) )
+ ;
+ else
+ // для демиксера имеет значение только NONE и ALL
+ strm->discard = AVDISCARD_ALL;
+
+- SetIndex(audio_idx, i, avctx->codec_type == CODEC_TYPE_AUDIO);
++ SetIndex(audio_idx, i, avctx->codec_type == AVMEDIA_TYPE_AUDIO);
+ }
+
+ if( video_idx == -1 )
+@@ -402,14 +406,8 @@ bool OpenInfo(FFData& ffi, const char* f
+ //dec->error_concealment = FF_EC_GUESS_MVS | FF_EC_DEBLOCK;
+ //dec->error_recognition = FF_ER_CAREFUL;
+
+- uint tag = FFCodecID2Tag(dec->codec_id);
+- std::string tag_str = boost::format("0x%1$04x") % tag % bf::stop;
+- unsigned char c0 = GetChar(tag, 0), c8 = GetChar(tag, 8),
+- c16 = GetChar(tag, 16), c24 = GetChar(tag, 24);
+- if( isprint(c0) && isprint(c8) && isprint(c16) && isprint(c24) )
+- tag_str = boost::format("%1%%2%%3%%4% / %5%")
+- % c0 % c8 % c16 % c24 % tag_str % bf::stop;
+-
++ std::string tag_str = CodecID2Str(dec->codec_id);
++
+ // AVCodec - это одиночка, а AVCodecContext - состояние для него
+ // в соответ. потоке контейнера
+ AVCodec* codec = avcodec_find_decoder(dec->codec_id);
+@@ -520,9 +518,28 @@ static double TS2Time(int64_t ts, FFView
+ return tm;
+ }
+
++#if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(52,65,0)
++#define USE_SKIP_FRAME
++#endif
++
+ static bool IsInHurry(AVCodecContext* dec)
+ {
++#ifdef USE_SKIP_FRAME
++ return dec->skip_frame >= AVDISCARD_NONREF;
++#else
+ return dec->hurry_up != 0;
++#endif
++}
++
++static void SetHurryUp(AVCodecContext* dec, bool is_on)
++{
++#ifdef USE_SKIP_FRAME
++ UNUSED_VAR(dec);
++ UNUSED_VAR(is_on);
++#else
++ // как признак (хоть и устаревший)
++ dec->hurry_up = is_on ? 1 : 0;
++#endif
+ }
+
+ struct HurryModeEnabler
+@@ -531,8 +548,7 @@ struct HurryModeEnabler
+
+ HurryModeEnabler(AVCodecContext* dec_): dec(dec_)
+ {
+- // как признак (хоть и устаревший)
+- dec->hurry_up = 1;
++ SetHurryUp(dec, true);
+ // Прирост скорости (h264):
+ // - AVDISCARD_NONREF: 2x
+ // - AVDISCARD_BIDIR: для h264 (и других современных кодеков?) разница в скорости
+@@ -552,7 +568,7 @@ struct HurryModeEnabler
+ }
+ ~HurryModeEnabler()
+ {
+- dec->hurry_up = 0;
++ SetHurryUp(dec, false);
+ dec->skip_frame = AVDISCARD_DEFAULT;
+ //dec->skip_idct = AVDISCARD_DEFAULT;
+ //dec->skip_loop_filter = AVDISCARD_DEFAULT;
+Index: bombono-dvd-1.0.0/src/mgui/project/media-browser.cpp
+===================================================================
+--- bombono-dvd-1.0.0.orig/src/mgui/project/media-browser.cpp
++++ bombono-dvd-1.0.0/src/mgui/project/media-browser.cpp
+@@ -232,7 +232,7 @@ RTCache& GetRTC(VideoItem vi)
+ for( int i=0; i < (int)ic->nb_streams; i++ )
+ {
+ AVCodecContext* avctx = ic->streams[i]->codec;
+- if( avctx->codec_type == CODEC_TYPE_AUDIO )
++ if( avctx->codec_type == AVMEDIA_TYPE_AUDIO )
+ rtc.audioNum++;
+ }
+