diff options
author | Alexis Ballier <aballier@gentoo.org> | 2012-02-25 23:03:46 +0000 |
---|---|---|
committer | Alexis Ballier <aballier@gentoo.org> | 2012-02-25 23:03:46 +0000 |
commit | f92eb4d46eef1db26c16238cf2c0184a819948a9 (patch) | |
tree | aa9177f5dd440c182893e58ea0fe3903a01db733 /media-video/bombono-dvd | |
parent | Improved obs-service eclass to fix paths to suse-build automatically (diff) | |
download | gentoo-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/ChangeLog | 7 | ||||
-rw-r--r-- | media-video/bombono-dvd/bombono-dvd-1.0.0.ebuild | 6 | ||||
-rw-r--r-- | media-video/bombono-dvd/files/bombono-dvd-1.0.0-ffmpeg.patch | 167 |
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++; + } + |