Added an option to disable preview encoding
This commit is contained in:
parent
2bcceb69fb
commit
b3c30f9c3e
50
OBS.rc
50
OBS.rc
@ -353,39 +353,41 @@ IDD_SETTINGS_ADVANCED DIALOGEX 0, 0, 427, 336
|
|||||||
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
|
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
|
||||||
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||||
BEGIN
|
BEGIN
|
||||||
GROUPBOX "Settings.General",IDC_STATIC,4,2,413,60
|
GROUPBOX "Settings.General",IDC_STATIC,4,2,413,75
|
||||||
CONTROL "Settings.Advanced.UseMultithreadedOptimizations",IDC_USEMULTITHREADEDOPTIMIZATIONS,
|
CONTROL "Settings.Advanced.UseMultithreadedOptimizations",IDC_USEMULTITHREADEDOPTIMIZATIONS,
|
||||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,20,15,173,10
|
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,20,15,300,10
|
||||||
RTEXT "Settings.Advanced.ProcessPriority",IDC_STATIC,7,29,168,8
|
RTEXT "Settings.Advanced.ProcessPriority",IDC_STATIC,7,29,168,8
|
||||||
COMBOBOX IDC_PRIORITY,177,27,150,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
COMBOBOX IDC_PRIORITY,177,27,150,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||||
RTEXT "Settings.Advanced.SceneBufferTime",IDC_STATIC,7,47,168,8
|
RTEXT "Settings.Advanced.SceneBufferTime",IDC_STATIC,7,47,168,8
|
||||||
EDITTEXT IDC_SCENEBUFFERTIME_EDIT,177,44,40,14,ES_AUTOHSCROLL | ES_NUMBER
|
EDITTEXT IDC_SCENEBUFFERTIME_EDIT,177,44,40,14,ES_AUTOHSCROLL | ES_NUMBER
|
||||||
CONTROL "",IDC_SCENEBUFFERTIME,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,218,44,10,14
|
CONTROL "",IDC_SCENEBUFFERTIME,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,218,44,10,14
|
||||||
GROUPBOX "Settings.Video",IDC_STATIC,4,67,413,98
|
CONTROL "Settings.Advanced.DisablePreviewEncoding",IDC_DISABLEPREVIEWENCODING,
|
||||||
RTEXT "Settings.Advanced.VideoEncoderCPUTradeoff",IDC_STATIC,5,79,168,8
|
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,21,62,318,10
|
||||||
COMBOBOX IDC_PRESET,177,77,82,62,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
GROUPBOX "Settings.Video",IDC_STATIC,4,81,413,98
|
||||||
CONTROL "Settings.Advanced.UseCFR",IDC_USECFR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,20,93,292,10
|
RTEXT "Settings.Advanced.VideoEncoderCPUTradeoff",IDC_STATIC,5,93,168,8
|
||||||
|
COMBOBOX IDC_PRESET,177,91,82,62,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||||
|
CONTROL "Settings.Advanced.UseCFR",IDC_USECFR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,20,107,292,10
|
||||||
CONTROL "Settings.Advanced.VideoEncoderSettings",IDC_USEVIDEOENCODERSETTINGS,
|
CONTROL "Settings.Advanced.VideoEncoderSettings",IDC_USEVIDEOENCODERSETTINGS,
|
||||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,20,106,260,10
|
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,20,120,260,10
|
||||||
EDITTEXT IDC_VIDEOENCODERSETTINGS,33,119,373,14,ES_AUTOHSCROLL
|
EDITTEXT IDC_VIDEOENCODERSETTINGS,33,133,373,14,ES_AUTOHSCROLL
|
||||||
CONTROL "Settings.Advanced.UnlockHigherFPS",IDC_UNLOCKHIGHFPS,
|
CONTROL "Settings.Advanced.UnlockHigherFPS",IDC_UNLOCKHIGHFPS,
|
||||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,20,138,217,10
|
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,20,152,217,10
|
||||||
GROUPBOX "Settings.Audio",IDC_STATIC,4,167,413,57
|
GROUPBOX "Settings.Audio",IDC_STATIC,4,181,413,57
|
||||||
CONTROL "Settings.Advanced.SyncToVideoTime",IDC_SYNCTOVIDEOTIME,
|
CONTROL "Settings.Advanced.SyncToVideoTime",IDC_SYNCTOVIDEOTIME,
|
||||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,20,179,390,10
|
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,20,193,390,10
|
||||||
LTEXT "Settings.Advanced.GlobalAudioTimeAdjust",IDC_STATIC,5,194,168,8,0,WS_EX_RIGHT
|
LTEXT "Settings.Advanced.GlobalAudioTimeAdjust",IDC_STATIC,5,208,168,8,0,WS_EX_RIGHT
|
||||||
EDITTEXT IDC_AUDIOTIMEADJUST_EDIT,176,191,40,14,ES_AUTOHSCROLL
|
EDITTEXT IDC_AUDIOTIMEADJUST_EDIT,176,205,40,14,ES_AUTOHSCROLL
|
||||||
CONTROL "",IDC_AUDIOTIMEADJUST,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS,216,191,10,14
|
CONTROL "",IDC_AUDIOTIMEADJUST,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS,216,205,10,14
|
||||||
CONTROL "Settings.Audio.UseMicQPC",IDC_USEMICQPC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,20,208,332,10
|
CONTROL "Settings.Audio.UseMicQPC",IDC_USEMICQPC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,20,222,332,10
|
||||||
GROUPBOX "Settings.Advanced.Network",IDC_STATIC,7,228,413,60
|
GROUPBOX "Settings.Advanced.Network",IDC_STATIC,7,242,413,60
|
||||||
RTEXT "Settings.Advanced.BindToIP",IDC_STATIC,4,241,168,8
|
RTEXT "Settings.Advanced.BindToIP",IDC_STATIC,4,255,168,8
|
||||||
COMBOBOX IDC_BINDIP,177,239,150,62,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
COMBOBOX IDC_BINDIP,177,253,150,62,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||||
CONTROL "Settings.Advanced.AutomaticLatency",IDC_LATENCYMETHOD,
|
CONTROL "Settings.Advanced.AutomaticLatency",IDC_LATENCYMETHOD,
|
||||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,256,169,10,WS_EX_RIGHT
|
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,270,169,10,WS_EX_RIGHT
|
||||||
RTEXT "Settings.Advanced.LatencyTuning",IDC_STATIC,5,271,168,8
|
RTEXT "Settings.Advanced.LatencyTuning",IDC_STATIC,5,285,168,8
|
||||||
EDITTEXT IDC_LATENCYTUNE,178,268,40,14,ES_AUTOHSCROLL | ES_NUMBER
|
EDITTEXT IDC_LATENCYTUNE,178,282,40,14,ES_AUTOHSCROLL | ES_NUMBER
|
||||||
LTEXT "Settings.Info",IDC_INFO,7,293,418,24,NOT WS_VISIBLE
|
LTEXT "Settings.Info",IDC_INFO,7,304,418,24,NOT WS_VISIBLE
|
||||||
CONTROL "Settings.Advanced.UseQSV",IDC_USEQSV,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,20,151,217,10
|
CONTROL "Settings.Advanced.UseQSV",IDC_USEQSV,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,20,165,217,10
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_CONFIGURETRANSITIONSOURCE DIALOGEX 0, 0, 338, 216
|
IDD_CONFIGURETRANSITIONSOURCE DIALOGEX 0, 0, 338, 216
|
||||||
@ -705,7 +707,7 @@ BEGIN
|
|||||||
RIGHTMARGIN, 420
|
RIGHTMARGIN, 420
|
||||||
TOPMARGIN, 7
|
TOPMARGIN, 7
|
||||||
BOTTOMMARGIN, 328
|
BOTTOMMARGIN, 328
|
||||||
HORZGUIDE, 67
|
HORZGUIDE, 7
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_CONFIGURETRANSITIONSOURCE, DIALOG
|
IDD_CONFIGURETRANSITIONSOURCE, DIALOG
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
class NullVideoEncoder : public VideoEncoder
|
class NullVideoEncoder : public VideoEncoder
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual bool Encode(LPVOID picIn, List<DataPacket> &packets, List<PacketType> &packetTypes, DWORD timestamp, int &ctsOffset) {return true;}
|
virtual bool Encode(LPVOID picIn, List<DataPacket> &packets, List<PacketType> &packetTypes, DWORD timestamp, int &ctsOffset) {return false;}
|
||||||
virtual void GetHeaders(DataPacket &packet) {}
|
virtual void GetHeaders(DataPacket &packet) {}
|
||||||
virtual int GetBitRate() const {return 0;}
|
virtual int GetBitRate() const {return 0;}
|
||||||
virtual String GetInfoString() const {return String();}
|
virtual String GetInfoString() const {return String();}
|
||||||
@ -35,7 +35,7 @@ public:
|
|||||||
class NullAudioEncoder : public AudioEncoder
|
class NullAudioEncoder : public AudioEncoder
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual bool Encode(float *input, UINT numInputFrames, DataPacket &packet, QWORD ×tamp) {return true;}
|
virtual bool Encode(float *input, UINT numInputFrames, DataPacket &packet, QWORD ×tamp) {return false;}
|
||||||
virtual void GetHeaders(DataPacket &packet) {}
|
virtual void GetHeaders(DataPacket &packet) {}
|
||||||
virtual UINT GetFrameSize() const {return 0;}
|
virtual UINT GetFrameSize() const {return 0;}
|
||||||
virtual int GetBitRate() const {return 0;}
|
virtual int GetBitRate() const {return 0;}
|
||||||
|
@ -304,11 +304,21 @@ void OBS::Start()
|
|||||||
|
|
||||||
//-------------------------------------------------------------
|
//-------------------------------------------------------------
|
||||||
|
|
||||||
|
bool bDisableEncoding = false;
|
||||||
|
|
||||||
|
if (bTestStream)
|
||||||
|
bDisableEncoding = GlobalConfig->GetInt(TEXT("General"), TEXT("DisablePreviewEncoding"), false) != 0;
|
||||||
|
|
||||||
|
//-------------------------------------------------------------
|
||||||
|
|
||||||
UINT bitRate = (UINT)AppConfig->GetInt(TEXT("Audio Encoding"), TEXT("Bitrate"), 96);
|
UINT bitRate = (UINT)AppConfig->GetInt(TEXT("Audio Encoding"), TEXT("Bitrate"), 96);
|
||||||
String strEncoder = AppConfig->GetString(TEXT("Audio Encoding"), TEXT("Codec"), TEXT("AAC"));
|
String strEncoder = AppConfig->GetString(TEXT("Audio Encoding"), TEXT("Codec"), TEXT("AAC"));
|
||||||
|
|
||||||
|
if (bDisableEncoding)
|
||||||
|
audioEncoder = CreateNullAudioEncoder();
|
||||||
|
else
|
||||||
#ifdef USE_AAC
|
#ifdef USE_AAC
|
||||||
if(strEncoder.CompareI(TEXT("AAC")) && OSGetVersion() >= 7)
|
if(strEncoder.CompareI(TEXT("AAC")))// && OSGetVersion() >= 7)
|
||||||
audioEncoder = CreateAACEncoder(bitRate);
|
audioEncoder = CreateAACEncoder(bitRate);
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
@ -440,8 +450,11 @@ void OBS::Start()
|
|||||||
|
|
||||||
ctsOffset = 0;
|
ctsOffset = 0;
|
||||||
videoEncoder = nullptr;
|
videoEncoder = nullptr;
|
||||||
if(AppConfig->GetInt(TEXT("Video Encoding"), TEXT("UseQSV")) != 0)
|
if (bDisableEncoding)
|
||||||
|
videoEncoder = CreateNullVideoEncoder();
|
||||||
|
else if(GlobalConfig->GetInt(TEXT("Video Encoding"), TEXT("UseQSV")) != 0)
|
||||||
videoEncoder = CreateQSVEncoder(fps, outputCX, outputCY, quality, preset, bUsing444, maxBitRate, bufferSize, bUseCFR, bDupeFrames);
|
videoEncoder = CreateQSVEncoder(fps, outputCX, outputCY, quality, preset, bUsing444, maxBitRate, bufferSize, bUseCFR, bDupeFrames);
|
||||||
|
|
||||||
if(!videoEncoder)
|
if(!videoEncoder)
|
||||||
videoEncoder = CreateX264Encoder(fps, outputCX, outputCY, quality, preset, bUsing444, maxBitRate, bufferSize, bUseCFR, bDupeFrames);
|
videoEncoder = CreateX264Encoder(fps, outputCX, outputCY, quality, preset, bUsing444, maxBitRate, bufferSize, bUseCFR, bDupeFrames);
|
||||||
|
|
||||||
|
@ -291,7 +291,7 @@ void OBS::MainCaptureLoop()
|
|||||||
|
|
||||||
int curOutBuffer = 0;
|
int curOutBuffer = 0;
|
||||||
|
|
||||||
bool bUsingQSV = videoEncoder->isQSV();//AppConfig->GetInt(TEXT("Video Encoding"), TEXT("UseQSV")) != 0;
|
bool bUsingQSV = videoEncoder->isQSV();//GlobalConfig->GetInt(TEXT("Video Encoding"), TEXT("UseQSV")) != 0;
|
||||||
if(bUsingQSV)
|
if(bUsingQSV)
|
||||||
bUsing444 = false;
|
bUsing444 = false;
|
||||||
|
|
||||||
|
@ -79,6 +79,11 @@ void SettingsAdvanced::ApplySettings()
|
|||||||
|
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
|
|
||||||
|
bool bDisablePreviewEncoding = SendMessage(GetDlgItem(hwnd, IDC_DISABLEPREVIEWENCODING), BM_GETCHECK, 0, 0) == BST_CHECKED;
|
||||||
|
GlobalConfig->SetInt(TEXT("General"), TEXT("DisablePreviewEncoding"), bDisablePreviewEncoding);
|
||||||
|
|
||||||
|
//--------------------------------------------------
|
||||||
|
|
||||||
bool bUseCFR = SendMessage(GetDlgItem(hwnd, IDC_USECFR), BM_GETCHECK, 0, 0) == BST_CHECKED;
|
bool bUseCFR = SendMessage(GetDlgItem(hwnd, IDC_USECFR), BM_GETCHECK, 0, 0) == BST_CHECKED;
|
||||||
AppConfig->SetInt (TEXT("Video Encoding"), TEXT("UseCFR"), bUseCFR);
|
AppConfig->SetInt (TEXT("Video Encoding"), TEXT("UseCFR"), bUseCFR);
|
||||||
|
|
||||||
@ -98,7 +103,7 @@ void SettingsAdvanced::ApplySettings()
|
|||||||
//------------------------------------
|
//------------------------------------
|
||||||
|
|
||||||
BOOL bUseQSV = SendMessage(GetDlgItem(hwnd, IDC_USEQSV), BM_GETCHECK, 0, 0) == BST_CHECKED;
|
BOOL bUseQSV = SendMessage(GetDlgItem(hwnd, IDC_USEQSV), BM_GETCHECK, 0, 0) == BST_CHECKED;
|
||||||
AppConfig->SetInt (TEXT("Video Encoding"), TEXT("UseQSV"), bUseQSV);
|
GlobalConfig->SetInt(TEXT("Video Encoding"), TEXT("UseQSV"), bUseQSV);
|
||||||
|
|
||||||
//------------------------------------
|
//------------------------------------
|
||||||
|
|
||||||
@ -210,6 +215,11 @@ INT_PTR SettingsAdvanced::ProcMessage(UINT message, WPARAM wParam, LPARAM lParam
|
|||||||
else //Normal
|
else //Normal
|
||||||
SendMessage(hwndTemp, CB_SETCURSEL, 2, 0);
|
SendMessage(hwndTemp, CB_SETCURSEL, 2, 0);
|
||||||
|
|
||||||
|
//------------------------------------
|
||||||
|
|
||||||
|
bool bDisablePreviewEncoding = GlobalConfig->GetInt(TEXT("General"), TEXT("DisablePreviewEncoding"), false) != 0;
|
||||||
|
SendMessage(GetDlgItem(hwnd, IDC_DISABLEPREVIEWENCODING), BM_SETCHECK, bDisablePreviewEncoding ? BST_CHECKED : BST_UNCHECKED, 0);
|
||||||
|
|
||||||
//--------------------------------------------
|
//--------------------------------------------
|
||||||
|
|
||||||
hwndTemp = GetDlgItem(hwnd, IDC_PRESET);
|
hwndTemp = GetDlgItem(hwnd, IDC_PRESET);
|
||||||
@ -252,7 +262,7 @@ INT_PTR SettingsAdvanced::ProcMessage(UINT message, WPARAM wParam, LPARAM lParam
|
|||||||
|
|
||||||
//------------------------------------
|
//------------------------------------
|
||||||
|
|
||||||
bool bUseQSV = AppConfig->GetInt(TEXT("Video Encoding"), TEXT("UseQSV")) != 0;
|
bool bUseQSV = GlobalConfig->GetInt(TEXT("Video Encoding"), TEXT("UseQSV")) != 0;
|
||||||
SendMessage(GetDlgItem(hwnd, IDC_USEQSV), BM_SETCHECK, bUseQSV ? BST_CHECKED : BST_UNCHECKED, 0);
|
SendMessage(GetDlgItem(hwnd, IDC_USEQSV), BM_SETCHECK, bUseQSV ? BST_CHECKED : BST_UNCHECKED, 0);
|
||||||
|
|
||||||
//------------------------------------
|
//------------------------------------
|
||||||
@ -412,6 +422,7 @@ INT_PTR SettingsAdvanced::ProcMessage(UINT message, WPARAM wParam, LPARAM lParam
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case IDC_DISABLEPREVIEWENCODING:
|
||||||
case IDC_USEMICQPC:
|
case IDC_USEMICQPC:
|
||||||
case IDC_SYNCTOVIDEOTIME:
|
case IDC_SYNCTOVIDEOTIME:
|
||||||
case IDC_USECFR:
|
case IDC_USECFR:
|
||||||
|
@ -163,7 +163,7 @@ INT_PTR SettingsEncoding::ProcMessage(UINT message, WPARAM wParam, LPARAM lParam
|
|||||||
|
|
||||||
SendMessage(hwndTemp, CB_ADDSTRING, 0, (LPARAM)TEXT("MP3"));
|
SendMessage(hwndTemp, CB_ADDSTRING, 0, (LPARAM)TEXT("MP3"));
|
||||||
#ifdef USE_AAC
|
#ifdef USE_AAC
|
||||||
if(OSGetVersion() >= 7)
|
if(1)//OSGetVersion() >= 7)
|
||||||
{
|
{
|
||||||
SendMessage(hwndTemp, CB_ADDSTRING, 0, (LPARAM)TEXT("AAC"));
|
SendMessage(hwndTemp, CB_ADDSTRING, 0, (LPARAM)TEXT("AAC"));
|
||||||
LoadSettingComboString(hwndTemp, TEXT("Audio Encoding"), TEXT("Codec"), TEXT("AAC"));
|
LoadSettingComboString(hwndTemp, TEXT("Audio Encoding"), TEXT("Codec"), TEXT("AAC"));
|
||||||
|
@ -206,6 +206,8 @@
|
|||||||
#define IDC_TIMER1 1100
|
#define IDC_TIMER1 1100
|
||||||
#define IDC_CAPTURERAM 1100
|
#define IDC_CAPTURERAM 1100
|
||||||
#define IDC_COMPATIBILITYMODE 1100
|
#define IDC_COMPATIBILITYMODE 1100
|
||||||
|
#define IDC_USEMULTITHREADEDOPTIMIZATIONS2 1100
|
||||||
|
#define IDC_DISABLEPREVIEWENCODING 1100
|
||||||
#define IDC_PROGRESS1 1101
|
#define IDC_PROGRESS1 1101
|
||||||
#define IDC_DASHBOARDLINK_STATIC 1102
|
#define IDC_DASHBOARDLINK_STATIC 1102
|
||||||
#define IDC_DASHBOARDLINK 1103
|
#define IDC_DASHBOARDLINK 1103
|
||||||
|
@ -120,6 +120,7 @@ Settings.Video "Video"
|
|||||||
|
|
||||||
Settings.Advanced.AutomaticLatency "Automatic low latency mode:"
|
Settings.Advanced.AutomaticLatency "Automatic low latency mode:"
|
||||||
Settings.Advanced.BindToIP "Bind To Interface:"
|
Settings.Advanced.BindToIP "Bind To Interface:"
|
||||||
|
Settings.Advanced.DisablePreviewEncoding "Disable encoding while previewing"
|
||||||
Settings.Advanced.GlobalAudioTimeAdjust "Global Audio Time Offset (milliseconds):"
|
Settings.Advanced.GlobalAudioTimeAdjust "Global Audio Time Offset (milliseconds):"
|
||||||
Settings.Advanced.LatencyTuning "Latency tuning factor:"
|
Settings.Advanced.LatencyTuning "Latency tuning factor:"
|
||||||
Settings.Advanced.Network "Network"
|
Settings.Advanced.Network "Network"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user