Merge remote-tracking branch 'cc9cii/master'

Conflicts:
	apps/openmw/mwrender/videoplayer.cpp
deque
Marc Zinnschlag 11 years ago
commit 130af28fa5

@ -50,6 +50,29 @@ extern "C"
#endif
}
#ifdef _WIN32
// Decide whether to play binkaudio.
#include <libavcodec/version.h>
// libavcodec versions 54.10.100 (or maybe earlier) to 54.54.100 potentially crashes Windows 64bit.
// From version 54.56 or higher, there's no sound due to the encoding format changing from S16 to FLTP
// (see https://gitorious.org/ffmpeg/ffmpeg/commit/7bfd1766d1c18f07b0a2dd042418a874d49ea60d and
// http://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=3049d5b9b32845c86aa5588bb3352bdeb2edfdb2;hp=43c6b45a53a186a187f7266e4d6bd3c2620519f1),
// but does not crash (or at least no known crash).
#if (LIBAVCODEC_VERSION_MAJOR > 54)
#define FFMPEG_PLAY_BINKAUDIO
#else
#ifdef _WIN64
#if ((LIBAVCODEC_VERSION_MAJOR == 54) && (LIBAVCODEC_VERSION_MINOR >= 55))
#define FFMPEG_PLAY_BINKAUDIO
#endif
#else
#if ((LIBAVCODEC_VERSION_MAJOR == 54) && (LIBAVCODEC_VERSION_MINOR >= 10))
#define FFMPEG_PLAY_BINKAUDIO
#endif
#endif
#endif
#endif
#define MAX_AUDIOQ_SIZE (5 * 16 * 1024)
#define MAX_VIDEOQ_SIZE (5 * 256 * 1024)
#define AV_SYNC_THRESHOLD 0.01
@ -970,13 +993,14 @@ void VideoState::init(const std::string& resourceName)
MWBase::Environment::get().getSoundManager()->pauseSounds();
this->external_clock_base = av_gettime();
#ifdef WIN32
// FIXME: Need FFmpeg FLTP audio support for BIK video format
std::cout<<"Sound temporarily disabled for \""+resourceName+"\""<<std::endl;
#else
#if !defined(_WIN32) || defined(FFMPEG_PLAY_BINKAUDIO)
if(audio_index >= 0)
this->stream_open(audio_index, this->format_ctx);
#else
std::cout<<"FFmpeg sound disabled for \""+resourceName+"\""<<std::endl;
#endif
if(video_index >= 0)
{
this->stream_open(video_index, this->format_ctx);

@ -88,6 +88,12 @@ namespace MWScript
virtual void execute (Interpreter::Runtime& runtime)
{
if (!MWBase::Environment::get().getWorld()->getPlayerPtr().isInCell())
{
runtime.push (0);
return;
}
bool interior =
!MWBase::Environment::get().getWorld()->getPlayerPtr().getCell()->getCell()->isExterior();

Loading…
Cancel
Save