final little bugfixes before 0.455

master
jp9000 2012-12-13 12:01:41 -07:00
parent 1f0152ad91
commit 74851f4d1d
12 changed files with 41 additions and 18 deletions

View File

@ -61,6 +61,8 @@ bool DeviceSource::Init(XElement *data)
//if(!bFiltersLoaded)
// return false;
Log(TEXT("Using directshow input"));
return true;
}

View File

@ -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;}
};

View File

@ -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;}
};

View File

@ -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;
}
}

View File

@ -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);

View File

@ -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

View File

@ -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;}
};

View File

@ -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;
}

View File

@ -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;
};
//-------------------------------------------------------------------

View File

@ -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)

View File

@ -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;}
};

View File

@ -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"));