Update moonlight-common-c with latest bugfixes

This commit is contained in:
Cameron Gutman 2017-06-08 21:50:00 -07:00
parent 326b7d6aed
commit cae6b4a566
5 changed files with 25 additions and 22 deletions

View File

@ -34,7 +34,7 @@ static void AudioPlayerSampleCallback(void* samples, uint32_t buffer_size, void*
} }
} }
void MoonlightInstance::AudDecInit(int audioConfiguration, POPUS_MULTISTREAM_CONFIGURATION opusConfig) { int MoonlightInstance::AudDecInit(int audioConfiguration, POPUS_MULTISTREAM_CONFIGURATION opusConfig) {
int rc; int rc;
g_Instance->m_OpusDecoder = opus_multistream_decoder_create(opusConfig->sampleRate, g_Instance->m_OpusDecoder = opus_multistream_decoder_create(opusConfig->sampleRate,
@ -49,6 +49,8 @@ void MoonlightInstance::AudDecInit(int audioConfiguration, POPUS_MULTISTREAM_CON
// Start playback now // Start playback now
g_Instance->m_AudioPlayer.StartPlayback(); g_Instance->m_AudioPlayer.StartPlayback();
return 0;
} }
void MoonlightInstance::AudDecCleanup(void) { void MoonlightInstance::AudDecCleanup(void) {
@ -83,8 +85,8 @@ void MoonlightInstance::AudDecDecodeAndPlaySample(char* sampleData, int sampleLe
} }
AUDIO_RENDERER_CALLBACKS MoonlightInstance::s_ArCallbacks = { AUDIO_RENDERER_CALLBACKS MoonlightInstance::s_ArCallbacks = {
MoonlightInstance::AudDecInit, .init = MoonlightInstance::AudDecInit,
MoonlightInstance::AudDecCleanup, .cleanup = MoonlightInstance::AudDecCleanup,
MoonlightInstance::AudDecDecodeAndPlaySample, .decodeAndPlaySample = MoonlightInstance::AudDecDecodeAndPlaySample,
CAPABILITY_DIRECT_SUBMIT .capabilities = CAPABILITY_DIRECT_SUBMIT
}; };

View File

@ -39,11 +39,10 @@ void MoonlightInstance::ClDisplayTransientMessage(const char* message) {
} }
CONNECTION_LISTENER_CALLBACKS MoonlightInstance::s_ClCallbacks = { CONNECTION_LISTENER_CALLBACKS MoonlightInstance::s_ClCallbacks = {
MoonlightInstance::ClStageStarting, .stageStarting = MoonlightInstance::ClStageStarting,
NULL, .stageFailed = MoonlightInstance::ClStageFailed,
MoonlightInstance::ClStageFailed, .connectionStarted = MoonlightInstance::ClConnectionStarted,
MoonlightInstance::ClConnectionStarted, .connectionTerminated = MoonlightInstance::ClConnectionTerminated,
MoonlightInstance::ClConnectionTerminated, .displayMessage = MoonlightInstance::ClDisplayMessage,
MoonlightInstance::ClDisplayMessage, .displayTransientMessage = MoonlightInstance::ClDisplayTransientMessage
MoonlightInstance::ClDisplayTransientMessage
}; };

@ -1 +1 @@
Subproject commit 20821e7eb67000b76180e77a735a37abe6b66736 Subproject commit c01deff683d9192a71f851815dbea4bba14e4f04

View File

@ -125,11 +125,11 @@ class MoonlightInstance : public pp::Instance, public pp::MouseLock {
bool InitializeRenderingSurface(int width, int height); bool InitializeRenderingSurface(int width, int height);
void DidChangeFocus(bool got_focus); void DidChangeFocus(bool got_focus);
static void VidDecSetup(int videoFormat, int width, int height, int redrawRate, void* context, int drFlags); static int VidDecSetup(int videoFormat, int width, int height, int redrawRate, void* context, int drFlags);
static void VidDecCleanup(void); static void VidDecCleanup(void);
static int VidDecSubmitDecodeUnit(PDECODE_UNIT decodeUnit); static int VidDecSubmitDecodeUnit(PDECODE_UNIT decodeUnit);
static void AudDecInit(int audioConfiguration, POPUS_MULTISTREAM_CONFIGURATION opusConfig); static int AudDecInit(int audioConfiguration, POPUS_MULTISTREAM_CONFIGURATION opusConfig);
static void AudDecCleanup(void); static void AudDecCleanup(void);
static void AudDecDecodeAndPlaySample(char* sampleData, int sampleLength); static void AudDecDecodeAndPlaySample(char* sampleData, int sampleLength);

View File

@ -137,7 +137,7 @@ bool MoonlightInstance::InitializeRenderingSurface(int width, int height) {
return true; return true;
} }
void MoonlightInstance::VidDecSetup(int videoFormat, int width, int height, int redrawRate, void* context, int drFlags) { int MoonlightInstance::VidDecSetup(int videoFormat, int width, int height, int redrawRate, void* context, int drFlags) {
g_Instance->m_VideoDecoder = new pp::VideoDecoder(g_Instance); g_Instance->m_VideoDecoder = new pp::VideoDecoder(g_Instance);
s_DecodeBufferLength = INITIAL_DECODE_BUFFER_LEN; s_DecodeBufferLength = INITIAL_DECODE_BUFFER_LEN;
@ -176,7 +176,7 @@ void MoonlightInstance::VidDecSetup(int videoFormat, int width, int height, int
// No decoders available at all. We can't continue. // No decoders available at all. We can't continue.
ClDisplayMessage("No hardware or software H.264 decoders available!"); ClDisplayMessage("No hardware or software H.264 decoders available!");
g_Instance->StopConnection(); g_Instance->StopConnection();
return; return -1;
} }
else if (!(drFlags & DR_FLAG_FORCE_SW_DECODE)) { else if (!(drFlags & DR_FLAG_FORCE_SW_DECODE)) {
// Tell the user we had to fall back // Tell the user we had to fall back
@ -186,6 +186,8 @@ void MoonlightInstance::VidDecSetup(int videoFormat, int width, int height, int
pp::Module::Get()->core()->CallOnMainThread(0, pp::Module::Get()->core()->CallOnMainThread(0,
g_Instance->m_CallbackFactory.NewCallback(&MoonlightInstance::DispatchGetPicture)); g_Instance->m_CallbackFactory.NewCallback(&MoonlightInstance::DispatchGetPicture));
return 0;
} }
void MoonlightInstance::DispatchGetPicture(uint32_t unused) { void MoonlightInstance::DispatchGetPicture(uint32_t unused) {
@ -485,8 +487,8 @@ void MoonlightInstance::PictureReady(int32_t result, PP_VideoPicture picture) {
} }
DECODER_RENDERER_CALLBACKS MoonlightInstance::s_DrCallbacks = { DECODER_RENDERER_CALLBACKS MoonlightInstance::s_DrCallbacks = {
MoonlightInstance::VidDecSetup, .setup = MoonlightInstance::VidDecSetup,
MoonlightInstance::VidDecCleanup, .cleanup = MoonlightInstance::VidDecCleanup,
MoonlightInstance::VidDecSubmitDecodeUnit, .submitDecodeUnit = MoonlightInstance::VidDecSubmitDecodeUnit,
CAPABILITY_SLICES_PER_FRAME(4) .capabilities = CAPABILITY_SLICES_PER_FRAME(4)
}; };