mirror of
https://github.com/OpenMW/openmw.git
synced 2025-02-03 14:45:37 +00:00
Merge remote-tracking branch 'cc9cii/master'
Conflicts: apps/openmw/mwrender/videoplayer.cpp
This commit is contained in:
commit
130af28fa5
2 changed files with 34 additions and 4 deletions
|
@ -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…
Reference in a new issue