diff options
-rw-r--r-- | libre/blender-libre/PKGBUILD | 82 | ||||
-rw-r--r-- | libre/blender-libre/blender.install | 13 | ||||
-rw-r--r-- | libre/blender-libre/boost-1.50.patch | 42 | ||||
-rw-r--r-- | libre/blender-libre/ffmpeg-0.11.patch | 434 |
4 files changed, 33 insertions, 538 deletions
diff --git a/libre/blender-libre/PKGBUILD b/libre/blender-libre/PKGBUILD index 94e5b00cb..8baed7927 100644 --- a/libre/blender-libre/PKGBUILD +++ b/libre/blender-libre/PKGBUILD @@ -1,33 +1,28 @@ # $Id$ -# Maintainer (Parabola): Márcio Silva <coadde@lavabit.com> +# Maintainer: Márcio Silva <coadde@lavabit.com> -spacenav=false -pkgbase=blender-libre -pkgflag=-libre -if [ $spacenav == true ]; then - pkgname=( - blender-spacenav-libre - ) - spndesc=' (with spacenav support)' +_spacenav=false +_pkgname=blender-libre +_pkgflag=libre +if [ $_spacenav == true ]; then + pkgname=blender-spacenav-libre + _spndesc=' (with spacenav support)' else - pkgname=( - blender-libre - ) - spndesc='' + pkgname=blender-libre + _spndesc='' fi -pkgdesc="Fully integrated 3D graphics creation suite, without nonfree cuda-toolkit and redcode image format support$spndesc" -pkgver=2.66 -pkgrel=2 -pkgaev=6 +epoch=7 +pkgver=2.66a +_pyver=3.3 +pkgrel=1 +pkgdesc="Fully integrated 3D graphics creation suite, without nonfree cuda-toolkit and redcode image format support$_spndesc" arch=( i686 x86_64 mips64el ) -license=( - GPL -) -url="http://www.${pkgbase%$pkgflag}.org" +license=GPL +url="http://www.${_pkgname%-$_pkgflag}.org" depends=( desktop-file-utils ffmpeg @@ -45,41 +40,27 @@ depends=( shared-mime-info xdg-utils ) -if [ $spacenav == true ]; then +if [ $_spacenav == true ]; then depends+=( - # dependencies tree of binaries software (root) # libspnav ) fi -optdepends=( - 'bullet: for Physics Simulation in BGE' -) +optdepends='bullet: for Rigid Bodies and Physics Simulation' makedepends=( - # make dependencies tree (root) # boost cmake mesa subversion ) -provides=( - ${pkgbase%$pkgflag}=$pkgaev:$pkgver -) -conflicts=( - ${pkgbase%$pkgflag} -) -replaces=( - ${pkgbase%$pkgflag} -) -install=$pkgbase.install -source=( - "http://download.${pkgbase%$pkgflag}.org/source/${pkgbase%$pkgflag}-$pkgver.tar.gz" -) -sha512sums=( - f76499edc5f8179a42ec6d6334c6fa03f830570d054061ae40c2e8e1ec0a0090efcbb642f4f7f3b99d3941d4c4b791a0e357a275acf1b3ac251d58906f23b2b4 -) +provides=${_pkgname%-$_pkgflag}=$epoch:$pkgver +conflicts=${_pkgname%-$_pkgflag} +replaces=${_pkgname%-$_pkgflag} +install=$_pkgname.install +source="http://download.${_pkgname%-$_pkgflag}.org/source/${_pkgname%-$_pkgflag}-$pkgver.tar.gz" +sha512sums=ea5def031daa220991f6165950234b311e8ae3baa6785d6226efefa90b64e1b83e8635f71f9a7fc7ae23923ce313d5ae48ffa0c54cf7ff794a4fb2dacbe8714f build() { - cd $srcdir/${pkgbase%$pkgflag}-$pkgver + cd $srcdir/${_pkgname%-$_pkgflag}-$pkgver mkdir build cd build @@ -90,10 +71,10 @@ build() { -DCMAKE_BUILD_TYPE=Release\ -DCMAKE_INSTALL_PREFIX=/usr\ -DOPENIMAGEIO_ROOT_DIR=/usr\ - -DPYTHON_INCLUDE_DIRS=/usr/include/python3.3m\ + -DPYTHON_INCLUDE_DIRS=/usr/include/python${_pyver}m\ -DPYTHON_LIBPATH=/usr/lib\ - -DPYTHON_LIBRARY=python3.3m\ - -DPYTHON_VERSION=3.3\ + -DPYTHON_LIBRARY=python${_pyver}m\ + -DPYTHON_VERSION=${_pyver}\ $DSUPPORT_SSE2_BUILD\ -DWITH_CODEC_FFMPEG=ON\ -DWITH_CODEC_SNDFILE=ON\ @@ -110,12 +91,15 @@ build() { -DWITH_PLAYER=ON\ -DWITH_PYTHON_INSTALL=OFF\ -DWITH_SYSTEM_GLEW=ON + setarch $CARCH make $MAKEFLAGS setarch $CARCH make } package() { - cd $srcdir/${pkgbase%$pkgflag}-$pkgver/build + cd $srcdir/${_pkgname%-$_pkgflag}-$pkgver/build setarch $CARCH make DESTDIR=$pkgdir install - setarch $CARCH python -m compileall $pkgdir/usr/share/${pkgbase%$pkgflag} + setarch $CARCH python -m compileall $pkgdir/usr/share/${_pkgname%-$_pkgflag} } + +# vim:set ts=2 sw=2 et: diff --git a/libre/blender-libre/blender.install b/libre/blender-libre/blender.install deleted file mode 100644 index 724bfce00..000000000 --- a/libre/blender-libre/blender.install +++ /dev/null @@ -1,13 +0,0 @@ -post_install() { - update-desktop-database -q - update-mime-database usr/share/mime &> /dev/null - xdg-icon-resource forceupdate --theme hicolor &> /dev/null -} - -post_upgrade() { - post_install -} - -post_remove() { - post_install -} diff --git a/libre/blender-libre/boost-1.50.patch b/libre/blender-libre/boost-1.50.patch deleted file mode 100644 index fa698a3a6..000000000 --- a/libre/blender-libre/boost-1.50.patch +++ /dev/null @@ -1,42 +0,0 @@ -diff -Naur a/intern/cycles/util/util_cache.cpp b/intern/cycles/util/util_cache.cpp ---- a/intern/cycles/util/util_cache.cpp 2012-05-10 11:44:09.000000000 -0300 -+++ b/intern/cycles/util/util_cache.cpp 2012-07-15 14:19:34.893238929 -0300 -@@ -26,8 +26,6 @@ - #include "util_path.h" - #include "util_types.h" - --#define BOOST_FILESYSTEM_VERSION 2 -- - #include <boost/filesystem.hpp> - #include <boost/algorithm/string.hpp> - -@@ -117,7 +115,7 @@ - boost::filesystem::directory_iterator it(dir), it_end; - - for(; it != it_end; it++) { -- string filename = it->path().filename(); -+ string filename = it->path().filename().string(); - - if(boost::starts_with(filename, name)) - if(except.find(filename) == except.end()) -diff -Naur blender-2.63a/intern/cycles/util/util_path.cpp blender-2.63a-new/intern/cycles/util/util_path.cpp ---- a/intern/cycles/util/util_path.cpp 2012-05-10 11:44:09.000000000 -0300 -+++ b/intern/cycles/util/util_path.cpp 2012-07-15 14:19:14.126293394 -0300 -@@ -26,8 +26,6 @@ - - #include <stdio.h> - --#define BOOST_FILESYSTEM_VERSION 2 -- - #include <boost/filesystem.hpp> - #include <boost/algorithm/string.hpp> - -@@ -60,7 +58,7 @@ - - string path_filename(const string& path) - { -- return boost::filesystem::path(path).filename(); -+ return boost::filesystem::path(path).filename().string(); - } - - string path_dirname(const string& path) diff --git a/libre/blender-libre/ffmpeg-0.11.patch b/libre/blender-libre/ffmpeg-0.11.patch deleted file mode 100644 index 45144140c..000000000 --- a/libre/blender-libre/ffmpeg-0.11.patch +++ /dev/null @@ -1,434 +0,0 @@ -diff -Naur blender-2.63a.orig/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp blender-2.63a/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp ---- blender-2.63a.orig/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp 2012-05-10 11:45:40.000000000 -0300 -+++ blender-2.63a/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp 2012-07-10 18:12:55.727129720 -0300 -@@ -143,23 +143,23 @@ - - switch(m_codecCtx->sample_fmt) - { -- case SAMPLE_FMT_U8: -+ case AV_SAMPLE_FMT_U8: - m_convert = AUD_convert_u8_float; - m_specs.format = AUD_FORMAT_U8; - break; -- case SAMPLE_FMT_S16: -+ case AV_SAMPLE_FMT_S16: - m_convert = AUD_convert_s16_float; - m_specs.format = AUD_FORMAT_S16; - break; -- case SAMPLE_FMT_S32: -+ case AV_SAMPLE_FMT_S32: - m_convert = AUD_convert_s32_float; - m_specs.format = AUD_FORMAT_S32; - break; -- case SAMPLE_FMT_FLT: -+ case AV_SAMPLE_FMT_FLT: - m_convert = AUD_convert_copy<float>; - m_specs.format = AUD_FORMAT_FLOAT32; - break; -- case SAMPLE_FMT_DBL: -+ case AV_SAMPLE_FMT_DBL: - m_convert = AUD_convert_double_float; - m_specs.format = AUD_FORMAT_FLOAT64; - break; -@@ -189,7 +189,7 @@ - } - catch(AUD_Exception&) - { -- av_close_input_file(m_formatCtx); -+ avformat_close_input(&m_formatCtx); - throw; - } - } -@@ -227,7 +227,7 @@ - } - catch(AUD_Exception&) - { -- av_close_input_stream(m_formatCtx); -+ avformat_close_input(&m_formatCtx); - av_free(m_aviocontext); - throw; - } -@@ -239,7 +239,7 @@ - - if(m_aviocontext) - { -- av_close_input_stream(m_formatCtx); -+ avformat_close_input(&m_formatCtx); - av_free(m_aviocontext); - } - else -diff -Naur blender-2.63a.orig/intern/audaspace/ffmpeg/AUD_FFMPEGWriter.cpp blender-2.63a/intern/audaspace/ffmpeg/AUD_FFMPEGWriter.cpp ---- blender-2.63a.orig/intern/audaspace/ffmpeg/AUD_FFMPEGWriter.cpp 2012-05-10 11:45:40.000000000 -0300 -+++ blender-2.63a/intern/audaspace/ffmpeg/AUD_FFMPEGWriter.cpp 2012-07-10 18:14:55.893790273 -0300 -@@ -133,23 +133,23 @@ - { - case AUD_FORMAT_U8: - m_convert = AUD_convert_float_u8; -- m_codecCtx->sample_fmt = SAMPLE_FMT_U8; -+ m_codecCtx->sample_fmt = AV_SAMPLE_FMT_U8; - break; - case AUD_FORMAT_S16: - m_convert = AUD_convert_float_s16; -- m_codecCtx->sample_fmt = SAMPLE_FMT_S16; -+ m_codecCtx->sample_fmt = AV_SAMPLE_FMT_S16; - break; - case AUD_FORMAT_S32: - m_convert = AUD_convert_float_s32; -- m_codecCtx->sample_fmt = SAMPLE_FMT_S32; -+ m_codecCtx->sample_fmt = AV_SAMPLE_FMT_S32; - break; - case AUD_FORMAT_FLOAT32: - m_convert = AUD_convert_copy<float>; -- m_codecCtx->sample_fmt = SAMPLE_FMT_FLT; -+ m_codecCtx->sample_fmt = AV_SAMPLE_FMT_FLT; - break; - case AUD_FORMAT_FLOAT64: - m_convert = AUD_convert_float_double; -- m_codecCtx->sample_fmt = SAMPLE_FMT_DBL; -+ m_codecCtx->sample_fmt = AV_SAMPLE_FMT_DBL; - break; - default: - AUD_THROW(AUD_ERROR_FFMPEG, format_error); -diff -Naur blender-2.63a.orig/intern/ffmpeg/ffmpeg_compat.h blender-2.63a/intern/ffmpeg/ffmpeg_compat.h ---- blender-2.63a.orig/intern/ffmpeg/ffmpeg_compat.h 2012-05-10 11:46:17.000000000 -0300 -+++ blender-2.63a/intern/ffmpeg/ffmpeg_compat.h 2012-07-10 18:17:04.823783714 -0300 -@@ -76,6 +76,10 @@ - #define FFMPEG_FFV1_ALPHA_SUPPORTED - #endif - -+#if ((LIBAVFORMAT_VERSION_MAJOR < 53) || ((LIBAVFORMAT_VERSION_MAJOR == 53) && (LIBAVFORMAT_VERSION_MINOR < 24)) || ((LIBAVFORMAT_VERSION_MAJOR == 53) && (LIBAVFORMAT_VERSION_MINOR < 24) && (LIBAVFORMAT_VERSION_MICRO < 2))) -+#define avformat_close_input(x) av_close_input_file(*(x)) -+#endif -+ - #ifndef FFMPEG_HAVE_AVIO - #define AVIO_FLAG_WRITE URL_WRONLY - #define avio_open url_fopen -diff -Naur blender-2.63a.orig/source/blender/blenkernel/intern/writeffmpeg.c blender-2.63a/source/blender/blenkernel/intern/writeffmpeg.c ---- blender-2.63a.orig/source/blender/blenkernel/intern/writeffmpeg.c 2012-05-10 11:50:20.000000000 -0300 -+++ blender-2.63a/source/blender/blenkernel/intern/writeffmpeg.c 2012-07-10 18:27:00.213753426 -0300 -@@ -36,6 +36,7 @@ - #include <libavformat/avformat.h> - #include <libavcodec/avcodec.h> - #include <libavutil/rational.h> -+#include <libavutil/samplefmt.h> - #include <libswscale/swscale.h> - #include <libavcodec/opt.h> - -@@ -612,7 +613,7 @@ - - c->sample_rate = rd->ffcodecdata.audio_mixrate; - c->bit_rate = ffmpeg_audio_bitrate*1000; -- c->sample_fmt = SAMPLE_FMT_S16; -+ c->sample_fmt = AV_SAMPLE_FMT_S16; - c->channels = rd->ffcodecdata.audio_channels; - codec = avcodec_find_encoder(c->codec_id); - if (!codec) { -@@ -654,11 +655,21 @@ - } - /* essential functions -- start, append, end */ - -+static void ffmpeg_dict_set_int(AVDictionary **dict, const char *key, int value) -+{ -+ char buffer[32]; -+ -+ BLI_snprintf(buffer, sizeof(buffer), "%d", value); -+ -+ av_dict_set(dict, key, buffer, 0); -+} -+ - static int start_ffmpeg_impl(struct RenderData *rd, int rectx, int recty, ReportList *reports) - { - /* Handle to the output file */ - AVFormatContext* of; - AVOutputFormat* fmt; -+ AVDictionary *opts = NULL; - char name[256]; - const char ** exts; - -@@ -704,13 +715,14 @@ - of->oformat = fmt; - of->packet_size= rd->ffcodecdata.mux_packet_size; - if (ffmpeg_audio_codec != CODEC_ID_NONE) { -- of->mux_rate = rd->ffcodecdata.mux_rate; -+ ffmpeg_dict_set_int(&opts, "muxrate", rd->ffcodecdata.mux_rate); - } - else { -- of->mux_rate = 0; -+ av_dict_set(&opts, "muxrate", "0", 0); - } - -- of->preload = (int)(0.5*AV_TIME_BASE); -+ ffmpeg_dict_set_int(&opts, "preload", (int)(0.5*AV_TIME_BASE)); -+ - of->max_delay = (int)(0.7*AV_TIME_BASE); - - fmt->audio_codec = ffmpeg_audio_codec; -@@ -773,6 +785,7 @@ - fmt->audio_codec = CODEC_ID_PCM_S16LE; - if (ffmpeg_audio_codec != CODEC_ID_NONE && rd->ffcodecdata.audio_mixrate != 48000 && rd->ffcodecdata.audio_channels != 2) { - BKE_report(reports, RPT_ERROR, "FFMPEG only supports 48khz / stereo audio for DV!"); -+ av_dict_free(&opts); - return 0; - } - } -@@ -782,6 +795,7 @@ - printf("alloc video stream %p\n", video_stream); - if (!video_stream) { - BKE_report(reports, RPT_ERROR, "Error initializing video stream."); -+ av_dict_free(&opts); - return 0; - } - } -@@ -790,27 +804,27 @@ - audio_stream = alloc_audio_stream(rd, fmt->audio_codec, of); - if (!audio_stream) { - BKE_report(reports, RPT_ERROR, "Error initializing audio stream."); -+ av_dict_free(&opts); - return 0; - } - } -- if (av_set_parameters(of, NULL) < 0) { -- BKE_report(reports, RPT_ERROR, "Error setting output parameters."); -- return 0; -- } - if (!(fmt->flags & AVFMT_NOFILE)) { - if (avio_open(&of->pb, name, AVIO_FLAG_WRITE) < 0) { - BKE_report(reports, RPT_ERROR, "Could not open file for writing."); -+ av_dict_free(&opts); - return 0; - } - } - -- if (av_write_header(of) < 0) { -+ if (avformat_write_header(of, NULL) < 0) { - BKE_report(reports, RPT_ERROR, "Could not initialize streams. Probably unsupported codec combination."); -+ av_dict_free(&opts); - return 0; - } - - outfile = of; - av_dump_format(of, 0, name, 1); -+ av_dict_free(&opts); - - return 1; - } -diff -Naur blender-2.63a.orig/source/blender/imbuf/intern/anim_movie.c blender-2.63a/source/blender/imbuf/intern/anim_movie.c ---- blender-2.63a.orig/source/blender/imbuf/intern/anim_movie.c 2012-05-10 11:50:59.000000000 -0300 -+++ blender-2.63a/source/blender/imbuf/intern/anim_movie.c 2012-07-10 18:30:19.413743294 -0300 -@@ -436,7 +436,7 @@ - int i, videoStream; - - AVCodec *pCodec; -- AVFormatContext *pFormatCtx; -+ AVFormatContext *pFormatCtx = NULL; - AVCodecContext *pCodecCtx; - int frs_num; - double frs_den; -@@ -455,7 +455,7 @@ - - do_init_ffmpeg(); - -- if (av_open_input_file(&pFormatCtx, anim->name, NULL, 0, NULL)!=0) { -+ if (avformat_open_input(&pFormatCtx, anim->name, NULL, NULL)!=0) { - return -1; - } - -@@ -990,7 +990,8 @@ - ret = av_seek_frame(anim->pFormatCtx, - -1, - pos, AVSEEK_FLAG_BYTE); -- av_update_cur_dts(anim->pFormatCtx, v_st, dts); -+ // XXX: need double verification -+ // av_update_cur_dts(anim->pFormatCtx, v_st, dts); - } - else { - av_log(anim->pFormatCtx, AV_LOG_DEBUG, -diff -Naur blender-2.63a.orig/source/blender/imbuf/intern/indexer.c blender-2.63a/source/blender/imbuf/intern/indexer.c ---- blender-2.63a.orig/source/blender/imbuf/intern/indexer.c 2012-05-10 11:50:59.000000000 -0300 -+++ blender-2.63a/source/blender/imbuf/intern/indexer.c 2012-07-10 18:38:25.737051891 -0300 -@@ -533,13 +533,6 @@ - rv->c->flags |= CODEC_FLAG_GLOBAL_HEADER; - } - -- if (av_set_parameters(rv->of, NULL) < 0) { -- fprintf(stderr, "Couldn't set output parameters? " -- "Proxy not built!\n"); -- av_free(rv->of); -- return 0; -- } -- - if (avio_open(&rv->of->pb, fname, AVIO_FLAG_WRITE) < 0) { - fprintf(stderr, "Couldn't open outputfile! " - "Proxy not built!\n"); -@@ -576,7 +569,12 @@ - NULL, NULL, NULL); - } - -- av_write_header(rv->of); -+ if (avformat_write_header(rv->of, NULL) < 0) { -+ fprintf(stderr, "Couldn't set output parameters? " -+ "Proxy not built!\n"); -+ av_free(rv->of); -+ return 0; -+ } - - return rv; - } -@@ -739,7 +737,7 @@ - memset(context->proxy_ctx, 0, sizeof(context->proxy_ctx)); - memset(context->indexer, 0, sizeof(context->indexer)); - -- if (av_open_input_file(&context->iFormatCtx, anim->name, NULL, 0, NULL) != 0) { -+ if (avformat_open_input(&context->iFormatCtx, anim->name, NULL, NULL) != 0) { - MEM_freeN(context); - return NULL; - } -diff -Naur blender-2.63a.orig/source/blender/imbuf/intern/util.c blender-2.63a/source/blender/imbuf/intern/util.c ---- blender-2.63a.orig/source/blender/imbuf/intern/util.c 2012-05-10 11:50:59.000000000 -0300 -+++ blender-2.63a/source/blender/imbuf/intern/util.c 2012-07-10 18:40:49.950377886 -0300 -@@ -243,7 +243,7 @@ - - static int isffmpeg (const char *filename) - { -- AVFormatContext *pFormatCtx; -+ AVFormatContext *pFormatCtx = NULL; - unsigned int i; - int videoStream; - AVCodec *pCodec; -@@ -261,7 +261,7 @@ - BLI_testextensie(filename, ".cin") || - BLI_testextensie(filename, ".wav")) return 0; - -- if (av_open_input_file(&pFormatCtx, filename, NULL, 0, NULL)!=0) { -+ if (avformat_open_input(&pFormatCtx, filename, NULL, NULL)!=0) { - if (UTIL_DEBUG) fprintf(stderr, "isffmpeg: av_open_input_file failed\n"); - return 0; - } -diff -Naur blender-2.63a.orig/source/gameengine/VideoTexture/VideoFFmpeg.cpp blender-2.63a/source/gameengine/VideoTexture/VideoFFmpeg.cpp ---- blender-2.63a.orig/source/gameengine/VideoTexture/VideoFFmpeg.cpp 2012-05-10 11:48:50.000000000 -0300 -+++ blender-2.63a/source/gameengine/VideoTexture/VideoFFmpeg.cpp 2012-07-10 18:56:03.696998071 -0300 -@@ -162,14 +162,14 @@ - } - - --int VideoFFmpeg::openStream(const char *filename, AVInputFormat *inputFormat, AVFormatParameters *formatParams) -+int VideoFFmpeg::openStream(const char *filename, AVInputFormat *inputFormat, AVDictionary **formatParams) - { -- AVFormatContext *formatCtx; -+ AVFormatContext *formatCtx = NULL; - int i, videoStream; - AVCodec *codec; - AVCodecContext *codecCtx; - -- if (av_open_input_file(&formatCtx, filename, inputFormat, 0, formatParams)!=0) -+ if (avformat_open_input(&formatCtx, filename, inputFormat, formatParams)!=0) - return -1; - - if (av_find_stream_info(formatCtx)<0) -@@ -545,11 +545,7 @@ - // but it is really not desirable to seek on http file, so force streaming. - // It would be good to find this information from the context but there are no simple indication - !strncmp(filename, "http://", 7) || --#ifdef FFMPEG_PB_IS_POINTER -- (m_formatCtx->pb && m_formatCtx->pb->is_streamed) --#else -- m_formatCtx->pb.is_streamed --#endif -+ (m_formatCtx->pb && !m_formatCtx->pb->seekable) - ) - { - // the file is in fact a streaming source, treat as cam to prevent seeking -@@ -586,13 +582,11 @@ - { - // open camera source - AVInputFormat *inputFormat; -- AVFormatParameters formatParams; -- AVRational frameRate; -+ AVDictionary *formatParams = NULL; - char *p, filename[28], rateStr[20]; - - do_init_ffmpeg(); - -- memset(&formatParams, 0, sizeof(formatParams)); - #ifdef WIN32 - // video capture on windows only through Video For Windows driver - inputFormat = av_find_input_format("vfwcap"); -@@ -622,7 +616,13 @@ - sprintf(filename, "/dev/dv1394/%d", camIdx); - } else - { -- inputFormat = av_find_input_format("video4linux"); -+ const char *formats[] = {"video4linux2,v4l2", "video4linux2", "video4linux"}; -+ int i, formatsCount = sizeof(formats) / sizeof(char*); -+ for (i = 0; i < formatsCount; i++) { -+ inputFormat = av_find_input_format(formats[i]); -+ if (inputFormat) -+ break; -+ } - sprintf(filename, "/dev/video%d", camIdx); - } - if (!inputFormat) -@@ -636,20 +636,22 @@ - if ((p = strchr(filename, ':')) != 0) - *p = 0; - } -- if (file && (p = strchr(file, ':')) != NULL) -- formatParams.standard = p+1; -+ if (file && (p = strchr(file, ':')) != NULL) { -+ av_dict_set(&formatParams, "standard", p+1, 0); -+ } - #endif - //frame rate - if (m_captRate <= 0.f) - m_captRate = defFrameRate; - sprintf(rateStr, "%f", m_captRate); -- av_parse_video_rate(&frameRate, rateStr); -- // populate format parameters -- // need to specify the time base = inverse of rate -- formatParams.time_base.num = frameRate.den; -- formatParams.time_base.den = frameRate.num; -- formatParams.width = m_captWidth; -- formatParams.height = m_captHeight; -+ -+ av_dict_set(&formatParams, "framerate", rateStr, 0); -+ -+ if (m_captWidth > 0 && m_captHeight > 0) { -+ char video_size[64]; -+ BLI_snprintf(video_size, sizeof(video_size), "%dx%d", m_captWidth, m_captHeight); -+ av_dict_set(&formatParams, "video_size", video_size, 0); -+ } - - if (openStream(filename, inputFormat, &formatParams) != 0) - return; -@@ -664,6 +666,8 @@ - // no need to thread if the system has a single core - m_isThreaded = true; - } -+ -+ av_dict_free(&formatParams); - } - - // play video -diff -Naur blender-2.63a.orig/source/gameengine/VideoTexture/VideoFFmpeg.h blender-2.63a/source/gameengine/VideoTexture/VideoFFmpeg.h ---- blender-2.63a.orig/source/gameengine/VideoTexture/VideoFFmpeg.h 2012-05-10 11:48:50.000000000 -0300 -+++ blender-2.63a/source/gameengine/VideoTexture/VideoFFmpeg.h 2012-07-10 18:57:21.710327435 -0300 -@@ -46,10 +46,6 @@ - # define FFMPEG_CODEC_IS_POINTER 1 - #endif - --#if LIBAVFORMAT_VERSION_INT >= (52 << 16) --# define FFMPEG_PB_IS_POINTER 1 --#endif -- - #ifdef FFMPEG_CODEC_IS_POINTER - static inline AVCodecContext* get_codec_from_stream(AVStream* stream) - { -@@ -172,7 +168,7 @@ - double actFrameRate (void) { return m_frameRate * m_baseFrameRate; } - - /// common function to video file and capture -- int openStream(const char *filename, AVInputFormat *inputFormat, AVFormatParameters *formatParams); -+ int openStream(const char *filename, AVInputFormat *inputFormat, AVDictionary **formatParams); - - /// check if a frame is available and load it in pFrame, return true if a frame could be retrieved - AVFrame* grabFrame(long frame); |