final little bugfixes before 0.455
parent
1f0152ad91
commit
74851f4d1d
|
@ -61,6 +61,8 @@ bool DeviceSource::Init(XElement *data)
|
|||
//if(!bFiltersLoaded)
|
||||
// return false;
|
||||
|
||||
Log(TEXT("Using directshow input"));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -77,7 +77,7 @@ public:
|
|||
double GetPacketStrain() const {return 0;}
|
||||
QWORD GetCurrentSentBytes() {return 0;}
|
||||
DWORD NumDroppedFrames() const {return 0;}
|
||||
DWORD NumTotalFrames() const {return 1;}
|
||||
DWORD NumTotalVideoFrames() const {return 1;}
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -162,7 +162,7 @@ public:
|
|||
double GetPacketStrain() const {return (outputStream) ? outputStream->GetPacketStrain() : 0;}
|
||||
QWORD GetCurrentSentBytes() {return (outputStream) ? outputStream->GetCurrentSentBytes() : 0;}
|
||||
DWORD NumDroppedFrames() const {return (outputStream) ? outputStream->NumDroppedFrames() : 0;}
|
||||
DWORD NumTotalFrames() const {return (outputStream) ? outputStream->NumTotalFrames() : 1;}
|
||||
DWORD NumTotalVideoFrames() const {return (outputStream) ? outputStream->NumTotalVideoFrames() : 1;}
|
||||
|
||||
};
|
||||
|
||||
|
|
|
@ -372,7 +372,7 @@ UINT MMDeviceAudioSource::GetNextBuffer()
|
|||
{
|
||||
newTimestamp = qpcTimestamp/10000;
|
||||
|
||||
if(bFirstFrameReceived)
|
||||
/*if(bFirstFrameReceived)
|
||||
{
|
||||
LONGLONG offset = LONGLONG(newTimestamp)-LONGLONG(lastKnownTimestamp);
|
||||
if(offset < 1 || offset > 20)
|
||||
|
@ -380,7 +380,7 @@ UINT MMDeviceAudioSource::GetNextBuffer()
|
|||
else
|
||||
lastKnownTimestamp = newTimestamp;
|
||||
}
|
||||
else
|
||||
else*/
|
||||
lastKnownTimestamp = newTimestamp;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -243,7 +243,6 @@ void SetupIni()
|
|||
|
||||
AppConfig->SetInt (TEXT("Audio Encoding"), TEXT("Format"), 1);
|
||||
AppConfig->SetString(TEXT("Audio Encoding"), TEXT("Bitrate"), TEXT("128"));
|
||||
AppConfig->SetString(TEXT("Audio Encoding"), TEXT("Codec"), TEXT("MP3"));
|
||||
|
||||
AppConfig->SetInt (TEXT("Publish"), TEXT("Service"), 0);
|
||||
AppConfig->SetInt (TEXT("Publish"), TEXT("Mode"), 0);
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
#include <xmmintrin.h>
|
||||
#include <emmintrin.h>
|
||||
|
||||
#define USE_AAC 1
|
||||
|
||||
|
||||
//-------------------------------------------
|
||||
|
@ -69,8 +70,8 @@ extern ConfigFile *AppConfig;
|
|||
extern OBS *App;
|
||||
extern TCHAR lpAppDataPath[MAX_PATH];
|
||||
|
||||
#define OBS_VERSION 0x000453
|
||||
#define OBS_VERSION_STRING_ANSI "Open Broadcaster Software v0.454a (test 15)"
|
||||
#define OBS_VERSION 0x000455
|
||||
#define OBS_VERSION_STRING_ANSI "Open Broadcaster Software v0.455a"
|
||||
#define OBS_VERSION_STRING TEXT(OBS_VERSION_STRING_ANSI)
|
||||
|
||||
#define OBS_WINDOW_CLASS TEXT("OBSWindowClass")
|
||||
|
@ -92,6 +93,15 @@ inline bool IsWindows8Up()
|
|||
return (osi.dwMajorVersion > 6 || (osi.dwMajorVersion == 6 && osi.dwMinorVersion >= 2));
|
||||
}
|
||||
|
||||
inline bool IsWindows7Up()
|
||||
{
|
||||
OSVERSIONINFO osi;
|
||||
osi.dwOSVersionInfoSize = sizeof(osi);
|
||||
GetVersionEx(&osi);
|
||||
|
||||
return (osi.dwMajorVersion > 6 || (osi.dwMajorVersion == 6 && osi.dwMinorVersion >= 1));
|
||||
}
|
||||
|
||||
//-------------------------------------------
|
||||
// application headers
|
||||
|
||||
|
|
|
@ -50,7 +50,7 @@ class NullNetwork : public NetworkStream
|
|||
double GetPacketStrain() const {return 0;}
|
||||
QWORD GetCurrentSentBytes() {return 0;}
|
||||
virtual DWORD NumDroppedFrames() const {return 0;}
|
||||
virtual DWORD NumTotalFrames() const {return 1;}
|
||||
virtual DWORD NumTotalVideoFrames() const {return 1;}
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@ typedef void (*UNLOADPLUGINPROC)();
|
|||
BOOL bLoggedSystemStats = FALSE;
|
||||
void LogSystemStats();
|
||||
|
||||
#define OUTPUT_BUFFER_TIME 500
|
||||
#define OUTPUT_BUFFER_TIME 200
|
||||
|
||||
|
||||
VideoEncoder* CreateX264Encoder(int fps, int width, int height, int quality, CTSTR preset, bool bUse444, int maxBitRate, int bufferSize);
|
||||
|
@ -1338,10 +1338,10 @@ void OBS::Start()
|
|||
//-------------------------------------------------------------
|
||||
|
||||
UINT bitRate = (UINT)AppConfig->GetInt(TEXT("Audio Encoding"), TEXT("Bitrate"), 96);
|
||||
String strEncoder = AppConfig->GetString(TEXT("Audio Encoding"), TEXT("Codec"), TEXT("MP3"));
|
||||
String strEncoder = AppConfig->GetString(TEXT("Audio Encoding"), TEXT("Codec"), TEXT("AAC"));
|
||||
|
||||
#ifdef USE_AAC
|
||||
if(strEncoder.CompareI(TEXT("AAC")))
|
||||
if(strEncoder.CompareI(TEXT("AAC")) && IsWindows7Up())
|
||||
audioEncoder = CreateAACEncoder(bitRate);
|
||||
else
|
||||
#endif
|
||||
|
@ -1588,11 +1588,11 @@ void OBS::DrawStatusBar(DRAWITEMSTRUCT &dis)
|
|||
double percentageDropped = 0.0;
|
||||
if(App->network)
|
||||
{
|
||||
UINT numTotalFrames = App->network->NumTotalFrames();
|
||||
UINT numTotalFrames = App->network->NumTotalVideoFrames();
|
||||
if(numTotalFrames)
|
||||
percentageDropped = double(App->network->NumDroppedFrames())/double(numTotalFrames);
|
||||
}
|
||||
strOutString << Str("MainWindow.DroppedFrames") << FormattedString(TEXT(" %u (%0.3f%%)"), App->curFramesDropped, percentageDropped);
|
||||
strOutString << Str("MainWindow.DroppedFrames") << FormattedString(TEXT(" %u (%0.3g%%)"), App->curFramesDropped, percentageDropped);
|
||||
}
|
||||
break;
|
||||
case 3: strOutString << TEXT("FPS: ") << IntString(App->captureFPS); break;
|
||||
|
@ -1853,7 +1853,9 @@ DWORD STDCALL OBS::MainCaptureThread(LPVOID lpUnused)
|
|||
|
||||
DWORD STDCALL OBS::MainAudioThread(LPVOID lpUnused)
|
||||
{
|
||||
CoInitialize(0);
|
||||
App->MainAudioLoop();
|
||||
CoUninitialize();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -95,7 +95,7 @@ public:
|
|||
virtual double GetPacketStrain() const=0;
|
||||
virtual QWORD GetCurrentSentBytes()=0;
|
||||
virtual DWORD NumDroppedFrames() const=0;
|
||||
virtual DWORD NumTotalFrames() const=0;
|
||||
virtual DWORD NumTotalVideoFrames() const=0;
|
||||
};
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
|
|
|
@ -274,6 +274,8 @@ void RTMPPublisher::SendPacket(BYTE *data, UINT size, DWORD timestamp, PacketTyp
|
|||
if(!bStopping)
|
||||
{
|
||||
totalFrames++;
|
||||
if(type != PacketType_Audio)
|
||||
totalVideoFrames++;
|
||||
|
||||
bool bAddPacket = false;
|
||||
if(type >= packetWaitType)
|
||||
|
|
|
@ -80,6 +80,7 @@ protected:
|
|||
QWORD bytesSent;
|
||||
|
||||
UINT totalFrames;
|
||||
UINT totalVideoFrames;
|
||||
UINT numPFramesDumped;
|
||||
UINT numBFramesDumped;
|
||||
|
||||
|
@ -118,5 +119,5 @@ public:
|
|||
double GetPacketStrain() const;
|
||||
QWORD GetCurrentSentBytes();
|
||||
DWORD NumDroppedFrames() const;
|
||||
DWORD NumTotalFrames() const {return totalFrames;}
|
||||
DWORD NumTotalVideoFrames() const {return totalVideoFrames;}
|
||||
};
|
|
@ -450,10 +450,16 @@ INT_PTR CALLBACK OBS::EncoderSettingsProc(HWND hwnd, UINT message, WPARAM wParam
|
|||
|
||||
SendMessage(hwndTemp, CB_ADDSTRING, 0, (LPARAM)TEXT("MP3"));
|
||||
#ifdef USE_AAC
|
||||
SendMessage(hwndTemp, CB_ADDSTRING, 0, (LPARAM)TEXT("AAC"));
|
||||
#endif
|
||||
|
||||
if(IsWindows7Up())
|
||||
{
|
||||
SendMessage(hwndTemp, CB_ADDSTRING, 0, (LPARAM)TEXT("AAC"));
|
||||
LoadSettingComboString(hwndTemp, TEXT("Audio Encoding"), TEXT("Codec"), TEXT("AAC"));
|
||||
}
|
||||
else
|
||||
LoadSettingComboString(hwndTemp, TEXT("Audio Encoding"), TEXT("Codec"), TEXT("MP3"));
|
||||
#else
|
||||
LoadSettingComboString(hwndTemp, TEXT("Audio Encoding"), TEXT("Codec"), TEXT("MP3"));
|
||||
#endif
|
||||
|
||||
//--------------------------------------------
|
||||
|
||||
|
@ -462,6 +468,7 @@ INT_PTR CALLBACK OBS::EncoderSettingsProc(HWND hwnd, UINT message, WPARAM wParam
|
|||
SendMessage(hwndTemp, CB_ADDSTRING, 0, (LPARAM)TEXT("64"));
|
||||
SendMessage(hwndTemp, CB_ADDSTRING, 0, (LPARAM)TEXT("96"));
|
||||
SendMessage(hwndTemp, CB_ADDSTRING, 0, (LPARAM)TEXT("128"));
|
||||
SendMessage(hwndTemp, CB_ADDSTRING, 0, (LPARAM)TEXT("160"));
|
||||
SendMessage(hwndTemp, CB_ADDSTRING, 0, (LPARAM)TEXT("192"));
|
||||
SendMessage(hwndTemp, CB_ADDSTRING, 0, (LPARAM)TEXT("256"));
|
||||
SendMessage(hwndTemp, CB_ADDSTRING, 0, (LPARAM)TEXT("320"));
|
||||
|
|
Loading…
Reference in New Issue